[ ! -z ${COC} ] && exit 1

There has been some turmoil about FreeBSD’s new Code Of Conduct lately. While it was meant to maintain peace in the community, it actually lead to the opposite: Two fractions are more hostile towards each other than ever – and the new COC allows to simply get rid of unwanted (by one such group) persons.

Disclaimer: I’m just a FreeBSD user and advocate. I work with my OS of choice, write about it and encourage trying it out. However I’m not directly part of the project – and while that has been a mid-term goal for me for some time, that way is probably blocked for me now.

What’s a Code Of Conduct?

Basically a Code Of Conduct is a set of rules for people to follow. If you join any organization that has a COC, reading and understanding it is essential. It will tell you what you are expected to behave like and which behavior is objectionable.

The idea is to write up rules that make sense for the organization and that everybody can accept. It’s often simple things like: Respect your colleagues, shut the door when smoking outside, try to be helpful if somebody asks you for help, etc. In short: Behave decently.

Why all that fuss about it?

So – if that’s all, why write an article about it (let alone make all that noise about that topic)? Well… That’s not all, unfortunately. The main problem is not “a COC” – it’s FreeBSD’s COC. Scroll all the way down to the end of the COC and you’ll see the attribution. It reads: Geek Feminism Wiki. It’s no surprise that this is like a red rag to a bull to for some people: Feminism?! In tech??

People who overreact when reading the term alone should really calm down. Yes, stay cool. Why? Because it’s actually getting worse…

Feminism

Yeah, everybody knows what feminism means, so why talk about it? Because there’s feminism and there’s… well, “feminism”. While the former is a just cause (unless you’re a true women hater), the latter is a crude ideology. “Feminism” is not about women’s right to vote, to live their lives free from oppression or their right to be an esteemed part of society. It’s about destroying society in the name of a just cause.

“Third wave” feminists will happily taunt married women who chose a traditional family life to be “slaves”. While everybody else knows that it’s a token of appreciation to hold a door open for a woman or help her out of a coat, they will aggressively deny this and state that they can do it themselves. Compliment them and you’re toast. And worse still: Dare to use a word that they deem evil and they will assault you (at least verbally). Plus: They are so obsessed with “minorities” that actual concerns of women come second – at best.

I’ve known a girl who went to an elite school. She spoke Latin fluently (as well as Greek mostly) when she was only 14 (she once corrected me before I even finished a Latin sentence that I read from an old exercise book of mine…). She had a very strong spirit, too, and rejected the religious belief that was expected from her. However she had very humble goals for her own life. When they were asked in school what job they would like to do later, she stated: Housewife and mother. After a moment of shocked silence, she was laughed at. As she told me, that had been the most painful moment in her young life. It’s a shame when a woman cannot become an astronaut if that’s what she dreams of doing. But it’s plain wrong to force women to take up paid jobs if they would prefer to live a traditional life.

Feminism is freedom of choice for women and means that each woman gets to decide for herself. “Feminism” is coercion and doctrine and it means that ideologists decide what women in general have to do (and what not). Feminism is sound, honest and all about emancipation. Whereas “feminism” is cruel, phony and enslaving.

Balance

When thinking about freedom, it makes sense to distinguish between what is commonly called “positive” and “negative” freedom. This does not mean that negative freedom is something bad – both freedoms are valuable. To avoid misunderstandings I prefer to speak of active and passive freedom. Active freedom is the freedom to do something while passive freedom is the freedom from something (e.g. paying taxes).

Those freedoms are in a direct and fixed relation to each other: To increase one you have to decrease the other. Want to give people freedom from the fear to be shot in public? There’s no other means but to take away the freedom to carry firearms with them. Other way around: To give women the right to breast-feed babies in public means to take away the freedom of others to never see any bare breasts by accident.

You will always find people who are easily offended by just about anything. And on the other hand you’ll find die-hard folks who demand that they are allowed to do whatever they feel like. Both are rather extreme stances. It’s not terribly hard to see that some kind of balance is necessary between them.

Making an example often simplifies things. So here we go: I like to listen to music. Various forms of Black and Death Metal are my favorite. It’s also quite common that Metal bands use artwork that’s a bit… special. Some of the clothing that I own displays blood, gore and human innards. Nude women are also not so uncommon nor is blasphemic imagery. What I loathe on the other hand is so-called Hip-Hop music. Monotony is a weapon and whenever I’m forced to listen to something like this, my brain twists in agony as I can physically feel getting more and more dull.

What I’m considering beautiful music is terrible noise for most people. I can live with that. I don’t feel the need to complain loudly that somebody just “disrespected” me with such a statement. On the contrary: Taste is entirely subjective. It’s ok that you don’t like my music. I’m also not going to annoy you with it. And yes, the aforementioned kind of clothing is fine when I feel like going to a club or Metal bar. It’s probably not the right thing to wear when going to church. I won’t show it in public – there’s no need to confront people with something that they find is disgusting. At the same time I’d prefer if people would stop annoying me with loud “rap music” and the like in public. I don’t want to have to listen to that! However I’m not going to demand it. I think that people should care for not offending others. But if they think otherwise (or don’t think at all), I value freedom enough to not go all drama about it.

Tyranny vs. democracy

Let’s talk about minorities next. In ancient Greece democracy was not what we use the term for today. Still it makes sense to look at what terms like that come from and how they evolved. Polis is the Greek word for “city”. But don’t think of today’s modern cities – the poleis were effectively city states (you can still recognize “city” in citizen, even if that refers to a state). That Polis is where the word “politics” is derived from; “politics” basically means anything regarding the rules of the city (or state). Tyrannis was what the rule of a single potentate was originally called and democratica the rule of the demos, the citizens. Neither women, slaves nor metoikos (established strangers) were citizens and thus could not vote or otherwise participate in the state affairs.

The very idea of democracy was that by the means of vote, the majority gets to decide. The modern idea of democracy makes one fundamental difference: Even though they are outvoted, minorities can still be citizens after all and thus – to a certain degree – need protection from the majority. This is a very important concept and protecting the weak is commonly agreed to be a noble thing. Therefore this is not where democracy ends as some people may claim.

