3/26/2010

Volksvertreter?

Wenn man sich die Genpolitik (auf deutscher sowie auf EU-Ebene) anschaut, und die deutsche Atompolitik, dann kann man daraus nur schließen, daß unsere Regierung alles möglich vertritt nur nicht ihr Volk, in dem eine Mehrheit gegen genmanipulierte Lebensmittel und für einen raschen Ausstieg aus der Atomkraft ist.

Da erscheint einem die FDP schon fast wieder ehrlich, da wird wenigsten öffentlich (zumindest in manchen Fällen), wen sie vertritt und warum.

3/20/2010

(Not) Applying for a Job with the EU (European Personnel Selection Office)

There is a major application round going on for jobs in the European Commission. Basically, you apply, then go through a computer-based test and finally sort of an assessment centre.

Before you apply, you can take a sample test, and it turns out to be some basic number crunching and showing that you can understand certain types of text, I’d classify them as bureaucratic/law-related texts, which I found manageable too.

Finally I decided to apply and entered their online application form. As most larger organizations they require you to enter your complete CV into their forms, no way to submit what you already prepared. While I find this annoying, I can understand why large organizations need to do this, so I proceeded …

… until I had to enter the dates for my education. I did not believe my eyes when I was not able to simply type dates into the fields; you have to click on a calendar icon, which creates a pop-up window with a monthly calendar. You cannot change the month or year via a drop-down either, you have to go back and forth using next/previous buttons! At my age, this means a lot of clicking just to enter a single date. And I would need to enter all my professional career, presumably using the same old-fashioned interface, so I am likely to miss the submission deadline by doing this.

So in the end, I was deterred enough by their online application form to not apply.

On a second thought, this may be deliberate: this way you can easily weed out the applicants who are too old, have a long professional track record or are easily deterred by stupid, repetitive tasks.

On a third thought, I could not believe they are this stupid, so I assumed that their application might just not work with FireFox, so I tried IE 8 instead. The application threw Java Script errors on every page and I did not even manage to log in using my previously created account! (yes, I did have the correct password)

On a fourth thought: bad news - they are even more stupid than I thought.

They are looking for IT professionals at the moment. I am one, but I won’t apply for the above reasons. If you are an IT professional and you are willing to take the hurdles, manage to get in, I suggest that you make it your foremost priority to make the Commission’s user interfaces more user-friendly. If this is what they use to present themselves to the outside world, I don’t even want to start thinking about what they use for their internal day-to-day work?!?

Had I delivered an application like this at any point in my career, I would have been out of a job within the next week!

P.S.: I forgot – you really want to apply? Go here: http://www.eu-careers.eu/

P.P.S.: I felt so bad about them having gotten to get the better of me, I could not stand it! So I wrote a Greasemonkey script that would enable the date field, here’s the basic script:

var inputs = document.getElementsByTagName('input');



for (var i = 0; i < inputs.length; i++)



{



    inputs[i].removeAttribute("onFocus", 0);



}




Just finished my application :-)

3/17/2010

How to Store Settings in SharePoint

When you create SharePoint solutions or features, you are likely to have to store some settings. Here's a good way to manage the settings in an encapsulated, type-safe way:

Create a class that encapsulates all the properties that comprise your setting and takes care of saving and retrieving these settings. For this example, I name this class MySettings. Here's how you would work with the class:

// load settings



MySettings settings = MySettings.Read();



// read and manupulate



string foo = settings.setting1;



settings.setting2++;



// save updated settings



settings.Save();




Below is the code for the sample class. This class saves settings at the site collection root level. You may want to change the code to store it at the web application level or the site level.









using System;



using System.Collections.Generic;



using System.Text; 



 



using Microsoft.SharePoint; 



 



using System.Web;



using System.Data; 



 



using System.IO;



using System.Xml;



using System.Xml.Serialization; 



 



public class MySettings



{



    // use a GUID to store the setting in order to avoid conflicts



    static private string mySettingsKey = "{abe971ed-d09a-4887-86fd-be7816ddebae}";



    public string setting1;



    public int setting2; 



 



    // your settings class can take almost any form, but it needs to have a constructor without any arguments



    public MySettings()



    {



        // set any default values here



        setting1 = "abc";



        setting2 = 0;



    } 



 



    public void Save()



