Back and forth: Linux and *BSD

This is kind of the post that I wanted to write much earlier this year. After running a Linux-only environment at home for years, I had become less and less happy with the general direction things seem to be heading. I had run FreeBSD and OpenBSD on real hardware (old laptops) and several versions of PC-BSD in VirtualBox over the years. In January I decided to step forward and install PC-BSD (10.2) on my primary computer for daily usage. It remained a short episode – and this post will describe why. When TrueOS was released to the public I decided to try out that right away. But that will be another post.

Initial contact

I cannot remember when I first read about the BSDs. That must have been many years ago when I became interested in reading a bit about UNIX. I remember beastie and puffy and I remember that I failed installing a system in a VM because it was somehow too complicated. It likely was OpenBSD and the chance is quite high that I quit during the partitioning which probably was way over my head at that time.

While I never lost interest in it (Unix fascinated me) I decided to “learn Linux first” as that was the system I had chosen to run my computers with. As the Linux world was big enough for years (trying out the various desktops, doing a lot of distro hopping, …) I touched *BSD only rarely. Basically it was limited to installing PC-BSD in a VM when I found out that a new version was released. It seemed to be nice but I didn’t see any benefit over my Linux systems and so I stuck with that.

After studying something entirely different, I had made the decision to break up and get into the IT instead, even though was I well beyond the age that you usually start an apprenticeship. In my country that means that you apply to a company to work as an apprentice there half of the week and go to school the other days. Being somewhat of a Linux nerd I had only applied to companies that I knew weren’t using Windows – I had left that mess and was determined to avoid it in the future as far as possible. In the end I signed a contract of apprenticeship with a hosting company, moved into the area and started learning Linux a lot deeper than I had before. And… I came in contact with FreeBSD.

Being a hosting company that had been founded in the nineties, it had of course started on FreeBSD. Even though the focus of the company shifted to Linux years ago, there still were about 100 servers running FreeBSD. My colleagues generally disliked those servers – simply because they were different. And our CIO declared that he hated them and would love to get rid of them as FreeBSD was totally obsolete these days. If it hadn’t been for our boss to have a soft spot for them (as that had been what he started with and also what he had come to know best over the years) there definitely would have been far less FreeBSD servers around.

Digging into FreeBSD

Now for whatever reason I do have a heart for underdogs and so I begun to be interested in those odd systems quite a bit. Nobody wanted to touch those dinosaurs if he didn’t really have to. However somebody had to take care of them anyways, right? They were production servers after all! I volunteered. There were moments where I kind of regretted this decision but now in hindsight it was an excellent choice. I’ve learned a ton of little things that made me understand *nix and even the IT in general quite a bit better compared to what I would know now if I had followed the straight Linux path.

I also found out that only very few things that the colleagues hated about our FreeBSD boxes were things to actually blame FreeBSD for. By far the biggest problem was that they simply had been neglected for like a decade? Our Linux systems used configuration management, the FreeBSDs were still managed by hand (!). We had some sophisticated tooling on Linux, on the BSD boxes there were crude old scripts to (kind of) do the same job. Those systems were not consistent at all; some at least had sudo others made you use su if you needed to use privileged commands… Things like that. A lot of things like that. So it wasn’t exactly a miracle that the BSDs were not held in very high regard.

As I said, I didn’t really see any real advantage of BSD before. Linux even seemed to be easier! Think network interfaces for example: “eth + number” is easier than “abbreviation of interface driver + number”. But Linux has since moved to “enp0s3” and the like… And when you think again, it does make a lot of sense to see what driver an interface uses from the name. Anyways: I begun to like that OS! FreeBSD’s ports framework was really great and I realized the beauty of rc.config (Arch Linux did away with their central config file to get systemd. What a great exchange… – not!). Also I liked the idea of a base system quite a bit and /rescue was just genius. Would my colleagues lose their contempt for our BSD servers if they were configured properly? I thought (and still think) so.

My apprenticeship was nearing its end and I had to choose a topic for the final project work. I was advised to NOT do something Linux related because the examiners… *cough* lacked experience in that field (in the past an apprentice even failed because they have no idea what they are doing. He went before court and it was decided in his favor. A re-examination by people who knew Linux got him an A!). Now things like that make me angry and calls upon the rebel in me. I handed in a FreeBSD topic (evaluating Puppet, Chef, SaltStack and Ansible for orchestration and configuration management of a medium-sized FreeBSD server landscape).

So for servers I was already sold. But could *BSD compete on the desktop, too? I built two test systems and was rather happy with them. However I wanted to try out a BSD system optimized for desktop usage. Enter PC-BSD.

Working with PC-BSD

I was called nuts for making that switch just days before the final presentation of the written project work (“you need to pass this – your entire career depends on it!!”). But I didn’t want to do a presentation on a FreeBSD topic using a Linux machine! Well, in fact I had been too optimistic as the installation turned out to be… rather problematic due to a lot of bad surprises. To be fair: Most of them weren’t PC-BSD’s fault at all. The BIOS mode on my computer is broken in it not supporting booting off GPT partitions in non-UEFI mode. This lead to my drives disappearing after installation – and myself wondering if my classmates were right… Never change a running system! Especially not if you’re pressed for time!

After I found out what the problem was, installing to MBR was an easy thing to do. I still needed every single night that I had left but I got everything to work to at least the level that allowed me to hold my presentation. Another thing was that I had enabled deduplication on my ZFS pool. “24 gigs of memory should be enough to use that feature!”, I thought. Nobody had told me that it slows down file deletion so much that deleting about 2 GB of data meant to go and do something else while ZFS was doing its thing. Even worse: The system was virtually unresponsive while doing that so you could forget browsing the web or something like that in the meantime. But truth be told this was my own mistake due to my very own ignorance about ZFS and I can hardly blame PC-BSD for it.

I kept PC-BSD on my laptop for about 1.5 month before I needed to return to Linux – and I would in fact even have returned earlier had I had the time to reinstall. While some issues with PC-BSD vexed me, too, I could have lived with most of them. But my wife complained all the time and that of course meant the end for my PC-BSD journey.

So what were (some) of the issues with it? My wife mostly uses the PC to check email when our children are occupied with something for a moment. For her the very long boot time was extremely annoying. And really it took multiple times as long as the Linux system before (and that was still one with Upstart!). Keeping one user logged in and changing to another user quickly wasn’t possible – which meant that I had to shut down my multiple virtual machines and log out completely if my wife just wanted to quickly check mail or something. Not cool. Things like that.

And then there were a few things that annoyed me. It drew power from the battery much, much faster than the previous Linux system. When watching a video, the screen saver kept interrupting it. Firefox had strange issues from time to time and liked to crash. Working with EXT4 formatted disks was a pain. And so on and so forth.

