<!DOCTYPE html>
<html xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>

  <!-- r2616 -->
  <!-- This is Squarespace. -->
<!-- mveldth -->
<meta charset="utf-8" />
<title>Marten Veldthuis</title>
<meta property="og:site_name" content="Marten Veldthuis"/>
<meta property="og:title" content="Blog"/>
<meta property="og:url" content="http://martenveldthuis.com/journal"/>
<meta property="og:type" content="article"/>
<meta property="fb:app_id" content="314192535267336"/>
<script>(function(){function j(h,f){var c;return(c=window.getComputedStyle?window.getComputedStyle(h,null):h.currentStyle&&h.currentStyle.getAttribute)?c[f]||"":""}function l(){var h=document.images,f=document.styleSheets;if(i&&(i.rules||i.cssRules)){window.clearTimeout(m);for(var f=!1,c=0,n=h.length;c<n;c++){var d;d=h[c];var q=d.getAttribute("data-image");if(d.src||!q)d=!0;else{var e;var a=d,k=void 0,r=void 0;if(e=a.parentNode){(a.getAttribute("data-image-mode")||"").match(/content-((?:fit)|(?:fill))/); var g=a.offsetWidth,b=j(a,"width"),s=j(a,"height"),o=j(a,"maxWidth");j(a,"maxHeight");k=(a=(a.getAttribute("data-image-dimensions")||"").match(/(\d+?)x(\d+)/))?a[1]:0;k=(r=a?a[2]:0)?k/r:1;"100%"==b&&"auto"==s&&(g=e.offsetWidth);"none"!==o&&(b=void 0,b=parseInt(o,10),b=-1!==o.indexOf("%")?{type:"percent",a:b}:b===b?{type:"number",a:b}:{type:null,a:0},b.type&&(g="percent"==b.type?e.offsetWidth*(b.a/100):b.value));e=Math.max(g,1/k*g)}else e=void 0;if(e){e=parseInt(e.b||e,10);for(g=1;g<p.length&&!(e> p[g]);g++);d.src=q+"?format="+(p[g-1]+"w");d.setAttribute("data-preloaded","true");d=!0}else d=!1}f=!d||f}f&&(m=window.setTimeout(l,50))}else{if(!i){c=0;for(n=f.length;c<n;c++)/\/site.css\?/.test(f[c].href)&&(i=f[c])}m=window.setTimeout(l,50)}}var p=[1500,1E3,750,500,300,100],i,m;l()})();</script><script type="text/javascript" src="//static.squarespace.com/universal/scripts-v6/yui-seed.js?r=08212012175033"></script>
<link rel="canonical" href="http://martenveldthuis.com"/>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"/>
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800,300italic,400italic,600italic,700italic,800italic"/>
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="http://martenveldthuis.com/journal?format=rss" />

