Articles
- computing Patterns in register map design 20230520
- the world Requiem for Strawberry 20211011
- computing A taxonomy of I/O architectures 20210313
- computing A brief introduction to SCSI 20200909
- fiction Kolmogorov's AI 20200306
- computing Total Advertising Denial 20191112
- computing XML is almost always misused 20191029
- computing Cloudflare considered harmful 20191023
- computing The i.MX8 cannot be deblobbed 20190611
- computing Rethinking files 20190602
- computing Phone numbers must die 20170116
- computing Rackmount Improv HSM 20161125
- computing Why I don't like smartphones 20160213
- computing The Normativity Manifesto 20160210
- computing Zero-G Programming 20160207
- computing The Bourne Ambiguity 20160206
- computing Nexuses Redux: Nativity 20160206
- computing The Straight Line Principle 20151001
- computing On Nexuses 20150904
- computing Insyde BIOS Issues 20130614
- computing Coroutines in C 20130314
- computing A usable Linux desktop 20130227
- computing Notes on building lexers 20130227
Software
Programs
- acmetoolA client utility for retrieving certificates from ACME (Let's Encrypt) servers.
- ncdnsA Namecoin to DNS bridge supporting authoritative and authoritative suffix modes. Supports DNSSEC.
- memuARMv8-M CPU simulator written in C++17 and usable as a library.
- tftp2httpdDaemon to serve TFTP from HTTP. Useful for generating files on the fly to embedded devices.
- compexGCC/clang plugin for dumping C++ type information. Useful for reflection.
- namesyncA daemon for live replication of the Namecoin zone file into PostgreSQL so that it can be served via PowerDNS.
Go Libraries
- passlibModern password hashing library for Go.
- serviceEasily write daemonizable services in Go.
- configurableAn integration nexus for managing configuration in Go.
- easyconfigconfigurable-based configuration management utilities for Go.
- madnsDNS server library for Go supporting DNSSEC.
- portmapNAT port-mapping library for Go supporting UPnP and NAT-PMP.
- captchaA rather severe image-only CAPTCHA library for Go.
Hμblog » (view all)
This article on how Apache httpd is actually nice resonated with me a lot; I continue to use Apache myself for reasons I've articulated in the comment above.
Chris Siebenmann has written an interesting response to my article “Producing HTML using string templates has always been the wrong solution”. While I don't necessarily agree with his views, I think it's an interesting response and worth reading. I've also written up my thoughts on the article as an HN comment. (Read more...)
Fascinating writeup on the internal representation of values in Chicken Scheme. The design of value representations in a Scheme implementation needs to balance performance and memory usage while supporting a finite number of value types, so seeing the strategies chosen by a real-world implementation is always interesting. The further reading section provides links to information on the internal representation used by several other languages.
This is an interesting web framework in Go emphasising PHP-esque page-oriented development. The author cites my article The Demise of the Mildly Dynamic Website as inspiration.
This is an interesting writeup about webrings, a now forgotten phenomenon of the early web.
Current listening — while reading Dune. Massive index of ambient noise generators.
This is an interesting alternative compiler for producing Z-Machine images (.z5/.z8), taking inspiration from Prolog.
The author's website also appears an interesting homepage.
I have quite a bit of respect for the fact that this is a successful, real-world program developed using Literate Programming. It's a style of programming which has interested me before, but like many other people, I've found it hard to do in practice, and tools to be lacking.
As an aside, the interactive fiction community is from a technological perspective a fascinating microcosm, including from a CS perspective. You have not just one toolchain, but an entire ecosystem of competing virtual machine specifications (Z-Machine, Glulx, TADS, Hugo), compilers, and source languages, all intending to deliver architecture-independence and the ability to preserve IF for the ages, yet apart from all general-purpose technologies typically used for the task. (Read more...)