Of course there were good parts, too. I had a real FreeBSD system at my hands with access to ports. Two firewalls (that are nothing like the mess that is netfilter/iptables!) to choose from. Excellent documentation. Nice helper tools (like the automounter, wifi manager, disk manager, etc.). Several supported desktops to choose from. And of course the well thought-out update system that I liked a lot. Thinking about it, there are a lot of good parts actually. Unfortunately even a ton of things nice to have have a hard time covering things conceived as no-gos. That’s life.

I had intended to update to 10.3 and then write a complete blog post about PC-BSD. My wife didn’t like the idea much, though. In addition to that I had little spare time and no alternative spare hardware, so there wasn’t a chance for me to actually do that.

Interlude: Linux

So it was back to Linux. With systemd this time. I’m not exactly friends with that omnivoristic set of tools that annoyed me perhaps just not enough to switch the system over to runnit or openrc. Other than that life was good again (as my wife was happy and I could do my work). But there was one thing in the short period of time with PC-BSD that had changed everything: I had caught the bug with ZFS!

Fourtunately there’s ZFSonLinux, right? So I installed that and created a pool to use for my data. In general that worked but it’s a bit more hassle to set up compared to FreeBSD where you basically get it for free without having to do anything special! If you don’t want to compile all packages related to ZFS yourself for each new kernel, there’s a third-party package repository for Arch. ZFS is not in the official ones. At some point the names of the packages changed and the update failed. I didn’t find anything about that and had to figure out myself what happened.

After another kernel and ZFS update that I did in the morning succeed. But when I came home, my wife told me that when she logged in, she was logged out again almost instantly. I booted the computer and logged in – the same thing happened. What was that? No error message, no nothing. The system simply dropped me back at the login manager… So I switched to text mode to take a look at what might be wrong with the system. Long story short: My pool “homepool” which held all user’s home directories was not available! And worse: zpool import said that there were no pools available for import… With the update, ZFS had stopped working! That hit me in the wrong moment whan I had very little time and so I had to downgrade as the quickest solution.

In the end I chose to compile the “solaris porting layer” and the other packages myself. This was not so bad actually but knowing that on FreeBSD I’d have access to ZFS provided by the operating system without having to do anything (and that nobody was going to break it without it probably being fixed again in no time) vexed me. Of course there were other things, too, and using FreeBSD on other boxes, I wanted it back on my main desktop machine as well.

What’s next?

I installed TrueOS and used it for over three months. The next post will be a critical writeup about TrueOS.

School, exams and… BSD!

Alright, January is already almost over, so there’s not much use in wishing my readers a happy new year, right? I wanted to have this month’s blog post out much earlier and in fact wanted to write about a completely different topic. But after January 27th it was pretty obvious for me what I’d have to write about – On that day I passed my final exam and now I’m a Computer Science Expert by profession. Time to take a look back at the apprenticeship and the status of *nix in German IT training today.

Spoiler: It’s Microsoft, Microsoft and again Microsoft. Only then there’s one drop of Linux in the ocean. I had left the (overly colorful) world of Windows in 2008. When I started the apprenticeship I was determined not to eat humble pie and come crawling back to that. While it was at times a rather tough fight, it was possible to do. And I’m documenting it here because I want to encourage other people to also take this path. The more people take the challenge the easier it will become for everyone. Besides: It is absolutely necessary to blaze the trail for better technology to actually arrive in mainstream business. This is of great importance if we do not want to totally fall behind.

Detours

I didn’t take the straight way into IT. While I had been hooked with computers since I was a little child, I also found that I had a passion to explain things to others. I gave private lessons after school for many years and after passing the Abitur (think of the British A levels) I chose to go to the university to become a teacher.

It took me a very long time of struggle to accept that I could not actually do that for a living. I am in fundamental opposition to how the German school system is being ruined and I could not spend all my work life faithfully serving an employer that I have not even the least bit of respect for.

The situation is as follows: We once had a school system in Germany that aimed at educating young people to be fit for whatever their life holds. The result was people who could stand on their own feet. Today the opposite is true: A lot of people who leave school have no idea how to find their way in life. Playing computer games is the only thing that a lot of young men (and an increasing number of women) actually do. They have not developed any character, they have no passion for anything (and thus no goals in life) and they often haven’t learned no empathy at all (and thus keep hurting other people – not even because of bad will but because of total ignorance).

At the same time things taught in school aim purely at making people available as workmen as soon as possible. Sounds contradictory? Sure thing. At the university I enjoyed the benefits of the old system where there was relatively large academic freedom and you were encouraged to take your time to learn things properly, to do some research if you hit topics of interest to you and to take courses from other faculties, etc. And this is pure insanity: All that is largely gone. New students are forced to hasten through their studies thanks to tight requirements (which semester to take which course in – very schoolish, no freedom at all)… In the name of “comparability” we did away with our own academic degrees only to adopt the inferior “master” (as well as the even more inferior “bachelor”).

Secondary schools are lowering their standards further and further so that almost anybody can get their A levels and flood the universities. At the same time there are not enough people remaining for other paths of education – and those who are far too often are completely useless to the companies: People who can be described as unreliable at best are of no use at all. I did not want to be part of that madness and so I finally decided to get out and do what I probably should have done right from the start.

Vocational school: Windows

The German vocational school system is a bit special: You only go to school one or two days (this varies among semesters). What about the other days? You spend them in a company you apply at before you can start the apprenticeship. That way you get to know the daily work routine right from the start (which is a really good thing). School is meant to teach some general skills and at work you learn practical things.

On the first day I went to vocational school, I kind of felt… displaced. Why? Well, coming back to school to teach children is something that takes a moment to adjust to. I enjoyed teaching in general (even though there are always horrible classes as well ;)) but becoming a student again afterwards is really strange. At least for a while.

Subject matter was extremely easy for me. But being almost 30 years old when I started the apprenticeship of course meant that I had a lot more of knowledge and experience than the typical 18 or 20 years old student. However this was a good thing for me since I also have a wife, two children and had to drive about 1.5 hours to school and the same distance back. Which meant that I had far less time for homework or learning than the others. In fact I only found a few hours to learn for the preliminary exam as well as for the final exam. But that’s it.

We had PCs with Windows XP and were required to work with that. Most of my classmates protested because they were used to Windows 7. I simply installed Cygwin, changed tho panel position to top and things were pretty much ok for me (it’s only for a few hours, right?). A while later we got new PCs with Windows 8(.1?) and new policies. The later made it impossible for me to use Cygwin. Since I had never touched anything after Windows XP, I took my time to take a look at that system. In fact I tried to be open for new things and since a lot of time passed since I left Windows, I no longer had any strong feelings towards it. Still Win 8 managed to surprise me: It was even worse than I had thought possible…