<script> Static.SQUARESPACE_CONTEXT = {"appDomain":"squarespace.com","collection":{"id":"4f9c13cd6a9be14f7d11cc8e","enabled":true,"starred":false,"type":1,"ordering":2,"title":"Blog","navigationTitle":"Blog","urlId":"journal","itemCount":27,"updatedOn":1341753469040,"description":"","publicCommentCount":0,"pageSize":20,"folder":false,"dropdown":false,"tags":[],"categories":["Geekery","Links","Photography","Programming","Uncategorized"],"homepage":true,"typeName":"blog","synchronizing":false,"fullUrl":"/","typeLabel":"blog"},"collectionsById":{"4f51e0a4e4b010dc3b881673":{"id":"4f51e0a4e4b010dc3b881673","mainImageId":"4f18786ed09aa93c22dae254","enabled":true,"starred":false,"type":10,"ordering":2,"title":"About","navigationTitle":"About","urlId":"about","itemCount":0,"updatedOn":1327681915330,"description":"<p>This is a Page Overview Block. It uses the title, description and main image of the page settings. To change this text,&nbsp;click the settings button in the top right corner of&nbsp;the page configuration screen.<br></p>","publicCommentCount":0,"folder":false,"dropdown":false,"tags":[],"categories":[],"homepage":false,"typeName":"page","synchronizing":false,"fullUrl":"/about/","typeLabel":"page"},"4f52b1376a9bd70882a57755":{"id":"4f52b1376a9bd70882a57755","enabled":false,"starred":false,"type":1,"ordering":2,"title":"Tumblr","navigationTitle":"Tumblr","urlId":"tumblr","itemCount":6,"updatedOn":1341572520650,"description":"","pageSize":10,"folder":false,"dropdown":false,"tags":[],"categories":[],"homepage":false,"typeName":"blog","synchronizing":false,"fullUrl":"/tumblr/","typeLabel":"blog"},"4f9c13cd6a9be14f7d11cc8e":{"id":"4f9c13cd6a9be14f7d11cc8e","enabled":true,"starred":false,"type":1,"ordering":2,"title":"Blog","navigationTitle":"Blog","urlId":"journal","itemCount":27,"updatedOn":1341753469040,"description":"","publicCommentCount":0,"pageSize":20,"folder":false,"dropdown":false,"tags":[],"categories":["Geekery","Links","Photography","Programming","Uncategorized"],"homepage":true,"typeName":"blog","synchronizing":false,"fullUrl":"/","typeLabel":"blog"},"4f9c13cd6a9be14f7d11cd06":{"id":"4f9c13cd6a9be14f7d11cd06","enabled":true,"starred":false,"type":1,"ordering":2,"title":"Photography","navigationTitle":"Photography","urlId":"photoblog","itemCount":22,"updatedOn":1341767852789,"description":"","publicCommentCount":0,"pageSize":20,"folder":false,"dropdown":false,"tags":[],"categories":[],"homepage":false,"typeName":"blog","synchronizing":false,"fullUrl":"/photoblog/","typeLabel":"blog"},"4ff42ab2e4b096179113bd7c":{"id":"4ff42ab2e4b096179113bd7c","enabled":false,"starred":false,"type":1,"ordering":2,"title":"Blog","navigationTitle":"Blog","urlId":"blog","itemCount":25,"updatedOn":1341573768805,"publicCommentCount":0,"folder":false,"dropdown":false,"tags":[],"categories":["Geekery","Links","Photography","Programming","Uncategorized"],"homepage":false,"typeName":"blog","synchronizing":false,"fullUrl":"/blog/","typeLabel":"blog"},"4ff6c35fe4b00d513badf2da":{"id":"4ff6c35fe4b00d513badf2da","enabled":true,"starred":false,"type":3,"ordering":2,"title":"Tweets by Marten Veldthuis","navigationTitle":"Tweets by Marten Veldthuis","urlId":"4ff6c35fe4b00d513badf2d9","updatedOn":1341571935859,"folder":false,"dropdown":false,"tags":[],"categories":[],"homepage":false,"typeName":"twitter","synchronizing":false,"fullUrl":"/4ff6c35fe4b00d513badf2d9/","typeLabel":"twitter"},"503497d424ac5fb46aa55ef7":{"id":"503497d424ac5fb46aa55ef7","enabled":true,"starred":false,"type":7,"ordering":2,"title":"Read-me","navigationTitle":"Read-me","urlId":"read-me","itemCount":0,"updatedOn":1345624020653,"folder":false,"dropdown":false,"tags":[],"categories":[],"homepage":false,"typeName":"read-me","synchronizing":false,"fullUrl":"/read-me/","typeLabel":"read-me"}},"connectedAccounts":[{"serviceId":9,"userId":"4144709","userName":"Marten Veldthuis","screenname":"Marten Veldthuis","addedOn":1341572079649,"serviceName":"dropbox"},{"serviceId":4,"userId":"14447826","userName":"mveldth","screenname":"Marten Veldthuis","addedOn":1341571935858,"profileUrl":"https://twitter.com/mveldth","iconUrl":"http://a0.twimg.com/profile_images/53035403/image_normal.jpeg","collectionId":"4ff6c35fe4b00d513badf2da","serviceName":"twitter"},{"serviceId":3,"userId":"44917525@N00","userName":"Marten Veldthuis","screenname":"Marten Veldthuis","addedOn":1341572061899,"profileUrl":"http://www.flickr.com/people/marten/","iconUrl":"http://farm1.staticflickr.com/22/buddyicons/44917525@N00.jpg","serviceName":"flickr"}],"itemsById":{"4f9c13cd6a9be14f7d11cc91":{"customContent":null,"likeCount":0,"fullUrl":"/2012/4/23/analyst-watch-water-scrum-fall-is-the-reality-of-agile-sd.html"},"4f9c13cd6a9be14f7d11cc96":{"title":"Open Source Report no. 2","customContent":null,"likeCount":0,"fullUrl":"/2012/2/12/open-source-report-no-2.html"},"4f9c13cd6a9be14f7d11cc9a":{"title":"Open Source Report no. 1","customContent":null,"likeCount":0,"fullUrl":"/2012/1/13/open-source-report-no-1.html"},"4f9c13cd6a9be14f7d11cc9e":{"customContent":null,"likeCount":0,"fullUrl":"/2011/12/8/fakefs-file-system-faker-to-make-testing-stuff-that-depend.html"},"4f9c13cd6a9be14f7d11cca2":{"customContent":null,"likeCount":0,"fullUrl":"/2011/12/7/dochub-much-better-place-to-look-up-stuff-than-w3schools.html"},"4f9c13cd6a9be14f7d11cca6":{"customContent":null,"likeCount":0,"fullUrl":"/2011/12/5/sprintly-very-pretty-scrum-tool-i-especially-like-the.html"},"4f9c13cd6a9be14f7d11ccaa":{"categories":["Uncategorized"],"title":"How do you hold your Nokia?","customContent":null,"likeCount":0,"fullUrl":"/2010/6/29/how-do-you-hold-your-nokia.html"},"4f9c13cd6a9be14f7d11ccaf":{"categories":["Links"],"title":"Touching the future: More thoughts on the coming tablet revolution - RussellBeattie.com","customContent":null,"likeCount":0,"fullUrl":"/2010/6/21/touching-the-future-more-thoughts-on-the-coming-tablet-revol.html"},"4f9c13cd6a9be14f7d11ccb4":{"categories":["Links"],"title":"Bookmarks for June 8th","customContent":null,"likeCount":0,"fullUrl":"/2010/6/18/bookmarks-for-june-8th.html"},"4f9c13cd6a9be14f7d11ccb9":{"categories":["Geekery"],"title":"Personal Cloud Computing","customContent":null,"likeCount":0,"fullUrl":"/2010/5/31/personal-cloud-computing.html"},"4f9c13cd6a9be14f7d11ccbe":{"categories":["Photography"],"title":"Golfing with Ruby","customContent":null,"likeCount":0,"fullUrl":"/2010/5/23/golfing-with-ruby.html"},"4f9c13cd6a9be14f7d11ccc7":{"categories":["Links"],"title":"Bookmarks for May 17th","customContent":null,"likeCount":0,"fullUrl":"/2010/5/18/bookmarks-for-may-17th.html"},"4f9c13cd6a9be14f7d11cccc":{"categories":["Links"],"title":"Bookmarks for May 15th","customContent":null,"likeCount":0,"fullUrl":"/2010/5/16/bookmarks-for-may-15th.html"},"4f9c13cd6a9be14f7d11ccd1":{"categories":["Links"],"title":"Bookmarks for May 11th","customContent":null,"likeCount":0,"fullUrl":"/2010/5/12/bookmarks-for-may-11th.html"},"4f9c13cd6a9be14f7d11ccd6":{"categories":["Links"],"title":"Bookmarks for May 7th","customContent":null,"likeCount":0,"fullUrl":"/2010/5/8/bookmarks-for-may-7th.html"},"4f9c13cd6a9be14f7d11ccdb":{"categories":["Links"],"title":"Bookmarks for May 5th","customContent":null,"likeCount":0,"fullUrl":"/2010/5/6/bookmarks-for-may-5th.html"},"4f9c13cd6a9be14f7d11cce0":{"categories":["Links"],"title":"Bookmarks for May 4th","customContent":null,"likeCount":0,"fullUrl":"/2010/5/4/bookmarks-for-may-4th.html"},"4ff6cad824ac59695c315955":{"title":"A case of the scrums","customContent":null,"likeCount":0,"fullUrl":"/a-case-of-the-scrums"},"4ff7388e84ae4c319d153922":{"title":"Keynote: Architecture the Lost Years by Robert Martin","customContent":null,"likeCount":0,"fullUrl":"/keynote-architecture-the-lost-years-by-robert-martin-youtube"},"4ff987ace4b03dba62d88886":{"title":"Fullscreen flash on Chrome 20","customContent":null,"likeCount":0,"fullUrl":"/fullscreen-flash-on-chrome-20"}},"secureDomain":"https://mveldth.squarespace.com","subscribed":false,"templateCapabilities":{"custom":false,"customTypes":[],"layouts":{"default":{"name":"Default","regions":["site"]}},"navigations":[{"title":"Main Navigation","name":"navigation","index":false,"navigationData":{"items":[{"collection":{"id":"4f9c13cd6a9be14f7d11cc8e","enabled":true,"starred":false,"type":1,"ordering":2,"title":"Blog","navigationTitle":"Blog","urlId":"journal","itemCount":27,"updatedOn":1341753469040,"description":"","publicCommentCount":0,"pageSize":20,"folder":false,"dropdown":false,"tags":[],"categories":["Geekery","Links","Photography","Programming","Uncategorized"],"homepage":true,"typeName":"blog","synchronizing":false,"fullUrl":"/","typeLabel":"blog"},"active":true,"folderActive":false},{"externalLink":{"title":"Photography","url":"http://photos.martenveldthuis.com","newWindow":false},"active":false,"folderActive":false},{"collection":{"id":"4f51e0a4e4b010dc3b881673","mainImageId":"4f18786ed09aa93c22dae254","enabled":true,"starred":false,"type":10,"ordering":2,"title":"About","navigationTitle":"About","urlId":"about","itemCount":0,"updatedOn":1327681915330,"description":"<p>This is a Page Overview Block. It uses the title, description and main image of the page settings. To change this text,&nbsp;click the settings button in the top right corner of&nbsp;the page configuration screen.<br></p>","publicCommentCount":0,"folder":false,"dropdown":false,"tags":[],"categories":[],"homepage":false,"typeName":"page","synchronizing":false,"fullUrl":"/about/","typeLabel":"page"},"active":false,"folderActive":false}],"active":false,"folderActive":true}}],"pageSchemas":{"folder":{},"blog":{"ordering":2}},"templatePageConfigs":{"read-me":{}},"widgetSchemas":{"1":[{"type":"navigation","schemaName":"navigation"},{"type":"navigation","schemaName":"nav"}],"2":[],"3":[{"type":"logo","schemaName":"logo"}],"4":[],"5":[],"6":[],"9":[],"12":[],"44":[],"16":[],"21":[],"23":[],"22":[],"25":[],"24":[],"26":[]}},"tweakJSON":{"@bgrd-color":"rgba(67,75,112,0.2)","@content-color":"#FFF","@content-bdr-color":"#E1E1E1","@txt-color":"#888","@heading-color":"#2A3949","@link-color":"hsla(206, 49%, 46%,1)","@link-hover-color":"#888","@stxt-color":"hsla(210,16%,34%,1)","@slink-color":"#62707f","@slink-hover-color":"#ddd","@sheading-color":"#666","@sidebar-bdr-color":"rgba(4,20,37,0.3)","@header-bdr-color":"rgba(4,20,37,0.3)","@logo-color":"hsla(231,0%,0%,1)","@logo-hover-color":"#F9F9F9","@navlink-color":"hsla(231,0%,0%,1)","@navlink-hover-color":"#F9F9F9","@navbg-color":"rgba(255,255,255,0.4)","@navbg-hover-color":"rgba(94,198,227,0.2)","@footer-color":"#495765","@flink-color":"#62707f","@flink-hover-color":"#ddd","@footer-bdr-color":"rgba(0,0,0,0)",".body-bg":{"background-image":"url(http://static.sqsp.com/static/4f835d8824ac546d1ea35cd2/g/4fbfe120e4b054ed1a1fe872/1337975072407/)","background-position":"top left","background-size":"auto","background-attachment":"scroll","background-repeat":"repeat","background-image-array":["none"],"background-position-array":["top left"],"background-size-array":["auto"],"background-attachment-array":["scroll"],"background-repeat-array":["repeat"]},".header-bg":{"background-image":"none","background-position":"top left","background-size":"auto","background-attachment":"scroll","background-repeat":"repeat","background-image-array":["none"],"background-position-array":["top left"],"background-size-array":["auto"],"background-attachment-array":["scroll"],"background-repeat-array":["repeat"]},".body-font":{"font-family":"'Open Sans',arial,sans-serif","line-height":"2.1em","text-transform":"none","font-weight":"normal","font-style":"normal","font-family-array":["'Open Sans', arial, sans-serif"],"font-weight-array":["normal"],"font-style-array":["normal"],"line-height-array":["2.1em"],"text-transform-array":["none"]},"@baseFontSize":"12px",".logo-font":{"font-family":"'Hero', arial, tahoma, sans-serif","line-height":"1.2em","text-transform":"uppercase","letter-spacing":"0px","font-weight":"normal","font-style":"normal","font-family-array":["'Hero', arial, tahoma, sans-serif"],"font-weight-array":["normal"],"font-style-array":["normal"],"line-height-array":["1.2em"],"text-transform-array":["uppercase"],"letter-spacing-array":["0px"]},"@logo-font-size":"36px",".nav-font":{"font-family":"'Open Sans',arial,sans-serif","line-height":"1em","text-transform":"none","letter-spacing":"0px","font-weight":"bold","font-style":"normal","font-family-array":["'Open Sans', arial, sans-serif"],"font-weight-array":["bold"],"font-style-array":["normal"],"line-height-array":["1em"],"text-transform-array":["none"],"letter-spacing-array":["0px"]},"@nav-size":"12px",".quote-font":{"font-family":"'Bitter',arial,sans-serif","line-height":"1.9em","text-transform":"none","letter-spacing":"0px","font-weight":"normal","font-style":"italic","font-family-array":["'Bitter', arial, sans-serif"],"font-weight-array":["normal"],"font-style-array":["italic"],"line-height-array":["1.9em"],"text-transform-array":["none"],"letter-spacing-array":["0px"]},"@quote-size":"14px",".heading-font":{"font-family":"'Bitter',arial,sans-serif","line-height":"1em","text-transform":"none","letter-spacing":"0px","font-weight":"bold","font-style":"normal","font-family-array":["'Bitter', arial, sans-serif"],"font-weight-array":["bold"],"font-style-array":["normal"],"line-height-array":["1em"],"text-transform-array":["none"],"letter-spacing-array":["0px"]},"@heading-size":"16px","@content":"650px","@sidebar":"225px","@logo-image":"220px","@site-top":"40px","@header":"20px","@nav-padding":"20px","@nav-radius":"5px","@nav-spacing":"8px","@post-spacing":"40px","navigation-position":"Sidebar","site-title-position":"Sidebar","header-position":"Float","sidebar-position":"Left","social-icons":"Match Template","mobile-text":"Sans","show-post-author":false,"@body-bg-background-image":"none","@body-bg-background-position":"top left","@body-bg-background-size":"auto","@body-bg-background-attachment":"scroll","@body-bg-background-repeat":"repeat","@header-bg-background-image":"none","@header-bg-background-position":"top left","@header-bg-background-size":"auto","@header-bg-background-attachment":"scroll","@header-bg-background-repeat":"repeat","@body-font-font-family":"'Open Sans',arial,sans-serif","@body-font-font-weight":"normal","@body-font-font-style":"normal","@body-font-line-height":"2.1em","@body-font-text-transform":"none","@logo-font-font-family":"'Hero', arial, tahoma, sans-serif","@logo-font-font-weight":"normal","@logo-font-font-style":"normal","@logo-font-line-height":"1.2em","@logo-font-text-transform":"uppercase","@logo-font-letter-spacing":"0px","@nav-font-font-family":"'Open Sans',arial,sans-serif","@nav-font-font-weight":"bold","@nav-font-font-style":"normal","@nav-font-line-height":"1em","@nav-font-text-transform":"none","@nav-font-letter-spacing":"0px","@quote-font-font-family":"'Bitter',arial,sans-serif","@quote-font-font-weight":"normal","@quote-font-font-style":"italic","@quote-font-line-height":"1.9em","@quote-font-text-transform":"none","@quote-font-letter-spacing":"0px","@heading-font-font-family":"'Bitter',arial,sans-serif","@heading-font-font-weight":"bold","@heading-font-font-style":"normal","@heading-font-line-height":"1em","@heading-font-text-transform":"none","@heading-font-letter-spacing":"0px","@header-color":"#EEE",".mob-logo-font":{"font-family-array":["'Hero', arial, tahoma, sans-serif"],"font-family":"'Hero', arial, tahoma, sans-serif","font-weight-array":["normal"],"font-weight":"normal","font-style-array":["normal"],"font-style":"normal","line-height-array":["1.2em"],"line-height":"1.2em","text-transform-array":["uppercase"],"text-transform":"uppercase","letter-spacing-array":["0px"],"letter-spacing":"0px"},"@mob-logo-font-size":"36px","@mob-logo-font-font-family":"'Hero', arial, tahoma, sans-serif","@mob-logo-font-font-weight":"normal","@mob-logo-font-font-style":"normal","@mob-logo-font-line-height":"1.2em","@mob-logo-font-text-transform":"uppercase","@mob-logo-font-letter-spacing":"0px","promoted-blocks-blog-post":true,"promoted-blocks-blog-list":true},"website":{"id":"4f51e0a4e4b010dc3b88166d","identifier":"mveldth","contentModifiedOn":1341767876145,"siteStatus":{},"language":"en-US","timeZone":"Europe/Amsterdam","machineTimeZoneOffset":7200000,"timeZoneOffset":7200000,"timeZoneAbbr":"CEST","siteTitle":"Marten Veldthuis","siteDescription":"","location":{"addressTitle":"","addressLine1":"","addressLine2":"","addressCountry":""},"shareButtonOptions":{"1":true,"3":true,"2":true,"6":true},"authenticUrl":"http://martenveldthuis.com","baseUrl":"http://martenveldthuis.com","socialAccounts":[{"serviceId":4,"userId":"14447826","userName":"mveldth","screenname":"Marten Veldthuis","addedOn":1341571935858,"profileUrl":"https://twitter.com/mveldth","iconUrl":"http://a0.twimg.com/profile_images/53035403/image_normal.jpeg","collectionId":"4ff6c35fe4b00d513badf2da","serviceName":"twitter"},{"serviceId":3,"userId":"44917525@N00","userName":"Marten Veldthuis","screenname":"Marten Veldthuis","addedOn":1341572061899,"profileUrl":"http://www.flickr.com/people/marten/","iconUrl":"http://farm1.staticflickr.com/22/buddyicons/44917525@N00.jpg","serviceName":"flickr"}]},"websiteCloneable":false,"websiteSettings":{"id":"4f51e0a4e4b010dc3b88166e","websiteId":"4f51e0a4e4b010dc3b88166d","type":"Personal","subject":"Web Development","country":"NL","state":"","simpleLikingEnabled":true,"commerceEnabled":false,"defaultPostFormat":"%t","commentLikesAllowed":true,"commentAnonAllowed":true,"commentThreaded":true,"commentApprovalRequired":false,"commentAvatarsOn":true,"commentSortType":1,"commentFlagThreshold":2,"commentFlagsAllowed":true,"commentEnableByDefault":true,"commentDisableAfterDaysDefault":30,"disqusShortname":"","homepageTitleFormat":"%s","collectionTitleFormat":"%c \u2014 %s","itemTitleFormat":"%i \u2014 %s","commentsEnabled":true,"storeSettings":{"returnPolicy":null,"termsOfService":null,"privacyPolicy":null,"regionPolicy":1,"stockLevelAlertLimit":5,"stripeConnected":false}}}; SquarespaceFonts.loadViaContext(); Squarespace.load(); </script>

