Threads vs Events

- 2 mins read

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.

New Open Source Releases

- 1 min read
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.

Net Install CentOS

- 1 min read
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:

Micro Snake

- 1 min read
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.

This post doesn’t cover fully setting up KVM/Qemu with virt-manager and creating virtual machine guests. See the Ubuntu KVM Installtion, VirtManager Guide, the Ubuntu Server Guide on libvirt, or HowtoForge for that.

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.

Programming as an Artform

- 2 mins read

This is a response to the excellent post by Jani Gorše, titled Why is Programming an Art?

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.

Finit v1.8

- 2 mins read
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.

Proof of Life

Joachim Nilsson - - 1 min read
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!

Resurrection

- 1 min read
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.

Announcing pimd v2.1.7

- 1 min read
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.