WTF? Chromium (2016)
Chromium, like Chrome, runs Google's A-B trials (or Field Trials) on users' computers. This is what happened when one of those locked up my machine without warning.
Deploying ES2015+ Code in Production Today
Most web developers I talk to these days love writing JavaScript with all the newest language features—async/await, classes, arrow functions, etc. However, despite the fact that all modern browsers can run ES2015+ code and natively support the features I just mentioned, most developers still transpile their code to…
ASCII and Unicode quotation marks
Do not use the ASCII character 0x60 (grave accent) as a left quotation mark together with 0x27 (apostrophe), because it will look silly with modern correct fonts.
CSS in JavaScript is like replacing a broken screwdriver with your favorite hammer
There's a ton of interest these days in 'CSS in JS'. The premise is simple: CSS operates in a global namespace, which can result in undesirable side effects, spaghetti code, and extremely difficult to maintain codebases. JavaScript used to do this, and we fixed it by encapsulating everything in modules and using tools…
JavaScript in Parallel: Web Workers and SharedArrayBuffer
Common legal challenges and effective strategies in open source software development. Ensure your projects are legally sound & compliant
‘This’ in JavaScript
Master JavaScript 'this' keyword: Learn six contexts where 'this' changes value. Essential for OOP and frameworks.
Angular 2/4 Is Too Little Too Late
TL;DR — AngularJS was a decent idea in 2012 but in 2017, the JS ecosystem has surged past Angular in maturity, flexibility, and…
What should follow the web?
Design principles and an instantiation for a post webapp world
Bringing the web up to speed with WebAssembly
Bringing the web up to speed with WebAssembly Haas et al., PLDI 2017 This is a joint paper from authors at Google, Mozilla, Microsoft and Apple describing the motivations for WebAssembly together w…
A first look at WebAssembly performance
WebAssembly gives us the promise to run high performance code in the browser in a standardized way. Now that there are a few WebAssembly previews available I decided it’s time to take a look at their performance. One source for benchmarks is the well known Computer Language Benchmarks Game and I decided to pick nbody…
Qbrt – Cross-platform HTML/JS desktop apps using the Firefox Gecko runtime
I recently blogged about discontinuing Positron. I’m trying a different tack with a new experiment, codenamed qbrt, that reuses an existing Gecko runtime (and its existing APIs) while simplifying t…
A ReasonReact Tutorial
An in-depth introduction to Reason/OCaml and the official React.js bindings, aimed at JavaScript developers.
JavaScript is Eating the World
NodeJS is quickly becoming one of the most commonly used language in building web applications and is beginning to find its way into the Enterprise.
Is Semantic Versioning an Anti-Pattern?
The classic X.Y.Z style of software numbering, sometimes known as Semantic Versioning, may be hurting more than it helps. Semver.org has codified how these numbers should be used for some cases, describing what is meant by the major and minor version numbers, when to change them, what
The scourge of web analytics
I’ve been making web apps since 2003, which means that I’ve been doing this for fourteen years now, or it means that I can’t count. So, there are few people more qualified than me to tell you this:
Do we need a new heading element in HTML?
There's a proposal to add a new <h> element to the HTML spec . It solves a fairly common use-case. Take this HTML snippet:
On the Perceived Value of EV Certs, Commercial CAs, Phishing and Let's Encrypt
Last week I wrote about how Life Is About to Get a Whole Lot Harder for Websites Without HTTPS [https://www.troyhunt.com/life-is-about-to-get-harder-for-websites-without-https/]. Somewhere in the comments there, the discussion went off on a tangent about commercial CAs, the threat
Mavo: An HTML-based language for creating many kinds of web applications
Today I finally released the project I’ve been working on for the last two years at MIT CSAIL : An HTML-based language for creating (many kinds of) web applications without programming or a server backend. It’s named Mavo after my late mother ( Ma ria V er o u), and is Open Source of course (yes, getting paid to work…
Django project optimization guide – Part 1
Django is a powerful framework used in many great projects. It provides many batteries, that speed up development and therefore reduces the price of it. When a project becomes large and is used by many users you inevitably will run into performance problems. In this guide, I will try define potential problems and how…
JavaScript Fatigue or My History with Web Development
I’ve only been a full time web developer for the past 5 years. It’s barely enough time to start calling myself a “senior” Software Engineer. In that short period of time the web technology stack has…
Phoenix WebSockets under a Microscope
This is a code-reading and exploration post about the WebSockets side of Phoenix. It builds upon some of the tracing techniques showcased in the previous post, to observe some of the internals of Phoenix. It also features some tricks I commonly employ to debug WebSocket related issues. The title and nature of this…
Learn React with Copywork
Tired of making TODO apps over and over? Try this instead.