Syntax highlighters are wrong (2014)
Syntax highlighters make value judgments about code. Most highlighters judge that comments are cruft, and try to hide them. Most diff viewers judge that code deletions are bad.
Doom 3 in WebAssembly
D3wasm: a port of id Tech 4 / Doom 3 engine to WebAssembly
Plausible Deniability and Gaslighting in Fighting Ad Blockers
Google is planning changes in Chrome impacting ad blocker extensions and people are wondering whether those changes are motivated by self-interest or whether there are plausible, benign explanations.
Who has the fastest website in F1?
I was trying to make my predictions for the new Formula One season by studying the aerodynamics of the cars, their cornering speeds, their ability to run with different amounts of fuel. Then it hit me: I have no idea what I'm doing.
Electron 7.0
Electron 7.0.0 has been released! It includes upgrades to Chromium 78, V8 7.8, and Node.js 12.8.1. We've added a Window on Arm 64 release, faster IPC methods, a new nativeTheme API, and much more!
How Hacker News Stays Interesting
Hacker News buried my post on conspiracy theories in my family due to overheated discussion, not censorship. Moderation keeps the site focused on interesting technical content.
Introduction to Web Development (2018)
A complete intro to web development for developers
Speedy Desktop Apps with GTK and Rust
The web platform is the delivery mechanism of choice for a ton of software these days, either through the web browser itself or through Electron, but that doesn’t mean there isn’t a place for a good old fashioned straight-up desktop application in the picture.
Using TypeScript with React
This post is based on a talk I gave at the React JS & React Native Bonn Meetup.It aims to answer the following questions: What’s TypeScript? How can I ...
How Fragmented Is Android?
Android is deeply deeply fragmented. The Android ecosystem is split between at least 1,728 combinations of OS - Brand - Device Model (Data).
Still Why No HTTPS?
Back in July last year, Scott Helme and I shipped a little pet project that tracked the world's largest websites not implementing HTTPS by default [https://www.troyhunt.com/why-no-https-heres-the-worlds-largest-websites-not-redirecting-insecure-requests/] . We called it Why No HTTPS? [https://whynohttps.
Rust 2020: GUI and Community
In response to the call for blogs about the vision for Rust for 2020, I’m going to write about GUI. I believe the time is right for a native GUI toolkit written in Rust, and that such a thing would fill a very important niche. There is a demand for performance (which, to me, includes startup time, RAM footprint, and…
How to Spoof PDF Signatures
One year ago, we received a contract as a PDF file. It was digitally signed. We looked at the document - ignoring the "certificate is not tr...
Browsh for text-based internet browsing (2018)
The standard for browsing the web over a text-=based terminal is Lynx, right? ...
Ontology Is Overrated: Categories, Links, and Tags (2005)
Based on two talks I gave in the spring of 2005—one entitled "Ontology Is Overrated", and one entitled "Folksonomies & Tags: The rise of user-developed classification."
Urql: a GraphQL client library
Analysis for enterprise leaders from Nearform on AI-native delivery, spec-driven development, AI ROI, governance and modernisation.
Stop Wasting Connections, Use HTTP Keep-Alive
The latest tutorials, best practices, insights and customer stories on the Lob APIs, direct mail, and address verification.
How SAML 2.0 Authentication Works
At its core, Security Assertion Markup Language (SAML) 2.0 is a means to exchange authorization and authentication information between services. Learn how saml works.
Writing HTML in HTML
I've just finished the final rewrite of my website. I'm not lying: this is the last time I'm ever going to do it. This website has gone through countless rewrites – from WordPress to Jekyll to multiple static site generators of my own – but this is the final one. I know so, because I've found the ultimate method for…
A Beginner’s Guide to Chart.js
In this tutorial, we are going to learn how to draw charts with Chart.js and how to customize them to suit our needs.
Preventing Tracking Prevention Tracking
This blog post covers enhancements to Intelligent Tracking Prevention (ITP) included in Safari on iOS and iPadOS 13.3, Safari 13.0.4 on macOS Catalina, Mojave, and High Sierra.