<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Affinno's Weblog</title>
	<atom:link href="http://affinno.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://affinno.wordpress.com</link>
	<description>Blog over software development in het algemeen en Microsoft technologie in het bijzonder.</description>
	<lastBuildDate>Fri, 13 Jan 2012 14:56:09 +0000</lastBuildDate>
	<language>nl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='affinno.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5d16412ddeb58468829bf93ababd0c6d?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Affinno's Weblog</title>
		<link>http://affinno.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://affinno.wordpress.com/osd.xml" title="Affinno&#039;s Weblog" />
	<atom:link rel='hub' href='http://affinno.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Automatisch invullen van website formulieren: Roboform</title>
		<link>http://affinno.wordpress.com/2012/01/13/automatisch-invullen-van-website-formulieren-roboform/</link>
		<comments>http://affinno.wordpress.com/2012/01/13/automatisch-invullen-van-website-formulieren-roboform/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 14:51:33 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Biek]]></category>
		<category><![CDATA[Testen]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Roboform]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=374</guid>
		<description><![CDATA[Ken je dat, als developer, dat je gevraagd wordt om een issue te bekijken als &#8216;het aanvraagformulier&#8217; wordt gesubmit. Dus je start de applicatie, vult het formulier in, en drukt op &#8216;submit&#8217;.  Je controleert even wat, klikt &#8216;back&#8217;, en je moet weer het formulier invullen. Dan moet je daarna wat code aanpassen, runnen, formulier invullen, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=374&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ken je dat, als developer, dat je gevraagd wordt om een issue te bekijken als &#8216;het aanvraagformulier&#8217; wordt gesubmit. Dus je start de applicatie, vult het formulier in, en drukt op &#8216;submit&#8217;.  Je controleert even wat, klikt &#8216;back&#8217;, en je moet weer het<strong> formulier invullen</strong>. Dan moet je daarna wat code aanpassen, runnen, <strong>formulier invullen</strong>, styling bekijken, aanpassen, <strong>formulier invullen</strong>&#8230;. je begrijpt wat ik wil zeggen: elke keer een heel formulier invullen is niet leuk. Helemaal niet omdat als je later wat moet testen je het formulier zo beu bent dat je overal waar het kan de letter &#8216;a&#8217; of het cijfer &#8217;0&#8242; invult, en dat er nooit meer een <strong>representatieve input</strong> uit het formulier komt je applicatie. Aangezien ik ook in dat schuitje zit ging ik op zoek naar een tooltje dat dat invullen voor mij kan doen, en ik kwam uit bij Roboform.</p>
<p>Als je op de site van Roboform komt dan lijkt het in eerste instantie voornamelijk een passwordmanager. Daar gebruik ik het niet voor, ik gebruik het voor het automatisch invullen van formulieren tijdens testen.</p>
<p>Het werkt als volgt:</p>
<ul>
<li>Je vult 1 keer een heel formulier in met representatieve data</li>
<li>Je klikt in de Roboform toolbar op &#8216;opslaan&#8217;</li>
<li>De volgende keer dat je het formulier moet invullen klik je in de Roboform toolbar op het &#8216;invul&#8217; icoon en voila; de data staat ingevuld.</li>
</ul>
<p>Je kunt ook meerdere keren verschillende input opslaan; je kunt dan later kiezen welke opgeslagen data je wilt invullen op dat moment. Het is voor zover ik weet niet mogelijk om (zoals je bij geautomatiseerd testen wellicht wilt) data random laten te genereren (bv elke keer een ander telefoonnummer) maar voor (debug) developer testen is het erg handig.</p>
<p>Het werkt in Internet Explorer, FireFox, Opera en Chrome.</p>
<p>In de gratis versie wordt een beperkt aantal url&#8217;s ondersteund (dus je kunt dan voor maximaal 10 url&#8217;s een formulier opslaan) maar als je vindt dat het prettig werkt dan kost het maar $9,99 (nee, ik heb geen provisie regeling) en dat was het mij persoonlijk zeker waard.</p>
<p><a href="http://affinno.files.wordpress.com/2012/01/roboform-logo-suqare.jpg"><img class="alignleft  wp-image-377" title="roboform-logo-suqare" src="http://affinno.files.wordpress.com/2012/01/roboform-logo-suqare.jpg?w=159&#038;h=172" alt="" width="159" height="172" /></a></p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/biek/'>Biek</a>, <a href='http://affinno.wordpress.com/category/testen/'>Testen</a>, <a href='http://affinno.wordpress.com/category/tools/'>Tools</a> Tagged: <a href='http://affinno.wordpress.com/tag/roboform/'>Roboform</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=374&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2012/01/13/automatisch-invullen-van-website-formulieren-roboform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>

		<media:content url="http://affinno.files.wordpress.com/2012/01/roboform-logo-suqare.jpg?w=279" medium="image">
			<media:title type="html">roboform-logo-suqare</media:title>
		</media:content>
	</item>
		<item>
		<title>Ervaringen met Scrum</title>
		<link>http://affinno.wordpress.com/2011/11/11/ervaringen-met-scrum/</link>
		<comments>http://affinno.wordpress.com/2011/11/11/ervaringen-met-scrum/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 09:25:39 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Methodes]]></category>
		<category><![CDATA[ervaring]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=367</guid>
		<description><![CDATA[Enige tijd geleden ben ik begonnen op een project waar Scrum wordt gebruikt. Hier mijn eerste ervaringen met Scrum: Wie let er op het tempo? Aangezien het hele team de baas is, is er dus niemand echt de baas. Wie houdt er dan in de gaten of de velocity van 60 storypoints wel ambitieus is, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=367&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Enige tijd geleden ben ik begonnen op een project waar Scrum wordt gebruikt.<br />
Hier mijn eerste ervaringen met Scrum:</p>
<p><strong>Wie let er op het tempo?</strong><br />
Aangezien het hele team de baas is, is er dus niemand echt de baas. Wie houdt er dan in de gaten of de velocity van 60 storypoints wel ambitieus is, of dat er eigenlijk wel 80 storypoints door het team gehaald kunnen worden?<br />
De product owner kan het niet inschatten, en een langzaam team ziet wellicht niet hoe langzaam ze zijn.</p>
<p><strong>Daily standup is nuttig.</strong><br />
Het is niet altijd even leuk voor elk teamlid om met de billen bloot te moeten elke dag, maar met deze meeting is het wel erg duidelijk of er voortgang wordt geboekt of dat mensen blijven hangen in bepaalde stories.</p>
<p><strong>Retrospective rules.</strong><br />
Onze sprints duren 2 weken. Dat wil zeggen dat we elke 2 weken terugkijken over hoe het is gegaan; wat er goed is gegaan en wat er beter had gekund. En dat is gewoonweg awesome. Elke 2 weken een kans om bij te sturen, om echt na te denken of we op de goede weg zitten, en ook dus bij te kunnen sturen.<br />
Dat vind ik echt veel beter dan aan het einde concluderen dat het allemaal anders had gemoeten.</p>
<p><strong>Twee-wekelijks opleveren; directe feedback</strong><br />
Meer dan eens wordt er maanden achtereen code geschreven zonder dat een stakeholder er iets van ziet. Dikke kans dat het na al die maanden niet exact overeenkomt met wat die stakeholders in gedachten hadden. Dus het 2-wekelijks opleveren van software geeft niet alleen regelmatig aan hoe de voortgang is, maar geeft ook al snel inzage in wat er ontwikkeld wordt.</p>
<p><strong>Schatten van de userstories</strong><br />
Het schatten van userstores, hier gedaan in storypoints maar het kan ook prima in uren, met meerdere mensen is een prima middel gebleken om al vroeg te discussieren over complexiteit van userstories en wat ze eigenlijk precies inhouden.<br />
Ook geldt in dit geval: twee weten meer dan een dus de schatting is accurater dan wanneer één iemand zich hier mee bezighoudt.</p>
<p><strong>Echte betrokkenheid met degene voor wie je het doet door de directe communicatie</strong><br />
Een productowner die in dezelfde ruimte zit als waar het development team zit en altijd aanspreekbaar is: wat een luxe!<br />
Geen &#8216;het zal wel dit zijn&#8217; meer maar direct vragen wat gewenst is. Een absolute kwaliteitverbeteraar.</p>
<p><strong>Goede scrummaster onontbeerlijk</strong><br />
De titel zegt genoeg; een scrummaster kan met een neutrale blik (want niet in het team) bekijken of het proces goed loopt.</p>
<p><strong>Userstories beter dan MS-Word proza.</strong><br />
We werken hier met userstories in een vast formaat: AS A &#8212; I WANT &#8212; SO THAT.<br />
Bijvoorbeeld AS A user I WANT to be able to see the unread email indicated SO THAT i can easily see which email i have to process.<br />
En dat is wellicht wat meer werk voor de product owner dan een standaard MS-Word document, maar als developer werkt het wel een stuk prettiger als de specificaties op deze manier zijn geschreven.<br />
Vooral het laatste, SO THAT, ofwel het waarom, is vaak erg verduidelijkend.</p>
<p><strong>Sterke productowner</strong><br />
Je moet wel een sterke product owner hebben. Hij of zijn bepaalt namens alle gebruikers en belanghebbenden. Voordeel is wel dat dat uitzoekwerk buiten de scope van de developer plaatsvindt maar je hoort alleen de conclusie, en niet de discussie vooraf. Degegen bij wie je later je info haalt moet dan ook wel goed op de hoogte zijn.</p>
<p><a href="http://affinno.files.wordpress.com/2011/11/scrumcycle2.png"><img class="alignleft size-full wp-image-368" title="scrumcycle2" src="http://affinno.files.wordpress.com/2011/11/scrumcycle2.png?w=510&#038;h=236" alt="" width="510" height="236" /></a></p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/methodes/'>Methodes</a> Tagged: <a href='http://affinno.wordpress.com/tag/ervaring/'>ervaring</a>, <a href='http://affinno.wordpress.com/tag/scrum/'>Scrum</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/367/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/367/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/367/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=367&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2011/11/11/ervaringen-met-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>

		<media:content url="http://affinno.files.wordpress.com/2011/11/scrumcycle2.png" medium="image">
			<media:title type="html">scrumcycle2</media:title>
		</media:content>
	</item>
		<item>
		<title>Data is lost from my asp.net cache</title>
		<link>http://affinno.wordpress.com/2011/09/19/data-is-lost-from-my-asp-net-cache/</link>
		<comments>http://affinno.wordpress.com/2011/09/19/data-is-lost-from-my-asp-net-cache/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 14:37:44 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Even puzzelen]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=363</guid>
		<description><![CDATA[A strange experience it was; losing data from the Asp.net cache. I was refactoring some code which was used frequently in my Asp.net code, and all it did was getting a non-volatile list of items from the database. A good candidate for some caching I thought. So I created the caching code, hit F5 and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=363&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A strange experience it was; losing data from the Asp.net cache.<br />
I was refactoring some code which was used frequently in my Asp.net code, and all it did was getting a non-volatile list of items from the database. A good candidate for some caching I thought.</p>
<p>So I created the caching code, hit F5 and started the program.<br />
And guess what? All new errors occurred.</p>
<p>While debugging I found out that the first moment I put in ten items for the cachekey, and later on I only got five out when I asked for the same data.<br />
So what is this? A bug in the cache in .Net?<br />
Most likely not, so I investigated the rest of the code.</p>
<p>And what turned out to be the case?<br />
One function getting the data from the cache actually removed items from the list.<br />
That is perfectly ok if the next code gets a fresh result from the database, but not if the items are removed from a list which is actually in cache.</p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/even-puzzelen/'>Even puzzelen</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/363/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=363&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2011/09/19/data-is-lost-from-my-asp-net-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>
	</item>
		<item>
		<title>Conditionally enable fieldvalidators (ie RequiredFieldValidator) in Asp.Net</title>
		<link>http://affinno.wordpress.com/2011/08/09/conditionally-enable-fieldvalidators-ie-requiredfieldvalidator-in-asp-net/</link>
		<comments>http://affinno.wordpress.com/2011/08/09/conditionally-enable-fieldvalidators-ie-requiredfieldvalidator-in-asp-net/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 21:45:21 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[Even puzzelen]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=354</guid>
		<description><![CDATA[Today i used the old and familiar asp.net validators again. The code was straight forward: controls where dynamicly created and their validators, dynamicly, also. But in this case i wanted to use the validators conditionally, which is not an uncommon thing todo: Say you order a book. You have to enter your delivery address, so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=354&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today i used the old and familiar asp.net validators again.<br />
The code was straight forward: controls where dynamicly created and their validators, dynamicly, also.<br />
But in this case i wanted to use the validators conditionally, which is not an uncommon thing todo:</p>
<p>Say you order a book. You have to enter your delivery address, so that field is mandatory so you attach a RequiredFieldValidator to it. Then there is a checkbox &#8216;use another address for invoicing&#8217;. When you check it, the invoice address is mandatory, but when you uncheck it, the address must be optional (and probably disabled, but that&#8217;s another thing). The solution: conditionally (based on the condition &#8216;is checkbox checked?&#8217;) the invoce address textbox validator must do it&#8217;s work; it must be enabled or disabled.</p>
<p>The Asp.Net validators are split into two parts:<br />
a client side validation and a server side validation.<br />
For the client side there is a simple javascript function (which is generated by the .Net framework when you use .NEt validators) for enabling the validator:</p>
<p><pre class="brush: jscript;">
 ValidatorEnable(CONTROL, enableValidator);
</pre></p>
<p>I&#8217;ve called it with Jquery with a change event on the checkbox: if the control is checked, call ValidatorEnable(txtInvoiceAddress, true); when the control is un-checked, call ValidatorEnable(txtInvoiceAddress, false).</p>
<p>On the server side, it&#8217;s almost as simple: you have to override the &#8216;Validate&#8217; event:</p>
<p><pre class="brush: csharp;">
public override void Validate()
{
  if (chkUseOtherAddress.Checked)
  {
  ReqValidatortxtInvoiceAddress.Enabled = true;
  }
  else
  {
  ReqValidatortxtInvoiceAddress.Enabled = false;
  }
  base.Validate();
}
</pre></p>
<p>And then you&#8217;re good to go. The client side part makes sure the average user get&#8217;s client side validation; the server side validation validates the user who bypass the normal page or have Javascript disabled.</p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/asp-net/'>Asp.Net</a>, <a href='http://affinno.wordpress.com/category/even-puzzelen/'>Even puzzelen</a>, <a href='http://affinno.wordpress.com/category/javascript/'>Javascript</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=354&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2011/08/09/conditionally-enable-fieldvalidators-ie-requiredfieldvalidator-in-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>
	</item>
		<item>
		<title>Deja Vu: browserfunctionaliteiten</title>
		<link>http://affinno.wordpress.com/2011/03/30/deja-vu-browserfunctionaliteiten/</link>
		<comments>http://affinno.wordpress.com/2011/03/30/deja-vu-browserfunctionaliteiten/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 12:25:20 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Denken over development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[New technology]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=346</guid>
		<description><![CDATA[Een van de zaken die ik me herinner uit de begintijd van webdevelopment, we spreken de tijd van Netscape 4 en IE4, was het rekening houden met de grote lijst van verschillen tussen die browsers. Als Netscape 4 dan dit, als IE4 dan zus, als IE5 dan zo. De laatste jaren waren in dat opzicht [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=346&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Een van de zaken die ik me herinner uit de begintijd van webdevelopment, we spreken de tijd van Netscape 4 en IE4, was het rekening houden met de grote lijst van verschillen tussen die browsers.<br />
<strong>Als Netscape 4 dan dit, als IE4 dan zus, als IE5 dan zo.<br />
</strong>De laatste jaren waren in dat opzicht iets eenvoudiger: er kwamen wel meer browsers bij waar je rekening mee moest houden, maar met de komst van <strong>JQuery </strong>was werden veel verschillen netjes gladgestreken.<br />
Maar nu:<strong> HTML5</strong>.<br />
Eigenlijk een specificatie van de nieuwe HTML standaard en nog volop in ontwikkeling, maar langzaam verworden tot een losstaand begrip net als &#8216;<strong>web 2.0</strong>&#8216;.<br />
Omdat <strong>HTML5</strong> een buzzword aan het worden is en de meeste browsers al een deel van de (lopende) specificaties aan het implementeren zijn, willen veel developers toch al iets leuks doen met de nieuwe mogelijkheden.<br />
Maar hoe weet je nu of de browser waarin jouw site wordt getoond wel jouw mooie Canvas ondersteunt? Of het nieuwe Video element, of de Rounded Corner?<br />
Dat kun je natuurlijk zelf gaan afvragen maar je kunt ook gebruik maken van <strong><a href="http://www.modernizr.com/" target="_blank">modernizr</a></strong>.<br />
Als je gebruik maakt van modernizr dan vult modernizr de html tag met classnames die weergeven welke functionaliteiten de browser ondersteunt. Je kunt deze classes vervolgens gebruiken om styling in je CSS toe te passen afhankelijk van de ondersteuning van Canvas, Rounded Corners of niet.</p>
<p>Bijvoorbeeld: <code><br />
.canvas #myCanvas{<br />
background-color:green;<br />
}<br />
.no-canvas #myCanvas{<br />
background-color:blue;<br />
}</code></p>
<p>Als de browser geen HTML5 Canvas ondersteunt dan zal het in de html tag de classname &#8216;<strong>no-canvas</strong>&#8216; toevoegen; als de browser de Canvas wel ondersteunt dan zal het de classname &#8216;<strong>canvas</strong>&#8216; toevoegen.<br />
Dit kun je dan gebruiken in je CSS om een element te stylen.</p>
<p>Ook voor deze kennis in je Javascript is gezorgd: modernizr geeft ook een Javascript object met properties welke functionaliteiten door de browser worden ondersteund:</p>
<p><code>if (Modernizr.canvas) {<br />
//create nice canvas<br />
}<br />
else{<br />
//hide the canvas element<br />
}</code><br />
Een goede (korte) getting started staat hier: <a href="http://webdesignernotebook.com/css/how-to-use-modernizr/">http://webdesignernotebook.com/css/how-to-use-modernizr/</a></p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/css/'>CSS</a>, <a href='http://affinno.wordpress.com/category/denken-over-development/'>Denken over development</a>, <a href='http://affinno.wordpress.com/category/html5/'>HTML5</a>, <a href='http://affinno.wordpress.com/category/new-technology/'>New technology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/346/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/346/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/346/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=346&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2011/03/30/deja-vu-browserfunctionaliteiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>
	</item>
		<item>
		<title>Sync and backup my projects with Dropbox</title>
		<link>http://affinno.wordpress.com/2011/01/29/sync-and-backup-my-projects-with-dropbox/</link>
		<comments>http://affinno.wordpress.com/2011/01/29/sync-and-backup-my-projects-with-dropbox/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 20:42:50 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Biek]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=341</guid>
		<description><![CDATA[As a very happy user i want to do a little free publicity for this very nice, usefull and free tool: Dropbox. It&#8217;s a free tool to keep your files in sync with other computers. It&#8217;s available for every OS and once installed it syncs the files in the dropbox folder with the dropbox server [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=341&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://affinno.files.wordpress.com/2011/01/dropbox_logo_home.png"><img class="alignleft size-full wp-image-342" title="dropbox_logo_home" src="http://affinno.files.wordpress.com/2011/01/dropbox_logo_home.png?w=510" alt="Dropbox"   /></a>As a very happy user i want to do a little free publicity for this very nice, usefull and free tool: Dropbox.<br />
It&#8217;s a free tool to keep your files in sync with other computers. It&#8217;s available for every OS and once installed it syncs the files in the dropbox folder with the dropbox server and from there to all other pc&#8217;s you have the dropbox software installed.<br />
So you can access your files from all your pc&#8217;s and from any other pc from the online dropbox site.<br />
The dropbox site even keeps track of the history of your files, so you can also undelete.<br />
And with your files on all pc&#8217;s, backup is also in place.<br />
So check it out here: <a href="http://www.dropbox.com/">http://www.dropbox.com/</a></p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/biek/'>Biek</a>, <a href='http://affinno.wordpress.com/category/tools/'>Tools</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/341/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=341&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2011/01/29/sync-and-backup-my-projects-with-dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>

		<media:content url="http://affinno.files.wordpress.com/2011/01/dropbox_logo_home.png" medium="image">
			<media:title type="html">dropbox_logo_home</media:title>
		</media:content>
	</item>
		<item>
		<title>Pop up control: jqModal Jquery modal pop-up</title>
		<link>http://affinno.wordpress.com/2011/01/24/pop-up-control-jqmodal-jquery-modal-pop-up/</link>
		<comments>http://affinno.wordpress.com/2011/01/24/pop-up-control-jqmodal-jquery-modal-pop-up/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 11:04:03 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Biek]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[JQModal]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=334</guid>
		<description><![CDATA[I was looking for a pop-up window like solution for a client. It should support these options: Add the pop-up content in the document (so the content would be loaded with the parent document) Add the pop-up content on demand (when the uses clicks on it) Close the pop-up with a button. After a little [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=334&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was looking for a pop-up window like solution for a client.<br />
It should support these options:</p>
<ul>
<li>Add the pop-up content in the document (so the content would be loaded with the parent document)</li>
<li>Add the pop-up content on demand (when the uses clicks on it)</li>
<li>Close the pop-up with a button.</li>
</ul>
<p>After a little searching i came across this control: the jqModal: Minimalist Modaling with jQuery</p>
<p>One thing beforehand: the word &#8216;minimalistic&#8217; scared me; i thought this would be a replacement for &#8216;does not exactly what you want&#8217;, or something similar.<br />
Well, i was wrong.</p>
<p>The first pleasant surprise was that the pop-up would disappear when clicked next to it.<br />
I personally dislike pop-ups you have to close by clicking a button (most of the time very small and placed at a weird location).<br />
So just clicking next tot the pop-up and making it pop-down felt good.</p>
<p>Then <strong>option 1: add the pop-up in the document.</strong><br />
Easy as 1,2, 3:<br />
Add a div with the content (in my case, the content was put in by filling literals via the ASP.Net framework, but you could use any technology or plain text to set content in the div)</p>
<p><pre class="brush: csharp; light: true; toolbar: true; wrap-lines: true;">
&lt;div id=&quot;About&quot; class=&quot;jqmWindow aboutPopUp&quot; style=&quot;width: 300px; height: 250px;&quot;&gt;&lt;/div&gt;
</pre></p>
<p>No need to hide the div, just this script:</p>
<p><pre class="brush: csharp; light: true; toolbar: true; wrap-lines: true;">
$().ready(function () {
    $('#About').jqm();
});
</pre></p>
<p>and a link off course, to click and show the pop-up (div, to be exact. Like most of the pop-up controls, the thing what happens is just a show / hide of a div).</p>
<p><pre class="brush: csharp; light: true; toolbar: true; wrap-lines: true;">
&lt;a onclick=&quot;$('#About').jqmShow();&quot; href=&quot;#&quot;&gt;About&lt;/a&gt;
</pre></p>
<p>Then <strong>option 2: filling it on demand.</strong><br />
For some pop-ups which were not shown so often or with large content, we wanted it to load the content on demand.<br />
And for that too, there is a simple solution: load the page with a Ajax call.<br />
At the server, i implemented an aspx page which was called for all the pop-up&#8217;s, and would return the right html.<br />
This html was not changed frequently so it was cached and thereby served quickly to the pop-up.<br />
The same way a div element (now without content, which gets injected after the Ajax call)</p>
<p><pre class="brush: csharp; light: true; toolbar: true; wrap-lines: true;">
&lt;div style=&quot;width:300px;height:250px;&quot; id=&quot;MoreInfoGeneral&quot;&gt;&lt;/div&gt;

</pre></p>
<p>and also a one liner for the setup:</p>
<p><pre class="brush: csharp; light: true; toolbar: true; wrap-lines: true;">
$('#MoreInfoGeneral').jqm({ ajax: '/more-info/?section=MoreInfoGeneral' });
</pre></p>
<p>and the same code for the link to show / hide the pop-up, like in the first example (but off course with another div id).</p>
<p>And for <strong>option 3</strong>, for people who did not see the clicking next to the div to make it pop down as a natural thing to do,<strong> the close button</strong>.<br />
Just add an image or link to pop down the pop-up:</p>
<p><pre class="brush: csharp; light: true; toolbar: true; wrap-lines: true;">
&lt;img id=&quot;imgPopupCloseButton&quot; style=&quot;cursor: pointer;&quot; onclick=&quot;HideJqmWindow('{DIVID}')&quot; src=&quot;/Images/closeButton.png&quot; alt=&quot;&quot; width=&quot;20&quot; /&gt;
</pre></p>
<p>(in this case, i injected the right id in the source at the placeholder&#8217;{DIVID}&#8217; to reuse this line of code.</p>
<p>Ans there it is, an easy to use yet very well working pop-up control.</p>
<p>You can get it here <a href="http://dev.iceburg.net/jquery/jqModal/">http://dev.iceburg.net/jquery/jqModal/</a></p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/ajax/'>AJAX</a>, <a href='http://affinno.wordpress.com/category/biek/'>Biek</a>, <a href='http://affinno.wordpress.com/category/javascript/'>Javascript</a>, <a href='http://affinno.wordpress.com/category/jquery/'>Jquery</a> Tagged: <a href='http://affinno.wordpress.com/tag/jqmodal/'>JQModal</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/334/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=334&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2011/01/24/pop-up-control-jqmodal-jquery-modal-pop-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>
	</item>
		<item>
		<title>zero based lists became a habit</title>
		<link>http://affinno.wordpress.com/2010/09/23/zero-based-lists-became-a-habit/</link>
		<comments>http://affinno.wordpress.com/2010/09/23/zero-based-lists-became-a-habit/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 08:26:38 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Even puzzelen]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SqlServer]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=328</guid>
		<description><![CDATA[As a C# developer, you realy get acquainted to the fact that every list/array etc. is zero based. In the early days of my development career, as a VB programmer, the fact that a list was zero or one based was a matter of choice! (yeah, that was fun ) Anyway, in those days, you always asked [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=328&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As a C# developer, you realy get acquainted to the fact that every list/array etc. is zero based.<br />
In the early days of my development career, as a VB programmer, the fact that a list was zero or one based was a matter of choice! (yeah, that was fun <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )<br />
Anyway, in those days, you always asked yourself: is it zero based or one based.</p>
<p>As i said, these days i don&#8217;t&#8230; which give me a nice &#8216;unexpected behaviour&#8217; in Sql Server where not all is zero based:<br />
<pre class="brush: sql;">
select CHARINDEX('.Net', 'aaa.Netbbb')
select CHARINDEX('.Net', '.Netbbb')
select CHARINDEX('.Net', 'aaa.N.etbbb')
</pre></p>
<p>Returns, in that order: 4, 1 and 0.<br />
So if you  type this</p>
<p><pre class="brush: csharp;">
&quot;somestringvalue&quot;.IndexOf(&quot;sometext&quot;) &gt;= 0
</pre></p>
<p>in c#, you must remove the &#8220;&gt;&#8221; in Sql.</p>
<p>A minor difference, but in the edge cases of the unit test a large difference <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/even-puzzelen/'>Even puzzelen</a> Tagged: <a href='http://affinno.wordpress.com/tag/c/'>C#</a>, <a href='http://affinno.wordpress.com/tag/sqlserver/'>SqlServer</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=328&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2010/09/23/zero-based-lists-became-a-habit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>
	</item>
		<item>
		<title>Nice Scrum talk in DotNet rocks!</title>
		<link>http://affinno.wordpress.com/2010/09/14/nice-scrum-talk-in-dot-net-rocks/</link>
		<comments>http://affinno.wordpress.com/2010/09/14/nice-scrum-talk-in-dot-net-rocks/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 09:09:30 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Denken over development]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://affinno.wordpress.com/?p=324</guid>
		<description><![CDATA[Today i listened to episode 585 of .Net rocks. And i must say, it turned out to be a very nice show about Scrum with Richard Hundhausen. A lot of questions i had after reading a few books about scrum were answered here. So if you have 45 spare minutes in the car and you&#8217;re [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=324&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://affinno.files.wordpress.com/2010/09/top.jpg"><img class="alignleft size-medium wp-image-325" title="dotnetrockslogo" src="http://affinno.files.wordpress.com/2010/09/top.jpg?w=300&#038;h=39" alt="" width="300" height="39" /></a>Today i listened to episode 585 of .Net rocks.<br />
And i must say, it turned out to be a very nice show about Scrum with Richard Hundhausen.<br />
A lot of questions i had after reading a few books about scrum were answered here.<br />
So if you have 45 spare minutes in the car and you&#8217;re interested, you can download the episode here:</p>
<p><a href="http://www.dotnetrocks.com/default.aspx?showNum=585">http://www.dotnetrocks.com/default.aspx?showNum=585</a></p>
<p>And for the Dutch listeners: the soccer worldcup final is also mentioned.</p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/denken-over-development/'>Denken over development</a> Tagged: <a href='http://affinno.wordpress.com/tag/scrum/'>Scrum</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=324&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2010/09/14/nice-scrum-talk-in-dot-net-rocks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>

		<media:content url="http://affinno.files.wordpress.com/2010/09/top.jpg?w=300" medium="image">
			<media:title type="html">dotnetrockslogo</media:title>
		</media:content>
	</item>
		<item>
		<title>DateTime, DST, &#8216;Daylight Saving Time&#8217;, Time zone, Ambiguous time, Invalid Time</title>
		<link>http://affinno.wordpress.com/2010/08/07/datetime-dst-daylight-saving-time-time-zone-ambiguous-time-invalid-time/</link>
		<comments>http://affinno.wordpress.com/2010/08/07/datetime-dst-daylight-saving-time-time-zone-ambiguous-time-invalid-time/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 19:13:22 +0000</pubDate>
		<dc:creator>Michel</dc:creator>
				<category><![CDATA[Even puzzelen]]></category>
		<category><![CDATA[Technisch ontwerp]]></category>

		<guid isPermaLink="false">https://affinno.wordpress.com/2010/08/07/datetime-dst-daylight-saving-time-time-zone-ambiguous-time-invalid-time/</guid>
		<description><![CDATA[That are the most important words I remembered from my journey into making our application ready for users all over the world. The question was simple: we now save datetimes in local format, but when we plan on implementing our application outside our own country, we have to change that. So after a short discussion [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=322&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>That are the most important words I remembered from my journey into making our application ready for users all over the world.</p>
<p>The question was simple: we now save datetimes in local format, but when we plan on implementing our application outside our own country, we have to change that.</p>
<p>So after a short discussion we decided to follow the best practice: save the dates in UTC format.</p>
<p>So when data is imported or entered via the screen, check where it comes from, calculate the right UTC time from it, and then save the data to the database.</p>
<p>And also: when a user asks for data for august 15<sup>th</sup>, first determine where the user is located, calculate the right UTC time for ‘his’ august 15<sup>th</sup>, and then get the data from the database with the UTC time as selection criteria.</p>
<p><a href="http://affinno.files.wordpress.com/2010/08/timezone_map.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="timezone_map" border="0" alt="timezone_map" align="left" src="http://affinno.files.wordpress.com/2010/08/timezone_map_thumb.jpg?w=336&#038;h=181" width="336" height="181" /></a> </p>
<p><em>So where to start?</em></p>
<p>First I’ve checked the <strong>DateTime</strong> class, and it’s got a <strong>ToLocalTime()</strong> method and a <strong>ToUniversalTime()</strong> method.</p>
<p>That looked promising , but it doesn’t take the users time zone into account. </p>
<p>It doesn’t allow me to ask: what is the UTC time for a user in a time zone which has a UTC offset of -9 (<i>when you live in a place with UTC – 9, your local time is the UTC time (which is located in England) minus 9 hours. So when it’s 14.00 hours in the UTC area / England, you’re probably sleeping at 5 AM. I’ll come back at the summertime / wintertime differences later)</i></p>
<p>The better solution is the .Net <strong>TimeZoneInfo</strong> class.    <br />This is designed for the kind of questions I want to ask.</p>
<p>So, how do I determine what the UTC time is for ‘his August 15th, 0.00 AM’?   <br />First I want to know in which time zone he is in. Does he live in -9 or +9, that makes quite a difference. We decided to store that as a user preference in his profile.</p>
<p>For data import, we had to know the time zone the data supplier uses for our data imports. </p>
<p>Then, we have to know if the user’s local time was in Daylight Saving Time (DST) or not. Not all countries use DST, but for every different time zone there are different ones if there are DST and none-DST countries in it.   <br />So there are multiple +1 time zones, some which have DST and some have not.</p>
<p>So how to start with your TimeZoneInfo?    <br />First create one with the <strong>TimeZoneInfo.FindSystemTimeZoneById(&quot;W. Europe Standard Time&quot;)</strong> method. The name of the timezones can be retrieved like this:</p>
<p><strong>TimeZoneInfo.GetSystemTimeZones()</strong> This returns a collection of TimeZoneInfo objects with an <strong>id</strong> property you can use.</p>
<p>Then you can ask whether this timezone supports / has DST:</p>
<p><strong>timeZone.SupportsDaylightSavingTime() </strong>(this time timeZone is an object instantiated via <strong>TimeZoneInfo.FindSystemTimeZoneById()</strong>)</p>
<p>So, then we can check if August 15th, 0.00 AM exists (when going from wintertime to summertime, the clock goes from 1.59.59 to 3.00.00, so on that day a time of 02.15 is not valid):</p>
<p><strong>timeZoneInfo.IsInvalidTime(dateTime);</strong></p>
<p>If it is a valid date, we have to check if it is an ambiguous date (when going from summertime to wintertime, the clock goes from 02.59.59 to 02.00.00, and then we have the hour from 02.00.00 to 02.59.59 twice).   <br />Because if you get an ambiguous time, we have to know: was it the ‘first’ 02.15 or the ‘second’ 02.15.    <br />In the latter case we are in wintertime and we don’t have to worry about the summertime extra hour.    <br />When it is not an ambiguous time, we can ask if he is in summertime or not:</p>
<p><strong>timeZoneInfo.IsDaylightSavingTime(dateTime)</strong></p>
<p>Then we have to know what the base offset for this time zone is <strong>timeZoneInfo.BaseUtcOffset.Hours     <br /></strong>and    <br /><strong>timeZoneInfo.BaseUtcOffset.Minutes</strong></p>
<p>Let’s say he is in -9: the UTC time is 0.00.00 + 9 hours = 0.09.00   <br />Let’s say he is in summertime so he is actually in (-9 + 1) = -8.</p>
<p>So the UTC time is 0.00.00 + 8 hours = 0.08.00</p>
<p>Finally we got the UTC date, and we can get the data out of the database with this new UTC date.   <br />The other way around (you have a UTC time, and want to know what time it is in ‘his’ time zone)?    <br />It’s simpler, just use </p>
<p><strong>TimeZoneInfo.ConvertTimeFromUtc(dateTime, timeZoneInfo);</strong></p>
<br />Gearchiveerd onder:<a href='http://affinno.wordpress.com/category/even-puzzelen/'>Even puzzelen</a> Tagged: <a href='http://affinno.wordpress.com/tag/technisch-ontwerp/'>Technisch ontwerp</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/affinno.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/affinno.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/affinno.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/affinno.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/affinno.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/affinno.wordpress.com/322/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/affinno.wordpress.com/322/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/affinno.wordpress.com/322/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=affinno.wordpress.com&amp;blog=4221916&amp;post=322&amp;subd=affinno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://affinno.wordpress.com/2010/08/07/datetime-dst-daylight-saving-time-time-zone-ambiguous-time-invalid-time/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Michel van Duijse</media:title>
		</media:content>

		<media:content url="http://affinno.files.wordpress.com/2010/08/timezone_map_thumb.jpg" medium="image">
			<media:title type="html">timezone_map</media:title>
		</media:content>
	</item>
	</channel>
</rss>
