<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:series="http://unfoldingneurons.com/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>&lt;TeRanEX/&gt; Weblog</title>
	
	<link>http://budts.be/weblog</link>
	<description>v2</description>
	<lastBuildDate>Fri, 05 Feb 2010 19:57:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/teranex-rss" /><feedburner:info uri="teranex-rss" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Avishai Cohen in De Roma</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/A7uY00Nc5rk/</link>
		<comments>http://budts.be/weblog/2010/02/avishai-cohen-in-de-roma/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:57:00 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Muziek]]></category>
		<category><![CDATA[bass]]></category>
		<category><![CDATA[cultuur]]></category>
		<category><![CDATA[jazz]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[optreden]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/2010/02/avishai-cohen-in-de-roma/</guid>
		<description><![CDATA[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 &#8216;killer&#8217;-feature van de website, is dat je hem aan je last.fm profiel kan linken. Op die manier kan je [...]]]></description>
			<content:encoded><![CDATA[<p>Een paar weken geleden ontdekte ik de site <a href="http://www.bandsintown.com/home">BandsInTown</a>. 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 &#8216;killer&#8217;-feature van de website, is dat je hem aan je <a href="http://last.fm/user/teranex/">last.fm</a> 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 <a href="http://www.avishaimusic.com/">Avishai Cohen</a> op 4 februari optrad in <a href="http://www.deroma.be/">De Roma</a>.</p>
<p>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&#8217;s voor te beluisteren stond &#8220;Aurora&#8221; 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&#8217;s om mee naar de kassa te lopen), heb ik de naam toen wel opgeschreven. Een tijd later heb ik <a href="http://www.emusic.com/artist/Avishai-Cohen-MP3-Download/10558329.html">Cohen op eMusic</a> gevonden en heb er toen &#8220;Gently Disturbed&#8221; van gedownload. Dit is echt een heel erg goede en meeslepend album.</p>
<p>Toen ik dus op BandsInTown zag dat Avishai Cohen naar De Roma kwam was ik onmiddellijk overtuigd dat ik wilde gaan kijken. Ik was ook nog nooit in De Roma geweest dus dat was nog een extra reden. Als je in de buurt van Antwerpen woont en cultuur weet te appreciëren moet je daar in feite toch wel eens geweest zijn.</p>
<p>Gisteren was het dus de langverwachte avond. Het optreden duurde zo&#8217;n anderhalf uur en vloog echt voorbij. Er werden vooral stukken gespeeld vanop de recentste CD &#8220;Aurora&#8221; en enkele nieuwe stukken. Het was echt ENORM goed. Cohen speelde zelf natuurlijk op de contrabass en zong ook geregeld met zijn vrij speciale stem. Verder speelde Shai Maestro op de piano, Amos Hoffman op de oud, Itamar Doari op percussie (gebruikmakend van enkele speciale instrumenten die ik nog niet gezien had) en Karen Malka (zang) ook geregeld mee. De combinatie gaf geregeld een vrij oosters klinkend geheel waar ik tegenwoordig wel fan van ben. Geregeld ging het er ook wel heftig aan toe, waardoor het moeilijk was om op je stoel te blijven zitten. Het was echt wonderbaarlijk hoe al de muziekanten hun instrument beheersten en er volledig voor gingen. De drummer moest op een bepaald moment zelfs naar een rekje grijpen waar enkel symbalen en belletjes aan hingen omdat hij zo hevig bezig was dat het onderuit ging (hij had het nog net!). Alle muziekanten kregen ook geregeld de tijd en ruimte om volledig op zichzelf te spelen waardoor zeker niet alles enkel en alleen rond Cohen draaide.</p>
<p>Toen Avishai Cohen aankondigde dat het die avond de verjaardag van de pianist was begon de zaal natuurlijk happy-birthday te zingen. Hierop pikte Cohen op zijn eentje in met een heel knappe solo op bass, met het happy-birthday-deuntje mee in verwerkt.</p>
<p>Het optreden was dus een success. Nadat we thuiskomen heb ik meteen ook nog eens op eMusic gekeken en heb &#8220;Colors&#8221; gedownload. Ook dit is een heel goed album. En vandaag ben ik tussen de middag even snel naar de Media Markt gespurt omdat ik toch ook wel heel graag &#8220;Aurora&#8221; wilde hebben. Ook dit is een schitterend stukje muziek, hoewel het live inderdaad toch nog wel net dat ietsje beter klinkt. Maar dat is vermoedelijk met alle Jazz wel zo.</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=wQ2UnOVRFgE">Eleven Wives op Youtube</a>
<li><a href="http://www.youtube.com/watch?v=DzJNsn7TXP8">Leolam &#8211; Aurora op Youtube</a>
<li><a href="http://twitter.com/AvishaiCohen">Avishai Cohen op Twitter</a>
</ul>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/A7uY00Nc5rk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2010/02/avishai-cohen-in-de-roma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2010/02/avishai-cohen-in-de-roma/</feedburner:origLink></item>
		<item>
		<title>Snarl, Notify-osd en Yip</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/px8lvvPLppQ/</link>
		<comments>http://budts.be/weblog/2009/10/snarl-notify-osd-en-yip/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 17:37:45 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[notifcations]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[snarl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=703</guid>
		<description><![CDATA[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 &#8216;notify-osd&#8217;. Notify-osd heeft echter als kenmerk dat je niet op de [...]]]></description>
			<content:encoded><![CDATA[<p>Onder Windows gebruik ik al vrij lang <a href="http://www.fullphat.net/">Snarl</a>. 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 &#8216;notify-osd&#8217;. 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.</p>
<p>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 &#8216;click-through&#8217; aanzetten. Dit doe je in de tab &#8216;Apps&#8217;. Selecteer de applicatie en notification class waarvoor je de click-through wilt aanzetten, open de tab &#8216;Advanced&#8217; en zet &#8216;Show in view-only mode&#8217; op Yes. Dit moet je blijkbaar wel voor iedere application en class doen. Hierbij kan je wel &#8216;Use the same settings for all notification classes?&#8217; op Yes zodat je het maar eenmaal per applicatie moet aanpassen.</p>
<p><img src="/weblog/media/software/20091015-snarl01.png" alt=""/><br />
<img src="/weblog/media/software/20091015-snarl02.png" alt=""/></p>
<p>En nu ik toch over meldingen bezig ben: <a href="http://www.yipyip.com/">Yip</a>. Als je Firefox gebruikt en vaak web-applicaties gebruikt kan het soms handig zijn als deze ook meldingen kunnen geven. Yip is hiervoor een extensie die perfect samenwerkt met notify-osd op Ubuntu en Snarl onder Windows. De website in kwestie moet deze meldingen wel ondersteunen, of ondersteuning ervoor kan door een userscript toegevoegd worden. Web applicaties die ik geregeld gebruik met ondersteuning voor meldingen zijn <a href="https://oauth.filttr.com/">Filttr</a>, <a href="https://www.meebo.com/">Meebo</a> en <a href="http://roundcube.net/">RoundCube</a> (via een <a href="http://userscripts.org/scripts/show/55617">userscript</a>).</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/px8lvvPLppQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/10/snarl-notify-osd-en-yip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/10/snarl-notify-osd-en-yip/</feedburner:origLink></item>
		<item>
		<title>Nieuwe PGP key</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/vOAZ5q_Mniw/</link>
		<comments>http://budts.be/weblog/2009/05/nieuwe-pgp-key/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:36:40 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[gnupg]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[openpgp]]></category>
		<category><![CDATA[pki]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=695</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Een paar dagen geleden las ik op Debian Administration een <a href="http://www.debian-administration.org/users/dkg/weblog/48">artikel over het uitfaseren van SHA-1 in OpenPGP</a>. Dit is nodig omdat de veiligheid van SHA-1 niet meer volledig gegarandeerd is.</p>
<p>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 <a href="http://www.ubuntu.com/community/conduct">Ubuntu Code of Conduct</a> 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.</p>
<p>De gegevens van de oude key:</p>
<pre>pub   1024D/8B7B774A 2003-12-03
      Key fingerprint = 97A4 641E AE0A 4068 B78D  F530 1F4E 3017 8B7B 774A
uid                  Jeroen Budts <jeroen@lightyear.be>
uid                  Jeroen Budts <jeroen@budts.be>
sub   1024g/20BC0ADF 2003-12-03</pre>
<p>De gegevens van de nieuwe key:</p>
<pre>pub   4096R/610DB834 2009-05-15
      Key fingerprint = 03E2 547D 5CE5 DEF7 5C85  9280 B990 30C6 610D B834
uid                  Jeroen Budts <jeroen@lightyear.be>
uid                  [jpeg image of size 5067]
sub   4096R/903CE17F 2009-05-15</pre>
<p>In het artikel wordt ook beschreven dat je best een &#8216;transition statement&#8217; schrijft en dit met beide keys ondertekend. Een versie van deze blogpost in pure tekst en ondertekend met beide keys vind je op <a href="http://budts.be/jeroen/610DB834-transition.txt">http://budts.be/jeroen/610DB834-transition.txt</a>.</p>
<p>De publieke sleutel is te vinden op <a href="http://budts.be/jeroen/0x610DB834.asc">http://budts.be/jeroen/0&#215;610DB834.asc</a>, maar ook op de <a href="http://keyserver.ubuntu.com:11371/">keyservers van Ubuntu</a> en op mijn <a href="https://launchpad.net/~teranex">Launchpad account</a>.</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/vOAZ5q_Mniw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/05/nieuwe-pgp-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/05/nieuwe-pgp-key/</feedburner:origLink></item>
		<item>
		<title>Kommil Foo</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/vyXzmWY69Yo/</link>
		<comments>http://budts.be/weblog/2009/04/kommil-foo/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 20:34:40 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Vrije Tijd]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Muziek]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[toneel]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=693</guid>
		<description><![CDATA[Vorige week donderdag zijn we naar de voorstelling &#8216;Wolf&#8217; 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&#8217;s en DVD&#8217;s hebben was ik er vrij zeker van dat heel erg goed ging zijn. En dat was het ook!
Soms was [...]]]></description>
			<content:encoded><![CDATA[<p>Vorige week donderdag zijn we naar de voorstelling &#8216;Wolf&#8217; van <a href="http://www.kommilfoo.be/">Kommil Foo</a> in de Arenberg geweest. Het was de eerste keer dat ik Kommil Foo live zag, maar omdat we thuis vrijwel alle CD&#8217;s en DVD&#8217;s hebben was ik er vrij zeker van dat heel erg goed ging zijn. En dat was het ook!</p>
<p>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.</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/vyXzmWY69Yo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/04/kommil-foo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/04/kommil-foo/</feedburner:origLink></item>
		<item>
		<title>Implicit conversions in C#</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/lFDpHniv_fQ/</link>
		<comments>http://budts.be/weblog/2009/03/implicit-conversions-in-c/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 17:51:07 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Programmeren]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=690</guid>
		<description><![CDATA[Yesterday I came across an interesting article: What&#8217;s the opposite of Nullable. While the solution for Non-Nullability is interesting, the reason i&#8217;m blogging this is because the article also used a C# feature which i didn&#8217;t know of: implicit conversions.
And guess what? Today I had a situation where I could use these implicit conversions. My [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I came across an interesting article: <a href="http://journal.stuffwithstuff.com/2008/04/08/whats-the-opposite-of-nullable/">What&#8217;s the opposite of Nullable</a>. While the solution for Non-Nullability is interesting, the reason i&#8217;m blogging this is because the article also used a C# feature which i didn&#8217;t know of: implicit conversions.</p>
<p>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:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p690code6'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p6906"><td class="code" id="p690code6"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> PhoneNumber
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">readonly</span> <span style="color: #FF0000;">string</span> _number<span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> PhoneNumber<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> number<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
      <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #008000;">!</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Regex<span style="color: #000000;">&#40;</span>PHONE_NUMBER_REGEX<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">IsMatch</span><span style="color: #000000;">&#40;</span>number<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
      <span style="color: #000000;">&#123;</span>
          <span style="color: #0600FF;">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> ArgumentException<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Invalid phone number&quot;</span>, <span style="color: #666666;">&quot;number&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #000000;">&#125;</span>
      _number <span style="color: #008000;">=</span> number<span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Prefix
  <span style="color: #000000;">&#123;</span>
    get <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> GetPrefixFromNumber<span style="color: #000000;">&#40;</span>...<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Now it is possible to create a (helper-)method in another class to get the prefix like this (this is just a simple example):</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p690code7'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p6907"><td class="code" id="p690code7"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> GetPrefix<span style="color: #000000;">&#40;</span>PhoneNumber phoneNumber<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">return</span> phoneNumber.<span style="color: #0000FF;">Prefix</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>But when you only have the phonenumber as a string, you&#8217;ll still have to create an instance of PhoneNumber to be able to call the GetPrefix method:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p690code8'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p6908"><td class="code" id="p690code8"><pre class="csharp" style="font-family:monospace;">var prefix <span style="color: #008000;">=</span> GetPrefix<span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> PhoneNumber<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;+32485123456&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>That is, until we add a method for implicit conversion to the PhoneNumber-class:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p690code9'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p6909"><td class="code" id="p690code9"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> PhoneNumber
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> _number<span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> PhoneNumber<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> number<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
      <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #008000;">!</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Regex<span style="color: #000000;">&#40;</span>PHONE_NUMBER_REGEX<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">IsMatch</span><span style="color: #000000;">&#40;</span>number<span style="color: #000000;">&#41;</span>
      <span style="color: #000000;">&#123;</span>
          <span style="color: #0600FF;">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> ArgumentException<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Invalid phone number&quot;</span>, <span style="color: #666666;">&quot;number&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #000000;">&#125;</span>
      _number <span style="color: #008000;">=</span> number<span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Prefix
  <span style="color: #000000;">&#123;</span>
    get <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> GetPrefixFromNumber<span style="color: #000000;">&#40;</span>...<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">implicit</span> <span style="color: #0600FF;">operator</span> PhoneNumber<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> number<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">return</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> PhoneNumber<span style="color: #000000;">&#40;</span>number<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Now it is possible to call the GetPrefix method with just a string. The string will be automagically converted to a PhoneNumber, unless it is invalid, in which case the ArgumentException will be thrown:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p690code10'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p69010"><td class="code" id="p690code10"><pre class="csharp" style="font-family:monospace;">var prefix <span style="color: #008000;">=</span> GetPrefix<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;+32485123456&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/lFDpHniv_fQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/03/implicit-conversions-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/03/implicit-conversions-in-c/</feedburner:origLink></item>
		<item>
		<title>Techdays</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/71ohayWuhUI/</link>
		<comments>http://budts.be/weblog/2009/03/techdays/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 22:30:42 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Programmeren]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=685</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Gisteren mocht ik voor het werk een dagje van de <a href="http://www.microsoft.com/belux/techdays/">Microsoft Techdays</a> 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 <del>JavaPolis</del> <a href="http://www.javoxx.com/">Devoxx</a>, 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.</p>
<p>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 <code>dynamic</code> 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 &#8216;at runtime&#8217; gedaan. Dit is erg handig om te integreren met andere talen zoals Javascript en Ruby.</p>
<p>Een andere interessante feature is &#8216;Generic co- and contra- variance&#8217;. Hiermee kan je in speciale gevallen casts uitvoeren zoals:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p685code13'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p68513"><td class="code" id="p685code13"><pre class="csharp" style="font-family:monospace;">var list <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">string</span><span style="color: #008000;">&gt;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#40;</span>List<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">object</span><span style="color: #008000;">&gt;</span><span style="color: #000000;">&#41;</span>list<span style="color: #008000;">;</span></pre></td></tr></table></div>

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

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p685code14'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p68514"><td class="code" id="p685code14"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Order<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> name, <span style="color: #FF0000;">int</span> amount <span style="color: #008000;">=</span> 2, <span style="color: #FF0000;">int</span> discount <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span> ... <span style="color: #000000;">&#125;</span>
&nbsp;
Order<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;jeroen&quot;</span>, dicount<span style="color: #008000;">:</span> 5<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">// the first param - name - is not optional so a value must be supplied.</span>
<span style="color: #008080; font-style: italic;">// the second param - amount - has default value of 2 which we want to use</span>
<span style="color: #008080; font-style: italic;">// the third param - discount - has a default value of 0 but we supply 5</span></pre></td></tr></table></div>

<p>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.</p>
<p><span id="more-685"></span></p>
<p>De volgende sessie die ik heb bijgewoond ging over WCF. Hoewel de inhoud nogal vrij droog was, was ook dit wel interessant. Vooral de spreker was nogal een grapjas.</p>
<p>De daaropvolgende presentatie ging over WPF en meer specifiek over performantie. Aan de hand van een demo-applicatie waarin een reeks foto&#8217;s werden ingeladen werden er enkele gangbare performantie problemen getoond en hoe veel van deze problemen vaak eenvoudig opgelost kunnen worden. Bij het laden van 50 foto&#8217;s gebruikte de applicatie in het begin 1.3 GB geheugen. Na enkele eenvoudige aanpassingen nog slechts 220 MB. Het belangrijkste deel van de oplossing was om ervoor te zorgen dat het aantal elementen in de WPF-tree zo laag mogelijk werd gehouden. Dit werd onder andere bereikt door een VirtualStackPanel te gebruiken ipv een gewone StackPanel, zodat enkel elementen die effectief op het scherm getoond worden ook berekend worden. Een interessante tool die je hierbij kan helpen is <a href="http://blois.us/Snoop/">Snoop</a>. Dit is een open source programma dat ongeveer hetzelfde werkt als de DOM-explorer in Firefox.</p>
<p>Nog een andere sessie die ik heb gevolgd ging over Lean Principles, Agile Techniques, and Team System. Hierbij weerlegde de presentator 7 gangbare foute veronderstellingen ivm software ontwikkeling. Ook liet hij zien hoe je dit kan toepassen mbhv TFS. Gelukkig ging het niet al teveel over TFS en meer over de algemene theorie waardoor ook deze sessie erg leerrijk was.</p>
<p>De laatste sessie ging over Windows 7 for developers. Tijdens de keynote was Windows 7 al even gedemonstreerd, met nadruk op de (multi-)touch features. Tijdens deze presentatie lag de nadruk echter op de gevolgen en impact van Windows 7 voor developers. Natuurlijk werd er wel eerst een globaal overzicht getoond van de nieuwe taskbar en desktop. Die nieuwe taskbar gaat voor vele mensen even wennen zijn, maar ik denk wel dat het potentieel heeft. Een van de andere nieuwe features die me zo nog te binnen schieten die wel interessant zijn, is het beheer van services. In windows 7 is het namelijk mogelijk om te specifiëren wanneer een bepaalde service moet draaien. Een service die een netwerk verbinding nodig heeft verbruikt bijvoorbeeld enkel maar resources als er geen netwerkverbinding is. In Windows 7 kan die service adhv service triggers op de gepaste momenten in en uitgeschakeld worden.</p>
<p>Ook knap was de problem solver. In Windows XP zat er al een soort van problem solver ingebouwd, maar dit was niet erg interessant. Het stelde oplossingen voor die de gebruiker manueel kon proberen en vroeg telkens of het probleem was opgelost om dan een andere oplossing voor te stellen indien het probleem nog steeds aanwezig was. In Windows 7 gebeurt dit geheel automatisch aan de hand van PowerShell-scripts (als ik het correct begrepen heb). Programma&#8217;s kunnen ook hun eigen problem solver scripts installeren, zodat dit systeem volledig uitbreidbaar is. Voor veel voorkomende problemen lijkt me dit echt wel een interessante en gebruiksvriendelijk feature. Of deze feature echt zal werken hangt natuurlijk af van de hoeveelheid problemen die de problem solver effectief kan oplossen. De demo was knap, maar het was natuurlijk nog altijd een voorbereid &#8216;probleem&#8217; (de audio service werd gestopt en de problem solver wist deze correct terug te starten).</p>
<p>Ik heb echter nog wel een bedenking die ik me achteraf nog heb gemaakt na het bekijken van de presentatie over Windows 7. Windows 7 bevat standaard functionaliteit om je eigen applicatie van een ribbon te voorzien (een soort van knoppenbalk zoals in Office 2007), en er werd sterk benadrukt naar developers toe om dit ook te gebruiken. Tijdens andere presentaties kon je al een preview zien van Visual Studio 2010. Het vlaggenschip voor development van Microsoft. En wat valt mij daarbij op? Microsoft maakt hier zelf geen gebruik van de ribbon. Mij lijkt dit toch weer een inconsistentie in de Windows-omgeving. Of zou Microsoft dan toch niet zoveel vertrouwen hebben in de ribbon?</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/71ohayWuhUI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/03/techdays/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/03/techdays/</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVC 1.0 Quickly</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/N4SnGLBlOpg/</link>
		<comments>http://budts.be/weblog/2009/02/aspnet-mvc-10-quickly/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 17:06:30 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=683</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was pretty surprised when going through my feeds to read that a friend of mine, Maarten Balliauw, <a href="http://blog.maartenballiauw.be/post/2009/02/17/Announcing-my-book-ASPNET-MVC-10-Quickly.aspx">has a written a book</a>. The title of the book is <a href="https://www.packtpub.com/asp-net-model-view-controller-1-0-quickly/book">ASP.NET MVC 1.0 Quickly</a>:</p>
<blockquote><p>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.</p></blockquote>
<p>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.</p>
<p>In his blogpost Maarten explains why and how he wrote the book. According to his time tracking software, it took him 100 hours to write the book, which is far less than i would expect. On the other side, if you can only use spare time to do the work, it is a lot of time. Maarten also explains that he used Subversion to keep his work versioned and that some people laughed at him for doing so. I don&#8217;t think this is such a strange idea. If I ever would write a book (consider the chances small&#8230;), I certainly would use Subversion, or a similar tool, to store my work. In fact, when my girlfriend wrote her paper for her last schoolyear I also made her use Subversion to store her word-documents. But i do find it strange that you write a complete book in Word (which is a word processor btw, not a text editor <img src='http://budts.be/weblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>I&#8217;m very curious to see and read the book. Btw Maarten, is that your own pair of glasses on the cover? Anyway, Congrats Maarten!</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/N4SnGLBlOpg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/02/aspnet-mvc-10-quickly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/02/aspnet-mvc-10-quickly/</feedburner:origLink></item>
		<item>
		<title>Weekendje Praag</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/3aYDF-zWbP8/</link>
		<comments>http://budts.be/weblog/2009/02/weekendje-praag/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 18:58:13 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Reizen]]></category>
		<category><![CDATA[Praag]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=680</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>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&#8217;s vind je in het <a href="http://fotos.budts.be/2009/praag/">foto-album</a>.</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/3aYDF-zWbP8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/02/weekendje-praag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/02/weekendje-praag/</feedburner:origLink></item>
		<item>
		<title>Talenfestival &amp; FOSDEM</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/25Yyl3nGd_0/</link>
		<comments>http://budts.be/weblog/2009/02/talenfestival-fosdem/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 22:15:09 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Vrije Tijd]]></category>
		<category><![CDATA[esperanto]]></category>
		<category><![CDATA[leren]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[talen]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=675</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<h3>Talenfestival</h3>
<p>Zaterdag hebben we het <a href="http://talenfestival.be/">Talenfestival</a> 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.</p>
<p>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.</p>
<p>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.</p>
<p>Tshiluba is een taal uit de Bantu-familie die in Congo wordt gesproken. Ik dacht dat Russisch moeilijk was, maar tegenover Tshiluba (en vermoedelijk dus ook andere Bantu-talen), is het niets. In Tshiluba kunnen woorden in 7, 12 of 18 klassen worden verbogen (niet iedereen telt de klassen op dezelfde manier blijkbaar). Als een woord, ik denk het onderwerp, in een bepaalde klasse moet verbogen worden moet meteen heel de zin in die klasse verbogen worden. Opmerkelijk is ook dat woorden aan het begin worden verbogen en niet aan het einde zoals wij gewend zijn. Verder kunnen woorden samengevoegd worden, waardoor je iets in de stijl van &#8216;dat is de plaats waar hij het aan hen gegeven heeft&#8217; als één woord kan zeggen. Zoek dat maar eens op in het woordenboek!</p>
<p>Het talenfestival werd georganiseerd door <a href="http://esperanto3000.be/">Esperanto3000</a>, waardoor je hier en daar ook mensen onderling in het <a href="http://esperanto.be/">Esperanto</a> kon horen spreken. Zelf heb ik al wel een langere tijd het idee om het eens te leren en was dus ook erg geïnteresseerd om de voorstelling van het Esperanto te volgen. Aan het begin van de voorstelling vertelde de presentator het verhaal over de Rattenvanger van Hamelen in het Esperanto met behulp van een beamer zodat we de prentjes en tekst ook konden zien. Vervolgens kregen we vrijwel alle grammatica die het Esperanto rijk (of arm) is uitgelegd, en werd er afgesloten door het verhaaltje nog eens voor te lezen, waardoor echt wel duidelijk werd hoe relatief eenvoudig deze taal in elkaar zit. Je kan Esperanto trouwens ook online leren op <a href="http://nl.lernu.net/">Lernu!</a>.</p>
<h3>FOSDEM</h3>
<p>Dit weekend was het ook weer <a href="http://fosdem.org">FOSDEM</a>, de Free and Open Source Developers&#8217; European Meeting. Op dit twee dagen durende evenement in de VUB worden enorm veel presentaties, workshops,&#8230; gegeven over allerlei zaken die met Open Source te maken hebben. Eigenlijk is het de <del>JavaPolis</del> <a href="http://www.javoxx.com/">Javoxx</a> van de Open Source, maar dan volledig gratis. De presentatie die me het meeste interesseerde ging over IronRuby. Toen ik echter om 9u (op een zondag!) op FOSDEM aankwam bleek dat deze voorstelling was afgelast omdat de spreker ziek was. Kan gebeuren natuurlijk&#8230; Voorstellingen die ik wel heb kunnen volgen waren: de inleiding in de Ruby-room, Prawn, Wine, OpenSUSE on netbooks, Ext4 en een basis inleiding tot objecten, classes en modules in Ruby. Thunderbird3 had ik ook graag gevolgd maar de zaal zat al snel volledig vol.</p>
<p>Natuurlijk zijn er nog tal van bij-activiteiten op FOSDEM, zoals een PGP Keysigning-party. Ook staan er tal van standjes van verschillende Linux distributies en andere Open Source projecten zoals PHP, MySQL, Haiku etc. Zo ben ik even langs de stand van <a href="http://www.ubuntu-be.org/">Ubuntu-be</a> geweest en met de hulp die ik daar heb gekregen werkt wi-fi op m&#8217;n laptop nu ook als ACPI niet aanstaat! Het was dus een druk maar leuk en leerrijk weekend.</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/25Yyl3nGd_0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/02/talenfestival-fosdem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/02/talenfestival-fosdem/</feedburner:origLink></item>
		<item>
		<title>Bestanden synchroniseren met Unison</title>
		<link>http://feedproxy.google.com/~r/teranex-rss/~3/Z86L3EEh0es/</link>
		<comments>http://budts.be/weblog/2009/02/bestanden-synchroniseren-met-unison/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 21:07:51 +0000</pubDate>
		<dc:creator>teranex</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[unison]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://budts.be/weblog/?p=669</guid>
		<description><![CDATA[Nu ik mijn laptop weer aan de praat heb gekregen en zowel m&#8217;n desktop PC als m&#8217;n laptop Linux draaien heb ik de manier waarop ik deze synchroniseer nog eens herbeken en aangepast. Toen mijn beide PC&#8217;s windows draaiden maakte ik gebruik van Subversion, om de bestanden op de Desktop en Laptop te synchroniseren. Dit [...]]]></description>
			<content:encoded><![CDATA[<p>Nu ik mijn laptop weer aan de praat heb gekregen en zowel m&#8217;n desktop PC als m&#8217;n laptop Linux draaien heb ik de manier waarop ik deze synchroniseer nog eens herbeken en aangepast. Toen mijn beide PC&#8217;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&#8217;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 <a href="http://dreamhost.com">Dreamhost</a> 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&#8217;s een <code>svn commit</code> doen en een <code>svn update</code>, soms meerdere keren als er op de beide pc&#8217;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.</p>
<p>Nu gebruik ik twee aparte tooltjes voor enerzijds de synchronisatie tussen de twee pc&#8217;s en anderzijds de off-site backup. Voor de backup gebruik ik <a href="http://duplicity.nongnu.org/">Duplicity</a>, waar ik niet verder op in ga. Voor de synchronisatie gebruik ik <a href="http://www.cis.upenn.edu/~bcpierce/unison/">Unison</a>. Unison werkt zowel onder Linux als onder Windows. Onder Ubuntu kan je het installeren (met GUI) door in de terminal <code>sudo apt-get install unison-gtk</code> uit te voeren.</p>
<p>Als je de GUI van Unison voor de eerste keer start wordt je gevraagd welke twee mappen je wil synchroniseren. Deze manier om Unison in te stellen is echter nogal weinig flexibel. Zelf bewerk ik altijd rechtstreeks de <code>.prf</code> bestanden van Unison. Deze zijn te vinden in <code>/home/your-username/.unison/</code>. Deze bestanden kan je in een text-editor zoals Gedit openen en bijmaken, op de pc vanwaaruit je de synchronisatie wil uitvoeren. In mijn geval start ik de synchronisatie altijd vanop de laptop dus het prf bestand staat op de laptop. Een voorbeeld van zo&#8217;n bestand ziet er als volgt uit:</p>
<pre language="prf">
# Unison preferences file
root = /media/cryptdata
root = ssh://192.168.1.112//media/DATA/
perms = 0

ignore = Path data
ignore = Path _ARCHIVE
ignore = Path music

ignore = Path lost+found
ignore = Path .Trash-*
ignore = Path dev/repos
</pre>
<p>Zoals je kan zien wordt de locatie <code>/media/cryptdata</code> (op de laptop) gesynchroniseerd met de locatie <code>ssh://192.168.1.112//media/DATA/</code>. Dit is een NTFS partitie die gemount is op /media/DATA op mijn desktop PC, die via OpenSSH bereikbaar is op ons lokale netwerk. Omdat de bestandsrechten op de NTFS partitie anders worden ingesteld dan op de laptop (Ext3) gebruik ik de optie <code>perms = 0</code> zodat bestandspermissies worden genegeerd. Met de <code>ignore</code>-optie kan je bestanden en paden laten negeren, zoals je in mijn configuratie kan zien. Er zijn nog tal van andere opties die in de <a href="http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html">manual</a> kan terugvinden.</p>
<img src="http://feeds.feedburner.com/~r/teranex-rss/~4/Z86L3EEh0es" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://budts.be/weblog/2009/02/bestanden-synchroniseren-met-unison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://budts.be/weblog/2009/02/bestanden-synchroniseren-met-unison/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.449 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-04 22:00:36 -->