There is this point however, where the whole thing is getting completely out of control. This is when the noble idea of protecting minorities is turned into a weapon to terrorize the majority. Sounds absurd? Agreed. But just look around you carefully… There’s this idiot making stupid claims and trying to get you into trouble. However you cannot even call him an idiot – because he’s black/gay/jewish/handicapped. That’s right: Attribute xyz doesn’t have anything to do at all with the fact that he’s an idiot, but in today’s society, sometimes that’s all that counts. And that’s where the most important freedom – which is hard-fought and not a gift at all – disappears: Your freedom of speech is gone. You are no longer free to even say the truth just because… Yeah, just because what? Because otherwise your reputation will be destroyed.

That’s pretty bad, yes. But fortunately we’re one step ahead on the path to complete insanity. People are free to arbitrarily declare that they belong to minority xyz – and you better “respect” that! Also they are free to “feel” discriminated by your behavior – and this can put you into real trouble. Don’t want to lose your job? Bite your tongue! Don’t want your neighbors to scorn you? Keep your trap shut! Oh, and welcome to the dictatorship of “political correctness”.

Embracing the absurd

If you want to protect every thinkable minority (and by “protect” mean to ensure that nobody is allowed to act in a way that could hurt their feelings) this is simply an impossible situation. Just one bitter example: Most people would agree that denying the shoah might hurt a lot of jews. But what about the people who… No, stop, you cannot call them holocaust deniers! They prefer to be called “people with an alternative opinion on the so-called holocaust”. And they are certainly a minority.

What about white supremacists? They are a minority, too. Learn to respect their feelings, will you! Or fundamental christians who are absolutely certain that homosexuals burn in hell. This belief is not exactly one that the majority shares.

And when it comes to “feminism”, some people even believe that it is “fair” to penalize others on account of an asserted privileged position in the past. This is when all ideas of equality vanish and certain people demand that discriminating against men/whites/christians/… and preferring women/blacks/$RELIGIOUS_GROUP is a good thing. But let’s not get deeper into this.

FreeBSD

People shouldn’t hurt each other, that’s something (almost) everybody should be able to agree to. But it’s not a good idea at all to drive this to the point where it gets ridiculous. FreeBSD’s COC hits this point a couple of times, e.g. when

simulated physical contact (e.g., textual descriptions like “*hug*” or “*backrub*”) without consent

is declared “harassment”. This lead to the FreeHugsBSD fork because the original is now “hugs-free BSD”…

FreeBSD is not very often in the news and if it is, not too many people care about it. In this case however, the forums of the German tech community were full of posts (most of them making fun of us FreeBSD users – and mostly rightfully so). Others are sharing pictures like this.

My personal favorite however is the ban of “dead names”. Sorry people, but most of the time somebody wants to change his or her name, I’m not convinced. I don’t care if James comes back from Syria and wants to be called “Abu Khaled” or if Frank decides you should call him Charlotte. Don’t get me wrong, I wish them well. However I’m pretty sure that it would be best for both of them to go and see a psychiatrist.

Do we need a Code Of Conduct?

In short: No. We’re talking about tech here. If you cannot use UFS because it was created by McKusick – who married a man -, that’s your problem. If you use UFS because it was created by a gay person, I’d also not vouch for your mental health, but to each his own, eh?

Same thing for all those other minorities: It simply doesn’t play any role. Maybe you’re an atheist while I’m not. I’m pretty sure that we can get along just fine if we’re both passionate about BSD (and even if we meet in person and discuss religion, I’ve never had a problem with a polite person that doesn’t share my faith). If you have a disability, it might make sense to mention that on the net because it really affects how you use a computer. But why should you care that I’m a vegetarian? And why should I care if you were “born in the wrong body”? If you love a goat that’s of course a different thing in this case! 😉

But still: Why don’t we keep all this nonsense out of the community and learn to actually get along? Yes, there has often been a questionable tone e.g. in the mailing lists. There’s a lot of room for improvement. But does dictating strange rules really solve the problem?

So what now? Should you rage-quit FreeBSD? Stop donating? Yelling at core and cursing whoever proposed this? Certainly not. The best defence against all this madness – is keeping calm and taking it seriously. Stay with FreeBSD if you can and express your rejection of this disgrace. Freedom is never gone for good. It can return.

I’m out – for now

For me personally, joining FreeBSD is currently not an option. I’m a “live and let live” kind of person. Thus I can get along with people who I consider to be weirdos (and with those that consider me a weirdo – at least for my part in getting along!). Again: This is tech. There are a lots of rather special people around, often with their very own quirks. A lot of them are quite brilliant, too, and you wouldn’t want to miss them.

But never ever, under no circumstances am I going to pretend what certain people call “respect” (thus washing away the meaning of this grand word) for quirks that I can live with but definitely won’t approve of.

Oh, and I belong to various minorities, too, BTW. One is the minority of people who don’t speak English natively and whose tortured sense for grammar screams in pain when they encounter the abomination of a “singular they”. Won’t you have mercy with me? Please?

Blessed be the blind
For their conscience won’t collide
With the cruelty of sanity
And the prophetic signs
In the book of life
– Suidakra, Signs For The Fallen

Advertisements

“Permissive licensing is wrong?” – No it’s not! (2/2)

The previous post gave a short introduction into the topic of software licenses, focusing on the GPL vs. BSD discussion. This one is basically my response to some typical arguments I’ve seen from people who seem to loathe permissive licensing. I’ll write this in dialog style, hoping that this makes it a little lighter to read.

Users

GPL fan: “BSD license? Really? You shouldn’t be using that!”
BSD advocate: “Why not? I like it a lot.”
Fan: “It’s a dumb decision. Don’t you even care about free and open source software?”
Advocate: “Oh yes, I do!”
Fan: “Then why not just use the license everyone uses? In contrast to BSD, the GPL ensures that code remains free.”
Advocate: “No, not ‘everyone’ uses that license. You wouldn’t claim that e.g. the Apache foundation doesn’t do anything for open source now would you?”
Fan: “Most of the important projects do. Apache and some others don’t, I’ll give you that. They should adapt the GPL, though.”
Advocate: “Version 2 or 3?”
Fan: “GPLv3, of course. It was updated for a reason after all! The current version offers much better protection for your code.”
Advocate: “Well… I don’t feel any need for this kind of ‘protection’. But for now let’s assume that you convinced me. Changing the license would be quite a bit of work!”

