Avishai Cohen in De Roma

Een paar weken geleden ontdekte ik de site BandsInTown. Op deze website vind je enorm veel optreden van groepen en muzikanten. Niet enkel optreden in de VS, maar ook in Belgë en Nederland. Maar de echte 'killer'-feature van de website, is dat je hem aan je last.fm profiel kan linken. Op die manier kan je dus door gewoon naar je favoriete muziek te luisteren en te scrobblen helemaal automatisch geregeld een mailtje krijgen met optredens in je buurt. Het duurde dus maar 5 minuten tot ik zag dat Avishai Cohen op 4 februari optrad in De Roma.

Avishai Cohen is een Jazz bassist uit Israël en maakt echt enorm goede en moderne Jazz (dat is natuurlijk mijn persoonlijke mening). Ik heb de muziek van Cohen ook toevallig leren kennen dankzij een foutje van de Media Markt. In hun systeem om CD's voor te beluisteren stond "Aurora" verwisseld met een andere CD, die ik op dat moment wilde beluisteren. Hoewel ik Aurora toen niet gekocht heb (wegens al een te grote stapel CD's om mee naar de kassa te lopen), heb ik de naam toen wel opgeschreven. Een tijd later heb ik Cohen op eMusic gevonden en heb er toen "Gently Disturbed" van gedownload. Dit is echt een heel erg goede en meeslepend album.

Snarl, Notify-osd en Yip

Onder Windows gebruik ik al vrij lang Snarl. Dit is een open source programma om meldingen op het scherm te geven, net zoals Growl onder Mac OS X dat kan doen. Ook Ubuntu heeft hier vanzelfsprekend een equivalent voor. Sinds Ubuntu Jaunty is dit 'notify-osd'. Notify-osd heeft echter als kenmerk dat je niet op de meldingen kan klikken, maar er gewoon doorklikt. Volgens sommigen neemt dit alle functionaliteit weg van meldingen. Ik ben er echter wel fan van omdat ze op die manier enkel hun kerntaak uitvoeren: een melding laten zien. Verder heb je niet het probleem dat de melding soms in de weg staat en je ze moet toeklikken.

Sinds versie 2.2 van Snarl kan je het programma zo instellen dat het vrijwel exact notify-osd nabootst. Hiervoor moet je wel even in de instellingen van het programma prutsen. Zo moet je de positie van de meldingen veranderen, zodat ze rechts bovenaan het scherm komen ipv onderaan. Ook moet je de 'click-through' aanzetten. Dit doe je in de tab 'Apps'. Selecteer de applicatie en notification class waarvoor je de click-through wilt aanzetten, open de tab 'Advanced' en zet 'Show in view-only mode' op Yes. Dit moet je blijkbaar wel voor iedere application en class doen. Hierbij kan je wel 'Use the same settings for all notification classes?' op Yes zodat je het maar eenmaal per applicatie moet aanpassen.

Nieuwe PGP key

Een paar dagen geleden las ik op Debian Administration een artikel over het uitfaseren van SHA-1 in OpenPGP. Dit is nodig omdat de veiligheid van SHA-1 niet meer volledig gegarandeerd is.

Sinds ik Linux gebruik had ik mij al eens terug op OpenPGP willen toeleggen om het terug te gebruiken, al was het maar om de Ubuntu Code of Conduct te kunnen ondertekenen. Dit leek me dus het perfecte moment om ineens een nieuwe sleutel te genereren die hopelijk toch wel een aantal jaren moet mee kunnen. In het artikel wordt gesuggereerd om een 2048 bits RSA (sign-only) sleutel te maken, maar ik heb ervoor gekozen om maar ineens voor de 4096 bit RSA (sign-only) sleutel te gaan. Daarbij nog een 4096 bit RSA (encryption-only) subkey en een fototje en we zijn gesteld. Mijn nieuwe PGP key heeft als id 610DB834 gekregen.

De gegevens van de oude key:

Kommil Foo