<!--[if gte IE 9]> <!-- --><link rel="stylesheet" type="text/css" href="/site.css?tid=4f84457724acf88285416908&r=2616&t=1345147506783"/><!-- <![endif]-->
<!--[if lt IE 9]><script src="//static.squarespace.com/universal/scripts-thirdparty/html5/html5-shiv.js"></script><link rel="stylesheet" type="text/css" href="/site.css?tid=4f84457724acf88285416908&r=2616&t=1345147506783&noMedia=true"/><![endif]-->
 
  <!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
	<link href='//fonts.googleapis.com/css?family=Bitter' rel='stylesheet' type='text/css'>
  <script type="text/javascript" src="/scripts/combo/2616/?site.js"></script>
  <meta name="viewport" content="width=device-width">  
</head>

<body id="collection-4f9c13cd6a9be14f7d11cc8e" class="collection-type-blog homepage view-list collection-4f9c13cd6a9be14f7d11cc8e collection-layout-default navigation-position-sidebar site-title-position-sidebar header-position-float sidebar-position-left social-icons-match-template mobile-text-sans">

	<div class="mobile-nav">
		<div id="show-nav"><div></div><div></div><div></div></div>
		<div class="nav clear">

	<div class="nav-link active">
	
	
					<a href="/" class="blog-collection"><span>Blog</span></a>
			
		
					
		</div>


	<div class="nav-link">
	
	
			
		
					<a href="http://photos.martenveldthuis.com" class="external-link"><span>Photography</span></a>
					
		</div>


	<div class="nav-link">
	
	
					<a href="/about/" class="page-collection"><span>About</span></a>
			
		
					
		</div>

</div>
	</div>
     
  <header id="header">
    <div class="wrapper clear">
			      <div id="logo" data-content-field="site-title">
        <h1>
        	<a href="/">
        		        		<span class="site-title">Marten Veldthuis</span>
        	</a>
      	</h1>
      </div> 
       
    	<div class="nav clear">

	<div class="nav-link active">
	
	
					<a href="/" class="blog-collection"><span>Blog</span></a>
			
		
					
		</div>


	<div class="nav-link">
	
	
			
		
					<a href="http://photos.martenveldthuis.com" class="external-link"><span>Photography</span></a>
					
		</div>


	<div class="nav-link">
	
	
					<a href="/about/" class="page-collection"><span>About</span></a>
			
		
					
		</div>