The UI was just plain laughable. I have no idea how anybody could do some actual work with it using the mouse. Now, I’m a console guy and I need no mouse to do stuff (if I at least have Cygwin that is). But that must have been a joke, right?

Then I found out that Windows still was not capable of even reading an EXT2 file system. Oh my. So I decided to format one USB key to FAT32 for school. But guess what? When I attached it, Windows made some message pop up that it was installing drivers – which then failed… I removed the USB key and inserted it again. Same story. A classmate told me to try another USB connector. I thought that he was fooling me but he insisted on it so I did it (expecting him to laugh at me any second). To my big surprise this time the driver could be installed! But the story does not end here. No drive icon appeared in the explorer. I removed the USB key again and reattached it once more. Nothing. My classmate took it out yet again and plugged it into the former connector (the one from which installing the driver failed). And this time the drive appeared in the explorer! It was that moment that I realized not too much had changed since XP – despite the even uglier looks. Bluescreens, program crashes and cryptic error messages that I had not seen in years all were back.

I decided that I could not work like that and decided to bring a laptop each school day. Just about all my classmates were fine with Windows however. But speaking of classmates: We lost five of them in the first two years. Two simply never showed up again, two more were fired by their companies (due to various misbehavings) and thus could not continue their apprenticeship and the other one had a serious problem with alcohol (being just 17 years old) and was also fired.

BYOD: Linux desktop

My laptop was running Linux Mint. When I bought it, it came with Mint pre-installed. My wife got used to that system and did not like my idea to install a different system (I mainly use Arch Linux as a desktop at work and on other PCs at home) and so Linux Mint stayed on there.

There were a few classmates interested in Linux in general. These quickly became the ones that I spend most of my time in school with. Three already had some experience with it but that’s it. One of them decided that it was time to switch to Linux about a year ago. I introduced him to Arch and he’s a happy Antergos (an Arch-based distro) user since then. Another classmate was also unhappy with Windows at home. I answered a few questions and helped with the usual little problems and she successfully made the switch and runs Mint now.

Some teachers couldn’t quite understand how one could be such a weirdo and not even have one single Windows PC. We were supposed to finish some project planning using some Microsoft software (forgot the name of it). I told the teacher that the required software wouldn’t run on any of my operating systems. Anything not Windows obviously wasn’t thinkable for him and he replied that in that case I’d really have to update! I explained to him that this was not the case since I ran a rolling-release distro which was not just up to date but in fact bleeding edge.

When he understood that I only had Linux at home, he asked me to install Windows in that case. Now I told him that I didn’t own any current version of Windows. He rolled his eyes and replied that I could sign up for some Microsoft service (“dream spark” or something?) where each student or apprentice could get it all for free. Then I objected that this would be of no use since I could not install Windows even if I had a license because I did not agree to Microsoft’s EULA. For a moment he did not know what to say. Then he asked me to please do it at work then. “Sorry”, I replied, “we don’t use Windows in the office either.” After that he just walked away saying nothing.

We were required to learn some basics about object-orientated programming – using C#. So I got mono as well as monodevelop and initially followed the course.

Another Laptop: Puffy for fun!

I got an older laptop for a really cheap price from a classmate and put OpenBSD on there. After having played a bit with that OS in virtual machines I wanted to run it on real hardware and so that seemed to be the perfect chance to do it. OpenBSD with full disk encryption and everything worked really nice and I even got monodevelop on there (even though it was an ancient version). So after a week I decided to use that laptop in school because it was much smaller and lighter (14″ instead of 18.3″!) – and also cheaper. 😉

After upgrading to OpenBSD 5.6 however, I realized that the mono package had been updated from 2.10.9p3 to 3.4.0p1 which broke the ancient (2.4.2p3 – from 2011!) version of monodevelop. Now I had the option of bringing that big Linux laptop again or downgrade OpenBSD to 5.5 again. I decided to go with option 3 and complain about .NET instead. By now the programming course teacher already knew me and I received permission to do the exercises with C++ instead! He just warned me that I’d be mostly on my own in that case and that I’d of course have to write the classroom tests on C# just like everyone else. I could live with that and it worked out really well. Later when we started little GUI programs with winforms I would have been out of luck even on Linux and mono anyway. So I did these with C++ and the FLTK toolkit.

Around christmas I visited my parents for some days. My mother’s computer (a Linux machine I had set up for her) stopped working. As my father decided that he’d replace it with a new Windows box (as that’s what he knows), I gave up my OpenBSD laptop. I installed Linux on it again and gave it to my mother as a replacement to prevent her having to re-learn everything on a Windows computer…

Beastie’s turn

So for the last couple of weeks I was back on Linux. However the final exam consists of two parts: A written exam and an oral one. The later is mostly a presentation of a 35 hour project that we had to do last year. I took the chance and chose a project involving FreeBSD (comparing configuration management tools for use on that particular OS). We also had to hand in a documentation of that project.

Six days before the presentation was to be held, I decided that it would suck to present a FreeBSD project using Linux. So I announced to my wife that I’d install a different OS on it now, did a full backup, inserted a PC-BSD 10.2 cd and rebooted. What then happened is a story of its own… With FreeBSD 10.3 just around the corner I’ll wait until that is released and write about my experiences with PC-BSD in a future blog post. Just so much for now: I have PC-BSD installed on the laptop – and that’s what I use to write this post.

The presentation also succeeded more or less (had a problem with Libre Office). But the big issue was that I obviously chose a topic that was too much for my examiners. My documentation was “too technical” (!) for them and they would have liked to see “a comparison with other operating systems, like Windows (!)” – which simply was far beyond the scope of my project… I ended up with a medicore mark for the project which is in complete contrast to the final grade of the vocational school (where I missed a perfect average by 0.1).

Ok, I cannot say that this came completely unexpected. I had been warned. Just a few years earlier, another apprentice chose a Linux topic and even failed the final exam! He took action against the examiners and court decided in his favor. His work was reviewed by people with Linux knowledge – and all of a sudden he was no longer failing but in fact got a 1 (German equivalent to an A)! I won’t sue anybody since I have passed. Still my conclusion here is that we need more people who dare to bring *nix topics on the list. I would do it again anytime. If you’re in the same situation: Please consider it.

Oh, and for another small success: The former classmate who runs Antergos also tried out FreeBSD on his server after I recommended it. He has come to like jails, the ports system and package audit among other things. One new happy *BSD user may not be much. But it’s certainly a good thing! Also all of my former classmates now at least know that *BSD exists. I’ve held presentations about that and mentioned it in many cases. Awareness for *nix systems and what they can do may lead to giving it a try some time in the future.