Vorige week donderdag zijn we naar de voorstelling 'Wolf' van Kommil Foo in de Arenberg geweest. Het was de eerste keer dat ik Kommil Foo live zag, maar omdat we thuis vrijwel alle CD's en DVD's hebben was ik er vrij zeker van dat heel erg goed ging zijn. En dat was het ook!

Soms was de rode draad nogal moeilijk om te volgen, maar dat neemt niet weg dat we ons geregeld krom hebben gelachen. Nu we de voorstelling hebben gezien kunnen we de nieuwe CD/DVD die we thuis al sinds kerstmis hadden liggen eindelijk ook bekijken en beluisteren. We vonden het allebei nogal dom om al naar de show te kijken op DVD of de muziek te beluisteren op CD als je weet dat je enkele maanden live gaat kijken. Het heeft soms wat moeite gekost om hem toch stiekem niet op te zetten, maar gelukkig is het toch gelukt.

Implicit conversions in C#

Yesterday I came across an interesting article: What's the opposite of Nullable. While the solution for Non-Nullability is interesting, the reason i'm blogging this is because the article also used a C# feature which i didn't know of: implicit conversions.

And guess what? Today I had a situation where I could use these implicit conversions. My app reads data from a CSV-file, so all the input are just strings. Until now that was just fine. However, at one part of my code I had to process one of the fields which has a fixed format. Say a field is a phonenumber and i need the country-prefix. So I created a PhoneNumber-class like this:

Techdays

Gisteren mocht ik voor het werk een dagje van de Microsoft Techdays bijwonen. Het was de eerste keer dat ik naar een Microsoft-event ging en had me eerlijk gezegd aan veel show en weinig inhoud verwacht. In sterk contrast tot JavaPolis Devoxx, waar er veel inhoud en weinig show is. Achteraf bekeken viel dit eigenlijk enorm goed mee. Enkel de keynote ging er wat over. Een Developer Evangelist of Regional Director moet echt niet als één of andere superster worden aangekondigd met loeiharde muziek en lichtshow, maar dat is mijn mening natuurlijk.

Na de keynote heb ik de sessie over C# 4.0 gevolgd en dat was erg interessant. C# 4.0 belooft weer een versie te worden om naar uit te kijken. Eén van de nieuwe features is het dynamic keyword. Dit zorgt ervoor dat je methodes op het object kan oproepen waarbij de compiler niet checked of deze effectief bestaan. De check wordt pas 'at runtime' gedaan. Dit is erg handig om te integreren met andere talen zoals Javascript en Ruby.

Een andere interessante feature is 'Generic co- and contra- variance'. Hiermee kan je in speciale gevallen casts uitvoeren zoals:

1
2
var list = new List<string>();
(List<object>)list;

Ook optional en named parameters behoren tot de nieuwe features. Dit is ook erg interessant. Bekijk dit voorbeeldje:

1
2
3
4
56
7
public void Order(string name, int amount = 2, int discount = 0)
{ ... }
 
Order("jeroen", dicount: 5);
// the first param - name - is not optional so a value must be supplied.// the second param - amount - has default value of 2 which we want to use
// the third param - discount - has a default value of 0 but we supply 5

Enkele belangrijke punten bij het gebruikt van deze feature zijn wel dat je parameters absoluut als constante moet beschouwen. Je kan na verloop van tijd in veel gevallen immers niet zomaar de standaard waarde van een parameter aanpassen. Als je in voorgaand voorbeeld de default value van amount zou wijzigen in 3 zouden er plots veel klanten 3 items bestellen in plaats van 2. Ook is het wijzigen van de naam van een parameter niet meer zo vanzelfsprekend omdat deze naam nu ook buiten de methode wordt gebruikt.

ASP.NET MVC 1.0 Quickly

Today I was pretty surprised when going through my feeds to read that a friend of mine, Maarten Balliauw, has a written a book. The title of the book is ASP.NET MVC 1.0 Quickly:

It’s been quite a job, but there it is: Packt just announced my very first book on their site. It is titled “ASP.NET MVC 1.0 Quickly”, covering all aspects ASP.NET MVC offers in a to-the-point manner with hands-on examples. The book walks through the main concepts of the MVC framework to help existing ASP.NET developers to move on to a higher level. It includes clear instructions and lots of code examples. It takes a simple approach, thereby allowing you to work with all facets of web application development. Some keywords: Model-view-controller, ASP.NET MVC architecture and components, unit testing, mocking, AJAX using MS Ajax and jQuery, reference application and resources.

