<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Joost&#039;s blog</title>
	<atom:link href="http://joost.reuzel.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://joost.reuzel.nl</link>
	<description>Just some thoughts</description>
	<lastBuildDate>Wed, 18 Nov 2009 09:10:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel="next" href="http://joost.reuzel.nl/feed/?page=2" />

		<item>
		<title>null considered harmful</title>
		<link>http://joost.reuzel.nl/2009/null-considered-harmful/</link>
		<comments>http://joost.reuzel.nl/2009/null-considered-harmful/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 09:08:33 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=144</guid>
		<description><![CDATA[By incident I stumbled accross the book &#8220;Clean Code: A Handbook of Agile Software Craftsmanship&#8221; by Robert C. Martin. In this book there is a section on exception handling which is a worthwhile read. It states some obvious things &#8211; like handle exceptions there where you know what to do with them &#8212; but it is ]]></description>
			<content:encoded><![CDATA[<p>By incident I stumbled accross the book &#8220;Clean Code: A Handbook of Agile Software Craftsmanship&#8221; by Robert C. Martin. In this book there is a section on exception handling which is a worthwhile read. It states some obvious things &#8211; like handle exceptions there where you know what to do with them &#8212; but it is good to be remembered by these best practices once in a while&#8230;</p>
<p>One of the more interesting things in that section I found the usage, or better should-not-usage, of null values. Return null is typically a sign of something that doesn&#8217;t work. Returning null values clutters op code with all kinds of &#8220;if null&#8221; checks. Moreover, who hasn&#8217;t seen a NullReferenceException lately? Instead of returning null, a number of alternatives can be thought of:</p>
<p>First, if the null is actually the result of an error conditions, throw an exception containing thate error condition. If the error is actually based on a deeper lying exception, simply don&#8217;t handle that exception and have it bubble upwards. This way it is clear to the user of our object/method that an error condition has been met. Moreover, the exception should contain the necessary information to aid the programmer in preventing that condition.</p>
<p>Second, if the null value is the result of an expected situation, implement the <a href="http://en.wikipedia.org/wiki/Null_Object_pattern">&#8220;Null Object Pattern&#8221;</a>, or <a href="http://en.wikipedia.org/wiki/Null_Object_pattern">&#8220;Special Case Pattern&#8221;</a> instead. Using these patterns you return an object that implements the expected interface, but which implementation is empty. For example, a search for files in an empty directory should return an empty list instead of null. The empty list can be iterated, checked for presence of files, but does not have to be explicitly checked for null.</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/null-considered-harmful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development in SharePoint 2010</title>
		<link>http://joost.reuzel.nl/2009/development-in-sharepoint-2010/</link>
		<comments>http://joost.reuzel.nl/2009/development-in-sharepoint-2010/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 22:42:01 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Microsoft Tech]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/2009/development-in-sharepoint-2010/</guid>
		<description><![CDATA[Developers have been a major audience for Microsoft&#8217;s SharePoint team. Developing for SharePoint 2010 got a lot easier. An incomplete list of features added to aid developers: 

Client SharePoint Object Model. Applications that do not run inside SharePoint as a WebPart can now make use of a new library to access SharePoint information. This library ]]></description>
			<content:encoded><![CDATA[<p>Developers have been a major audience for Microsoft&#8217;s SharePoint team. Developing for SharePoint 2010 got a lot easier. An incomplete list of features added to aid developers: <span id="more-137"></span></p>
<ol>
<li><em>Client SharePoint Object Model</em>. Applications that do not run inside SharePoint as a WebPart can now make use of a new library to access SharePoint information. This library takes away most of the complexities around invoking the SharePoint web services. Very useful in e.g. Silverlight applications.</li>
<li>New <em>deployment package</em>. SharePoint 2010 introduces/improves greatly the WebPart packaging and deployment using the new Windows SharePoint Package. It is now much easier to publish a feature or WebPart to a site or farm.</li>
<li><em>Sandboxed WebParts</em>. Web parts can be added to a site in a sandbox. A sandbox means that the WebPart will run in its own server-process. Furthermore, it has restrictions imposed on it (such as the time it may run). This greatly improves the stability of the environment as faulty WebParts no longer crash the SharePoint process. Especially interesting to know is that using the sandbox you don&#8217;t need administrative privileges on a farm to deploy a WebPart to a site.</li>
<li>
<div>Improved <em>Visual Studio 2010 support</em> for SharePoint. In Visual Studio you can now:</div>
<ol>
<li>Use SharePoint templates to get you up-to-speed</li>
<li>Design WebParts visually as if they are ASP.NET controls (which in fact they are…) (see <a href="http://msdn.microsoft.com/en-us/magazine/ee309510.aspx">this article</a> for some extra info)</li>
<li>Browse through a SharePoint site using the SharePoint Explorer Window</li>
<li>Deploy WebParts to SharePoint through new wizards and the new feature/webpart package</li>
<li>Hit F5 to automatically build, deploy, reset IIS, attach the debugger and open the page with the WebPart…</li>
</ol>
</li>
<li><em>Linq2SharePoint</em> provides a LINQ query interface to search through list and site content. Regrettably this feature is not available in the new client object model (to be used by apps not running inside SharePoint)</li>
<li>The <em>Developer Dashboard</em> provides statistics on page load time, executed queries, query execution times, server info, etc. Very useful! See <a href="http://razi.spaces.live.com/Blog/cns!612EA30171E9AE3A!1348.entry?sa=829227687">this post</a> for a preview…</li>
<li><em>Silverlight</em> is now supported out of the box.</li>
<li><em>Business Connectivity Services</em> is the follow-up of the Business Data Catalog. It is now much more powerful and even easier to use. You can relatively simple create an &#8216;external list&#8217; that behaves just as any SharePoint list, but of which the content is hosted in another system (SQL Server, SAP, …) It even supports write operations to the lists! Visual Studio comes with templates for creating new BCS adapters for unsupported content sources…</li>
<li><em>SharePoint Designer </em>has gone through a major redesign making it much more useful.</li>
<li><em>New WebService interface</em> allowing for easier and more extensive access to SharePoint functionality. Moreover, REST support has been added to query lists and content. A very cool demo I saw was the combination of the REST interface with the improved Excel Services: A graph in an Excel file in a SharePoint library could be accessed through a (REST) URL and posted as a (PNG) picture on a webpage or inside PowerPoint. When the data in the excel file was updated, the graph was adjusted in PowerPoint and on the webpage. The Url looked like: <a href="http://mysharepointsite.com/lists/documents/excelfile.xlsx/mygraph">http://mysharepointsite.com/lists/documents/excelfile.xlsx/mygraph</a>, where mygraph was a named set in the Excel file (named sets are a new feature of Excel 2010). Very cool.</li>
</ol>
<p>Combine this with the new features (SilverLight, Performance Point Services, improved Excel Services, etc.) and you&#8217;ll find that SharePoint 2010 is worthwhile upgrading. What I couldn&#8217;t test at the TechEd is the stability and performance. Hopefully that has improved as well…</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/development-in-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New in SilverLight 3</title>
		<link>http://joost.reuzel.nl/2009/new-in-silverlight-3/</link>
		<comments>http://joost.reuzel.nl/2009/new-in-silverlight-3/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 20:55:22 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Microsoft Tech]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/2009/new-in-silverlight-3/</guid>
		<description><![CDATA[Currently I&#8217;m at the Microsoft TechEd 2009 in Berlin. There is a lot of talk and demo&#8217;s on the new SilverLight release. There are a fiew features that make it much more interesting than the previous versions. My top 3:


Writable Bitmaps: These allow you to create bitmaps from inside the SilverLight applications. This functionality forms ]]></description>
			<content:encoded><![CDATA[<p>Currently I&#8217;m at the Microsoft TechEd 2009 in Berlin. There is a lot of talk and demo&#8217;s on the new SilverLight release. There are a fiew features that make it much more interesting than the previous versions. My top 3:
</p>
<ol>
<li><em>Writable Bitmaps</em>: These allow you to create bitmaps from inside the SilverLight applications. This functionality forms the basis for many new SilverLight effects. A cool feature of the writeable bitmap classes is that you render a portion of your XAML into the bitmap and act upon that rendering. Here at TechEd I&#8217;ve seen some cool demos like magnifying glasses, or video frame capturing that use this.
</li>
<li><em>Communication framework</em>: SilverLight applications can now communicate with each other. This allows you to modularize your pages. For example, I can think of a set of SilverLight based SharePoint WebParts that communicate about the range of data that they are showing.
</li>
<li><em>Offline capabilities</em>. SilverLight becomes true RIA… You can now take SilverLight applications offline. This allows you to start a SilverLight application from your start-menu or desktop. You do not even have to be online to work with the SilverLight apps.
</li>
</ol>
<p>This is just a top 3. There are much more features and improvements like improved development support in Visual Studio 10 and Microsoft Blend, improved integration into SharePoint, improved data binding, RIA services for data access, etc… SilverLight is developing fast!
</p>
<p>
 </p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/new-in-silverlight-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linq to anything</title>
		<link>http://joost.reuzel.nl/2009/linq2anything/</link>
		<comments>http://joost.reuzel.nl/2009/linq2anything/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 20:32:46 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Microsoft Tech]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=131</guid>
		<description><![CDATA[LINQ is probably one of the most compelling features of .NET3.5. I love the way you can query your data models and how that is automatically converted to queries to the underlying datasources. If you are not familiar with it, do have a look at MSDN&#8230;
Apparently I&#8217;m not the only one who loves LINQ. You ]]></description>
			<content:encoded><![CDATA[<p>LINQ is probably one of the most compelling features of .NET3.5. I love the way you can query your data models and how that is automatically converted to queries to the underlying datasources. If you are not familiar with it, do have a look at MSDN&#8230;</p>
<p>Apparently I&#8217;m not the only one who loves LINQ. You may already know about Linq2Sql, Linq2Objects and Linq2Entities. However, did you know that there is now also &#8230;</p>
<ul>
<li>Linq2RiaServices, allowing simple access to data in the middle tier from SilverLight applications</li>
<li>Linq2ADODataServices, providing similar functionality as the Linq2RiaService, but utilizing the ADO.NET Data Services framework.</li>
<li>Linq2SharePoint, allowing you to query SharePoint lists and sites from within a SharePoint WebPart, and</li>
<li>Linq2Azure, which is used to query Azure storage.</li>
</ul>
<p> Seems that every locally or remotely stored set of object  gets a Linq interface&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/linq2anything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Soap balloons</title>
		<link>http://joost.reuzel.nl/2009/soap-balloons/</link>
		<comments>http://joost.reuzel.nl/2009/soap-balloons/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 19:38:17 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=128</guid>
		<description><![CDATA[<a href="http://joost.reuzel.nl/2009/soap-balloons/" title="Soap balloons"><img src="http://joost.reuzel.nl/wp-content/uploads/yapb_cache/zeepbel.qboqinzo44gk80oo8ck8sso4.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="182" alt="Soap balloons" style="float:left;padding:0 10px 10px 0;" ></a>Playing with soap balloons is always fun. When the sun shines you can see the world just a bit differently. If you look closely, you can see me taking the picture. The depicted building is my home.
]]></description>
			<content:encoded><![CDATA[<a href="http://joost.reuzel.nl/2009/soap-balloons/" title="Soap balloons"><img src="http://joost.reuzel.nl/wp-content/uploads/yapb_cache/zeepbel.qboqinzo44gk80oo8ck8sso4.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="182" alt="Soap balloons" style="float:left;padding:0 10px 10px 0;" ></a><p>Playing with soap balloons is always fun. When the sun shines you can see the world just a bit differently. If you look closely, you can see me taking the picture. The depicted building is my home.</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/soap-balloons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageCloud plugin</title>
		<link>http://joost.reuzel.nl/2009/imagecloud/</link>
		<comments>http://joost.reuzel.nl/2009/imagecloud/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 18:27:36 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=114</guid>
		<description><![CDATA[During my work I got confronted with Wordle. A colleague used Wordle to show what a specific website was about. I got interested in how these beautiful word clouds were made and if I could add them to my own website. 
Regrettably, the Wordle algorithms cannot be shared by the author because of intellectual property ]]></description>
			<content:encoded><![CDATA[<p>During my work I got confronted with <a href="http://www.wordle.net/">Wordle</a>. A colleague used Wordle to show what a specific website was about. I got interested in how these beautiful word clouds were made and if I could add them to my own website. </p>
<p>Regrettably, the Wordle algorithms cannot be shared by the author because of intellectual property reasons (IBM owns his work). Given the popularity of Wordle, I found it strange that no WordPress plugin existed that would generate similar word clouds. Searching the web for similar algorithms didn&#8217;t provide me with much answers either. But hey, how hard can it be? I decided to have a go at it myself.</p>
<p><span id="more-114"></span><br />
What&#8217;s a word cloud? Basically it is a set of words fitted closely together in a oval shape. The words are of different sizes depending on their frequency in the corresponding text. Furthermore, the words may be of different colors and have different angles. I quickly decided I would support two angles only: horizontal and vertical words. The words would be different in size, and also the colors would match the frequency.</p>
<p>The algorithm is then relatively straightforward: </p>
<ol>
<li>calculate the font-size and color depending on the frequency of the words.</li>
<li>calculate the size of the boxes that will contain the words. In PHP that is easily done using the GD library</li>
<li>place the first box at coordinate (0,0).</li>
<li>Add the coordinates of the box corners to a list</li>
<li>Sort the list of corners based on their eucledian distance to the origin (0,0), keeping in mind the wanted oval shape of the cloud
<li>Place the next box to the first corner coordinate where the box doesn&#8217;t overlap already placed boxes</li>
<li>Add the corners of the newly placed boc to the coordinates list</li>
<li>Continue until all boxes are placed</li>
</ol>
<p>Given this algorithm, create a few classes (Point, Box, Cloud, Word and WordCloud) that implement all this. Add some image generation code and caching of the results (it does take some time to create and position all the words) and you&#8217;re done! To integrate it with WordPress I used one of the tag cloud hooks (if you&#8217;re looking for hooks in WordPress Adam R. Brown keeps a great <a href="http://adambrown.info/p/wp_hooks">hooks database</a>) . This hook provided me with all the information I needed: the tags, the links to those tags, the frequency numbers, etc. Furthermore, the wp_tag_cloud functions already support multiple formats so adding a new one was quite trivial. As a finishing touch I added a shortcode, so I didn&#8217;t need to go into a theme to change the tag cloud arguments to get my image cloud shown.</p>
<p>The plugin can be found on the WordPress extend site: <a href="http://wordpress.org/extend/plugins/imagecloud/">http://wordpress.org/extend/plugins/imagecloud/</a>  </p>
<p>Two example can be found <a href="http://joost.reuzel.nl/tags/">here</a> and <a href="http://minne.reuzel.nl/tags">here</a>.</p>
<p>It was fun creating this plugin. Hopefully you like the results. Feedback is always welcome!<br />
Joost</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/imagecloud/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>text2tag plugin</title>
		<link>http://joost.reuzel.nl/2009/text2tag/</link>
		<comments>http://joost.reuzel.nl/2009/text2tag/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 13:51:53 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=111</guid>
		<description><![CDATA[I have been wondering how to keep the tags in a blog to describe its content accurately. As I&#8217;m not the most disciplined person, tagging posts correctly and precisely is not what I&#8217;m best at. During my work I encountered someone who had made use of Wordle. He used Wordle to quickly analyse the contents ]]></description>
			<content:encoded><![CDATA[<p>I have been wondering how to keep the tags in a blog to describe its content accurately. As I&#8217;m not the most disciplined person, tagging posts correctly and precisely is not what I&#8217;m best at. During my work I encountered someone who had made use of Wordle. He used Wordle to quickly analyse the contents of a website. The result was great. Simply counting the words seemed a simply and effective way to accurately describe the contents of a site. </p>
<p>So I ended up creating two plugins: one for creating tag-clouds that have the &#8220;Wordle&#8221; look and feel, and one for &#8220;tagging&#8221; posts, simply by enumerating all used words in a post. The first is described on an other post: <a href="http://joost.reuzel.nl/2009/imagecloud/" title="ImageCloud plugin">ImageCloud plugin</a>. The second has become the &#8220;text2tag&#8221; plugin.</p>
<p>The text2tag plugin can be downloaded from WordPress: <a href="http://wordpress.org/extend/plugins/text2tag/">Text2Tag</a>.<br />
<span id="more-111"></span></p>
<p>The text2tag plugin will convert every word that occurs in a post title or content into a term (tag). By default the plugin will add these terms to a new taxonomy called &#8220;words&#8221;. Optionally, the terms can be added to the &#8220;post_tags&#8221; taxonomy, used for normal tagging in WordPress. I did this because I did not want to overwrite the existing tags by default.</p>
<p>The plugin provides the option to create a so-called stop list. Words in this list will be kept (or even removed) from the taxonomy. This allows authors to ignore meaningless, but often occuring, words like &#8216;a&#8217; or &#8216;the&#8217;. An option is added to ignore numbers, as I find these uninteresting in most cases&#8230;</p>
<p>There are many opportunities for improvement. For example, stemming of words could be done. However, as I do not have the knowledge about such algorithms I did not add it. If you are capable of adding such features, please feel free to share your knowledge!</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/text2tag/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New website new content</title>
		<link>http://joost.reuzel.nl/2009/new-website-new-content/</link>
		<comments>http://joost.reuzel.nl/2009/new-website-new-content/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 22:55:59 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=104</guid>
		<description><![CDATA[Hi all,
A fresh start for my new blog. New look and feel, new content. This time I plan to write more on my experiences with different technologies I encounter during work and at home. I&#8217;ve noticed that I learn a lot of what people share on the Internet, so this will be my corner where ]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>A fresh start for my new blog. New look and feel, new content. This time I plan to write more on my experiences with different technologies I encounter during work and at home. I&#8217;ve noticed that I learn a lot of what people share on the Internet, so this will be my corner where I can contribute&#8230;</p>
<p>More content to follow&#8230;</p>
<p>Joost</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/2009/new-website-new-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ikke</title>
		<link>http://joost.reuzel.nl/1980/ikke/</link>
		<comments>http://joost.reuzel.nl/1980/ikke/#comments</comments>
		<pubDate>Wed, 13 Aug 1980 14:10:41 +0000</pubDate>
		<dc:creator>Joost</dc:creator>
				<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://joost.reuzel.nl/?p=5</guid>
		<description><![CDATA[<a href="http://joost.reuzel.nl/1980/ikke/" title="Ikke"><img src="http://joost.reuzel.nl/wp-content/uploads/yapb_cache/scan40.9z6yojv0mowgos0s4sgkkw804.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="129" alt="Ikke" style="float:left;padding:0 10px 10px 0;" ></a>Ok, this is me, but then a few years ago&#8230;
]]></description>
			<content:encoded><![CDATA[<a href="http://joost.reuzel.nl/1980/ikke/" title="Ikke"><img src="http://joost.reuzel.nl/wp-content/uploads/yapb_cache/scan40.9z6yojv0mowgos0s4sgkkw804.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="129" alt="Ikke" style="float:left;padding:0 10px 10px 0;" ></a><p>Ok, this is me, but then a few years ago&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://joost.reuzel.nl/1980/ikke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