Simplicity vs. Complexity

Fan: “How’s that? Re-licensing stuff to GPL is pretty straight-forward.”
Advocate: “Reading – and understanding! – the license alone takes quite some time… Which is one reason I prefer the much simpler BSD licenses, BTW.”
Fan: “Nonsense! The GPL has been constructed carefully and is advocated by the FSF. You can read it, of course, but you could basically trust their judgement.”
Advocate: “I strongly prefer to work with things that I do understand myself.”
Fan: “The aim of the GPL is not hard to understand at all.”
Advocate “It’s a complex monster. Sure, I understand what it’s all about. But in life in general – and even more so in law – the devil is in the details. Finding out what I am allowed to do and what not is not an easy task – and it got more complicated with every new version of the license.”
Fan “It’s only as complex as it has to. You admitted that law is complicated and details are important. Of course it had to become more comprehensive over time! That’s for our own good.”
Advocate “‘Of course’? I’d doubt that. The BSD license has seen updated versions as well – and it has been shortened with every new revision… Anyway, my focus is on the software. For that reason I prefer a license that doesn’t distract me for quite some time from what I actually want to do.”
Fan: “You said that you care about your code? Fine. Then you really should avoid BSD licenses!”
Advocate: “Uhm… What?”
Fan: “Linus Torvalds put it this way: ‘Over the years, I’ve become convinced that the BSD license is great for code you don’t care about’. And he’s right.”
Advocate: “No he isn’t. It completely depends on what you want to achieve!”

Success

Fan: “It’s common knowledge that the Linux kernel is so successful because of it being GPL’d so that every company using it had to give their changes back for the common good. Let’s see… How popular are your valued BSD-based operating systems today? Oh, nobody uses them anymore…”
Advocate: “Wow, Netflix, Whatsapp and others who exclusively use BSD are ‘nobody’? Not to mention other users and supporters of BSD operating systems like Yandex and VeriSign. The BSDs are less visible compared to Linux, that’s true. But by simply doing their job well and without all the community drama people are talking less about the BSDs is not a surprise at all!”
Fan: “Now you’re trying to make it look like Linux and the BSDs were on par! That’s completely wrong. Linux has a share of 100% on the TOP500 supercomputers since November 2017. Try to beat that!”
Advocate: “And with Android… yeah, I know what you’d point to next. True: Linux has reached a monopoly worse than…”
Fan: “Worse? What’s bad about open source software prevailing?”
Advocate: “Monopolies are not a good thing at all. I’m all for open source operating systems – mind the plural there.”
Fan: “Heh, you only say that because you’re betting on the wrong horse. Face it: Linux is the winner here and for a good reason!”
Advocate: “*mumbles* Yeah, and if only it had adopted the GPLv3 then it’d be at 200% share on supercomputers now…”
Fan: “Excuse me, could you repeat that just a little louder?”
Advocate: “I just doubt that it’s only a license thing that decides on success or failure. For the BSDs, historically it has been a state of legal uncertainty that was the big problem and allowed Linux to rise. And if your point was really valid – why do we need GPLv3 at all if v2 used by Linux to this day is all that’s required to conquer the world?”
Fan: “You’re just jealous! But sure, the GPL is just one key to the success of Linux. The BSD licenses are also one major factor in the demise of the BSD operating systems.”
Advocate: “There is no demise; there are at least four healthy BSD communities who continue to provide quality operating system releases. The claim that ‘BSD is dying’ has about as much truth to it as the prediction of the ‘year of the Linux desktop’! Of course you are free to prove otherwise.”

Freedom

Fan: “Freedom is a good point, too! Permissive licenses may grant the user some rights but only copyleft ensures that nobody can take your freedom away. Isn’t that kind of important?”
Advocate: “Yes, freedom is extremely important – which is why I choose permissive licenses over copyleft ones. But we certainly won’t find a definition of freedom that suits both of us.”
Fan: “So that’s something you don’t want to talk about? Then what are you hiding there? Your weak arguments?”
Advocate: “Not really. The problem here is: I know and understand your point of view. Why? Because I’ve been there when I was younger and promoted the GPL. But now that I have a broader understanding of the matter I have a different view on it.”
Fan: “Yeah, just treat me like a young boy. ‘You cannot understand that now, grow a little older and wiser and you’ll be enlightened like me!'”
Advocate: “I didn’t say that. All that I’ve said is that I know your position and that it’s nothing that can be proven wrong easily enough for us to make sense to discuss it without going in-depth on it. If you insist, we should set aside a couple of evenings for a philosophical debate.”
Fan: “Which philosophical debate? I’m still claiming that you’re trying to avoid the topic.”
Advocate: “Yes, I am – for today. It’s a topic for itself and leads too far off for us right now. But here’s the core of the problem: The point of view you have is that ‘enforcing freedom’ is a good thing. From my point of view it is absurd. Force and freedom contradict each other.”
Fan: “Not necessarily.”
Advocate: “So you claim that it’s possible to force somebody to be free?”
Fan: “Hm. Why not?”
Advocate: “Because force takes freedom away. But the problem is in the term ‘freedom’. We use it differently and mean other things. That’s why this specific debate would require a whole lot more time. So can we agree on a draw for that topic for now?”
Fan: “If it really takes so long to discuss, that may make sense. So back to the characters of the licenses, right? But don’t think that I’ll let you get away with such claims on another topic again!”

Better with Copyleft?