    {



        SPWeb siteCollection = SPContext.Current.Site.RootWeb;



        siteCollection.AllowUnsafeUpdates = true;



        string xml = SerializeToXml(this);



        if (siteCollection.AllProperties.ContainsKey(mySettingsKey))



        {



            siteCollection.AllProperties.Remove(mySettingsKey);



            siteCollection.Update();



        }



        siteCollection.AllProperties.Add(mySettingsKey, xml);



        siteCollection.Update();



        siteCollection.AllowUnsafeUpdates = false;



    }



    public static MySettings Read()



    {



        MySettings retVal = new MySettings();



        SPWeb siteCollection = SPContext.Current.Site.RootWeb;



        if (siteCollection.AllProperties.ContainsKey(mySettingsKey))



        {



            string xml = siteCollection.AllProperties[mySettingsKey];



            retVal = DeserializeFromXml(xml, typeof(MySettings)) as MySettings;



        }



        return retVal;



    } 



 



    public static string SerializeToXml(Object obj)



    {



        XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());



        using (MemoryStream memoryStream = new MemoryStream())



        {



            using (XmlTextWriter xmlWriter = new XmlTextWriter(memoryStream, new UTF8Encoding(false)))



            {



                xmlSerializer.Serialize(xmlWriter, obj);



            }



            return Encoding.UTF8.GetString(memoryStream.GetBuffer());



        }



    } 



 



    public static Object DeserializeFromXml(string strXML, Type objType)



    {



        Object retVal;



        XmlSerializer xmlSerializer = new XmlSerializer(objType);



        using (MemoryStream memoryStream = new MemoryStream())



        {



            byte[] bytes = Encoding.UTF8.GetBytes(strXML);



            memoryStream.Write(bytes, 0, bytes.Length);



            memoryStream.Seek(0, SeekOrigin.Begin);



            using (XmlTextReader xmlReader = new XmlTextReader(memoryStream))



            {



                retVal = xmlSerializer.Deserialize(xmlReader);



            }



        }



        return retVal;



    }



} 


Bahnfahrer mit zwei Sitzplätzen

Man sieht das ja öfter: jemand stellt seine Tasche auf den Sitz neben sich und reagiert gereizt, wenn man sich hinsetzen möchte. Meist bekommt man den Platz dann “trotzdem”, spätestens bei der Nachfrage, ob der Fahrgast denn auch zwei Fahrkarten habe.

Gestern war das nicht so: ein Rentner erdreistete sich, zu drohen, den Schaffner zu rufen, wenn man seine Tasche wegstelle. Erstaunlicherweise haben das mindestens fünf Fahrgäste (mal mit mehr, mal mit weniger rauhen Antworten) mit sich machen lassen.

Ein dickes Lob an den Schaffner, der den alten Herrn in die Schranken wies. Doch auch das ging nicht ohne Streit ab, der Mann versuchte seine Krücken so zu stellen, daß dennoch kein Platz war.

Zuletzt meinte der Mann, er werde sich bei de Bahn über den Schaffner beschweren. Was für eine bodenlose Frechheit! Und wenn er stehen müßte, würde er wahrscheinlich darauf bestehen, daß ein jüngerer Mensch für ihn aufsteht, weil sich das “so gehört”.

Ich hoffe er beschwert sich bei der Bahn in demselben unverschämten Ton und bekommt Hausverbot. Auf solche Mitfahrer können wir gerne verzichten.

Das Ärgerlichste daran ist, daß er wohl immer noch glaubt, im Recht zu sein …

3/16/2010

Un-brick Your Logilink/Edimax Router/Access Point

I had recently uploaded a wrong firmware image to my router and bricked it completely. Fortunately, there is a workaround with the brands mentioned above:

  • get (the correct!) firmware image
  • directly connect the router to your computer
  • set your own IP address to static 192.168.2.1
  • unplug the router, press the reset button, and while keeping it pressed plug the back power in. Keep holding the reset button for another give seconds, then let go.
  • use tftp to transfer the firmware image from your computer to the router at 192.168.2.6 (it does not respond to ping, but tftp works) – make sure you transfer the image in binary mode (-i switch in Windows)
  • wait for the router to reboot
  • afterwards, the router should respond at its default address again, usually 192.168.1.2

As mentioned in a previous post, many Logilink products are equivalent to Edimax products, and the firmware that you can download from the Edimax web site is (at least im my experience) usually newer.

Schwesterwelle läßt sich “den Schneid nicht abkaufen”

Tatsächlich? Auch nicht gegen eine Spende an die FDP?

Ansonsten kann man Herrn Westerwelle schon so einiges abkaufen, z. B. Steuersenkungen, sonstige Clientelpolitik, Reisen, …

