-
Defense contractors should lean in to what they do in their recruitment ads. None of this “explore growth opportunities” fluff. Go with something like “Love blowing stuff up? We’ve got the job for you!”
-
It takes me longer to come up with half-baked tools for writing Jira tickets than to just write the Jira tickets. I still think of making them though. Because I just can’t stand writing Jira tickets in Jira.
-
Learnt two things about the Vision Pro buying experience from a colleague today:
- You’ll need an iPhone. Guess that rules me out (well, that plus I’m not in the US)
- The thing that scans your face is actually an App Clip, which is the only case I’ve heard of one being used in a non-demo way.
-
Thoughts on The Failure of Microsoft Bob
Watching a YouTube video about Microsoft Bob left me wondering if one of the reasons why Bob failed was that it assumed that users, who may have been intimidated by a GUI when they first encountered one, would be intimidated for ever. That their level of skill will always remain one in which the GUI was scary and unusable, and their only success in using a computer is through applications like Bob.
Continue reading → -
Build Indicators
AKA: Das Blinkenlights
Date: 2017 — now
Status: Steady Green
I sometimes envy those that work in hardware. To be able to build something that one can hold and touch. It’s something you really cannot do with software. And yeah, I dabbled a little with Arduino, setting up sketches that would run on prebuilt shields, but I never went beyond the point of building something that, however trivial or crappy, I could call my own.
Continue reading → -
You don’t need to be an iOS developer to get the “build it, and see what happens” experience. Just get a CloudFormation stack with a DynamoDB table and GSI. Oh, you want to add a new attribute to an index, or change an index’s projection? Well, just do it and see what happens (it’ll probably fail).
My favourite limitation: you cannot deploy a CloudFormation delta that contains more than one GSI change on a single table (I’m pretty sure it’s per table and not per delta). If you need to make two GSI changes, you’ll need to do two CloudFormation deployments. This is super fun when you’re banking changes that will be pushed to prod in one hit, and you’ve forgotten earlier changes you made to GSIs.
-
I removed the paper wasp nest this morning. Surprisingly, doing nothing didn’t solve the problem. The nest was growing and was impeding my ability to hang out my washing. So it had to go. Good thing it was on a leaf, which made it easy to remove it once the wasps themselves were dealt with.
-
Bocce in a nearby park this afternoon. A bit sunny but otherwise a really nice day for it. Also had a spectator for a few minutes:
-
Chris Coyer writes about companies always asking about our experience:
In a way, it’s hard to blame companies because they honestly want to know and, in the best-case scenario, actually use what they get to make things better. But it’s oh-so-overwhelming. Just constantly about every single little thing.
This annoys me too, particuarily for software I have to use. I’m constantly getting ask how my Slack Huddle went. But to Slack’s credit, theirs are reasonably nonintrusive. Less so is the one from Docker, which throws up a feedback modal just when I’m about to do something in their console.
-
Reading Manton’s post this morning reminds of one the projects I worked on. It was a Java GUI app called CBL that we would deploy to Windows machines of our customers. It would constantly crash and whenever it did, it was impossible to get the stack-trace. I added a class which would show the stack-trace to the user, so they could copy and paste it to support. I could’ve named it anything but I chose the name “CBLMessageOfDeath”.
It’s not nearly as creative as “vetos” but, much like Manton, it made me smile whenever I had to work with it. And compared to alternative names like “ErrorDialog”, it did a better job of being more interesting and memorable. It’d had to, or I wouldn’t remember it after a decade and a half.
-
Working on one of the admin sections of the project I was alluding to yesterday. Here’s a screencast of how it’s looking so far.
The styling and layout is not quite final. I’m focusing more on functionality, and getting layout and whitespace looking good always takes time. But compared to how it looked before I started working on it this morning, I think it’s a good start.
-
🔗 The amazing helicopter on Mars, Ingenuity, will fly no more
Ingenuity has been an incrediable achievement. The engineers at NASA should be so proud of themselves. It’s sad to see this chopper grounded now, but seeing it fly for as long as it did has been a joy. Bravo!
-
It’s a bit frustrating that iOS treats all apps as if they’re info-scraping, money-grabbing, third-class citizens. How many times do I have to grant clipboard access to NetNewsWire before they realise that yes, I actually trust the app developer?
This applies to Safari’s treatment of websites as well, with their ridiculous purge of cookies and stored data after 7 days, no exceptions.
-
Why I Use a Mac
Why do I use a Mac?
Because I can’t get anything I need to get done on an iPad.
Because I can’t type to save myself on a phone screen.
Because music software doesn’t exist on Linux.
Because the Bash shell doesn’t exist on Windows (well, it didn’t when I stopped using it).
That’s why I use a Mac.
Continue reading → -
I’ve been bouncing around projects recently but last week I’ve settled on one that I’ve been really excited about. This is reboot five of this idea, but I think this time it’ll work because I’m not building it for myself, at least not entirely. Anyway, more to say when I have something to show.
-
Shocking to hear Gruber on Dithering tell that story about the developer’s experience with Apple’s DevRel team. To be told, after choosing to opt out from being on the Vision Pro on day one, that they’re “going to regret it”? Is it Apple’s policy to be offensive to developers now?
-
Broadtail
Date: 2021 – 2022
Status: Paused
First project I’ll talk about is Broadtail. I think I talked about this one before, or at least I posted screenshot of it. I started work on this in 2021. The pandemic was still raging, and much of my downtime was watching YouTube videos. We were coming up to a federal election, and I was getting frustrated with seeing YouTube ads from political parties that offend me. This was before YouTube Premium so there was no real way to avoid these ads. Or was there?
Continue reading → -
Don’t mind me. Just eyeing off a pigeon that’s looking at me funny.
-
I don’t understand why Mail.app for MacOS doesn’t block images from unknown senders by default. They may proxy them to hide my IP address, but that doesn’t help if the image URLs themselves are “personalised”. Fetching the image still indicates that someone’s seen the mail, and for certain senders I do not want them to know that (usually spammers that want confirmation that my email address is legitimate).
-
Do browsers/web devs still use image maps? Thinking of something that’ll have an image with regions that’d run some JavaScript when tapped. If this was the 2000s, I’d probably use the map element for that. Would people still use this, or would it just be a bunch of JavaScript now? 🤔
-
Former site of a cafe I use to frequent. Kind of amazing to see how small the plot of land actually is, when you take out all the walls and furniture.
-
TIL about the JavaScript debugger statement. You can put
debuggerin a JS source file, and if you have the console open, the browser will pause execution at that line, like a breakpoint:console.log("code"); debugger; console.log("pause here");This is really going to be useful in the future.
-
Really enjoyed listening to Om Malik with Ben Thompson on Stratechery today. Very insightful and optimistic conversation.
-
Phograms
Originally posted on Folio Red, which is why this post references "a new blog".
Pho-gram (n): a false or fanciful image or prose, usually generated by AI*
There’s nothing like a new blog. So much possibility, so much expectation of quality posts shared with the world. It’s like that feeling of a new journal or notebook: you’re almost afraid to sally it with what you think is not worthy of it.
Continue reading → -
Just thinking of the failure of XSD, WSDL, and other XML formats back in the day. It’s amusing to think that many of the difficulties that came from working in these formats were waved away with sayings like “ah, tooling will help you there,” or “of course there’s going to be a GUI editor for it.”
Compare that to a format like Protobuf. Sure, there are tools to generate the code, but it assumes the source will be written by humans using nothing more than a text editor.
That might be why formats like RSS and XML-RPC survived. They’re super simple to understand as they are. For all the others, it might be that if you feel your text format depends on tools to author it, it’s too complicated.
-
I’m starting to suspect that online, multi-choice questionnaires — with only eight hypotheticals and no choice that maps nicely to my preference or behavior — don’t make for great indicators of personality.
-
The AWS Generative AI Workshop
Had an AI workshop today, where we went through some of the generative AI services AWS offers and how they could be used. It was reasonably high level yet I still got something out of it.
What was striking was just how much of integrating these foundational models (something like an LLM that was pre-trained on the web) involved natural language. Like if you building a chat bot to have a certain personality, you’d start each context with something like:
Continue reading → -
I don’t know why I think I’ll remember where I saw an interesting link. A few days go by, and when I want to follow it, surprise, surprise, I forgot where I saw it. The world is swimming in bookmaking and read-it-later services. Why don’t I use them?! 🤦♂️
-
Replacing Ear Cups On JBL E45BT Headphones
As far as wearables go, my daily drivers are a pair of JBL E45BT Bluetooth headphones. They’re several years old now and are showing their age: many of the buttons no longer work and it usually takes two attempts for the Bluetooth to connect. But the biggest issue is that the ear cups were no longer staying on. They’re fine when I wear them, but as soon as I take them off, the left cup would fall to the ground.
Continue reading → -
🔗 Let’s make the indie web easier
Inspiring post. I will admit that while I was reading it I was thinking “what about this? What about that?” But I came away with the feeling (realisation?) that the appetite for these tools might be infinite and that one size doesn’t fit all. This might be a good thing.
-
Argh, the coffee kiosk at the station is closed. Will have to activate my backup plan: catching the earlier train and getting a coffee two stations down. Addiction will lead you to do strange things. ☕
Oh, that one’s closed as well. 😢
-
Finished reading: Twenty Bits I Learned about Making Websites by Dan Cederholm 📚
Got this book yesterday and read through it in about an hour. A joy to read, and a pleasure simply to hold.
-
Elm Connections Retro
If you follow my blog, you would’ve noticed several videos of me coding up a Connections clone in Elm. I did this as a bit of an experiment, to see if I’d would be interested in screen-casting my coding sessions, and if anyone else would be interested in watching them. I also wanted to see if hosting them on a platform that’s not YouTube would gain any traction.
So far, I’ve received no takers: most videos have received zero views so far, with the highest view count being three. I’m guessing part of the reason is that the audience for this sort of stuff is just not there, or maybe it is but they’re spending all their watch-time on YouTube and Twitch. Building an audience on a platform like PeerTube might be feasible, but it’ll be quite a slog to fight for oxygen from these juggernauts.
Continue reading → -
If someone asked me what sort of LLM I’d used for work, I wouldn’t go for a code assistant. Instead, I’d have something that’ll read my Slack messages, and if one looks like a description of work we need to do, it’ll return the Jira ticket for it, or offer to create one if I haven’t logged one yet.
-
On Go Interfaces And Component-Oriented Design
Golang Weekly had a link to a thoughtful post about interfaces. It got me thinking about my use of interfaces in Go, and how I could improve here. I’ve been struggling with this a little recently. I think there’s still a bit I’ve got to unlearn.
In the Java world, where I got my start, the principal to maintainable systems was a component-based approach: small, internally coherent, units of functionality that you stick together. These units were self contained, dependencies were well defined, and everything was tested in isolation. This meant lots of interfaces, usually defined up front before you even start writing the code that uses them.
Continue reading → -
So apparently tonight’s earworm is lesser known songs from Men At Work’s “Business As Usual” album, like People Just Love To Play With Words, I Can See It In Your Eyes, and Be Good Johnny. 🎵
-
In the end it took significantly more time to write about it then to actually do it, but the dot product approach seems to work.
-
🎥 Elm Connections #7: Deploying
In which I round out the series by deploying Clonections to Netlify.