Advocate: “So?”
Fan: “Copyleft is also superior to permissive licenses.”
Advocate: “Didn’t we already cover the topic ‘success’? Or do you mean the fact that it’s overriding the terms of permissively licensed code when the two are combined?”
Fan: “I meant something else, but that’s true, too, of course!”
Advocate: “I don’t think that this is a good thing. It’s virulent in nature.”
Fan: “Oh hello, Mr. Ballmer!”
Advocate: “I didn’t say that it’s cancer, even though that’s probably a valid point of view on it.”
Fan: “Anyway, it’s superior because it guarantees that companies using the code contribute their changes back. It’s pure logic to assume that this makes the software better than a competitor where you don’t have to give back.”
Advocate: “Hm… What about the incompatibilities of copyleft licenses?”
Fan: “What do you mean? And how would that impact the quality of an OS or something?”
Advocate: “Well, take ZFS for example. It’s the world’s most advanced filesystem – and it’s licensed under a copyleft license. However that license is incompatible with the GPL and for that reason cannot easily be included into Linux distros! FreeBSD for example doesn’t have this problem. Due to the permissive license of the main operating system components, including ZFS was no problem from a legal point of view…”
Fan: “Ah, we can do without ZFS, we have BTRFS! And if you really want it, you can use DKMS to build it!”
Advocate: “DKMS is quite an inconvenience in this regard and I won’t even comment on that other FS… But that was just one example that copyleft licenses are sometimes not as cool as you’d like to make them look.”
Fan: “Nah, Sun should have open-sourced ZFS under the GPL or at least made their license compatible with it. Then we wouldn’t have that problem.”
Advocate: “The more complicated licenses get, the more edge cases arise that lead to problems. BTW, have you ever heard the comparison ‘GPL is a license. BSD is a gift’?”

Gift vs. license

Fan: “The large corporations will surely applaud your stance on this matter!”
Advocate: “Oh, let’s stay clear of this childish behavior and refrain from insulting each other with poisoned compliments, shall we? Otherwise I’d reply with something like ‘great attitude! Congratulations on it from the national lawyer’s association’. But that wouldn’t be helpful either, would it?”
Fan: “Lawyers are not nearly as bad as the big companies.”
Advocate: “Right. Some of them are supporting your cause. Others are doing the opposite by helping big business to find new loop holes. Both make quite a bit of money without ever improving the code.”
Fan: “Good lawyers are necessary to help protect software. That’s a win for open source.”
Advocate: “If you say so… I still prefer simple things. I like it being a gift.”
Fan: “Others will surely like that, too. It’s a gift to the large companies that only care for open source when they can make profit with it! For that reason making such a gift is stupid.”
Advocate “Not so fast. It’s a gift to everybody. That makes quite a difference!”
Fan: “No it doesn’t. Greedy corporations will end up taking your code.”
Advocate: “Maybe they’ll actually do. But are you really saying: ‘Don’t give a blanket for a refugee – a terrorist might warm himself with it’? Are good deeds wrong if a bad person might benefit from it?”

Exploitation?

Fan: “*Sigh* That’s not the point. When you use permissive licenses you are actively asking to be exploited.”
Advocate: “Sorry, that’s simply wrong. Software has the advantage of not disappearing when you give it away. I can give it to multiple people and don’t lose anything. When it comes to free software, the only thing that can be exploited are bugs.”
Fan: “Ha ha, very funny – not. You know exactly what I mean: You are asking to be exploited because you invested time into a project and somebody else simply takes it and generates revenue from it while you get nothing.”
Advocate: “I have a very different view on that. I open-sourced my code in the hope that it would be useful to people. If I had intended to make money with it, I would have chosen to commercialize it.”
Fan: “But they did commercialize it! And they make money from your work!”
Advocate: “Relax! Yes, that’s entirely possible. However I didn’t expect to make money with it in the first place, anyway.”
Fan: “But if your code is useful, somebody else surely will!”
Advocate: “And is allowed to do so, if he or she finds somebody who’s willing to pay for something that’s freely available. I’m still not losing anything, right? Besides: Anybody else could also try to sell it. It’s the same rules for everybody. I’d say that’s fair.”

Ethical issues

Fan: “That’s really egoistic thinking. Supporting unfree software is entirely unethical!”
Advocate: “You didn’t really say that, did you? I’m giving something away. For free, no strings attached and without trying to achieve any real benefit for myself. And you are accusing me of acting unethical?”
Fan: “Actually yes. By not making sure that your ‘gift’ remains free, you’re supporting unfree software.”
Advocate: “Wrong. It does remain free! Nobody is losing anything.”
Fan: “You know as well as I do that the BSD license allows closing your code and using it in closed-source software!”
Advocate: “Errr… Sure. But while you are trying to make it sound like that would mean a loss for open source this is not the case. The original code doesn’t disappear! It remains available under the BSD license and continues to be of use to anybody who wants to use it.”
Fan: “Bah, what a short-sighted argument! Yeah, your original code may still be available, but they will make modifications to their copy. And that’s when you’re cut off from good things that resulted from your code!”
Advocate: “I can live with that.”
Fan: “That’s ridiculous. Come on, don’t be an idiot! They are making others pay for something that was free software and now isn’t anymore. And you said that you care for free software?!”
Advocate: “You obviously can’t understand it. Why don’t you ask for my reasons instead of calling me an idiot?”
Fan: “Because there cannot be a legit reason for supporting unfree software!”
Advocate: “Excuse me but that’s a little bit arrogant, don’t you think? Let me give you an example. Think about Microsoft…”

Closed source

Fan: “Ha! You’re not going to defend M$, are you? You advocates of ‘permissive licensing’ are all the same! Why didn’t you start our conversation stating that you love Microsoft? That would have saved me quite some time!”
Advocate: “Please let me finish my sentences, will you? I certainly don’t love Microsoft. In fact I haven’t installed any Microsoft OS or program at home in about 10 years. I’ve been there when they used their market power with Windows 3.x to destroy DR-DOS. I haven’t forgotten the Halloween papers, either.”
Fan: “So? Windows is a terrible OS.”
Advocate: “Yes, for the versions that I know and have used in the past, that’s certainly true. What I wanted to say however is this: The web is a pretty bad place today and even though a lot was done over the last years, much of the software today is still a nightmare when it comes to security. Agree?”
Fan: “Sure!”
Advocate: “Fine. Especially Windows has been notorious for very bad security flaws in the past and all those hacked Windows machines are ruining the net for us all. Now imagine Microsoft couldn’t have taken the well-tested TCP/IP stack from BSD Unix because it had a different license. They would have been forced to write their own – would you really want to claim that would have made the world a better place?”
Fan: “Probably not… But nobody should use Windows in the first place then that problem would be hypothetical.”
Advocate: “In an ideal world we wouldn’t have any of those issues, right?”
Fan: “Correct. In that case we wouldn’t even need the GPL because everybody would be acting ethically anyway. But we aren’t living in such a world and for that very reason need GPL to support the FLOSS movement. You’re quite good at making esoteric objections against the GPL to make your lax license look better, BTW.”