</div>
    </div>
  </header>

  <div id="site">
     <div class="wrapper clear">

	    <div id="content">
	      <section role="main" class="list clear">
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-1 clear" id="article-4ff987ace4b03dba62d88886" data-item-id="4ff987ace4b03dba62d88886">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/fullscreen-flash-on-chrome-20">Fullscreen flash on Chrome 20</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4ff987ace4b03dba62d88886"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;html&quot;:&quot;&lt;p&gt;\u200BThis fixed it for me. Obviously, it's my own fault for using the dev-channel.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;html&quot;:&quot;&lt;p&gt;&lt;/p&gt;&quot;&#125;&#125;" data-block-type="2" id="block-ec50bec5662769225c15"><div class="sqs-block-content"><p>​This fixed it for me. Obviously, it's my own fault for using the dev-channel.</p></div></div></div></div></div>				<div class="entry-source">Source: <a href="http://productforums.google.com/forum/#!topic/chrome/Mi-YgjNGaaQ" target="_blank">http://productforums.google.com/forum/#!...</a></div>  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      		    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>July  8, 2012</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4ff987ace4b03dba62d88886" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4ff987ace4b03dba62d88886/" data-record-type="1" data-full-url="/fullscreen-flash-on-chrome-20" data-title="Fullscreen flash on Chrome 20"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-2 clear" id="article-4ff7388e84ae4c319d153922" data-item-id="4ff7388e84ae4c319d153922">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/keynote-architecture-the-lost-years-by-robert-martin-youtube">Keynote: Architecture the Lost Years by Robert Martin</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4ff7388e84ae4c319d153922"><div class="row sqs-row"><div class="col sqs-col-12 span-12"></div></div><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block video-block" data-block-json="&#123;&quot;url&quot;:&quot;http://www.youtube.com/watch?v=WpkDN78P884&quot;,&quot;resolvedBy&quot;:&quot;youtube&quot;,&quot;description&quot;:&quot;Robert C. Martin (Uncle Bob) has been a software professional since 1970. In the last 40 years, he has worked in various capacities on literally hundreds of software projects. He has authored \&quot;landmark\&quot; books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, C++ Programming and Clean Code.&quot;,&quot;title&quot;:&quot;Keynote: Architecture the Lost Years by Robert Martin&quot;,&quot;html&quot;:&quot;&lt;iframe width=\&quot;640\&quot; height=\&quot;360\&quot; src=\&quot;http://www.youtube.com/embed/WpkDN78P884?fs=1&amp;amp;feature=oembed&amp;amp;wmode=opaque\&quot; frameborder=\&quot;0\&quot; allowfullscreen=\&quot;\&quot;&gt;&lt;/iframe&gt;&quot;,&quot;height&quot;:360,&quot;width&quot;:640,&quot;thumbnail_url&quot;:&quot;http://i4.ytimg.com/vi/WpkDN78P884/hqdefault.jpg&quot;,&quot;thumbnail_width&quot;:480,&quot;version&quot;:&quot;1.0&quot;,&quot;type&quot;:&quot;video&quot;,&quot;thumbnail_height&quot;:360,&quot;authorName&quot;:&quot;Confreaks&quot;,&quot;authorUrl&quot;:&quot;http://www.youtube.com/user/Confreaks&quot;,&quot;providerName&quot;:&quot;YouTube&quot;,&quot;providerUrl&quot;:&quot;http://www.youtube.com/&quot;&#125;" data-block-type="32" id="block-8be816ea8623fcd13f9d"><div class="sqs-block-content"><div class="intrinsic" style="max-width:100%"><div class="embed-block-wrapper" style="padding-bottom:56.25%;"><iframe frameborder="0" height="360" data-embed="true" data-image-dimensions="640x360" allowfullscreen="" width="640" src="http://www.youtube.com/embed/WpkDN78P884?fs=1&amp;feature=oembed&amp;wmode=opaque"></iframe></div></div></div></div></div></div></div>				<div class="entry-source">Source: <a href="http://www.youtube.com/watch?v=WpkDN78P884&feature=player_embedded#!" target="_blank">http://www.youtube.com/watch?v=...</a></div>  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      		    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>July  6, 2012</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4ff7388e84ae4c319d153922" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4ff7388e84ae4c319d153922/" data-record-type="1" data-full-url="/keynote-architecture-the-lost-years-by-robert-martin-youtube" data-title="Keynote: Architecture the Lost Years by Robert Martin"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-3 clear" id="article-4ff6cad824ac59695c315955" data-item-id="4ff6cad824ac59695c315955">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/a-case-of-the-scrums">A case of the scrums</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4ff6cad824ac59695c315955"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;html&quot;:&quot;&lt;p&gt;\u200B&lt;/p&gt;&lt;p&gt;Recently where I work we have changed our agile process a bit. When we decided to switch to scrum, we\u2019d started by doing it the way it\u2019s described most of the time: a product owner organizes the backlog, team gives stories estimates, and repeat this for each sprint.&lt;/p&gt;&lt;p&gt;Now, it might be because we have a small team (3 part-time developers), or it might be other reasons, but after trying this process out for a few months, we didn\u2019t feel that this style of doing scrum was the best match for our team and product.&lt;/p&gt;&lt;p&gt;We do sprints of two weeks long, and deploy to staging after every sprint. Every two sprints we deploy to production as well. We feel that this is long enough to get up to speed, but short enough not to lose a lot of flexibility.&lt;/p&gt;&lt;p&gt;All of this is still pretty much a standard scrum setup. However, we felt that the role of the product owner was hard to fill in our situation.&lt;/p&gt;&lt;p&gt;For every release (i.e. two sprints) we choose a few goals. Anyone can add goals into Pivotal Tracker (as epics), and we add a release planning meeting where the epics for the coming two sprints get chosen. Everyone present at this meeting gets to promote one epic and has to explain why they feel that epic is the most important one at that moment. Usually some consensus will be formed, but ultimately the choice of epics for a sprint lies with the product owner.&lt;/p&gt;&lt;p&gt;Epics are about features at a higher level than stories, but should still be able to be completed within the two sprints of the release. Anything that\u2019s bigger than even two sprints should really be possible to be broken up, otherwise it\u2019s probably not fleshed out enough to be broken further down into stories anyway.&lt;/p&gt;&lt;p&gt;After this preplanning meeting the team will ensure that the stories for the chosen goals get created. The developers will form and arrange the backlog for the coming sprint, and meet up to rate the stories.&lt;/p&gt;&lt;p&gt;At the start of the sprint last minute details like incoming requests from customers (this is stuff we should have an administration interface for but currently haven\u2019t, and thus needs to be changed by developers using migrations) get added to the sprint and rated, and any stories that do not fit within the sprint anymore get moved back to the icebox. We do this because these were arranged such that they were the least important, and it\u2019s highly likely that the next release will not have the same goals (in fact, in general this is our rule), and hence will have no place for these overflowing stories.&lt;/p&gt;&lt;p&gt;We religiously trim the backlog in this manner because we have noticed that a backlog cannot be maintained past a few sprints anyway. Any new stories that come up will usually feel more important than whatever is near the end of the backlog, which leaves the backlog with a perpetual long and sad tail. Recognizing this, we have decided to forcefully chop this tail off rather than drag it along.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;html&quot;:&quot;&lt;p&gt;&lt;/p&gt;&quot;&#125;&#125;" data-block-type="2" id="block-bcce0e1c576e1f3c4abc"><div class="sqs-block-content"><p>​</p><p>Recently where I work we have changed our agile process a bit. When we decided to switch to scrum, we’d started by doing it the way it’s described most of the time: a product owner organizes the backlog, team gives stories estimates, and repeat this for each sprint.</p><p>Now, it might be because we have a small team (3 part-time developers), or it might be other reasons, but after trying this process out for a few months, we didn’t feel that this style of doing scrum was the best match for our team and product.</p><p>We do sprints of two weeks long, and deploy to staging after every sprint. Every two sprints we deploy to production as well. We feel that this is long enough to get up to speed, but short enough not to lose a lot of flexibility.</p><p>All of this is still pretty much a standard scrum setup. However, we felt that the role of the product owner was hard to fill in our situation.</p><p>For every release (i.e. two sprints) we choose a few goals. Anyone can add goals into Pivotal Tracker (as epics), and we add a release planning meeting where the epics for the coming two sprints get chosen. Everyone present at this meeting gets to promote one epic and has to explain why they feel that epic is the most important one at that moment. Usually some consensus will be formed, but ultimately the choice of epics for a sprint lies with the product owner.</p><p>Epics are about features at a higher level than stories, but should still be able to be completed within the two sprints of the release. Anything that’s bigger than even two sprints should really be possible to be broken up, otherwise it’s probably not fleshed out enough to be broken further down into stories anyway.</p><p>After this preplanning meeting the team will ensure that the stories for the chosen goals get created. The developers will form and arrange the backlog for the coming sprint, and meet up to rate the stories.</p><p>At the start of the sprint last minute details like incoming requests from customers (this is stuff we should have an administration interface for but currently haven’t, and thus needs to be changed by developers using migrations) get added to the sprint and rated, and any stories that do not fit within the sprint anymore get moved back to the icebox. We do this because these were arranged such that they were the least important, and it’s highly likely that the next release will not have the same goals (in fact, in general this is our rule), and hence will have no place for these overflowing stories.</p><p>We religiously trim the backlog in this manner because we have noticed that a backlog cannot be maintained past a few sprints anyway. Any new stories that come up will usually feel more important than whatever is near the end of the backlog, which leaves the backlog with a perpetual long and sad tail. Recognizing this, we have decided to forcefully chop this tail off rather than drag it along.</p></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/a-case-of-the-scrums#comments-4ff6cad824ac59695c315955"></a></i>
	      	<div class="comment-count"><a href="/a-case-of-the-scrums#comments-4ff6cad824ac59695c315955">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>July  6, 2012</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4ff6cad824ac59695c315955" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4ff6cad824ac59695c315955/" data-record-type="1" data-full-url="/a-case-of-the-scrums" data-title="A case of the scrums"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-4 clear" id="article-4f9c13cd6a9be14f7d11cc91" data-item-id="4f9c13cd6a9be14f7d11cc91">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2012/4/23/analyst-watch-water-scrum-fall-is-the-reality-of-agile-sd.html"></a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cc91"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;&lt;a href=\&quot;http://sdt.bz/m/apparticle.aspx?id=36195\&quot;&gt;Analyst Watch: Water-Scrum-fall is the reality of agile SD Times: Software Development News&lt;/a&gt;:&lt;/p&gt;\n\n&lt;blockquote&gt;Organizations are increasingly adopting agile software development methodologies through a combination of bottom-up adoption and top-down change. However, the reality of agile adoption has diverged from the original ideas described in the Agile Manifesto, with many adoptions resembling what Forrester labels water-Scrum-fall.&lt;/blockquote&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cc92"><div class="sqs-block-content"><p><a href="http://sdt.bz/m/apparticle.aspx?id=36195">Analyst Watch: Water-Scrum-fall is the reality of agile SD Times: Software Development News</a>:</p>

<blockquote>Organizations are increasingly adopting agile software development methodologies through a combination of bottom-up adoption and top-down change. However, the reality of agile adoption has diverged from the original ideas described in the Agile Manifesto, with many adoptions resembling what Forrester labels water-Scrum-fall.</blockquote></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2012/4/23/analyst-watch-water-scrum-fall-is-the-reality-of-agile-sd.html#comments-4f9c13cd6a9be14f7d11cc91"></a></i>
	      	<div class="comment-count"><a href="/2012/4/23/analyst-watch-water-scrum-fall-is-the-reality-of-agile-sd.html#comments-4f9c13cd6a9be14f7d11cc91">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>April 23, 2012</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cc91" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cc91/" data-record-type="1" data-full-url="/2012/4/23/analyst-watch-water-scrum-fall-is-the-reality-of-agile-sd.html" data-title="undefined"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-5 clear" id="article-4f9c13cd6a9be14f7d11cc96" data-item-id="4f9c13cd6a9be14f7d11cc96">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2012/2/12/open-source-report-no-2.html">Open Source Report no. 2</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cc96"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;And immediately I forgot to write this up for a few times&amp;#8230;  So here&amp;#8217;s what\nI&amp;#8217;ve been up to the past weeks:&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\&quot;https://github.com/github/hubot-scripts/blob/master/src/scripts/notify.coffee\&quot;&gt;hubot-scripts&lt;/a&gt;.\nI added a Prowl/NotifyMyAndroid notification script to our work Hubot, that\nwill push every mention of your name to your iOS or Android device.&lt;/li&gt;\n&lt;li&gt;&lt;em&gt;rails&lt;/em&gt;: I fix a small bug where parts of ActiveSupport were not able to be\nloaded in isolation.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\&quot;https://github.com/roqua/simplestats\&quot;&gt;simplestats&lt;/a&gt; is a small Sinatra app\nto collect web statistics from your visitors and save them in MongoDB. I\nwrote this out of frustration with Google Analytics, which is probably very\npowerful, but all we really wanted to know were some browser usage stats,\nspecifically the width of the viewports of our users. While you could push\nthis to GA with a script someone posted somewhere, I simply couldn&amp;#8217;t figure\nout how to get the results back out&amp;#8230;&lt;/li&gt;\n&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cc97"><div class="sqs-block-content"><p>And immediately I forgot to write this up for a few times&#8230;  So here&#8217;s what
I&#8217;ve been up to the past weeks:</p>

