Vitavonni

Fri, 28 Apr 2006

Nicht für das Leben, für die Schule lernen wir - Naturwissenschafen in Bayern nurnoch Wahlfach?

Mit der "Oberstufenreform", auf die die CSU so stolz ist, wird unser Wirtschaftsstandort weiter kaputt gemacht: jetzt geht es dem qualifizierten Personal an den Kragen.

Deutschland, das Land der Ingenieure, entzieht eben diesen den Nachwuchs.

Denn in Zukunft soll das Abitur in 5 Fächern gemacht werden - und dafür die Naturwissenschaften (Physik, Chemie, Biologie, Informatik) nurnoch als Wahlfach angeboten werden.

Das ist eine kleine Katastrophe. Naturwissenschaften nurnoch als Wahlfach!

Eigentlich sollte jeder Abiturient wissen, wie ein Motor funktioniert, ein Kühlschrank, oder was eine Säure ist. Wie Photosynthese funktioniert. Oder eben wie ein Computer oder ein Handy funktioniert.

Kein Wunder, wenn dann immer mehr nach Indien oder China ausgelagert wird!

Deutschland hat nicht die besten Übersetzer der Welt. Oder die besten Manager. Oder die besten Politiker. Aber unsere Naturwissenschaftler und Ingenieure spielen ganz oben mit. Und da brauchen wir mehr davon!

Die Berufsaussichten für einen BWL-Studenten sind nicht toll. Und in vielen anderen Fächern schaut es auch nicht besser aus. Die Vorlesungen sind überfüllt, die Studenten beschweren sich über die "Massenuniversitäten". Die Naturwissenschafts-Studenten haben gute Berufsaussichten, und die Universitäten würden eigentlich gerne doppelt so viele ausbilden.

Und ich kenne keinen Naturwissenschaftler, der nicht gut Englisch spricht, weil man es einfach im Studium ständig braucht. Ich würde ja im Abitur eher ein Prüfungsfach "Sprachkompetenz" einführen, in dem über Deutsch, Englisch und wahlweise eine weitere Sprache zusammen geprüft wird. Vielleicht auch dabei gleich noch Präsentationstechnik.

[category: /de/politik | Permalink]

Thu, 27 Apr 2006

AppArmor receiving it's share of critique

By finally coming forward and "applying" for inclusion into the mainline kernel, AppArmor finally has to face critique on it's approach. And it seems that it's being beaten up quite a bit.

I don't think there is anything in AppArmor that you can't do with SELinux just as good (Yes, SELinux does use labeled files to work around the hardlink issues, but guess how these labels are assigned initially? By pathname. If you have a hard link with two different labels, only one of them will stick.).

You can in fact "learn" your SELinux policies just like AppArmor. That's called audit2allow, and it is frowned upon for good reasons, and only considered to be okay for interim solutions.

There are also tools in development to produce meaningful policies, that is where SELinux really sets itself apart from AppArmor. In AppArmor, you specify for each "confined" application which files it access (and which capabilities), usually by learning these. On SELinux, you basically divide your system into meaningful parts (e.g. logfiles, user mail, user web files) and then specify which kind of access an application is to be granted.

This manual part, deciding which access is allowed, is a big feature. Apparently the AppArmor thunderbird policy has "learned" the setuid permission for thunderbird, which I consider a very bad idea. You can't just learn everything while application may have bugs (or workarounds, or security nets - e.g. it might try to setuid and quit if it succeeds!).

And despite some claims, SELinux does not require you to have a policy for everything on your system. Only in "strict" policy, whereas if you use "targeted" policy, you'll have a so called "unconfined" domain, too.

The AppArmor approach reminds me a lot of what grsecurity 1.x ACLs were doing, back with some 2.4.x kernel. It never worked too well for me, that's why I can't say much about newer grsecurity versions... but to me, grsecurity sounds a lot better than AppArmor. Much more mature.

Samba break? Cool! Oh, that Samba for Windows compatibility...

You know you really don't care about windows when reading about an "annual Samba break" sounds like a good idea to you, until you notice he was not referring to dancing.

[category: /en/linux | Permalink]

Fahrradroute Unterhaching - München

Eine detaillierte Fahrradroute von Unterhaching nach München (und andersrum) mit Hilfe von Google Maps hab ich heute gebastelt.

Die Karte ist dank Google zoombar, verschiebbar, hat Satellitenbilder und eine detaillierte Straßenkarte von München.

Die von mir "empfohlene" Route - abseits von großen Straßen aber direkter als man mit dem Auto fahren könnte - ist mit einer blauen Linie markiert und mit zahlreichen Fotos von letztem Sommer versehen. Viel Spaß!

P.S. Ich bin so in ca. 40-45 Minuten bei den Pinakotheken, mit dem MVV brauche ich mindestens so lange... mit dem Auto: keine Chance. Parkplatz suchen...

[category: /de | Permalink]

Wed, 26 Apr 2006

Google Maps jetzt mit Deutschland

Google Maps hat jetzt auch Kartenmaterial für Deutschland. Damit gibt es für Wegbeschreibungen und so jetzt einen hoffentlich langfristig freien Dienst... und Google reduziert damit vielleicht den Abmahnwahn bei Wegbeschreibungen etwas.

Für mich ist damit jedenfalls Stadtplandienst weg aus den Bookmarks, denn diese Firma hat keinen guten Ruf mehr (Telepolis: "Fiese Masche: Erst um Links betteln, dann abzocken").

[category: /de | Permalink]

What the web 2.0 is made out of

Share your search 2.0, create and manage your social news to upload photos online!

As pointed out by Benjamin Hill, dropping this list of web2.0 companies into a word frequency counting tool such as this gives the following interesting statistics:

226SHARE
166YOUR
97SEARCH
712.0
50CREATE
50MANAGE
50SOCIAL
49NEWS
46MASH-UP
44TO
44UPLOAD
42PHOTOS
41ON
41ONLINE
40FIND
36BOOKMARKING
36FOR
30PUBLISH
29STORE

That is what the web 2.0 is made out of, only one keyword missing here: hype.

[category: /en/xml | Permalink]

Nervige Tunnelwerbung in der S-Bahn

Die S-Bahn in München hat neue Werbung installiert bekommen. Fürchterlich.

Wenn man vom Stachus zum Marienplatz fährt wird man plötzlich von der Seite angeblitzt. Da sind im Tunnel jetzt so Displays installiert, die versuchen ein pseudo-stationäres Bild anzuzeigen. Leider liegen diese Stationen alle so nah beisammen, dass die SBahn da nicht besonders schnell ist, und die Anzeigen sind so groß, so dass das Bild übel flackert und springt. Es ist richtig unangenehm wie man da angeblitzt wird...

Ich fürchte bis zur WM wird das immer schlimmer werden. Wahrscheinlich planen sie, solche Werbungen an noch mehr Stellen im Tunnel zu installieren. Und in der U-Bahn, gerade U3 und U6 zum Stadion raus...

Da steht uns überhaupt noch einiges bevor. Ich möchte fast wetten, dass es vor der WM auch noch Fußball-Gummibärchen geben wird, vielleicht schmelzen sie auch die übriggebliebenen Osterhasen und Weihnachtsmänner noch in Fußballer-Formen um...

[category: /de | Permalink]

GNOME UI oddness

Despite having usually a very clearly laid out and intuitive UI, this time GNOME was very odd...