Lax vs. pessimistic

Advocate: “Esoteric? I’d claim that the one case that I mentioned alone had quite some impact on the future of the net. But if you insist on calling my preferred family of licenses ‘lax’, I’m going to call yours ‘pessimistic’.”
Fan: “Why that? There’s nothing pessimistic about the GPL!”
Advocate: “Yes, there is. The whole idea is. Didn’t you say yourself that the GPL wouldn’t be needed in a better world?”
Fan: “In an ideal world! That’s different. But that doesn’t make it pessimistic.”
Advocate: “It does. You’re considering man to be bad – or at least sufficiently bad that instruments as the GPL are necessary.”
Fan: “They are necessary! That’s a fact. Just look around you with your eyes open!”
Advocate: “I disagree. And in fact I’m even going to top it: The GPL is not only unnecessary, it’s actively harmful.”
Fan: “Now you’ve completely lost your mind…”
Advocate: “Have I? Let me make another example. I’ve grown up using closed-source software. When I discovered open source, I was very happy that such a thing existed and completely made the switch.”
Fan: “And now you’re seeking to ruin it all…”
Advocate: “Not really. I’m actually happy enough with it that I developed a feeling of great gratitude and that created a desire within me to give something back.”
Fan: “That sounds great and all but I have no idea why the heck you are acting against open source.”
Advocate: “The point here is: I give back now because I want to. With the GPL I’d have to. The freedom of choice makes the difference here.”
Fan: “How nice for you! But a lot of people wouldn’t give back on their own and that’s why they need to be forced to!”
Advocate: “And by doing so you’re actively making it impossible for people to really grow ethically and make the morally superior choice themselves! You know, I hate that ‘four freedoms’ nonsense! It’s just a disguise for dictating rules that seem to make sense but in fact deny your freedom! All that ‘respects your freedoms’ is utterly cynical if any person’s most basic freedom – our free will – is denied!”

Capitalism

Fan: “Wow, impressive rant!”
Advocate: “That’s all you reply to the points that I make?”
Fan: “You’re a dreamer. All that ‘ethical growth’ and ‘personal development’ stuff is utopistic. Big money rules the world.”
Advocate: “It sure does, but in the form that we’re seeing today that will come to an end.”
Fan: “I doubt it, but if it does, that will be a victory we can only achieve with the GPL. It’s a powerful weapon we can use to defeat the big corporations.”
Advocate: “To found a world that people live in who never learned to make ethical decisions in the first place because it was already decided for them. Not a world I’d like to live in either.”
Fan: “Not a surprise that you’re defending capitalism and corporate power!”
Advocate: “I’m not a capitalist but I’m convinced that there’s a better way out of it.”
Fan: “By letting it all continue as it goes today?!”
Advocate: “As strange as that sounds – yes. And here’s why: Take companies like Juniper for example. They took FreeBSD as the base for their OS because… Well, it was free and allowed them to close the source and keep it for themselves.”
Fan: “And you like that…”
Advocate: “Yes, I do! You won’t believe it, but they hurt themselves by doing so: More and more new versions of FreeBSD were released and they were stuck with their old system which required a lot of maintenance and updating it got harder and harder since the system diverged a lot over the time. If they had given back as much as they could, they would even have saved a lot of money… Today there are already companies who understood this and even from purely capitalistic motivations started to embrace permissive open source: They give back as much as they can because it benefits everyone (including them).”
Fan: “That cannot be many. Otherwise BSD would be far more popular.”
Advocate: “It takes time for companies to learn. Give them the chance to hurt themselves and to eventually come to a good conclusion on how to act.”

Final victory

Fan: “Even if that was true, in your world open source would never succeed. You’d always feed your code to the companies who will improve it a bit and start selling a product that’s superior. We can never catch up with them this way!”
Advocate: “I’m going to claim the opposite: We’re catching up quickly and there’s no way that we’re not going to win.”
Fan: “How’s that? They will always be a step ahead! Code needs to be constantly improved and they have an advantage there.”
Advocate: “That’s today’s story, yes. But we’re rapidly approaching the point where open source software is no longer a somewhat limited ‘alternative’ to commercial software but simply good enough for just about any task.”
Fan: “And then?”
Advocate: “That’s the moment we’ve ‘won’.”
Fan: “Strange definition of winning… The companies will still sell improved products!”
Advocate: “Well, just let them if they find someone who really needs those additional features and is willing to pay for them.”
Fan: “What do you mean? Of course people want the best software possible and will pay for it! We live in a capitalist society. Your strange ideas won’t change anything.”
Advocate: “My ideas? Certainly not. But the very rules of capitalism itself will eventually defeat it. If you don’t believe me, just tell me: How to beat good enough and free from a capitalist point of view?”
Fan: “Oh my. You really are a weirdo. Keep your faith in mankind being able to change its ways. I don’t have it and will stick with copyleft!”

(Sorry for the delay in publishing this, but last month has been really, really chaotic for me. Two of my grandparents passed away just a few days apart, I had a deer accident (I’m fine but the deer and my car not so much) and I’m in the middle of moving houses… So if you comment on this and I don’t immediately respond, please bear with me!)

Spam blacklisting: Its dark side

(GPL vs. BSD II will be posted in January)

No, I don’t want to see pictures of your sexy body, “Tanya”. Not interested in transferring a huge amount of money for you from some Arabian country, “Khaled”, sorry. To “Mr. lawyer Smith”: I understand that you’re pressed for time to find somebody who can claim the wealth, but I’m not a remote relative of the late “Mr. Anderson”. Oh, while we’re at it: I don’t buy blue pills, pal. And no Rolex watches at cheap prices on special offer for me, either…

SpamSpamSpam

