Sunday, February 18, 2007

My new Nokia N800 - arriving in 2 days

I have been using PDAs and other mobile devices of all sort for quit a while now. It has been a long way from my good old (still working) hp 200lx running MS-DOS 5.5.

My newest acquisition is is a web tablet from Nokia called N800. Unlike the other devices of the n-Series the N800 is no mobile phone but a web surfing tablet PC running Linux.

Although still sitting on my desk I was not allowed to open the box yet, because it is my birthday present (at least partly) and so I have to wait another 26 hours. ;-)

I spent most of my free time last week searching the internet, looking for good places with in-depth information about the N800. As the device is running a flavor of Linux ( and uses a variant of GTK+ and I am really looking forward to programming this nifty device.

Being a Windows Mobile user for several years now I have always been disappointed by the lack of source code compatibility to the "real" Windows versions.

There are already some very good reviews of the N800 (e.g.

Wednesday, December 27, 2006

During the last few days I completed some tutorials about 3D modelling.
One result is the following image:

Courtesy goes to Janine Pauke from

Tuesday, October 10, 2006

Windows PowerShell and WMI

I started working with PowerShell with the RC2 after spending some time with IronPython.

Most of what I know now goes to the credit of

My first real problem was to get security events out of the Windows EventLog using WMI.
Unlike regular WMI queries the Security EventLog requires the caller to have the SeSecurityPrivilege activated.

In VBScript this can be expressed on connecting to the namespace:

Set objWMIService = GetObject("winmgmts:" _& "{impersonationLevel=impersonate,(Security)}!\\" & strComputer & "\root\cimv2")

Since get-wmiobject has (at least in RC2) no parameter for either privileges or the ImpersonationLevel I found two ways around this problem:

You can manually use .NET classes from the Management Namespace .

$scope = [Management.ManagementScope]"root\cimv2"
$scope.Options.EnablePrivileges = 1
$query = [Management.ObjectQuery]"SELECT * FROM Win32_NTLogEvent WHERE Logfile='Security'"
$searcher = [Management.ManagementObjectSearcher]""
$searcher.Scope = $scope
$searcher.Query = $query
$events = $searcher.Get()

Later I found out that there is a much more convenient solution using the [WmiSearcher] object:

$searcher = [WmiSearcher]""
$searcher.Scope.Options.EnablePrivileges = 1
$searcher.Query = "SELECT * FROM Win32_NTLogEvent WHERE Logfile='Security'"
$events = $searcher.Get()


Blog reopened

Today I started blogging again after two years of absense.
Time will tell whether I keep writing or give up after a few days...