I had added a network connection via the "Places" menu. That was very easy (except it didn't connect when I pressed connect, but just created a new connection). But that connection has been sitting in my menu since then, and in the "Computer" view of nautilus, too. So I wondered how to get rid of it.

After trying around a bit, and even looking in the .gnome folder, I gave up and asked on IRC for help. Getting rid of them is actually quite easy - just open the "Computer" view in nautilus and "unmount" them (even if you never actually used this "network bookmark")

This is something the GNOME UI people really have to redo. You can't rename them for some reason, you can copy but not paste them, and to delete them you have to unmount them? WTF? Oh, and they don't appear in the "Network servers" view, but are local to your computer?

[category: /en/linux | Permalink]

Tue, 25 Apr 2006

More thoughts on XML differencing

Last year, I gave a talk on XML differencing at the Extreme Markup Languages 2005 conference in Montréal. Since then I didn't have much time to work on that project.

The prototype app is opensource, and available at ssddiff.alioth.debian.org. The slides are there, too, and so is a link to the article.

XML differencing is actually a two phase process; I've been mostly working on the first phase. Traditional approaches intertwine the two phases.

In the first phase, you build a mapping between the two documents. I called this a "nodeset correspondence" in the slides. Basically you decide which node from the first document corresponds to which node in the second document.

When you have found this mapping (the "marked" output writer of ssddiff will output this information in form of two XML documents marked with numbers in a certain attribute), the actual differencing is done. But much of the work remains.

When doing a diff, the output (format) is just as important as the actual result.

While the "marked" output explained above is very precise, it doesn't give the user an overview of what has changed in the document. That's why I added two more output writers, the "xupdate" writer and the "merged" writer.

The "xupdate" writer does obviously produce an XUpdate script. It goes a long way to optimizing the output (read: minimizing the number of operations), and employs a longest-common-subsequence algorithm for that (LCS is what regular diff uses on lines!). Fortunately we already have a 1:1 mapping, so this boils down to a longest-increasing-subsequence which can be computed very efficiently.

Then the writer employs some XUpdate tricks to do real moves (by storing parts of the tree in variables to be inserted later), and avoids collapsing of text nodes (it will eventually insert dummy nodes for that). But all this gives just a glimpse of the complexity I've encountered in what I considered to be a "remote" part of my project. It isn't even described in the paper, because I just hacked this code together to work somewhat (attribute handling is incomplete IIRC).

The "merged" writer turned out to be much more powerful than I had imagined and actually rather easy. After "merging" two version of an HTML document, I could add some CSS rules and have a visual presentation of the changes in my browser. Very cool. I'd love to add this html merge functionality to the prototype, but I didn't have enough time yet (you'll find some refactoring of the merged writer in SVN though to get there someday).

But let me get back to the difficulties in the "XUpdate" writer. Not all of these difficulties are actually of technical nature. It is (like with the semantics of differencing) a matter of the intended data model and use.

When you are doing a diff to be applied by a computer (e.g. via XUpdate), you may have the requirement, that the resulting document is identical to the original document. In that case, the diff is likely to have to restore whitespace. If you are interested in analyzing the differences, you will want to skip any irrelevant information.

Let's assume we have an address book:

<abook><entry name="tom" /><entry name="jerry" /></abook>
Ordering of the entry nodes is likely to be irrelevant. You address book applications will sort the entries on demand. So a "semantic diff" shouldn't include any changes to the ordering of "entry" nodes, should it?

The XUpdate writer doesn't have any functionality in place to skip such changes from being written to the output file. This will likely be not possible without some DTD magic and extra user information.

However, to have the benefits of the "-u" context option of good old "diffutils" - fuzzy matches, and somewhat reliable merging of changes without having all revisions available - such semantics are needed, too. But this will even further increase complexity of the output writer, which for example would need to detect somehow that the "name" attribute in my address book is a unique key, and therefore xpath expressions like /abook/entry[@name='tom'] are preferrable to expressions such as /abook/entry[1], which will easily break when merging.

The specification of an "XUpdate-replacement with context information" is probably a whole thesis in itself, I guess.

P.S. I'm occasionally asked about a Java version of ssddiff. Sorry that I have to disappoint you there. First of all, I'm very short of time. Then I'm not too comfortable in Java, and I estimated that the Java version would need at least twice as much memory, because of certain optimizations I can't easily access in Java that I can just hide in a template in C++. And memory is the key limiting factor at least in exact mode.

[category: /en/xml | Permalink]

Another one bites the dust

Another friend of mine is taking down all his pages, after being sued (or more precisely: threatened with a cease-and-desists order) for having had (back in 2004) a small map excerpt for a meeting of a NPO.

Less and less people dare to put up webpages, for various reasons. The threat of lawsuits is a popular reason, the other is that someone (read a would-be boss) might google for them and find something he doesn't like.

It sucks that lawyers and MBAs are ruining the web that we're so used to.

"Information society" will never happen. It will have become a "lawyers society" before that. And less and less information will be free. Especially accurate information (no, I'm not only referring to the white house "there are good leaks and bad leaks").

[category: /en | Permalink]

Mon, 24 Apr 2006

RSS needs threading.

Please correct me if any of RSS/Atom/etc. do already have threading.

On a mailinglist I'm on (large number of subscribers, and often threads become quite long but only interesting for like 1% of subscribers, but with days with now new mails inbetween) there is a discussion every now and then by people who'd prefer a forum.

A forum however is a totally non-working solution. First of all, web UIs (even Ajax, Web 2.0) suck. None offers threading as comfortable and smooth as a real email reader such as Evolution or Thunderbird (Outlook seems to have quite bad threading, or disabled by default, thats why many novice users think forums do better threading...).

Secondly, a forum requires you to frequently visit it, whereas email will patiently sit in your email folder waiting to be read, just like your regular email. That is much more workeable with an increasing number of lists/forums.

You can easily be subscribed to 20 mailing lists. Can you imagine visiting 20 forums every day? Even with smart browser (e.g. Galeon that can open a bookmark folder into tabs, did I mention IE sucks?) this is quite a pain. Now imagine that some of these forums are inactive for weeks. Visit the forum just to see that there are no new posts?

Now RSS comes into mind. But for a Forum? Should it list every post? No, it needs to have thread support, so I can easily kill whole threads.

Or I'll just stick with email and tell everyone who wants a forum to fishing. Or write a forum with reasonable email support.

Oh, and RSS doesn't solve the writing problem either. No, RSS is not the answer. Email is.

Update: A couple of people have send me emails about NNTP/Usenet/News. While there are excellent clients for it available, and the distributed nature is also a nice feature, it also has drawbacks.

For example, you basically need to setup a separate service (especially if it's a private newsfeed, and you can't use gmane), which is much more difficult that running a mailing list or a RSS feed. You can run a RSS feed with basically any provider. You can get a private mailing list with many. Then you usually need to setup a new profile for each NNTP server, because it's designed totally around the server model, not single groups. Furthermore, while you can usually access RSS feeds with your regular web browser (in form of their HTML counterparts, or some built-in filter), and mailing list with your email program, users need separate software for using News at all. (Granted, many email clients can do news) Oh, and then people seem to be afraid of NNTP, unfortunately.

[category: /en/xml | Permalink]

Sat, 22 Apr 2006

Debian quality assurance

Some time ago I blogged about what I think sets Debian apart from other distributions. Here's another posting of that sort:

Debian goes a long way to ensure quality of packages. I don't know what other distributions do to keep packaging quality high, but Debian does lots of stuff. (Well, Ubuntu probably uses the same tools ;-))

For example, meet lintian and linda. These two tools run a set of sanity checks on any package (usually the maintainer runs lintian when building the package, but they are independently checked, too).

The sanity checks include Debian policy checks, checks for missing manpages, some linking tests all the way to testing for common spelling mistakes.

Getting a package "lintian-clean" usually requires some extra efforts by the maintainer - cdbs, debhelper and other build tools can't just do everything automatically. So it is good to have lintian run some final checks.

Fri, 21 Apr 2006

More on Rockbox on my iAudio X5

So after a using rockbox on my iAudio X5 I must say that I am impressed, and I'll likely stick with the Opensource Firmware, instead of the Vendors'.

Battery life with Rockbox is slightly over 6 hours. On a one year old X5, so not on the L version with extra battery life. I obtained this value using the battery bench plugin, and playing shuffle over my whole collection. I've heard that for "vendor benchmarks" they usually choose 128 kbit mp3; my collection is mostly higher bitrate, and Ogg Vorbis is also more CPU intensive AFAIK. Crossfading also takes extra CPU cycles, for a fair benchmark I would turn that off, but I wanted to know this value for my everyday use.

This very likely is less than with the original firmware, but enough for me. In fact, I even forgot turning off my player in the afternoon, and the battery still held until I got home. And like one extra hour.

Sound quality is excellent, but I'm no audiophile. It's just that I really like the way it sounds. Although I couldn't hear any difference with the EQ turned on or off (is it already implemented?). But I don't care. ;-)

I managed however to crash the firmware once or twice these days in the menus. Can't really say when, only that it was when going to the system settings from some file properties or so. But it's still beta, so maybe this is already fixed. ;-) Guess the crash did cost me a few extra minutes of battery life.

There is some oddness in the navigation due to the wide range of platforms supported. For example the battery benchmark app claims you need to press "play" to start, but that is in fact clicking the stick, not pressing the real play button on the side of the display.

Having the player display the next track in queue also was nice: when I didn't want to listen to a certain track I could sometimes skip the next one, too.

Display poweroff is also nicer with rockbox - the Cowon firmware used to low-light the display first, then turn it off completely. That seems pointless to me, and annoyed me a couple of times, actually.

[category: /en | Permalink]

Thu, 20 Apr 2006

Ubuntu release names: where is crispy calamari?

At first sight, their naming scheme seems to follow a pattern:

Breezy Badger, Dapper Drake, Edgy Eft
I've been asked a couple of times, what the "C" release was named. But there was no "Chaotic Canine" inbetween, nor a "Crispy Calamari".

The two "missing" release names were "Warty Warthog" and "Hoary Hedgehog".

I wonder if they'll stick with some obvious scheme like the alphabete from now on... the names are odd enough as is, I think it would be nice to have them follow such a pattern.

Summer of Debtags Code?

I've added two DebTags projects so far to the Debian Summer of Code page. Maybe we'll add some more, I'm waiting for feedback.

The projects so far are:

DebTags database rewrite
the current central debtags database (the first "packagebrowser") has come of age, and is in desperate need of a rewrite and the addition of new features. It's still hosed on a woody system that should have been shut down years ago.
DebTags AI tagger
this will likely be a very popular project topic. I've already had two people expressing interest in doing this. The goal is to apply AI mechanisms (e.g. bayesian filters) to collected package information (description, readme, DOAP data, freshmeat info, sf/alioth/savannah/... info, documentation files maybe?) to guess which tags are appropriate

Maybe the second project will be split into two parts; one doing the main AI tagger work, the second working on a UI for editors to very the AI tags. Bringing that back to the central database, which will also need a review functionality.

The AI tagger project is very interesting, I wished I had had time for that myself. Benjamin already worked on it a bit last year. But there is so much you could do with that codebase...

Grab the top tags from DMoz or Del.icio.us and use them to train your AI. Then start classifying webpages with that.

I guess with some crawling work, you can extend the ~5 Mio links on DMoz to a reasonable directory with 20 Mio Entries. Now imagine a user interface like Debtags enhanced search by Enrico.

I really need to complete my studies and found a web2.0-company to sell to some search engine company for tons of money. ;-)

