Ivy’s been soliciting for head scratches by rubbing her head over people’s palm. It’s a technique that tends to work.

A while cockatiel on an open palm with her head resting on the fingers. The photos taken within a room.

Conlextions #89
๐ŸŸจ๐ŸŸฆ๐ŸŸฆ๐ŸŸฆ
๐ŸŸฆ๐ŸŸฆ๐ŸŸฆ๐ŸŸฆ
๐ŸŸจ๐ŸŸจ๐ŸŸจ๐ŸŸจ
๐ŸŸฉ๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸฉ๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸช๐ŸŸช๐ŸŸช๐ŸŸช
๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ
Solve Time: 2 minutes, 5 seconds

If Mike Oldfield released “Mistake” as part of Crises (and in the 1960s instead of the 1980s), I probably would’ve gotten a better score. ๐Ÿ˜›

It’s going to be one of those days where it feels like I’ll get nothing productive done. Where I’m just running about trying to address problems in our Dev environment so I could use actually use the thing we’re building. Maybe I should take any attempt to reverse entropy in any way as a win. ๐Ÿ˜ฎโ€๐Ÿ’จ

Test Creek: A Test Story With Evergreen.ink

Had a play with Evergreen.ink this afternoon. It was pretty fun. Made myself a test story called Test Creek which you can try out (the story was written by me but all the images were done using DALL-E).

The experience was quite intuitive. I’ve yet to try out the advanced features, like the Sapling scripting engine, but the basics are really approachable for anyone not interested with any of that.

A screenshot of the Evergreen.ink editor, showing the contents of a card with two options and a preview on the right

I would recommend not writing too much on a single card. Keep it to maybe two or three paragraphs. Otherwise the text will start to flow over the image, like it does on one of the cards in this story. Evergreen.ink does keep the text legible with a translucent background. But still, it’s just too much text.

I should also say that the preview, to the right of the editor, is interactive, meaning that you can use it to jump to cards backed by the options. While I was playing around, I was wondering why there wasn’t a quick way to do this. It wasn’t until I started writing this post that I actually tried the option in the preview, and it worked.

As for the app itself, if I could make one improvement, it would be something like an image picker which would allow me to reuse images already attached to other cards. I’m not sure how best to use images in these types of stories, but the way I was going for was more to accent the story instead of simply illustrating what’s going on in the prose. So I wanted to reuse images over a series of related cards, and in order to do that I had to upload duplicates.

But really, this is quite a minor quibble. On the whole I was quite impress by how well the experience was. It’s not easy trying to express something as complex as an interactive story, and I think Evergreen.ink did a pretty decent job.

So yeah, give it a try. It was quite fun putting this interactive story together. I haven’t got any other ideas lined up, but it would be good to make another one down the line.

Edit: One other thing to be aware of is that the link given to you when you try to share a story requires a login. So if you want to avoid that, you’ll need to choose the Zip option, which basically bundles the story as a static website. You can deploy it to Netlify quite easily (just check the permissions of the files first, I had to chmod 666 them). Thank-you Robb for letting me know.

Also, thank-you to omg.lol for the Switchboard feature. It saved my tale dealing with the new redirect.

๐Ÿ”— PlayStation is erasing 1,318 seasons of Discovery shows from customer libraries

The realization has forced people to more deeply scrutinize their digital media purchases and subscriptions and how they value digital content. It’s also leading to calls for investment in hard copies of media.

I still believe that it’s possible to have a (semi-)perminenant representation of media in the digital realm. You just need to make sure it’s in an open, non-DRMed, file that exists on your file system. I know, easier said than done. But it might be time for me to be better here than I have been.

๐Ÿฅ›๐Ÿฆœ

Should state that both vessels hold ordinary tap water.

Amusing to see myself signing up to a new service. They either donโ€™t offer to save my billing information, or they do and Iโ€™m like โ€œNEVER!โ€ Then I start using it and liking it. Eventually I start getting low balance reminders and Iโ€™m like โ€œwhy didnโ€™t you offer to save my billing information?โ€ ๐Ÿคฆโ€โ™‚๏ธ

Another, slightly modified, DALL-E image. This one’s based on real events (i.e. what happened today during my walk).

A slightly modified DALL-E image. Prompt: an old industrial sign, like one seen in a factory. The sign should have an icon of a person with a hard hat on in silhouette. To the right should be black text days since I hit my head on a log. Below that is a metal card with the number zero. The zero be made to look like it's removable, like it's on metal pegs.

Spent a little more time working on my idea for Dynamo-Browse this week. Managed to get it somewhat feature complete this weekend:

I probably should say a few words on what it actually is. The idea is to make it quick and easy to run pre-canned queries based on the currently selected item and table.

Let’s say you’ve got a table with customer information, and another table with subscription information, and they’re linked with some form of customer ID. If you wanted to see the subscriptions of a customer, up until now, you’d have to copy the customer ID to the paste-board, change the currently viewed table, then run a query to select the subscription with that customer ID. It’s not difficult but it’s extremely tedious.

This change is meant to streamline this. Now, in a script function, you can define a “related item” provider which, if matched against the currently displayed table, will be given the currently selected item, and will return a list of queries that will display items related to the current item (depending on whatever definition of “related” will be). This will be presented to the user as a list. When the user chooses the item, the query will run and the results will be displayed.

Here’s an example of the script used for the screencasts:

ext.related_items("business-addresses", func(item) {
    return [
        {"label": "Customer", "query": `city=$city`, "args": {"city": "Austin"}},
        {"label": "Payment", "query": `address^="3"`},
        {"label": "Thing", "table": "inventory", 
            "query": `pk=$pk`, "args": {"pk": "01fca33a-5817-4c27-8a8f-82380584e69c"}},
    ]
})

