Shell history stats

It seems to be cool nowadays to post the output of a certain unix command to ones blogs. So here I come:

pilif@celes ~
 % fc -l 0 -1 |awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
467 svn
369 cd
271 mate
243 git
209 ssh
199 sudo
184 grep
158 scp
124 rm
115 ./clitest.sh

clitest.sh is a small little wrapper around wget which I use to do protocol level debugging of the PopScan Server.

Thanks, Ebi

Yesterday, Ebi invited me and my girlfriend over for dinner and a round of trivial pursuit.

I fail to find words to describe how awesomly good the meal has been. I would have wanted to get a fourth serving, but I just couldn’t stuff in even a microgram more.

And the trivial pursuit was fun as ever – that game just shines if you don’t take it seriously.

Thanks Ebi. I had a blast!

SPAM insanity

<p>I don’t see much point in complaining about SPAM, but it’s slowly but surely reaching complete insanity…</p>

What you see here is the recent history view of my DSPAM – our second line of defense against SPAM.

Red means SPAM. (the latest of the messages was a quite clever phishing attempt which I had to manually reclassify)

To give even more perspective to this: The last genuine Email I received was this morning at 7:54 (it’s now 10 hours later) and even that was just an automatically generated mail from Skype.

To put it into even more perspective: My DSPAM reports that since december 22th, I got 897 SPAM messages and – brace yourself – 170 non-spam messages of which 100 were subversion commit emails and 60 other emails sent from automated cron-jobs.

What I’m asking myself now is: Do these spammers still get anything out of their work? The signal-to-noise ratio has gone down the drain in a manner which can only mean that no person on earth would actually still read through all this spam and even be stupid enough to actually fall for it.

How bad does it have to get before it gets better?

Oh and don’t think that DSPAM is all I’m doing… No… these 897 mails were the messages that passed through both the ix DNSBL and SpamAssassin.

Oh and: Kudos to the DSPAM team. A recognition rate of 99.957% is really, really good

shion died

After so many years of continued usage, shion (not the character from Xenosaga, my Mac Mini) died.

The few times it’s actually capable of detecting its hard-drive at boot-time, it loses contact to it shortly after loading the kernel. And the hard drive makes an awful kind of noise which is a very good pointer at what’s wrong.

Now, I could probably just replace the hard drive, but that old G4 processor, the 512 Megs of RAM and the two single USB-ports forcing me to cascade hub after hub all are good reasons to upgrade the hardware itself.

And thus, Shion 2.0 was born.

I grabbed an unused Mac Mini from the office and tried installing Ubuntu Gutsy on it, which worked well, but Leopard’s “Startup Disk” preference pane didn’t list the partition I installed Ubuntu on as a bootable partition. Booting Linux via pressing alt during pre-boot worked, but, hey, it’s a server and I don’t have a keyboard ready where shion is going to stand.

So I did it the brute-force way and just installed Ubuntu using the whole drive. It takes a hell of a lot of time for the EFI firmware to start missing the original GUID partition scheme and the original EFI parition, but when it does, it starts GRUB in the MBR partition, so I’m fine.

This does mean that I will be unable to install later firmware upgrades (due to the lack of a working OS X), but at least it means that I can reboot shion when needed without having to grab a keyboard.

This, provided that Domi will be able to solder me a display adaptor making the EFI BIOS emulation think that a display is connected.

All in all, I’m not totally happy with the next generation of shion. Not booting without a display attached, long boot times, non-working bios updates and, especially, no eSATA, but it’s free, so I’ll take it. I guess the old shion just chose a terribly inconvenient time to die.

Recursive pottery

Yesterday evening, my girlfriend and I had an interesting discussion about pottery techniques. She’s studying archeology, so she has a real interest in pottery and techniques used. I in contrast have my interests in different subjects, but this method of potting we came up with was so funny that I thought I just had to post it.

Let’s say you want to create a vase.