Everybody who is using email today is familiar with the phenomenon of unsolicited mails commonly called “spam” today. That it originally meant a meat product and how the term evolved is a story on its own – a story that few people care for when they want to read their mails and are frustrated to find their inbox flooded with useless gibberish.

The rise of spam has been a major factor in ending the days of the once so innocent Internet. You want to run an email server at home? Forget it – or get a static IP from your ISP. No sane person configures any mail server or mail relay server to accept mail from an IP known to belong to the dynamic range of any ISP. Why? Because that would be spammer’s heaven. And we certainly don’t want that to happen. Matters are just bad enough the way they are.

Fighting spam

Spam messages are a major annoyance. They can in fact be vexing enough to motivate people to search for means to end the onslaught of hostile messages (or at least limit it somewhat). Smart people have invented and implemented spam filtering. The filter e.g. checks all incoming emails for certain keywords and calculates the likelihood of it being spam. This is not a solution for the problem, of course. It’s more of an ongoing fight: Programmers improve and tune their filters, spammers think of new methods to trick those filters into believing that a spam message is not spam.

Another method is to use blacklists with IPs of known spammers. This is actually a pretty powerful and effective method to counter spam. In fact it is a major step in putting a stop to the spammer’s game! Just about everybody who sets up a mail server today will check against one or several spam blacklists and reject any mail that comes in from a suspicious IP. Great! Well, not so much actually…

Highwaymen

Think about starting your own blacklist business for a moment. You build your infrastructure and happily start providing a list of evil IPs. Once a lot of companies and institutions start using your list, you have tremendous power at your hands! Put some IP on there (for whatever reason) and someone will de-facto be unable to mail to a lot of people. You could press money from that person. And that’s what some of them try to do. Take a look at “UCE protect” for example. They charge about 100 EUR (!!) for immediately removing a single IP from their blacklist and even threat to pillory people who “dare” to try to take legal action against those thugs. No, that site is not a joke unfortunately and they obviously run a profitable business by robbing people…

Sure, these are the black sheep. A lot of the spam blacklist providers out there are reputable and reliable organizations. If you ever need to mail someone who uses blacklists like the one from “UCE protect” (e.g. the city of Munich), resort to paper and snail-mail. They probably prefer email because it’s easier to work with. Be sure to tell them that you would have simply sent an email but you won’t since they work together with more-than-dubious blacklist providers.

I never had anything to do with said blacklist service so far, but they are target to a lot of jokes among IT people in my country. During my vocational training I was asked to take a look at their website and have a good laugh. And it was certainly shocking enough to stick in my memory to this day.

Overacting

But let’s get to the reputable services – and the actual problem. A while ago the company that I work for ran into trouble with a big blacklist provider (that we’ve been using ourselves ironically). While their goal of reducing spam is just and noble, they are unfortunately crossing the line and abusing their power. What has happened?

There’s this customer of ours who hosts a humble web shop with us. Nothing fancy. Probably even on the contrary. Now the big blacklist provider chose to block the IP for that shop. No problem so far. We notified our customer – and nothing happened for a while. Then the blacklist provider blocked all IPs of that server. Annoying but not tragic. Why? Because the server doesn’t even do mails! Again we tried to get in contact with our customer and over the back-and-forth time passed by.

But then the unthinkable happened: The blacklist provider threatened to block the entire /24 subnet (and would without doubt increase the blocked range beyond that, eventually swallowing all of our IP addresses)! Sounds like our problem, right? We should have reacted earlier and kicked the spammer off. Unfortunately… There was no spamming involved in this case! The shop that is hosted on our servers is mentioned in spam mails that originate from around the world, but not from our network. Still the blacklist provider is effectively blackmailing us and holding all of our customers hostage – their businesses depend on being able to send mail and if our whole network was blocked that would in fact mean threatening the existence of several companies!

What to do?

That’s the point where I feel that the “good guys” with all their commendable intentions have turned into criminals themselves. And in fact much worse criminals than the average spammer. While the latter is “only” a nuisance, the spamlist provider has become a real threat to business.

At first glance it’s clear what to do: Throw that customer out and eat humble pie, begging the spamlist provider for forgiveness. Even that isn’t so easy, however. While the spamlist provider may operate from a country where such cowboy means are acceptable, we aren’t. You cannot just throw out a customer. We are bound by a valid service agreement and since he insists on being innocent, we cannot just terminate the contract at will since we have no proof of illegal actions. If we did terminate the contract, we’d be in legal trouble and the former customer would definitely win the court case (which would mean the loss of a lot of money for us). If we didn’t, we would put the whole company at risk.

But that’s only the business part of it. Honestly: What if the customer is right and in fact is innocent? It could very well be a competitor trying to ruin his business (and obviously successfully so). And what annoys me the most: This only happens because our customer is a small fish. What would happen if somebody started a spam campaign promoting whitehouse.gov? The same thing? You decide for yourself.

No solution?

I would imagine that this is a problem that others have been facing, too. While I wasn’t directly involved in this case (and I’m certainly happy that I’m just a simple admin who doesn’t have to make any such decisions) the whole incident totally violated my sense of justice. I wrote most of this post a few months ago and decided to wait some time to calm down before publishing it. However that hasn’t happened. I’m still upset when thinking about it.

What could be done about things like this? I don’t know. Probably the only way would be setting up a site like “blacklist watchers” where people can share that they have been held at gunpoint by some service provider. Then people who use blacklists could decide if a service is operating decently or resorting to wild-west means (“I’ll keep thrashing your grandma till you give in!”). That could be abused, too, though. But what other means of self-defence are possible? Comments are of course very welcome.

The actual problem is hard to solve: There’s too much power in the wrong hands. And even more gross: The blacklist people actually want to achieve something good. There’s a German saying that fits very well in this case. It roughly translates to “The opposite of well done is not done badly. It’s well-intentioned“.

“Permissive licensing is wrong!” – Is it? (1/2)

A few weeks ago I’ve been attacked by some GNU zealots on a German tech site after speaking in favor of permissive licenses. Unfortunately a discussion was not possible there because that would require the will to actually communicate instead of simply accusing the other side of vile motives. Since I actually do care about this topic and a reader asked for a post about it in comments a while ago, here we go.

