<?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>Michael Banzon</title>
	<atom:link href="http://michaelbanzon.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://michaelbanzon.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Mar 2010 16:19:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ready, set, Go!</title>
		<link>http://michaelbanzon.com/2010/03/04/ready-set-go/</link>
		<comments>http://michaelbanzon.com/2010/03/04/ready-set-go/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 16:17:16 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[go]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[language]]></category>

		<guid isPermaLink="false">http://michaelbanzon.com/?p=78</guid>
		<description><![CDATA[I&#8217;m currently experimenting with Go.
I would really recommend anyone who takes programming seriously to have a look at it. What I&#8217;ve seen so far is very nice. I mean VERY nice.
The concept and idea behind the language (we need a new systems programming language) is very good &#8211; I&#8217;m sure this will be big! And [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently experimenting with <a href="http://golang.org/">Go</a>.</p>
<p>I would really recommend anyone who takes programming seriously to have a look at it. What I&#8217;ve seen so far is very nice. I mean VERY nice.</p>
<p>The concept and idea behind the language (we need a new systems programming language) is very good &#8211; I&#8217;m sure this will be big! And those of you caring about size and speed &#8211; well &#8211; go manage your own memory!</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2010/03/04/ready-set-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The miracles of RAID</title>
		<link>http://michaelbanzon.com/2009/09/03/the-miracles-of-raid/</link>
		<comments>http://michaelbanzon.com/2009/09/03/the-miracles-of-raid/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 07:19:17 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://michaelbanzon.com/?p=69</guid>
		<description><![CDATA[The other day at work we had a harddrive failure! Ouch!
All our corporate files where suddenly inaccessible! This was caused by a malfunctioning harddrive in our main NAS box.
Fortunately we had bought a device with a two-disk RAID-1 configuration. To temporarily resolve the problem we simply had to remove the broken harddrive and reboot the [...]]]></description>
			<content:encoded><![CDATA[<p>The other day at work we had a harddrive failure! Ouch!</p>
<p>All our corporate files where suddenly inaccessible! This was caused by a malfunctioning harddrive in our main NAS box.</p>
<p>Fortunately we had bought a device with a two-disk RAID-1 configuration. To temporarily resolve the problem we simply had to remove the broken harddrive and reboot the device. Nice and simple! I love RAID!</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2009/09/03/the-miracles-of-raid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Return of involvement</title>
		<link>http://michaelbanzon.com/2009/08/29/return-of-involvement/</link>
		<comments>http://michaelbanzon.com/2009/08/29/return-of-involvement/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 12:29:51 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://michaelbanzon.com/?p=65</guid>
		<description><![CDATA[I&#8217;m not directly involved in marketing.
Henriette Weber (my good friend) didn&#8217;t care much for this fact and sent me her new book &#8220;Return of Involvement&#8220;.
In her own personal way she puts her heart and soul into explaining the marketing and corporate screw-ups and supplying a road ahead. Involvement! I felt closer to her after reading [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not directly involved in marketing.</p>
<p><a href="http://henrietteweber.com/">Henriette Weber</a> (my good friend) didn&#8217;t care much for this fact and sent me her new book &#8220;<a href="http://www.toothlesstigerpress.com/pr/roi/index.html">Return of Involvement</a>&#8220;.</p>
<p>In her own personal way she puts her heart and soul into explaining the marketing and corporate screw-ups and supplying a road ahead. Involvement! I felt closer to her after reading the book, and even though I&#8217;m not personally involved in anything that could be connected to the content of the book it set some stuff straight for me regarding my life as a <em>consumer.</em></p>
<p>I can only recommend everybody to go get the book!</p>
<p>After reading the book myself I talked with some of the people at work which had no second thoughts immediately asking me to borrow the book so the could read this splendid work! They accepted the book straight away mainly because of my recommendation &#8211; I know that Henriette will <strong><em>love</em><span style="font-weight: normal;"> this &#8211; this is one of the key issues of her book!</span></strong></p>
<p><strong><span style="font-weight: normal;">After (almost) completing the book I decided I absolutely had to go to her reception &#8211; and so I did. There I met Henriette who was welcoming everyone with her always shiny happy presence and stunning looks.</span></strong></p>
<p>Just go get her book! <img src='http://michaelbanzon.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2009/08/29/return-of-involvement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remember to flush!</title>
		<link>http://michaelbanzon.com/2009/05/08/remember-to-flush/</link>
		<comments>http://michaelbanzon.com/2009/05/08/remember-to-flush/#comments</comments>
		<pubDate>Fri, 08 May 2009 05:41:48 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://michaelbanzon.com/?p=62</guid>
		<description><![CDATA[Last night I was doing some network/socket programming. Just for the fun of it. This was done as I always do (it&#8217;s not the first time I&#8217;m doing this kind of programming) by building up the socket connection and running it through the stream handlers that the programming language library (Java/C#) provides.
Last night I found [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I was doing some network/socket programming. Just for the fun of it. This was done as I always do (it&#8217;s not the first time I&#8217;m doing this kind of programming) by building up the socket connection and running it through the stream handlers that the programming language library (Java/C#) provides.</p>
<p>Last night I found &#8211; as I always do the first time around &#8211; that my communication wasn&#8217;t coming around to the server. I tried, I tried some more, I failed&#8230;. And went to bed upset.</p>
<p>I woke up this morning &#8211; went to do my morning business and BAM it hit me! Flush!! Oh my&#8230; ! I booted the computer, added a &#8220;stream.Flush()&#8221; and we where off! It is certainly NOT the first time I&#8217;ve missed this part! I blame the high level stream handlers &#8211; did I tell them to buffer? No!</p>
<p>Anyway &#8211; remember to flush people!</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2009/05/08/remember-to-flush/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re-inventing the wheel</title>
		<link>http://michaelbanzon.com/2009/05/02/re-inventing-the-wheel/</link>
		<comments>http://michaelbanzon.com/2009/05/02/re-inventing-the-wheel/#comments</comments>
		<pubDate>Sat, 02 May 2009 16:03:03 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://michaelbanzon.com/?p=59</guid>
		<description><![CDATA[Starting 2009 ABC-tool faced some challenges regarding development. The program has been undergoing some enormous changes since I joined the company and one of the biggest was yet to be seen.
Since the program was first introduced to the marked there had been a desire to have some sort of database underneath it all to hold [...]]]></description>
			<content:encoded><![CDATA[<p>Starting 2009 ABC-tool faced some challenges regarding development. The program has been undergoing some enormous changes since I joined the company and one of the biggest was yet to be seen.</p>
<p>Since the program was first introduced to the marked there had been a desire to have some sort of database underneath it all to hold data along with calculation results and overall program state. The nature of the program only allowed users to import and export files which in many cases was far too little. Upon my arrival to the company one of my first comments (easy made because I&#8217;m not really there to make up sellable buzz words) where something like “I don&#8217;t think you mean database – you simply just want a save function”. Besides that I probably had a lot of other comments as well but the essence here being what mostly describes my work: finding out what people want. This is a classical example of users focusing on <strong>how</strong><span style="font-weight: normal;"> they want it instead of </span><strong>what</strong><span style="font-weight: normal;"> they want. Needless to say that ABC-tool can now store the program state in project files with absolutely no use of databases.</span></p>
<p style="font-weight: normal;">Which leads me to the wheel-inventing part!</p>
<p style="font-weight: normal;">The development team where set on a quest to create a file format from scratch to support the numerous functions that our program holds. Furthermore we where very aware that the requirements to this format could/can change over night – nothing is certain. Last but not least we needed the format to be easy to debug and human readable (shortening development time) and make it easy to implement readers for other programming languages.</p>
<p style="font-weight: normal;">Numb from thinking big thoughts I reached into the back of my head and thought: XML! Now there is a format that keeps the human readability in serialized form. Furthermore XML supports all the gibberish that we would ever think to stuff into it – and it is very expandable. The only problems would be that we need to stuff all our data into one single document – fairly easy to accomplish – and then the size of the document would be an issue when dealing with large data files. The last point would be a problem not easily solved by developers (us) but very annoying to users. Imagine a file containing what seems to be a small amount of data craving 100+ MB of storage space – ouch! The fact is that at many similar records – especially when record node names are long – XML sucks! A lot! This takes up way too much disk space due to the fact that node names are repeated for every record.</p>
<p style="font-weight: normal;">So – our natural thought was: How do we solve this problem during development and make this the best solution mankind has every seen? The answer was short: Compression! (a fairly long word to be honest!). The compression solution actually also solves the other problem we had and lets us distribute our data into different files. So – as you probably have guessed – the file format that we use to store data, calculations and program state is simply a bunch of XML files organized in one single compressed ZIP-file. Simple and neat. Now where have I head about such a solution before? Oh yeah – the new Microsoft Office formats! I call it: The wheel – re-invented.</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2009/05/02/re-inventing-the-wheel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft XNA</title>
		<link>http://michaelbanzon.com/2009/01/25/microsoft-xna/</link>
		<comments>http://michaelbanzon.com/2009/01/25/microsoft-xna/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 20:27:52 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.southbound.dk/?p=51</guid>
		<description><![CDATA[After a slow December which actually only featured a major release of ABC-tool I&#8217;m back with a rather simple post&#8230;
The past few days I&#8217;ve been playing around with Microsoft XNA &#8211; yes &#8211; it is game development!
I must say &#8211; the time I&#8217;ve had with XNA had been full of positive experiences! I really think [...]]]></description>
			<content:encoded><![CDATA[<p>After a slow December which actually only featured a major release of <a title="ABC-tool" href="http://www.abc-tool.com/">ABC-tool</a> I&#8217;m back with a rather simple post&#8230;</p>
<p>The past few days I&#8217;ve been playing around with Microsoft XNA &#8211; yes &#8211; it is game development!</p>
<p>I must say &#8211; the time I&#8217;ve had with XNA had been full of positive experiences! I really think that Microsoft has done a great job with this release &#8211; it brings the power of game development to the masses.</p>
<p>In the past I&#8217;ve done a very small amount of game programming and the complexity that was needed before I had a simple &#8216;Hello world&#8217; was enormous! It was very stressful. But now &#8211; &#8216;Game&#8217; is a project type in the programming environment (Visual Studio) that I&#8217;m usually working with and they are written in the language (C#) that I&#8217;ve got the most experience with&#8230; Yay!</p>
<p>Note: My first game won&#8217;t be stating &#8220;Hello world&#8221;&#8230; Now that I&#8217;m the father of a baby girl it will be &#8220;Hello kitty&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2009/01/25/microsoft-xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minimizing memory footprint</title>
		<link>http://michaelbanzon.com/2008/10/27/minimizing-memory-footprint/</link>
		<comments>http://michaelbanzon.com/2008/10/27/minimizing-memory-footprint/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 05:12:06 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.southbound.dk/?p=47</guid>
		<description><![CDATA[ 

My work on ABC-tool keeps looping back to optimizing memory usage. The ABC-tool application runs on Windows PCs which means that it has a 2 GB memory limit (typically). The largest datasets I have every run across is about 150 MB in size – but this was XML-files and the data part was significantly [...]]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>DA</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading<br />
2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden<br />
="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]><br />
<mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabel - Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --></p>
<p><!--[endif]--></p>
<p class="MsoNormal"><span lang="EN-GB">My work on ABC-tool keeps looping back to optimizing memory usage. The ABC-tool application runs on Windows PCs which means that it has a 2 GB memory limit (typically). The largest datasets I have every run across is about 150 MB in size – but this was XML-files and the data part was significantly smaller. Even though – we come across the OutOfMemoryException waaaaay too often!</span></p>
<p class="MsoNormal"><span lang="EN-GB">How can that be? What are we doing wrong? How can we make it better?</span></p>
<p class="MsoNormal"><span lang="EN-GB">First off I would like to make some points clear. We write our main product ABC-tool in C#.NET. The program runs in all managed code with a few exceptions. The main exit from managed code is when we send data to Microsoft Excel. The data transmitted could include as much as the entire set of data imported into our program. Beside that we have a small brake from managed code to handle various license specific features – nothing much; probably not even worth mentioning. </span></p>
<p class="MsoNormal"><span lang="EN-GB">Running an entire program in managed code means that we generally don’t manage memory allocation and certainly not de-allocation by ourselves! A few weeks back I wrote a little tool to manage memory consumption evolving over time by different processes and the result was very upsetting! When importing data to ABC-tool the memory consumption peaks due to the internal processing of all text into numbers, dates etc. The troubling part is that right when the data import is complete the data is applied to the views of our program which uses a fair amount of memory in itself. By inserting different pauses and delays I have concluded that the memory consumption level won’t drop until after at least 2-3 seconds of runtime. This means that there is a short delay between releasing the memory and it actually being available again. I have observed that when I start allocating more memory or even do heavy computations the garbage collector refuse to run! My conclusion was that it does nothing until idle! This means that we can have out of memory errors occurring simply because the garbage collector is waiting for us to stop allocating memory – that isn’t right!</span></p>
<p class="MsoNormal"><span lang="EN-GB">One thing that we have certainly done wrong is assuming that memory allocating and releasing was being handled for us. Actually it was – just not while we were doing other things. This means that we will have to change the way we think of our managed code and memory.</span></p>
<p class="MsoNormal"><span lang="EN-GB">During the last few weeks I’ve tried to identify areas of the code that makes the memory consumption peak. I’ve also tried to identify strings of events each resulting in memory peaks and forced garbage collection between them. Last but not least I feel the way I think change every time I write managed code. Memory management is still an issue – I didn’t dodge it and probably never will!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2008/10/27/minimizing-memory-footprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio &#8211; Again!</title>
		<link>http://michaelbanzon.com/2008/10/22/visual-studio-again/</link>
		<comments>http://michaelbanzon.com/2008/10/22/visual-studio-again/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 13:46:07 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[vs2005]]></category>

		<guid isPermaLink="false">http://www.southbound.dk/?p=45</guid>
		<description><![CDATA[Once again Visual Studio has proven troubleish!
I&#8217;ve spent the last hour trying to find out why our project at work wouldn&#8217;t compile (complaining about missing files) on other machines but would on mine! I went through every file in the repository and confirmed that it was up to date. I confirmed that the same files [...]]]></description>
			<content:encoded><![CDATA[<p>Once again Visual Studio has proven troubleish!</p>
<p>I&#8217;ve spent the last hour trying to find out why our project at work wouldn&#8217;t compile (complaining about missing files) on other machines but would on mine! I went through every file in the repository and confirmed that it was up to date. I confirmed that the same files where present and up-to-date on the other machines&#8230; !!!</p>
<p>I turned out that I had been moving files around. I had made a sub-namespace to one of our project and moved some files into it. This can be done with no worries &#8211; except I didn&#8217;t <em><strong>close</strong></em> VS2005 before I did a commit. BIG mistake!! Apparently the project-file only gets updated with the new file locations when I close VS2005 and not when I hit the save-button&#8230;</p>
<p>Another hour spent learning the hard truth about Visual Studio.</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2008/10/22/visual-studio-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Office 2007 formats</title>
		<link>http://michaelbanzon.com/2008/10/10/office-2007-formats/</link>
		<comments>http://michaelbanzon.com/2008/10/10/office-2007-formats/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 06:59:37 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[office]]></category>

		<guid isPermaLink="false">http://www.southbound.dk/?p=42</guid>
		<description><![CDATA[I haven&#8217;t followed the great format wars over the last year or so &#8211; and I must admit that it had slipped out of my consciousness for a bit. Until I saw Mortens post the other day (warning: the link is in danish).
After reading this post my mind spent 5 seconds looping through all the [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t followed the great <em>format wars</em> over the last year or so &#8211; and I must admit that it had slipped out of my consciousness for a bit. Until I saw <a href="http://websmed.dk/2008/10/excel-mm-i-php/">Mortens post</a> the other day (warning: the link is in danish).</p>
<p>After reading this post my mind spent 5 seconds looping through all the data it has passively consumes over the last year &#8211; about formats and stuff. It was hard! For those of you who have seen the movie <em>Butterfly Effect</em> &#8211; I image it was like those loop backs&#8230;</p>
<p>Well&#8230; These days I do a large amount of programming and interaction with the Microsoft Office formats. This means that I do a LOT of COM interfacing from my C# code &#8211; and I generally hate it!</p>
<p>The only thing on my mind right now is the possibility of doing XML-only based input/output. And if I am lucky &#8211; I can add Open Office support in that process!</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2008/10/10/office-2007-formats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZIP-files and Windows Vista</title>
		<link>http://michaelbanzon.com/2008/09/13/zip-files-and-windows-vista/</link>
		<comments>http://michaelbanzon.com/2008/09/13/zip-files-and-windows-vista/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 18:44:12 +0000</pubDate>
		<dc:creator>mbanzon</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.southbound.dk/?p=39</guid>
		<description><![CDATA[At the moment I have some spare time to write something. For the silliest of reasons! I&#8217;m waiting for Windows Vista to extract the content of a ZIP-file.
Usually it has been the content of World of Warcraft addons &#8211; which generally doesn&#8217;t contain that many files. This time it is the win32 source code of [...]]]></description>
			<content:encoded><![CDATA[<p>At the moment I have some spare time to write something. For the silliest of reasons! I&#8217;m waiting for Windows Vista to extract the content of a ZIP-file.</p>
<p>Usually it has been the content of World of Warcraft addons &#8211; which generally doesn&#8217;t contain that many files. This time it is the win32 source code of the Apache HTTPD server.</p>
<p>The ZIP-file downloaded had a size of 9.4MB and the total download time was about 30 seconds to a minute. Windows Vistas current estimate is 1 hour and 46 minutes to complete. I really can&#8217;t see why this should be the case. Yes it is a lot of small files. Yes it is a whole lot &#8211; but come on &#8211; give me a break! Windows XP performed better than this!</p>
<p>If someone can shed some light over this please do so &#8211; I&#8217;m dying to find out why it is so freakin&#8217; slow!</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelbanzon.com/2008/09/13/zip-files-and-windows-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