Top things that I missed in 2015

Another year of blogging comes to an end. It has been quite full of *BSD stuff so that I’d even say: Regarding this blog it has been a BSD year. This was not actually planned but isn’t a real surprise, either. I’ve not given up on Linux (which I use on a daily basis as my primary desktop OS) but it’s clear that I’m fascinated with the BSDs and will try to get into them further in 2016.

Despite being a busy year, there were quite a few things that I would have liked to do and blog about that never happened. I hope to be able to do some of these things next year.

Desktops, toolkits, live DVD

One of the most “successful” (in case of hits) article series was the desktop comparison that I did in 2012. Now in that field a lot has happened since then and I really wanted to do this again. Some desktops are no longer alive others have become available since then and it is a sure thing that the amount of memory needed has changed as well… 😉

Also I’ve never been able to finish the toolkit comparison which I stopped in the middle of writing about GTK-based applications. This has been started in 2013 so it would also be about time. However my focus has shifted away from the original intend of finding tools for a light-weight Linux desktop. I’ve become involved with the EDE project (“Equinox Desktop Environment”) that uses the FLTK toolkit and so people could argue that I’m not really unbiased anymore. Then again… I chose to become involved because that was the winner of my last test series – and chances are that the reasons for it are still valid.

And then there’s the “Desktop Demo DVD” subproject that never really took off. I had an Arch-based image with quite some desktops to choose from but there were a few problems: Trinity could not be installed alongside KDE, Unity for Arch was not exactly in good shape, etc. But the biggest issue was the fact that I did not have webspace available to store a big iso file.

My traffic statistics show that there has been a constant interest in the article about creating an Arch Linux live-CD. Unfortunately it is completely obsolete since the tool that creates it has changed substantially. I’d really like to write an updated version somewhen.

In fact I wanted to start over with the desktop tests this summer and had started with this. However Virtual Box hardware acceleration for graphics was broken on Arch, and since this is a real blocker I could not continue (has this been resolved since?).

OSes

I wrote an article about HURD in 2013, too, and wanted to re-visit a HURD-based system to see what happened in the mean time. ArchHURD has been in coma for quite some time. Just recently there was a vital sign however. I wish the new developer best luck and will surely do another blog post about it once there’s something usable to show off!

The experiments with Arch and an alternative libc (musl) were stopped due to a lack of time and could be taken further. This has been an interesting project that I’d like to continue some time in some form. I also had some reviews of interesting but lesser known Linux distros in mind. Not sure if I find time for that, though.

There has been a whole lot going about both FreeBSD and OpenBSD. Still I would have liked to do more in that field (exploring jails, ZFS, etc.). But that’s things I’ll do in 2016 for sure.

Hardware

I’ve played a bit with a Raspberry 2 and built a little router with it using a security orientated Linux distro. It was a fun project to do and maybe it is of any use to somebody.

One highlight that I’m looking forward to mess with is the RISC-V platform, a very promising effort to finally give us a CPU that is actually open hardware!

Other things

There are a few other things that I want to write about and hope to find time for soon. I messed with some version control tools a while back and this would make a nice series of articles, I think. Also I have something about devops in mind and want to do a brief comparison of some configuration management tools (Puppet, Chef, Salt Stack, Ansible – and perhaps some more). If there is interest in that I might pick it up and document some examples on FreeBSD or OpenBSD (there’s more than enough material for Linux around but *BSD is often a rather weak spot). We’ll see.

Well, and I still have one article about GPL vs. BSD license(s) in store that will surely happen next year. That and a few topics about programming that I’ve been thinking about writing for a while now.

So – goodbye 2015 and welcome 2016!

Happy new year everyone! As you can see, I have not run out of ideas. 🙂

TEK – The “Truly Ergonomic Keyboard”

This post is a review of the Truly Ergonomic Keyboard (or TEK for short). This keyboard is very different from any keyboard that I’ve head so far. And since it is not exactly cheap (about 190 EUR or 250 USD!) I thought that I’d write about it so people who think about buying it can read some facts first.

My last two posts were about closely related topics: 1) keyboards, ergonomics, touch-typing and common typist’s injuries and 2) alternative keyboard layouts. I’ve already made clear that I love my TEK there and in fact I’m so enthusiastic about it that I’m going to buy a second one for work as soon as I can afford it.

Truly Ergonomic Ltd.

With such a name the company won’t win a modesty award for sure! And the claim “A revolution in typing” is quite bold, too. But then again, there’s absolutely no need for being modest if you sell a product like that. IMHO this Canadian company could rightfully claim to have re-invented the keyboard or created a “keyboard 2.0” / “keyboard reloaded” or whatever you want to call it. There are just so many things about the TEK that I’m having a hard time to decide where to start.

The company’s website of course explains a lot of things about the keyboard. I will of course mention everything that I deem important. But I’ll try to focus on my personal user experience with the TEK.

The dust cover that comes with the keyboard – a simple but useful idea!

A radical new approach

The first thing that you notice when you look at it is that the TEK reorganized the key positioning quite strongly. The letter keys stay in the same place compared to the classic keyboard layout. The same is true for the numbers, the Fx keys and the cursor (or arrow) keys. Same with Shift, Esc and so on. But this is more or less it.

Leaving the letter keys in their common position is a good choice because the TEK asks enough of you when you have to re-learn a lot of positions for the other keys. Most importantly: Return, Backspace and Del move from right of the letter keys to in-between. They are placed right in the middle of the keyboard. This feels very odd at first because typically you’ve been familiar with a position to the right for many years. It takes a few hours to get somewhat used to it and, at least for me, it took more than a week to feel “natural”.

The symmetric design makes the TEK look very nice. But aesthetics is of course not the real reason for such a radical re-design. Just as you would have guessed, the real motivation is – ergonomics! The little finger (aka “pinkie”) for example is much weaker than your other fingers. But instead of putting less strain on it, the classical keyboard requires you to use this finger for the Return and Backspace keys which are frequently used during the work day. Re-positioning these two keys so you can use your strong fingers for them makes a lot of sense from this perspective.

The TEK follows a very different keyboard design!

The Ctrl keys – required for a lot of key combinations – take the place of Caps lock and Return on the classical layout. Caps lock is a key most people use very rarely – if ever. Wasting the space of a nice big key for such a useless one is a shame. This is something not only the developers of the TEK have realized. There are some new laptop keyboards which simply remove the Caps lock key completely. The TEK moves it to the position below the Fx keys instead to make room for the left Ctrl.