<ul>
<li><a href="https://github.com/github/hubot-scripts/blob/master/src/scripts/notify.coffee">hubot-scripts</a>.
I added a Prowl/NotifyMyAndroid notification script to our work Hubot, that
will push every mention of your name to your iOS or Android device.</li>
<li><em>rails</em>: I fix a small bug where parts of ActiveSupport were not able to be
loaded in isolation.</li>
<li><a href="https://github.com/roqua/simplestats">simplestats</a> is a small Sinatra app
to collect web statistics from your visitors and save them in MongoDB. I
wrote this out of frustration with Google Analytics, which is probably very
powerful, but all we really wanted to know were some browser usage stats,
specifically the width of the viewports of our users. While you could push
this to GA with a script someone posted somewhere, I simply couldn&#8217;t figure
out how to get the results back out&#8230;</li>
</ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2012/2/12/open-source-report-no-2.html#comments-4f9c13cd6a9be14f7d11cc96"></a></i>
	      	<div class="comment-count"><a href="/2012/2/12/open-source-report-no-2.html#comments-4f9c13cd6a9be14f7d11cc96">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>February 12, 2012</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cc96" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cc96/" data-record-type="1" data-full-url="/2012/2/12/open-source-report-no-2.html" data-title="Open Source Report no. 2"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-6 clear" id="article-4f9c13cd6a9be14f7d11cc9a" data-item-id="4f9c13cd6a9be14f7d11cc9a">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2012/1/13/open-source-report-no-1.html">Open Source Report no. 1</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cc9a"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;Inspired by Mike Gunderloy&amp;#8217;s attempt at doing something for the open source\nworld every day, I figured I should be able to at least do something every\nweek.&lt;/p&gt;\n\n&lt;p&gt;So here&amp;#8217;s what I&amp;#8217;ve been up to the past week:&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\&quot;http://github.com/roqua/watchmen\&quot;&gt;watchmen&lt;/a&gt; is a new extension for\nPython&amp;#8217;s Fabric library that is aimed at monitoring a set of servers.\nAt the office, we&amp;#8217;re growing pretty tired of Nagios, so I did a little test\nto see how hard it would be to build something better. The actual checks\nwould be pretty doable with this library, though we&amp;#8217;d still need to build\na webbased dashboard and notifications via e-mail/irc/campfire/sms.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\&quot;http://github.com/marten/soundcheck\&quot;&gt;soundcheck&lt;/a&gt; is my unified interface\nto running tests. I recently came across the need to run a Minitest suite,\nso I&amp;#8217;ve added something to support that. Not quite happy with how it works\nyet, I&amp;#8217;ll probably improve it next week.&lt;/li&gt;\n&lt;li&gt;&lt;em&gt;&lt;a href=\&quot;http://twitter.github.com/bootstrap/\&quot;&gt;bootstrap&lt;/a&gt;&lt;/em&gt; I fixed some JS with\nregard to the buttons, when they are &lt;code&gt;&amp;lt;input type=\&quot;submit\&quot;&amp;gt;&lt;/code&gt;s, instead\nof divs with class button.&lt;/li&gt;\n&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cc9b"><div class="sqs-block-content"><p>Inspired by Mike Gunderloy&#8217;s attempt at doing something for the open source
world every day, I figured I should be able to at least do something every
week.</p>

<p>So here&#8217;s what I&#8217;ve been up to the past week:</p>

<ul>
<li><a href="http://github.com/roqua/watchmen">watchmen</a> is a new extension for
Python&#8217;s Fabric library that is aimed at monitoring a set of servers.
At the office, we&#8217;re growing pretty tired of Nagios, so I did a little test
to see how hard it would be to build something better. The actual checks
would be pretty doable with this library, though we&#8217;d still need to build
a webbased dashboard and notifications via e-mail/irc/campfire/sms.</li>
<li><a href="http://github.com/marten/soundcheck">soundcheck</a> is my unified interface
to running tests. I recently came across the need to run a Minitest suite,
so I&#8217;ve added something to support that. Not quite happy with how it works
yet, I&#8217;ll probably improve it next week.</li>
<li><em><a href="http://twitter.github.com/bootstrap/">bootstrap</a></em> I fixed some JS with
regard to the buttons, when they are <code>&lt;input type="submit"&gt;</code>s, instead
of divs with class button.</li>
</ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2012/1/13/open-source-report-no-1.html#comments-4f9c13cd6a9be14f7d11cc9a"></a></i>
	      	<div class="comment-count"><a href="/2012/1/13/open-source-report-no-1.html#comments-4f9c13cd6a9be14f7d11cc9a">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>January 13, 2012</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cc9a" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cc9a/" data-record-type="1" data-full-url="/2012/1/13/open-source-report-no-1.html" data-title="Open Source Report no. 1"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-7 clear" id="article-4f9c13cd6a9be14f7d11cc9e" data-item-id="4f9c13cd6a9be14f7d11cc9e">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2011/12/8/fakefs-file-system-faker-to-make-testing-stuff-that-depend.html"></a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cc9e"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;&lt;a href=\&quot;http://highgroove.com/articles/2011/12/06/fake-it.html\&quot;&gt;FakeFS:&lt;/a&gt; File system faker to make testing stuff that depends on the FS easier.&lt;/p&gt;\n\n&lt;p&gt;Personally, I tend to dependency-inject some IO class when I need to test file stuff.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cc9f"><div class="sqs-block-content"><p><a href="http://highgroove.com/articles/2011/12/06/fake-it.html">FakeFS:</a> File system faker to make testing stuff that depends on the FS easier.</p>

<p>Personally, I tend to dependency-inject some IO class when I need to test file stuff.</p></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2011/12/8/fakefs-file-system-faker-to-make-testing-stuff-that-depend.html#comments-4f9c13cd6a9be14f7d11cc9e"></a></i>
	      	<div class="comment-count"><a href="/2011/12/8/fakefs-file-system-faker-to-make-testing-stuff-that-depend.html#comments-4f9c13cd6a9be14f7d11cc9e">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>December  8, 2011</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cc9e" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cc9e/" data-record-type="1" data-full-url="/2011/12/8/fakefs-file-system-faker-to-make-testing-stuff-that-depend.html" data-title="undefined"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-8 clear" id="article-4f9c13cd6a9be14f7d11cca2" data-item-id="4f9c13cd6a9be14f7d11cca2">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2011/12/7/dochub-much-better-place-to-look-up-stuff-than-w3schools.html"></a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cca2"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;&lt;a href=\&quot;http://dochub.io/#css/\&quot;&gt;DocHub&lt;/a&gt;:&lt;/p&gt;\n\n&lt;p&gt;Much better place to look up stuff than w3schools. I find this a little easier\nto browse than the Mozilla dev center.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cca3"><div class="sqs-block-content"><p><a href="http://dochub.io/#css/">DocHub</a>:</p>

<p>Much better place to look up stuff than w3schools. I find this a little easier
to browse than the Mozilla dev center.</p></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2011/12/7/dochub-much-better-place-to-look-up-stuff-than-w3schools.html#comments-4f9c13cd6a9be14f7d11cca2"></a></i>
	      	<div class="comment-count"><a href="/2011/12/7/dochub-much-better-place-to-look-up-stuff-than-w3schools.html#comments-4f9c13cd6a9be14f7d11cca2">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>December  7, 2011</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cca2" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cca2/" data-record-type="1" data-full-url="/2011/12/7/dochub-much-better-place-to-look-up-stuff-than-w3schools.html" data-title="undefined"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry author-marten-veldthuis post-type-text article-index-9 clear" id="article-4f9c13cd6a9be14f7d11cca6" data-item-id="4f9c13cd6a9be14f7d11cca6">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2011/12/5/sprintly-very-pretty-scrum-tool-i-especially-like-the.html"></a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cca6"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;&lt;a href=\&quot;http://sprint.ly/\&quot;&gt;Sprintly&lt;/a&gt;&lt;/p&gt;\n\n&lt;p&gt;Very pretty scrum tool. I especially like the preformatted form for new stories which forces you to write it in a certain format, I wish Pivotal was a little more opinionated in that area.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cca7"><div class="sqs-block-content"><p><a href="http://sprint.ly/">Sprintly</a></p>

