Windows 2008 Server Musings

By |May 28th, 2008

I am currently coordinating an effort building a reference architecture with Microsoft Sharepoint 2007, diving into a rich content model and service-enabling the front-end with the overall goal to use it as a “real” web content management. Our goal was to stick with the Microsoft toolstack (simply because we have free access to all products at work with Razorfish now being a Microsoft-owned company)

Our first idea was to start prototyping on the new Windows 2008 Server.
32 vs 64 Bit
Our initial gut instinct was to stick with what’s working, plus we where only installing on PCs with 4 Gigs of RAM. After the installation I tried to get Hyper-V (built-in virtualization) to work, however, Hyper-V is only supported on the 64 bit version of Windows. I then tried to install Virtual PC 2007 — it complained that the version of Windows I was using wasn’t compatible and that I at least needed to install IIS 6 compatibility modules.

We decided to re-install with the 64 bit version of Windows Server.
As mentioned, Hyper-V requires 64 bit Windows. After installing all the optional patches and rebooting twice from Windows Update Hyper-V suddenly appeared. I proceeded to install a 64 bit Windows 2008 guest. Once it was installed and booted up I noticed it had no network access. Strange — Hyper-V was configured with a virtual adapter. As it turns out, the drivers for the virtual network adapter are part of the Windows Update patches for Server 2008 — so the guest couldn’t see the network without the updates and of course couldn’t download the updates without the network adapter — if Hyper-V wasn’t technically a CTP I’d be really pissed now. Luckily one can configure a “legacy network […]

Hair & Nail Deli Salad *yum*

By |April 12th, 2008

I walk by this every day, but I finally snapped a picture. Feel like eating some hair and nail in your salad?

Virtual Box

By |April 1st, 2008

On the note of awesome pieces of software. My work laptop died on a work-from-home-day, so I “had to make due” with my home Linux server (just a dual core with 8G of RAM running CentOS 5.1/64).

After configuring what had been a headless server with a few VMWare Server virtual machines to be a full desktop environment, I decided to give Virtual Box, the open source virtualization solution from Innotek (which was just acquired by Sun) a try.
VirtualBox runs Windows, Linux, Macintosh and OpenSolaris hosts. OpenSolaris! I’ve wanted to set up a fat Solaris box at home but always shied back because of the lack of virtualization. I still won’t do it now and my little Ultra 5 will continue to collect dust in the corner. But I could!
Just download the installer (RPM in my case) from the web site and start it up. Unlike VMWare Workstation, VirtualBox runs alongside VMWare Server just fine.

Creating a new VM and installing Windows XP in it was just as easy as it is in VMWare. Installing the VirtualBox Guest Additions in the guest operating system will install the correct graphics and mouse drivers for seamless operation.

Seamless Mode
The fanciest part is the seamless mode which blends the virtual Windows instance directly into the Linux UI (it really looks just like Parallels on a Mac).

What an awesome piece of open source software. This will be my first choice from now on under Linux.


By |March 25th, 2008

I just found an excellent article on the internals of virtualization (in software, paravirtualization and hardware virtualization). Check it out on AnandTech.


Cool software

By |March 9th, 2008

Sometimes vendors/products just stand out of the crowd. My personal top 5 coolest pieces of software at the moment:

Intellij Idea for making my j2ee work efficient
Ubuntu Linux Server for just being the easiest server distro out there (this site is served by version 6.06.2)
Camtasia for making really nice webcasts
Wordpress for running my blogs and home pages (despite the fact it’s written in php)
All Atlassian products

Introducing Grails

By |March 6th, 2008

It was Tim Bray, who in his predictions for 2008 mentioned that “Rails will continue to grow at a dizzying speed, and Ruby will in consequence inevitably become one of the top two or three strategic choices for software developers”. Indeed, in my eyes the rails paradigm which blends well-known best-practice patterns such as MVC web applications with the notions of Coding by Convention and Don’t Repeat Yourself doesn’t only speed up and simplify development, but also keeps your code base clean. There are no more tedious configurations files which all repeat themselves yet have the touching fingerprint of every developer’s e. Developers can focus on the most important issue at hand: the functionality. That’s why I’ve always been a huge proponent of Ruby and Rails.

But why Ruby?
With a fairly high adoption rate for Ruby on Rails, some problems have been discussed across the internet (follow this discussion, for example):

Performance, especially in large installations
Interoperability issues with other applications / technologies
Deployment onto existing infrastructures and application servers

What other frameworks are out there that provide the same benefits? For today, let’s dive a little deeper into Grails.
The Grails project (formerly known as Groovy on Rails) started in July 2005 and the project just recently announced the long awaited 1.0 release on February 18, 2008. Grails is built on top of the J2EE stack and combines the best-of-breed tools Hibernate, the Spring Framework, Groovy Scripting, as well as support for my favorite IDE, Intellij Idea (no worries, Eclipse works too). All mature tools and languages that have been used in the Java community for a long time now. Consequently Grails provides:

Lower learning curve for J2EE developers
Easy integration points with existing and new Spring and J2EE applications
Enterprise deployment […]

Functional Language Aspects

By |March 3rd, 2008

There’s been an interesting influx of functional programming aspects into mainstream object-oriented languages such as C# and Java lately. Of course languages such as Groovy and Ruby have been featuring these language elements for years. Let’s look at a few of these features:
Closures are parameterized anonymous functions which are bound to variables and evaluated in a dynamic context. This construct is also referred to as lambda functions (e.g. C#, Ruby, Lisp). .NET introduced Lambda expressions with .NET 3.5, Java will most likely introduce them with JDK 1.7. I find them very useful, but a little hard to debug sometimes. Some examples:

{int=>int} addOne = {int x => x+1};
Func<int,int> addOne = d => d + 1;
// or
var addOne = d => d +1;
Type Inference
Let’s look at this C# example:
var x = 5;
object y = 6;
x = “foobar”; // leads to error as x’s type is int
y = “foobar”; // works just fine
The type of x is inferred upon assignment (note that C# still employs static typing, however).

Java 7 will introduce type inference as well, even though it seems to be mostly constructor type inference to simplify syntax:
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
// can be written as
Map<String, List<String>> anagrams = new HashMap<>();

Fun Links
C# is a functional language:
JDK 1.7 Features
Type Inference

Scary Landing

By |March 2nd, 2008

This is the scariest landing I’ve seen in a long time, especially since I went through a similar landing at the same airport (Hamburg) a few years ago. It’s a lot less scary when you’re in the plane..

.NET 3.5 and LINQ

By |February 26th, 2008

I had a little spare time last week and finally dug into .NET 3.5, mostly extension methods, lamda expressions, and LINQ. Pronounced LINK, it is the embedded query language in .NET 3.5. I am not going to outline what it does or how it works, there’s plenty of that on the internet, but I will continue my tradition to outline some funny annoyances :)

The nicest think IMHO about LINQ is the SQL bridge, which essentially implements a full OR-mapping framework like Hibernate in the .NET framework. Let’s dive into an example and map the following class to a database table:

public class LinqSchema
private long id;
private string uuid;
private string name;

private long id_creator = 1;

private long id_owner = 1;

private int version = 1;

private bool is_public = true;

public long Id
get { return id; }
set { id = value; […]

Lunar Eclipse

By |February 21st, 2008

There was a perfectly visible lunar eclipse last night, and for a change during normal awake times. Of course I forgot about it and didn’t look until I saw it on the 11 o’clock “news”, when I decided to bundle up and take some snapshots: