Run scripts in a vite project with vite-node
Maybe the easiest way to run a TypeScript program with Node.js
vite-node
Maybe the easiest way to run a TypeScript program with Node.js
grid
and scoped component styles. Tools like Svelte and Astro scoped component styles by default, which has some interesting interactions with CSS concepts like grid
.
Reverse proxying websockets on an existing path requires catching handle by filtering on the Connection and Upgrade headers.
readline
based UI sweetspot Use readline
and a simple recursive descent parser to make powerful personal tools with nice UI.
jj
is a git compatibile version control tool looks promising.
input
events The DOM has a dedicated event—input
—for text entry.
b
, a bug tracker extension for Mercurial Routing around Git with the hg-git bridge.
necessary-evil
maintainer change Observations on implement functions with variadic arguments.
obsolete
attributes for internal code Pick
to simplify testing Using some of the advanced types in TypeScript to deal with large interfaces outside of your control.
A barebones dependency injection function that takes advantage of TypeScripts’s mapped types, and Promises.
An Idiom from Clojure applied to TypeScript.
A quick how-to to work around the limitations on accessing LocalStorage from within a Web Worker instance.
Short version: prefer interface extension over type aliases for structured message types.
Exploring how to use newer features of the TypeScript type system to work with structured messages in the browser.
A rabbit hole about classic adventure game implementations.
On features of enterprise software.
Clojure/West is full of great talks. Here are three that web developers in Clojure should watch.
A work around to ensure that CSS transitions trigger for newly added DOM elements.
Various and sundry observations about altJS languages, with a focus on TypeScript.
The lambda calculus is the basis for functional programming. Church's encodings in the untyped lambda calculus show an interesting pattern that parallels union types in languages like Haskell. Here I try to show how these discriminated union types can be implemented using only javascript functions.
color.js
1.0 color.js
, my color management library for JavaScript, has hit 1.0.
duck-wrapping types
If it doesn't quack like a duck, wrap it in a duck. Or don't.
I steal from Phil Hagelberg's IRC comments again.
In which Phil Hagelberg comments on abstraction.
Why it is my opinion that Clojure is better off with out a CRUD web framework.
Design patterns fell out of favour in the last five or so years. I think there is still some value in them.
Unanswered about defining routes in web applications
An article that looks at templates in web development in the context of pure functions and functional programming.
A professional knows when to sharpen their tools.
A simple but functional implementation of L-Systems in Clojure.
Trevor Burnham's reply to my critique of Coffeescripts comprehensions.
An examination of List Comprehensions in several languages, how Coffeescript's ‘comprehension’ semantics differ from the common case, and limitations that arise.
Ring is the foundation of web programming in Clojure. It has a broad ecosystem of libraries that fullfil many different roles in the web stack. This article introduces the fundamental concepts of Ring as well as four major libraries, and explains common idioms to help you get started quickly.
fnparse
Parser combinators are a powerful way of expressing complex parsers as first class operations in a language with first class functions. This tutorial introduces one such library, fnparse
, for Clojure.
Following my introduction to fnparse
, this article looks at how more common functional programming tools can be leveraged to make parsers that output new parsers.
necessary-evil
Necessary-Evil is an XML RPC library for Clojure.
Using open source technology and data to render maps.
Some observations, both positive and negative, from using CouchDB to build this site.
Thoughts on the appropriateness of monads in Clojure.
Following on from looking at state monads in the context of Clojure, this article looks at variations that add different forms of state-m
of non-determinism.
A close look at how the state monad is implemented and used in Clojure.
Further comparisons between Python and Clojure.
How Python's view of iteration lead me to Clojure.