Aber eines kann ich ihm tatsächlich nicht abkaufen: daß er unbestechlich ist.

 

Westerwelle sagte kürzlich, die “Anschuldigungen schaden dem internationalen Ansehen des Landes”. Sorry Herr Westerwelle, es sind nicht die “Anschuldigungen”, sondern Ihr Benehmen. Aber welcher Politiker würde sich schon mal an die eigene Nase fassen …

3/15/2010

Männerquote!

In Finnland ist die Frauenquote in der Führungsebene bereits Gesetz. In Deutschland ist das noch freiwillig.

Wenn aber ein Unternehmen wie die Telekom festlegt, daß ein Drittel der Führungspositionen mit Frauen besetzt werden muß, würde da nicht aus dem Gleichbehandlungsgesetz folgen, daß für ein Drittel die Männerquote gelten muß? Heißt also: ein Drittel Frauen und ein Drittel Männer - und das restliche Drittel nach Befähigung statt nach Geschlecht!

A propos Befähigung: finnische Firmen stehen derzeit vor dem Problem, daß die Frauenquote zu einem meßbar schlechteren Management führte. Dies liegt jedoch nicht an einer grundsätzlich niedrigeren Intelligenz der Fauen, sondern einfach nur daran, daß der weibliche Führungsnachwuchs bisher nicht gefördert wurde. Es wird wohl noch ein paar Jahre dauern, bevor die eigentlich gute Idee der Gesetzgeber Früchte tragen kann – zumindest bei den Firmen, die bis dahin noch übrig sind :-)

Wie auch immer: das Gleichbehandlungsgesetz in Deutschland sollte eigentlich dazu führen, daß es für jede Frauenquote auch eine Männerquote gibt.

Schwesterwelle – Amigo-Welle

Zur angeblichen “Kampagne” gegen Herrn Westerwelle gibt es nicht viel zu sagen: wenn hier einer eine Kampagne führt, dann Herr Westerwelle gegen sich selbst. Da muß sich niemand extra bemühen, das schafft er ganz alleine.

3/07/2010

Junge Politiker sind eben doch nicht anders – schade!

Da freute man sich schon auf das frische Blut und die frischen Gedanken, die mit der Ernennung von Frau Schröder (aka Köhler) in das Familienministerium einzuiehen. Aber nun zeigt sich, daß man zwar nicht alt sein muß, um zum Minister gekürt zu werden, es geht offensichtlich nur darum, daß man Visionen hat – und zwar im Sinne Helmut Schmidts, der sagte, wer Visionen hat, der solle zum Arzt gehen.

Auch Frau Köhler Realitätssinn legt nahe, daß sie sich einmal untersuchen lassen sollte: sie schlägt doch allen Ernstes vor, daß Familienangehörige vom Arbeitgeber für 2 Jahre bei 75% Gehalt freigestellt werden sollten, wenn sie einen Pflegefall in der Familie haben. Sehr kurz gedacht, Frau Köhler:

  • Wer sagt denn, daß der Pflegefall nach 2 Jahren nicht mehr existiert? Oder bekommt er dann den Gnadenschuß?
  • Der Arbeitgeber soll also 75% des Gehalts zahlen während er gleichzeitig nochmals 100% Gehalt an eine Vertretung zahlt, die er hoffentlich zeitnah findet?
  • Wer garantiert dem Arbeitgeber denn die Rückzahlung des “Vorschusses”, der ja vorgesehen ist, indem der Arbeitnehmer auch nur 75% des Gahalts bezieht, wenn er wieder ins Berufsleben zurückkehrt?
  • Und wer sagt denn, daß der Arbeitnehmer zum selben Arbeitgeber zurückkehrt?
  • Wußten Sie, daß nicht jeder Arbeitnehmer mit 75% des Gehalts auskommen kann? Ach, Sie können das, Frau Schröder? Na dann ist’s ja gut!

Das Einzige, was an der “Idee” stimmt, ist, daß sie den Staat nicht belasten würde. Nun ja, jedenfalls nicht direkt. Aber dann eben doch:

  • Die zu bildenden Rückstellungen der Unternehmen verringern die Steuereinnahmen
  • Kleinere Unternehmen können an der Soppelbelastung zu Grunde gehen, das verringert ebenfalls die Steuereinnahmen
  • Die geringen Gehälter werden mehr Arbeitnehmer zu Sozialfällen machen
  • Nach den 2 Jahren werden diejenigen, die es noch nicht sind, und deren Familienangehörige immer noch zu pflegen sind, ebenfalls zum Sozialfall

