Why Ralph Nader is special

I recently watched the interview with Ralph Nader at Google and I have to say I was impressed. Not so well known in Europe, Ralph Nader is a political activist with an unbreakable optimism to change the United States in a country which it could be. So listen to his speech and admire how he keeps up his spirit in a country with one party in two flavors and a war criminal leading for two administrations …

Why it is hard to find good Software Developers

I am currently reading Gunter Dueck’s newest book and I found a reasonable explanation why it is currently so hard to find good Software Developers: he describes a interesting article by George A. Akerlof, The Market for “Lemons” Quality Uncertainty and the Market Mechanism, which simplified tells us why asymmetrically information can destroy a market. So my thoughts here are that this is maybe a reason why it is currently very hard to find good people: most companies have no knowledge about how to distinguish between different qualities of work and why it can make sometimes more impact as “process re-engineering”. For this reason, they do not know how they can evaluate the market and they expected on the over side that a lot of “lemons” are there, mostly they compare by price. The article tells us that in this situation the market loose the really valuable people, because they either have to sell them self on same low level or they have to leave the market at all (and become managers, consultants or freelancers).
May be this thought is a bit far fetched but it is definitely the best explanation I’ve found so far because the currently the market for above sub-standard Software Developers is in a imbalance.

Singularity

These days a lot happens in the field of the Microsoft Research Project Singularity: the source is finally available from Codeplex! Why is this project exciting? It is a research playground to test ideas such as using virtual machines like the CLR on the level normally occupied by C or assembler (hey, device drivers in C# are definetly more readable). Also a lot of concepts such as contracts are inherited from Spec# and used for guarding most system services. Because until now only interviews take place (the last one on Software Engineering Radio with Markus Völter and Galen Hunt), so look at actual working code is amazing.
I’m sure anyone who is interested in novel operating system ideas and want not explore something like Minix should download the source. And I’m sure, also any other developer will get some new ideas from the source.

A great build server

For efficient software development you need a reliable and very flexible Continuous Integration server. Most people know CruiseControl(.Net) but everyone who used it knows it is very flexible but has it’s limitations and well, it has a bit “uncool” fronted. After searching for a new one I tried out Jetbrains TeamCity once again. The first version had not provided enough new features to make a switch, but the current version 3.0 (and upcoming 3.1) has features not easily found elsewhere:

  • The concept of build agents: you can install small Java based build agents on various platform (in my case a x64 Windows, a x64 Linux and a IA64 Linux based server), all managed by a single build server. Checkout can take place on the server or on any agent host if SVN is installed there.
  • Remote builds: any user can trigger a remote build from his workstation without commit his code to SVN.
  • Targets ANT, Maven2, NAnt, MSBuild, JUnit, TestNG, NUnit, Visual Studio 2003-2008, IntelliJ projects and simple shell scripts.
  • The Web GUI is cool and workable (as well as the integration in Eclipse, Visual Studio or the Tray).
  • Can integrate third party reports and integrate with any build script.
  • And the professional version is free ;-)

So give TeamCity a try if the professional version is enough for your purpose. It solves a lot of problems very elegant and you definitely need less time to manage it.

Contribute to a book

O’Reilly has started their first trial for a open book content contribution project. Because it is about software engineering I think most people working in this very sophisticated and world changing domain have a strong opinion to some points. It will also be interesting how well this works for O’Reilly. The concept was and is used for a lot of smaller book projects but I think O’Reilly ist the first big commercial publisher who is using this technique.

Stop Blair !

Maybe it doesn’t help much but one of the worst things which could happen to Europe is to have Tony Blair in any official office. So please sign this petition!

The “emotional center” of a nation

The Technology Review “You Don’t Understand Your Audience” article by John Hockenberry is a well told story how the broadcasting networks in the United States, especially NBC, have changed their style of presenting news after 9/11 to the worse. Not the truth or the facts are the main theme, now the “emotional center” of the nation has to be supported, good journalism does not matter any more.
This article is a good example how traditional media have changed and why the world now is more attracted by YouType, MySpace and Facebook. Good mainstream journalism seems to be (mostly) dead, at least at the broadcasting networks.

Three weeks with Vista x64

Since three weeks I using Vista x64 on my workstation and my overall impression is positive. For one thing, the transformation was without problems, all my hardware devices have stable x64 drivers, the main obstacle was to install the new version without reactivation. But there is a small tool, ARBbeta3, which can safe existing activation credentials and restore them on the same Vista edition. More interesting is that there are less 64 bit versions of various tools available as I thought. Most 32 bit software works without problem but it would be nice to have a text editor with 64 bit support or at least Eclipse in a working version (at least Eclipse will be available with the version 3.4). Dot.Net was no problem, all though Visual Studio lost the “Edit and Continue” capability. Another sad thing is that Open Office has no 64 bit version as well as that all browser have to work with 32 bit because nearly no plug in is available for this platform. This is also true for Java, which has no 64 bit client runtime available.
I’ve used Ubuntu as 64 bit version for a longer time and in general Vista has a far better support of hardware and a flawless integration of older software.
I also took by backup now more serious and bought a external RAID, a Synology DiskStation 207+, and using Acronis TrueImage for full system backups. Both I can highly recommend.

Exploit easily your cores

Microsoft has released it’s Parallel Extensions to the .NET Framework 3.5 as CTP (you can found more about it on Joe Duffy’s Blog). The library provides some interesting features: one is a easy way to execute LINQ queries in parallel and simple loops. The other thing is that a simple to use Task execution library which, and this is the most interesting part, is not build up on the existing ThreadPool class instead a new Scheduler based on “Work-Stealing” is realized. Why is that important? Normally you use threads which have, although not so much, some overhead in creation and management. This plays no role for long running tasks but it is certainly not very effective for very small tasks as they exist if you want, as example, extend a sorting algorithm. On the other side you have often to sync the work of some parallel task so you use resettable events, in C#, and wait for them. The problem is that they are not cheap because they are using actively system resources, e.g. handles, which are somehow limited. The new library does not need event for this job, so the only resources used are the threads you assign to the TaskManager class. This is certainly not a production ready library but a very interesting one because it makes development of effective multi-core aware data structures and algorithms very easy. The Java world has already for some years a library like this: Doug Lea’s Concurrency Library has a Fork/Join framework which is also based on a “Work-Stealing” scheduler but I doubt a lot of people knew about it. The framework will be part of Java 7 which, sorry to say, will not be available until 2009.

A comprehensive overview of useful data mining algorithm

The book Programming Collective Intelligence from Toby Segaran is a practical useful guide through the most common data mining, more exact classification, algorithms. The book covers the traditional algorithms as decision trees, naive Bayesian classifier, neural networks, clustering and not so common ones as support-vector machines  and non-negative matrix factorization. The last one was new for me. The first paper seems not to have surfaced before 2000 so it is relatively new technique and has shown very good results in the case of feature extraction of large numerical spaces. Also optimizing functions like simulated annealing and genetic algorithm are mentioned. Interestingly, there is also a small example for genetic programming.
All algorithms are explained with examples and small programs in Python. The only thing I’ve missed is a mathematical representation in addition to the explanation itself, but at least all utility functions are explained more formal in the appendix.