_cbdev
[1] https://github.com/cbdevnet/fugit [2] https://git.zx2c4.com/cgit/
MIDIMonster: Scriptable Multi-Protocol Translation
Websocksy: Highly configurable dynamic WebSocket to network transport bridge
Adhosts: Generate composite hosts-file style ad-blocking lists
Why Is a Registry File Called a “Hive”?
Notes on implementing IMAP4rev1
Lost Treasures – The Commodore Production Line in Hong Kong (2014)
DB-19: Resurrecting an Obsolete Connector (2016)
MIDI->evdev https://twitter.com/twitter/statuses/965384962848456704
evdev->ArtNet https://twitter.com/twitter/statuses/965337284982837248
MIDI<>OSC https://twitter.com/twitter/statuses/882368440811606020
MIDIMonster: Multi-Protocol Translation (MIDI, OSC, ArtNet, Evdev Input)
Broken API: /proc/pid/stat
Recently, I needed to fetch the parent PID of arbitrary (Linux) processes from userspace (in C). For some reason, no standards define this function (pid_t ppid(pid_t)).The primary and only supported version to accomplish this is by reading the first process' status file exported by the kernel in /proc/<pid>/stat (which is only available in Linux). This file contains the parent's PID as...
Xelflut – Multiplayer canvas with simple protocol
There are some tools that restrict access with varying levels of granularity, but if you just want to restrict access on a per-repo-per-sshkey basis, one of my projects is a simple shell script that does just that:
https://github.com/cbdevnet/fugit
It originally came to be because I've found gitolite too big to maintain for simply sharing some repositories with a few other people. It has since served me well and is used in some business applications, too.
Shoelace Knots – How to Tie Your Shoes
The Chaos (1922)
Random-numbers: All DVDCSS player keys announced (1999)
Make files not war: writing short and readable makefiles that work
The whimsical naming of files and tools IMO drives potential users away more than it helps in engaging people. Mostly it just makes it hard to find out how to use something.
The fact that zookeeper also is the name of another (completely unrelated) software project does not really help, either.
Other than these points, thanks for caring about making the web accessible! All too many websites completely disregard that aspect and ignore users for which these things are deal breakers.
I've since moved all my mail for the last year (for about 10 domains) via a cmail setup and so far have not had a major hickup. Sure, it may not be as full-featured as other mail servers, but thats not the mission statement ;) One of the main reasons I'll probably never go back (besides pride) is the ease of altering the runtime configuration via our admin tools (eg. adding a new domain to the mail server is one command in the simplest form).
Some of my peers who contributed code or bug reports also run instances and are very happy with the amount of configuration they need to support for cmail vs. the amount of things to do to run for example exim.
Code-wise, it's still C (because that's what I'm most comfortable with), but hopefully it doesn't read as ancient :) I've tried to keep the bulk of it understandable and modular. We extensively use static analysis (clang analyzer and Coverity Scan) as well as fuzzing with afl-fuzz as part of our testing.
IMAP is the only major protocol we do not yet support (though the groundwork is laid in another branch of the main repo), and that's mainly because the specification is a major PITA (at least compared with the relatively sanely specified SMTP and POP3). IMAP also implicitly requires multithreaded handling of connections, which so far cmail has managed to avoid, because in my experience multithreading is a) not necessary in most sane server designs and b) a major source of non-trivial bugs.
Edit: Oh, since you mention build systems - we use a simple makefile, so yeah, no m4 macros ;)
In most 'professional' settings, all of these things are actually completely different devices with clear purposes, and this script would actually do nothing against a router. It might freak out some APs, but that's about it.
Creating purpose-built TinyCoreLinux Images
Being able to run a complete distribution off a cheap 128MB CF card is a great thing, especially because the packaging process for TC is really simple - packages are simply squashfs files being mounted to / after booting.
Customization and deployment (editing some files and dd'ing the image to the disks) is also really simple. The package repository is a bit clunky and not as big as you'd get with a major distro, but that should not really be a deterrent (see above).
Keep up the great work!
The Metamorphosis of Prime Intellect
Show HN: Generate SVG pie charts from the command line
Academic Torrents
A bunch of random numbers lying about [DVD CSS Player Keys]
Audio with alsa has also been a painless experience for me, though I heard differently from some people.
Using Debian (which is not well known for always having the most up-to-date releases), I've as of yet never had to compile my own kernel to enable any of these.
Other than that, this was unexpected :D