How to sell a car

Mission accomplished. I successfully talked a co-worker, who needed to buy a new car, into buying a gadget-packed BMW 1 series.

He calls it his “cluster on 4 wheels” – because obviously there is some processing “horse-power” in this machine :-)

img_7539s

May he always have a safe ride!

Source 1: http://blog.ahzf.de/index.php/2009/09/21/mein-cluster-hat-vier-rader/

APC PowerChute Business Edition and VMware Server…

I’ve run into several problems while trying to install the current 8.1 version of the APC PowerChute Business Edition.

Basically I get this error message when I am trying to install it:

powerchute-novmware

So you can simply not install this version of PowerChute on this machine – OR you could go here and follow the link to the Download of the 8.0 version of the software. This will start the setup with this screen:

powerchute-novmware2

Great! Just get the “old” version and use it.

Source 1: APC PowerChute and VMWare

Welcome to the world of tomorrow!

So here we are on a new blog engine. It took me the better part of two days to do the Migration of 2,869 posts and 2,732 comments, a lot of pictures and movie files.

I will write an article on this but for now only two captures images from the migration:

php-xpath
yeah PHP rocks!

regex-magic 
had to do some regex action to do the url rewrites

maybe I should…

…switch this website to another weblog software in the future. The dasBlog development isn’t exactly what I would call fast-paced. It even seems that there was no movement at all for the last year at all regarding new features.

I took a short look at a current WordPress installation we did for our Developer Website at sones – and I have to admit that feature-wise this WordPress is way beyond anything I could achieve in dasBlog anytime soon.

sonesdev 

Additionally the fact that the skin of this site seems to be broken (especially for older browsers) I would have to do a skin-redesign – turns out that this is way easier in WordPress than it is in dasBlog.

In case of low performance: check your systems latency

I ran into some strange problems with a notebook that leaded to sound drop-outs or things like sluggish UI and HDD performance. So I tried almost everything troubleshootig the problem. That worked for some problems but there are occasions when I want to have a more systematic approach to those kinds of hardware / driver related problems.

One tool that can help to find hardware / driver problems is the DPC Latency Checker. This tool measures and displays the latency of your system. All you have to do is watch as the measurements scroll by and remove / disable one device after another from your machine. As soon as the latency turns green again there’s a high probability that the device you removed last has a problem of some kind.

dpclatency

On my machine everything is in the greens now – after some BIOS and driver updates. If your system has some issues you would see something like that:

cdrom 
(courtesy of Gnawgnu’s Realm)

Source 1: http://www.thesycon.de/deu/latency_check.shtml
Source 2: http://gnawgnu.blogspot.com/2009/01/dell-latitude-e6400-sound-problem-fixed.html

Useful tools: OnTopReplica

Normally I am using a notebook and a 24” Widescreen TFT as a Dual-Monitor solution. In fact I am mostly using the 24” TFT for work and the notebook 14” TFT for all the things that don’t need to be in focus right now like Instant Messengers.

Now in those few cases when a video needs to be played I want it on the main monitor but I want it to take as little of space as possible. And I want it On Top of everything else… maybe sometimes I even want to control it’s opacity a bit…

Now there’s this cool tool called “OnTopReplica” – It’s available for free on Codeplex and works out of the box without installation.

After you start it you’ll end with a small glas window where you can right-click to get a menu. You choose a Window which needs to be replaces – for example the YouTube Browser Window. After that you can even control which region of this Window should be displayed. You can resize, move and of course control the opacity of this window.

ontopreplica 

It’s also great for presentations because it allows you to simply resize any window you like. It will resize it and while it does that the window always is “live” – so everything you’re doing in the original window will be displayed in the replica.

ontopreplica2 

Source: http://ontopreplica.codeplex.com/

Up-Grayed

Last week I upgraded my iPod touch to an iPhone… well actually I got a new iPhone 3GS aside the iPod.

IMG_7392

It’s a fast device – even noticeably faster than the 2nd gen iPod Touch. It’s got almost the same battery life like the touch for me and it was a plug-and-play experience to use it the first time.

What I wasn’t expecting is that the smooth experience suddenly came to a stop when I tried to plug the iPhone into my car – just where the iPod touch did the job for about 5 months (including that the touch got charged by the car along the way).

With the iPhone I got two error messages simultaneously:

IMG_0010

“Charging not supported by this accessory”

IMG_0009

“This accessory is not supported by iPhone”

Damn you Apple! What’s the problem? There’s a standard USB port which powered 2,5 inch hard disk drives previously and the iPhone just states that it cannot be charged with this accessory (e.g. the car).

On the other hand everything else just works as it was working with the iPod. I can browse my music library on the iDrive I can listen to music – everything works, beside those two error messages and the not-charging iPhone. Thank you Apple B-) Maybe I need to up-grayed my car too?

massive parallel computing with FPGAs

Today we had a great meeting with SciEngines. These guys offer a great platform for everything that needs massive parallelism and IO bandwidth scalability. They even brought a small copacobana cluster to our headquater.