Unhomepages

Es ist erschreckend, was für grottige, Augenkrebs verursachende Un-Homepages es im Netz gibt. Und zwar in erschreckender Menge.

Ich weiss jetzt nicht, was ich schlimmer finden soll...

Dass viele meiner Freunde, die echt coole Sachen machen, diese nicht ins Netz stellen (weil es ihnen zu viel Arbeit ist, weil sie Angst davor haben dass jemand etwas negatives im Netz über sie findet, dass sie deswegen vielleicht mal einen Job nicht bekommen usw.) - oder dass viele mit so total irrelevanten Sachen so protzig (und geschmacklos) im Netz auftreten.

Ich denke das ist aber auch etwas ein "Kulturwandel" die letzten Jahre... Intellektuell sein ist out, Gangstaz sind in.

[category: /de | Permalink]

Well tested hardware?

We had trouble with a serial-ATA raid controller in a windows server. Write performance was exceptionally poor, so we contacted the manufacturer.

We now received the following second followup:

Sorry for late reply.
We have test the AEC-6897 R5 performance.
The test result is simular your description.
Sorry for your inconvenience.

Well, thank you for acknowledging that write performance in a 7+1 SATA RAID5 is just 2.5 MB/s, after we had been stating that switching to RAID 0+1 is not acceptable for us. Now, do you have a timeframe when a working bios for your controller will be available?

However, when you produce a RAID 5 controller for 8 drives, don't you think the 7+1 setup is, well, an obvious choice, that should have been tested for write speed before? :-(

[category: /en | Permalink]

Tue, 18 Apr 2006

Opensource Software on my MP3 player

My iAudio X5 player now runs Rockbox.

Installation was fantastic. Just copying some files via mass-storage.

I found navigation in rockbox hard to get used to (took me ages to find the full settings menu, the way I've found is like this: while playing, press the joystick a second, then press the record button.), but the info screen is very nice:

There are different themes for the playback UI, which include information on the next song to be played. Very nice. I'm looking forward to UIs that make use of the color screen.

Rockbox offers tons of features not available in the original firmware. Rockbox is said to have gapless playback, I prefer its crossfading. Replaygain is also available.

But even if some of that is not yet working: use the source, Luke!

I can't comment on the battery life yet, haven't used it on battery yet. This will obviously be a key factor; but the player has a battery life of up to 15 hours, so I used to recharge it only every other week. ;-)

[category: /en | Permalink]

Bad plug + bad adapter + el cheapo adapter = works

I bought my MP3 player in the US, so it obviously came with an US charger. Figures I didn't think of buying an adapter there, and somehow I couldn't find a cheap adapter here yet.

The charger doesn't say it can do 230 V, but according to the manufacturer it does. And someone has opened one, the chips can.

We have some standard adapters here, but they don't fit. You can plug in some US devices, but not this one: the charger's plug (crappy US electrocute-yourself "standard"...) is just two metal stripes coming out of it.

The adapter's socket however is inset about 1 cm (which is reasonable for safety purposes, and common, if not required in Europe), and the charger obviously is too wide to fit into the adapter...

The workaround I've found is funny: I still have an adapter I bought to plug European devices into US sockets. This cheap adapter ($1 or so) can also take US plugs. If I put it inbetween I can make up for the inset.

So it's US-Device goes into a tiny most-to-US adapter, which goes into most-to-European adapter.

Wikimedia Commons on power plugs and sockets, including the sane german/french models (aka CEE 7/7 "Schuko" plug, CEE 7/17 Europlug)

[category: /en | Permalink]

Sun, 16 Apr 2006

More on Wikipedia

Marc Haber replied to my "we need a verb for wikipedia" posting on IRC. He's right, we actually need two.

to wikipede
to look something up in wikipedia, an encyclopedia or a wiki
to wikipedize
to prepare something for publishing or to publish something in wikipedia, another wiki and/or an encyclopedia
How about these?

[category: /en | Permalink]

More on brands

In this weekends newspaper was an article on brands in fashion. That the big brands are going down, and instead smaller brands are coming up. This was explained with people wanting to be "hip" and faster than the trend. "Cutting edge".

This is very interesting, since Google basically defied this trend. Google started as this "insider tip" for search engines, back when everybody was using Altavista, Yahoo, Hotbot and such. Back then, Google was "hip" because of it's simplistic interface and quality, and meta searchengines such as MetaGer.

Many of these search engines from back then have gone away. And Google has become a really big brand. Using Google is not "hip", everbody does use it. So what is it keeping people this loyal to the Google brand, and not going for new "hip" stuff like ExaLead.