Our method involves the following steps:

  1. Gather a vase that looks exactly like the one you want to build.
  2. Fill the vase with something that gets hard quickly, but crumples easily.
  3. Wait for that material to dry out, then destroy the original vase.
  4. Put clay around the hardened up filler material.
  5. Wait for the clay to dry up and burn the vase.
  6. Remove the filler material.
  7. Obviously this method will never allow you to produce more than one vase as in the process of creating one, you are destroying the other.

    We continued our discussion of how such a method of pottery could have interesting side effects. One is that the only way for a potter to generate revenue of his work is by renting out his current vase. And should the vase be returned defective, the whole business of the potter is over – until he receives another initial vase to continue working.

    Of course, getting hold of that would be quite interesting a job if every potter only used this method.

    And the question remains: Where do you take the initial vase from?

    Stupid. I know. But fun in its own way. Sometimes, I take great pleasure in inventing something totally stupid and then laugh at it. And believe me: We really had a good laugh about this.

Gmail – The review

It has been quite a while since I began routing my mail to Gmail with the intention of checking that often-praised mail service out thoroughly.

The idea was to find out if it’s true what everyone keeps saying: That gmail has a great user interface, that it provides all the features one needs and that it’s a plain pleasure to work with it.

Personally, I’m blown away.

Despite the obviously longer load time to be able to access the mailbox (Mac Mail launches quicker than it takes gmail to load here – even with a 10 MBit/s connection), the gmail interface is much faster to use – especially with the nice keyboard shortcuts – but I’m getting ahead of myself.

When I began to use the interface for some real email work, I immediately noticed the shift of paradigm: There are no folders and – the real new thing for me – you are encouraged to move your mail out of the inbox as you take notice of them and/or complete the task associated with the message.

When you archive a message, it moves out of the inbox and is – unless you tag it with a label for quick retrieval – only accessible via the (quick) full text search engine built into the application.

The searching part of this usage philosophy is known to me. When I was using desktop clients, I usually kept arriving email in my inbox until it contained somewhere around 1500 messages or so. Then I grabbed all the messages and put them to my “Old Mail” folder where I accessed them strictly via the search functionality built into the mail client (or the server in case of a good IMAP client).

What’s new for me is the notion of moving mail out of your inbox as you stop being interested in the message – either because you plain read it or because the associated task is completed.

This allows you for a quick overview over the tasks still pending and it keeps your inbox nice and clean.

If you want quick access to certain messages, you can tag them with any label you want (multiple labels per message are possible of course) in which case you can access the messages with one click, saving you the searching.

Also, it’s possible to define filters allowing you to automatically apply labels to messages and – if you want, move them out of the inbox automatically – a perfect setup for the SVN commit messages I’m getting, allowing me to quickly access them at the end of the day and looking over the commits.

But the real killer feature of gmail is the keyboard interface.

Gmail is nearly completely accessible without requiring you to move your hands off the keyboard. Additionally, you don’t even need to press modifier keys as the interface is very much aware of state and mode, so it’s completely usable with some very intuitive shortcuts which all work by pressing just any letter button.

So usually, my workflow is like this: Open gmail, press o to open the new message, read it, press y to archive it, close the browser (or press j to move to the next message and press o again to open it).

This is as fast as using, say, mutt on the console, but with the benefit of staying usable even when you don’t know which key to press (in that case, you just take the mouse).

Gmail is perfectly integrated into google calendar, and it’s – contrary to mac mail – even able to detect outlook meeting invitations (and send back correct responses).

Additionally, there’s a MIDP applet available for your mobile phone that’s incredibly fast and does a perfect job of giving you access to all your email messages when you are on the road. As it’s a Java application, it runs on pretty much every conceivable mobile phone and because it’s a local application, it’s fast as hell and can continue to provide the nice, keyboard shortcut driven interface which we are used to from the AJAXy web application.

Overall, the experiment of switching to gmail proofed to be a real success and I will not switch back anytime soon (all my mail is still archived in our Exchange IMAP box). The only downside I’ve seen so far is that if you use different email-aliases with your gmail-account, gmail will set the Sender:-Header to your gmail-address (which is a perfectly valid – and even mandated – thing to do), and the stupid outlook on the receiving end will display the email as being sent from your gmail adress “in behalf of” your real address, exposing your gmail-address at the receiving. Meh. So for sending non-private email, I’m still forced to use Mac Mail – unfortunately.