IMG_0045

IMG_0044

Source 1: http://www.sciengines.com
Source 2: http://www.sciengines.com/products/computers-and-clusters/copacobana-s3-1000.html

Killer .NET 4 feature: Memory Mapped files

“So what is it? A memory mapped file allows you to reserve a region of address space and commit physical storage to a region (hmmm, sounds like virtual memory, isn’t it?) but the main difference is that the physical storage comes from a file that is already on the disk instead of the memory manager. I will say that it has two main purposes:

  • It is ideal to access a data file on disk without performing file I/O operations and from buffering the file’s content. This works great when you deal with large data files.
  • You can use memory mapped files to allow multiple processes running on the same machine to share data with each other.“

OMG! You can even specifiy views on a memory mapped file… from different processes… .NET 4 FTW!

Source: http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx

there goes another Dell Latitude D630

I always asked myself when this particular notebook will fail. Almost everybody I know who got this notebook got his mainboard replaced in the last year. Now it seems that it’s time for my Latitude to get a new set of chips.

It crashed while I was using it and since that it only boots up like this:

IMG_4432

Oh I looked up which graphic chip that actually is. It’s a NVidia NVS135 chip – not like I thought the NVS160 which is embedded in my current generation latitude. Thank god I got 3 year repair and replacement….

the .NET Framework sourcecode release and how to unpack it…

It’s great to finally have the .NET sourcecode for debugging purposes – inconveniently it’s in a format you might have your difficulties just browsing along. A little tool is here to help!

After you installed, let’s say the WCF sourcecode and debug symbols you get a directory structure similar to this:

wcfsource

This source.zip.tmp file holds the whole sourcecode as one big package. It can’t be unpacked – even one would suggest that by just looking at that .zip ending in the name of the file.

Instead this is a plain-text file of a certain yet simple format. I wrote me a little tool to unpack this file into it’s original files and directories.

You can get the little tool, including sourcecode, here: UnpackMSSources.zip

To start the magic, you would like to go to the command line and start the tool with two parameters. Parameter 1 is the path and filename of the source.zip.tmp file. Parameter 2 is the part of the Path that needs to be cut-off. For the WCF Sources it’s “/DEVDIV/depot/DevDiv/releases/Orcas/SP/ndp/cdf/src/” for example.

The tool will then start to whirl through the file and extract all the files it founds into directories it’s creating along the way. After some seconds you would end with a directory tree like this:

unpacked

Have fun!

Source 1: http://referencesource.microsoft.com/netframework.aspx
Source 2: http://www.schrankmonster.de/content/binary/UnpackMSSources.zip

Plain-Text Username Password Authentification with WCF

If you got it, it’s easy. If you’re starting from scratch it ain’t as easy. We were in need of such a Username+Password Authentification so I started googling around.

I found several articles but had to mash it all together in a trial-and-error session. Now that I am enlightened I want to share my knowledge:

Step 1: Implement an UserNamePasswordValidator class and override the Validate method.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IdentityModel.Tokens;
using System.IdentityModel.Selectors;

namespace sones.Pandora.Database.Hosting
{
    public class UserNamePasswordAuthentification: UserNamePasswordValidator
    {

        public override void Validate(string userName, string password)
        {
            if ((userName != "Username") || (password != "Password"))
            {
                throw new SecurityTokenException("Validation Failed!");
            }
        }
    }
}

Step 2: Edit the App.config file to enable the previously implemented UsernamePasswordValidator.

    <bindings>
      <basicHttpBinding>
        <binding name="CustomAuthentication">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic" proxyCredentialType="Basic"/>
          security>
        binding>
      basicHttpBinding>
    bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SecurityBehavior">
          <serviceCredentials>
            <userNameAuthentication
            userNamePasswordValidationMode="Custom"
            customUserNamePasswordValidatorType="sones.Pandora.Database.Hosting.UserNamePasswordAuthentification, PandoraDB_WebServiceHost_UsernamePasswordAuth"/>
          serviceCredentials>
        behavior>
      serviceBehaviors>
    behaviors>
    <services>
      <service behaviorConfiguration="SecurityBehavior" name="sones.Pandora.Database.Hosting.PandoraDatabaseHost">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="CustomAuthentication"
          name="ep1" contract="sones.Pandora.Database.Hosting.IPandoraDatabaseHost" />
      service>
    services>

In this example the ServiceHost will use no server SSL certificate and therefor allow normal http access instead of just using https ssl. You can configure that behavior with the <security mode=”TransportCredentialOnly”> line. Just change there and define an apropriate certificate and you’re good to go with https / ssl.

Zed-4

Uhh what a day! We had the opportunity to test drive a brand new BMW Z4 sDrive23i. This straight-6 engine is just phenomenal. Even this smallest 204 hp version feels and sounds like a roadster should sound and feel.

We almost emptied a complete fuel tank on about than 350 km of road today – which means we had that much fun. Maybe when we buy one in the future it should have a bit more horsepower.

We even made some pictures:

