What is and isn't a bug in software

In response to my entry on how systemd is not fully SysV initcompatible because it pays attention to LSB dependency commentswhen SysV init does not , BenCotton wrote in a comment:

I'd argue that "But I was depending on that bug!" is generally a poorjustification for not fixing a bug.

I strongly disagree with this view at two levels.

The first level is simple: this is not a bug in the first place.Specifically, it's not an omission or a bug that System


Systemd is not fully backwards compatible with System V init scripts

One of systemd's selling points is that it's backwards compatiblewith your existing System V init scripts, so that you can do agradual transition instead of having to immediately convert all ofyour existing SysV init scripts to systemd .service files. Forthe most part this works as advertised and much of the time it works.However, there are areas where systemd has chosen to be deliberatelyincompatible with SysV init scripts.

If you look at some System V init scripts, you will find commentblocks at the


I now feel that Red Hat Enterprise 6 is okay (although not great)

Somewhat over a year ago I wrote about why I wasn't enthused aboutRHEL 6 . Well, it's a year later and I've now installedand run a CentOS 6 machine for an important service that requiresit , and as a result of that I haveto take back some of my bad opinions from that entry. My new viewis that overall RHEL 6 makes an okay Linux.

I haven't changed the details of my views from the first entry . The installer is still somewhat awkward


Spammers show up fast when you open up port 25 (at least sometimes)

As part of adding authenticated SMTP to our environment , we recently opened up outsideaccess to port 25 (and port 587) to a machine that hadn't had themexposed before. You can probably guess what happened next: it tookless than five hours before spammers were trying to rattle thedoorknobs to see if they could get in.

(Literally. I changed our firewall to allow outside access around11:40 am and the first outside attack attempt showed up at 3:35


Unix's mistake with rm and directories

Welcome to Unix, land of:

; rm thingrm: cannot remove 'thing': Is a directory; rmdir thing;

(And also rm may only be telling you half the story, becauseyou can have your rmdir fail with ' rmdir: failed to remove'thing': Directory not empty '. Gee thanks both of you.)

Let me be blunt here: this is Unix exercising robot logic. Unix knowsperfectly well what you want to do, it's perfectly safe to do so,


A brief history of fiddling with Unix directories

In the beginning (say V7 Unix), Unix directories were remarkablynon-special . They were basically files thatthe kernel knew a bit about. In particular, there was no mkdir(2) system call and the . and .. entries in each directory werereal directory entries (and real hardlinks), created by hand by the mkdir program .Similarly there was no rmdir() system call and rmdir directly called unlink() on dir/.. , dir/. , and dir itself.


The real speed advantage static rendering has over dynamic rendering

This entry made the HackerNews front page for much of Sunday, spending a bunch of time at #1(clearly Sundays are slow news days) and giving me anotheropportunity to beat the drum about my views that dynamic sites don't need tobe slow . So today, I'll take the other side andpoint out the real speed advantage that static rendering has overdynamic rendering.

Put simply, the advantage is that all static rendering is fastwhile only carefully tuned dynamic rendering is fast . Sure,


Our difficulties with OmniOS upgrades

We are not current on OmniOS and we've been having problems withit. At some point, well meaning people are going to suggest that weupdate to the current release version with the latest updates andmention that OmniOS makes this really quite easy with beadm and bootenvironments. Well, yes and no.

Yes, mechanically (as far as I know) OmniOS package updates and evenrelease version updates are easy to do and easy to revert from.Boot environments and snapshots of them are a really nice thing and


Solving our authenticated SMTP problem by rethinking it

Part of our mail system is a mailsubmission machine. Perhaps unlike many places, this machine hasnever done authenticated SMTP and as a result has never acceptedconnections from the outside world; to use it, you have to be'inside' our network , either directly or byusing our VPN (and at that point it just accepts your email).Recently this has been more and more a pain point for our users asit becomes more and more common for devices to move between insideand outside (for example


The importance of user interface, illustrated by the Go flag package

I have previously railed about Go's flag package (and why it's wrong ). Recently asmall but in practice really important change to how it works landedin the Go tip (what will become Go 1.5) and in the process illustratedhow important small UI things are, even in command line programs,and how a modest change can cause a sea change in how I at least feelabout them.

One of the quiet irritations with Go's flag package was the usagehelp information it