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.
- memuARMv8-M CPU simulator written in C++17 and usable as a library.
- compexGCC/clang plugin for dumping C++ type information. Useful for reflection.
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)
Looking for a new role. Expertise in cryptography, security, networking, reversing. Dev, ops, security. Amongst other things I've authored a QUIC implementation, a Let's Encrypt client and an RFC. I gave a talk about reverse engineering an Ethernet controller's firmware at 37C3. LinkedIn / contact details.
For those that missed it, a recording of my talk at 37C3 can be found here.
Leah Rowe has written an interesting article about the history of the Libreboot project on the project's 10th anniversary. Recommended reading if you're interested in the open source firmware ecosystem.
Interesting articles by Ryan Hurst about possible improvements to WebPKI security via more certificate transparency (CT)-like technologies. There's also my own writings on CT.
Excellent writeup by Mac Chaffee about how web application firewalls are universally a terrible idea. I've been meaning to write an article on this subject for some time, but this is a good overview of many issues with them.
Interesting writings by Koshka, who has a fantastic Web 1.0/Geocities-esque website of great depth and variation.
Re: my article Web-based cryptography is always snake oil, this is another good article focused on Signal specifically and why it should not be considered trustworthy or secure.
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...)