• Three productive days on the Kyua front

    This being Thanksgiving week in the U.S. and Google giving us Thursday and Friday off, I decided to take Monday to Wednesday off as well to spend some time hacking on Kyua — yes, finally, after months of being inactive. And what a three productive days! Here comes a little briefing on the three fronts in which I made progress. (This puts on hold the header files series until next Monday.

  • Header files: Self-containment

    The rule The mere fact of including a given header file, without including any other beforehand, should not be enough of a reason for the build to break. This means that the header file should be self-contained, and for this to be the case, such header file has to pull in any dependencies that it explicitly requires (and no more). Interestingly, note that this does not mean that a header file must include everything it may ever need to be fully usable.

  • Header files: Multiple-inclusion protection

    Let’s start the series with something simple: the basic structure of header files and why and how to protect against multiple inclusion. The rule The basic use of header files is to provide symbol declarations for functions and globals. Because multiple declarations of a given symbol in a single translation unit are a syntax error, you have to defensively structure your header files to not redefine anything in case they are included multiple times.

  • Header files: Series introduction

    As I started typing a supposedly-simple post on header files, I realized that what I was explaining could easily be split into various posts and significantly extended with additional content, so here comes a new (short) series on these special little files in the need of careful attention. Quoting the Wikipedia: A header file is a file that allows programmers to separate certain elements of a program’s source code into reusable files.

  • Patch management with Quilt

    Creating and managing patches on top of a source tree maintained in a non-distributed VCS needn't be hard. Some people handle this with Git, but I use a tool that seems to have fallen in disuse but was once very popular to create patchsets against the Linux kernel: Quilt. What is Quilt? As the quilt(1) manual page says: quilt - tool to manage series of patches Quilt is a tool to manage large sets of patches by keeping track of the changes each patch makes.

  • How to add the Mac OS X screensaver to the dock

    For various reasons, I have trained myself to lock my computer's screen as soon as I vacate my seat every single time. This may seem annoying to some, but once you get used to it it becomes second nature. The reason I do this is to prevent the chance of a malicious coworker (or "guest") to steal my credentials at work. However, Mac OS X has traditionally not made this simple.

  • Joining the FreeBSD committer ranks

    About 11 years ago, I had the honor of becoming part of the NetBSD developer team. A week ago, the same offer was extended to me for FreeBSD and I could not refuse it... so, as of two days ago, I am jmmv at FreeBSD and will be working in src! But how have I ended up here? The story goes back in time... My beginnings with FreeBSD FreeBSD was the first BSD system I tried after spending a couple of years with Linux.