Hosting SQLite databases on GitHub Pages or any static file hoster
I was writing a tiny website to display statistics of how much sponsored content a Youtube creator has over time when I noticed that I often write a small tool as a website that queries some data from a database and then displays it in a graph, a table, or similar. But if you want to use a
The top-ranking HTML editor on Google is an SEO scam
I went down a rabbit-hole analysing a competitor and discovered a black-hat SEO operation involving tens of thousands of websites.
I bought 300 emoji domain names from Kazakhstan and built an email service
I bought 300 emoji domain names from Kazakhstan and built an emoji email address service. In the process I went viral on Tik Tok, made $1000 in a week, hired a Japanese voice actor, and learnt about the weird world of emoji domains.
TabFS: Mount your Browser Tabs as a Filesystem
A browser extension that mounts your browser tabs as a filesystem on your computer.
Firefox is the alternative to a Chrome hegemony
Supposedly today we have a lot of browsers to choose from - Google Chrome, Safari, Microsoft Edge, Firefox, Brave, Opera, Vivaldi, etc. Having choices is a good thing, right? Nobody wants to relive the time of almost complete Internet Explorer domination again. Unfortunately our choices are significantly fewer than…
Ditherpunk: The article I wish I had about monochrome image dithering
I always loved the visual aesthetic of dithering but never knew how it’s done. So I did some research. This article may contain traces of nostalgia and none of Lena.
Modern Javascript: Everything you missed over the last 10 years (2020)
JavaScript has come a long way since I knew it as the “D” in DHTML. For anyone like me, who’s been reluctant to use the latest syntax that could require polyfills or a transpiler, I’ve written this cheatsheet to get you caught up on all the goodness that’s widely supported in modern browsers.
My Current HTML Boilerplate
Every element I use for the basic structure of a HTML document, with explanations why.
The unreasonable effectiveness of simple HTML
I've told this story at conferences - but due to the general situation I thought I'd retell it here. A few years ago I was doing policy research in a housing benefits office in London. They are singularly unlovely places. The walls are brightened up with posters offering helpful services for people fleeing domestic…
I Still Use RSS
Usable Security, Human-Computer Interaction & AI, from a UNIX perspective.
Screw it, I’ll host it myself
It’s all fun and games until someone loses an eye. Likewise, it’s all fun and games until someone loses access to their private and/or business data because they trusted it to someone else.
Google Chrome to remove detailed cookie and site data controls
A month ago I ran into an obscure Google Chrome bug on macOS that caused the "All cookies and site data" page in Chrome settings ( chrome://settings/siteData ) to load very slowly. You can see this page if you open Preferences, select "Privacy and security", "Cookies and other site data", and then "See all cookies and…
Let’s fix font size
What happens when you set fontSize: 32 in your favorite editor
The mermaid is taking over Google search in Norway
A weird thing is going on with Google search in Norway right now. Spammers are taking over.
I no longer trust The Great Suspender
I know a number of folks use The Great Suspender to automatically suspend inactive browser tabs in Chrome. Apparently recent versions of this extension have been taken over by a shady anonymous entity and is now flagged by Microsoft as malware . Notably the most recent version of the extension (v7.1.8) has added…
The most underused browser feature: reader mode
A great feature that is available in almost every browser allows you to reject the cookie consent popup.
Breaking GitHub Private Pages for $35k
Abusing CRLF, cache poisoning, and other misconfigurations for a no-interaction XSS against GitHub Private Pages.
Apps Getting Worse
Too often, a popular consumer app unexpectedly gets worse: Some combination of harder to use, missing features, and slower. At a time in history where software is significantly eating the world, this is nonsensical. It’s also damaging to the lives of the people who depend on these products.
RSS is wonderful
Inspired by Web Rings from the 90s, I created a tool for serendipitous discovery of blogs called RSS Discovery Engine. Similar to how web rings work, I make the assumption that interesting blogs will tend to link to other related blogs, and therefore, linked blogs are likely to also be interesting.
Google Analytics: Stop feeding the beast
Google Analytics is only very superficially free. Why I removed it, what it really costs your users, and the privacy-friendly alternatives I use instead.
I keep making things out of checkboxes
Something happened earlier this year where I got on a run making checkbox animations and just couldn’t stop.
Use console.log() like a pro (2020)
What console.log() does, where to find console logs in the browser and Node.js, with examples, plus console methods like table(), group() and time().
HTML Tips (2020)
20 HTML tips with examples: mailto and tel links, opening links in a new tab, lazy loading, a native accordion, range sliders, download links and more.
What's Inside the EU Green Pass QR Code?
Here in Austria, you need to be either vaccinated against, tested negative for, or have recovered from COVID-19 to go to the pub (or pretty much everywhere) right now. If you don't want to carry around your paperwork proving one of those, you can alternatively show your Green Pass QR code to be let in.
Brave, the false sensation of privacy
ebin.city is a short 4-character .city domain available for buy. Listed at $100 — secure it before someone else does.
Facts every web dev should know before they burn out and turn to painting
Writing at the end of the world, from Hveragerði, Iceland
Nginx Playground
New tool: an nginx playground
Opting Your Website Out of Google's FLoC Network
Google recently announced the rollout of their Federated Learning of Cohorts (FLoC), a new advertising-surveillance initiative that seeks to replace third-party cookies with a new user profiling technique that garners data generated by the browser itself.