Tja Frau Schröder, frische Gedanken klingen anders. Es ist nötig, zu denken, bevor man spricht, um das Gesagte auch als “Gedanken” ausgeben zu können.

Aber, um ein für Die positives Fazit zum Schluß zu ziehen: sie haben sich Ihrer Umgebung bestens angepaßt! Ihre Ernennung ist nun doch wieder keine so große Überraschung. Schade eigentlich!

Does the EU Government Still Represent Their People?

Against the will of the majority of Europeans, the EU has recently approved a genetically modified potato.

It seems that the EU commission responsible for this is a better representative for the pharmaceutical conglomerates than for the people of the EU. By the way, this was the same commission that approved the vaccine against the swine flu that had not been tested according to EU standards.

This makes you wonder who they get paid by …

3/06/2010

Chumby and UPnP: Sorry!

A few of my friends asked about this, so it may be interesting (and partly disappointing) for you as well: the Chumby (One or Classic, does not matter) does not (yet) support UPnP music sources.

According to their blog, it is under development, but has been for more than a year now without any news.

You can, however, mount CIFS/Samba servers, so that the Chumby “thinks” the files were coming from a USB stick. This works fine, unless you have too many files on your device. Tests showed that more than a couple hundred files will freeze the Chumby.

3/04/2010

How to Get the Latest Firmware for Your LogiLink AP

Chances are (as with me) that your LogiLink wireless access point/repeater is outdated and you cannot find any new versions of the firmware on their support site. The latest firmware for mine, for example, dates back to 2006!

In this case it’s good to know that many LogiLink devices are completely identical to products by Edimax. When I looked for firmware for my equivalent hardware I found one that was just recently updated (October 2009). Great!

The only challenge I faced was to find out which Edimax model matches mine, and I have to say that support at LogiLink was very helpful with this!

3/03/2010

Rassismus in Deutschland selbst bei Tieren!

Beweis: Farbige (Braunbäre Bruno, eingewandert aus Italien) werden erschossen, Weiße (Eisbär Knut) kommen ins Fernsehen.

Pandora on the Chumby from Anywhere

I got myself a Chumby recently, and this nice device can play Pandora radio as well, so I don’t need to turn on my computer every time I want to listen in. It can even wake me up with Pandora radio.

Outside the US, however, Pandora refuses to play due to copyright restrictions. I guess if you are reading this, you are aware of the usual workarounds. Here’s what I did to make it work on my Chumby:

  • installed Tor and Privoxy on my NAS device, which runs 24/7 anyway
  • configured Tor to use exit nodes in the US only
  • configured Privoxy to only forward requests to pandora.com to Tor, all other traffic will be sent directly to avoid unnecessary overhead
  • created a userhook0 script on my Chumby to set the http_proxy variable to point to my proxy

Now booting is a little slower than before due to the indirection through my proxy server, but it still is good enough. And Pandora plays fine through Tor – it is slow to load, but after that it works like a charm.

Update: I tuned Privoxy a bit more, now it only forwards www.pandora.com and tuner.pandora.com to Tor, everything else is sent directly. This is fast!

Idioten auf dem Rotwandhaus

OK, ich sollte fairerweise sagen: ein Idiot mindestens!

Ich wandere mit meinen Kindern und zwei Rodeln zum Rotwandhaus, teilweise muß ich die Kleinen ziehen und zum Schluß auf den Schultern tragen, weil es zum Ziehen zu steil wird. Erschöpft kommen wir oben an, stellen die Rodeln vor dem Haus ab und stärken uns erstmal.

Welch Überraschung, als wir aus dem Haus kommen ist mein Rennrodel (Wert ca. €200) weg! Glücklicherweise konnten wir uns einen Schlitten leihen, sonst hätte ich mit den Kindern zu Fuß wieder absteigen können!

Glück im Unglück: am Ende der Rodelbahn stand mein Schlitten, er war also nur “ausgeliehen”.

Und nun zu Dir, Du Depp: meinen Rodel kann man wohl kaum für einen der Leihrodel halten, die oben ausgegeben werden. Also entweder bist Du blöder als die Polizei erlaubt oder einfach rotzfrech – ich vermute mal letzteres. Hätte ich Dich erwischt, weiß ich nicht was ich mir Dir angestellt hätte, aber Du kannst sicher sein, daß es schmerzhaft gewesen wäre. Schade, daß Du Dir mit dem Rodel nicht das Genick gebrochen hast! [Rest zensiert wegen unflätiger Beschimpfungen]

adaxas Web Directory