Moving the Pg up, Pg down, Home and End keys to the left as another cross like the cursor keys, proves to be an excellent idea. I used these keys less frequently before because they were not within direct reach from the home row. Actually I didn’t even pay attention to that and it only came to my attention after using them really often on the TEK (to e.g. go to the beginning or end of a line). Whenever I’m typing on an ordinary keyboard now, this feels lacking an important feature: Those four keys without having to move the right hand off the letter keys!

Another useful thing (even though I don’t really use it) is the placement of the Fn key right below the Fx keys. You surely know this key from many laptops which however place it in the lower left corner of the keyboard. And that means you’ll need both hands to really use it (or completely over-stretch your fingers which is a very bad idea on the long run!). The Fn key on the TEK is in a much more reasonable position.

There’s exactly one design decision that I disagree with: Making Tab a small key is not a very bright idea. And I’m pretty sure that more people will think the same in this regard. Tab – the key for auto completion on the terminal! – a small key… However this is not really a problem. Why? Just follow along and see.

Fully customizable layout

Annoyed by the Tab thing? Well, just re-map that key. No, no, you don’t have to go through the pain of configuring your xmodmap on Linux or figuring out how to do something like that in Windows if you use it (or are forced to do so). You also don’t have to re-configure your keyboard on every computer you might attach it to. Why? Because there’s the Custom Layout Designer where you can create your own layout with ease.

Once you are done, you can download that layout and then flash the TEK’s firmware – so your changes are made directly inside the keyboard and thus completely independent of the computers you might plug it into later!

This is an extremely lovely feature. Think about it: The possibilities to customize your TEK are almost limitless. For example I’ve mapped Ctrl back to the lower corners of the keyboard and put Caps lock on the former Ctrl keys (remember that I’m using the sophisticated Neo² layout which uses Caps lock to access other layers with different characters for the keys). I’ve also re-mapped Return to the left Space key because I feel that two of them are a waste of keys. And thus the former Return key, a nice big one in an excellent position, is free for mapping Tab on it!

The layout designer is not only extremely easy to use. It also makes sharing your layouts a simple thing, since a link (a pretty long one of course) is created for it. View the layout that I use right now here as an example, if you wish.

Back side of the TEK: You can see the DIP switches here

On the back of the keyboard there are some DIP switches. Click on the image for a bigger version to have a closer look. With these you can change between Windows/Linux and Mac mode, choose the base layout for some countries (or for Dvorak) and if firmware flashing is allowed. Mine is set to German (DE).

The fully programmable custom layout is the one of the killer features of the TEK for me. There are only two things that I can criticize: For one the layout designer does not produce images with the current version of the firmware (v3.40 instead of v4.0 which the keyboard came with). I don’t know when they’re going to update the layout designer. For me it is nothing urgent as everything that I need works very well with v3.40 as well.

The second point is the more important one for me: Currently there’s only a Windows program to flash the TEK’s firmware! Probably not a problem for a lot of people who have at least one Windows machine. I don’t. And since I didn’t trust Wine or wanted to flash from VirtualBox or something, I had to set up a Windows machine to flash my TEK. This made me do something I didn’t want to do again – ever. While having breakfast I installed Windows 2000 on an old laptop. Then the service packs, etc… Ok, I’ll skip over the details. The outcome was that I was able to flash the keyboard and I did so quite a few times until I was satisfied with the layout.

I really hope that Truly Ergonomic releases a flashing software for Linux somewhen. OS X is probably first but anyway even this would be a huge step ahead IMHO. While I don’t have a Mac and thus would not directly benefit from it, it would at least give you a choice – and make a Linux version much more likely. 😉

More characteristics

Another pretty obvious fact is the very small size of the TEK. Truly Ergonomic Inc. advertise this as a huge benefit because the mouse can be closer to the keyboard – effectively reducing the way your hand travels whenever you switch between keyboard and mouse. I admit that I disregarded this point before I had the keyboard: There might be a theoretical benefit but it ought to be so little that you don’t ever notice it! Now I have the TEK and my mouse is much closer to the keyboard. Guess what: it feels good! I’m still using a Natural Ergonomic 4000 by Microsoft at work. And there really is a difference when it comes to a keyboard to mouse switch. It’s perfectly noticeable! So this is not just marketing after all.

The box which the TEK ships in

Less obvious is another strong point of the TEK: It uses mechanical key switches. In case you have no idea what this means I encourage you to do a bit of reading. For short: Most standard keyboards use a “rubber dome” technique to trigger a keypress. This is cheap to produce and is of rather low quality compared to other types of keyboards. Mechanical keyboards use a separate and independent mechanical switch for every single key and the key triggers at the moment you press it about half the way down. There’s actually no reason to press it all the way down. And thanks to the switches the keys are what is called “tactile”. It’s hard to describe the real difference while typing. Try it out for yourself if you’ve got the chance. I’ve come to like the mechanical switches of the TEK and many other people love the switches of e.g. Das Keyboard, a popular mechanical keyboard that uses them as well.

Another detail is that the keys of the TEK do not follow the standard key arrangement of placing them vertically staggered but in a straight line horizontally. In fact it follows the opposite approach – and this is a great idea! You won’t believe how much of a difference it makes if you didn’t feel it yourself. Our fingers do not all have the same length. The key arrangement of the TEK honors exactly this fact.

Remaining things

The TEK is advertised to be compatible with Windows, OS X and Linux. I’ve also used it together with FreeBSD and OpenBSD – just like you’d expect everything is fine of course.

Before purchasing this gem I read quite some reviews of course. There were complains from people who had problems with the so-called “ghosting” and such or needed to “type in” their keyboard before everything worked right. I never had such problems. My TEK worked from the moment on that I first connected it to my PC. But then again this was most likely an issue with the old 207 and 209 models and seems to be solved with the 229 that I own.

The only real problem that I noticed was that the embedded Num Pad (which can be switched on and off) behaves strangely and is not of much use. Since I don’t really depend on it, I simply don’t use it. However for some people this may be a total no-go. This is probably fixed by the firmware v4.0, but I didn’t try it out.

It’s much more of a shame that the TEK is only offered with an US layout. Again this is not much of a problem for me. But my wife is not happy with this at all. And as you can all imagine, this is NOT good (and does certainly not help to convince her that I need to spend so much money again to buy a second one!). Would be great if you could choose between some common keyboard layouts. I’d even be willing to spend some more money for a German one!

Back side of the box which shows some features of the TEK

Also many people wrote that the support of Truly Ergonomic Inc. is lousy and it takes extremely long to get an answer at all. I cannot say anything about this since I never had to contact them. (I’m thinking about writing to them about the Num Pad issue – if I do, I’ll update this article with the answer.)

Another thing is the detachable palm rest. I like it the way it is and never attempted to take it off. But I think for some people it may be nice to have an even smaller keyboard.