IMG_6832

IMG_6850

IMG_6874

thanks to our dealership: BMW Autohaus Poerlitz

Allowing Web Service host to run locally without Administrator rights

If you’re writing WCF Web Services you maybe came to the point when you needed Administrator rights to start the Web ServiceHost. As a matter of fact the only thing you need is the right to use a that URL space.

So for  a WCF Web Service running on http://localhost:80/TestService/Ep2 you would use the netsh command line tool to set the correct rights.

Step 1: Start an Administrator-Commandline

Step 2: run “netsh http add urlacl url=http://+80/TestService/Ep2 user=SONES\bietiekay

(SONES\bietiekay = the Domain+User to grant the right)

netsh

Hail Eris! All Hail Discordia!

pope

I was in desperate need for an DDate equivalent running on Windows. DDate is an unix implementaion of date accoridng to the erisian calendar described in the principia discordia.

I only found some C Implementations. And since it’s fun to do I ported the original Discordian Date C code to C#.

You can download the C# sourcecode, licensed under CC-BY-NC here.

I also created a web page which displays the current discordian date and offers you to convert any gregorian date into discordian date representation.

This page can be accesses here. You can call another page with parameters and you only will get the ddate output back:

for example: http://ddate.schrankmonster.de/DiscordianDate.aspx?year=2009&month=6&day=9

Source 1: http://ddate.schrankmonster.de/
Source 2: http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip

farewell Songbird

sonb

After not less than 3 and a half hour Songbird finished with importing the iTunes library I am using for about 6 years.

The first impression is: Cool, it’s got plugins!

The second impression is: Booh, it wants to restart (while stopping the music) to install!

It’s not faster than iTunes. And this is a sad thing, because the only thing I hoped it would be was faster. It’s not – the UI it’s as fast and responsive as iTunes’ UI – at best. With just a few clicks the whole songbird window went into sleep mode and the well known beachball came into the play.

Even worse: for some strange reason Songbird consumes considerably more CPU time while just sitting there and playing an MP3 than iTunes does:

songbirdcpu

18,7% CPU load used by songbird just by playing an mp3 (no filtering, no visualisation, no nothing)

itunescpu

2,3% CPU load for iTunes while doing exactly the same. Even the same mp3 was played.

iTunes even takes less memory… oh dear: A long way to go for the Songbird team.

taking Songbird for a spin (again)

Since my last Songbird experiences were not that great I thought it would be a great idea to take the newly released 1.2 version of Songbird for a spin.

It’s said that the new version is faster and more stable. I installed 3 hours ago and I still cannot use it since it’s syncing with iTunes ever since.

songbird

More on that topic when songbird is ready….

Source: http://getsongbird.com/

Google Copy-Wave

Oh dear. Another hyped protocol/platform from Google… oh wait. It’s not from Google. It’ all started in Xerox PARC…

There are several papers that describe what Google now claims to have developed…

copywave
left: Xerox PARC Paper; right: Google Wave

Conclusion: Go and read old Papers. As it turns out almost all newly hyped things have been described in papers from years ago.

Source 1: http://www.waveprotocol.org/whitepapers/operational-transform
Source 2: http://doi.acm.org/10.1145/215585.215706

getting System.ServiceModel.AddressAccessDeniedException in automated WCF Tests

We’re currently running several build processes. So each time someone checks new code in one of the build machines gets the whole package and builds it, runs tests on it and stores the result of this whole process on the Team Foundation Server. Great stuff so far.

Until you start to do things like automated WCF Testing. We’re using the selfhosting capabilities of the WCF to start a ServiceHost and then run tests against it. This works great locally. It does not on the build machines. Even if you promote the Build-Service User to Administrator you won’t get the love.

The error you might get would look something like this:

Capture

The exception contains an URL which tells you to add the Service URL to the machines URL Access Control List. On Windows XP and 2003 you have to install the Windows Support Tools and use the httpcfg command. On Windows Vista and 2008 you should use the already installed netsh commandline tool.

Since we need to get this to work on all current and future build servers I decided to add the netsh call to the build script, which looks like this:

” border=”0″ alt=”” src=”http://www.schrankmonster.de/content/binary/WindowsLiveWriter/get.AddressAccessDeniedExceptioninautoma_9859/Capture2_thumb.png” width=”400″ height=”109″ />

Add this Target before any tests in the .proj file and you’re set.

Source 1: http://go.microsoft.com/fwlink/?LinkId=70353

small and reliable SFTP server for Windows

I had to transfer some data the last days and I wanted to do it fast, encrypted and using only one tcp port. SFTP is one of those protocols that come in handy in these cases.

Since the machine that would host the SFTP service is a Windows machine I reached out to find a free, reliable and easy to install and use SFTP Server.

Bild 1

I found Core FTP mini-sftp-server. It’s a small download of just one .exe file. When you start it up it’ll show the dialog above. You can configure username, password, port and path. Click “Start” and off you go. Works as advertised.

Source: http://www.coreftp.com/server/