Another counterexample are iPods. I didn't buy one, because everybody does (and it doesn't play my .ogg files, and doesn't do gapless playback) - but millions of people did. So iPod is another "old-style brand" that just popped up a few years ago.

Will the same thing happen on the net that has been happening in fashion? The next big thing, will it be an influx of "lifestyle search engines"? Maybe built around top blogs like BoingBoing? Should companies try to buy their way into the top blog sites? Or are they actually more likely to kill them that way?

Or is the net actually ahead, and big brands are coming back? But given that one of the key features of so-called "Web 2.0" is the social interaction thing, isn't the net just changing right now to add more "community"?

Will it happen to operating systems and software, too? Apple OSX is doing well in becoming a "lifestyle OS". Windows can't. But how about the Linux UIs? KDE has tons of features, some people say it's overloaded. GNOME is going the other way, keeping things simple and easy - too simple and easy for others. What if we'd "lifestyle" user interfaces, and do the next step past "theming" - offering desktop OS styles like "power user", "hip and quick", "just let me get the work done quickly" and "less is more".

I guess we don't have to workforce for that. Yet.

[category: /en | Permalink]

Sat, 15 Apr 2006

Good brands, bad brands

One of the strengths of the Google brand is that you can turn it into a verb easily. You can just use "to google" instead of saying "search with yahoo" or "search with msn" sucks. Also the new brand by Microsoft, live.com, won't have this benefits. Just like "Windows" its a way to generic name. "To live" doesn't have this ring.

Debian users like to "apt-get firefox" instead of "installing" software, because that is so easy with this tool.

We definitely need a verb for Wikipedia... "to wikipedize"?

Oh, and I wonder when Google will release the "G-Spot"... maybe they'll use that brand for their to-come WiFi in San Francisco?

[category: /en | Permalink]

aI'kea headquarters located!

Bush has finally located the aI'kea headquarters. They're in Älmhult, Sweden. The military operation will begin any day now.

... unless, of course, someone with a cluebat comes along and puts an end into this "war on terror" madness.

[category: /en/politics | Permalink]

Studieninhalte in der Informatik

Eine weitere aktuelle Schlagzeile auf Heise: Russische Uni-Teams dominieren Programmierwettbewerb

Das überrascht mich nicht. Nur Indien vermisse ich in diesem Wettbewerb. Die TUM hat anscheinend mit 20 anderen zusammen Platz 19 belegt. Die LMU hat sich vermutlich nicht beteiligt.

Diese Wettbewerbe - ich habe dafür mal ein paar "Übungsaufgaben" gemacht, aber kein Team zusammenbekommen - passen aber auch nicht zu unserem Studien-Konzept: Um mithalten zu können muss man einen Satz klassischer Algorithmen aus dem ff beherrschen, und sehr schnell sehr effizient implementieren können.

Sprich: es ist ein Programmier-, kein Informatik-Wettbewerb.

Die Frage ist jetzt, ob unsere Universitäten die Studenten stärker im Programmieren ausbilden sollen, oder - so wie es derzeit gemacht wird - eher auf der theoretischen und modellierenden Seite.

Meiner Meinung nach ist es so richtig, wie es die Universitäten bei uns derzeit machen; viele wünschen es sich aber genau anders. Auch Firmen sind natürlich zunächst an Leuten interessiert, die schnell große Mengen an Code produzieren können. Die Vorteile, wenn der neue Angestellte auch Ahnung von "Software-Engineering" hat zeigen sich halt erst viel später.

Meiner Meinung nach sollte man "Programmieren" daher vor allem als eine Ergänzung zum derzeitigen Studium sehen, und versuchen da mehr anzubieten. Programmieren kann man an vielen Stellen lernen. Beispielsweise als Hobby während der Schulzeit (die Einführung von Informatik als Fach an der Schule sollte das etwas unterstüzten), bei Praktika in Firmen und eben bei einem Programmierpraktikum an der Universität. Um das jedoch in einem größeren Umfang anzubieten fehlt an der Universität das Geld, und den Studenten die Zeit (daran scheiterte damals auch mein Team)...

Daher werden wir uns wohl damit abfinden müssen, dass bei solchen Wettbewerben andere Universitäten (und -Systeme) dominieren werden.

[category: /de | Permalink]

Wirtschaft will keine Wirtschaftsinformatiker?

"schwächer entwickelten sich die Chancen für Wirtschaftsinformatiker, an die 3,1 Prozent (5,2 Prozent) der Stellenangebote gerichtet waren." (heise)

Die Stellenangebote für die "Bindestrich-Informatiker" entwickeln sich entgegen dem Trend rückläufig? Gefragt sind vor allem Ingenieure und normale Informatiker (30 bzw. 22 Prozent der aktuellen Stellenangebote)

Der Arbeitsmarkt in der IT-Branche entwickelt sich gerade sehr vorteilhaft; ich habe diesen Monat bereits 4 interessante Angebote erhalten, obwohl ich noch mitten im Diplom stecke und daher keine Stelle suche...

[category: /de | Permalink]

Weird font bug

font bug screenshot

This weird font bug (notice the grey dots next to the upper prompt) has been around for some months now. I couldn't reproduce it in xterm, I've been seeing it in gnome-terminal for a long time now. I've only seen it with single bold > and < chars in the DejaVu and Vera fonts so far. Maybe these characters are too wide, and the antialiasing wraps back into the character cell?

Focusing sometimes makes the bug disappear, sometimes not. Even (as in the screenshot) sometimes only for some of the prompts on the screen.

Fri, 14 Apr 2006

Schöne Schrift: தமிழ் (Tamil)

Irgendwie hat die Schrift des Tamilischen eine besonders schöne Form.

Wikipedia auf Tamil