Depending on what you prefer, there are different models of the TEK. One model with wide Alt keys (model 227) which Emacs users will love and one with two normal-sized keys instead of one wide Alt (model 229). And then there’s an “MX brown”-compatible (soft tactile) and an “MX blue”-compatible (clicky tactile) version of either model. I’ve got 229 brown and that’s loud enough for me (at least until I finally learn not to push the keys down to the bottom!).

Conclusion

The TEK is not a keyboard for everyone. It is too expensive for many people and too different from the style everybody is used to. But for people who type a lot, who are willing to invest a bit of time to re-learn things and who take advantage of its special features (like the customizable layout), it is pretty close to the ultimate solution. It is well-thought-out in just about any area. A plastic dust cover for example is such a simple yet very effective thing!

The flaws that the TEK has are very few and mostly nothing too problematic. A choice between the US layout and some others printed on the keys would be my biggest wish, closely followed by a flashing software for Linux. However I guess that an updated layout designer to feature firmware version v4.0 is more likely – and of course I’d appreciate that as well.

Perhaps some of these wishes might come true if the TEK reached a much wider audience. Maybe even the price could be reduced then so that again more people could afford it. Ergonomics is an important topic when it comes to progress in the IT field. The TEK is not the only keyboard which tries to implement ergonomic considerations. But it is a very good one.

If you consider doing something about Ergonomics, to get a new keyboard and try out an alternative layout like Neo², Colemak or Dvorak, I suggest learning the alternative layout first. Trying to get used to a new layout while trying to adopt to a new keyboard will almost certainly fail. And learning a new layout is by far the bigger task – so it makes perfect sense to learn it on the keyboard that you are used to and make the switch afterwards.

Keyboards, layouts and ergonomics (pt. 2)

This is the second part of my article about ergonomic keyboards and keyboard layouts. In the first part I wrote about different characteristics of keyboards, touch-typing, typical injuries of people typing frequently and my first experience with an ergonomic keyboard: A curved keyboard from Microsoft.

Better ergonomics

Probably too late (I already suffered from pain in my hands) I decided to get one of Microsoft’s “Natural Ergonomic 4000” keyboards. It’s quite a bit more expensive than the average keyboard but I hoped that it was worth the money.

The initial impression was at least ambiguous – or probably even negative. I could see the idea behind the ergonomic design and wanted to believe that its wavy style was superior to the simpler curved one. But the whole thing is a true beast of a keyboard! It’s very big. No, actually it is huge – and not only in length but also in height. The later is a problem if you (like me) have a sliding board under your desk where you put the keyboard. Chances are that it won’t fit there. And then, for a personal view, it is really ugly.

Microsoft’s Natural Ergonomic 4000 Keyboard (german layout) – This was my prefered model until now

It wasn’t easy to develop a friendly attitude towards that thing. The first day I used it, I had to switch to my old keyboard again to enter my boot passphrase. I’m the kind of guy who cannot remember his passwords but knows pretty well which keys he presses. And so it was nearly impossible for me to enter a long password at first because the keyboard felt very different from anything I had ever typed on before.

Another thing is the split design; I used to type the ‘b’ key with my right hand for example. This was no longer feasible with the new keyboard thanks to the gab. This was a major nuisance until I realized that it was not the keyboard getting in my way but in fact a bad habit of mine. From this perspective the new keyboard even helped me to get rid of that bad habit and I’m quite happy with that fact now. As I was getting used to it this became less and less of a problem (the same is true for the passwords). It took me about two weeks to adopt the new style enough to type without pressing the wrong key too often. After a bit more than a month things started to feel alright again. My typing speed however was reduced for many months and I felt that I never actually reached my best times again. But the reason for that was not the keyboard. It was myself choosing to learn a new layout.

National keyboard layouts

While the US keyboard layout can be found around the world when it comes to servers, it simply does not qualify for most languages. This is perfectly clear for the Russian Cyrillic alphabet, the Greek one or the Asian languages. But also most European languages which use the Latin alphabet as well, have additional characters which English does not have. This is why there are so many national keyboard layouts.

The default German layout (from Wikipedia)

However the additional characters come at a price: Some other characters are moved and may even require a combination of keys. The German keyboard is a fine example of a very bad keyboard layout today. It features the umlauts (Ä,Ö,Ü) and other characters, but some special characters are not very convenient to reach. In the days of typewriters it may have been ok because you would not need characters like the backslash, curly braces and so on. These examples are located in hard to reach places with AltGr+Plus sign, AltGr+7 and AltGr+0. The problem is that you need them a lot on the computer. Just think how often you need the curly braces if you’re a programmer… You see the trouble.

A lot of programmers in Germany actually just use the US keymap for work. I can work with US pretty well, too, but this is not the ultimate solution. Fortunately there are the so-called alternative layouts.

Optimized keyboard layouts

In the English world Dvorak is the best known one. It has the same characters as the default US keyboard but another layout. A lot of people claim that they can type faster with this layout. The idea here is that the letters which are most often used in English are placed on the home row (this is the “start position” where touch-typists have their fingers when they start typing). This sounds like a good idea but critics claim that there’s barely an improvement in speed it at all. I’ve never used Dvorak so I cannot say much about it.

The Colemak layout (from Wikipedia)

There’s also a less well-known alternative for the English keyboard that is a more modern variant: The Colemak layout. If you are mostly typing English text you may really want to try it out. It’s meant as an even bigger improvement over Dvorak – and it adds a lot of characters from other European languages! Whether you need a Spanish Ñ, Scandinavic Å or Turkish Ç – no problem. While I’ve never used it myself I must say that it sounds pretty good.

And then there’s the most advanced layout that I know of: NEO². It’s a modern re-organisation of the German keyboard that considers letter frequency of both German and English. It uses several dead keys (keys which do not produce a character themselves but modify the next key pressed adding an accent or something to a letter) and has six (!) layers. Thanks to that it can create special characters like the whole Greek alphabet (in lower and upper case) and dozens of special symbols. Thanks to that unique flexibility you can use it for pretty much any language which uses Latin letters!

The 1st layer of the NEO² layout (from Wikipedia)

The letters are the following: Every normal key press is layer 1. Shift+key press is for layer 2. Caps lock+key produces a layer 3 symbol. And so on. Isn’t it great to finally have a good use for that nice big key below tab? Another cool thing is that this layout is already shipping with X11. So in the Unix world it is always just one “setxkbmap de neo -option” away!

Re-learning to type

I admit that I knew about alternative layouts for years but I never cared to take a look. When I finally did, I decided to give NEO² a try. It was self-evident that it would not be easy to fight two decades of QWERTZ writing. And yes, I was in for a fair share of pain. I had to learn a new keyboard completely from scratch. Damn, where was that letter again? I decided to practice a few minutes every day and after some time I found the right letters after thinking a few seconds. My WPM (words per minute) literally dropped to < 10!

