<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Softwarefun</title>
	
	<link>http://blog.softwarefun.nl</link>
	<description>Fun in Softwareland</description>
	<lastBuildDate>Tue, 11 Oct 2011 18:49:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Softwarefun" /><feedburner:info uri="softwarefun" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Book review: Head First Python by Paul Barry</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/XW7wULaYB_Y/</link>
		<comments>http://blog.softwarefun.nl/?p=64#comments</comments>
		<pubDate>Wed, 09 Feb 2011 21:32:19 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[O'Reilly Blogger Review Program]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Books Python]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=64</guid>
		<description><![CDATA[I just finished reading “Head First Python” and had great fun doing so. I Think that this is a great book for the beginning Python developer.&#160; But unlike a lot of other books that aim for beginners, good practices aren’t ignored for the sake of simplicity. The practices are explained and used. The head first [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D64"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D64&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I just finished reading “Head First Python” and had great fun doing so.</p>
<table>
<tbody>
<tr>
<td><a href="http://softwarefun.nl/wordpress/wp-content/uploads/2011/02/image.png" ><font size="2"><a href="http://oreilly.com/catalog/0636920003434/"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://softwarefun.nl/wordpress/wp-content/uploads/2011/02/image1.png" width="215" height="248" /></a></font></a><font size="2"> </font></td>
<td>I Think that this is a great book for the beginning Python developer.&#160; But unlike a lot of other books that aim for beginners, good practices aren’t ignored for the sake of simplicity. The practices are explained and used.          </p>
<p>The head first series can take some getting used to. Whenever I talk to someone about the head first books I advice them to borrow a copy before buying or take a look at the <a href="http://books.google.com/books?id=ENIVBdZIJ6cC&amp;printsec=frontcover&amp;dq=head+first+python&amp;hl=nl&amp;ei=W_1STf_qG8vsOdbThM4H&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=1&amp;ved=0CCwQ6AEwAA#v=onepage&amp;q&amp;f=false" class="aga aga_3" target="_blank">Google books version</a> of the book. The style just isn’t for everybody. But what I have seen so far is that the style works. The pretty pictures, the repetition and the way context is given continuously make you grock and remember what you read easily.</td>
</tr>
</tbody>
</table>
<p>When you want to think about if the book is for you, the author categorizes the book as follows:</p>
<blockquote><p>This book is for you if you can answer “yes” to all of these: </p>
<ul>
<li>Do you already know how to program in another programming language? </li>
<li>Do you wish you had the know-how to program Python, add it to your list of tools, and make it do new things? </li>
<li>Do you prefer actually doing things and applying the stuff you learn over listening to someone in a lecture rattle on for hours on end? </li>
</ul>
<p>This book is <strong>not</strong> for you if you can answer “yes” to any of these: </p>
<ul>
<li>Are you looking for a reference book to Python, one that covers all the details in excruciating detail? </li>
<li>Do you already know most of what you need to know to program with Python? </li>
<li>Would you rather have your toenails pulled out by 15 screaming monkeys than learn something new? Do you believe a Python book should cover everything and if it bores the reader to tears in the process then so much the better? </li>
</ul>
</blockquote>
<p>And I agree to these rules. It’s not a reference book, it isn’t the Python bible. It is hands on and a good start for learning Python. But if you are an experienced developer be prepared for a quick read. I read it in three evenings and sometimes things where explained that shouldn’t be explained to someone who already knows how to program in another programming language. But that is a thin line.</p>
<p>The book is pretty broad. a sample of the topics:</p>
<ul>
<li>Python syntax </li>
<li>Setting up your environment </li>
<li>Sharing code with <a href="http://pypi.python.org/pypi" class="aga aga_4" target="_blank">PyPi</a> </li>
<li>Data manipulation </li>
<li>File handling </li>
<li>Web development </li>
<li>Mobile development with an android </li>
<li>Building scalable apps with <a href="https://www.google.com/accounts/ServiceLogin?service=ah&amp;continue=https://appengine.google.com/_ah/login%3Fcontinue%3Dhttps://appengine.google.com/&amp;ltmpl=ae&amp;sig=c24697718eec1be75b7ab8f8a0c02416" class="aga aga_5" target="_blank">Google App Engine</a> </li>
</ul>
<p>Many books for beginners leave out good practices because it might confuse the reader and take their mind of the things the book is trying to teach. “Head first Python” is a welcome change to this. As an example I loved quotes like these:</p>
<blockquote><p>As a general rule, Python programmers look for ways to reduce the amount of code they need to write and worry about, which leads to better code robustness, fewer errors, and a good night’s sleep.</p>
</blockquote>
<p>And on page 31:</p>
<blockquote><p>Recursion to the rescue!      <br />The use of a recursive function has allowed you to reduce 14 lines of messy,       <br />hard-to-understand, brain-hurting code into a six-line function. Unlike the       <br />earlier code that needs to be amended to support additional nested lists       <br />(should the movie buff require them), the recursive function does not need to       <br />change to process any depth of nested lists properly.</p>
</blockquote>
<p><em>This review is done as part of the <a href="http://blog.softwarefun.nl/?p=61"  target="_blank">O&#8217;Reilly Blogger Review Program</a>. O’Reilly provided the book but does not make any judgement on the content of the review. </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=64</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=64</feedburner:origLink></item>
		<item>
		<title>O’Reilly Blogger Review Program</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/zcZG9k3aH_g/</link>
		<comments>http://blog.softwarefun.nl/?p=61#comments</comments>
		<pubDate>Wed, 09 Feb 2011 20:24:08 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[O'Reilly Blogger Review Program]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=61</guid>
		<description><![CDATA[Free eBooks with up to date topics. The only things you need to do: Apply for the program Pick a book and read it Write honest reviews on your blog and an official book site. That is the O’Reilly Blogger Review Program. I couldn’t resist and applied for the program. Within one day my application [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D61"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D61&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Free eBooks with up to date topics. The only things you need to do:</p>
<ul>
<li>Apply for the program </li>
<li>Pick a book and read it </li>
<li>Write honest reviews on your blog and an official book site. </li>
</ul>
<p>That is the <a href="http://oreilly.com/bloggers/" class="aga aga_9" target="_blank">O’Reilly Blogger Review Program</a>.</p>
<p>I couldn’t resist and applied for the program. Within <strong>one</strong> day my application was approved and I was able to download my first book from <a href="http://www.oreillynet.com/oreilly/bloggers/available.csp" class="aga aga_10" target="_blank">a nice list of books</a>. </p>
<p>Now I am allowed to put the following badge on my blog. Expect reviews soon.</p>
<p> <a href="http://oreilly.com/bloggers/" class="aga aga_11"><img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="I review for the O&#39;Reilly Blogger Review Program" src="http://cdn.oreilly.com/bloggers/blogger-review-badge-200.png" width="200" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=61</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=61</feedburner:origLink></item>
		<item>
		<title>70-241 preparing for BizTalk 2006 R2 exam.</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/VnmnlI12OT4/</link>
		<comments>http://blog.softwarefun.nl/?p=44#comments</comments>
		<pubDate>Tue, 26 Oct 2010 15:55:49 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Certification]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=44</guid>
		<description><![CDATA[I took and passed the BizTalk 2006 R2 exam, also known as 70-241 on April the 28th 2010. When you look at the official site preparation materials you can get a bit discouraged. There is nothing there. The skills measured are more interesting they can give a framework for learning. This post describes the resources [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D44"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D44&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><html xmlns="">I took and passed the BizTalk 2006 R2 exam, also known as 70-241 on April the 28th 2010. When you look at the <a href="http://www.microsoft.com/learning/en/us/exam.aspx?id=70-241#tab3" class="aga aga_52" target="_blank">official site preparation materials</a> you can get a bit discouraged. There is nothing there. The <a href="http://www.microsoft.com/learning/en/us/exam.aspx?id=70-241#tab2" class="aga aga_53" target="_blank">skills measured</a> are more interesting they can give a framework for learning. This post describes the resources I used.</p>
<p><strong>Sources used</strong>.</p>
<p>I read two books : <a href="http://www.bookdepository.co.uk/book/9780470046425/Professional-BizTalk-Server-2006-R2" class="aga aga_54" target="_blank">Professional BizTalk Server 2006</a> and <a href="http://www.bookdepository.co.uk/book/9781590597750/Foundations-of-Biztalk-Server-2006" class="aga aga_55" target="_blank">Foundations of Biztalk Server 2006</a>. The foundations book is a nice weekend read to give a general overview and convince a manager you have BizTalk knowledge. It is by far not enough for taking the exam. The Professional book is a great book with a lot of depth and great practical content. The professional book feels more like a great guide when working in the field and doesn’t feel like an exam preparation guide. I found it rather difficult to read.</p>
<p>Last year I took a five day training course called <a href="http://www.quicklearn.com/class_BizTalk_Developer_Deep_Dive.aspx" class="aga aga_56" target="_blank">Biztalk 2006 deep dive</a> from Quicklearn. This was an amazing class with in depth hands-on training. After this training I didn’t do anything with BizTalk for a year so a lot of the knowledge was pretty much gone. But I still had the course material and used this for preparing now.</p>
<p>This year I did an in–house training at my employers ( <a href="http://www.sogeti.nl/Home/index.jsp" class="aga aga_57" target="_blank">Sogeti</a> ) this was a training led by an experienced BizTalk developer and the discussions, questions and answers were a great learning aid. But since the course was based on the foundations book I felt it also wasn’t enough for preparing for the exam. Most of links below were supplied by the trainer. Thanks Robin !</p>
<p>I used the following sites for gathering information (watch out BizTalk 2004, 2006, 2006 R2 and 2009 mixed)</p>
<ul>
<li><a href="http://www.sdn.nl/SDN/Artikelen/tabid/58/view/View/ArticleID/2950/BizTalk-Server-Architectuur.aspx" class="aga aga_58" target="_blank">Very nice overview article on SDN (Dutch)</a></li>
<li><a href="http://fuchangmiao.blogspot.com/search/label/BizTalk" class="aga aga_59" target="_blank">Great blog technotes</a></li>
<li><a href="http://msdn.microsoft.com/nl-nl/aa740373%28en-us%29.aspx" class="aga aga_60" target="_blank">MSDN BizTalk virtual labs</a> (requires IE)</li>
<li><a href="http://msdn.microsoft.com/en-us/library/ee317855%28v=BTS.10%29.aspx" class="aga aga_61" target="_blank">MSDN</a></li>
<li><a href="http://blogdoc.biztalk247.com/article.aspx?page=80ca3075-541f-4776-9a42-83ef5e50c117" class="aga aga_62" target="_blank">BizTalk 24*7</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6a5f6ef4-aeb8-4d8d-a521-37333a875ce4&amp;DisplayLang=en" class="aga aga_63" target="_blank">BizTalk server 2006 tutorials</a></li>
<li><a href="http://www.w3.org/XML/Schema#dev" class="aga aga_64" target="_blank">Schemas : The W3C pages</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa546812(BTS.20).aspx" class="aga aga_65" target="_blank">Schemas : MSDN page about making schemas</a></li>
<li><a href="mapshttp://msdn.microsoft.com/en-us/library/aa559261(BTS.20).aspx"  target="_blank">Maps : MSDN page about making maps</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561179(BTS.20).aspx" class="aga aga_66" target="_blank">Pipelines : MSDN page about making pipelines</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa560470(BTS.20).aspx" class="aga aga_67" target="_blank">Orchestrations : MSDN page about making orchestrations</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa577881(BTS.20).aspx" class="aga aga_68" target="_blank">Web services : MSDN page about web services</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/bb246032(BTS.20).aspx" class="aga aga_69" target="_blank">WCF services : MSDN page about WCF services</a></li>
<li><a href="fileshttp://msdn.microsoft.com/en-us/library/aa559878(BTS.20).aspx"  target="_blank">Binding files : MSDN page about binding</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/ee299289(BTS.10).aspx" class="aga aga_70" target="_blank">Adapters: MSDN page about adapters</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa577691(BTS.20).aspx" class="aga aga_71" target="_blank">Business Rule Engine : MSDN page about BRE</a></li>
<li><a href="http://blogs.msdn.com/rgarg/archive/2009/04/23/using-biztalk-business-rules-engine-bre-with-database.aspx" class="aga aga_72" target="_blank">Business Rule Engine : Example of BRE with database</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561216(BTS.20).aspx" class="aga aga_73" target="_blank">Business Rule Engine : Workings</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561326(BTS.20).aspx" class="aga aga_74" target="_blank">Business Activity Monitoring : MSDN page on BAM</a></li>
<li><a href="http://www.codeguru.com/columns/experts/article.php/c11493/" class="aga aga_75" target="_blank">Business Activity Monitoring : A simple BAM</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa972199(BTS.10).aspx" class="aga aga_76" target="_blank">Business Activity Monitoring : FAQ</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561343%28BTS.20%29.aspx" class="aga aga_77" target="_blank">Business Activity Services : MSDN on BAS</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/bb226324(BTS.20).aspx" class="aga aga_78" target="_blank">EDI and AS2 : Configuring BizTalk for EDI</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/bb226317(BTS.20).aspx" class="aga aga_79" target="_blank">EDI and AS2 : Configuring BizTalk for AS2</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd792734(BTS.10).aspx" class="aga aga_80" target="_blank">RFID : MSDN page on RFID</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561648(BTS.20).aspx" class="aga aga_81" target="_blank">Server Configuration, Security en Performance : Inner workings</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa558765(BTS.20).aspx" class="aga aga_82" target="_blank">Server Configuration, Security and Performance : Configuring for</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561890(BTS.20).aspx" class="aga aga_83" target="_blank">Server Configuration, Security and Performance : preparing for security</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa771662(BTS.20).aspx" class="aga aga_84" target="_blank">SSO : MSDN about SSO</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/cc558617(BTS.10).aspx" class="aga aga_85" target="_blank">Performance optimization guide</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa578585(BTS.20).aspx" class="aga aga_86" target="_blank">Database configuration</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa548040(BTS.20).aspx" class="aga aga_87" target="_blank">Deployment : MSDN page about deployment</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa578035(BTS.20).aspx" class="aga aga_88" target="_blank">Deployment : MSDN page about deployment 2</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa561973(BTS.20).aspx\" class="aga aga_89" target="_blank">Maintenance : MSDN page about maintenance</a></li>
<li><a href="http://msdn.microsoft.com/en-us/biztalk/bb608378.aspx" class="aga aga_90" target="_blank">BizTalk 2006 Code samples</a></li>
</ul>
<p><strong>General architecture</strong></p>
<p>A nice poster can be gotten <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8790e652-1da5-4e80-88fe-b87606233db4&amp;displaylang=en" class="aga aga_91" target="_blank">here</a>, it shows pretty detailed all the components of BizTalk. Below is my simplified graphical representation of the major BizTalk components.</p>
<p><a href="http://softwarefun.nl/wordpress/wp-content/uploads/2010/04/image.png" ><img title="image" width="550" style="display: inline; border-width: 0px;" src="http://softwarefun.nl/wordpress/wp-content/uploads/2010/04/image_thumb.png" border="0" alt="image" height="471" /></a></p>
<ul>
<li><strong>Biztalk host:</strong> Logical set of runtime processes in which you can deploy services, pipelines etc. Represents a collection of physical runtime instances that contain deployed items.</li>
<li><strong>Biztalk host instances</strong>: The physical installation of a host. A single host can contain many host instances. A single host instance can be added to multiple hosts.</li>
<li><strong>Message: </strong>A message can be any kind of data, xml files, csv files, msmq messages, parameters from a service call.</li>
<li><strong>Messagebox: </strong>The heart of BizTalk, a high per formant sql server database. All messages are kept in the message box. Receive ports and orchestration publish messages in the message box. Two way receive ports, send ports and orchestrations can subscribe to these publications.</li>
<li><strong>Receive Port: </strong>A collection of one or more receive locations.</li>
<li><strong>Receive Locations: </strong>A single location where messages can be received (think : subdirectory, msmq queue, webservice , database table) The location contains configuration for the adapter and the pipeline.</li>
<li><strong>Adapter: </strong>Adapters adapt the protocols for send and receive ports. Examples are a File, SQL, SharePoint, FTP, MSMQ, SOAP, HTTP, MQSeries, SAP, HIS, EDI adapters.</li>
<li><strong>Pipeline: </strong>Prepare messages before they are put into the messagebox or before they are send to a send port. Receive pipeline has four stages Decode, Disassemble, Validate and Resolve party. The Send pipeline has three stages Pre-assemble, assemble and Encode.</li>
<li><strong>Optional components: </strong>Within the different pipeline stages extra components can be placed. these can be components provided with BizTalk or third party vendors or your own custom components.</li>
<li><strong>Map: </strong>A translation from one message type to another. Uses XSLT for the translations.</li>
<li><strong>Orchestrations:</strong> BizTalk&#8217;s representation of a business process. Within an orchestration messages can be copied, evaluated, send to person by email, used to invoke other services etc.</li>
<li><strong>Send port: </strong>The opposite of a receive port and receive location combined. It contains the configuration for an adapter and a send pipeline.</li>
<li><strong>Send port group:</strong> A collection of send ports.</li>
<li><strong>SSO database: </strong>A database to make single sign-on possible. It stores an encrypted mapping between a windows user ID and the associated credentials for one or more affiliated applications. BizTalk also uses this database to keep any secure encrypted information like usernames and passwords for connection to services,</li>
<li><strong>Management /Configuration database: </strong>The database in which all configuration of BizTalk is kept.</li>
<li><strong>Tracking database:</strong> Keeps track of all messages that have been processed by BizTalk.</li>
<li><strong>RFID platform: </strong>This part of BizTalk makes it possible to develop Radio Frequency Identification (RFID) solutions.</li>
<li><strong>Business Rule engine:</strong> Declaratively define business rules that can be used from within orchestrations.</li>
<li><strong>Business activity monitoring: </strong>BAM Enables Users to view aggregate data related to thousands of instances of a business process, View a single instance of a business activity, search for instances of a specific business activity, filter activities at a given stage of completion and define charts, reports, KPIs, and alerts</li>
<li><strong>Business activity services:</strong> As part of running a business process, a business analyst may need to create a relationship with a new trading partner, for example, that defines the partner’s role, the business agreement between the two firms, and other aspects of this new association. Maybe a purchasing manager needs tools that can wrap together and distribute the artefacts required to let a partner quickly implement and begin participating in a business process. In BizTalk Server 2006, these functions are provided by Business Activity Services (BAS).</li>
</ul>
<p>There where fifty questions that needed to be answered within two hours. After all this preparation, I found the exam still pretty hard. The parts I missed most in my preparation were about exception handling in orchestrations.</p>
<p>To anybody who is also is trying to prepare for this exam I hope this helps and good luck ! Don’t hesitate to ask any question.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=44</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=44</feedburner:origLink></item>
		<item>
		<title>Devnology Community Day</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/NqyFHeVQrf8/</link>
		<comments>http://blog.softwarefun.nl/?p=39#comments</comments>
		<pubDate>Mon, 09 Nov 2009 20:43:04 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[Devnology]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=39</guid>
		<description><![CDATA[Saturday November the 17th 2009 Devnology held their first Devnology Community Day. A great day with amazing content for developers.This post gives my impressions of the day. For people who don’t like to read just watch the slideshow. General Impression When you put a  group of people that all share the same interests in a [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D39"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D39&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Saturday November the 17th 2009 <a href="http://devnology.nl/" class="aga aga_104" target="_blank">Devnology</a> held their first Devnology Community Day. A great day with amazing content for developers.This post gives my impressions of the day.</p>
<p>For people who don’t like to read just watch the slideshow.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="offsite=true〈=en-us&amp;page_show_url=%2Fphotos%2Fdevnology%2Fsets%2F72157622762810848%2Fshow%2Fwith%2F4086751579%2F&amp;page_show_back_url=%2Fphotos%2Fdevnology%2Fsets%2F72157622762810848%2Fwith%2F4086751579%2F&amp;set_id=72157622762810848&amp;jump_to=4086751579" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowfullscreen="true" flashvars="offsite=true〈=en-us&amp;page_show_url=%2Fphotos%2Fdevnology%2Fsets%2F72157622762810848%2Fshow%2Fwith%2F4086751579%2F&amp;page_show_back_url=%2Fphotos%2Fdevnology%2Fsets%2F72157622762810848%2Fwith%2F4086751579%2F&amp;set_id=72157622762810848&amp;jump_to=4086751579"></embed></object></p>
<p><strong>General Impression</strong></p>
<p>When you put a  group of people that all share the same interests in a room it always creates a breeding ground for discussions and sharing knowledge. If you than put these same people in a nice building, feed them and in general make sure they have nothing to complain it only gets better. I could feel this from the first minute I arrived at the community day and it lasted for the rest of the day. The only thing I possible can complain about was the lack of an internet connection. This was an unforeseen problem and will be double checked next time. Pieter Joost <a href="http://twitter.com/pjvds/statuses/5541659784" class="aga aga_105" target="_blank">promised me</a> so it must be true.</p>
<p><strong>Sessions</strong></p>
<p>The session where divers in content and in setting, there were workshops, presentations, Chalk ‘n Talks and Lightning talks. Topics you could choose from are in the table below.</p>
<table border="1" cellspacing="0" cellpadding="2" width="483">
<tbody>
<tr>
<td width="162" valign="top"><a href="http://blog.tty.nl/2009/11/08/slides-haskell-workshop/" class="aga aga_106" target="_blank">An introduction to Functional Programming using Haskell</a></td>
<td width="166" valign="top">The Lean Lego Game</td>
<td width="153" valign="top">Software engineering and multicore applications</td>
</tr>
<tr>
<td width="162" valign="top">Introduction to BDD</td>
<td width="166" valign="top">Code reviews</td>
<td width="153" valign="top">Software development anti patters found in the real world</td>
</tr>
<tr>
<td width="162" valign="top">Building an artificial game player in smalltalk</td>
<td width="166" valign="top">Flying Horses – cleaner  code in other languages</td>
<td width="153" valign="top">Math for Programmers</td>
</tr>
<tr>
<td width="162" valign="top">From idea to successful ISV: Traps and tricks</td>
<td width="166" valign="top"><a href="http://www.theenterprisearchitect.eu/archive/2009/11/09/10-things-you-should-know-model-driven-development" class="aga aga_107" target="_blank">Ten things you should know about model driven development</a></td>
<td width="153" valign="top"><a href="http://www.slideshare.net/Narnach/an-introduction-to-ruby-2449085" class="aga aga_108" target="_blank">An introduction to Ruby</a></td>
</tr>
<tr>
<td width="162" valign="top"><a href="http://code.google.com/p/multiverse/" class="aga aga_109" target="_blank">Software Transactional Memory</a></td>
<td width="166" valign="top">Give your code some love</td>
<td width="153" valign="top">Message passing concurrency with F#</td>
</tr>
<tr>
<td width="162" valign="top">File Carving revisited (with Scala)</td>
<td width="166" valign="top">Introduction to Acceptance Test Driven Development</td>
<td width="154" valign="top"></td>
</tr>
</tbody>
</table>
<p>I learned some Haskell ( Even won a book ), got an introduction to Ruby and saw some amazing Java code for Software transactional Memory.</p>
<p><strong>Devnology</strong></p>
<p><a href="http://devnology.nl/" class="aga aga_110" target="_blank">Devnology</a> is a great organization that already has organized a lot of amazing meetings. A panel discussion on Model Driven development and a session with <a href="http://codebetter.com/blogs/gregyoung/" class="aga aga_111" target="_blank">Greg Young</a> about domain driven design are just a few of the highlights. Devnology has a mission that says it all:</p>
<p><em>Devnology aims to provide the Dutch software development community with opportunities to exchange knowledge and experience. We aim to bridge the gap between theory and practice of software development.</em></p>
<p>Most of the twitter tweets about Devnology use #devnology so you can see what people are saying over <a href="http://search.twitter.com/search?q=%23devnology" class="aga aga_112" target="_blank">here</a>.</p>
<p>Contacting and asking Devnolgy questions is easy, just follow <a href="http://devnology.nl/en/about-devnology" class="aga aga_113" target="_blank">this English contact page</a>, they are all very involved and more than willing to answer questions.</p>
<p>Devnology depends on sponsors and so far they had some great sponsors. The community day was held at <a href="http://www.vxcompany.com/" class="aga aga_114" target="_blank">VXCompany</a> in Baarn. <a href="http://www.vxcompany.com/" class="aga aga_115" target="_blank">VXCompany</a> hosted the event very well and free charge.</p>
<p><strong>Conclusion</strong></p>
<p>I had a very well spent Saturday. Everything was taken care off but there also was a lot of freedom to find your way. The speakers were very involved, very easy to talk to and as far as I can assess very knowledgeable. You just have to love the organizers, the speakers and the attendees for giving up their free Saturday and making this an event to remember.</p>
<p><a href="http://softwarefun.nl/wordpress/wp-content/uploads/2009/11/4086730705_e05b6962ce.jpg" ><img style="display: inline; border: 0px;" title="SONY DSC" src="http://softwarefun.nl/wordpress/wp-content/uploads/2009/11/4086730705_e05b6962ce_thumb.jpg" border="0" alt="SONY DSC" width="490" height="328" /></a> <a href="http://softwarefun.nl/wordpress/wp-content/uploads/2009/11/4086751579_95bdc94055.jpg" ><img style="display: inline; border: 0px;" title="SONY DSC" src="http://softwarefun.nl/wordpress/wp-content/uploads/2009/11/4086751579_95bdc94055_thumb.jpg" border="0" alt="SONY DSC" width="244" height="164" /></a> <a href="http://softwarefun.nl/wordpress/wp-content/uploads/2009/11/4087518114_efdf5687a2.jpg" ><img style="display: inline; border: 0px;" title="SONY DSC" src="http://softwarefun.nl/wordpress/wp-content/uploads/2009/11/4087518114_efdf5687a2_thumb.jpg" border="0" alt="SONY DSC" width="244" height="165" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=39</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=39</feedburner:origLink></item>
		<item>
		<title>Exploring ASP.NET MVC application architecture</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/A3YczNE3KSs/</link>
		<comments>http://blog.softwarefun.nl/?p=25#comments</comments>
		<pubDate>Mon, 26 Oct 2009 21:24:57 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=25</guid>
		<description><![CDATA[I am planning on exploring how to architect a good MVC application. During this exploration I found some interesting web-resources. I might be using this post in possible future blog posts as a reference. Sample apps I really think that looking at other peoples code can give you great ideas about what to do and [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D25"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D25&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I am planning on exploring how to architect a good MVC application. During this exploration I found some interesting web-resources. I might be using this post in possible future blog posts as a reference.</p>
<p><strong>Sample apps</strong></p>
<p>I really think that looking at other peoples code can give you great ideas about what to do and what not. So here are some sample apps to look at. You could look at SharpArchitecture also as a sample app but I thought that one deserved a paragraph of it’s own.</p>
<ul>
<li>I don’t know Rob Connery personally but you gotta love what he does. <a href="http://mvcsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18861" class="aga aga_143" target="_blank">StoreFront</a>, is his sample app. And you can find a lot about it <a href="http://blog.wekeroad.com/category/mvc-storefront" class="aga aga_144" target="_blank">here</a>. </li>
<li>Read the separate Oxite paragraph for more details before downloading ! <a href="http://www.codeplex.com/oxite" class="aga aga_145" target="_blank">Oxite</a> got a lot of bad credits but combined with the critics you can find it still has value in learning how to architect an MVC app or how not to architect an MVC app. </li>
<li><a href="http://nerddinner.codeplex.com/" class="aga aga_146" target="_blank">NerdDinner</a> is rather basic but still is a nice starter with a <a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" class="aga aga_147" target="_blank">free chapter</a> of the “<a href="http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;tag=scoblo04-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0470384611" class="aga aga_148" target="_blank">Proffesional ASP.NET MVC 1.0</a>” book coming with it. </li>
<li><a href="http://code.google.com/p/codecampserver/" class="aga aga_149" target="_blank">Codecamp server</a> is on my list to explore, haven’t seen it yet. Is is part of the “<a href="http://www.amazon.com/ASP-NET-MVC-Action-Jeffrey-Palermo/dp/1933988622/ref=pd_sim_b_5" class="aga aga_150" target="_blank">ASP.NET MVC in Action</a>” book. </li>
</ul>
<p><strong>SharpArchitecture</strong></p>
<p>SharpArchitecture already has an architecture and while exploring it you can get very inspired. As far as I can tell there went a lot of thought in this architecture and for now I see it as a starting and reference point for my explorations.</p>
<p>You can find it <a href="http://github.com/codai/Sharp-Architecture/downloads" class="aga aga_151" target="_blank">here</a>.</p>
<p><strong>Oxite</strong></p>
<p>When Oxite got out it got a lot of criticism, but also a lot of love to make it better. There is a lot to find in the comments about Oxite about what people expect from an MVC app.</p>
<ul>
<li>This <a href="http://twitter.com/simonech/status/1058754441" class="aga aga_152" target="_blank">tweet</a> from Simone Chiaretta is what most people thought about Oxite when it got out. </li>
<li><a href="http://blog.wekeroad.com/blog/some-thoughts-on-oxite/" class="aga aga_153" target="_blank">This post</a> is my all-time Oxite favourite. Rob Connery gives explanations and solutions. </li>
<li>Chad Myers is a good second with also <a href="http://www.lostechies.com/blogs/chad_myers/archive/2008/12/20/oxite-review.aspx" class="aga aga_154" target="_blank">constructive comments</a> </li>
<li>Although I don’t like the tone, <a href="http://codebetter.com/blogs/karlseguin/archive/2008/12/15/oxite-oh-dear-lord-why.aspx" class="aga aga_155" target="_blank">this post</a> still has some great comments. </li>
<li>A <a href="http://www.lazycoder.com/weblog/2008/12/15/new-aspnet-mvc-sample-oxite-needs-some-tlc/" class="aga aga_156" target="_blank">collection</a> of Oxite tweets </li>
</ul>
<p><strong>Screen casts</strong></p>
<p>Most screen casts are not on an architecture level, but I do believe that the more details you know, the better you can architect the application. Also you need to be aware that these screen casts might be about different versions of the MVC framework.</p>
<ul>
<li>Scott Guthrie has a nice <a href="ScottGu Manchester ASP.NET MVC Video" target="_blank">session</a> at the Manchester user group </li>
<li>Dimecast has a lot of <a href="http://www.dimecasts.net/Casts/ByTag/MVC" class="aga aga_157" target="_blank">screen casts</a> also about SharpArchitecture </li>
<li>At oredev there was an advanced MVC <a href="http://www.softdevtube.com/2009/08/24/advanced-asp-net-mvc/" class="aga aga_158" target="_blank">session</a> </li>
<li>Rob Connery has multiple screen casts about the <a href="http://blog.wekeroad.com/category/mvc-storefront" class="aga aga_159" target="_blank">storefront app</a> and TDD. </li>
<li>I realy like this one: <a href="http://www.chrisvandesteeg.nl/2009/07/13/aspnet-mvc-dynamicdata-domain-riaservices-unity-and-nhibernate-part-1/" class="aga aga_160" target="_blank">ASP.NET MVC, DynamicData, Domain-/RiaServices, Unity and NHibernate: Part 1</a> </li>
<li>A lot off screen casts at <a href="http://www.asp.net/learn/mvc-videos/" class="aga aga_161" target="_blank">the official ASP.Net site</a> </li>
</ul>
<p><strong>Books</strong></p>
<ul>
<li>This <a href="http://davidhayden.com/blog/dave/archive/2009/10/14/ChoosingAnMvcBook.aspx" class="aga aga_162" target="_blank">post</a> by David Hayden says enough about some books, take your pick. </li>
<li><a href="http://stackoverflow.com/questions/240905/best-asp-net-mvc-book" class="aga aga_163" target="_blank">This</a> is a nice Stackoverflow answer about some books. </li>
</ul>
<p><strong>Miscellaneous</strong></p>
<p>I just had to mention these posts, but did not have a real category for it.</p>
<ul>
<li>Simone Chiaretta describes <a href="http://codeclimber.net.nz/archive/2009/10/15/my-asp.net-mvc-stack-and-why-i-chosen-it.aspx" class="aga aga_164" target="_blank">the stack he uses with MVC</a>. This gives a great overview of choices to make. </li>
<li>Simone Chiaratte lists <a href="http://codeclimber.net.nz/archive/2009/10/27/12-asp.net-mvc-best-practices.aspx" class="aga aga_165" target="_blank">12 ASP.NET MVC Best Practices</a> </li>
</ul>
<p><strong>Other posts like this one</strong></p>
<p>You wouldn’t have guessed it, but other people have collected resources too.</p>
<ul>
<li><a href="http://www.asp.net/mvc/learn/" class="aga aga_166" target="_blank">The official ASP.Net site</a> </li>
<li>From the polymorphic podcast 47 <a href="http://weblogs.asp.net/craigshoemaker/archive/2008/04/24/47-asp-net-mvc-resources-to-rock-your-development.aspx" class="aga aga_167" target="_blank">resources</a> to rock your development </li>
<li><a href="http://stephenwalther.com/blog/archive/2009/01/27/a-guide-to-learning-asp.net-mvc-release-candidate-1.aspx" class="aga aga_168" target="_blank">Stephen Walther on ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/cbowen/archive/2009/10/31/asp-net-mvc-resource-guide.aspx" class="aga aga_169" target="_blank">Chris Bowen’s Asp.Net resource guide</a></li>
</ul>
<p>I hope everybody has just as much fun as I have exploring this. If anybody has something to add, please do so in&#160; the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=25</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=25</feedburner:origLink></item>
		<item>
		<title>Gathering requirements like a Woodcutter</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/jme885ypGV4/</link>
		<comments>http://blog.softwarefun.nl/?p=22#comments</comments>
		<pubDate>Sun, 11 Oct 2009 11:12:09 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=22</guid>
		<description><![CDATA[There once was a woodcutter working hard cutting down a tree. Suddenly a leprechaun appeared and started yelling stop stop. The woodcutter looked at the leprechaun and started smiling : “Are you going to offer me a pot of gold if I quit cutting down your house ?”. The leprechaun frowned and replied “off course [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D22"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D22&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>There once was a woodcutter working hard cutting down a tree. Suddenly a leprechaun appeared and started yelling stop stop.</p>
<p>The woodcutter looked at the leprechaun and started smiling : “Are you going to offer me a pot of gold if I quit cutting down your house ?”. The leprechaun frowned and replied “off course not silly, leprechauns don’t live in trees ! I live in a beach house in Miami, but I do want to make you an offer.”</p>
<p>The leprechaun made the following offer:</p>
<p><strong>If you promise you will give half of your winnings to charity, I will let you win twenty million.</strong></p>
<p>The woodcutters first thought was that he was not going to give away ten million. But thinking a bit harder he came to the conclusion that he just was offered ten million and he should accept the offer as fast as he could. So he started picturing what his wife would say when they would have won the ten million. Humm wait a minute, I won’t be able to convince my wife to give away ten million. So he asked the leprechaun if he was allowed to tell his wife about the deal. The leprechaun agreed.</p>
<p><strong>If you and your wife will give half of your winnings to charity, I will let you win twenty million.</strong></p>
<p>So the woodcutter started picturing again how he and his wife would celebrate the ten million tomorrow or the day after. Hummm the leprechaun did not say anything about a date. So leprechaun when is this going to happen ?. Oh sorry said the leprechaun I cannot commit to a date, it will be in your lifetime. The woodcutter thought hard and did not find this very acceptable, suppose he was already going to win twenty million, was the leprechaun going to cheat him out of ten million ? The woodcutter strongly suggested that the leprechaun would give a date, the leprechaun finally agreed.</p>
<p><strong>If you and your wife will give half of your winnings to charity, I will let you win twenty million before the end of this year.</strong></p>
<p>The woodcutter started imaging again about spending all those euro’s. Hummmm the leprechaun did not say anything about euro’s. So leprechaun what will the currency be ? Oh the leprechaun could not really tell, it was a matter of what lottery he could manipulate and negotiations with other leprechauns. The leprechaun and the woodcutter discussed this a bit and came to a new agreement.</p>
<p><strong>If you and your wife give half of your winnings to charity, I will let you win about twenty million euro’s, remaining after being converted form the original currency, before the end of this year.</strong></p>
<p>Learning from the discussion so far the woodcutter did not start imaging anything but he started analyzing the agreement and the word ‘about’ started to feel a bit funny. What would happen if it was nineteen million nine hundred thousand, would he still be required to give half ? And what charity ? He could start his own foundation for the needy woodcutter. After three days of negotiating they came to an agreement.</p>
<p><strong>If you and your wife give exactly half (rounded down) of your winnings to a charity of the leprechauns choice. The leprechaun will let the woodcutter win at least twenty million euro’s, remaining after being converted from the original currency, before the thirty first of December this year at midnight. The wife will not get her own amount but she shares with the woodcutter and if anything significant changes in the made agreement the woodcutter and the leprechaun will renegotiate the agreement.</strong></p>
<p>The woodcutter went home a happy man. When he got home, his wife was mad for him being late three days. After some explaining she did not like the deal, she wanted half of the ten million. The wife left the woodcutter and the woodcutter went back to the forest to renegotiate.</p>
<p>The wife lived happily ever after.</p>
<p>When making agreements consider your organization, time, cultural differences, measurability of requirements, changes in the environment, personal viewpoints and as much as you can think of. Make the choices flexible enough to last and make them fast enough so you won’t be caught by design creep. Don’t exclude any major stakeholders.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=22</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=22</feedburner:origLink></item>
		<item>
		<title>DevDays 2009 Introduction</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/v-fpKToG50k/</link>
		<comments>http://blog.softwarefun.nl/?p=20#comments</comments>
		<pubDate>Thu, 28 May 2009 20:08:46 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[DevDays2009]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=20</guid>
		<description><![CDATA[Today I went to devdays 2009 www.devdays.nl. Except from the terrible traffic it was a great day. A lot of good content and it was hard to make a choice on what session to go to. During the sessions I made notes on my new msi netbook. It worked great and only in the last [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D20"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D20&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Today I went to devdays 2009 <a href="http://www.devdays.nl" class="aga aga_171">www.devdays.nl</a>. Except from the terrible traffic it was a great day. A lot of good content and it was hard to make a choice on what session to go to. </p>
<p>During the sessions I made notes on my new msi netbook. It worked great and only in the last session suddenly shut down because the battery was low.&#160; I am posting my notes as is, so if it reads a bit clunky it is because it was written in a hurry. Feel free to ask questions or add content in the comments.</p>
<p>The sessions I went to on day one:</p>
<ul>
<li><a href="http://blog.softwarefun.nl/?p=19"  target="_blank">C# 4.0 / The Future of C#</a> </li>
<li><a href="http://blog.softwarefun.nl/?p=18" >Securing ASP.NET applications</a> </li>
<li><a href="http://blog.softwarefun.nl/?p=17" >TDD and S.O.L.I.D</a> </li>
<li><a href="http://blog.softwarefun.nl/?p=16" >Tasks threading and parallel programming</a> </li>
</ul>
<p>the session for day two I will be posting later.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=20</feedburner:origLink></item>
		<item>
		<title>DevDays 2009 day 1 C# 4.0 / The Future of C#</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/M91u8fv38WM/</link>
		<comments>http://blog.softwarefun.nl/?p=19#comments</comments>
		<pubDate>Thu, 28 May 2009 20:08:29 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=19</guid>
		<description><![CDATA[A small introduction for these posts you can find here.Today the first day of www.devdays.nl. the day started great with a broken Tom-tom and me taking a wrong turn in The Hague. So I missed the keynote. First session &#34;C# 4.0 / The Future of C#&#34; http://tinyurl.com/qczdjs by Krishnan Subramanian. Krishnan likes to type code [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D19"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D19&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>A small introduction for these posts you can find <a href="http://blog.softwarefun.nl/?p=20" >here</a>.Today the first day of <a href="http://www.devdays.nl" class="aga aga_176">www.devdays.nl</a>. the day started great with a broken Tom-tom and me taking a wrong turn in The Hague. So I missed the keynote.</p>
<p>First session &quot;C# 4.0 / The Future of C#&quot; <a href="http://tinyurl.com/qczdjs" class="aga aga_177">http://tinyurl.com/qczdjs</a> by <a href="http://www.devdays.nl/sprekers/detail.aspx?id=a7a85025-59d8-4e33-ad15-77081552128d" class="aga aga_178">Krishnan Subramanian</a>. Krishnan likes to type code while presenting, so it promised to be a fun session. Krishnan starts with a history lesson:</p>
<ul>
<li>C# 1.0 first managed Code </li>
<li>C# 2.0 Generics </li>
<li>C# 3.0 LINQ </li>
<li>C# 4.0 Dynamic programming </li>
</ul>
<p>trends now in C# declarative, dynamic, concurrency</p>
<p>We are programming very declarative, this creates a lot of noise. Finding out what the code does can be hard. A lot of details go into the how instead of the what. Krishnan uses linq to show that linq already has less noise. His non-technical girlfriend can understand a linq query.</p>
<p>Krishnan says that there is room for static and dynamics languages.</p>
<p>When you look at hardware trends,more and more multi processors machines are getting mainstream. C# 4.0 will give more possibilities for parallel programming. Krishnan demo’s this by using a LINQ ray tracer program this program is part of the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3&amp;displaylang=en" class="aga aga_179" target="_blank">parallel extensions</a>. To make it parallel he only uses the .asParralel keyword on a LINQ query.</p>
<p>The themes for C# 4.0 are</p>
<ul>
<li>Dynamically typed objects </li>
<li>Optional and Named Parameters </li>
<li>improved COM interoperability </li>
<li>Co- and Contra-variance </li>
</ul>
<p>For some parts of the programs we write statically typed objects can get in your way. For these parts you can use dynamic typed features of the DLR. The DLR provides for expression trees, dynamic dispatch and call site caching. As an example Krishnan shows ugly C# reflection to determine a type and invoking a method and compares it to JavaScript and&#160; to c# use the dynamic keyword. The dynamic keyword is a much cleaner piece of code. In the demo he calls an iron python coded calculator form c# using the dynamic keyword. The add function can take any argument that exposes the + operator to function correctly, any argument compiles. The next demo shows writing a dynamicbag that is a child implementation of DynamicObject. In this demo he uses a dictionary that is holding the properties you can call on the object, these methods than can be added at build time from the calling code. So DynamicBag.MyCustomProp = 1 will create an entry in the dictionary the holds MyCustomProp and value 1, so this code works with some minor overriding of methods even if DynamicBag doesn’t have a property MyCustomProp.</p>
<p>The current way to use methods with less or more parameters is to use overloads. In C# 4.0 you have named and optional parameters. The optional parameter feature you can use by setting a default value to the parameter in the method declaration. When calling the method you can use named parameters this makes the code more readable.</p>
<p>For COM interop there are improvements:</p>
<ul>
<li>Dynamic mapping </li>
<li>Optional and named parameters </li>
<li>Indexed properties </li>
<li>Optional ref modifier </li>
<li>interop type embedding </li>
</ul>
<p>To explain Co- variance you can look at an array of strings and putting a button in it. This is co-variant but not safe. When looking at List&lt;String&gt; and Ienumarble&lt;object&gt; these cannot be cast to each other. In C#4.0 you can now use IEnumarable&lt;in T&gt; and IEnumarable&lt;out T&gt;. </p>
<p>In the future it might be possible to use the compiler as a service. Your program should be able to change compile behaviour.Krishnan shows a demo of code that will compile in the C# version that will come out after C# 4.0. In this he uses a CSharpEvaluator class with which he writes a program from strings. Using this he writes a command line c# interpreter. Kewl.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=19</feedburner:origLink></item>
		<item>
		<title>Attack and defence: Securing ASP.NET applications</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/EG5bsHHMVq4/</link>
		<comments>http://blog.softwarefun.nl/?p=18#comments</comments>
		<pubDate>Thu, 28 May 2009 20:08:14 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=18</guid>
		<description><![CDATA[A small introduction for these posts you can find here. Lunch at www.devdays.nl was well taken care of. Salmon sandwiches and plenty of them. The next session for day 1 for me was “Attack and defence: Securing ASP.NET applications”&#160; http://www.devdays.nl/sessies/detail.aspx?code=SEC01KB By Keith Brown. ( http://twitter.com/keithbrown42 ) As a preface Keith showed us is jojo skills, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D18"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D18&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>A small introduction for these posts you can find <a href="http://blog.softwarefun.nl/?p=20" >here</a>. Lunch at <a href="http://www.devdays.nl" class="aga aga_186">www.devdays.nl</a> was well taken care of. Salmon sandwiches and plenty of them.</p>
<p>The next session for day 1 for me was “Attack and defence: Securing ASP.NET applications”&#160; <a title="http://www.devdays.nl/sessies/detail.aspx?code=SEC01KB" href="http://www.devdays.nl/sessies/detail.aspx?code=SEC01KB" class="aga aga_187">http://www.devdays.nl/sessies/detail.aspx?code=SEC01KB</a> By <a href="http://www.devdays.nl/sprekers/detail.aspx?id=b7cdfb78-3f4c-43a4-9efe-7227292ab525" class="aga aga_188">Keith Brown</a>. ( <a href="http://twitter.com/keithbrown42" class="aga aga_189">http://twitter.com/keithbrown42</a> )</p>
<p>As a preface Keith showed us is jojo skills, pretty impressive.</p>
<p>According to Keith in security you need to find a balance. You need to start by thread modelling. You can find info from P&amp;P <a href="http://www.msdn.com/securityguidance" class="aga aga_190">http://www.msdn.com/securityguidance</a>.</p>
<p>tips:</p>
<ol>
<li>principle of minimum privileges. Don’t use the network&#160; service account, create your own account </li>
<li>do security in depth,&#160; assume all input is evil. Do security validation on the server. </li>
<li>put user input quickly in strongly typed variables don’t keep them in strings to long </li>
<li>don’t use regex without ^ and $, otherwise people still can insert stuff . </li>
<li>use sql parameters , don’t concatenate input in your query. </li>
<li>don’t show complete error messages, put the in the log and give the user the possibility to correlate there error with the log. </li>
<li>using a maximum length in textboxes doesn’t help. Use server side validation </li>
</ol>
<p>If you use validation controls you need to program them correctly. You need the check on the server side the IsValid property.</p>
<p>Viewstate by default gets hashed and checked on tampering. Cookies don’t get this, form login cookies do.</p>
<p>printf(a,b,c,d) has a big security issue (not console,writeline()) a is a control channel, the rest is a data channel. Don’t give up control of the control channel. Equal so Proces.Start(a,b) and sql.commandtext = a.</p>
<p>demo on sql- injection (people have automated this)</p>
<ul>
<li>in a search box start with a ‘ and see if you get an error (if it is a string, for a number you don’t need it. </li>
<li>use ‘ or 1=1 – to get all the rows </li>
<li>do ‘union select null,null,null (keep adding rows) </li>
<li>replace a null with intersting stuf @@version, username, tables from table_schema </li>
<li>if there is a user table, select emails and passwords and put them in an excell sheet. </li>
<li>change price </li>
<li>exec xp_cmdshell ‘net user hacker password /add’ </li>
</ul>
<p>Keith his anti virus software wanted to let the entire audience know that it was out of date during the presentation.</p>
<p>To test for XSS protection turn of validateRequest and see if your application can handle it. Web.config Demo:</p>
<ul>
<li>put in a textbox &lt;h2&gt;test&lt;h2&gt; see if the formatting is kept. </li>
<li>put forms, JavaScript and what you want in the textbox (example change logo to Google) </li>
<li>when an error page is show that get’s its message from the query string, you can use this to enhance a phishing attack. </li>
</ul>
<p>To fix the problem sandbox the output. When getting the data out of the database use HttpUtility.HtmlEncode(data). On the input side filter the input.</p>
<p>get free modules and examples form <a href="http://www.pluralsight.com/main/olt/Module.aspx?a=keith-brown&amp;n=aspdotnet-security&amp;cn=aspdotnet-fundamentals" class="aga aga_191" target="_blank">pluralsight</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=18</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=18</feedburner:origLink></item>
		<item>
		<title>DevDays 2009 day 1 TDD and S.O.L.I.D</title>
		<link>http://feedproxy.google.com/~r/Softwarefun/~3/yj0rxUrBtZs/</link>
		<comments>http://blog.softwarefun.nl/?p=17#comments</comments>
		<pubDate>Thu, 28 May 2009 20:08:03 +0000</pubDate>
		<dc:creator>Kees Dijk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.softwarefun.nl/?p=17</guid>
		<description><![CDATA[A small introduction for these posts you can find here. My third session was a wildcard session by Dennis Doomen on TDD and S.O.L.I.D. Even though the room wasn’t on the map and the session wasn’t on the session overview the room was packed. People who didn’t know what inheritance is, were asked to leave. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D17"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.softwarefun.nl%2F%3Fp%3D17&amp;source=KeesDijk&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>A small introduction for these posts you can find <a href="http://blog.softwarefun.nl/?p=20" >here</a>. My third session was a wildcard session by Dennis Doomen on TDD and S.O.L.I.D. Even though the room wasn’t on the map and the session wasn’t on the session overview the room was packed.</p>
<p>People who didn’t know what inheritance is, were asked to leave.</p>
<p>Dennis uses a definition by Michael Feathers to define quality. You must be able to write a unit test of your code within five minutes. There are multiple principles you can use, Dennis is going to focus on some of them:</p>
<ul>
<li>TDD </li>
<li>S.O.L.I.D </li>
</ul>
<p>TDD is a design process, tests are your first users, tests can be documentation. If TDD hurts you are doing it wrong.</p>
<p>For S.O.L.I.D I say read the <a href="http://www.amazon.co.uk/Principles-Patterns-Practices-Robert-Martin/dp/0131857258/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1243543743&amp;sr=1-1" class="aga aga_195" target="_blank">book</a> by Uncle Bob Martin. Dennis gives an introduction.</p>
<p>In the demo Dennis an aaa template for creating unit tests.( Arrange, Act, Assert) For naming he follows a Should_When naming convention. During the demo, Resharper and RhinoMocks prove their usefulness. Make unit tests intention revealing.</p>
<p>An extra tip from Dennis, it is possible to decorate your unit tests with the workitem attribute, this will couple the unit test with a workitem in TFS.</p>
<p>The samples are posted on Dennis’s <a href="http://www.dennisdoomen.net/" class="aga aga_196">blog</a>.</p>
<p>It was a nice session with enough interaction. I would like to see this talk held in a room full of none believers though but then with enough time to discuss. For a nice simple introduction to S.O.L.I.D watch the dimecast <a href="http://www.dimecasts.net/Casts/ByTag/SOLID%20Principle" class="aga aga_197" target="_blank">screencasts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softwarefun.nl/?feed=rss2&amp;p=17</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.softwarefun.nl/?p=17</feedburner:origLink></item>
	</channel>
</rss>