<p>Very pretty scrum tool. I especially like the preformatted form for new stories which forces you to write it in a certain format, I wish Pivotal was a little more opinionated in that area.</p></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2011/12/5/sprintly-very-pretty-scrum-tool-i-especially-like-the.html#comments-4f9c13cd6a9be14f7d11cca6"></a></i>
	      	<div class="comment-count"><a href="/2011/12/5/sprintly-very-pretty-scrum-tool-i-especially-like-the.html#comments-4f9c13cd6a9be14f7d11cca6">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>December  5, 2011</time>
	    	</div>
	    	
	            	
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cca6" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cca6/" data-record-type="1" data-full-url="/2011/12/5/sprintly-very-pretty-scrum-tool-i-especially-like-the.html" data-title="undefined"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-uncategorized author-marten-veldthuis post-type-text article-index-10 clear" id="article-4f9c13cd6a9be14f7d11ccaa" data-item-id="4f9c13cd6a9be14f7d11ccaa">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/6/29/how-do-you-hold-your-nokia.html">How do you hold your Nokia?</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccaa"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;&lt;a href=\&quot;http://conversations.nokia.com/2010/06/28/how-do-you-hold-your-nokia/\&quot;&gt;How do you hold your Nokia? - The official Nokia Blog&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;We\u2019ve found any of the four grips mentioned above to be both comfortable and as you can see, offer no signal degradation whatsoever. This isn\u2019t a feature you\u2019ll only find on high-end Nokia devices either.&lt;/blockquote&gt;&lt;p&gt;I\u2019m sorry Nokia, but you\u2019ve &lt;a href=\&quot;http://www.sidetalkin.com/\&quot;&gt;lost your privileges to make fun of others&lt;/a&gt; about this a long time ago.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccab"><div class="sqs-block-content"><p><a href="http://conversations.nokia.com/2010/06/28/how-do-you-hold-your-nokia/">How do you hold your Nokia? - The official Nokia Blog</a>:</p><blockquote>We’ve found any of the four grips mentioned above to be both comfortable and as you can see, offer no signal degradation whatsoever. This isn’t a feature you’ll only find on high-end Nokia devices either.</blockquote><p>I’m sorry Nokia, but you’ve <a href="http://www.sidetalkin.com/">lost your privileges to make fun of others</a> about this a long time ago.</p></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/6/29/how-do-you-hold-your-nokia.html#comments-4f9c13cd6a9be14f7d11ccaa"></a></i>
	      	<div class="comment-count"><a href="/2010/6/29/how-do-you-hold-your-nokia.html#comments-4f9c13cd6a9be14f7d11ccaa">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>June 29, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Uncategorized">Uncategorized</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccaa" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccaa/" data-record-type="1" data-full-url="/2010/6/29/how-do-you-hold-your-nokia.html" data-title="How do you hold your Nokia?"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-11 clear" id="article-4f9c13cd6a9be14f7d11ccaf" data-item-id="4f9c13cd6a9be14f7d11ccaf">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/6/21/touching-the-future-more-thoughts-on-the-coming-tablet-revol.html">Touching the future: More thoughts on the coming tablet revolution - RussellBeattie.com</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccaf"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;a href=\&quot;http://www.russellbeattie.com/blog/touching-the-future-more-thoughts-on-the-coming-tablet-revolution\&quot;&gt;Russell Beattie on tablet computing&lt;/a&gt;:&lt;br/&gt;&lt;blockquote&gt;&lt;p&gt;Someone on a laptop is usually leaning over, staring intently, clicking their mouse once in a while - all which screams \&quot;Do Not Disturb\&quot; to those around them. Someone using their mobile has almost the same sort of body language, actually! Head down, shoulders hunched, mobile held close to their eyes, squinting intently at the screen while hesitantly jabbing at various options, or suddenly tapping out a message furiously. Everyone around that person gets the clear signal that they are doing something private and to not intrude.&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Using a tablet is completely different! You're usually sitting in a comfortable position, face viewable, eyes scanning normally, with an occasional flick at the screen or other casual movement - this gives a totally different and much more welcoming vibe.&lt;/p&gt;&lt;/blockquote&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccb0"><div class="sqs-block-content"><a href="http://www.russellbeattie.com/blog/touching-the-future-more-thoughts-on-the-coming-tablet-revolution">Russell Beattie on tablet computing</a>:<br/><blockquote><p>Someone on a laptop is usually leaning over, staring intently, clicking their mouse once in a while - all which screams "Do Not Disturb" to those around them. Someone using their mobile has almost the same sort of body language, actually! Head down, shoulders hunched, mobile held close to their eyes, squinting intently at the screen while hesitantly jabbing at various options, or suddenly tapping out a message furiously. Everyone around that person gets the clear signal that they are doing something private and to not intrude.</p><br/><br/><p>Using a tablet is completely different! You're usually sitting in a comfortable position, face viewable, eyes scanning normally, with an occasional flick at the screen or other casual movement - this gives a totally different and much more welcoming vibe.</p></blockquote></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/6/21/touching-the-future-more-thoughts-on-the-coming-tablet-revol.html#comments-4f9c13cd6a9be14f7d11ccaf"></a></i>
	      	<div class="comment-count"><a href="/2010/6/21/touching-the-future-more-thoughts-on-the-coming-tablet-revol.html#comments-4f9c13cd6a9be14f7d11ccaf">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>June 21, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccaf" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccaf/" data-record-type="1" data-full-url="/2010/6/21/touching-the-future-more-thoughts-on-the-coming-tablet-revol.html" data-title="Touching the future: More thoughts on the coming tablet revolution - RussellBeattie.com"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-12 clear" id="article-4f9c13cd6a9be14f7d11ccb4" data-item-id="4f9c13cd6a9be14f7d11ccb4">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/6/18/bookmarks-for-june-8th.html">Bookmarks for June 8th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccb4"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;ul&gt;&lt;br/&gt;\t&lt;li&gt;&lt;a href=\&quot;http://www.inmethod.com/air-video/features.html\&quot;&gt;Air Video Features&lt;/a&gt; - Watch video on iPhone/iPad streamed from Mac, transcoded on the fly.&lt;/li&gt;&lt;br/&gt;\t&lt;li&gt;&lt;a href=\&quot;http://github.com/cloudhead/http-console\&quot;&gt;http-console&lt;/a&gt; - Command line HTTP console. Seems  to me like every web developer wants this.&lt;/li&gt;&lt;br/&gt;\t&lt;li&gt;&lt;a href=\&quot;http://github.com/baz/blank-compojure-gae\&quot;&gt;Compojure Template   for use on the Google App Engine&lt;/a&gt; - For when I deem Compojure ready enough to start playing with it.&lt;/li&gt;&lt;br/&gt;\t&lt;li&gt;&lt;a href=\&quot;http://github.com/robbyrussell/oh-my-zsh\&quot;&gt;Oh My ZSH&lt;/a&gt; -   Nice  starter kit of zsh settings.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccb5"><div class="sqs-block-content"><ul><br/>	<li><a href="http://www.inmethod.com/air-video/features.html">Air Video Features</a> - Watch video on iPhone/iPad streamed from Mac, transcoded on the fly.</li><br/>	<li><a href="http://github.com/cloudhead/http-console">http-console</a> - Command line HTTP console. Seems  to me like every web developer wants this.</li><br/>	<li><a href="http://github.com/baz/blank-compojure-gae">Compojure Template   for use on the Google App Engine</a> - For when I deem Compojure ready enough to start playing with it.</li><br/>	<li><a href="http://github.com/robbyrussell/oh-my-zsh">Oh My ZSH</a> -   Nice  starter kit of zsh settings.</li><br/></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/6/18/bookmarks-for-june-8th.html#comments-4f9c13cd6a9be14f7d11ccb4"></a></i>
	      	<div class="comment-count"><a href="/2010/6/18/bookmarks-for-june-8th.html#comments-4f9c13cd6a9be14f7d11ccb4">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>June 18, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccb4" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccb4/" data-record-type="1" data-full-url="/2010/6/18/bookmarks-for-june-8th.html" data-title="Bookmarks for June 8th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-geekery author-marten-veldthuis post-type-text article-index-13 clear" id="article-4f9c13cd6a9be14f7d11ccb9" data-item-id="4f9c13cd6a9be14f7d11ccb9">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/31/personal-cloud-computing.html">Personal Cloud Computing</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccb9"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;a href=\&quot;http://www.amazon.com/City-Golden-Shadow-Otherland-1/dp/0886777631/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1275328383&amp;amp;sr=8-1\&quot;&gt;Otherland&lt;/a&gt; is a science-fiction tetralogy wherein the author Tad Williams writes of a future where everyone has computing devices called \&quot;pads\&quot;. While the story never goes into details of these devices, I can imagine them looking quite similar to what the iPad is currently. In the novel, these devices are the main computing power, and people access them either directly, or use them as processors, interfacing with the web through direct neural connectors. While these neural connectors may be some time away, it got me thinking.&lt;br/&gt;&lt;br/&gt;One of the criticisms of the iPad, or tablet pc's in general is that they're missing so much. But what if we were to augment their limited capabilities while you're at home. We already have the keyboard for the iPad, which turns it into a slightly more capable editor.&lt;br/&gt;&lt;br/&gt;What if we to fix the problem of processing power by replacing the Mac on your desk with a Mac Mini sized box, ready to supply it's processing powers to your pad, over the air, to any pad on the local WiFi which needs it. Hook a Drobo up to your network if space is an issue.&lt;br/&gt;&lt;br/&gt;And let's imagine WiFi-enabled screens (Otherland calls them wallscreens). These would probably be similar to iMacs, but less powerful. Your iPad could be the control hub, a switching station which connects your bluetooth keyboard, the screen and the processing node.&lt;br/&gt;&lt;br/&gt;I don't think the iPhone OS is ready for this yet, nor do I have any insight whether it could be made to be. WiFi probably isn't fast enough yet, and there are probably loads of other problems I'm conveniently ignoring. But we're already seeing this become a real possibility. Chuq Von Rospach wrote about coupling Lightroom on your desktop computer with &lt;a href=\&quot;http://www.chuqui.com/2010/05/speaking-of-things-i-want-to-use-the-ipad-for/\&quot;&gt;an iPad Lightroom app&lt;/a&gt;. The only real problem at this point is getting data to and from your iPad fast enough.&lt;br/&gt;&lt;br/&gt;Now, if only that iPad were available over here in the Netherlands\u2026&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccba"><div class="sqs-block-content"><a href="http://www.amazon.com/City-Golden-Shadow-Otherland-1/dp/0886777631/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1275328383&amp;sr=8-1">Otherland</a> is a science-fiction tetralogy wherein the author Tad Williams writes of a future where everyone has computing devices called "pads". While the story never goes into details of these devices, I can imagine them looking quite similar to what the iPad is currently. In the novel, these devices are the main computing power, and people access them either directly, or use them as processors, interfacing with the web through direct neural connectors. While these neural connectors may be some time away, it got me thinking.<br/><br/>One of the criticisms of the iPad, or tablet pc's in general is that they're missing so much. But what if we were to augment their limited capabilities while you're at home. We already have the keyboard for the iPad, which turns it into a slightly more capable editor.<br/><br/>What if we to fix the problem of processing power by replacing the Mac on your desk with a Mac Mini sized box, ready to supply it's processing powers to your pad, over the air, to any pad on the local WiFi which needs it. Hook a Drobo up to your network if space is an issue.<br/><br/>And let's imagine WiFi-enabled screens (Otherland calls them wallscreens). These would probably be similar to iMacs, but less powerful. Your iPad could be the control hub, a switching station which connects your bluetooth keyboard, the screen and the processing node.<br/><br/>I don't think the iPhone OS is ready for this yet, nor do I have any insight whether it could be made to be. WiFi probably isn't fast enough yet, and there are probably loads of other problems I'm conveniently ignoring. But we're already seeing this become a real possibility. Chuq Von Rospach wrote about coupling Lightroom on your desktop computer with <a href="http://www.chuqui.com/2010/05/speaking-of-things-i-want-to-use-the-ipad-for/">an iPad Lightroom app</a>. The only real problem at this point is getting data to and from your iPad fast enough.<br/><br/>Now, if only that iPad were available over here in the Netherlands…</div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/31/personal-cloud-computing.html#comments-4f9c13cd6a9be14f7d11ccb9"></a></i>
	      	<div class="comment-count"><a href="/2010/5/31/personal-cloud-computing.html#comments-4f9c13cd6a9be14f7d11ccb9">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May 31, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Geekery">Geekery</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccb9" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccb9/" data-record-type="1" data-full-url="/2010/5/31/personal-cloud-computing.html" data-title="Personal Cloud Computing"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-photography author-marten-veldthuis post-type-text article-index-14 clear" id="article-4f9c13cd6a9be14f7d11ccbe" data-item-id="4f9c13cd6a9be14f7d11ccbe">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/23/golfing-with-ruby.html">Golfing with Ruby</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccbe"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;Yesterday we held the annual IWI Programming Contest at the university. For this contest, it&amp;#8217;s customary to have one problem which is longwindedly described, but extremely simple to write in code. This year, it basically came down to:&lt;/p&gt;\n\n&lt;ul&gt;\n&lt;li&gt;Read a line containing an integer &lt;em&gt;n&lt;/em&gt;&lt;/li&gt;\n&lt;li&gt;Read &lt;em&gt;n&lt;/em&gt; lines containing an integer &lt;em&gt;x&lt;/em&gt;, and print &lt;code&gt;floor(x/5)&lt;/code&gt;&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;p&gt;We started &lt;a href=\&quot;http://www.codegolf.com\&quot;&gt;golfing&lt;/a&gt; this, and this is what I came up with:&lt;/p&gt;\n\n&lt;pre&gt;&lt;code&gt;#!/usr/bin/ruby -n\np $_.to_i/5 if $.&amp;gt;1\n&lt;/code&gt;&lt;/pre&gt;\n\n&lt;p&gt;The tricky part here is ignoring the first line. It took me a little digging through the Ruby documentation to find that &lt;code&gt;$.&lt;/code&gt; variable, which holds the current line number of the file (or &lt;code&gt;STDIN&lt;/code&gt;) most recently read.&lt;/p&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccbf"><div class="sqs-block-content"><p>Yesterday we held the annual IWI Programming Contest at the university. For this contest, it&#8217;s customary to have one problem which is longwindedly described, but extremely simple to write in code. This year, it basically came down to:</p>