As a (previously) fast typist this was a very distressing experience and I can see why quite some people quit instead of really finishing the migration. It takes a lot of resolve and endurance. But hey, there's no free lunch! I decided to stick with it and kept getting better and better. One day I found that I could reach 20 WPM again, then 30. You can imagine my relief when I hit 50 again. Now I could type fluently type texts with NEO².

After taking a one more week to learn the most important special characters and feeling bold one day I decided to switch my layout at work. The password problem was back again and for some weeks I switched layouts back and forth when I had to enter passwords. But it was only a matter of time until this was no longer necessary.

I've been writing NEO² for quite a while now and I'm still failing to hit 70 WPM on random text. Since I quit practicing after reaching 50 this is pretty much ok, I think. Was it worth the trouble to switch over to a new layout? You bet it was! Learning NEO² was one of the best decisions I've made in the computer field next to abandoning the Windows platform. I can only recommend it to everybody who is interested in this kind of thing. Invest some time – it really pays off.

What’s next?

The next post will finally feature my review of the TEK (Truly Ergonomic Keyboard).

Keyboards, layouts and ergonomics (pt. 1)

This post is about keyboards, keyboard layouts and… ergonomics. No surprise here if you’ve read the title! But how come that I write about such a topic? Well, I’ve invested some of the money I got from my family for Christmas and bought a new keyboard. I was a bit skeptical at first because I’d really regret having spent my money on it if it wasn’t really good (as it hasn’t exactly been a cheap one). However just days later I begun asking myself how I could have ever typed with something else. And after a few more days all that I do regret is the fact that I’ve typed for way more than 20 years on more or less conventional keyboards!

Yes, I’ve been going on a lot of people’s nerves praising my new gem. So I figured that I might as well complete the circle and publish my pean here on the blog, too! (Ok, the more serious reason is that I’m suffering from severe pain in my hands like many people who type a lot and that I’d like to talk about today’s possibilities to avoid this.)

This first part deals with a few general things about keyboards and the problems that typists often have. The second part will be about optimizing your typing with alternate layouts and the actual review of my new keyboard.

Edit (03/01/2015): I’ve finally managed to add the pictures that I wanted to have in the article right from the beginning…

Any keyboard does the job, right?

If all you want is to play computer games or enter your password when you log in – probably yes. Even though it’s funny that there are “gaming keyboards” which can also be rather costly. But that’s a very different case and story.

For simple things every keyboard suffices. I own an old laptop that I still use sometimes just for the very reason that I can. Its keyboard misses some keys which makes it not all too pleasant to type on. But still it’s possible. Honestly: I have no clue how many keyboards I’ve had over the years that had some keys no longer working or no longer work properly. May it be due to Cola making some keys stick together or a worn off space bar which would only trigger if you pressed it with a considerable amount of force.

Microsoft’s Comfort Curve Keyboard 2000 (german layout) – the first ergonomic keyboard I had was such a model

I used to retire those keyboards from daily use (simply because they were annoying to work with) but usually kept them somewhere – just in case. You never know if you’d ever need them again, do you? Eventually I got rid of them. But in fact I actually did have a use for them a few times now and then!

So I can say that I’ve had quite a few keyboards in my life and that probably anyone does the job – depending on what that job is!

A matter of taste

There are a lot of different keyboards out there and in many aspects it really is a matter of taste. Some people like black keyboards while others want a white one. There are people who think it’s cool if the keys have background light. Some prefer the flat keys which you often find on laptops these days – others hate them. While many people like keys which do not need much force to be pressed, there are also those that prefer the opposite. Often I hear that somebody would never again purchase a wired keyboard but I know at least as many people who don’t like wireless ones.

It’s not hard to see that there just cannot be one single “perfect” keyboard for everybody. People have different needs and this alone defeats the idea of one universal best keyboard. And as long as you don’t type a lot it probably remains just a matter of taste. However if you type on a daily base this may no longer be the case. Right: No matter how much you type, the color remains pretty irrelevant. But other characteristics are worth a closer look at.

Microsoft’s Natural Multimedia Keyboard (german layout) – an older model with a PS/2 connector that I bought second-hand

But when are you “typing a lot”? If you can only type less than 30 WPM (words per minute) even if your life depends on it, you probably don’t qualify. Which of course doesn’t mean that you could not benefit from thinking about your keyboard again (everybody should try to get the right tool after all, right?). If you type faster than 40 words, you’ve clearly typed enough in your life to make it worthwhile thinking about how you type. Especially if you write “Eagle Finger” (“hunt and peck”) or use “your own system” as a whole lot of people do.

Typing – or typing properly

It’s perfectly sensible if people who barely type at all don’t bother to learn to touch-type. Unfortunately a surprisingly high amount of people who type regularly think the same. Why on earth to invest some time and effort that pays off hundredfold and thousandfold? Yeah, why? Just wait a minute – thousandfold? That’s a lot. And yes, I do mean it.

I had the luck to learn to touch-type properly when I was still at school. The hours that I needed for training were relatively few. After I knew where all the keys were (without looking), I just typed and typed and kept improving my skills while I was primarily doing other things. Even in a very pessimistic calculation the time that I saved thanks to proper typing by the end of the year was way more than the time I had “lost” by type training in the first place. Then it started to pay off and really saved me time for other things. And best of all: It still does and will continue to do so for all of my work life and probably beyond that.

Well, I’m the “typealot” kind of guy; I’ve been typing whole books into my pc at younger years because I can read texts written in Gothic type style (aka. black letter) pretty well – and being interested in history, I thought that preserving old writings which are no longer copyrighted was cool. So learning touch-typing has paid off more than thousandfold for me. Might be a bit less for the casual typist, but I cannot recommend learning to touch-type often enough. If you’re using a computer regularly (and chances are, since you are reading a blog like this!), invest that time. Unless you are an old guy who is already counting the days left to retirement pension, you will benefit from learning it.

Ergonomics in keyboards

When I talk to young people about Repetitive Strain Injury (RSI), Tenosynovitis or Carpal Tunnel Syndrome (CTS), they tend to dismiss it: “Ah, why should I of all people get this?”. I can fully understand that. Why? ’cause I’ve been young myself and used to think right the same then.

The rigid splint I’m wearing against the pain

As I grew older I begun taking these possibilities more serious – at least a bit. I had heard about those “ergonomic keyboards” that Microsoft was selling. More out of curiosity than of anything else I bought one of those “curved” things. Thinking of the conventional keyboard as the “normal” form, I found it strange at first. But I could type on it pretty well and it felt alright. It took me less than three days to adapt to the new keyboard and it was not too different from the conventional ones so that I had no problem typing on those, too.