Knives, Fingers and washing dishes

About two or three weeks ago, I discovered a new passion of mine: cooking.

Don’t laugh. Cooking is like programming: Doing it is a lot of fun and its rewards – when done right – are worth so much more than any work you could have put into it – especially if you value a good meal as much as I do.

With cooking, there comes cleaning of dishes and various tools you need while doing your job

Last Saturday, after preparing a nice and very tasty tomato soup, I put a knife like the one you are seeing to the right (thanks Wikipedia) into the dish water – together with other dirty things, ready to clean them up.

Then I grabbed into the foam-covered dish to take out one of the things in to to rinse it clean.

I’m sparing you the picture of how my finger looked once I finished pushing it into the blade of the mincing knife.

Seeing how the finger looks right now, I’m pretty sure I should have gone to a doctor to have it sewn, but I didn’t have time for it back then and now it’s healed enough that sewing won’t do any good without reopening the wound which I certainly don’t want anybody to do right now (it stopped hurting this morning).

On the upside, I will have a nice scar to show around :-)

Conclusions:

  1. Don’t put knives into foam covered dish water
  2. Typing with nine fingers is quite hard if one of the disabled fingers is your middle-finger
  3. Cooking can be a painful experience.
  4. We never stop learning.
  5. Blogs really are pointless sometimes

My take on the intellectual property debate

Despite the fact that I fear I’m not totally qualified to have an opinion regarding the ongoing debate over intellectual property, sometimes, I think about the problem too and I certainly do have an opinion.

To say it with the tongue of the usenet, IANAL, but bear with me when I finally take the time to write down my own ideas on the IP debate:

When you take a look at todays landscape, you’ll clearly see clashing interests. On one side, you have the authors (I am one of these in a sense – I write software) that more or less wish to make a living with their work. Then you have the people selling the work created by the authors and then you have the consumers which should pay to actually consume the work produced.

Of course, we don’t want either the authors nor the resellers to starve to death, so there must be some incentive for the consumers to actually consume the goods and to compensate for the authors and even more so for the distributors work.

That’s what we have created the term intellectual property for.

Even though you as the consumer get to consume the work of the author, that’s all you can do. In theory, you can’t resell, redistribute, copy or whatever else you’d want to do with the work of the initial author. You pay for your right to consume the initial work. If you want to do more (like creating a derivative work), you naturally have to pay more (per copy of that derived work you distribute) – at least that’s what society works like.

Let me make an example. DRS, the swiss national radio station created wonderful audio plays about a certain private investigator called «Franz Musil». The first two parts of the series of plays (currently, there are five of them if I counted correctly) will never ever be available on CD for us consumers to buy:

In the production they used tiny pieces of music for which they don’t have the license to sell on CD.

Even though the original part of that audio play is immense compared to those small pieces of music, the original publisher of the pieces in question still has a say on the distribution on something completely different and orignial that has come out of the initial work.

Later audio plays contain music they created themselves and these plays are actually available to buy on CD. This whole situation is bad for us the consumers (the plays are really good), DRS (they’d like to sell their original work) and the initial author of the music in question (because fewer people now hear his work).

Especially in the matters of software, it gets even worse tough: While copyright law protects the work as a whole, there’s the discussion about patents that actually manages to protect bits and pieces of your idea as an author.

Let’s say I write a poem and I distribute that using the old and known methods (via some publisher), then that poem is protected by the publishers copyright (I had to sign off all rights I had on the poem to that company for them to do the work).

If someone takes my publishers poem (remember, it’s not any longer my poem. It’s the publishers), sets his own name below it and sells it, then he violates my publishers copyright. So far so good.

But imagine that my publisher went further ahead and besides taking all rights to my work also patented the «method or apparatus to put letters in context to form a meaning»… (don’t laugh – todays understaffed and underqualified patent offices can clearly be fooled into granting such a patent)

Now my publisher not only made sure that my poem can’t be copied, they also made sure that no one else will ever be able to write a poem by lining up characters.

