2018 in (failed) projects
I have written a large mass of code this year, primarily in Rust.
With only one exception, none of this has reached the 'blog post' level of maturity. Here lies a memorial for these projects, perhaps as a reminder to me to resurrect them.
Github's contribution chart gives a good indication of just how much code has been written. Clearly visible are some holidays, and the associated productivity peaks on either side:
Some focuses this "year" (Nov 2017+):
Archives and storage
contentin and
splayers recursively unpack an
archive, supporting multiple formats. You have a gzip
file, on an
ext4 filesystem, inside a
tar.bzip2
archive, inside a Debian package? No problem.
The aim here was to "ingest" large volumes of "stuff", either for comparison (e.g. diffoscope, from the Reproducible Builds project), or for indexing and search.
Speaking of which, deb2pg demonstrates various ways not to build an indexing search engine for a large quantity of "stuff".
While working on these, I became a bit obsessed with how bad gzip
is. gzip
ing a file, then running it through any kind of indexing,
or even other compression, gives very poor results. Very poor.
rezip is a tool to
reversibly transform gzip
files into a more storable format.
It... never made it. I could complain for hours. See the README.
Much of this work was done against/for Debian. Debian's apt
is
not a fun tool to use, so I started rewriting it. fapt
can download lists, and provide data in a usable form (e.g. ninja
build files). gpgrv is enough
of a gpg
implementation for fapt
.
Once you start rewriting apt
, you might as well rewrite the rest
of the build and packaging system, right? fbuilder
and fappa are two ways not to
do that. fappa
needed to talk to Docker, so shipliftier
has a partial swagger-codegen
implementation for Rust.
Networking
Much of the way networking is done and explained for linux is not ideal.
netzact is a replacement for
the parts of netstat
and ss
that people actually use. It has the
performance of ss
, but only one the horrible bugs: no documentation
at all. That one is probably fixable, at least!
pinetcchio continued into its fourth year, I like to think I made it even worse this year.
fdns was going to do something with DNS but I can't really remember which thing I was going to fix first. There's so much wrong with DNS.
quad-image is an image hosting service. It works, I run it. I even tried to add new image formats, like heifers. That was a mistake.
IRC
I still use IRC. The protocol is bad, but at least there are working clients. Slack Desktop still segfaults on start on Ubuntu 18.10, months after release, because they don't understand how to use Electron and nobody can fix it for them.
unsnap is an IRC title bot. Yes, there are hundreds of others. No, I don't like working with other people's untested code in untestable plugin frameworks. Thanks for asking.
badchat is some kind of IRC thing. This one might still have some life in it.
CLI tools
zrs is a re-implementation of z
, the
directory changing tool. It's good, you should use it.
sortuniq is a more efficient
| sort | uniq
. It supports some of the flags that either tool supports.
This is probably enough of a blog post for that. I use it frequently.