I always thought, and still think, that writing a book is a massive amount of work. Therefore i really have a lot of respect for people that have the courage to actually write a real book.

Weekendje Praag

Dit weekend hebben we nog eens een bezoekje gebracht aan Praag. Met een kortingsbon van bij de maaltijdcheques hadden we een goedkoop vliegtuig ticket gekocht en we konden logeren bij een Tsjechische vriendin van Tine. Toen we op de luchthaven aankwamen zagen we dat ons vliegtuig met 45 minuten vertraging zou vertrekken. De geruchten gingen dat de vliegtuigmaatschappij waar we mee vlogen op de rand van het faillisement staat en dat ze 9 vliegtuigen tekort hebben. Uiteindelijk hebben ze dan toch een Bulgaars vliegtuig gevonden waarmee we veilig en wel in Praag zijn geraakt.

Hoewel ik 8 jaar geleden al wel eens in Praag was geweest op eindejaarsreis, herinnerde ik mij toch niet veel meer van de stad. Met onze Praagse vriendin hebben we vooral veel door de stad gewandeld om het globale stadsbeeld te bekijken. Aangevuld met aardig wat pub-bezoekjes om af en toe terug op te warmen. Vrijdagavond zijn we ook nog eens goed in het nachtleven gedoken om al de vrienden en vriendinnen te leren kennen de Tsjechische bieren en sterkere dranken te proeven. Becherovka is best te drinken.

Praag is best een mooie stad om eens een weekendje in rond te lopen. Het communistische museum vonden we wat minder en het joodse kerkhof is ronduit schandalig duur. De foto's vind je in het foto-album.

Talenfestival & FOSDEM

Talenfestival

Zaterdag hebben we het Talenfestival in Leuven bezocht. Hierop kon je met verschillende talen kennismaken in voorstellingen van telkens een uurtje. We hebben Oekraïens, Vlaamse Gebarentaal, Tshiluba en Esperanto gevolgd.

Het Oekraïens was best leuk om te volgen gezien onze geringe basiskennis van het Russisch. Het geschrift is voor het grootste deel hetzelfde en ook een groot stuk van de grammatica komt overeen. Wat mij als grootste verschil opviel is de andere uitspraak van verschillende letters.

De Vlaamse Gebarentaal werd gepresenteerd door twee mensen, een dove en een tolk. Ook dit was erg interessant omdat je onmiddellijk ook twee mensen in het echt in gebarentaal kon zien communiceren. Ik heb er ook van bijgeleerd dat de grammatica van gebarentaal helemaal niet overeenkomt met die van het Nederlands. Zo begint men in een zin bijvoorbeeld met het woord dat het grootste object beschrijft.

Bestanden synchroniseren met Unison

Nu ik mijn laptop weer aan de praat heb gekregen en zowel m'n desktop PC als m'n laptop Linux draaien heb ik de manier waarop ik deze synchroniseer nog eens herbeken en aangepast. Toen mijn beide PC's windows draaiden maakte ik gebruik van Subversion, om de bestanden op de Desktop en Laptop te synchroniseren. Dit werkte vrijwel perfect om op beide PC's alle betanden te hebben en had als extra voordelen dat er een geschiedenis van wijzigingen werd bijgehouden (zo werkt SVN nu eenmaal) en, omdat de repository bij Dreamhost stond, dat ik ineens een off-site backup had. Er waren ook wel een paar nadelen aan verbonden. Om te synchroniseren moet je op beide PC's een svn commit doen en een svn update, soms meerdere keren als er op de beide pc's wijzigingen waren. Bovendien duurde het even omdat de wijzigingen moesten geuploaded worden naar Dreamhost en gebruikte ik het niet voor echt persoonlijke bestanden (bankafschriften etc) omdat de gegevens bij Dreamhost niet geëncrypteerd waren.