Ich weiss nicht, ob man sie schneller oder langsamer lesen kann als die lateinischen Zeichen (ich vermute langsamer; die Zeichen haben alle etwa den selben Umriss, und ich habe Untersuchungen gelesen dass wir zuerst nur den Umriss wahrnehmen, und dann Teilweise aus dem Kontext schließen, ob das jetzt "Hund" oder "Hand" ist, was da steht. Wir lesen eben genau nicht zeichenweise, sondern Wortgruppenweise. Schnelllese-Techniken beruhen oft darauf, ganze Zeilen mit 3 Blicken zu erfassen, normale Leser fixieren hingegen jedes Wort.

[category: /de | Permalink]

Thu, 13 Apr 2006

Debian mascot

Recently, on IRC, someone asked what the mascot of Debian would be, if it had a mascot.

It can't be a penguin, because we also have kFreeBSD and hurd.

My guess would be a Hydra. It has way to many heads, is a huge beast, and bites. Oh, and it was defeated by firing flaming arrows into it's lair. Sounds much like Debian doesn't it?

MusicSquirrel 0.1

Grab my new MusicSquirrel 0.1 while it's hot.

MusicSquirrel is a duplicate finder and killer for your music collection. The name was chosen because it harvests all it can find, stores them and gets rid of the bad ones.

It will calculate Accoustic fingerprints for your music files (MP3, Ogg and such) and thus can detect the same song even when it was encoded in different formats or at different quality settings.

The findings are presented in a sorted list, with checkboxes to pick which version of the files to delete.

MusicSquirrel Screenshot

It requires PyGTK, Python Glade2 and python-tunepimp. You can even run it on Windows (Don't ask me for help on that! Get ActivePython, PyGTK for Windows, Python tunepimp bindings and either compile all the libraries yourself or copy them from the latest Picard beta. Note that there is a memory leak somewhere in windows only, probably in the libs and not in the python code)

On my wishlist:

  • Clean up UI code, it sucks
  • Cluster duplicates by folders/albums for easier deleting
  • Detect broken files

But I won't have time to do any of these anytime soon.

[category: /en | Permalink]

Wed, 12 Apr 2006

Python pitfall of the day: def function(var={})

I was hunting an odd bug in a python program of mine.

Here's a condensed code snippet for explanation:

class odd:
        def __init__(self, a, b={}):
                self.b = b
                self.b["a"]=a

one = odd(1) two = odd(2) print one.b["a"]

That code looks reasonable, doesn't it? The parameter "a" is required, but other parameters can be given in a hash. So what output would you expect?

The output is 2. The reason is as follows:

Python creates an empty hash, and b is a reference to this hash per default. To the same hash each time. So the code is basically equivalent to

class odd2:
        default_for_b_in_init = {}
        def __init__(self, a, b=default_for_b_in_init):
                self.b = b
                self.b["a"]=a
and not (as I had expected):
class odd3:
        def __init__(self, a, b=None):
                if not b: b = {}
                self.b = b
                self.b["a"]=a
Obviously, both behaviours make sense, and the python way is somewhat consequenter.

So be careful when using default values in functions!

Non-reference types such as integers are fine, so is None, and of course any outside objects you want to be the same for each call. Don't assume the def statement will create any new object.

Even shorter example:

def test(a, b={}):
        print b
        b["a"]=a
test(1)
test(2)
will result in the output
{}
{'a': 1}
again there is only a single hash b.

[category: /en | Permalink]

Sun, 09 Apr 2006

New Microsoft Innovations: froogle.live.com and googlescholar.live.com

Whoa, Microsoft announced two new innovative services for their famous live.com website (you know, live.com is like, a top brand already, you know).

They'll add a product search engine [google.com] and a scientific search engine [google.com].

Not that any of these hadn't been done [product search engine list] numerous [citeseer] times [DBLP] before.

And apparently it takes them until september to actually launch the first of these (no ETA given for renaming shopping.msn.com to live.com and ajaxifying it). That's so "me too", what they are doing.

I would laugh if Google would launch an Ajax-version of their services just before Microsoft is done with theirs. I mean, Google has Ajax experts. Not that Ajax would improve the user experience much for search pages.

I wonder if Microsoft could hold their shipping date of Vista if they wouldn't try to copy Google at the same time. And making game consoles. And mice.

[category: /en | Permalink]

Sat, 08 Apr 2006

Google Earth gefährdet Fussball-WM?

Heise meldete neulich:

Die Koordinatenangaben im Programm Google Earth stellen nach Ansicht des Sicherheitsexperten Klaus Dieter Matschke ein Sicherheitsrisiko für die Fußball-WM in Deutschland dar.

Zuerst sollte man aber wohl GPS abschalten, denn wenn ich mit einem mobilen GPS-Empfänger in das Stadion gehe (z.B. zu einem Bundesliga-Spiel, mir ist nicht bekannt dass das Stadion vor der WM umziehen würde) kann ich mir die Koordinaten genauso genau ermitteln, oder? Oder indem ich mit dem Auto einmal aussenrum fahre, und so die Mitte bestimme. Oder die Straßenpläne anschaue. Genauer gesagt sollte die Messung mittels mehrerer Punkte, wie mit GPS möglich, sogar die Genauigkeit deutlich erhöhen. Am besten noch zu unterschiedlichen Zeitpunkten, damit die Satelliten vielleicht gerade anders stehen, oder andere zur Messung verwendet werden. Also einfach mal rund ums Stadion spazieren gehen.

Tut mir leid, es ist lächerlich anzunehmen, dass Terroristen die Koordinaten bei Google Earth ablesen. Die werden wahrscheinlich so genau angezeigt, sind aber nicht so genau.

Jedenfalls hat sich bei dem letzten Satellitenfoto-Update von Google unser Garten ca. 15 Meter verschoben. Würden wir ne Scud-Rakete in unseren Garten feuern, würden wir dann wohl einen Baum beim Nachbarn treffen.

Ausserdem haben die berühmten "Schurkenstaaten", und Terroristen die auf dem Schwarzmarkt Scud-Raketen einkaufen, auch ganz andere Quellen als Google Earth. Das würde ich vielleicht nutzen um einen selbstgebauten Propellerflieger drüberfliegen zu lassen... Aber wer für teures Geld eine Rakete kauft, wird nicht an dem Kartenmaterial und den Koordinaten sparen.

Terroristen, die einen Anschlag auf ein WM-Stadion vorhaben, würden aber vermutlich auf eine noch ältere Technologie setzen als GPS: Peilsender. Die Bauteile dafür findet man wahrscheinlich in jedem Mobiltelefon. Also "einfach" einen Märtyrer ins Stadion schicken, unbewaffnet. Vielleicht sogar nichtsahnend, was jemand mit seinem Handy gemacht hat.

[category: /de/politik | Permalink]

Alexa.com wildy inaccurate

I just checked out alexa.com, and was very surprised to see graphs for my blogs domain. (Note: the other stuff in the same domain has even less visitors; alexa says 75% are on the blog)

Alexa graph for blog.drinsama.de

Apparently, one day beginning of april, drinsama.de made it into the top 100.000 domains at alexa again (happened in january and february, too). This very likely was my blog posting on running MSIE on Linux (whyever you might want to do that...).

But their numbers are just absurdly off. They claim my blog has a reach of 20 Mio users. My ModLogAn, which uses the actual access logs, lists a peak of 358 visitors on April 4 (average is around 300 for March, 220 average in April so far). This doesn't include readers on Planet Debian, which is probably the largest share. At alexa, the domain peaked at .6 million pageviews - ModLogAn says 10k.

I have, however, lots of referrals from Digg.com, Reddit.com and del.icio.us this month, since they've picked up my MSIE posting. Maybe this will happen again with the Cross-platform virus posting.

I do think it has to do with users using the alexa toolbar and similar things (there is a nice firefox extension for showing Google Pagerank and Alexa traffic rating). My personal homepage, which is totall overrated in Google and has had an average of 1000 unique daily visitors in December and January, never made it that highly into alexa. While having three times as many visitors, alexa thinks it's 3-4 times worse.

The difference is probably the power users. My personal page doesn't have "power visitors" like my blog.

[category: /en | Permalink]

Apple's backstab on Windows

Apples latest move - BootCamp - can turn out quiet bad for Microsoft.

By allowing users to install Windows XP additionally to OSX on it's newer machines, many people will buy a Mac (because of it's design, and the ability to try out OSX while still having Windows available). They'll install Windows. But one time or another, Windows will fail them, and they boot up their OSX. And eventually notice that it's better, prettier, easier to use.

And they'll see the price of buying Windows licenses.

If Microsoft doesn't manage to launch Vista before christmas, and offer something relevant for the users with Vista (a prettier UI and a malware detector isn't enough, and noone believes Microsofts security promises anymore), they'll lose quite a bit of the christmas sales.

I wonder when Dell and Samsung will start selling PCs with OSX, too, now that it's no longer an either-or decision.

[category: /en | Permalink]

Proof of concept virus for Linux and Windows

Many IT news websites have been reporting that there is a new proof-of-concept "cross-platform" virus for both Windows and Linux.

