On a whim, I tried to reanimate my 2016 iPhone SE. Oh, and also for serious web testing, of course! Last time I checked, the Lightning port was erratic and I needed to firmly press the connector at an angle. Not anymore! I pulled out some nasty dust bunnies from the port and it’s charging again.
Or is it?

Ugh, that screen still makes me extremely uncomfortable. (The image on the screen, not so much the shattered glass.) Back when this was my main and only phone, I never knew if it was actually charging a not. There’s a version of that screen with and without a lightning cable at the bottom, and I was never sure if I had shoved in the lightning plug at the right angle. Reddit to the rescue! More specifically (and aptly), /r/CrappyDesign:

After some minutes of charging it woke up again, and this website’s still looking good even on a 320×568 pixel display. In landscape mode, too!

Bonus: It has a less embarassing screen time report than my main phone… :)

Even better: Since the touch sensor still works (and still recognizes my thumb), I can finally pay for my groceries with my thumb again instead of my face! No more twisting my head weirdly towards the phone at the counter!
Update: Well, that didn’t work. The olde SE wouldn’t pick up the NFC (?) signal when it was paying time. Good thing it does not look sketchy at all to try paying with an aged, shattered phone and then pulling out a second, different phone! :) Later I found out that while Apple Pay should still work, my banking app to re-verify the credit card on the phone requires at least iOS 16 now. That’s a bummer, especially since the 1st-gen iPhone SE is still receiving iOS updates from Apple, nine years after its release (currently on 15.8.3)…
Yes, creating JavaScript games with PDFs is cool and all…
(see: Doom, Tetris, Breakout, Snake, etc.)
…but you know what’s really cool? Creating PDF content with JavaScript!
Now, neither interactive PDFs nor PDF-generating JavaScript gizmos are really new, but I was unaware about the “dynamically create a PDF in the browser” part. I’ve been maintaining a cheat sheet for all my infodesk shifts at a well-known demoscene party, mainly for myself, but also in the hopes that it might be useful for my team mates. I’ve used LibreOffice (and later, InDesign) to manually assemble all the shifts and events into a handy one-pager. Needless to say, it was a nightmare to update, and error-prone on top.
Last year, I wondered: What if I could create all the timesheet minutiae automatically from the official sources (internal Wiki, JSON data of the events and airport busses) and forge it into a useful, aesthetically pleasing PDF?
Turns out: It’s easy and fun, thanks to the power of pdfmake.js. Again, this is neither new nor groundbreaking, but as someone who has gone through his fair share of PDF generation stunts in Java land – directly, exact, and cumbersome with iText, and through the horrid abstraction jungle of a HTML-to-PDF pipeline – this was really, really neat. An instance of “Look how far we’ve come!”, to me at least.
Here’s the timesheet tool I built, and in case it doesn’t work, here’s the PDF output. But it does work, even on your phone – we’re really living in the 21st century! :) Kudos to Bartek Pampuch and Libor M. of pdfmake, and Devon Govett of pdfkit.
PS: Also, the charming “full circle” nature of this process doesn’t escape me, with a client-side JavaScript PDF generation process at the start and a client-side JavaScript-based PDF display engine in the browser at the very end…
I’ve been blogging here for roughly a year now, and I love it! It feels nice being a part of the oldschool web, especially with so many social media sites going to shit.
To celebrate, I refactored the overall design a bit, and freshened up on web stuff. CSS grids are nice and weird at the same time – you can specify your rows and columns using ASCII art (nice), but the elements are also decoupled from the markup order (weird). Of course I also ran into some browser edge cases in the process*. At least that’s still the same as it was thirty years ago, when I started learning HTML on the Amiga! :)
body { grid-template: ". hd hd ." 88px ". r1 r1 ." 8px ". ts ts ." min-content ". r2 r2 ." 8px ". mn sd ." auto ". ft ft ." 36px / auto 640px 320px auto; }
*) The edge case in question:
When making the browser window really narrow, the desktop versions of Chrome and Firefox
trigger the overflow:auto behavior of <pre>
elements too late,
as if they’re ignoring the right margin of the parent element. This only happens when the body’s layout
is display:grid. Luckily, the margins look okay on mobile (and, strangely, also in Chrome
when simulating smaller devices in the developer console).
I really don’t have a target audience in mind, I just write stuff that I would enjoy reading myself. Of course it’s awesome seeing my post making the rounds in forums, getting upvotes on Two Stop Bits, being featured on amiga-news.de or Hackaday, getting showcased on Twitch, being invited to a video podcast, and receiving personal feedback. Shortly after I started with all the new content a year ago, Grip of datagubbe.se sent me a cordial message of appreciation, and coming from someone who also curates a lovely share of real estate in the oldschool web, that made my day back then!
In the oldschool web spirit of “What’s Cool?”, below are some post and projects from the last year that you might enjoy.

- strss
Relaxing soundspheres in 512 bytes - Bringdienst für Altphilologen
(German) Humanistischer Quatsch: Wie dekliniert man „lieferando“? - Modding the Amiga boot hand
A custom Kickstart ROM with style - Worms VBI
Worms in Teletext… on the Amiga! - Coppenheimer
Real-time memory inspection for the Amiga - Knob-Out
Play Breakout with your volume control - Musique non stop
My favorite Teletext piece of 2024 - Decrypting the Revision logo
What’s in the Revision logo? Answer: nothing :) - Amiga Topaz 1.4
A nerdy journey in typographic archaeology - new art
A quirky Amiga demo in 3D - Geschenkalarm
Sizecoding alert! - Sherlock Horse
I love that guy! (Also in Teletext)
Another typography post, again? It seems like my subconcious is already preparing for the next Revision party, side-tracking me with procrastination distractions instead of doing actual brainstorming for ideas…
Anyhoo. As an update to the still very much present epidemic of ASCII-only TikTok fonts, there’s a silver lining: One of the new default fonts not only has umlauts, but even a capital sharp s!

Earlier today I watched a YouTube video showing symptoms of another epidemic: typographic replacements in code examples!

I was inches short of installing JDK 22
to check if my proposed
quirks paste mode
might have actually been implemented.
Over at Bluesky, I helped solve a tough typeface investigation, leading to an obscure font rarely anyone on the interwebs has seen before. :) Of course there’s a Google easter egg for that, too…

Added: Also at Bluesky, I saw this weird replacement character. It does look nicer than �:

It’s supposed to be 🫶, U+1FAF6 HEART HANDS:

It’s encoded as a U+D83E U+DEF6 surrogate pair, or f0 9f ab b6
in bytes
– is that a mis-encoding? More importantly, where does that cool „no glyph“ image originate? Is
it from Bluesky’s UI font?
No, it seems to appear with completely unrelated fonts,
too.
Is it a Windows thing?

Who designed this? It sure looks like an ad-hoc placeholder by a programmer… Also, there are T-shirts with that design?!
Edit: No, it actually comes from the font! Seems to be
the default .notdef
glyph produced by the
Glyphs
font editor.
My suggestion for a capital sharp S in Topaz Unicode has been accepted! The font is 100% sharper now, finally having both a lower-case and an upper-case ß! :)

- topaz-unicode.zip
Direct download link of the latest version
This might be a hot take, and I may be biased towards my childhood Amiga 500, but a green power LED just gives me the ick.

(While posting this, I unfortunately also noticed that there were so many Don’t hug me I’m scared episodes to catch on…)