ext.related_items("inventory", func(item) {
    sk := string(item.attr("sk"))
    return [
        {"label": "SK: " + sk, "table": "business-addresses", 
            "query": `pk^=$sk`, "args": {"sk": sk}},
    ]
})

Notice how the last business-addresses item specifies the “inventory” table, and that the “inventory” provider actually uses an attribute of the item. Here’s a screencast of that working:

This feature has been on the idea board for a while. I was trying to work out how best to handle the pre-canned queries, especially considering that they will likely be different for each item and table. Some ideas I had were adding additional UI elements that the user could use to configure these queries. These would go into the workspace file, a sort of an embedded database which is created for each session. This was pretty crappy, especially when you consider that workspaces usually only last until the user exists. It was only a few weeks ago when I considered using the scripting facilities to implement this (which, honestly, shows how much it remains under-utilised).

Anyway, I’ve only just finished development of it. I’d still like to try it for the various related items I tend to use during my day-to-day. We’ll see how well it works out.

Walked the Tuggeranong Lake this morning. Perfect day for it. The Eurasian Coots were making the most of it.

Large flock of Euroasian Coots swimming towards a pier of which other birds were preening. Buildings and a footbridge by the waterline in the background. Close up of the Euroasian Coots.

๐Ÿ”— Hardcore Software 065. SharePoint: Office Builds Our Own Server (link pay-walled)

Yes, believe it or not, Iโ€™m reading about how SharePoint was built. I never had a lot of experience with SharePoint myself: although I did work at places which used it, I tried to stay away from Office documents as much as I could, sticking to things like wikis. And yes, I can understand why others may find it pretty crummy (the post gives a few examples of how crummy). But I did find some ideas SharePoint had quite interesting, such as the “everything is a list” concept. I do appreciate this consistent through-line in the product design, much like Unix’s “everything is a file” philosophy. I also like the fact that this extends to user-defined lists, like a very simple database.

Anyway, this paragraph caught my eye:

The idea of Office extended by a website for each Office user and team was incredibly important simply because it made using Office better. It was also a vision we had from the time we acquired FrontPageโ€”everyone should have their own place on the web where it is easy to keep their work and share it with others. We were clearly too early. As we will see it was not just that the world was not ready, the world was anti-ready. SPS fit with the products of the era that remained top-down, complex, and under the full control of IT.

I yearn for the day when organisations make it easy for any employee to whip up an internal webpage for their team. Documents and wikis are nice, but theyโ€™re just so limiting in how they show information. The freedom to use real web technologies to present something as best you think you can, while also keeping the data โ€œin houseโ€ (password protected, stored on servers the company controls, etc) is just an area on office tech that’s missing.

Case in point: I would love to be able to build a website showing the the status of backlog items that I can share with my team. I donโ€™t want to manage the raw data myself: thatโ€™s all being tracked in Jira anyway. But Jira sucks, and itโ€™s really difficult to show an overview of work, especially when they span multiple epics. Having something like a simple dashboard which will pull Jira ticket status and display them as maybe progress bars would be great.

But where am I to host this? Probably not best to do so on the open web.

See also the idea of small databases.

Notice this eastern bearded dragon on my walk today. Not something I usually see during my day to day (granted, I’m not walking my usual routes at the moment). It certainly saw me though.

An eastern bearded dragon on the ground in the alert pose

Really like the word “augment.” I’m using it a lot in the Jira tickets I’m writing. The job is not to modify something or change something; the job is to augment something. To making it better, at least functionally. Feels very positive.

Pocketcasts has started showing star reviews for podcasts I’ve subscribed to in the web-app.

Screenshot of Pocketcasts web-app showing the Aboard Podcast with 1 star review and the tick indicating that I've subscribed to the podcast

Count me as someone who thinks this is a dumb idea. Aside from the fact that it’s completely unnecessary showing stars for podcasts I’m already following (might be more useful if I’m browsing for podcasts, which is something I never really do; I tend to try out podcasts recommended by others), it completely irrelevant to me what others feel about a podcast. If I like it, that’s all that matters. So what that others don’t? Do I have to be reminded of that?

Always a great feeling when you see a bit of code, and you think to yourself “that’s a bizarre thing to do, who wrote this?” Then you turn on annotations and it turns out that the person who wrote it was you. ๐Ÿคฆ

๐Ÿ“บ Dave’s Garage - the Dave Cutler interviews

You know the feeling when you see a YouTube interview of someone talking about their work, and you’re left feeling “gosh, I wish that person also had a YouTube channel.” This is one of those interviews. Fascinating, if short, discussion from the architect of Windows NT.

Edit: This YouTube video might be the full interview. Via Michael Tsai.

๐Ÿ”— DOS_deck

Experience classic games with modern convenience at DOS_deck. With full controller support and a carefully curated game collection, enjoy timeless classics and hidden gems, readily available for instant play in your web browser on devices you already own.

Filing this away to try later. Also interesting to see they’re using JS-Dos for this, the same thing being used by F5 To Run, which is cool.

Via Ars Technica.

Those familiar trails will have to wait a little longer. Got a bit of “bird watching” to do first. ๐Ÿฆœ

Two cockatiels on a table, a yellow one perched by the edge, and a white one perched on some bird play equipment. There are two chairs by the table in shot

Anyone else miss the split-flap displays they had at airports? I mean, screens make much more sense: no mechanical parts, easier to display code-shares, etc. But they donโ€™t come close to a split-flap display in imbuing the feeling of โ€œIโ€™m ready to travel.โ€

๐ŸŽ„

A small Christmas tree, placed next to a window, with the lights on and some ornaments, most of them of birds, one of them a crimson rosella. A lamp is in the background.