<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8824277</atom:id><lastBuildDate>Wed, 11 Sep 2024 03:25:11 +0000</lastBuildDate><category>.net</category><category>open source</category><category>personal</category><category>geek</category><category>web development</category><category>secret project</category><category>monodevelop</category><category>seo</category><category>spring.net</category><category>css</category><category>computer vision</category><category>javascript</category><category>mono</category><category>mootools</category><category>nhibernate</category><category>startups</category><category>book review</category><category>mysql</category><category>space</category><category>vista</category><category>beforeyoubuy</category><category>futurist</category><category>iis7</category><category>music</category><category>physics</category><category>politics</category><category>politics humor</category><category>ubuntu</category><title>Random thoughts and a dash of .NET</title><description></description><link>http://jamesfitzsimons.blogspot.com/</link><managingEditor>noreply@blogger.com (James Fitzsimons)</managingEditor><generator>Blogger</generator><openSearch:totalResults>130</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-814419300247410186</guid><pubDate>Fri, 20 Mar 2009 14:05:00 +0000</pubDate><atom:updated>2009-03-20T14:13:47.389+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><title>Time for a change</title><description>Well, I am now in the closing hours of my last day of work at my current job. It&#39;s been a challenging role and I have learnt a huge amount about the finance industry. &lt;br /&gt;&lt;br /&gt;Looking forward to the future fills me with a huge amount of excitement mixed with a little bit of nervousness. It&#39;s not every day you give up a well paying job, pack up your life and move country. I have no doubt that the next year will be full of challenges, but I am really looking forward to it all. I can&#39;t wait to build my business into &lt;a href=&quot;http://www.beforeyoubuy.co.nz&quot;&gt;New Zealands best shopping comparison site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But first, before anything else, I think it&#39;s time for a holiday!</description><link>http://jamesfitzsimons.blogspot.com/2009/03/time-for-change.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-4924941889328230475</guid><pubDate>Mon, 16 Mar 2009 15:00:00 +0000</pubDate><atom:updated>2009-03-16T15:00:00.925+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">geek</category><title>Be careful where you get your information</title><description>The internet is rife with misinformation. &lt;br /&gt;&lt;br /&gt;As a developer you tend to depend heavily on searching for examples of how to solve a particular problem such as code snippets, and patterns and practices. There is very little ground breaking work and it is almost certain that someone has been there, done that, and blogged the solution to your problem already.&lt;br /&gt;&lt;br /&gt;Problems arise when you choose the wrong source to trust. For example, today I was trying to figure out how to get ASP.NET not to render a name attribute for the form element as we are starting to target XHTML 1.1 compliance for &lt;a href=&quot;http://www.beforeyoubuy.co.nz&quot;&gt;BeforeYouBuy&lt;/a&gt;. A quick google came up with &lt;a href=&quot;http://forums.asp.net/t/1152605.aspx&quot;&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Certainly the answer that is proposed is &quot;a solution&quot;, but it&#39;s certainly not &quot;the solution&quot;. A slight modification to my search turned up &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms178159.aspx&quot;&gt;this how to on the msdn site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It&#39;s really down to knowing where to look.</description><link>http://jamesfitzsimons.blogspot.com/2009/03/be-careful-where-you-get-your.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-5558283238790119998</guid><pubDate>Thu, 12 Mar 2009 21:07:00 +0000</pubDate><atom:updated>2009-03-12T21:31:08.978+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">beforeyoubuy</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">secret project</category><category domain="http://www.blogger.com/atom/ns#">startups</category><title>BeforeYouBuy is online!</title><description>After a long time and a huge amount of hard work &lt;a href=&quot;http://www.beforeyoubuy.co.nz&quot;&gt;BeforeYouBuy&lt;/a&gt; is finally live! I&#39;m very proud of what we&#39;ve achieved and excited about what the future holds. &lt;br /&gt;&lt;br /&gt;We&#39;ve got an almost endless list of enhancements and improvements already, but the site is pretty usable and functional already. &lt;br /&gt;&lt;br /&gt;It&#39;s been a great journey, learned a lot of new tricks, tackled a fair bit of new technology and hit more than our fair share of challenges. Now that we&#39;re finally online expect to see a few more posts. We&#39;re always interested in any feedback you might have too!</description><link>http://jamesfitzsimons.blogspot.com/2009/03/beforeyoubuy-is-online.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-9045428136419013221</guid><pubDate>Fri, 30 Jan 2009 13:00:00 +0000</pubDate><atom:updated>2009-01-30T13:00:00.600+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">mysql</category><title>MySql &quot;Nested transactions are not supported&quot; exception</title><description>If you are getting an unexpected &quot;Nested transactions are not supported&quot; exception from your MySql database then you may have hit &lt;a href=&quot;http://bugs.mysql.com/bug.php?id=36326&quot;&gt;this bug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I firstly suspected Spring.NET, then the MySql ADO.NET driver. We scratched our heads for a couple of days on this one before I found that bug report. &lt;br /&gt;&lt;br /&gt;To make a long story short, simply commenting out the query_cache_size option in the my.ini file solved it. What effect this will have on performance I haven&#39;t determined yet.</description><link>http://jamesfitzsimons.blogspot.com/2009/01/mysql-nested-transactions-are-not.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-3157601674595609199</guid><pubDate>Wed, 28 Jan 2009 16:00:00 +0000</pubDate><atom:updated>2009-01-28T16:19:21.317+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">politics humor</category><title>World continues to go mad but at least retains a sense of humor</title><description>A friend pointed this out to me the other day. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/B0002CYTL2?ie=UTF8&amp;tag=ranthoandadas-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0002CYTL2&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdEoLink_YSU-p0EShuVfoG_bbHbQ0-n7pHnjHGccI7JXnaID3lhtgjofShGyvLJxk2qNSpYuaNxc_jqpFBCD9fOaY7iv2SVR1wYS61A1cZIuUR8Kzn5aHXoh0T2WTMKKSSNY/s320/41G9WA5NRDL._SL160_.jpg&quot;&gt;&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=ranthoandadas-20&amp;l=as2&amp;o=1&amp;a=B0002CYTL2&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;At first glance you&#39;d either be inclined to shake your head at the depressing state of childrens toys today, or more likely dismiss it out of hand.&lt;br /&gt;&lt;br /&gt;Instead head over to Amazon and check out the tags and reviews people have added to this product.&lt;br /&gt;&lt;br /&gt;Absolutely priceless.</description><link>http://jamesfitzsimons.blogspot.com/2009/01/world-continues-to-go-mad-but-at-least.html</link><author>noreply@blogger.com (James Fitzsimons)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSdEoLink_YSU-p0EShuVfoG_bbHbQ0-n7pHnjHGccI7JXnaID3lhtgjofShGyvLJxk2qNSpYuaNxc_jqpFBCD9fOaY7iv2SVR1wYS61A1cZIuUR8Kzn5aHXoh0T2WTMKKSSNY/s72-c/41G9WA5NRDL._SL160_.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-9062295953642082630</guid><pubDate>Mon, 26 Jan 2009 15:05:00 +0000</pubDate><atom:updated>2009-01-30T09:46:16.786+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>A:Hover and IE - a trap for young players</title><description>If you&#39;re having trouble getting your a:hover effect to work in IE you might want to make sure you have an href attribute on the anchor element. The hover effect won&#39;t work in IE unless it does.&lt;br /&gt;&lt;br /&gt;I had something like the following:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=&quot;color:#666666;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&amp;lt;a onclick=&quot;somejavascriptfunction()&quot;&amp;gt;Anchor text&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Changing to this solved the issue:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=&quot;color:#666666;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&amp;lt;a onclick=&quot;somejavascriptfunction()&quot; href=&#39;#&#39;&amp;gt;Anchor text&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;It&#39;s a bit embarrassing and I should know better. I hope this post helps other people avoid wasting time like I did.&lt;br /&gt;&lt;/p&gt;</description><link>http://jamesfitzsimons.blogspot.com/2009/01/ahover-and-ie-trap-for-young-players.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-3766012619075788368</guid><pubDate>Fri, 19 Dec 2008 14:30:00 +0000</pubDate><atom:updated>2008-12-19T14:34:30.430+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">music</category><category domain="http://www.blogger.com/atom/ns#">personal</category><title>Amazons DRM free MP3s</title><description>A couple of nights ago I finally found some time to check out Amazon&#39;s new MP3 service and so far I&#39;m pretty impressed.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;No DRM&lt;/h4&gt;&lt;br /&gt;My interest in the Amazon MP3 service was piqued when I discovered all their tracks are DRM free (&lt;a href=&quot;http://www.apple.com/itunes&quot;&gt;unlike some other crippled offerings&lt;/a&gt;). The songs are encoded at 256 kbps which is a pretty respectable bit rate.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Linux support!&lt;/h4&gt;&lt;br /&gt;I got even more excited when I went to the &lt;a href=&quot;http://www.amazon.co.uk/gp/dmusic/help/faq.html/ref=sv_dmusic_0&quot;&gt;getting started page&lt;/a&gt; and in the &quot;Buy and Download&quot; section they mention they have a Linux version of their Amazon MP3 Downloader application. And they haven&#39;t gone for some budget &quot;one size fits all&quot; Linux solution, but they have binaries for most of the major distros.&lt;br /&gt;&lt;br /&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5280905002449134994&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center;&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhnz-1nwHHVnx3ux0MsThR-BDNLFNkXCiaG_w65lT7BaEu_somaCJ2gpln5McH7RSm3RIv2kv4vawRdvU7ciJU1zYanGbqfjdosoXpRgSMh5PnOXHt_-KanKv8zqYYcL7JS_Jo/s400/distros.jpg&quot; border=&quot;0&quot;&gt;&lt;br /&gt;&lt;br /&gt;It&#39;s really encouraging to see this sort of first class support for Linux by companies like Amazon.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;What if I&#39;m running 64 bit linux?&lt;/h4&gt;&lt;br /&gt;If like me you are running the amd64 build of your distro you will need to convince Amazons MP3 Downloader to run against 32 bit libraries. If you use Ubuntu then I suggest the excellent &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=474790&quot;&gt;getlibs tool&lt;/a&gt; for installing your 32 bit dependencies. After you&#39;ve downloaded the Ubuntu deb file, install it using:&lt;br /&gt;&lt;blockquote&gt;&lt;font style=&quot;color: rgb(102, 102, 102);&quot; face=&quot;courier new&quot;&gt;sudo dpkg -i --force-all amazon*.deb&lt;/font&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then install the 32 bit dependencies with getlibs:&lt;br /&gt;&lt;blockquote&gt;&lt;font style=&quot;color: rgb(102, 102, 102);&quot; face=&quot;courier new&quot;&gt;getlibs /usr/bin/amazonmp3&lt;/font&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;It&#39;s dangerously easy to use&lt;/h4&gt;&lt;br /&gt;Amazon certainly seem to have a great range of music on offer. To test things out I purchased &lt;div id=&quot;ukShaka&quot;&gt;&lt;a href=&quot;http://www.amazon.co.uk/gp/product/B001HDN7QS?ie=UTF8&amp;amp;tag=ranthoandadas-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=19450&amp;amp;creativeASIN=B001HDN7QS&quot;&gt;Shakatakadoodub&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.co.uk/e/ir?t=ranthoandadas-21&amp;amp;l=as2&amp;amp;o=2&amp;amp;a=B001HDN7QS&quot; alt=&quot;&quot; style=&quot;border: medium none  ! important; margin: 0px ! important;&quot; border=&quot;0&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;&lt;/div&gt;&lt;div id=&quot;usShaka&quot;&gt;&lt;a href=&quot;http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D17%26ref%255F%3Dnb%255Fss%255Fgw%26y%3D20%26field-keywords%3DShakatakadoodub%2520%26url%3Dsearch-alias%253Ddigital-music&amp;tag=ranthoandadas-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957&quot;&gt;Shakatakadoodub&lt;/a&gt;&lt;img src=&quot;https://www.assoc-amazon.com/e/ir?t=ranthoandadas-20&amp;l=ur2&amp;o=1&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/div&gt;&lt;script language=&quot;JavaScript&quot;&gt;var country_code = geoip_country_code();if (country_code != &quot;GB&quot;){ document.getElementById(&#39;ukShaka&#39;).style.display = &#39;none&#39;;}else{document.getElementById(&#39;usShaka&#39;).style.display = &#39;none&#39;;}&lt;/script&gt; by Kruder &amp;amp; Dorfmeister using 1-click. The 3 track EP cost me £2.37, you can get full albums for around £6-7 (or $9-11 US). The Amazon MP3 Downloader is a simple but effective app downloading Shakatakadoodub to my machine in a matter of seconds. From there it was a simple job to import into Banshee. One mouse click was all it took to purchase and download a DRM free EP!&lt;br /&gt;&lt;br /&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5280906315701078290&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center;&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDk2HQB5bEQn-gZ2iOU3dgtxahgR83fNN5lQ0VtJVaZTRQT2f_me1Y7z3Vbep_0uDyyh-FCaY3KzsXMvyRH-hzA7nCX3EJS6s9a913LxKb8q7q2flpDiqJVmqx6HYLmtvxdQ9/s320/mp3download.jpg&quot; border=&quot;0&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;I&#39;m a happy camper&lt;/h4&gt;&lt;br /&gt;Overall I&#39;m really impressed with this offering and can&#39;t understand why it hasn&#39;t had more press. It amazes me that people stick with crippled solutions like the iTunes store when you have a DRM free alternative like this available. I know where I&#39;ll be buy my music from now...&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;usmp3&quot;&gt;&lt;iframe src=&quot;http://rcm.amazon.com/e/cm?t=ranthoandadas-20&amp;amp;o=1&amp;amp;p=13&amp;amp;l=ur1&amp;amp;category=mp3&amp;amp;banner=049KFEESVHAF56XHD5R2&amp;amp;f=ifr&quot; border=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;border: medium none ;&quot; scrolling=&quot;no&quot; width=&quot;468&quot; frameborder=&quot;0&quot; height=&quot;60&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id=&quot;ukmp3&quot;&gt;&lt;a href=&quot;http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FMP3-Music-Download%2Fb%3Fie%3DUTF8%26node%3D77197031%26ref%255F%3Dtopnav%255Fstoretab%255Fdmusic&amp;amp;tag=ranthoandadas-21&amp;amp;linkCode=ur2&amp;amp;camp=1634&amp;amp;creative=19450&quot;&gt;Amazon MP3 Downloads&lt;/a&gt;&lt;img src=&quot;https://www.assoc-amazon.co.uk/e/ir?t=ranthoandadas-21&amp;amp;l=ur2&amp;amp;o=2&quot; alt=&quot;&quot; style=&quot;border: medium none  ! important; margin: 0px ! important;&quot; border=&quot;0&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;&lt;/div&gt;&lt;script language=&quot;JavaScript&quot;&gt;var country_code = geoip_country_code();if (country_code != &quot;GB&quot;){document.getElementById(&#39;ukmp3&#39;).style.display = &#39;none&#39;;}else{document.getElementById(&#39;usmp3&#39;).style.display = &#39;none&#39;;}&lt;/script&gt;</description><link>http://jamesfitzsimons.blogspot.com/2008/12/amazons-drm-free-mp3s.html</link><author>noreply@blogger.com (James Fitzsimons)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhnz-1nwHHVnx3ux0MsThR-BDNLFNkXCiaG_w65lT7BaEu_somaCJ2gpln5McH7RSm3RIv2kv4vawRdvU7ciJU1zYanGbqfjdosoXpRgSMh5PnOXHt_-KanKv8zqYYcL7JS_Jo/s72-c/distros.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-7973756233110380790</guid><pubDate>Thu, 11 Dec 2008 16:51:00 +0000</pubDate><atom:updated>2008-12-11T16:50:37.898+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">vista</category><title>Tomboy for windows</title><description>When working in Windows I like to use as much Open Source software as possible to make my environment as familiar to my Linux desktop as I can. I have many of the popular applications installed such as Firefox, Thunderbird, Gimp, MySql, and XEmacs (who said XEmacs wasn&#39;t popular?!).&lt;br /&gt;&lt;br /&gt;Recently a &lt;a href=&quot;http://automorphic.blogspot.com/2008/10/tomboy-preview-for-windows-and-mac.html&quot;&gt;Tomboy preview for windows&lt;/a&gt; became available and a few nights ago I finally got round to installing on my laptop. Tomboy is a great application and works the way a note taking application should work.&lt;br /&gt;&lt;br /&gt;The install is a little fiddly if you are running Vista due to a bug in the Gtk runtime installer, but it&#39;s not too challenging to get running.&lt;br /&gt;&lt;br /&gt;If you&#39;ve ever wanted an application to quickly jot notes into I throughly recommend you give Tomboy a try.</description><link>http://jamesfitzsimons.blogspot.com/2008/12/tomboy-for-windows.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-9211990674779712650</guid><pubDate>Tue, 09 Dec 2008 14:30:00 +0000</pubDate><atom:updated>2008-12-10T09:59:00.097+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">vista</category><title>Vista performance and Aero</title><description>&lt;h4&gt;Misinformation everywhere&lt;/h4&gt;&lt;br /&gt;Do a search for Vista performance tips and you will get dozens of hits, most of which will be espousing the same advice - if you want better performance on your Vista machine turn off Aero.&lt;br /&gt;&lt;br /&gt;I have a Lenovo Thinkpad T61 with Vista Business installed. It&#39;s a fairly high spec machine and should be pretty snappy, however coming from using XP at work and Ubuntu at home I found Vista very slow. I followed the advice of a number of different sites and (among other things) switched of Aero. I noticed a marginal performance improvement (probably due to switching off search indexing) but still wasn&#39;t happy.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Switching Aero on improves performance&lt;/h4&gt;&lt;br /&gt;Just the other day I decided to switch Aero back on. It was like I&#39;d found the turbo button. My machine was much more responsive and Visual Studio went from taking around 30 seconds to load to starting in 1-2 seconds.&lt;br /&gt;&lt;br /&gt;In retrospec it kinda makes sense. Vista has support for offloading the rendering tasks to the GPU so why would you force all this work back onto the CPU by switching Aero off?&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;It worked for me...&lt;/h4&gt;&lt;br /&gt;Turning Aero on improves performance (at least in my experience) so if you&#39;ve previously switched it off, try turning it on again - you might be in for a plesant surprise!</description><link>http://jamesfitzsimons.blogspot.com/2008/12/vista-performance-and-aero.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-8812246046822334064</guid><pubDate>Mon, 01 Dec 2008 14:30:00 +0000</pubDate><atom:updated>2008-12-01T16:06:51.068+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">physics</category><title>Superstring theory 101</title><description>I thought I&#39;d post this presentation Brian Greene did at &lt;a href=&quot;http://www.ted.com/&quot;&gt;TED&lt;/a&gt; in 2005 given that it seems a few people are interested in the book I&#39;m currently reading: &lt;div id=&quot;ukteulink&quot;&gt;&lt;a href=&quot;http://www.amazon.co.uk/gp/product/009928992X?ie=UTF8&amp;tag=ranthoandadas-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=009928992X&quot;&gt;The Elegant Universe: Superstrings, Hidden Dimensions and the Quest for the Ultimate Theory&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.co.uk/e/ir?t=ranthoandadas-21&amp;l=as2&amp;o=2&amp;a=009928992X&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/div&gt;&lt;div id=&quot;usteulink&quot;&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0375708111?ie=UTF8&amp;tag=ranthoandadas-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0375708111&quot;&gt;The Elegant Universe: Superstrings, Hidden Dimensions, and the Quest for the Ultimate Theory&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=ranthoandadas-20&amp;l=as2&amp;o=1&amp;a=0375708111&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/div&gt;. &lt;br /&gt;&lt;script language=&quot;JavaScript&quot;&gt;var country_code = geoip_country_code();if (country_code != &quot;GB&quot;){document.getElementById(&#39;ukteulink&#39;).style.display = &#39;none&#39;;}else{document.getElementById(&#39;usteulink&#39;).style.display = &#39;none&#39;;}&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;The presentation is a fantastic primer on Superstring theory and, should it wet your appetite, the book will certainly appeal.&lt;br /&gt;&lt;br /&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; width=&quot;320&quot; height=&quot;285&quot; id=&quot;VE_Player&quot; align=&quot;middle&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot;&gt;&lt;PARAM NAME=&quot;FlashVars&quot; VALUE=&quot;bgColor=FFFFFF&amp;file=http://static.videoegg.com/ted/movies/BrianGreene_2005_high.flv&amp;autoPlay=false&amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;forcePlay=false&amp;logo=&amp;allowFullscreen=true&quot;&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot;&gt;&lt;param name=&quot;scale&quot; value=&quot;noscale&quot;&gt;&lt;param name=&quot;wmode&quot; value=&quot;window&quot;&gt;&lt;embed src=&quot;http://static.videoegg.com/ted2/flash/loader.swf&quot; FlashVars=&quot;bgColor=FFFFFF&amp;file=http://static.videoegg.com/ted/movies/BrianGreene_2005_high.flv&amp;autoPlay=false&amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;forcePlay=false&amp;logo=&amp;allowFullscreen=true&quot; quality=&quot;high&quot; allowScriptAccess=&quot;always&quot; bgcolor=&quot;#FFFFFF&quot; scale=&quot;noscale&quot; wmode=&quot;window&quot; width=&quot;320&quot; height=&quot;285&quot; name=&quot;VE_Player&quot; align=&quot;middle&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/object&gt;</description><link>http://jamesfitzsimons.blogspot.com/2008/12/superstring-theory-101.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-9121445482848573323</guid><pubDate>Fri, 28 Nov 2008 17:20:00 +0000</pubDate><atom:updated>2008-11-28T17:21:23.982+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">space</category><title>SpaceX Falcon 9 progress</title><description>Very excited to see SpaceX&#39;s progress on the &lt;a href=&quot;http://spacex.com/updates.php&quot;&gt;assembly of their Falcon 9&lt;/a&gt;. Let&#39;s hope they enjoy as much success with the Falcon 9 as they have recently had with the Falcon 1.&lt;br /&gt;&lt;br /&gt;Just for fun, here&#39;s the highlights of launch 4 again:&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/eWtfE1GHNjg&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/eWtfE1GHNjg&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</description><link>http://jamesfitzsimons.blogspot.com/2008/11/spacex-falcon-9-progress.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-9016683605653636737</guid><pubDate>Wed, 26 Nov 2008 09:00:00 +0000</pubDate><atom:updated>2008-11-26T09:00:02.021+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">mono</category><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><title>Mono gets some first class love in Ubuntu!</title><description>I was pretty excited to see this article on &lt;a href=&quot;http://arstechnica.com/news.ars/post/20081124-first-jaunty-jackalope-ubuntu-9-04-alpha-hops-into-view.html&quot;&gt;mono in Jaunty Jackalope&lt;/a&gt; over at arstechnica today.&lt;br /&gt;&lt;br /&gt;It looks like there is going to be a real effort to improve Mono support in Ubuntu and migrate &lt;span style=&quot;font-weight:bold;&quot;&gt;all applications&lt;/span&gt; and the CLR to the 2.0 profile.&lt;br /&gt;&lt;br /&gt;This is fantastic news - great work Ubuntu devs!</description><link>http://jamesfitzsimons.blogspot.com/2008/11/mono-gets-some-first-class-love-in.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-5130285740714253710</guid><pubDate>Tue, 25 Nov 2008 14:30:00 +0000</pubDate><atom:updated>2008-11-25T14:30:00.731+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">iis7</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>IIS gzip compression: the missing link</title><description>I&#39;ve been wanting to enable gzip compression for our static content (javascript and css files) for a while but just haven&#39;t been able to get IIS 7 to comply. Apparently static compression is enabled by default in IIS 7 but when inspecting traffic using fiddler I wasn&#39;t seeing my static content compressed.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Solution at last&lt;/h4&gt;&lt;br /&gt;After several hours of googling and trying various unsuccessful solutions I finally found the answer! Buried in the comments of a post on &lt;a href=&quot;http://www.west-wind.com/Weblog/posts/98538.aspx&quot; rel=&quot;nofollow&quot;&gt;Rick Strahl&#39;s blog&lt;/a&gt;, Imad Jureidini had pointed out the following:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;I&#39;ve been running into the same issues. Ultimately, the solution was to change the following config setting:&lt;br /&gt;&lt;br /&gt;&amp;lt;serverruntime frequenthitthreshold=&quot;1&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;The default value here is &quot;2&quot;, which means that even static content does not get compressed if it isn&#39;t requested twice within a 10 seconds period (frequentHitTimePeriod). Switching to &quot;1&quot; means that the file gets compressed right away.&lt;br /&gt;&lt;br /&gt;Hopefully this will fix your problems too :)&lt;br /&gt;&lt;br /&gt;- Imad &lt;/em&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;To confirm that this was in fact the problem I was experiencing I did a control refresh of my website several times in very quick succession. Sure enough the css and javascript files suddenly started coming through compressed.&lt;br /&gt;&lt;br /&gt;I then used the following command to change the setting in my servers config:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:courier new;color:#666666;&quot;&gt;%windir%\system32\inetsrv\appcmd.exe set config&lt;br /&gt;-section:system.webServer/serverRuntime -frequentHitThreshold:1&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;After restarting IIS I tried a control refresh of the website again. As expected the css and javascript files were delivered compressed on the first request.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Why?&lt;/h4&gt;&lt;br /&gt;This begs the question - why would Microsoft do such a thing? Surely the point of compression of static resources is to reduce delivery time to the browser. Why should my users care if anyone else has recently requested the particular resource they are interested in? They aren&#39;t and shouldn&#39;t be. These static resources should be compressed first, time everytime. (The only exception to this would be where compression is straining the servers ability to serve content).&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Where is the documentation?&lt;/h4&gt;&lt;br /&gt;I&#39;ve got to say my experiences with IIS 7 to date have been one frustration after the next. Microsoft appears to have put a lot of work into this product and at first glance a lot of the new features look to offer real value. What I don&#39;t understand is why there is so little documentation on this new product. So much has changed from IIS 6 there really needs to be a comprehensive set of documentation available somewhere - if it does exist I have yet to find it...</description><link>http://jamesfitzsimons.blogspot.com/2008/11/iis-gzip-compression-missing-link.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-7486558677410910001</guid><pubDate>Mon, 24 Nov 2008 09:30:00 +0000</pubDate><atom:updated>2008-11-24T09:30:00.701+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">personal</category><title>We&#39;re typists first... really?</title><description>I read Coding Horror on a semi regular basis, and generally Jeff has a pretty engaging writing style and his posts are fairly interesting. I was really surprised when I read &lt;a href=&quot;http://www.blogger.com/%20http://www.codinghorror.com/blog/archives/001188.html%20&quot;&gt;this one&lt;/a&gt; though.&lt;br /&gt;&lt;br /&gt;Jeff ascertains that &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;We are typists first, and programmers second&quot;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Well, I vehemently disagree. While typing ability is obviously important in the job and a necessary skill, saying that we are typists first places very little value on the technical skills required of programmers to do their job well (not to mention the years at university most of us have spent earning our Computer Science degrees, Masters and in some cases PhD&#39;s!).&lt;br /&gt;&lt;br /&gt;Personally I don&#39;t even like the label &quot;Programmer&quot;. I feel it undervalues the skills I have. Software Engineer is far more accurate description of the job most of us do. Writing a non-trivial application these days requires an understanding of many challenging concepts.&lt;br /&gt;&lt;br /&gt;Todays Software Engineers need to consider concurrency issues, network theory, efficient persistence mechanisms, efficient search algorithms (the volume of data we are dealing with is growing exponentially), but to name a few.&lt;br /&gt;&lt;br /&gt;Let&#39;s not sell ourselves short by calling ourselves programmers.&lt;br /&gt;&lt;br /&gt;Returning to Jeffs&#39; typists first allegation though, one comment on his post summed it up nicely for me:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-weight: bold;&quot;&gt;I’ve always really liked your blog Jeff, but this is a BS post&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Thoughts?</description><link>http://jamesfitzsimons.blogspot.com/2008/11/were-typists-first-really.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-7670681696418854024</guid><pubDate>Fri, 21 Nov 2008 14:30:00 +0000</pubDate><atom:updated>2008-11-21T14:30:01.100+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">mootools</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>MooTools slide effect and Internet Explorer CSS</title><description>Have you struck a problem with MooTools slide transition and CSS styles not appearing correctly in IE? I ran into this exact issue the other day where I was trying to slide a DIV element up and down based on a click event elsewhere on the page. The CSS style applied to the DIV looked something like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family:courier new;color:#666666;&quot;&gt;&lt;pre&gt;#slidingDiv {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding-bottom: 10px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background: white url(../images/box_bottom.gif) bottom no-repeat;&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;/blockquote&gt;The problem seems to be that IE can&#39;t calculate the height of content in the dynamically resized DIV correctly and thus the padding-bottom and hence my background image (nice rounded corners in this case) wasn&#39; showing.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;The solution&lt;/h4&gt;&lt;br /&gt;The fix turned out to be simple enough, I just made the height of the DIV fixed in the CSS. Once IE knew how big the inner content was supposed to be everything started working correctly.</description><link>http://jamesfitzsimons.blogspot.com/2008/11/mootools-slide-effect-and-internet.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-3032191725962845010</guid><pubDate>Thu, 20 Nov 2008 17:39:00 +0000</pubDate><atom:updated>2008-11-25T19:03:26.162+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">personal</category><title>The Big Bang Theory, the best thing on TV right now?</title><description>If you haven&#39;t yet seen The Big Bang Theory you should make an effort to rectify the situation immediately. It really is an excellent show based around intelligent witty humor rather than cheap laughs and tremendously funny.&lt;br /&gt;&lt;br /&gt;The story focuses around two ubergeeks, Leonard and Sheldon and how their life changes when they meet Penny their new &quot;normal&quot; (and very pretty) neighbor. I love the fact that the show celebrates the geeky, ultra intelligent side of their characters and although most of the laughs come from their lack of ability to deal with normal every day social situations, the writers do it in such a way that is funny without making Leonard and Sheldon the butt of every joke.&lt;br /&gt;&lt;br /&gt;The Big Bang Theory manages to mix in enough scientific content and references to keep us geeks happy while still being incredibly watchable and entertaining for those with less of a penchant for things science.&lt;br /&gt;&lt;br /&gt;Check out a few snippets from the first show of season one:&lt;br /&gt;&lt;br /&gt;&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/a8P0YmgQTbA&amp;amp;hl=en&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/a8P0YmgQTbA&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If you haven&#39;t seen season one it&#39;s already out on DVD, grab your copy now, you won&#39;t be disappointed!&lt;br /&gt;&lt;br /&gt;&lt;script language=&quot;JavaScript&quot;&gt;var country_code = geoip_country_code();if (country_code != &quot;GB&quot;){ document.write(&quot;&lt;iframe src=&#39;http://rcm.amazon.com/e/cm?t=ranthoandadas-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B000W91RUG&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr&#39; style=&#39;width:120px;height:240px;&#39; scrolling=&#39;no&#39; marginwidth=&#39;0&#39; marginheight=&#39;0&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&quot;);}else{document.write(&quot;&lt;iframe style=&#39;WIDTH: 120px; HEIGHT: 240px&#39; marginwidth=&#39;0&#39; marginheight=&#39;0&#39; src=&#39;http://rcm-uk.amazon.co.uk/e/cm?t=ranthoandadas-21&amp;amp;o=2&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B001I45PCK&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr&#39; frameborder=&#39;0&#39; scrolling=&#39;no&#39;&gt;&lt;/iframe&gt;&quot;);}&lt;/script&gt;</description><link>http://jamesfitzsimons.blogspot.com/2008/11/big-bang-theory-best-thing-on-tv-right.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-5062226528139419576</guid><pubDate>Wed, 19 Nov 2008 17:26:00 +0000</pubDate><atom:updated>2008-11-19T17:49:32.552+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">spring.net</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>RowUpdating event and UpdateRow method of a GridView not firing</title><description>We struck a bit of an odd problem today. We had an older ASP.NET 2.0 website we were migrating to ASP.NET 3.5 and one of the pages has a GridView on it. As we use Spring.NET and NHibernated Microsofts new objectdatasource approach for binding the GridView won&#39;t fly so we were using old school databinding. This meant we needed to be able to handle the RowUpdating event in order to persist our changes. The problem was that the RowUpdating event just wasn&#39;t firing.&lt;br /&gt;&lt;br /&gt;Eventually we tracked it down to a weird interaction between Spring.NET and the GridView where if we wrapped the GridView in a spring:panel and suppressed dependency injection the event started firing. Of course the new and old values that are supposed to be available in that event handler were still null...&lt;br /&gt;&lt;br /&gt;There is obviously a bug with the databinding in the GridView somewhere and it seems &lt;a href=&quot;http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.aspnet.webcontrols/2006-12/msg00179.html&quot;&gt;Microsoft is aware of the issue&lt;/a&gt;, however I wouldn&#39;t hold my breath for a fix to be forthcoming.&lt;br /&gt;&lt;br /&gt;Personally I think the new objectdatasource model has some serious drawbacks and the fact that Microsoft haven&#39;t made the effort to ensure that custom databinding still works is a real shame to say the very least!</description><link>http://jamesfitzsimons.blogspot.com/2008/11/rowupdating-event-and-updaterow-method.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-6983478250135659965</guid><pubDate>Wed, 12 Nov 2008 14:30:00 +0000</pubDate><atom:updated>2008-11-12T14:30:01.098+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">nhibernate</category><category domain="http://www.blogger.com/atom/ns#">open source</category><title>NHibernate onFlushDirty has null previousState</title><description>&lt;h3&gt;The problem&lt;/h3&gt;&lt;br /&gt;We use an Entity interceptor to create audit records when we update most tables. We also do a lot of our data access through .NET remoting. This means that we open a session to load the object, the object is detached, serialized, modified, then reattached to the session when we want to persist the changes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We noticed that in the cases where we are updating detached objects, although the update was being applied correctly there were no audit records appearing in the database. On investigation we realised that the previousState parameter passed into the onFlushDirty method of our interceptor was null.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Why&lt;/h3&gt;&lt;br /&gt;In the Save method of our data access class we were using the SaveOrUpdate method of the NHibernate session to persist the changes. &lt;a href=&quot;http://www.hibernate.org/hib_docs/reference/en/html_single/#objectstate-saveorupdate&quot;&gt;Section 10.7 of the documentation&lt;/a&gt; states:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;saveOrUpdate() does the following: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;if the object is already persistent in this session, do nothing&lt;/li&gt;&lt;li&gt;if another object associated with the session has the same identifier, throw&lt;br /&gt;an exception &lt;/li&gt;&lt;li&gt;if the object has no identifier property, save() it &lt;/li&gt;&lt;li&gt;if the object&#39;s identifier has the value assigned to a newly instantiated&lt;br /&gt;object, save() it &lt;/li&gt;&lt;li&gt;if the object is versioned (by a &lt;version&gt;or &lt;timestamp&gt;), and&lt;br /&gt;the version property value is the same value assigned to a newly instantiated&lt;br /&gt;object, save() it otherwise update() the object &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;and merge() is very different: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;if there is a persistent instance with the same identifier currently&lt;br /&gt;associated with the session, copy the state of the given object onto the&lt;br /&gt;persistent instance&lt;/li&gt;&lt;li&gt;if there is no persistent instance currently associated with the session,&lt;br /&gt;try to load it from the database, or create a new persistent instance &lt;/li&gt;&lt;li&gt;the persistent instance is returned &lt;/li&gt;&lt;li&gt;the given instance does not become associated with the session, it remains&lt;br /&gt;detached&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;p&gt;As our detached objects had an Id and version when we called SaveOrUpdate() they were being updated, and seeing as all update() does is reattach an object to the session, the session had no record of the changes that had been made to that object since it was loaded.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The solution&lt;/h3&gt;&lt;br /&gt;The solution was to use the merge() method (new in NHibernate 2.0). Merge() checks the first level cache to see if an object with the given identifier has previously been loaded. If so it loads that object out of the first level cache and updates it&#39;s properties using the detached object. This means that the session is now able to track the changes made to the object so that when the flush occurs the previousState is no longer null.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://jamesfitzsimons.blogspot.com/2008/11/nhibernate-onflushdirty-has-null.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-7264247417392122991</guid><pubDate>Tue, 11 Nov 2008 14:30:00 +0000</pubDate><atom:updated>2008-11-11T14:30:01.086+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">mootools</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>MooTools ASP.NET Webservice Ajax calls.</title><description>I had some trouble trying to find an example of how to call an ASP.NET webservice from MooTools. I eventually pieced the bits together from a couple of forum posts and thought I&#39;d post an example here in case anyone else was having the same problems.&lt;br /&gt;&lt;br /&gt;If I have an ASP.NET webservice that has a GetById method that takes a single int parameter and returns an object I can call it with the following code:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style=&quot;color: rgb(102, 102, 102); font-family: courier new;&quot;&gt;function doAjaxWebServiceRequest (id) {&lt;br /&gt;        var completeDelegate = Function.createDelegate(this, this.callback);&lt;br /&gt;        var failureDelegate =  Function.createDelegate(this, this.error);&lt;br /&gt;        var request = new Request.JSON({url: &#39;http://hostname/MyWebService.asmx/GetById&#39;,&lt;br /&gt;                                 onComplete: completeDelegate,&lt;br /&gt;                                 onFailure: failureDelegate,&lt;br /&gt;                                 urlEncoded: false,&lt;br /&gt;                                 headers: {&quot;Content-type&quot;: &quot;application/json&quot;}&lt;br /&gt;                                 });&lt;br /&gt;        request.send(JSON.encode({&#39;id&#39;: id}));&lt;br /&gt;    },&lt;/blockquote&gt;The returned object will be in JSON format. The lines where I create my callback delegates using the Function.createDelegate method allow me to set the scope of &#39;this&#39; in my call backs to be the object I making the request from.&lt;br /&gt;&lt;br /&gt;Hope that helps someone out!</description><link>http://jamesfitzsimons.blogspot.com/2008/11/mootools-aspnet-webservice-ajax-calls.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-7926784984068551741</guid><pubDate>Mon, 10 Nov 2008 14:30:00 +0000</pubDate><atom:updated>2008-11-10T14:30:01.160+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">mootools</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>Mootools differences in IE and Firefox</title><description>We&#39;re using the MooTools scripting framework on our site and today I discovered a strange difference between Firefox and IE. I was creating an element and injecting it into the DOM and then trying to change its CSS class and styles.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;addClass and setStyle&lt;/span&gt;&lt;br /&gt;MooTools provides methods on it&#39;s Element class that allow you to manipulate the CSS styling of an element. You can do things like:&lt;br /&gt;&lt;blockquote style=&quot;color: rgb(102, 102, 102); font-family: courier new;&quot;&gt;// Add a css class to the element with the id foo&lt;br /&gt;$(&#39;foo&#39;).addClass(&#39;fooStyle&#39;);&lt;br /&gt;&lt;br /&gt;// Set the width of the foo element&lt;br /&gt;$(&#39;foo&#39;).setStyle(&#39;width&#39;, &#39;100px&#39;);&lt;/blockquote&gt;Unfortunately when viewing an ASP.NET page in IE that includes a script that uses these functions you get a script error saying that the &quot;Object doesn&#39;t support this property or method&quot;&lt;br /&gt;&lt;br /&gt;At first I thought the solution was to go back to basics:&lt;br /&gt;&lt;blockquote style=&quot;color: rgb(102, 102, 102); font-family: courier new;&quot;&gt;// Add a css class to the element with the id foo&lt;br /&gt;$(&#39;foo&#39;).className = &#39;fooStyle&#39;;&lt;br /&gt;&lt;br /&gt;// Set the width of the foo element&lt;br /&gt;$(&#39;foo&#39;).style.width = &#39;100px&#39;;&lt;br /&gt;&lt;/blockquote&gt;However I then realised that I was trying to call the MooTools Element methods on a vanilla element object rather than a MooTools one. The second line below solved the problems in IE and meant I could go back to the first way of applying the styling.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: courier new;&quot;&gt;var myelement = document.createElement(&quot;a&quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: courier new;&quot;&gt;myelement = $(myelement);&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;IE vs Firefox&lt;/span&gt;&lt;br /&gt;In retrospect it seems strange that this worked in Firefox, I guess Firefox must be able to do some sort of implicit conversion to a MooTools element in order to resolve the method call.&lt;br /&gt;&lt;br /&gt;MooTools seems really great, it&#39;s lightweight and easy to use. The learning curve seems much lower than some of the other more complicated offering available.&lt;br /&gt;&lt;br /&gt;The only reservation I have at this point is that from what I&#39;ve read on the forums it doesn&#39;t play nicely with any other scripting framework due to it&#39;s lack of namespaces and the maintainers seem &lt;a href=&quot;http://forum.mootools.net/viewtopic.php?id=9467&quot;&gt;quite&lt;/a&gt; &lt;a href=&quot;http://forum.mootools.net/viewtopic.php?id=6657&quot;&gt;hostile&lt;/a&gt; to anyone who suggests that would be a good thing.</description><link>http://jamesfitzsimons.blogspot.com/2008/11/mootools-differences-in-ie-and-firefox.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-3528126045818112559</guid><pubDate>Thu, 06 Nov 2008 17:36:00 +0000</pubDate><atom:updated>2008-11-07T17:47:30.851+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">open source</category><title>NMock and out parameters</title><description>While trying to create a unit test the other day I came across the situation where my mock object needed to return a value via an Out parameter. A quick google turned up this post over at &lt;a href=&quot;http://www.mindthe.net/devices/2008/06/26/nmock-out-parameters/&quot;&gt;dev:ices&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I thought that had answered all my questions but when I tried it I kept getting a very unhelpful error:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new;color:#666666;&quot;&gt;------ Test started: Assembly: Tests.dll ------&lt;br /&gt;&lt;br /&gt;TestCase &#39;Tests.BatchOrderMessageHandlerTests.TestNMock&#39;&lt;br /&gt;failed: NMock2.Internal.ExpectationException : unexpected invocation of foo.DoFoo(&lt;1&gt;, &lt;1&gt;, out)&lt;br /&gt;Expected:&lt;br /&gt;1 time: foo.DoFoo(equal to &lt;1&gt;, equal to &lt;1&gt;, equal to &lt;out&gt;), will set c=&lt;2&gt;, return &lt;1&gt; [called 0 times]&lt;br /&gt;at NMock2.Mockery.FailUnexpectedInvocation(Invocation invocation)&lt;br /&gt;at NMock2.Mockery.Dispatch(Invocation invocation)&lt;br /&gt;at NMock2.Mockery.MockObject.Invoke(Invocation invocation)&lt;br /&gt;at NMock2.Monitoring.Invoker.Invoke(Invocation invocation)&lt;br /&gt;at NMock2.Monitoring.ProxiedObjectIdentity.Invoke(Invocation invocation)&lt;br /&gt;at NMock2.Monitoring.ProxyInvokableAdapter.Invoke(IMessage msg)&lt;br /&gt;at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp;amp; msgData, Int32 type)&lt;br /&gt;at Tests.BatchOrderMessageHandlerTests.IFoo.DoFoo(Int32 a, Int32 b, Int32&amp;amp; c)&lt;br /&gt;C:\svn\GLGParnters.TradeIdeas\PositionManager\src\Tests\BatchOrderMessageHandlerTests.cs(136,0): at Tests.BatchOrderMessageHandlerTests.TestNMock()&lt;br /&gt;&lt;br /&gt;0 passed, 1 failed, 0 skipped, took 0.77 seconds.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Courier New;color:#666666;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;A bit confused I quickly whipped up a trivial test as my unit test was a bit complicated and returned an enum as the Out parameter. My hypothesis was that NMocks couldn&#39;t return an enum as an Out parameter.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;color:#666666;&quot;&gt;public interface IFoo&lt;br /&gt;{&lt;br /&gt;int DoFoo(int a, int b, out int c);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[Test]&lt;br /&gt;public void TestNMock()&lt;br /&gt;{&lt;br /&gt;IFoo foo = _mockery.NewMock&lt;ifoo&gt;();&lt;br /&gt;&lt;br /&gt;Expect.Once.On(foo).Method(&quot;DoFoo&quot;)&lt;br /&gt;.With(1, 1, Is.Out)&lt;br /&gt;.Will(new SetNamedParameterAction(&quot;c&quot;, 2), Return.Value(1));&lt;br /&gt;&lt;br /&gt;int result = 0;&lt;br /&gt;int a = foo.DoFoo(1, 1, out result);&lt;br /&gt;&lt;br /&gt;_mockery.VerifyAllExpectationsHaveBeenMet();&lt;br /&gt;Assert.AreEqual(2, result);&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This also failed so I checked what version of NMocks I was using. My NMock2.dll assembly had a revision number of 1.0.2313.18049. I downloaded the latest binaries from the &lt;a href=&quot;http://www.nmock.org/download.html&quot;&gt;NMock website&lt;/a&gt;. Checking the version number of the latest build shows it to be 2.0.0.44.&lt;br /&gt;&lt;br /&gt;Rerunning the unit tests against this version of the NMock library everything now works!&lt;br /&gt;&lt;br /&gt;So, if you&#39;re having trouble with out parameters in your NMock mocks, upgrade your build version.</description><link>http://jamesfitzsimons.blogspot.com/2008/11/nmock-and-out-parameters.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-8126841917932802547</guid><pubDate>Wed, 05 Nov 2008 12:50:00 +0000</pubDate><atom:updated>2008-11-05T13:43:33.224+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">nhibernate</category><category domain="http://www.blogger.com/atom/ns#">open source</category><title>NHibernate 2.0 and the join table syntax</title><description>I&#39;ve noticed my post on &lt;a href=&quot;http://jamesfitzsimons.blogspot.com/2008/04/mapping-view-with-nhibernate.html&quot;&gt;Mapping a view with NHibernate&lt;/a&gt; is always quite popular. Resorting to mapping from a view has worked fine in the past as long as you only required read access, but if you wanted to build a complex object relational mapping that you could update you were in trouble...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Until Now&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;With NHibernate 2.0 recently being released we now have access to the join table syntax in our mapping documents. This means we can now build more sophisticated domain objects that map on to more than one table. NHibernate takes care of the multi-table inserts and updates behind the scenes making your life easier.&lt;br /&gt;&lt;br /&gt;This has to be one of the most underrated features of NHibernate 2.0 as it finally allows you to break away from the one to one mapping between domain objects and your relational model which has ultimately caused compromises in the past.&lt;br /&gt;&lt;br /&gt;I urge you to check out this and the other fantastic new features available in the latest NHibernate release.</description><link>http://jamesfitzsimons.blogspot.com/2008/11/nhibernate-20-and-join-table-syntax.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>11</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-3061297156221942622</guid><pubDate>Wed, 30 Jul 2008 14:14:00 +0000</pubDate><atom:updated>2008-07-31T10:14:14.598+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">spring.net</category><title>Avoid cryptic errors with Setter injection and Spring.Net</title><description>Today I found out about a really neat feature in the Spring.Net framework that can help enormously with debugging Spring.Net configuration problems.&lt;br /&gt;&lt;br /&gt;If you are using setter injection and have properties that need to be set (why aren&#39;t you using constructor injection?) then you should decorate those properties with the [Required] attribute. You then need to add a built in post processor to your application configuration like so:&lt;br /&gt;&lt;span style=&quot;color: rgb(102, 102, 102);font-family:courier new;&quot; &gt;&amp;lt;object type=&quot;Spring.Objects.Factory.Attributes.RequiredAttributeObjectPostProcessor, Spring.Core&quot;&amp;gt;&amp;lt;object/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now if you forget to configure one of your required properties instead of getting a cryptic dependancy error like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(102, 102, 102);&quot;&gt;Spring.Objects.Factory.ObjectCreationException: Error thrown by a dependency of object &#39;myWidget&#39; defined in &#39;assembly [Widgets, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], resource [Widgets.application-config.xml]&#39; : Initialization of object failed : Object reference not set to an instance of an object.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(102, 102, 102);&quot;&gt; while resolving &#39;constructor argument&#39; to &#39;otherWidget&#39; defined in &#39;assembly [Widgets, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], resource [Widgets.application-config.xml]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You get a nice helpful error like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(102, 102, 102);font-family:courier new;&quot; &gt;Spring.Objects.Factory.ObjectInitializationException: Property &#39;OtherWidget&#39; required for object &#39;myWidget&#39;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Much more helpful!</description><link>http://jamesfitzsimons.blogspot.com/2008/07/avoid-cryptic-errors-with-setter.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-6018370664641480185</guid><pubDate>Mon, 28 Jul 2008 22:45:00 +0000</pubDate><atom:updated>2008-11-25T19:02:53.832+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">book review</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">geek</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>Book Review: CSS Mastery</title><description>&lt;script language=&quot;JavaScript&quot;&gt;var country_code = geoip_country_code();if (country_code != &quot;GB&quot;){document.write(&quot;&lt;iframe src=&#39;http://rcm.amazon.com/e/cm?t=ranthoandadas-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=1590596145&amp;fc1=FFFFFF&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=AADD99&amp;bc1=000000&amp;bg1=000000&amp;f=ifr&#39; style=&#39;width:120px;height:240px;float: left; margin-right: 15px; margin-bottom: 15px; background-color: black;&#39; scrolling=&#39;no&#39; marginwidth=&#39;0&#39; marginheight=&#39;0&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&quot;);}else{document.write(&quot;&lt;iframe src=&#39;http://rcm-uk.amazon.co.uk/e/cm?t=ranthoandadas-21&amp;o=2&amp;p=8&amp;l=as1&amp;asins=1590596145&amp;fc1=F9F5F5&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=AADD99&amp;bc1=000000&amp;bg1=060000&amp;f=ifr&#39; style=&#39;width:120px;height:240px;float: left; margin-right: 15px; margin-bottom: 15px; background-color: black;&#39; scrolling=&#39;no&#39; marginwidth=&#39;0&#39; marginheight=&#39;0&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&quot;);}&lt;/script&gt;&lt;br /&gt;As a web developer I&#39;ve had to do a certain amount of CSS development over the years but never really felt like I &lt;span style=&quot;font-weight:bold;&quot;&gt;understood &lt;/span&gt;it. CSS can be a bit of an esoteric beast and I wanted something to clear the fuzz away.&lt;br /&gt;&lt;br /&gt;CSS Mastery was the solution I had been looking for. Andy Budd writes in a clear and engaging manner and the book is extremely readable for a technical text. Andy starts by getting right back to basics covering the Cascade and the Box model in the first two chapters. &lt;br /&gt;&lt;br /&gt;The book covers most aspects of CSS with concise and easy to understand examples used through out. Andy also spends a good amount of time on cross browser compatibility issues where appropriate, as well as including a whole chapter of hints and hacks on this topic at the end.&lt;br /&gt;&lt;br /&gt;If you are just starting out with CSS, or like me have used it for years but never really understood it at a visceral level then I urge you to give CSS Mastery a try.</description><link>http://jamesfitzsimons.blogspot.com/2008/07/book-review-css-mastery.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8824277.post-6203520342130495665</guid><pubDate>Thu, 24 Jul 2008 20:05:00 +0000</pubDate><atom:updated>2008-07-24T22:28:10.824+00:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">secret project</category><category domain="http://www.blogger.com/atom/ns#">startups</category><category domain="http://www.blogger.com/atom/ns#">web development</category><title>Why new website startups fail?</title><description>I&#39;ve been under an enormous amount of self induced stress lately due to the fact that my startup business still isn&#39;t online. This is due to a number of contributing factors of course, but it got me thinking about some of the reasons why it&#39;s taken so long.&lt;br /&gt;&lt;h4&gt;Manage Scope: Trying to do to much too soon&lt;/h4&gt;It would be my guess that a large number of failed business (particularly online ventures) are guilty of this one. If nothing else this experience has taught me that you need ensure your initial offering constitutes a realistic amount of work. You can then build on that by making small incremental improvements adding features and new offerings to your business over time with much less effort than trying to do it all in one go.&lt;br /&gt;&lt;br /&gt;By all means, have a grand  all encompassing vision, in fact I&#39;d almost consider this a prerequisite, but break it down into realistic bite size deliverables. To make a software analogy; you want to take a rapid iterative development approach rather than attempt a huge waterfall model project.&lt;br /&gt;&lt;h4&gt;It doesn&#39;t have to be perfect&lt;/h4&gt;There is always a tendency with geeks (myself included) to try and engineer the best, most flexible, and high performance solution first time round. Unfortunately this flies in the face of getting a new business off the ground. As a new start up you have limited time and money and you can&#39;t afford to waste either trying to come up with the &quot;ultimate solution&quot;.&lt;br /&gt;&lt;br /&gt;Any coder worth their salt is going to try and anticipate performance bottle necks and design and develop their software to avoid potential pitfalls. However you&#39;ve got to keep your focus on the goal of delivery at all times and not get trapped in refining and improving your product without delivering. It doesn&#39;t matter if you have the best website in the world if no-one can use it because it isn&#39;t online yet!&lt;br /&gt;&lt;h4&gt;Don&#39;t forget the business&lt;br /&gt;&lt;/h4&gt;Project planning, it&#39;s not fun and certainly not something most geeks enjoy. Unfortunately it is absolutely necessary to make your new business a success. You need to have a clear idea of what your deliverables and deadlines are, and what your outstanding tasks are at all times. There isn&#39;t much point getting to the end of development, having built an outstanding best of breed product and suddenly realising you don&#39;t have a company set up, bank accounts, tax registration, contracts, lawyers, accountants and all the other mundane things that are prerequisites to running a business.&lt;br /&gt;&lt;br /&gt;Are you trying to get a tech startup off the ground? Do you have any advice for other would be entrepreneurs?</description><link>http://jamesfitzsimons.blogspot.com/2008/07/why-new-website-startups-fail.html</link><author>noreply@blogger.com (James Fitzsimons)</author><thr:total>0</thr:total></item></channel></rss>