This first part tries to sum up the most important things around the topic. I deliberately aim for an objective overview that tries not to be one-sided. The second part will then contain my points in defence of permissive licensing.

Why license software at all?

Licenses exist for reasons of protection. If you’re the author/inventor of some software, a story or whatever product, you get to decide what to do with it. You can keep it for yourself or you can give it away. If you decide for the latter, you have to decide who may use it and in which way(s). In case you intend to give it to a (potentially) large group of people, you may not want to be asked for permission to xyz by everybody. That’s when you decide to write a license which states what you are allowing and explicitly disallowing.

Most of the well-known commercial licenses focus on what you’re not allowed to do (usually things like copying, disassembling, etc.). Open source licenses on the other hand are meant to grant the user rights (e.g. the right to distribute) while reserving some rights or only giving permission under certain conditions – and they usually make you claim responsibility for using the software. For these reasons licenses can actually be a good thing!

If you got an unlicensed piece of code, you’re not legally allowed to do anything with it without getting the author’s permission first. And even if you got that permission, your project would be risky, since the author can withdraw it later. A proper license protects both parties. The author doesn’t get his mail account full of email asking for permission, he’s save from legal trouble if his code breaks anything for you and at the same time you have legal certainty when you decide to put the code to long-term use.

Permissive vs. Copyleft (in a nutshell)

In short terms, permissive licensing usually goes like this: “Here you are, have fun. Oh, and don’t sue me if it does something else than what you expect!” Yes, it’s that easy and there’s little to dispute over.

Copyleft on the other side sounds like this (if you ask somebody in favor of Copyleft): “Sure, you can use it, it’s free. Just keep it free, ok?”. Also quite simple. And not too bad, eh? Other people however read the same thing like this: “Yes, you’re free to use it. Just read these ten pages of legalese and be dead certain that you comply. If you got something wrong, we will absolutely make you regret it.”

The GNU Public license (GPL)

The most popular copyleft license in use is the GPL (in various versions). It got more and more complex with each version – and to be fair, it had to, because it was necessary to react to new threats and loop holes that were found later. The GNU project states that they are committed to protect what they call the four freedoms of free software:

  • the freedom to use the software for any purpose
  • the freedom to change the software to suit your needs
  • the freedom to share the software with your friends and neighbors
  • the freedom to share the changes you make

These are freedoms that every supporter of open source software should be able to agree with. So what’s the deal with all the hostility and fighting between the two camps? Let’s take a look at a permissive license, too.

The BSD license

Unlike the GPL, the BSD family of licenses begun with a rather simple license that span four rules (“original BSD license”). It was later revised and reduced to three (“modified BSD license”). And the modern BSD license that e.g. FreeBSD uses is even just two (“simplified BSD license”).

Did you read the GPLv3 that I linked to above? If you are using GPL’d code you really should. In case you don’t feel like reading all of it, at least take a look and grasp how long that text is. Now compare it to the complete modern BSD license.

What’s the problem?

There are essentially two problems that cause all the trouble. The first one is the question of what should be subject to the freedom that we’re talking about. And closely related, the second one is where that freedom needs to end.

Ironically both camps claim that freedom is the one important thing and it must not be restricted. The GPL is meant to protect the freedom of the software and enforces the availability of the source code, hence limiting the freedom of actual persons. BSD on the other hand is meant to protect the freedom of human beings who should be able to use the software as they see fit – even if that means closing down former open source code!

The GNU camp taunts permissive licenses as being “lax” for not providing the protection that they want. The other camp points out that the GPL is a complex monster and that it is virulent in nature: Since it’s very strict in a lot of areas, it’s incompatible with many other licenses. This makes it complicated to mix GPL and non-GPL code and in the cases where it’s legally possible, the GPL’s terms will take precedence and necessarily be in effect for the whole combined work.

Who’s right?

That totally depends on what you want to achieve. There are pros and cons to both – and in fact we’re only looking at the big picture here. There’s also e.g. the Apache license which is often deemed as kind of middle ground. Then you may want to consider the difference between weak (e.g. LGPL) as well as strong copyleft (GPL). Licensing is a potentially huge topic. But let’s keep it simple here because the exact details are actually not necessary to understand the essence of our topic.

In the next post I’ll present my stance on why permissive licensing is a good thing and copyleft is more problematic than many people may think.

Eerie Linux: 5 years of bloggin’!


The Eerie Linux blog silently turned 5 years just last month. I thought a while about what kind of anniversary post I should write to celebrate the fifth birthday. I was even thinking of closing the blog on that day or at least announce that I would no longer be able to write posts regularly. I decided against it. While I don’t make any promises, I will try to keep the blog up for now.

The June marathon

In the end I decided not just to hold back that birthday post (this one) but do something special instead: Write a full article every five days! It was a lot of work, but June 2017 saw 6 posts each with over 1,600 words on average with one just falling short on 2,000. I put a lot of detail into those posts and also included quite some pictures.

It has been a fun experience but also an exhausting one. I have always been pressed for time and even though I tried to create as much material on weekends if the targeted date was during the week. Still I almost never managed to complete a whole article before the day it was due and often had to finish it in the late hours of evening after work. But now it’s done and I’m happy about that! 😉

5 years of blogging

A lot has happened in the last 5 years. When I started the blog in June 2012, I had quite some time on my hands but I wasn’t sure if I would always find enough topics to write about. This has changed completely. Free time is pretty scarce these days but there’s just so much going on in technology and related areas that I have a very, very long list of things that I’d like to write about – and that list grows faster than I can write and publish articles.

I’ve also moved houses three times over these years – and still haven’t missed a single month completely. Each and every month has had at least one new article and I’m a bit proud of that because a lot of times it really hasn’t been easy.

Since 2013 every year I get most page hits from the US with Germany being second. Ranks 3+ vary.

2012

After thinking about starting a blog for over a year, in 2012 I actually started it. I had been using SuSE and Ubuntu Linux on the desktop for a while and wanted to know more about the operating system. And I figured that it would make sense to pick an ambitious but realistic project and write about it as the journey continued.

In my first half-year I wrote 24 posts introducing myself, finding a suitable distro (looking info Gentoo first but then settling for Arch), thoughts on graphical toolkits and so on. The most important articles were part of a series on installing and comparing 20 Linux desktop environments.

