Posts by James Adam
A Good Enough Engineer
More about James:
https://lazyatom.com
Back to all blog posts
-
Jelly was #1 on Hacker News
Yesterday, Lettini took a chance and posted about Jelly on Hacker News, a discussion site notorious for it's mercurial population of tech-maybe-too-saavy experts. Jelly is a tough sell for some of them, those with the technical skill to pipe email at a low level through custom-built filters running on their own cloud servers.
I'm not going to lie to you. I was pretty nervous.
And yet...
-
Let's talk about conversations
If you subscribe to our newsletter — which you do, right? — then you'll know that recently we've been thinking about conversations.
We're a small group making fun software for people, and we like to have conversations with those people; the lovely folks who like our take on blogging or our super-simple contact form, or who want a copy of the zine, or who just want to say hello. We love talking to these people.
-
· James Adam · TIL
TIL: Tapback Keyboard Shortcuts
If you use Mac, and you use Messages on your Mac, you will probably know that in the not-too-distant past, simple reactions to messages were added: what Apple calls Tapbacks.
These are great for a quick way to say yes (or no, or WTF!?!), but they are a bit of a pain to actually send. You have you right-click on the message, then choose "Tapback...", then click the icon you want, and for a quick reaction, that's not exactly fast.
Well, imagine my delight when I learned today that you can send Tapback reactions using only your keyboard.
To send one in reply to the last message you recieved, just hit Cmd-T and then the numbers 1 to 6 to select the reaction.
-
The Space Between Us
Good Enough is a fully-remote team, and I think it's safe to say that we'll never have a physical office. I've been working remotely for more than ten years, and overall I really like it. I love the flexibility it affords, being more present with our families, and that my employment opportunities are not constrained by the limit of where I can reasonably relocate my physical body every day.
Remote working also particularly suits the kind of work we do. There are many times where we need to discuss things or collaborate deeply on some piece of work, but there are also plenty of occasions where it's perfectly OK, or even desirable, to take time away to do some deeper thinking or exploration.
But being remote from your colleagues does have some downsides, and I think it's important to be conscious of them. Let's talk about one that I like to call the identity anchor.
-
· James Adam · TIL
TIL: Turbo Stream and personalised content
Hotwire and Turbo are great for very quickly and easily adding real-time updating of webpages without requiring the browser to reload the whole page.
But if the information you want to stream back from your server to the client has anything specific to the current user — like using the name "You" instead of "James" — you might hit an issue. So far I haven't found this written up on the web anywhere, so hopefully this will help someone else with the same problem.
-
· James Adam · TIL
TIL: Managing Raspberry Pi software with a bit less pain
For the printer project I'm working on, most of the software behind it runs "in the cloud", but there's some software that needs to run beside each printer, to check for new things to print and manage the process of downloading and sending those things to the printer component itself.
In the current incarnation of the project, this "on the desk" software runs on a small Raspberry Pi computer, which acts as a simple bridge between your Wi-Fi and the printer, funnelling data from our servers to thing that will actually print it out.
-
Cool URLs Don’t Die
If you've been reading our newsletter (and you should be reading our newsletter) you will have seen that I've been building some printers.
This is actually the resurrection of a project I began in 2012 with the help of some colleagues, and while I've been updating it, it's been fun to explore some of the original posts and tweets about the project. Quite a few people made their own printer to connect to the open-source architecture, and it was great to read about their experiences.
... except now, 11 years later, pretty much all of those links are dead. Personal blogs are either gone, or redirect en masse to some new domain. Company blogs share a similar fate: with a few notable exceptions, blogs don't survive company website redesigns, let alone when the company is bought or ceases trading. Even links on esteemed and ongoing tech blogs like Wired haven't survived, despite the content still being available if you search hard enough.
And you know what? That's not cool. Cool URLs don't change. And Cool URLs shouldn't die either. URLs that die are not good enough.
-
· James Adam · TIL
TIL: Turbo Stream broadcasting needs default_url_options to be set
We've been using Turbo Streams in some of our recent prototypes, which makes it really easy and fun to get responsive and fun interactions set up. However, we kept having issues with images sent in a turbo stream response.
If the response was delivered by a normal controller render, e.g.
class ThingController < ApplicationController
def update
@thing = Thing.find(params[:id])
if @thing.update(thing_params)
respond_to do |format|
format.turbo_stream # renders `update.turbo_stream.erb`
end
end
end
end... then any images included in that template would render as you'd expect.
However, any rendering that was triggered by one of the
broadcast_...
methods from turbo-rails — which is how you get content to update in "real time" across many clients — would break. So changing the controller above to something more like this: