I hack in C++, LISP, Rust, Coq & Idris. I think a lot about writing provably correct code. I write about that here .
I maintain an obscure MP3 tagging project called scribbu , whose source distributions may be found on my distributions page . I wrote a less obscure Emacs package for scoring Elfeed entries: elfeed-score . It's available at MELPA , but you can download source tarballs here as well. You can find a few other things there:
a Pinboard client
Guile Scheme bindings for libmagic
a literature survey of Damerau-Levenshtein string distance
an MPD companion daemon for recording ratings & playcounts for your music collection
a tight, asynchronous, ergonomic MPD client library in Emacs Lisp
an Emacs global minor mode that turns Emacs into a lightweight MPD client
I've started collecting articles & code having to do with the MP3 standard; you can find that here .
Recently, I've been putting this site on the IndieWeb – you can find my package for this here .
Unwound Stack
The stack after unwinding...
Dependent Types and the Art of HTTP Headers A bit of enlightenment in writing correct code published 2024-09-30 18:36
Installing Agda on Arch How I installed Agda on Arch published 2024-08-05 20:20
Hello, Idris Leanring Idris2 published 2024-08-05 14:09
fill-column-indicator Just removed fill-column-indicator from my Emacs configuration published 2024-07-21 16:23
Dependent Pattern Matching in Coq Some first thoughts on matching dependent types in Coq published 2024-06-21 08:01
Cross References in Org Mode Understanding cross references in Org Mode published 2024-06-12 15:35
fixed-lambda-calculus Fixed the figures in the Lambda Calculus posts published 2024-06-10 15:04
The Calculus of Constructions Unifying the typed lambda calculii we've seen so far published 2024-05-28 18:30
Lambda-P An introduction to \(\lambda P\) published 2024-05-28 18:25
Lambda-Weak Omega An introduction to \(\lambda\underline{\omega}\) published 2024-05-27 19:23
The Second Order Typed Lambda Calculus An introduction to \(\lambda 2\) published 2024-05-23 13:51
The Simply Typed Lambda Calculus The next step updated 2024-05-20 06:55 , originally published 2024-05-20 06:55
The Lambda Calculus We'll begin at the beginning: Church's Lambda Calculus published 2024-05-14 17:56
Type Theory & Reasoning About Code Using the Feynman Technique to learn about Type Theory published 2024-05-14 16:55
Ann: ob-coq Org Babel support for Coq published 2024-04-10 11:07
Org Mode & LaTeX How exactly does Org Mode interact with LaTeX? published 2024-03-19 08:28
car-and-cdr I always wondered... published 2024-03-10 18:11
pr-vs-lauded-journals I'm taking more care with a PR than lauded academics do with their data published 2023-12-09 18:26
guile-aws Adventures with the AWS API in Gnu Guile published 2023-11-18 17:17
Using Klee on Rust Programs Survey of where we are in this effort published 2023-11-08 17:09
testing-poor-substitute-for-reasoning-2 Using tools to author more bad code is not a solution to bad code published 2023-09-06 19:00
Emacs as a C++ IDE How to setup Emacs for C++ development published 2023-08-03 20:24
Emacs as a Rust IDE Configuring Emacs as an IDE for Rust programming updated 2023-07-30 13:56 , originally published 2023-07-30 13:56
cherrypy-continued Another CherryPy issue published 2023-06-30 18:11
cherrypy-is-very-broken Learning far more than I wanted about the CherryPy framework published 2023-06-30 14:39
Hosting indie-org.sh on S3 Bringing your own domain to Route 53 is easy, once you know how published 2023-06-07 07:23
sealed-traits-in-rust Good article on sealed traits in Rust published 2023-04-09 17:43
indie-org.sh A demonstration site for my indie-org package published 2023-04-08 13:14
aws-unexpected-error Everyone knows the cloud is the future, right? published 2023-04-07 18:20
rust-hyper-tls Rust's hyper crate has a _really_ irritating foot-gun published 2023-03-09 11:01
first-photo Snow on the back deck, Santa Cruz Mountains published 2023-03-06 17:09
automake-and-elisp Finally found a workaround to those warnings about byte-compile-dest-file-function when using Automake with elisp published 2023-03-03 16:40
follow-up-to-reworking-the-site Trying-out new post types with POSSE published 2023-02-19 11:55
reworking-the-site I'm re-working unwoundstack to incorporate different sorts post types published 2023-02-19 08:17
Writing an audispd Plugin in Rust Writing an audispd Plugin in Rust published 2023-02-03 15:40
boost 1.74 filesystem bug A serious boost regression published 2022-12-28 07:37
Announcing Rust crate tracing-rfc-5424 Name squatting & RFCs published 2022-10-09 10:25
pin 0.2 New release of my pin utility published 2022-09-24 17:57
Documenting FOSS Projects Thoughts on documenting software projects published 2022-09-05 07:25
Dual dispatch in rust Solving an old problem in a new language published 2022-09-04 19:41
What is the Indieweb What, exactly, is the Indieweb published 2022-07-09 17:55
The Indieweb Putting unwoundstack on the Indieweb published 2022-07-09 17:15
Announcing Webmention Support unwoundstack can now send & receive Webmentions updated 2022-07-03 14:59 , originally published 2022-07-03 14:59
Indieweb markup Adding microformats to unwoundstack updated 2022-05-29 17:12 , originally published 2022-05-29 17:12
Rust Error Handling Some thoughts on how to handle errors in Rust published 2021-12-12 16:53
Moving from Winamp to MPD How I got over Winamp published 2021-09-07 09:43
A Concrete Example of Symbolic Execution Finding a bug using klee published 2021-08-12 07:26
Testing Is a Poor Substitute for Reasoning First thoughts on reasoning about code published 2021-08-11 12:07
Updated pin Fixed pin on crates.io published 2021-08-05 08:04
A Departure From My Typical Ramblings Standards are really slipping in California published 2021-07-08 17:04
Fixed my RSS Feed Fixed my RSS Feed published 2021-05-25 19:00
C++, Rust & Sum Types Pros & cons of Rust & C++ when dealing with sum types published 2021-05-24 07:43
Where Should elfeed-score State Be Persisted? Thoughts on where elfeed-score state belongs published 2021-05-24 07:43
Calculating the Duration of an MP3 File A simple question leads down a rabbit-hole published 2021-04-12 06:52
Commenting Commenting comes to unwoundstack updated 2020-11-21 17:16 , originally published 2020-11-21 17:16
guile-magic Guile bindings for libmagic published 2020-10-19 06:46
A more compact ERC mode line Track active channels in ERC with less space published 2020-07-24 14:27
Switching Emacs Themes How to switch themes without your past catching up with you published 2020-07-12 08:26
Computing Damerau-Levenshtein Distance How close are your strings? published 2020-06-16 08:30
Using org-capture to save links to Pinboard How I send my captured links to Pinboard published 2020-06-03 17:51
Guile, Autotools and the std-options option How to get std-options working with Guile in Autotools published 2020-04-21 07:29
Scoring Elfeed Entries Gnus-style scoring for Elfeed published 2020-03-22 19:56
Guile & Autoconf How I install Scheme files with GNU Autotools published 2020-03-19 11:30
Moving from Feedly to Elfeed How I changed RSS readers from Feedly to Elfeed published 2020-01-04 11:48
My Good-bye to Python Python was my "go-to" scripting language; no longer published 2019-11-13 16:21
Michael
I hack in C++, LISP & Rust. I think a lot about writing provably correct code.
You can e-mail me at sp1ff@pobox.com