Founder of Sixty North @sixty_north. Director at Transition Elements @TransitElements. "utterly competent". Geoscience Ph.D. Born at 330 ppm CO₂. 🇳🇴🇬🇧

Oslo
Joined June 2009
Robert Smallshire retweeted
Based. Keep these people isolated from the mainstream Design scene.
Radio designer: how many buttons do you need in the front panel? Product manager: yes
Robert Smallshire retweeted
If you wanna dismantle the EU please replace it with the United States or Europe and not 27 nation states that are in a constant conflict with each other with 27 separate approaches to absolutely everything.
11
2
84
Robert Smallshire retweeted
Whoever at WorkOS implemented this: Thank you, thank you, I bless you, I bless your house, your family, the streets on which you walk, thank you thank you
A short video demo.
2
0
I put far too much effort into the typography on the function keys. The f is from an unknown font, so drawn from tracing photographs of the real thing. The digits on f2 to f9 inclusive are in Gorton, but f0 (typographically fø) and f1 differ, so hand-crafted.
1
2
Last night I added Apple Touch Bar support to the Mac version of the BeebEm BBC Micro Emulator to give important missing function keys f0-f9 in iconic red-orange, a copy key in somewhat less iconic olive-brown and, a Break key in desiato black.
2
3
5
🎵 Too many agents on the go... It's a nightmare scenario... 🎶
This distinction between engineering society and lawyerly society is a useful lens.
While mindful that the difference is exaggerated, but still finding some truth in the engineering society vs. lawyerly society distinction, I note that studying and working in France for a year and a half was a very valuable experience for me in seeing a different type of world.
1
Robert Smallshire retweeted
Long time followers will no doubt be amused to learn that I am quite regularly invited to events in Britain --- either as an attendee or as a speaker --- where no location is given, so deep is the assumption of the invitee that events are in London. I respond poorly to this.
Replying to @thomasforth
I must assume given the huge industrial focus of the episode it'll be in Derby. I look forward to it.
2
5
81
Very LinkedIn Agile Consultant: What really matters is continuous improvement. Tiny wins. Every sprint. 🚀 Dev: I used <favourite-coding-agent>. Code’s better now. Not perfect. Very LinkedIn Agile Consultant: NOT PERFECT?! AI SLOP!!
1
Robert Smallshire retweeted
By March 2005, I'd already spent years trying to figure out how a solar array could track the Sun without the use of slip rings, while attached to a spinning space tether. Very late one rainy night the answer came into my mind all at once, and it reminded me of a fan dancer.
Robert Smallshire retweeted
Does anyone know what happened to Grant Searle, who published many minimal and advanced Z80/6502/6809 designs 10-15 years ago? He hasn't been active online for the last 7 years. searle.wales
1
21
94
I’ve cycled almost exactly 2000 km from Oslo 🇳🇴 to Schengen 🇱🇺 without passport and visa free thanks to a treaty signed here in 1985 and incorporated into EU 🇪🇺 law in 1990. One of the greatest freedoms.
3
3
21
Hey @Garmin and @ridewithgps - it seems to be impossible to move routes from RWGPS on an iPad to a Garmin Edge 1040 without going via the Internet. No problem in the Nordics where we bathe in ubiquitous 5G microwaves, but what is one to do on a cycle tour through Germany?!
1
Robert Smallshire retweeted
asyncio is still really wild in 2025. I haven't actively written asyncio code in a while but now that I have done it for a week agian, I noticed that most problems from when I used it last are still unresolved. Problem 1: asyncio.create_task is a massive footgun because it can silently make tasks disappear. You need to hold a strong reference to tasks! Problem 2: The old issue of write() being a hazard is still true. This innocent example is wrong and you need to follow the write() calls with await drain() to not have buffer bloat that can bring you down: Problem 3: You probably already know that with timeout() with a generator inside is bad, should not be used. But in fact pretty much all async generators that involve cancellation scopes are broken. This innocent code will also not work (see this motivating example from PEP 789): Problem 4: pytest-asyncio mostly works, but fixtures are a whole new beast. That's because you can both end up accidentally running in the wrong loop, but you also can build yourself into a deadlock easily. I'm not even sure what exactly the cause is, but there are plenty of open issues where people end up in deadlocks. Problem 5: Speaking of deadlocks, they are super easy to create with asyncio's idea of cancellation paired with the new structured concurrency. For instance if you use TaskGroup and you spawn a task in there that uses aiofiles (which cannot cancel) and you have another task that throws an exception you won't see the error. That's because it tries to cancel the aiofiles read (which is non cancellable) and if no more reads come in you just lock until someone hard quits the program. In general even if you can write asyncio code, writing reliable asyncio code is so much harder. ---- Maybe not quite asyncio related, but there is also trio. But despite the existence of anyio, in practice some code does not yet support it. As an example the the popular asyncpg driver does not support anyio so you're mostly locked into asyncio anyways unless you are really determined. And then there are lots of DX issues like the standard Python console not supporting asyncio or there not being basic file IO in the standard library. But then why not use sync code? In practice that becomes harder and harder because of how much of the ecosystem forces async on you. Using sync code with starlette for instance mostly works, but for all IO you will need to use async anyways. WSGI is a dying protocol at this point and it's not clear if there are people pushing that forward. So even though asyncio is a decade old at this point, it's still so easy to misuse and it makes me sad.
Robert Smallshire retweeted
Amusing to read the coverage of Trump's "sky-high" tariffs in Norwegian news. Here's just a few of Norway's import tariffs: Cheese: 277% Beef: 344% Lamb: 429% Milk: 443% Potatoes: 191% Beets: 158% Roses: 249% Baker's yeast: 21% Casein-based glue: 21.2% Women's tops: 10.7%
Robert Smallshire retweeted
Why do people keep buying printers they hate? A story of capitalism, psychology & technological change
7
5
1
45
Robert Smallshire retweeted
StackOverflow new questions per month. teddit.net/r/programming/com…
2
3
1
12
I watched Back to the Future with my daughter (born 2010). “But 1985 doesn’t seem so different from 1955.” 🤯
4
1
13