This is a rant about something I recently found to be a long standing
battle line in the world of programming,
Lau78.
The event vs thread based approach to programming. As rants go I do
not aspire to deliver a clear or logical message, what so ever. It’s
basically just something I need to get off my chest.
It was not until 2007 I first learned about the event based approach
to programming and event libraries like
libevent and
libev. Up until that
point the silver bullet everyone was using was … Threads.
Vacation time means catching up on my Open Source projects! :)
Currently I’m shaping up the home pages and this blog to improve the easy access and overview of all the packages I maintain. The following packages have new releases, or can expect new releases soon:
Minix Editline v1.14.1 SMCRoute v1.99.1 – There’s even a v2.0.0 being planned, with the core of SMCRoute available as a library mrouted minor cleanup an sync with OpenBSD pimd cleanups and bug fixes, needs testing inadyn is in dire need of a release, but needs more testing and fixes As usual, see my GitHub for the latest commits if you want to try anything out, file an issue report, or if you want to contribute.
I usually run Debian or Ubuntu on my machines. However, having recently found some time to work on my various projects again, I’ve now suddenly found myself in need of a CentOS machine.
The CentOS home page invited me to download an installation ISO, so I went for the small Net Install which started perfectly with my virt-manager in Ubuntu.
All I had to provide was an FTP server and directory:
Welcome to Micro Snake, based on an original implementation by Simon Huggins. This version of the snake game is very small, utilizing only ANSI escape sequences to draw the board, no external library dependencys other than a standard C-library, like uClibc. Hence, it is very suitable for todays small embedded devices.
The aim of the game is to collect the gold ($), avoid cactuses (*), borders, and colliding with the snake itself.
Instead this blog post details the most relevant steps to get file
system pass-through between a Linux host and Qemu guest working. The
upstream Qemu docs
provide a good starting point, as is the original
IBM paper on VirtFS.
For users of Ubuntu <= 13.04, watch out for the
libvirt bug
that I know many people run into, myself included.
Ever since I began studying Computer Engineering at university back
in 1995 I have struggled to find the “proper” ways to format my code,
name functions and variables appropriately, structure functions into
files and files into directories with Makefiles and Makefile snippets,
using both recursive and non-recursive make. Formatting of code, for
instance, was for a while a bit of an obsession of mine, and it sort of
is still. But today I am more concerned with the overall structure and
how components interact. Even though I can still get very annoyed at
people naming their local variables obtrusively.
It’s been a long time coming, but here it finally is, Finit v1.8! The goodies we’ve been waiting for are:
Runlevels Multiple TTYs One-shot tasks Let’s start off with tasks. Tasks are one-shot commands, with a syntax like service directives, but are not monitored and respawned like services. Tasks are started in parallel, just like services. For some cases, like the system bootstrap phase, some tasks may need to be executed in sequence, and for that purpose there also exists a run command.
There is a certain “burstyness” to the way I work on my open source projects. It seems it often coincides with intense work loads during new release cycles at work.
However, I’ve just finished restoring two pages that got lost in the big server crash:
mrouted pimd Big thanks goes to the Wayback Machine for maintaining records of the original pages I lost!
Quite some time has passed now since our old site, http://vmlinux.org, crashed and burned, and with it much of my previous Open Source work and blogs. Tech blog entries, archives for the projects I maintain, lost.
Backups? Of course not.
This all happened in 2011. Since then we also managed to lose the domain and I kind of lost myself for a while, including my motivation.
Fortunately, at this point in time I had migrated most of my projects from CVS and Subversion to DVCS’ like Bzr and GIT, so I could easily setup new homes for most of my Open Source projects at GitHub.
This is a followup release to the security fix in pimd, v2.1.6. The change to use /var/lib/misc/, instead of the insecure /var/tmp/, has now been refactored into using the proper FHS recommended /var/run/pimd/ instead.
As always, check the homepage, the ChangeLog and the GIT log for more details.