<ul>
<li>Read a line containing an integer <em>n</em></li>
<li>Read <em>n</em> lines containing an integer <em>x</em>, and print <code>floor(x/5)</code></li>
</ul>

<p>We started <a href="http://www.codegolf.com">golfing</a> this, and this is what I came up with:</p>

<pre><code>#!/usr/bin/ruby -n
p $_.to_i/5 if $.&gt;1
</code></pre>

<p>The tricky part here is ignoring the first line. It took me a little digging through the Ruby documentation to find that <code>$.</code> variable, which holds the current line number of the file (or <code>STDIN</code>) most recently read.</p></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/23/golfing-with-ruby.html#comments-4f9c13cd6a9be14f7d11ccbe"></a></i>
	      	<div class="comment-count"><a href="/2010/5/23/golfing-with-ruby.html#comments-4f9c13cd6a9be14f7d11ccbe">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May 23, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Photography">Photography</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccbe" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccbe/" data-record-type="1" data-full-url="/2010/5/23/golfing-with-ruby.html" data-title="Golfing with Ruby"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-15 clear" id="article-4f9c13cd6a9be14f7d11ccc7" data-item-id="4f9c13cd6a9be14f7d11ccc7">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/18/bookmarks-for-may-17th.html">Bookmarks for May 17th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccc7"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;ul&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://log.maniacalrage.net/tagged/cs4cr?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed:+veerlesblog+Veerle's+Blog+3.0+-+All\&quot;&gt;Maniacal Rage&lt;/a&gt; - Photoshop Crash Reports by Garret Murray. I find these hilarious, but maybe I&amp;#39;m just weird that way. Whoops, hold on, &amp;quot;Photoshop has encountered an error while completing your request.&amp;quot; Uhm, sure... it&amp;#39;s not like I was asking you to do anything though...&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccc8"><div class="sqs-block-content"><ul><br/><li><a href="http://log.maniacalrage.net/tagged/cs4cr?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+veerlesblog+Veerle's+Blog+3.0+-+All">Maniacal Rage</a> - Photoshop Crash Reports by Garret Murray. I find these hilarious, but maybe I&#39;m just weird that way. Whoops, hold on, &quot;Photoshop has encountered an error while completing your request.&quot; Uhm, sure... it&#39;s not like I was asking you to do anything though...</li><br/><br/></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/18/bookmarks-for-may-17th.html#comments-4f9c13cd6a9be14f7d11ccc7"></a></i>
	      	<div class="comment-count"><a href="/2010/5/18/bookmarks-for-may-17th.html#comments-4f9c13cd6a9be14f7d11ccc7">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May 18, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccc7" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccc7/" data-record-type="1" data-full-url="/2010/5/18/bookmarks-for-may-17th.html" data-title="Bookmarks for May 17th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-16 clear" id="article-4f9c13cd6a9be14f7d11cccc" data-item-id="4f9c13cd6a9be14f7d11cccc">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/16/bookmarks-for-may-15th.html">Bookmarks for May 15th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cccc"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;ul&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://rubini.us/about/one_point_oh\&quot;&gt;Rubinius 1.0&lt;/a&gt; - Milestone release for this alternative Ruby implementation. I should find time to try this and JRuby sometime.&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cccd"><div class="sqs-block-content"><ul><br/><li><a href="http://rubini.us/about/one_point_oh">Rubinius 1.0</a> - Milestone release for this alternative Ruby implementation. I should find time to try this and JRuby sometime.</li><br/><br/></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/16/bookmarks-for-may-15th.html#comments-4f9c13cd6a9be14f7d11cccc"></a></i>
	      	<div class="comment-count"><a href="/2010/5/16/bookmarks-for-may-15th.html#comments-4f9c13cd6a9be14f7d11cccc">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May 16, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cccc" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cccc/" data-record-type="1" data-full-url="/2010/5/16/bookmarks-for-may-15th.html" data-title="Bookmarks for May 15th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-17 clear" id="article-4f9c13cd6a9be14f7d11ccd1" data-item-id="4f9c13cd6a9be14f7d11ccd1">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/12/bookmarks-for-may-11th.html">Bookmarks for May 11th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccd1"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;ul&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://tom.preston-werner.com/2010/05/11/tomdoc-reasonable-ruby-documentation.html\&quot;&gt;TomDoc&lt;/a&gt; - A new Ruby documentation style, optimized for plain text readability. Also aspires to automatically generate diffs between versions of API docs.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccd2"><div class="sqs-block-content"><ul><br/><li><a href="http://tom.preston-werner.com/2010/05/11/tomdoc-reasonable-ruby-documentation.html">TomDoc</a> - A new Ruby documentation style, optimized for plain text readability. Also aspires to automatically generate diffs between versions of API docs.</li><br/></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/12/bookmarks-for-may-11th.html#comments-4f9c13cd6a9be14f7d11ccd1"></a></i>
	      	<div class="comment-count"><a href="/2010/5/12/bookmarks-for-may-11th.html#comments-4f9c13cd6a9be14f7d11ccd1">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May 12, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccd1" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccd1/" data-record-type="1" data-full-url="/2010/5/12/bookmarks-for-may-11th.html" data-title="Bookmarks for May 11th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-18 clear" id="article-4f9c13cd6a9be14f7d11ccd6" data-item-id="4f9c13cd6a9be14f7d11ccd6">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/8/bookmarks-for-may-7th.html">Bookmarks for May 7th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccd6"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;These are my links for May 7th:&lt;/p&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://code.google.com/p/latex-lab/\&quot;&gt;latex-lab&lt;/a&gt; - Webbased editor for LaTeX documents, based on Google Documents.&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://www.rubular.com/\&quot;&gt;Rubular&lt;/a&gt; - A Ruby regular expression editor and tester&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccd7"><div class="sqs-block-content"><p>These are my links for May 7th:</p><br/><ul><br/><li><a href="http://code.google.com/p/latex-lab/">latex-lab</a> - Webbased editor for LaTeX documents, based on Google Documents.</li><br/><li><a href="http://www.rubular.com/">Rubular</a> - A Ruby regular expression editor and tester</li><br/><br/></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/8/bookmarks-for-may-7th.html#comments-4f9c13cd6a9be14f7d11ccd6"></a></i>
	      	<div class="comment-count"><a href="/2010/5/8/bookmarks-for-may-7th.html#comments-4f9c13cd6a9be14f7d11ccd6">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May  8, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccd6" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccd6/" data-record-type="1" data-full-url="/2010/5/8/bookmarks-for-may-7th.html" data-title="Bookmarks for May 7th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-19 clear" id="article-4f9c13cd6a9be14f7d11ccdb" data-item-id="4f9c13cd6a9be14f7d11ccdb">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/6/bookmarks-for-may-5th.html">Bookmarks for May 5th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11ccdb"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;These are my links for May 5th:&lt;/p&gt;\n\n&lt;ul&gt;&lt;li&gt;&lt;a href=\&quot;http://github.com/dhh/tolk\&quot;&gt;Tolk&lt;/a&gt; - A new translation app for translating Ruby on Rails locale files.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\&quot;http://github.com/spdr870/gitextensions\&quot;&gt;gitextensions&lt;/a&gt; - Git plugin for Visual Studio.&lt;/li&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11ccdc"><div class="sqs-block-content"><p>These are my links for May 5th:</p>