Now let’s go ahead to distribution to consumers, but let’s stay with my poem (which is the only poem in existence due to act of spelling now also being my distributors property).

Naturally, my distributor wants to maximize the cash they can make with their newly acquired poem. On one hand, they have expensive lawyer-bills to pay and on the other, they try to use their new poem to get back the money wasted on less successful poems that came before the one I have initially written (just to say it once and for all: I don’t write poems. And if I would, I would never assign the copyright to a publisher).

Now, for a poem, you have a fixed-sized group of recipients: People capable of reading (and thus violating that patent granted earlier) and interested in poems.

So to maximize income, the publisher must make sure that everyone of the targeted group goes ahead and pays the distributor that new poem. Besides advertising for it to reach an initial amount of people, the publisher makes sure that everyone reading that poem pays for doing so one way or another.

One way is to sell books. The other is to publicly perform the poem, while getting payed both from entrance fees and third party sponsors. Or they create an audiobook and sell that.

Of course, if the publisher sells a book to one person, they obviously would want to sell another book to a friend of that person. This is why copying is disallowed.

To further maximize profits, the publisher now sees a way to make the initial person actually buy more than one copy of the same book: A book you buy destroys itself after a set number of days. And you can only read the book while in one predefined room. When you move to another location, the book renders itself unreadable.

All that magic protecting that book can of course go wrong due to various reasons and in that case, the publisher can make the person go ahead and just buy another copy of the same book…

And this is what’s fundamentally wrong.

People are not used to not own something they pay for.

When I buy myself an apple, I can eat it when I want and where I want. When I buy myself furniture, I can place it where I want and I can sell it to whomever I want. But when I buy a piece of music in the iTunes music store (using this as an example because it’s well-known), then I can only hear it on so many devices. If I buy the n-th new computer, I need to buy the song again. Also, I cannot resell the song. And one day, when Apple is gone or running the Music Store is no longer interesting for them, my Songs will stop working too.

When I buy a book, it’s my responsibility to handle it with care and if I succeed in doing that, then the book I buy today is still readable in hundreds of years. No external influence not ultimately under my control can take away that book from me. No company going out of business, no company losing interest in providing me with a “license” to read my book.

The more time passes, the more patents are granted and the more strict DRM is put in place.

And – now we finally come to the core of the whole thing – the more strict distribution of new content is handled, the more expensive creating derivative work gets, the more our society gets stuck.

I postulate that no person is able to create truly original works. Everything one creates is influenced by outside factors. News postings. Books. Music. Other software: Either you accept that outside influence and improve upon that or you get slowed down more and more, always hitting walls because “someone was already there”.

With enforcing distribution limitation and patenting and thus restricting the building blocks of future work, society slows down scientific and cultural evolution. Or it passes control over that evolution fully to big distribution companies that actually have the money to pay all the royalties needed.

Individual authors (no matter what profession) lose their capability of creating and releasing novel work because each and every possible building block is protected and owned by a big company.

The final goal of the current society will be a conglomerate of two to three big companies owning all rights to all new scientific and cultural advancement. These companies will be constantly paying themselves royalty fees for the patents and copyrights they violate between each other.

If you want to be an author, you are not allowed to create any work until you have a contract with one of these big companies. Working will only be possible in close proximity to a lawyer because the big companies still want to maximize their earnings and thus watch closely to minimize the cost of the new work created.

When we reach that point, all advancement of civilization (which is by a big part defined by advancement of culture) comes to a halt and we end up back in the middle ages where only a few enlightened people (monks) where able to create cultural works (because only they could write). Everyone else had to work for their survival and pay taxes.

In an ideal world, copyright and patent law gets radically changed by allowing to freely create derivative works as long as there is a certain percentage of new content in the created work and the original content is attributed to.

Let’s say 60%, though this obviously must be tweaked by people far more intelligent than I am.

If I write a poem, in the ideal world, I can keep the copyright and I can distribute it however I feel. Or I can ask a publisher to do that work for me while I keep the initial copyright on it. The more work the distributor has to do to advertise my work, the more I will be paying him. No changes here, beside the fact that I retain the copyright.