This is largely overrated. There are a couple of reasons why this type of virus poses no threat to Linux users:

  • Linux users can't write their applications, so the virus can't infect the executeable files (at least for non-programmer users)
  • Linux users get their software from a trusted source, cryptographically protected software packages by their distributor. There is (fortunately) not this tradition of downloading untrusted shareware from random sites and running it (although autopackage tries to abolish this)
  • Linux distributions often compile their software using so-called "build daemons" and "personal package builder" which build software in a cleanroom environment. While this was introduced to ensure that software can automatically be recompiled and to allow developers to have "unreleased" experimental software on their own computers, this also effectively can prevent a virus from injecting itself into a distribution via an infected developer PC
  • Viruses ("traditional viruses") that infect exe files are not too common anymore, all major virus attackes the last years were "worms" using bugs in (Microsoft) software.
    Attacks usually only work with a specific version of a specific application (usually Outlook Express as shipped with Windows and Outlook from Office) but the Linux community is using too many different versions (the Debian package will be slightly different from the Fedora, although the difference doesn't play any role to the user) and too different applications (there are tons of different email clients and browsers in use on Linux)

So overall, this threat is very theoretic.

However, the Linux community should consider defense mechanisms for this. Debian can already verify the integrity of most of its files via md5sums, but some tools (e.g. prelink, to improve application start times) will modify the applications and thus the md5sums.

A couple of measures we could/should probably do:

  • Run virus checks on software uploaded, as extra safety net
  • Ship a basic virus scanner
  • Find a way to get the benefits of prelink without having to modify the executeable files
  • Don't encourage users to use autopackage and such, but explain them the concept of "trusted software" for virus protection
  • Log/alert on write attempts to /bin, /sbin, /usr/bin, /usr/sbin and other dirs that should only be touched by the distributions package manager
  • Add sandbox facilities e.g. for webbrowsers and email programs (e.g. using SELinux)

These measures could make it even less attractive to write attacks against Linux software.

I can't assess the potential security issues we might "inherit" from the Windows platform by offering the Mono C# implementation. This basically means that some of the to-come malware for Windows will run on Linux, too. Only if users try to run their Windows shareware, of course.

[Update: another win32+linux virus, from 2001. Noone cared, nothing happened.]

[category: /en/linux | Permalink]

Thu, 06 Apr 2006

Planarity

Planarity is indeed an addictive flash game. I just did level 13 in 19:30 minutes. What are your scores like?

This game was also featured in that cool Multi-Touch touchscreen video you might have seen some month ago.

There is however a rather generic approach that will lead you to a solution rather reliably. Don't just move around random vertices, instead pick one and move it into the center, now grow the solution from that center node. The higher the level, the less space you'll have, so keep it dense! Always look at all "new neighbours" first, where to place them best to avoid having to swap them later.

But by just walking around clockwise around the "convex hull" of what you've built so far, you get a pretty good network. I guess you can even prove it that you'll be able to solve it in O(n) that way when done right.

In level 13 I this worked quite good for me, except I ran out of space some time. I then picked a random outer node, moved it to the very upper left, and moved the "covex hull" to the borders of the screen.

From time to time you'll see you've made a mistake, but this can usually be solved by mirroring some group in your network.

Update: Level 14 in 18:13 Minutes. Looked like this:

Planarity screenshot

with a small problem at the top edge of screen due to lack of space there.

Update: Level 15 in 14:01 Minutes. The schema works perfectly, you have to touch each node at most twice (once when discovering, and maybe switch place with a sibling when discovering the new neighbours). All changes are local, and you don't actually look at the lines, just at the colored nodes.

Unless of course you run out of space and have to rearrange.

[category: /en | Permalink]

SSH scanner rebuttal

Mike, please re-read my blog posting, especially the very first sentence:

I have a box still running woody, and can't run iptables recent match on it (see an earlier post in my blog on how to use this kernel filter to effectively block ssh scanners).

I've been using that method for well over a year I think. On those boxes that support it.

[category: /en/linux | Permalink]

More on SSH scanners

I have a box still running woody, and can't run iptables recent match on it (see an earlier post in my blog on how to use this kernel filter to effectively block ssh scanners). Every few days another hacker, most of them being IPs from China, hits it with a SSH scan.

When I notice these scans via logcheck mails and it still seems to be in progress I usually manually block that IP. Maybe I should move the ssh server to a different port for now.

Anyway, I just received the following lines via logcheck:

Apr  6 01:04:50 sshd[1371]: Failed password for news from 213.80.123.21 port 42768 ssh2
Apr  6 01:05:29 PAM_unix[23403]: (ssh) session closed for user testtest
Apr  6 01:05:32 PAM_unix[6136]: (ssh) session closed for user testtest
Apr  6 01:06:20 PAM_unix[6793]: (ssh) session closed for user testtest
Apr  6 01:13:38 sudo: erich [...] block_host.sh 213.80.123.21

So first of all, I happened to block that scanner by chance just a few minutes after he had actually hit an account with a weak password.

Fortunately, that user (like all users by default) has shell /bin/false, so these three logins were pretty short. Figures that I immedeately locked that account (which apparently has been sitting around for a year and was never used, locked as in "user not found"), and I'm annoyed that someone created an account with most probably username == password, despite the account creation tool even generating secure passwords for you. I also ran a system check, but it's clear that they couldn't ran their default attacks and didn't have time to come up with some clever mail/whatever combination to get in.

But a couple of things for you to take away:

  • Use filters to block scanners.
  • Monitor your logfiles. It's worth it.
  • If a user doesn't need ssh access, don't give him ssh access. Consider a restricted shell, or a non-exec filesytem for untrusted data.
  • Make sure you don't have accounts with extremely weak passwords such as username == password on your systems. That is what they are scanning for.
  • Don't ever give access to the account creation tool to anyone who doesn't enforce a strict password policy, unless your tool does ensure that.
  • Don't let users with shell access or similar pick unsafe passwords.

Oh, and it is interesting, that once they hit that "locked down" account, they actually gave up scanning. They tried three times logging in to that account, and then didn't scan anymore. Maybe I should modify my ssh server to send unknown users always to /bin/false.

[category: /en/linux | Permalink]

Too many projects...

I'm doing too many projects. I need to step back from most of them ASAP. I just don't want them to dwindle, but prosper...

I really need to find more contributors for

  • LaySVN, Layered Subversion, a svn mod written for storing the configuration of non-identical servers in SVN (read: servers that have some configuration parts in common, some differ) and probably of use for other cases.
    I've recently started a rewrite of LaySVN for speed reasons; you can't work on a per-file base with SVN but need to plan ahead a lot
  • Pyroman, a firewall tool featuring a IMHO nice configuration language and which is very fast due to using iptables-restore, and it has rollback on errors
  • SSDDiff, a diff tool for XML which can handle complex cases very well. Some say it's doing a "semantic" diff, actually. The "fast" (approximative) mode needs some love, the prototyp app IO needs to be redone (i.e. output filename parameters), XML attribute changes aren't reported yet in all output formats. I've also done some nice HTML diffs with it, that could be made a separate HTMLdiff application.
  • Debtags central database needs to be rewritten to fit our newer requirements (e.g. moderation of edits or specific tags), and moved to a new server (old one still being woody)
  • musicsquirrel (unreleased), a PyGTK duplicate finding tool using TRM ("musicbrainz") signatures, could need some magic like duplicate album detection (by "clustering"), and a UI to mass-select duplicates accoring to some rules (e.g. kill all duplicates found in the "unsorted" folder, if there is a properly tagged version in some other place)
  • SELinux-Basics, a package to help getting SELinux working, has some basic sanity check shell scripts for a fresh SELinux system. These should be rewritten in OOP fashion with python or so, and extended with some extra checks.
  • SELinux on Debian needs more adventurous people testing and using it, fixing policy to match Debian needs, writing new policy for new services, writing tons of documentation, doing some pretty install scripts and fixing some upstream bugs (module linking still not working). And making it as easy to use as AppArmor claims to be, because SELinux IS better and should be used instead.
  • ISL3893, a wireless AP chip with a linux-based SDK available, is finally receiving some development. Too bad I can't devote any time to it. It would be cool to bring it up to par with famous OpenWRT.

Oh, and half of above projects need a fancy web design and an icon.

Anyway, I should basically turn off my computer for the next two months and refrain from going online. :-( I know that I won't have the discipline to do so...

And there are oh so many projects still only existant in my head that I'd really love to do sometime. One involving new search technologies with tags, bringing together directories like DMoz, tag based stuff like del.icio.us and "traditional" text search engines. Definitely the stuff the Web 2.0 is made out of (read: hype). But when I'm done with my diploma this new dotcom bubble is probably over, too... :-(

[category: /en | Permalink]

Wed, 05 Apr 2006

Stoiber will "Störer" auf die Straße setzen

... und glaubt damit Probleme zu lösen.

Das ist mal wieder typisch, das berühmte "Stammtischniveau" bei der CSU: "Wer randaliert, fliegt von der Schule."

Wohin die von der CSU in Bayern gerade beschlossenen Maßnahmen führen werden kann man sich leicht ausrechnen: Die "Problemfälle" werden keine nennenswerte Schulausbildung haben, also keine Lehrstellen oder Arbeitsplätze finden, und damit allen anderen zur Last fallen. Gleichzeitig haben sie keine Chance, das zu ändern, keine "Perspektiven".

Wozu so etwas führt, haben wir in Frankreich letztes Jahr gesehen. Da haben tagelang die "chancenlosen" Teile der Bevölkerung randaliert und Autos angezündet.

Wollen wir diese soziale Spaltung nicht noch mehr verstärken, so dürfen wir nicht mehr Leute "verloren geben" wie es die CSU gerade durchsetzt, sondern müssen allen Deutschen Perspektiven bieten, eine passable Arbeit zu finden, statt sie von der Gesellschaft auszuschließen. Nicht nur den Akademikern wie mir Aussichten auf hochbezahlte Stellen schaffen, denn mir wäre es halt auch lieber in einem Land zu leben, wo ich nicht tunlichst manche Gegenden meiden sollte... oder gar einen Aufstand wie in Frankreich befürchten muss.

Leider ist die CSU nicht dazu in der Lage, ein funktionierendes Konzept zu entwickeln, sondern sie machen halt das, was man am Stammtisch fordert: "alle einsperren! bestrafen! ausweisen!"

[category: /de/politik | Permalink]

Programming languages that need to die.

We have way to many programming languages. So I'm putting together a list of languages that need to die. ;-)

  • Lisp - being a "programmable programming language" is broken by design, because everybody does everything differently. Maintainance hell. And probably explains why the last times I tried to run a scheme program it just didn't work. Because noone except the original author understands the code.
  • PHP - insecure by default and "encouraging" developers to mix code and html, how bad can it get? This language needs to be redesigned so much it's no longer PHP.
  • TCL/Tk - no app I care about uses that, and the last apps I tried came up but didn't work, just threw some fancy exception. I tried to fix them, but didn't succeed. Can we just get rid of it, please?
  • M4 - macro hell. You can do good things with macros, but M4 is hell. So instead of creating bad configuration files with 10-level-deep nested M4 macros mixed with 0-level statements, why not just do a sane configuration file instead? Examples from M4 hell include sendmail, autoconf, selinux.

Honorable mentions that didn't make it into the "must die" list:

  • Perl - I couldn't live without the "unix swiss army chainsaw", but it's syntax is outright ugly.
  • Ruby - nice language, but always makes me think "why do we need another python?"

Languages that I think have issues, but couldn't put on this list:

  • C#/Mono - I don't want another fat, slow virtual machine, I don't want bash scripts wrapping .exe files. If you do something C++-like, why don't do it C++-like? On the other hand, there are cool Gnome apps coming up with Mono, so it seems fun to write code with. And maybe they become useable sometime.
  • Java - I don't like this language, but maybe because of its users. It however has a couple of good points, for example that it is a rather strict language, resulting in easier to read and to maintain code (which is also why there are very powerful refactoring tools and IDEs for Java). With free VMs like Kaffe and with GNU classpath coming along, I might actually start using one or another Java app.
  • Python - the language is really dirty when you care about clean and verifyable code. Compile time typing and having types in the syntax definitely is a good thing. However I enjoy hacking python scripts for all kind of stuff a lot, so I can't really say it's a bad language.
  • C/C++ - you can't live without it, if you have discipline the code can also be very clean and efficient. There are tons of great libraries around. However, it's also very easy to write crashing applications.

So let the flamewars begin. I'll try to keep track which language zealots are the worst. Without having started, I bet it'll be the Lisp zealots.

[category: /en | Permalink]

Programming languages: the next big thing?

I've been thinking a lot about programming languages. Especially on what the "next big thing" after OOP will be (and I'm talking of the magnitude of OOP vs. traditional imperative programming). I'd predict we'll end up with such a new paradigm in like 10 years, and it'll do away with OOP like OOP did with traditional imperative programming. It won't be Aspect Oriented Programming. It won't be UML and all its sublanguages. It won't be a pure functional paradigm, these have been around a long time already. It'll have to have multithreading support in a very natural way (multithreading is somewhat ugly in all the OOP languages with locking and such; in theory it should be very nice in functional and logic languages, but I'm not aware of anyone actually making use of that...)

I guess it'll be around data flows, and it will offer a range of detail levels, so that on the one end you can do amazing things with a few lines of code (like in python or ruby), but it'll also be possible to use (and enforce if needed) lots of constraints for validity checking such as typing, value constraints, pre- and postconditions and so on. And it won't be graphical like all the UML stuff, because coders type a lot faster than they click. It will however need to come with a very very powerful editor offering benefits from both the Eclipse and the VI worlds.

It will be very interesting to watch these developments.

Oh, and I have intentionally no comments on my blog.

[category: /en | Permalink]

Shopping Un-Experience

(Sorry für das Denglisch, das ist Absicht.)

Heute haben wir uns zwei neue Bänke für unsere Terrasse gekauft. Diesmal bei Pflanzen Kölle, in unserem "Gewerbepark".

Schrecklich.

Monster-Läden, Riesen-Parkplätze und ein fürchterlicher Trubel. Bis man durch den Laden erstmal bei den Gartenmöbeln angekommen ist dauert es auch ewig...

Danach noch eine Milch mitnehmen beim Edeka daneben. Zickzack durch die "Produkt-Inseln" quer durch den ganzen Laden zur Milch. Ich hab nicht geschaut an was ich da vorbeigelaufen bin, weil das Labyrinth als solches schon die ganze Aufmerksamkeit erfordert; man will ja nicht gegen eine Wand laufen, und irgendwann ankommen. Bei den klassischen geraden Regalen konnte man wenigstens geradeaus laufen und währenddessen nach links und rechts schauen.

Die Kasse ist auch unglaublich kompliziert. Erst wird die Milch gescannt, man bekommt dann einen Bon, und danach gehts zur Kasse wo man zahlen darf. Also inzwischen braucht man anscheinend zwei Leute um eine Milch zu kassieren. Und da standen sicher zehn angestellte an den Kassen rum, großteils untätig.

Naja, wer ko, der ko. Irgendwie ist da der etwas enge, unübersichtliche Tengelman bei der Uni gemütlicher. Ausser dass da von meiner bevorzugten Colamarke letztens nurnoch die Light-Version übrig war. Igitt! Die Milch war übrigens auch keine Light, sondern eine vollwertige Bergbauern-Milch.

Mein Vater hatte sich den Arm gebrochen. Beim ziehen der Nägel hatten die Ärzte Probleme, diese raus zu bekommen, und jetzt, keine Woche später, verlegt er gerade die Steinplatten der Beete neu. Morgen lässt er sich dann die Fäden ziehen. Dass das so toll geheilt ist hängt vermutlich mit unserer Bio-Ernährung zusammen. "Kerngesund" sozusagen.

[category: /de | Permalink]

Tue, 04 Apr 2006

Intel PRONoMgr.exe

Whoever came up with that name, he really made me think that Windows box had some trojan on it. But the "PRONoMgr.exe" doesn't handle P0rn, but is for managing the Intel gigabit e1000 adapter. I don't think it matters if you kill it, it probably only displays that icon in your system tray.

[category: /en | Permalink]

Windows fileservers suck

... give me samba, please!

I've recently been fighting windows file servers. They run on totally oversized hardware (P4-HT, 8 SATA drives in a 7-active-1-hotspare RAID-5 set) but still don't perform reasonably. (2.5 MB/s write performance is really bad, read performance is somewhat okay, though)

And then it's so easy to confuse windows... seems like Windows can't handle directories ending with a dot. But you can easily create such folders over the network with SMB... name a folder "foo." and windows can't handle it any more. Or "...". Windows can't delete or rename it. And I'm talking NTFS, not plain old legacy FAT.

So if you're going to hide data on a windows box, just store it using SMB in such a folder. And if you want to be really evil, write a script that autodiscovers writeable network shares around you and creates "You suck." folders there. Windows users will start running around screaming, but obviously you can't be the culprit, since you can't access Windows shares, can you?

I've also been porting a python app to Windows. Python is so nice, and PyGTK works like a charm on windows. Now if Windows just wouldn't suck as much... for example, it doesn't have os.fork(). And it's I/O charset semantics are a complete mess. Once you don't use only 7-bit ASCII you're likely to go crazy. Seems like the console on Windows always uses codepage 437. The filesystem probably cp 1252. Windows internally claims to use 16-bit unicode.

So if you want a python script to run on windows:

  • Use string.decode(sys.getfilesystemencoding()) on any string you get from functions such as os.walk, that might depend on the filesystems character encoding
  • Write your app in a fashion you can redirect your output easily to a logfile, because the console on windows is totally borked... "print" just can't print your filenames... or I havn't found the right magic yet.

I can recommend python for cross-platform coding however. The PyGTK GUIs are really nice, much nicer than all that java stuff out there. And these "issues" with windows aren't really Pythons fault, but Windows.

[category: /en | Permalink]

Mon, 03 Apr 2006

MSIE 6 on Linux

You can run MSIE 6 on Linux quite well by now. Not that there is any reason to do so. (Okay, maybe if you are a webdesign professional you'll want to make sure your layout works fine with MIES, too.)

So for me, this is more a demo on how far wine is.

[Update: the link below is dead, I suggest using ies4linux instead. Although I still recommend setting up a separate "windows" user, for security reasons.]

Here's how:

  • Get a recent wine, e.g. 0.9.9 or 0.9.10
  • Add a new user named "windows" to your system, because you don't want to risk running windows software like IE with your regular user account, will you? It could read your email!
  • Add the freshly created windows user to the video and audio groups (adduser windows audio) if you want 3D or sound
  • Use gksu -u windows xterm to open a shell as the windows user
  • From Microsoft, download dcom98.exe and ie6setup.exe and save them to /tmp
  • Type the following:
    cd
    wget http://www.kievinfo.com/2/ie6_overrides.reg
    wine regedit ie6_overrides.reg
    wine /tmp/dcom98.exe
    wine /tmp/ie6setup.exe
    exit
    
  • You can now surprise your favourite linux-critics ("but linux won't run my $favourite_program, will it?") with a working Internet Exploder by running gksu -u windows wine C:\\Program\ Files\\Internet\ Explorer\\IEXPLORE.EXE - and it should not be able to read your email, much more secure than if you were running Windows.

Or, you could just be happy with not using Windows software. There is so much good FL/OSS software around, that I'm always seriously disappointed when I have to fight some windows software. I don't need it, do you?

[category: /en/linux | Permalink]

Skype incompatible with Gnome?

Skype (that shady VoIP application which may eventually turn your computer into a "supernode" and use it for forwarding dozens of calls, that is packed with tons of anti-debugging techiques and tries to be very very shifty) seems to be incompatible with my Gnome.

With the gnome session-manager, to be precise. Because I can run skype, if I launch it using

SESSION_MANAGER= /usr/bin/skype

Anyway, if you want to use VoIP, please use a standard protocol such as SIP.

German DSL providers will currently give you DSL modems for free when you sign up with them that have SIP built-in, and where you can attach your regular phone (even ISDN) and do least-cost-routing. Some even give you a flatrate to landlines with their DSL service. And Freemail providers such as Web.de, Freenet.de and SIP specialists such as SipGate offer you a true phone number for use with SIP for free.

There is tons of SIP software available. Linux users might want to try kphone (for KDE), linphone (GTK) or ekiga (former GnomeMeeting, Gnome). All of which should be included in your favourite Linux distribution (okay, maybe except for ekiga which has licensing issues with the OPAL library)

Windows users might want to check out (I havn't tried it myself) Gizmo. I bet there is OSX software, too. Tons.

[category: /en/linux | Permalink]

Sun, 02 Apr 2006

Pure Nerd

I scored "pure nerd" (69% Nerd, 17% Geek, 17% Dork) in the Nerd, Geek or Dork Test.

Probably because I barely know anything about Star Trek and Star Wars (I just recently saw Star Wars Episode I for the first time, on free TV, and I have seen at most 2 of the Star Trek movies, if any). Or any other movie or TV series. Yeah, I just don't qualify as Geek.

And I also just don't qualify as Dork, going dancing to four different kinds last week, with four different girls I do not date. I definitely spend too much time with a large group of friends to qualify as Dork.

The few geek/dork points I "earned" are probably due to my current interest in Swing ("old aspect of popular culture/nostalgia item")...

Guess I'm actually happy with the "pure nerd" judgement of that test. ;-)

[category: /en | Permalink]

Read Feeders

... or feed readers, whatever.

I'm currently using Liferea, and I've previously been using Straw for a long time.

While both are okay, I consider liferea a bit more polished than straw (and it definitely has some functions like Extensions (aka filters) I really like. For example Heise only has a rather crippled feed (which doesn't even contain the teaser part of the article), so I grab the front page and convert it to a feed myself. And liferea allows you to group feeds together into one folder and read them like they were one feed. Very nice if you have a couple of comic strips which are each updated once a day, saves a couple of clicks.

Straw also didn't have proper threading IMHO, so every now and then it was unresponsive while updating the feeds, especially at startup.

However, straw at least did some caching of "attachments", which is very nice when you're using it to e.g. read some comic strips via RSS. Liferea doesn't cache any images, and this totally sucks. For example the Technorati icon it has for each entry is loaded again and again (or at least it always takes a second to be drawn... Oh, and depending on the rendering engine you use in liferea (gtkhtml or mozilla, I'd recommend the first) some keys may or may not function.

Oh, and please don't suggest I try "blam". From what I've read it's rather minimalistic so far, and I don't like C#/Mono stuff.

[category: /en | Permalink]
Menu
[planet.debian]
[planet.xmlhack]
[planet SELinux]
[munichblogs]
[email]
[RSS 2 feed]
[English RSS 2]
Categories
< April 2006 >
SuMoTuWeThFrSa
       1
2 3 4 5 6 7 8
9101112131415
16171819202122
23242526272829
30      
Archives
2010-Mar
2010-Feb
2010-Jan
2009-Dec
2009-Nov
2009-Oct
2009-Sep
2009-Aug
2009-Jul
2009-Jun
2009-May
2009-Apr
2009-Mar
2009-Feb
2009-Jan
2008-Dec
2008-Nov
2008-Oct
2008-Sep
2008-Aug
2008-Jul
2008-May
2008-Apr
2008-Mar
2008-Feb
2008-Jan
2007-Dec
2007-Nov
2007-Oct
2007-Sep
2007-Aug
2007-Jul
2007-Jun
2007-May
2007-Apr
2007-Mar
2007-Feb
2007-Jan
2006-Dec
2006-Nov
2006-Oct
2006-Sep
2006-Aug
2006-Jul
2006-Jun
2006-May
2006-Apr
2006-Mar
2006-Feb
2006-Jan
2005-Dec
2005-Nov
2005-Oct
2005-Sep
2005-Aug
2005-Jul
2005-Jun
2005-May
2005-Apr
2005-Mar
2005-Feb
2005-Jan
2004-Dec
2004-Nov
2004-Oct
2004-Sep
2004-Aug
2004-Jul
Other links:
Swing and the City - Lindy Hop in Munich