I got more of these and used such keyboards for years. Not because the ergonomic design promised to protect my hands, but because I liked how it felt to type on it. Then I begun to suffer from Tenosynovitis. At first I just thought that I had a temporary problem with my right hand and that it would go away soon. It went away, yes. But it has been coming back again and again. Then I got it in the other hand as well. In the end there were only “better days” and worse ones. In the meantime I have a rigid splint that helps a bit but is also not very comfortable to wear the whole work day so I use it only on the bad days.

The rigid splint’s top side

So are those ergonomic keyboards a fraud? Mine didn’t save me from getting an injury after all! Well, I’m not really sure about the curved keyboard that I had in this regard. It might simply have happened even earlier on a conventional keyboard. But then there are even people who say that those keyboards are not any better than the ordinary ones. I wouldn’t go as far as that but they are probably far less effective than those marketing guys want you to believe. Still this would be the kind of keyboard that I’ll give to my children when they begin to type. Why? Because I think that it’s slightly better than the conventional form but still close enough to it so you can switch between them without much trouble (and let’s face it: There are simply far more ordinary keyboards out there!).

What’s next?

I switched to another ergonomic keyboard quite a while ago and learned an alternative layout. And finally I got what I consider a really great keyboard. That’s what I’ll blog about in the next post.

The concepts of complexity and simplicity

Life in general is a very complex thing. Society is a complex matter, too. Also the IT world is a complex one. And so are many of today’s programs – for the good or the bad.

In many fields complexity is a necessity. You cannot build a simple microprocessor that satisfies today’s needs. And there is no way to have a very simple kernel that can do everything that we need. I agree to that and I do not want to condemn complexity as a whole. But – and I cannot stress that enough – while more and more sophisticated programs are being developed, projects have the tendency to become overly complex. And this is what I criticize.

A bit of history

Most of my readers are probably happy users of some Unix-like operating system. Some may live long enough to have witnessed how these systems changed over time. Many of us younger ones did not and so we only know what we have read about these times (or probably not even that).

Thinking about the heritage of Unix, another OS called Multix comes to one’s mind. This system was jointly developed by AT&T, GE and the MIT. It was a sophisticated operating system which had many remarkable or even truly revolutionary features for its time. A lot of effort and money was put into it. High expectations were put on Multics. And then eventually – it failed.

AT&T had pulled out of the project when they realized that it was rather slow and overly complex. They learned from it and attempted to create a system which followed the opposite approach: Aim for simplicity. This system lead to an incredible success: Unix.

So it is important to know that enthusiasm for technology and the urge to develop more and more complex programs is not a new phenomena at all. In fact I’d claim that it is the logical consequence of how man thinks. While all things begin with relatively simple forms, complexity as a concept does not follow after the concept of simplicity. On the contrary: Simplicity is the lesson learned after realizing the downsides of complexity.

Universalism and particularism

Some people seem to be fascinated with the idea to have one tool that should do nearly everything. Let’s assume we have that tool available today. The result will be an extremely complex application which has an overwhelming number of features. There will hardly be any single person who will know all these features (let alone bring all of them to use).

Now each feature you don’t use wastes space on your drive. While this is true, it is certainly the smallest problem when you’re not working in the embedded field. A bigger one is that it will surely be of low quality: While it can do a hell of a lot of things, it is very unlikely that all of its features will be comprehensive. The program is likely to be rather slow because optimizing a very complex program is extremely difficult. The worst thing however is that it is bound to contain a high amount of bugs, too!

It is a well-known fact that program code where functions are longer than the maximum lines that fit on the screen, contain far more bugs. For some reason a lot of programmers seem not interested in writing good code but either just want to get something done or aim at too ambitious goals which make the project overly complex.

On the other hand there are projects which specialize in a single, narrow field. If you suggest a new feature it may very well happen that it will be rejected. The people who work on this project do not care for stuff just because that’s currently ultra-hip. Instead they often refer to features which are not really needed as unnecessary bloat. These programs cannot do a lot of things by themselves but excel at what they can do.

Following the later idea is the Unix way of doing things. The true power comes from the combination of specialized tools which can yield mind-blowing results when used by an experienced user.

Featuritis?

There are quite a few programs which suffer from a strange illness which could be called “featuritis”. It often makes the host look handsome and appealing for many people. This illness is usually not deadly and often invisible for quite some time. But it does bear a very destructive aspect, too…

Two of the programs recently found infected are OpenSSL and BASH. The former kept so much legacy code in the project and even re-implemented things done better by others that it was impossible to have a good overview of the whole project code. The later implements a lot of features which are hardly ever used by anybody and also uses some functions of its own which are arguably wasted code since there are better alternatives out there.

Both projects succeeded in being widely distributed but read by few and understood by even fewer. And those few didn’t look at all the obscure parts of those unclear and confusing code. This is why severe bugs could exist for a very long time before anybody ever noticed.

Probably the most important project where I diagnose a particularly intense form of featuritis is Systemd. It acts like an init system but absorbed the functionality of so many other programs by now that I’m getting dizzy thinking of it. Worse: A lot of people who have looked at it more than just a bit claim that it is badly designed and the code is rather unclean. Even worse: The developers of Systemd have had a conflict with Linus Torvalds because they broke things with their code and even refused to fix it insisting that it was not their problem! And the true tragedy is that it has spread to a great many Linux distros. Once a really bad bug is found concerning Systemd, this will probably take suffering for admins and users to a whole new level.

An exit strategy for the brave

My respect for the OpenBSD guys continues to grow the more I read about it. They claim to have a very secure OS and from what they do I can only say that they mean it. The LibreSSL fork or the SystemBSD project are just two examples that show how dead serious they are. A lot of people seem to ridicule them because there are not too many OpenBSD users out there when compared to Linux. That’s true of course. Their OS may also not be very familiar from a Linux user’s point of view and the OpenBSD guys may not be too friendly towards newbies. But they are nice enough to make their projects portable so that everybody can profit from them!

And in case you want to stick with Linux, there’s a great source for this platform as well. The guys over at suckless aim at creating programs “that suck less”. Go ahead and read a bit – especially the sucks and rocks pages! On the first one you’ll flabbergasted at how bad the situation really is with a lot of programs. Yes, they are fundamentally broken – and their developers don’t care about that. Code correctness doesn’t pay of if you just want to target the masses. But if you want to do things right it does.

Are there really people out there who care? You bet there are. Think about this topic again and try out a few alternatives. You might well find a real gem here and there – if you are able to look over some of the shortcomings compared to the well-known, featureful and bloated defaults.