I have a weakness. I love listening in to other people's conversations on the bus! I was sat behind a gaggle pride squad of teenage girls on the bus. They were variously complaining about their schoolwork, parents, and love-lives. I'm not going to attempt to recreate their vernacular, but the conversation went something like this: "Why won't Daren answer my WhatsApps?!" "Is he leaving you on read?" "Yeah, but he gets loads of messages. I just want him to call me!" "Send him some cash, …
Continue reading →
Here's a simple scrap of CSS which you can Ctrl+C and Ctrl+V kbd { border: .1em solid #aaa; border-radius: 15%; display: inline-block; padding: .1em .5em; background: linear-gradient(180deg, #fff, #fff, #fff, #ddd); user-select: none; cursor: pointer; color: #000; font-weight: bold; } kbd:hover { background: linear-gradient(0deg, #fff, #fff, #fff, #ddd); } Features Semantic use of the kbd element Uses em to ensure it is consistent with the font…
Continue reading →
ISPs suck. They're designed to. The A in ADSL stands for "Asymmetric". That is, your download speed is faster than your upload speed. This makes sense for most domestic purposes. Most people suck down a lot more than they push up. But we've now entered the (permanent?) work-from-home era. If you're anything like me, you're spending more time broadcasting video than you ever did before. It's painfully obvious when you're stuck on a video call with someone who has restricted upload speeds.…
Continue reading →
I started dating Liz - my now wife - one cold January back at university. We were young and disgustingly in love. This was it - 💕true love💕! And then, right in our honeymoon phase, she left to Australia for the summer holidays. We both wailed and made overly dramatic speeches about how we'd stay true to each other. And we'd write every day! And nothing would tear us apart! Those eleven weeks sssuuuuuccccckkkkkeeeeddddd! Skype hadn't been invented, and long distance calls were prohibitively exp…
Continue reading →
I love reading Changelogs - but I hate writing them. Here's what's changed with SuperTinyIcons since I launched it in 2017. It's a project to create SVG logos of popular services in under 1KB. Maximum filesize is 1,023 bytes. New Contributors! What started off as just me noodling around, has now attracted over 60 contributors! Some just drive-by and make a single change, others stay for a while and contribute loads. Which is nice. New icons! The project started with 80 icons. Since then…
Continue reading →
Early Internet pioneer, Jon Postel, beautifully captured the "Robustness Principle" for networked communications. "Be strict in what you send, and generous in what you receive." That is, any computer sending data to another, should stick closely to the specification for that communication channel. Any computer receiving data, should expect that the sender isn't following the principle, and interpret the data as best as possible. This is what makes the modern net work. We expect errors in…
Continue reading →
Imagine that you're a spotty 16 year-old. You've just discovered philosophy. You will almost certainly have a conversation like this... Dude... DUDE! What if... What if, like, we're all just brains in a jar and, like, a machine is projecting reality around us...? Whoa...! I bet you've had that conversation with someone. Probably after you first watched The Matrix. As a philosophy, it is a lot less modern than you might think: I shall suppose that some malicious, powerful, cunning demon…
Continue reading →
Look - I get why your app or service wants me to pay a subscription. Recurring revenue is useful for a business. Your ARPU KPI is OMG to your VC. And, no doubt, there's research showing how people are more likely to eat a kitten than cancel a subscription. But I hate it. I resent having to expend mental energy to keep track of my subscriptions. Making sure they're still good value for money. That you haven't sneakily upped the price. I detest your constant, pathetic whines to "TRY ONE MONTH…
Continue reading →
Eleven years ago, the BBC announced plans to encrypt all of its free-to-air digital TV channels. The technology world was aghast! I saw thousands of Tweets from hundreds of people, angry blog posts, mailing lists erupting with fury. There may even have been a petition. The regulator, Ofcom, announced an enquiry and solicited for feedback. Terence Eden is on Mastodon@edentDespite all the retweeting & blogging, only 90 people bothered to respond to Ofcom's consultation on BBC encryption…
Continue reading →
Dark Mode is the new cool. Apps which automatically switch to an eye-friendly palette when lighting conditions are poor. Nifty! Most of the time, it's as simple as making the text a lightish colour, and the background a darkish colour. But all that fails when you use transparencies in images. Here's a quick example. Using the GitHub app in dark mode, I visited a repo which used a transparent image as an illustration: Yikes! I can't read most of that text, even if I whack up the brightness…
Continue reading →
This is the latest of my many terrible lockdown-induced ideas. I'm saving money on commuting. So I'm spending it on tech-crap I really don't need. I bought a new laptop sticker. Anyway, enough waffle, here's the end result: This uses 2-frame lenticular printing. History No browser supports the <blink> element any more. It used to make text blink. It was a silly idea that got out of hand. And now I have summoned it back to life in physical form. I am bad. Please don't report me to…
Continue reading →
(Written because I couldn't find an easy guide online.) Here's the code (formatted for readability): <time datetime="{{page.first_published_at|date:"c"}}"> {{page.first_published_at|date:"j F Y"}} </time> You can also use last_published_at if it is a page which has been updated. WHY?!??! Semantics. HTML5 contains the <time> element. The contents of it show up as normal running text, but the metadata gives information to anything that reads the…
Continue reading →