<ul><li><a href="http://github.com/dhh/tolk">Tolk</a> - A new translation app for translating Ruby on Rails locale files.</li>
<li><a href="http://github.com/spdr870/gitextensions">gitextensions</a> - Git plugin for Visual Studio.</li></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/6/bookmarks-for-may-5th.html#comments-4f9c13cd6a9be14f7d11ccdb"></a></i>
	      	<div class="comment-count"><a href="/2010/5/6/bookmarks-for-may-5th.html#comments-4f9c13cd6a9be14f7d11ccdb">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May  6, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11ccdb" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11ccdb/" data-record-type="1" data-full-url="/2010/5/6/bookmarks-for-may-5th.html" data-title="Bookmarks for May 5th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
  
	<article class="entry hentry category-links author-marten-veldthuis post-type-text article-index-20 clear" id="article-4f9c13cd6a9be14f7d11cce0" data-item-id="4f9c13cd6a9be14f7d11cce0">
		
		 
		
		<div class="entry-content">
		
			<h1 data-content-field="title" class="post-title">
			        <a href="/2010/5/4/bookmarks-for-may-4th.html">Bookmarks for May 4th</a>
            </h1>
      
       
			
			<div class="body">
    	    		<div class="sqs-layout sqs-grid-12 columns-12" data-type="item" id="item-4f9c13cd6a9be14f7d11cce0"><div class="row sqs-row"><div class="col sqs-col-12 span-12"><div class="sqs-block html-block" data-block-json="&#123;&quot;engine&quot;:&quot;visual&quot;,&quot;html&quot;:&quot;&lt;p&gt;Spent some time today migrating this site to WordPress.&lt;/p&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://neop.gbtopia.com/?p=108\&quot;&gt;Postalicious Plugin&lt;/a&gt; - I'm using this to pull in posts from my Pinboard account. For Pinboard, set type to Yahoo Pipes and put in any public rss.&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://shawnblanc.net/2009/08/wp-linked-list-plugin/\&quot;&gt;Linked List URL Plugin&lt;/a&gt; - I might use this one day. Right now I'm using the Postalicious plugin to pull in my Pinboard RSS feed and publish stuff as a daily post.&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://www.fischercreativemedia.com/wordpress-plugins/quick-pagepost-redirect-plugin/\&quot;&gt;Quick Page/Post Redirect Plugin&lt;/a&gt; - I'm using this to put the ZenFolio link in my top navigation bar.&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href=\&quot;http://www.photographers-toolbox.com/products/lr2blog.php\&quot;&gt;LR2/Blog - Send images to your blog from Adobe Lightoom&lt;/a&gt; - This might be useful now that I'm switching to Wordpress.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&quot;,&quot;wysiwyg&quot;:&#123;&quot;engine&quot;:&quot;code&quot;,&quot;isSource&quot;:false,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;source&quot;:&quot;&quot;&#125;&#125;" data-block-type="2" id="block-4f9c13cd6a9be14f7d11cce1"><div class="sqs-block-content"><p>Spent some time today migrating this site to WordPress.</p><br/><ul><br/><li><a href="http://neop.gbtopia.com/?p=108">Postalicious Plugin</a> - I'm using this to pull in posts from my Pinboard account. For Pinboard, set type to Yahoo Pipes and put in any public rss.</li><br/><li><a href="http://shawnblanc.net/2009/08/wp-linked-list-plugin/">Linked List URL Plugin</a> - I might use this one day. Right now I'm using the Postalicious plugin to pull in my Pinboard RSS feed and publish stuff as a daily post.</li><br/><li><a href="http://www.fischercreativemedia.com/wordpress-plugins/quick-pagepost-redirect-plugin/">Quick Page/Post Redirect Plugin</a> - I'm using this to put the ZenFolio link in my top navigation bar.</li><br/><li><a href="http://www.photographers-toolbox.com/products/lr2blog.php">LR2/Blog - Send images to your blog from Adobe Lightoom</a> - This might be useful now that I'm switching to Wordpress.</li><br/></ul></div></div></div></div></div>				  
  		    	</div>	
    	
    			
	    <div class="details clear">
	      
      	      	<div class="comments">
	      	<i><a href="/2010/5/4/bookmarks-for-may-4th.html#comments-4f9c13cd6a9be14f7d11cce0"></a></i>
	      	<div class="comment-count"><a href="/2010/5/4/bookmarks-for-may-4th.html#comments-4f9c13cd6a9be14f7d11cce0">Comment</a></div>
      	</div>
    			    	
	    		    	<div class="author">
	    		<i></i>
	    		<div class="display-name"><a href="/?author=Marten Veldthuis">Marten Veldthuis</a></div>
	    	</div>
	    	 

	    	<div class="date">
		    	<i></i>
		    	<time>May  4, 2010</time>
	    	</div>
	    	
	            	
      		      <div class="categories">
	      	<i></i>
	      	<ul>
		      			      	<li><a href="/?category=Links">Links</a></li>
	      		      		</ul>
      	</div>
      	      	
      	<div class="like">
      		<span class="sqs-simple-like" data-item-id="4f9c13cd6a9be14f7d11cce0" data-like-count="0"><span class="like-icon"></span><span class="like-count"></span></span>
      	</div>
	      	      
	      <div class="share">
	      	<script>Y.use('squarespace-social-buttons');</script><div class="squarespace-social-buttons button-style" data-system-data-id="" data-asset-url="http://static.squarespace.com/static/4f51e0a4e4b010dc3b88166d/4f9c13cd6a9be14f7d11cc8e/4f9c13cd6a9be14f7d11cce0/" data-record-type="1" data-full-url="/2010/5/4/bookmarks-for-may-4th.html" data-title="Bookmarks for May 4th"></div>
      	</div>
      	
	    </div>
		</div>
	</article>
	
 

		<nav class="pagination clear">
		<div class="prev"><i class="icon-chevron-left"></i>&nbsp; Newer</div>
    <div class="index">Page 1 of 2</div>
    <div class="next"><a href="?page=2">Older&nbsp; <i class="icon-chevron-right active"></i></a></div>
  </nav>
  

</section>    		
          
				
	    </div>
	  
		  <div id="sidebar">
		  	<div class="wrapper clear">
		  	
	            		<div id="logo" data-content-field="site-title">
		        <h1>
		        	<a href="/">
		        		<span class="site-title">Marten Veldthuis</span>
		        				        	</a>
		      	</h1>
		      </div>  
	      		        	      
	        <div class="nav clear">

	<div class="nav-link active">
	
	
					<a href="/" class="blog-collection"><span>Blog</span></a>
			
		
					
		</div>


	<div class="nav-link">
	
	
			
		
					<a href="http://photos.martenveldthuis.com" class="external-link"><span>Photography</span></a>
					
		</div>


	<div class="nav-link">
	
	
					<a href="/about/" class="page-collection"><span>About</span></a>
			
		
					
		</div>

</div>
	        <div class="sqs-layout sqs-grid-1 columns-1" data-type="block-field" id="sqs-sidebar"><div class="row sqs-row"><div class="col sqs-col-1 span-1"><div class="sqs-block twitter-block twitter" data-block-json="&#123;&quot;collectionId&quot;:&quot;4ff6c35fe4b00d513badf2da&quot;,&quot;pageSize&quot;:2,&quot;acceptTypes&quot;:[&quot;gallery&quot;,&quot;blog&quot;,&quot;projects&quot;,&quot;calendar&quot;],&quot;title&quot;:&quot;Twitter&quot;,&quot;schemaName&quot;:&quot;twitter&quot;,&quot;followButton&quot;:false&#125;" data-block-type="6" id="block-8896b74bc2d2ac8c38eb"><div class="sqs-block-content">  <ul class="tweet-list">
          <li class="tweet clear" id="5032767ce4b0caddac3d419d">
        <div class="tweet-avatar-wrapper"><a target="new" href="http://www.twitter.com/mveldth/"><img class="tweet-avatar" src="http://a0.twimg.com/profile_images/53035403/image_normal.jpeg"/></a></div> 
        <div class="tweet-text-wrapper">
          <div class="tweet-from"><a target="new" href="http://www.twitter.com/mveldth/">Marten Veldthuis</a></div>
          <div class="tweet-text">Departing from MVC a viable solution for refactoring a messy view? <a href="http://t.co/4DThl06m" rel="nofollow">http://t.co/4DThl06m</a></div>
          <time class="tweet-timestamp" datetime="2012-08-20"><a target="new" href="http://twitter.com/mveldth/status/237601786012254208"><span class="timesince" data-date="1345483654000">about a day ago</span></a></time>
        </div>
      </li>
          <li class="tweet clear" id="502c9967e4b0091cb78b3194">
        <div class="tweet-avatar-wrapper"><a target="new" href="http://www.twitter.com/mveldth/"><img class="tweet-avatar" src="http://a0.twimg.com/profile_images/53035403/image_normal.jpeg"/></a></div> 
        <div class="tweet-text-wrapper">
          <div class="tweet-from"><a target="new" href="http://www.twitter.com/mveldth/">Marten Veldthuis</a></div>
          <div class="tweet-text">Handig die mijnpakket van @<a class="tweet-url username" href="https://twitter.com/PostNLWebcare" rel="nofollow">PostNLWebcare</a>. Krijg je een aflevermoment, regel je dat je dan thuis werkt, is het de volgende ochtend verplaatst</div>
          <time class="tweet-timestamp" datetime="2012-08-16"><a target="new" href="http://twitter.com/mveldth/status/235991685669195776"><span class="timesince" data-date="1345099777000">about 6 days ago</span></a></time>
        </div>
      </li>
      </ul>

</div></div></div></div></div>
	        
							      					<div class="social-icon-block">
						<a class="twitter" href="https://twitter.com/mveldth" target="_blank"><span></span>twitter</a><a class="flickr" href="http://www.flickr.com/people/marten/" target="_blank"><span></span>flickr</a>					</div>
										
      	</div>
		  </div>
	      	    
	    <footer id="footer">
	    	<div class="wrapper clear">
		      <div class="sqs-layout sqs-grid-12 columns-12" data-type="block-field" id="sqs-footer"><div class="row sqs-row"><div class="col sqs-col-12 span-12"></div></div></div>
					       
	      </div>
		  </footer>
	    
		</div>
  </div>  

</body>
</html>