The distributor still tries to sell the product. But as creating derivative works is now permitted in some boundaries, expenses for both legal and technical protection go down. The publisher can once again focus on what they were payed to do in the first place.

If someone really likes my poem, she can go ahead and take it to create a new, better poem. Maybe longer. Maybe with a completely different message. Maybe the new author just takes out a verse or two. Maybe the whole poem. It doesn’t matter.

When she is finished, she roughly checks that there’s 60% of novel art in it and then goes ahead to distribute the poem – either herself or via a publisher.

This model, by the way, works. It’s in use today. Everyday. It’s an invention by geeks like you and me. It’s called Free Software. It doesn’t even have a limitation that defines a percentage of new content to allow for redistribution under ones own copyright.

Despite creating a platform where knowledge can be openly shared, people are still able to make a living out of their work. The money is in the services rendered for a specific need. Customize a piece of software for a specific working environment. Publicly present that poem from the samples above at some poetry event. Provide the end user with a package of multiple poems collected together in one book…

There are so many things still to do and which are completely doable without forcing all scientific and cultural advancement of society to stop or at least go through a lawyer and through courts.

We are the new generation. It’s our task to see the shortcomings of the current system. It’s our task to see opportunities to create a new and better system.

It’s our task to fix this problem once and for all.

The whole Free Software movement is a big step in the right direction. Thank you, Free Software community. You show us the way we all have to go.

Let’s move!

Living without internet at home

When your fuse box looks like the one on this photo and when your bedroom wall looks like this then you can be sure of one thing: You don’t have power.

What’s more interesting though is that for one time in my whole life, Cablecom did something right: Three months ago, I had them move my cable internet access from my old address to the new one by November, 15th

The problem is that you have to do this three months in advance and back then, I wasn’t sure how long the renovation of my bathroom was going to take. So I guessed.

Of course that guess turned out to be wrong: The bathroom, while making splendid progress, is still two weeks off from being completed.

But there was no way to explain that to Cablecom.

They successfully switched over my internet connection from my current flat to the new one where I don’t have my stuff, some essential parts of my furniture (like my bed), and even worse: No power, no water, no toilet (that is currently lying on the balcony waiting for the bathroom to be completed before they can replug it).

So for now, Internet is something I can only have at work.

The irony is that usually, Cablecom screws everything up you may want from them. Their internet access is flawless and always working, but whenever you have any administrative request, you can be sure that they screw up.

To underline this, I have two nice conversations with them:

Me: Why do I not get any bills from you? As much as I like not paying for your service, I’d hate you turning it off because I’m not paying for it. Please start sending me bills!

Them: What’s your customer ID?

Me: No Idea. But my name is Philip Hofstetter and I live at …

Them: Let me check…

Them: Are you sure that you are our customer? I can’t find you here…

Me: Totally sure. Yes.

Them: That just can’t be.

Me: And yet it is: As a matter of fact, I’m currently using the phone you have sent to me calling over your connection you provide me with and I’d really like to pay for.

Them: Sure?

That episode ended with me getting one hell of an envelope containing about 20 bills. I’m sure that had I not called, I would have been able to surf and phone for free, but I didn’t want to take the risk of ending up with no internet and no way of getting it back. Besides, not paying for a service used is unfair for both the provider and the other people who are forced to pay.

The other episode was shorter and happened to Ebi, a friend of mine:

Ebi: Hello, I have a question: What is my customer ID? My Name is xxx and I live in xxx

Them: No problem. Can I first have your customer ID though?

Other episodes turn around redundant modems being delivered, about accounts where multiple bills are sent for the same service, about not being able to fix an obvious defect at the in-house repeater or, a CHF 100’000+ water damage caused by them not sealing a pipe properly (their insurance payed for that of course).

Still: Their internet service is kick-ass! No downtime. Maximum speeds. No forced disconnection. No forced reverse proxy or other crap.

That’s why I prefer them to any ADSL provider out there.

It’s just ironic that a company this prone to screwing up administrative tasks actually does the right thing that one time where some delay would not have mattered – or would even have been preferred.

Well… at least I have one more reason to be looking forward to december now.