Twitter finally kills URL-shortening (almost)

I just got an automated email from Twitter announcing some changes. One of them seem to be that even they have realized how absolutely pointless URL-shortening is, and what they are doing about it.

From email:

In the coming weeks, we will be expanding the roll-out of our link wrapping service, which wraps links in Tweets with a new, simplified link.

If you can't read, that is English for "Goodbye and it's URL-shortening brothers. We'll be handling this on our own now, and you have no market".

[quote]What does this mean for me?


Setting up a Linux UPnP router - Part 2

So in part 1 of this series I covered some of the things I needed to do to get a Linux-only routing solution with a bridged DSL-modem and no double-NAT. This hardly qualifies as a UPnP solution in itself, but it is a prerequisite for being able to run a UPnP daemon.

In this part I will cover the parts about setting up and configuring the UPnP service itself.

To recap: This is done a on Ubuntu Server 8.10 (Hardy) installation already configured to handle routing and firewalling. Unfortunately the Ubuntu developers somehow forgot to add some of the needed software to the Hardy software repository. This makes the job a little more tedious, but still simple enough to be worthwhile the effort.


Setting up a Linux UPnP router - Part 1

For the last few weeks, I've been hammered with "Dude, you got to get Gears of War 2!". And when I got it, the first thing I noticed was that the Xbox Live and the 360 wasn't too happy about my "strict NAT". Time for some networking mess!

Implementing proper port-forwarding according to Microsoft specs didn't do much good. Obviously not optimal, and trying to host network games, this turned out to be a show-stopper. No workie.

Basically, what I needed to do was the following:

  • Bridge the DSL-modem/router to avoid double-NATing.
  • Reconfigure my Linux-routing scripts to implement a proper firewalling


Database logging: A tiny experiment with IIS7-extensibility

Having recently upgraded to Windows Server 2008 to be able to fool around with IIS7, my main argument was the improved extensibility and ability to inject .NET-code into the IIS-pipeline. Today I gave it a try.

Objective? Get IIS7 to log all requests to a database of my choice. While the regular log-files can provide all the info I need, searching them manually for specific information is just hopeless. Setting up a SSIS-job to import the logs would probably also work, but it would involve external agents polling information, not IIS pushing it.


Pitfalls when programming MOSS 2007

Programming MOSS can be painful and tedious. It really can.

I'm not talking about the feature-files, element-files or all those other manifest-files you need to make and maintain. I'm not talking about the endless directory-structures which you have to set up exactly correct.

I am talking about the pitfalls when working with Sharepoint programatically.


We have CAML and God knows writing CAML makes one long for any other way to process data, including using VBScript to iterate multi-dimensional arrays.


ADSL-optimizing trough severe network reconfiguration

Believe it or not, but these pages are hosted on a server hosting over 10 websites and a ADSL-link with only 400kbps upstream. Pretty weak stuff.

Granted, I remove most of the major load from my link by hosting static, bandwidth consuming stuff on a 100mbps offsite server. But still: 400kbps doesn't leave you much to fool around with when you include applications like Bittorrent.

In essence I capped my webserver at 200kbps and I capped Bittorrent at 200kbps to make sure that one service didn't consume the bandwidth needed for the other service to function properly. The net result was that for most of the time I could only utilize 50% of my already shitty connection. Not optiomal.


For those using the RSS feed

Before going to Japan, I quickly setup the new general-purpose blog site just to be able to keep people up to date with what i was doing at any given time. For the time being I also redirected the old RSS-Feed for this site to the new one.

I've now removed the redirection, so if you want to keep up to date on the non-technical posts I make, I suggest you go to and add the new feed there.

This site will from now on be reserved for all the technical posts I decide to make.

MSDN and accessability

Being a MCT pretty much involves staying up to date. Depending on how much stuff you otherwise have to do at work, this can easily turn into a big pile of TODO which because of dependencies and hiarchy just snow-balls itself into a huge mess.

Given Microsoft's release of Windows Vista with .NET 3.0 and all that involves, the upcoming release of .NET 3.0 with actual 3.0 languages (.NET 3.5), a flourishing set of Visual Studio and SQL Server add-ons, AJAX components and other handy libraries, you can pretty much say my snowball has been heading towards avalanche-dimensions.


New servers, some (useful) fun with Linux and a free wireless access-point

Right. I've setup my new server. Almost everything worked out, but I managed to lose the private key for my SSL-certificate in the process, so no more https://. Oh well.

In the process I freed my old Pentium 3 which was used as my old main windows server. Now that I finally had a dedicated box to fool around with I did just that. My project? Manage to setup something to use my wireless PCI-card and act as a wireless access-point. In the process migrate my old virtual Linux-setup to a dedicated machine, so I don't have to reboot my Linux-machines whenever Windows update hits my main server.


Regular voes

When working as a IT-consultant and a developer you are often called out to check out or fix things for less capable clients. Sometimes this involves watching pretty ugly things.

Not ugly as in ugly people, but as in mind-numbing application-design, ugly code, horrid abuse of APIs and generally 30 year old principles applied to modern technology where these decades-old concerns shouldn't even be an issue. You see stuff you as a professional developer find revolting. Ugly things.


About the blog

In this blog, I will try to post mostly technical material. The old stuff is all here too, so you might find random rants and postings, but from now on all new posts will be technical.

For those less interested in my professional life, I post all the silly posts at

Misc stuff