The 6 month of 2012 saw just over 1,000 page views and I even got my first “likes” and comments. However I had no idea if I was doing good for a blog of that kind. Considering that it was public and that the whole world could potentially visit the blog, it seemed pretty low. Especially if you consider the many hours that went into the posts. “There must be thousands of Linux blogs out there and who should read them all?”, I thought. But I went on doing what I was doing because of my own interest in Linux topics. And I also continued to blog about it. If somebody would read and enjoy it: Execllent. If not it had at least made me write an English text which is quite valuable for the non-native speaker.

2013

In retrospective, 2013 was an interesting year. I got the most comments and “likes” that I ever got in a single year. And page hits increased to just over 6,600! You can imagine that I was extremely happy that there actually proved to be some interest in what I was doing. I already had less time now and managed to write 22 posts in the whole year instead of 24 in 6 just months the year before.

I continued to explore and compare applications build with the Qt and GTK toolkits and these proved to be my most popular articles. But I also decided to take a little peek into the bigger world of *nix and have a shy first look at Hurd and BSD. My focus completely remained on Linux, though (little did I know that this would come to an end in the future!). Then I dug into package building and learned a lot by trying to update an old and no longer supported Linux distro. Finally I got my domain elderlinux.org and made the first step towards my original goal: Building my own Linux distribution (you have to have done that once, right? And if only for learning purposes).

2014

In 2014 things started to decline. The page hits raised slightly to over 6,800 but that was it. I published 14 posts, but all top ten most popular ones were written in previous years. I didn’t notice that back in the day, though. I managed to get a wide variety of topics covered, including my first post on hardware (writing about the new RISC-V platform that I still keep an eye on).

The most important achievement of the year was that I completed my Arch:E5 project. My own distribution was Arch-derived but did a lot of things different. It used the de-blobbed Linux libre kernel, was based on a different libc, replaced systemd with runit and used LLVM/Clang as the default compiler among other things. It also used a more modular repository architecture compared to mainline Arch Linux. I took this project pretty far: In the end I had a nice self-hosted distro that even came with two desktop environments to choose from. I learned a lot by doing this but since nobody else seemed to be interested in it (I didn’t reach out on the Arch forums or anything, though, to be honest!), I ended the project, continuing to explore other things.

2015

This was the year things changed. Page hits dropped: With about 6,500 hits fewer people visited my blog than even in 2013. I only wrote one post per month (with the exception of April where it was one April fools article and another setting things straight again). Only two posts of this year made it to the top 10 of most popular posts: One about the “Truly Ergonomic Keyboard” (which obviously brought some people to my blog who would probably not be interested in most other articles that I wrote) and another one that was a “FreeBSD tutorial for Linux users” (that received unusual attention thanks to being featured on FreeBSDNews).

I didn’t intend it to, but 2015 was the first year on the blog that was totally dominated by *BSD topics. Since I had started to seriously explore FreeBSD and OpenBSD, this looks like a natural thing. I wrote an April Fools post about Arch Linux’s Pacman coming to OpenBSD and then tried to prove that actually works. Then a friend asked me about FreeBSD and I decided to write a little introduction series. And then the year was more or less over.

2016

After the disappointment of declining public interest in my blog I didn’t expect much from 2016. Especially as I had been venturing deeper int *BSD territory – and liked it enough to continue writing about it. This was obviously even more niche than Linux and how many people would want to read that stuff, especially from a beginner? I was in for a surprise: the blog got more than 7,100 hits that year with four new posts (all of which were featured on FreeBSDNews) making it into to top 10 this time! I had hoped to reach 7,000 hits in 2014 and after it looked like things weren’t going in a good direction, this was a pretty rewarding experience.

I wrote about various *BSD topics: A howto on setting up a dual-boot FreeBSD/OpenBSD with full disk encryption, a little comparison of documentation in Linux and (Free)BSD, a short introduction to Vagrant and a series on getting started with Bacula on FreeBSD. And finally in December an article on using TrueOS for over three months as my daily driver. This post would spark a lot of interest in 2017, making it the top ranked popular post at the time I write this.

2017

In the first half of this year I have already written 14 articles, including two series that a lot of work went into: The adventures of reviving and updating an ancient FreeBSD 4.11 system with Pkgsrc and building a home router with OPNsense/pfsense. And now after only 6.5 month page hits had already climbed up to over 6,700! Recent 3 month have all totalled in more that 1,000, a mark that I had never reached before.

And that’s all before FreeBSD News, Lobsters and even DragonFlyDigest linked to either my pfSense vs. OPNsense article or even to the whole BSD home router series! That made the stats really skyrocket over the previous two weeks. It definitely looks like there are quite some other people out there that don’t think *BSD is boring!

Current stats

Daily blog stats 07/2017

Before the great rush I was receiving about 20 to 60 page hits each day. The new record is now 425 hits on Jul 18 after Lobste.rs picked up the pfSense vs. OPNsense comparison!

Weekly blog stats 07/2017

Weekly hits were between 140 and 370 between Jan and Jul. And then there was this week that saw 1.200 page hits – this is as much as the whole month of May this year and that was the absolute monthly record before!

Monthly blog stats 07/2017

Between January 2016 and June 2017, the blog received 440 (January ’16) and 1.200 (May ’17) hits. And then July happened with over 2.700 hits!

Yearly blog stats 07/2017

The best blogging year so far had been 2016 with 7.100 hits – now at the end of July 2017, this blog has already seen over 8.800 hits. I’m pretty confident to reach the magic mark of 10.000 this time (wow!).

The future?

Of course I cannot say for sure. But I’ve found my place in the FreeBSD community and made a comfortable home with GhostBSD. After becoming part of the small team that develops this OS, I’ve faced quite some challenges and without any doubt there are more to come. But it is a great learning experience and being a (albeit small) part of it feels very rewarding.

And even though time is a very limiting factor I currently don’t feel like taking a break any longer! I will definitely continue to explore more BSD and write about it. Next station: Some preparations for an article on using jails on the newly installed OPNsense router (or anywhere else!). Thanks for reading – and see you soon.

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.