30 Nov 24
In practice, the only thing that makes web experiences good is caring about the user experience — specifically, the experience of folks at the margins. Technologies come and go, but what always makes the difference is giving a toss about the user.
19 Mar 24
Right, doing it with WSS is also only a few lines.
let socket = new WebSocket("wss://url.example/chat/here");
socket.onmessage = function(event) {
HTMZ.
When you load a URL into the htmz iframe, the onload handler kicks in. It extracts your destination ID selector from the URL hash fragment and transplants the iframe’s contents (now containing the loaded HTML resource) into your specified destination.
htmz only runs when you invoke it. It does not continually parse your DOM and scan it for special attributes or syntax, nor does it attach listeners in your DOM.
29 Nov 23
DNS Checker provides a one-stop solution for all your website initial setup needs or whenever you want to transfer your domain to a new server or hosting.
24 Feb 23
OS X Yosemite introduced JavaScript for Automation. This makes it possible to access native OS X frameworks with JavaScript. I’ve been digging in to this new world and putting together examples along the way. In this post I’ll explain the basics and step through building a small example app.
22 Jan 21
Writing A Multiplayer Text Adventure Engine In Node.js: Adding Chat Into Our Game (Part 4)
Writing A Multiplayer Text Adventure Engine In Node.js: Creating The Terminal Client (Part 3)
Writing A Multiplayer Text Adventure Engine In Node.js: Game Engine Server Design (Part 2)
07 Aug 19
27 Apr 19
18 Sep 17
20 Mar 14
Imperative programming: telling the “machine” how to do something, and as a result what you want to happen will happen. Declarative programming: telling the “machine”1 what you would like to happen, and let the computer figure out how to do it.