<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <id>http://www.sjmdev.com/</id>
  <title>WOMBAT</title>
  <updated>2009-11-10T18:16:56+00:00</updated>
  <link href="http://www.sjmdev.com/" />
  
  <subtitle>Waste of Money Brains and Talent</subtitle>
  <author>
    <name>Simon Martin</name>
  </author>
  <generator uri="http://dotnetblogengine.net/" version="1.0.0.0">BlogEngine.Net Syndication Generator</generator>
  <blogChannel:blogRoll>http://www.sjmdev.com/opml.axd</blogChannel:blogRoll>
  <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
  <dc:creator>Simon Martin</dc:creator>
  <dc:description>Waste of Money Brains and Talent</dc:description>
  <dc:language>en-GB</dc:language>
  <dc:title>WOMBAT</dc:title>
  <geo:lat>0.000000</geo:lat>
  <geo:long>0.000000</geo:long>
  <link rel="self" href="http://feeds.feedburner.com/sjmdev" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
    <id>http://www.sjmdev.com/post/2009/11/10/team-leading-category.aspx</id>
    <title>Team Leading, a new category</title>
    <updated>2009-11-10T18:16:56+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=385c9ea0-15ff-4ddf-be99-13096f1e3b1e" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/sV3njcYmd0w/team-leading-category.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-11-10T18:16:56+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/11/10/team-leading-category.aspx#comment" />
    <category term="TeamLeading" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>I am going to start a new blog category about leading a team. 

I don’t claim to be a great Team Leader or have all the answers, but these posts will be my thoughts and experiences as a working Lead Developer. I expect to write posts about adopting new technologies and approaches, streamlining work processes and mentoring / helping developers grow.</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=385c9ea0-15ff-4ddf-be99-13096f1e3b1e</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=385c9ea0-15ff-4ddf-be99-13096f1e3b1e</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/11/10/team-leading-category.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=385c9ea0-15ff-4ddf-be99-13096f1e3b1e</wfw:commentRss>
  <content type="html">&lt;p&gt;I am going to start a new blog category about leading a team. &lt;/p&gt;  &lt;p&gt;I don’t claim to be a great Team Leader or have all the answers, but these posts will be my thoughts and experiences as a working Lead Developer. I expect to write posts about adopting new technologies and approaches, streamlining work processes and mentoring / helping developers grow.&lt;/p&gt;  &lt;p&gt;If you have any suggestions or comments I would really love to start a discussion, I have a lot to learn but hope to be able to lead my team well.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=sV3njcYmd0w:oadIbTjCqTs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=sV3njcYmd0w:oadIbTjCqTs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=sV3njcYmd0w:oadIbTjCqTs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=sV3njcYmd0w:oadIbTjCqTs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=sV3njcYmd0w:oadIbTjCqTs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=sV3njcYmd0w:oadIbTjCqTs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=sV3njcYmd0w:oadIbTjCqTs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=sV3njcYmd0w:oadIbTjCqTs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/sV3njcYmd0w" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/11/10/team-leading-category.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/11/10/list-folder-contents-file.aspx</id>
    <title>List folder contents to a file</title>
    <updated>2009-11-10T17:56:00+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=4382915c-3529-477b-985f-7ffd3fe09396" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/hC6OKcc6ep4/list-folder-contents-file.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-11-10T17:56:00+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/11/10/list-folder-contents-file.aspx#comment" />
    <category term="Development" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Have you ever wanted to get a list of the files in a folder? You have? That’s good because this short post will show you how to do just that!</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=4382915c-3529-477b-985f-7ffd3fe09396</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=4382915c-3529-477b-985f-7ffd3fe09396</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/11/10/list-folder-contents-file.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=4382915c-3529-477b-985f-7ffd3fe09396</wfw:commentRss>
  <content type="html">&lt;p&gt;Have you ever wanted to get a list of the files in a folder? You have? That’s good because this short post will show you how to do just that!&lt;/p&gt;  &lt;p&gt;By way of example, to get a list of the files/folders for this website I first opened a DOS prompt, navigated to the root folder and then&lt;/p&gt;  &lt;pre class="brush: plain;"&gt;dir &amp;gt; FolderContents.txt&lt;/pre&gt;

&lt;p&gt;This creates a text file called FolderContents with a list of all the files/folders in that location, if you wanted to do something more useful with the information you could change the file extension to csv and then use Excel to analyse the contents.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sjmdev.com/image.axd?picture=dos-folderlist.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dos-folderlist" border="0" alt="dos-folderlist" src="http://www.sjmdev.com/image.axd?picture=dos-folderlist_thumb.gif" width="644" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=hC6OKcc6ep4:gAs5XA1T9I4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=hC6OKcc6ep4:gAs5XA1T9I4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=hC6OKcc6ep4:gAs5XA1T9I4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=hC6OKcc6ep4:gAs5XA1T9I4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=hC6OKcc6ep4:gAs5XA1T9I4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=hC6OKcc6ep4:gAs5XA1T9I4:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=hC6OKcc6ep4:gAs5XA1T9I4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=hC6OKcc6ep4:gAs5XA1T9I4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/hC6OKcc6ep4" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/11/10/list-folder-contents-file.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/11/08/delicious-bookmarks-plugin-codeplex.aspx</id>
    <title>Delicious bookmarks plug-in on CodePlex</title>
    <updated>2009-11-08T21:11:33+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=15564134-7f62-43f5-946e-27241029f423" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/qYNZjnBPqPI/delicious-bookmarks-plugin-codeplex.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-11-08T21:11:33+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/11/08/delicious-bookmarks-plugin-codeplex.aspx#comment" />
    <category term="Development" />
    <category term="WindowsLiveWriter" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>I have just created a project on CodePlex for my DeliciousBookmarks Plugin. There is still some work to be done so if you've got a bit of spare time please have a look!</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=15564134-7f62-43f5-946e-27241029f423</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=15564134-7f62-43f5-946e-27241029f423</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/11/08/delicious-bookmarks-plugin-codeplex.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=15564134-7f62-43f5-946e-27241029f423</wfw:commentRss>
  <content type="html">&lt;p&gt;Back in January of this year I wrote &lt;a href="http://www.sjmdev.com/post/2009/01/29/delicious-bookmarks-plugin-live-writer.aspx"&gt;my first Windows Live Writer plug-in&lt;/a&gt; to save me manually copying my Delicious Bookmarks into my semi-regular &lt;a href="http://www.sjmdev.com/category/UsefulLinks.aspx"&gt;Useful links&lt;/a&gt; posts. I have just created a project for the &lt;a href="http://www.codeplex.com/DeliciousBookmarks"&gt;Delicious Bookmarks Plugin for Windows Live Writer&lt;/a&gt; on CodePlex. &lt;/p&gt;  &lt;p&gt;This has a number of advantages for me, firstly its now out in the open and anyone can look at the source code and improve it – which will help. Secondly I no longer need to host it on my local Subversion server (that sounds pretty impressive but it is actually just my pc running &lt;a href="http://visualsvn.com/server/download/"&gt;VisualSVN Server&lt;/a&gt;) and that’s one less thing for me to have to backup.&lt;/p&gt;  &lt;p&gt;So if anyone has any contributions they’d like to make please download a copy and let’s make it better together.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=qYNZjnBPqPI:eCBDytEmjD8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=qYNZjnBPqPI:eCBDytEmjD8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=qYNZjnBPqPI:eCBDytEmjD8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=qYNZjnBPqPI:eCBDytEmjD8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=qYNZjnBPqPI:eCBDytEmjD8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=qYNZjnBPqPI:eCBDytEmjD8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=qYNZjnBPqPI:eCBDytEmjD8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=qYNZjnBPqPI:eCBDytEmjD8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/qYNZjnBPqPI" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/11/08/delicious-bookmarks-plugin-codeplex.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/11/08/database-cannot-be-opened-because-it-is-version-655.aspx</id>
    <title>The database cannot be opened because it is version 655</title>
    <updated>2009-11-08T18:23:09+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=8723cc1f-660a-4bdf-91fd-894d06b64886" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/2ENFPb7yY4Y/database-cannot-be-opened-because-it-is-version-655.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-11-08T18:23:09+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/11/08/database-cannot-be-opened-because-it-is-version-655.aspx#comment" />
    <category term="Development" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Using SQL Express 2008 in place of 2005 I was unable to open my database with error that the version was 655 and the server only supports version 612 and earlier.</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=8723cc1f-660a-4bdf-91fd-894d06b64886</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=8723cc1f-660a-4bdf-91fd-894d06b64886</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/11/08/database-cannot-be-opened-because-it-is-version-655.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=8723cc1f-660a-4bdf-91fd-894d06b64886</wfw:commentRss>
  <content type="html">&lt;p&gt;I recently upgraded to Windows 7, which I really like, and decided that I’d not bother installing &lt;a href="http://www.microsoft.com/express/sql/default.aspx"&gt;SQL Express&lt;/a&gt; 2005 as 2008 is out and can be installed from the &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;ved=0CAkQFjAA&amp;amp;url=http%3A%2F%2Fwww.microsoft.com%2Fweb%2FDownloads%2Fplatform.aspx&amp;amp;ei=3pv2Sq2iLJGi4QaisNDZAw&amp;amp;usg=AFQjCNHctpl8F-o_LvT2UJUIon14tGCdbA&amp;amp;sig2=9OoyCD2eupR5DTjWc1efSg"&gt;Web Platform Installer&lt;/a&gt;. Just last night I needed to do some work on a WinForms project I’ve been building – I started it with a 2005 Express database but figured it couldn’t hurt to use 2008 as it should handle older versions. Wrong! When I tried to start debugging it threw the following error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The database 'C:\Users\Simon\Documents\Visual Studio 2008\Projects\OTJewellery\src\app\OTJ.Program\OTJDB.mdf' cannot be opened because it is version 655. This server supports version 612 and earlier. A downgrade path is not supported.&lt;/p&gt;    &lt;p&gt;Could not open new database 'C:\Users\Simon\Documents\Visual Studio 2008\Projects\OTJewellery\src\app\OTJ.Program\OTJDB.mdf'. CREATE DATABASE is aborted.&lt;/p&gt;    &lt;p&gt;An attempt to attach an auto-named database for file C:\Users\Simon\Documents\Visual Studio 2008\Projects\OTJewellery\src\app\OTJ.Program\OTJDB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This confused me, a lot. I’d started this database using an older version of SQL Express but the error was saying that version 655 wasn’t supported because SQL Express 2008 could only deal with versions 612 and earlier. &lt;/p&gt;  &lt;p&gt;After a bit of searching I discovered that &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en"&gt;Visual Studio 2008 SP1&lt;/a&gt; would allow me to &lt;a href="http://forums.asp.net/p/1349092/2750485.aspx"&gt;connect to a 2008 database from Visual Studio&lt;/a&gt;, but when I tried to debug the application I still got the error above, this made me wonder if the post had got it right – their situation seemed similar to mine but why couldn’t I connect to the database. It was getting late and I needed to stop but thought I’d give one last thing a try. I removed the connection to the database from the Data Connections in Server Explorer and tried to add it again. To my surprise it connected. &lt;/p&gt;  &lt;p&gt;Looking at the properties of the connection the difference was clear, this is my original connection&lt;/p&gt;  &lt;p&gt;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\OTJDB.mdf;Integrated Security=True;User Instance=True&lt;/p&gt;  &lt;p&gt;and this the new one&lt;/p&gt;  &lt;p&gt;Data Source=.;AttachDbFilename=|DataDirectory|\OTJDB.mdf;Integrated Security=True;User Instance=True&lt;/p&gt;  &lt;p&gt;Seems like the new version doesn’t need to declare the SQL Instance it is connecting to, at least if it is the default instance. I wouldn’t have done things this way, personally I’d prefer to see the instance explicitly named but maybe it makes sense.&lt;/p&gt;  &lt;h2&gt;Unable to open the physical file – Operating system error 32!&lt;/h2&gt;  &lt;p&gt;I woke up this morning thinking I’d post about the problems I’d had last night then add a simple feature to the app I’m working on. I didn’t think it would take too long to implement a read-only view but on starting to debug the app ran into my next problem:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Unable to open the physical file \&amp;quot;C:\\OTJ\\DBFile\\OTJDB.mdf\&amp;quot;. Operating system error 32: \&amp;quot;32(error not found)\&amp;quot;.&lt;/p&gt;    &lt;p&gt;An attempt to attach an auto-named database for file C:\\OTJ\\DBFile\\OTJDB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The path is different to the original error because this is where I’m actually running the app from, it is the install path I’m using to check it works. &lt;/p&gt;  &lt;p&gt;When the app is started it first checks the database exists, if it can’t find the database then it copies a new version to the install path. If the database exists it checks that it is up to date by comparing a value in a config table with the version number and then runs any associated update scripts. When I remove the database and start debugging a new copy of the database is placed in the path identified in the error, so I know it can’t be tripping over itself by finding a previous version. Also it seems to read some values from the database but not others. I’m finding this very confusing.&lt;/p&gt;  &lt;p&gt;I haven’t got an answer to this yet, but when I do will post a follow up. In the meantime if anyone knows how to fix this please let me know in the comments.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=2ENFPb7yY4Y:yRTO7KYtbYY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=2ENFPb7yY4Y:yRTO7KYtbYY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=2ENFPb7yY4Y:yRTO7KYtbYY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=2ENFPb7yY4Y:yRTO7KYtbYY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=2ENFPb7yY4Y:yRTO7KYtbYY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=2ENFPb7yY4Y:yRTO7KYtbYY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=2ENFPb7yY4Y:yRTO7KYtbYY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=2ENFPb7yY4Y:yRTO7KYtbYY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/2ENFPb7yY4Y" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/11/08/database-cannot-be-opened-because-it-is-version-655.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/10/23/w3c-launches-site.aspx</id>
    <title>W3C Launches New Site</title>
    <updated>2009-10-23T17:25:59+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=c675969f-214e-4046-87cb-0c7d41f2ec72" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/Kko2266xTvA/w3c-launches-site.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-10-23T17:25:59+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/10/23/w3c-launches-site.aspx#comment" />
    <category term="Review" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>The W3C launched a new version of their website on 13th October, this follows the beta release in March.</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=c675969f-214e-4046-87cb-0c7d41f2ec72</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=c675969f-214e-4046-87cb-0c7d41f2ec72</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/10/23/w3c-launches-site.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=c675969f-214e-4046-87cb-0c7d41f2ec72</wfw:commentRss>
  <content type="html">&lt;p&gt;The &lt;a href="http://www.w3.org/"&gt;W3C&lt;/a&gt; launched a new version of their website on 13&lt;sup&gt;th&lt;/sup&gt; October, this follows the beta release in March.&lt;/p&gt;  &lt;blockquote cite="http://www.w3.org/News/2009#entry-6521"&gt;   &lt;p&gt;The new site features a harmonized design, simplified information architecture, new style for technical reports, and new content, including calendars and aggregated blogs.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I like the look of the new site; it is clean and quite minimal in design, but then its main function is to present information rather than to look cool and I think it does this very well. I will have to relearn their navigation as they’ve moved sections around and nothing is where it used to be. &lt;/p&gt;  &lt;p&gt;Rather ironically the &lt;a href="http://jigsaw.w3.org/css-validator/validator?profile=css21&amp;amp;warning=0&amp;amp;uri=http%3A%2F%2Fwww.w3.org%2F"&gt;CSS fails to validate&lt;/a&gt;, though nothing seems terrible with such a clean design I am surprised to find that it doesn’t validate. The mark-up &lt;a href="http://validator.w3.org/check?verbose=1&amp;amp;uri=http%3A%2F%2Fwww.w3.org%2F"&gt;successfully validates as XHTML 1.0 Strict&lt;/a&gt;, though to be fair I only checked a few pages.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=Kko2266xTvA:vjxzwD8oeFg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=Kko2266xTvA:vjxzwD8oeFg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=Kko2266xTvA:vjxzwD8oeFg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=Kko2266xTvA:vjxzwD8oeFg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=Kko2266xTvA:vjxzwD8oeFg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=Kko2266xTvA:vjxzwD8oeFg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=Kko2266xTvA:vjxzwD8oeFg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=Kko2266xTvA:vjxzwD8oeFg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/Kko2266xTvA" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/10/23/w3c-launches-site.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/10/22/optimising-aspnet-website-iis.aspx</id>
    <title>Optimising an ASP.NET website using IIS</title>
    <updated>2009-10-22T21:38:23+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=c84302c5-5014-4eca-9521-a724b11e668c" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/bBLeLEqBPhw/optimising-aspnet-website-iis.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-10-22T21:38:23+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/10/22/optimising-aspnet-website-iis.aspx#comment" />
    <category term="ASP.NET" />
    <category term="Development" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Some thoughts on optimising a webserver for ASP.NET and some technqiues for reducing page sizes.</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=c84302c5-5014-4eca-9521-a724b11e668c</pingback:target>
    <slash:comments>1</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=c84302c5-5014-4eca-9521-a724b11e668c</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/10/22/optimising-aspnet-website-iis.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=c84302c5-5014-4eca-9521-a724b11e668c</wfw:commentRss>
  <content type="html">&lt;p&gt;Recently I’ve been trying to optimise and tweak performance for a couple of sites; they’re due to go live quite soon and obviously we want them to run as quickly as possible. To do this I’ve been using a combination of &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1743"&gt;lori&lt;/a&gt; (Life-of-request info), &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt;. &lt;a href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler&lt;/a&gt; and &lt;a href="http://developer.yahoo.com/yslow/"&gt;YSlow&lt;/a&gt; to see what requests a page makes, how long they take and to rate the page against the &lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;Yahoo! best practice guide&lt;/a&gt;. When I started we were using Windows 2003 running IIS6, but just this week we’ve decided to give IIS7 running on Windows Server 2008 a go, so I have had to dig into configuration for that too. &lt;/p&gt;  &lt;p&gt;The simple rule for making a site run quickly is to reduce the page weight (the combined size of all the resources transferred). This can be done by reducing the size of the files, reducing the quantity of files and delivering the files as quickly as possible. IIS can help out here by compressing and caching so I’ll start with configuring IIS, then move on to a discussion about optimising pages to further reduce their size.&lt;/p&gt;  &lt;h2&gt;IIS configuration&lt;/h2&gt;  &lt;p&gt;All modern browsers support &lt;a href="http://en.wikipedia.org/wiki/Gzip"&gt;Gzip&lt;/a&gt; compression; the files are compressed on the server before being sent to the client which means fewer bytes are sent to the browser and the page size is smaller. There is a trade off here, the server side compression does increase the work load of the CPU but it is possible to set the level of compression for static and dynamic files. There’s a great post describing how to &lt;a href="http://www.smallworkarounds.net/2009/01/aspnet-iis-tricks-using-gzip.html"&gt;compress dynamic content in IIS6&lt;/a&gt; and following the advice I was able to get page sizes down from 650kb to around 150kb.&lt;/p&gt;  &lt;p&gt;Using Fiddler I was able to confirm that my files were being gzipped and working through the results added a few other extensions to the list to compress until YSlow gave me an A grade. However when I closed Fiddler and ran the pages again YSlow said none of my files were being gzipped… I have no explanation for this, but as I hadn’t made any change to the server I felt happy that my files were being properly compressed server side.&lt;/p&gt;  &lt;p&gt;Another thing YSlow suggested was setting the &lt;strong&gt;expires headers&lt;/strong&gt; to a date way off in the future, this would mean the browser would download the file (css, JavaScript etc) but then not request a new version for a long time, effectively caching it on the client side. Great for the production server though it can be confusing if you update the file before it is due to expire as the client will not request it until the expiration date.&lt;/p&gt;  &lt;h3&gt;IIS7&lt;/h3&gt;  &lt;p&gt;The good news here is that IIS7 makes compression much easier, you no longer need to manually edit the metabase.xml because there’s a screen that allows you to enable or disable the compression. You may need to &lt;a href="http://www.iis.net/ConfigReference/system.webServer/urlCompression"&gt;install the Dynamic Content Compression role for IIS 7.0 using the Server Manager&lt;/a&gt; if it isn’t already installed. &lt;/p&gt;  &lt;p&gt;Next I wanted to know &lt;a href="http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx"&gt;IIS7 Compression. Good? Bad? How much?&lt;/a&gt; When making the edits in metabase.xml file I had followed the advice and set static compression at 9 as it has almost as good compression as level 10 but used significantly less CPU cycles. IIS7 has static compression enabled by default and the IIS team have set this at level 7 but the advice from OWScott was to set static compression at 9 and dynamic compression at 4 and he was kind enough to provide the AppCmd.exe command to do that (watch out for line breaks)&lt;/p&gt;  &lt;pre class="brush: plain;"&gt;C:\Windows\System32\Inetsrv\Appcmd.exe set config -section:httpCompression &lt;br /&gt;-[name='gzip'].staticCompressionLevel:9 -[name='gzip'].dynamicCompressionLevel:4&lt;/pre&gt;

&lt;p&gt;This achieved slightly better compression that IIS6 (hopefully this will help me make the business case for moving to IIS7 &lt;img alt="Open-mouthed" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/teeth_smile.gif" /&gt;)&lt;/p&gt;

&lt;p&gt;Something else IIS7 does by default is cache static files (though only once they’ve hit a given threshold, as this was decided by the IIS team I’ve decided I won’t interfere as they know much better than me), you can add additional file types / mime types for caching and set them to expire when they’ve changed or after a certain interval.&lt;/p&gt;

&lt;h4&gt;Application Warm up Module&lt;/h4&gt;

&lt;p&gt;I’ve just discovered the &lt;a href="http://learn.iis.net/page.aspx/688/getting-started-with-the-iis-75-application-warm-up-module/"&gt;Application Warm up Module&lt;/a&gt; and this looks very promising, I don’t have any hard facts about it yet so can only repeat what’s been said in the post. &lt;/p&gt;

&lt;h2&gt;Content Delivery Network&lt;/h2&gt;

&lt;p&gt;I don’t have much to say about this because I haven’t been able to get to use a CDN on anything. That said when my sites need jQuery I am using the &lt;a href="http://softwareas.com/google-jquery-cdn"&gt;Google JQuery CDN&lt;/a&gt;, so I get a slight bonus from YSlow for that. Essentially using a CDN means more resources can be downloaded at once as the browser can make separate calls to the various servers hosting the images/css/JavaScript. &lt;/p&gt;

&lt;h2&gt;Compression / optimisation for pages&lt;/h2&gt;

&lt;p&gt;Using the techniques above improvements can be made to most sites, there are also some ways you can reduce file size and quantity in development. &lt;a href="http://www.alistapart.com/articles/sprites"&gt;CSS Sprites&lt;/a&gt; is an approach that combines many smaller images into one larger image (though not usually larger in terms of bytes than the sum of all the individual parts) and as such only one image needs to be downloaded saving requests. I’m not a designer, so don’t get too involved with this side of things but it does seem to help in my quest to make pages smaller and therefore faster to load.&lt;/p&gt;

&lt;p&gt;CSS and JavaScript combining and &lt;a href="http://en.wikipedia.org/wiki/Minification_%28programming%29"&gt;minification&lt;/a&gt; is not new but will further help reduce the number of individual files downloaded and can be done pretty easily with tools like the &lt;a href="http://yuicompressor.codeplex.com/"&gt;Yahoo! UI Library: YUI Compressor for .NET&lt;/a&gt; or as part of a build process. Personally I tend to prefer the latter approach as I like to keep my CSS and JavaScript files human readable (I do use &lt;a href="http://cssslick.co.uk/"&gt;a CSS formatter&lt;/a&gt; to make sure I’m taking advantage of shortcuts though), only the act of deployment should crunch them down. I haven’t used the &lt;a href="http://www.superexpert.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx"&gt;Microsoft Ajax Minifier&lt;/a&gt; but this enabled you to reduce the size of a JavaScript file by removing unnecessary content and when in hypercrunching mode can even further reduce file size by shortening the names of local variables and removing unreachable code!&lt;/p&gt;

&lt;p&gt;Does anyone have any tips they’d like to share? I’d be very interested in other approaches we could investigate. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=bBLeLEqBPhw:b2d4LzSNSjk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=bBLeLEqBPhw:b2d4LzSNSjk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=bBLeLEqBPhw:b2d4LzSNSjk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=bBLeLEqBPhw:b2d4LzSNSjk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=bBLeLEqBPhw:b2d4LzSNSjk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=bBLeLEqBPhw:b2d4LzSNSjk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=bBLeLEqBPhw:b2d4LzSNSjk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=bBLeLEqBPhw:b2d4LzSNSjk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/bBLeLEqBPhw" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/10/22/optimising-aspnet-website-iis.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/10/21/microsoft-security-essentials.aspx</id>
    <title>Microsoft Security Essentials</title>
    <updated>2009-10-21T15:24:39+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=49190076-ec92-46cb-b52e-229baa6200f1" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/gg_T3NlpR9c/microsoft-security-essentials.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-10-21T15:24:39+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/10/21/microsoft-security-essentials.aspx#comment" />
    <category term="Review" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Microsoft Security Essentials is now available in the UK, I'm using it on my home pc and am very happy with it. Also its free! Why pay for AV now?</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=49190076-ec92-46cb-b52e-229baa6200f1</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=49190076-ec92-46cb-b52e-229baa6200f1</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/10/21/microsoft-security-essentials.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=49190076-ec92-46cb-b52e-229baa6200f1</wfw:commentRss>
  <content type="html">&lt;p&gt;Since installing Vista about 2 years ago I made the decision not to use any anti-virus software. I consider myself to be reasonably aware of how viruses spread, I don’t open attachments unless I know who they’re from and why they’ve been sent, I don’t go to suspicious websites, I don’t download much so don’t really see the need for an anti-virus solution.&lt;/p&gt;  &lt;p&gt;In the past 2 years, and for at least 3 years before that, I have not had a single virus (you may ask how I know if I’ve got nothing to tell me) – occasionally I’ve used online scanners to run a full system scan or scanned my machine over the network from someone else’s computer. So &lt;span class="bold"&gt;I’d rather not install a bit of software that is constantly running and consuming resources on the off chance I might pick up a virus.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;Back when I started out with a pc &lt;a href="http://www.symantec.com/index.jsp"&gt;Norton Anti-Virus&lt;/a&gt; was quite good, small and with a relatively low memory footprint (the same is true of &lt;a href="http://www.mcafee.com/uk/"&gt;MacAfee&lt;/a&gt;, &lt;a href="http://www.zonealarm.com/security/en-gb/home.htm?lid=en-gb"&gt;ZoneAlarm&lt;/a&gt; etc, I’m not singling anyone out here), but now the installers can be 400MB or more, which is why they’re so bloated. I simply don’t want bloated, rarely used and high-maintenance software. I’ve been safe since then.&lt;/p&gt;  &lt;p&gt;But &lt;a href="http://www.microsoft.com/security_essentials/"&gt;Microsoft Security Essentials&lt;/a&gt; changed my mind somewhat. I still &lt;span class="bold"&gt;don’t think I need&lt;/span&gt; anti virus, but the trade off, in this case, is not so bad. It seems to only require 11MB disk space and doesn’t intrude in to my other applications. For the most part I’m not even aware that it is running. The only sign is an addition to my Windows Explorer shell and the weekly scan I’ve scheduled to run when I’m unlikely to be using the computer. I also trust that it integrates with the other security features of Vista, but as I’m due to get my copy of Windows 7 tomorrow I’m hoping that’ll also prove to be no problem.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gg_T3NlpR9c:WQfSaQdD0Dk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gg_T3NlpR9c:WQfSaQdD0Dk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=gg_T3NlpR9c:WQfSaQdD0Dk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gg_T3NlpR9c:WQfSaQdD0Dk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=gg_T3NlpR9c:WQfSaQdD0Dk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gg_T3NlpR9c:WQfSaQdD0Dk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gg_T3NlpR9c:WQfSaQdD0Dk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=gg_T3NlpR9c:WQfSaQdD0Dk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/gg_T3NlpR9c" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/10/21/microsoft-security-essentials.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/10/19/Bing!-The-sound-of-found-Part-2.aspx</id>
    <title>Bing! The sound of found? Part 2</title>
    <updated>2009-10-20T01:38:45+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=92ede1bb-6cf7-448c-babf-1f4873c44530" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/9bVPduOsfjM/Bing!-The-sound-of-found-Part-2.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-10-20T01:38:45+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/10/19/Bing!-The-sound-of-found-Part-2.aspx#comment" />
    <category term="General" />
    <category term="Musings" />
    <category term="Review" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Bing - the sound of found? Maybe not it seems.</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=92ede1bb-6cf7-448c-babf-1f4873c44530</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=92ede1bb-6cf7-448c-babf-1f4873c44530</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/10/19/Bing!-The-sound-of-found-Part-2.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=92ede1bb-6cf7-448c-babf-1f4873c44530</wfw:commentRss>
  <content type="html">&lt;p&gt;I’ve been using &lt;a href="http://www.bing.com"&gt;Bing&lt;/a&gt; as my default search providers since June and for the most part it has been pretty good. &lt;/p&gt;  &lt;p&gt;However I have now reverted to Google simply because the results there seem to be more in keeping with what I actually want. This isn’t necessarily anything done wrong on the Bing side of things, it might just be that, over time, I have learned how to search using Google and so when using Bing I’m not giving it a proper chance / comparison. However I’m not precious about who gets me the results, all I care about is that I get results that help me answer whatever it was I was looking for. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=9bVPduOsfjM:l8bShXaYlfA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=9bVPduOsfjM:l8bShXaYlfA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=9bVPduOsfjM:l8bShXaYlfA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=9bVPduOsfjM:l8bShXaYlfA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=9bVPduOsfjM:l8bShXaYlfA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=9bVPduOsfjM:l8bShXaYlfA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=9bVPduOsfjM:l8bShXaYlfA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=9bVPduOsfjM:l8bShXaYlfA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/9bVPduOsfjM" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/10/19/Bing!-The-sound-of-found-Part-2.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/10/17/links-171009.aspx</id>
    <title>Useful links (17/10/09)</title>
    <updated>2009-10-17T19:15:07+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=d17955b4-bc64-4fc3-91da-3a8a842cef3d" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/gdwZkk1cxAE/links-171009.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-10-17T19:15:07+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/10/17/links-171009.aspx#comment" />
    <category term="UsefulLinks" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Here are some interesting links for you - quite a few for iTextSharp!</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=d17955b4-bc64-4fc3-91da-3a8a842cef3d</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=d17955b4-bc64-4fc3-91da-3a8a842cef3d</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/10/17/links-171009.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=d17955b4-bc64-4fc3-91da-3a8a842cef3d</wfw:commentRss>
  <content type="html">&lt;ul&gt;   &lt;li&gt;&lt;a href="http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/" rel="nofollow"&gt;ASP.NET Profiles in Web Application Projects : LeeDumond.com&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/89/iTextSharp-Page-Layout-with-Columns" rel="nofollow"&gt;iTextSharp - Page Layout with Columns&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/88/iTextSharp-Drawing-shapes-and-Graphics" rel="nofollow"&gt;iTextSharp - Drawing shapes and Graphics&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/87/iTextSharp-Working-with-images" rel="nofollow"&gt;iTextSharp - Working with images&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/86/iTextSharp-Introducing-Tables" rel="nofollow"&gt;iTextSharp - Introducing Tables&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/84/iTextSharp-Links-and-Bookmarks" rel="nofollow"&gt;iTextSharp - Links and Bookmarks&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/83/Lists-with-iTextSharp" rel="nofollow"&gt;Lists with iTextSharp&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/82/iTextSharp-Adding-Text-with-Chunks-Phrases-and-Paragraphs" rel="nofollow"&gt;iTextSharp - Adding Text with Chunks, Phrases and Paragraphs&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/81/iTextSharp-Working-with-Fonts" rel="nofollow"&gt;iTextSharp - Working with Fonts&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mikesdotnetting.com/Article/80/Create-PDFs-in-ASP.NET-getting-started-with-iTextSharp" rel="nofollow"&gt;Create PDFs in ASP.NET - getting started with iTextSharp&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/infinitiesloop/archive/2009/07/01/asp-net-webforms-taking-back-the-html.aspx" rel="nofollow"&gt;ASP.NET WebForms: Taking Back the HTML - Infinities Loop&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://encosia.com/2009/10/11/do-you-know-about-this-undocumented-google-cdn-feature/" rel="nofollow"&gt;Do you know about this undocumented Google CDN feature? | Encosia&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Auto parsed by &lt;a href="http://www.sjmdev.com/"&gt;&lt;strong&gt;delicious bookmark plugin&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gdwZkk1cxAE:BCXoyYk6AA8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gdwZkk1cxAE:BCXoyYk6AA8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=gdwZkk1cxAE:BCXoyYk6AA8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gdwZkk1cxAE:BCXoyYk6AA8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=gdwZkk1cxAE:BCXoyYk6AA8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gdwZkk1cxAE:BCXoyYk6AA8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=gdwZkk1cxAE:BCXoyYk6AA8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=gdwZkk1cxAE:BCXoyYk6AA8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/gdwZkk1cxAE" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/10/17/links-171009.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/10/03/links-31009.aspx</id>
    <title>Useful Links 3/10/09</title>
    <updated>2009-10-03T21:38:36+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=85d3d8ea-bbf1-4473-b35f-d7f36c0b5686" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/cl9aa1g9ffA/links-31009.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-10-03T21:38:36+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/10/03/links-31009.aspx#comment" />
    <category term="UsefulLinks" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>It's quite a short list of useful links this time!</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=85d3d8ea-bbf1-4473-b35f-d7f36c0b5686</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=85d3d8ea-bbf1-4473-b35f-d7f36c0b5686</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/10/03/links-31009.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=85d3d8ea-bbf1-4473-b35f-d7f36c0b5686</wfw:commentRss>
  <content type="html">&lt;p&gt;Here is the latest in my ongoing series of useful links from the internet:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/10/01/new-ajax-control-toolkit-release.aspx" rel="nofollow"&gt;New AJAX Control Toolkit Release&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://code.google.com/chrome/chromeframe/developers_guide.html" rel="nofollow"&gt;Developer's Guide - Google Chrome Frame - Google Code&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.useit.com/alertbox/ia-mistakes.html" rel="nofollow"&gt;Top-10 Information Architecture (IA) Mistakes (Jakob Nielsen's Alertbox)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Auto parsed by &lt;a href="http://www.sjmdev.com/"&gt;&lt;strong&gt;delicious bookmark plugin&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=cl9aa1g9ffA:xAat4jADPLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=cl9aa1g9ffA:xAat4jADPLA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=cl9aa1g9ffA:xAat4jADPLA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=cl9aa1g9ffA:xAat4jADPLA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=cl9aa1g9ffA:xAat4jADPLA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=cl9aa1g9ffA:xAat4jADPLA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=cl9aa1g9ffA:xAat4jADPLA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=cl9aa1g9ffA:xAat4jADPLA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/cl9aa1g9ffA" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/10/03/links-31009.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/09/10/let-me-know-what-you-think.aspx</id>
    <title>Let me know what you think</title>
    <updated>2009-09-10T16:12:34+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=1925ec07-2f97-4762-9b23-37706cf5bb5d" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/UMIVe5Lira4/let-me-know-what-you-think.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-09-10T16:12:34+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/09/10/let-me-know-what-you-think.aspx#comment" />
    <category term="SiteNotice" />
    <category term="Musings" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>On why rating and comments are more widely given by people who read blogs</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=1925ec07-2f97-4762-9b23-37706cf5bb5d</pingback:target>
    <slash:comments>3</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=1925ec07-2f97-4762-9b23-37706cf5bb5d</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/09/10/let-me-know-what-you-think.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=1925ec07-2f97-4762-9b23-37706cf5bb5d</wfw:commentRss>
  <content type="html">&lt;p&gt;In a recent post “&lt;a href="http://davybrion.com/blog/2009/09/let-me-know-what-you-think/"&gt;Let Me Know What You Think&lt;/a&gt;” (which I have shamelessly taken the title for this post from), Davy Brion notes that the large majority of people who read blogs don’t leave comments. In &lt;a href="http://www.sjmdev.com/post/2009/09/04/milestone-blogging-102-posts.aspx"&gt;A milestone in blogging – 102 posts!&lt;/a&gt; I said that comments are how the blogger learns which posts people cared enough about to voice their opinion. Positive comments are nice and will make me feel warm and happy, but I’m just as pleased to get negative comments as they can be a great way for me to learn about other perspectives.&lt;/p&gt;  &lt;p&gt;It will be interesting to see how often the new star rating feature on Davy’s site is used – it is much quicker to rate a post than it is to write a comment.&lt;/p&gt;  &lt;p&gt;As Davy says “don’t be afraid to let me know what you think when you read a post, either through a comment or through a rating” &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=UMIVe5Lira4:TWfEcxsLv9g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=UMIVe5Lira4:TWfEcxsLv9g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=UMIVe5Lira4:TWfEcxsLv9g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=UMIVe5Lira4:TWfEcxsLv9g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=UMIVe5Lira4:TWfEcxsLv9g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=UMIVe5Lira4:TWfEcxsLv9g:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=UMIVe5Lira4:TWfEcxsLv9g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=UMIVe5Lira4:TWfEcxsLv9g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/UMIVe5Lira4" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/09/10/let-me-know-what-you-think.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/09/10/coderush-unit-test-runner.aspx</id>
    <title>CodeRush – Unit Test Runner</title>
    <updated>2009-09-10T15:23:27+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=55ed7e9c-7a21-4adc-aac1-a7de56d79657" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/8301UUwMzk4/coderush-unit-test-runner.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-09-10T15:23:27+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/09/10/coderush-unit-test-runner.aspx#comment" />
    <category term="ASP.NET" />
    <category term="Development" />
    <category term="Review" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>DevExpress are working on a test runner that will be built in to CodeRush!</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=55ed7e9c-7a21-4adc-aac1-a7de56d79657</pingback:target>
    <slash:comments>2</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=55ed7e9c-7a21-4adc-aac1-a7de56d79657</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/09/10/coderush-unit-test-runner.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=55ed7e9c-7a21-4adc-aac1-a7de56d79657</wfw:commentRss>
  <content type="html">&lt;p&gt;DevExpress are working on a test runner that will be built in to CodeRush! &lt;/p&gt;  &lt;p&gt;In a recent blog post “&lt;a href="http://community.devexpress.com/blogs/aspnet/archive/2009/09/02/coderush-upcoming-testrunner-preview.aspx"&gt;CodeRush: Unit Test Runner Preview&lt;/a&gt;” early screenshots show the UI changes that show the status of your tests. This looks really cool – at a glance you’ll be able to tell which tests are failing, ignored and which pass. &lt;/p&gt;  &lt;p&gt;The test runner already supports VS Test, &lt;a href="http://www.mbunit.com/"&gt;MbUnit&lt;/a&gt;, &lt;a href="http://www.nunit.org/index.php"&gt;nUnit&lt;/a&gt; and is extensible so any other testing framework can be used.&lt;/p&gt;  &lt;p&gt;Scheduled for release later this year I’m looking forward to giving this a go and will be very interested to see how well it stacks up against &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=8301UUwMzk4:lee5WZFA_-g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=8301UUwMzk4:lee5WZFA_-g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=8301UUwMzk4:lee5WZFA_-g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=8301UUwMzk4:lee5WZFA_-g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=8301UUwMzk4:lee5WZFA_-g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=8301UUwMzk4:lee5WZFA_-g:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=8301UUwMzk4:lee5WZFA_-g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=8301UUwMzk4:lee5WZFA_-g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/8301UUwMzk4" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/09/10/coderush-unit-test-runner.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/09/04/milestone-blogging-102-posts.aspx</id>
    <title>A milestone in blogging – 102 posts!</title>
    <updated>2009-09-04T20:46:36+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=ed06223e-4fe5-4022-a857-24185d1e6d52" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/kluGycGO7-4/milestone-blogging-102-posts.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-09-04T20:46:36+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/09/04/milestone-blogging-102-posts.aspx#comment" />
    <category term="General" />
    <category term="SiteNotice" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>Wow, I just checked my archive and I’ve written over 100 posts… 102 to be exact!</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=ed06223e-4fe5-4022-a857-24185d1e6d52</pingback:target>
    <slash:comments>2</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=ed06223e-4fe5-4022-a857-24185d1e6d52</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/09/04/milestone-blogging-102-posts.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=ed06223e-4fe5-4022-a857-24185d1e6d52</wfw:commentRss>
  <content type="html">&lt;p&gt;Wow, I just checked my archive and I’ve written over 100 posts… 102 to be exact! I’ve linked to the most popular at the end of this post.&lt;/p&gt;  &lt;p&gt;I’ve learned a few things along the way, &lt;a href="Delicious bookmarks plug-in for Live Writer"&gt;created a few tools&lt;/a&gt; to make it easier for me to post and &lt;a href="Interlude theme for BlogEngine.Net &amp;ndash; Update"&gt;restyled the site&lt;/a&gt; once or twice. Oh and my wife and I &lt;a href="Birth of my son"&gt;had a baby boy&lt;/a&gt; in the middle of all that &lt;img alt="smile_teeth" src="http://spaces.live.com/rte/emoticons/smile_teeth.gif" /&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Most popular posts&lt;/h2&gt;  &lt;p&gt;These posts have all been commented on a few times and that, I consider to be a sign that people cared enough about what I’d said to comment. To me a blog is about communication with others, so I look forward to more comments and hopefully I’ll be able to write some more engaging posts in the next year or so.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://sjmdev.com/post/2009/03/25/tame-google-chrome.aspx"&gt;How to Tame Google Chrome&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjmdev.com/post/2009/01/29/delicious-bookmarks-plugin-live-writer.aspx"&gt;Delicious bookmarks plug-in for Live Writer&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjmdev.com/post/2008/12/08/Interlude-theme-for-BlogEngineNet-Update.aspx"&gt;Interlude theme for BlogEngine.Net – Update&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjmdev.com/post/2008/11/06/Build-bespoke-app-or-use-3rd-party-tools.aspx"&gt;Build bespoke app or use 3rd party tools&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjmdev.com/post/2009/08/29/DataReaders-vs-DataTables.aspx"&gt;DataReaders vs DataTables&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjmdev.com/post/2009/03/24/useful-links-240309.aspx"&gt;Useful links (24/03/09)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sjmdev.com/post/2009/03/17/useful-links.aspx"&gt;Useful links 17/03/09&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=kluGycGO7-4:-KyR2TIYxYw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=kluGycGO7-4:-KyR2TIYxYw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=kluGycGO7-4:-KyR2TIYxYw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=kluGycGO7-4:-KyR2TIYxYw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=kluGycGO7-4:-KyR2TIYxYw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=kluGycGO7-4:-KyR2TIYxYw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=kluGycGO7-4:-KyR2TIYxYw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=kluGycGO7-4:-KyR2TIYxYw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/kluGycGO7-4" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/09/04/milestone-blogging-102-posts.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/08/29/DataReaders-vs-DataTables.aspx</id>
    <title>DataReaders vs DataTables</title>
    <updated>2009-08-29T07:46:43+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=ab006ef9-2436-47b8-95e7-5b79a64b0ff1" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/GfZdZMkA1MA/DataReaders-vs-DataTables.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-08-29T07:46:43+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/08/29/DataReaders-vs-DataTables.aspx#comment" />
    <category term="ASP.NET" />
    <category term="Development" />
    <category term="Musings" />
    <category term="Rant" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>I feel like I’m in the middle of a bit of a ‘fight’ at work at the moment. Basically I don’t like the way things are done at work and I’m trying to change them for the better.</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=ab006ef9-2436-47b8-95e7-5b79a64b0ff1</pingback:target>
    <slash:comments>3</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=ab006ef9-2436-47b8-95e7-5b79a64b0ff1</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/08/29/DataReaders-vs-DataTables.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=ab006ef9-2436-47b8-95e7-5b79a64b0ff1</wfw:commentRss>
  <content type="html">&lt;p&gt;This post is a bit of a rant, just to get things off my chest and see what anyone else has to say about the issues.&lt;/p&gt;  &lt;p&gt;I feel like I’m in the middle of a bit of a ‘fight’ at work at the moment. &lt;/p&gt;  &lt;p&gt;Basically I don’t like the way things are done at work and I’m trying to change them for the better. As you’d expect I’ve had some success and also some failures – so far I’ve been successful in introducing version control in the form of Subversion, setting up a minimal continuous integration server and unit testing is starting to take off. Where I’m still facing problems is in trying to improve the way we work on projects, as well as how we approach (re)developing the Data Access Layer. &lt;/p&gt;  &lt;h2&gt;A little background on how things are currently done&lt;/h2&gt;  &lt;p&gt;A Business Analyst first evaluates any new project / project changes and produces some data flow diagrams (this person will then become the project manager). When this is done the project is passed on to a Systems Analyst who then writes specs to describe exactly how this should be coded. These specs are in written as procedural pseudo code and then passed on to the developers who actually write the code. Some processes are for internal programs only and these have always been handled by the VB (WinForms) developers, some processes also need to work with the web and if that’s the case then the web team get involved too.&lt;/p&gt;  &lt;p&gt;Recently we had a meeting to discuss whether the spec process needed changing. All our websites have been written in ColdFusion but are in the process of being rewritten in ASP.NET and some of the peculiarities of ColdFusion might no longer be relevant. I very strongly resisted the pseudo code approach because I felt it took the fun out of developing and reduced us to mere monkeys. My feeling is that the whole development team should be involved all the way through the process from analysing the requirements, through working on the database procedures up and into writing data access and business logic classes – so everyone knows about the whole system and &lt;em&gt;could&lt;/em&gt; take over from another developer if needed. To me this broadens the entire teams’ understanding of the system and who knows someone might have a bright idea that helps the entire project! Currently only 1 or 2 people really understand how the database hangs together but by getting everyone involved I’m hoping to spread that knowledge around. Having everyone involved and getting the web developers to write SQL and DAL code was accepted as a good idea though it might be a new learning curve for some.&lt;/p&gt;  &lt;p&gt;I also suggested unit testing and that was somewhat reluctantly accepted – I’d been going on about it for ages and the general perception (I think) is that it’s a lot of extra work for very little benefit. I originally suggested that the specs simply be written as unit tests then the developers would be free to come up with their own solutions rather than being told to loop this and do that. I nearly got that accepted but instead the spec includes pseudo code unit tests and pseudo code for us to translate into code. But hey some unit testing is better than none and hopefully the benefits of unit testing will start to become more obvious, our tester should also be freed up from some really tedious testing and start to clear his backlog I hope.&lt;/p&gt;  &lt;h2&gt;The issue today&lt;/h2&gt;  &lt;p&gt;Now the fight I’ve been having today is about how data should be made available. Historically the specs make heavy use of DataTables, (the VB developers were vb5 coders and for what they do DataTables make a lot of sense) there are no business objects, all interaction is done through the DataTables. I would love to take advantage of an ORM like &lt;a href="http://nhforge.org/Default.aspx"&gt;NHibernate&lt;/a&gt;, unfortunately that’s another battle I’m having – so for the time being its got to be ADO.NET. My experience tells me that writing classes to represent business objects populated by DataReaders is the best way to go about this but, the Analysts don’t see the point in using DataReaders, DataTables work for them so they should work for the web. I’ve tried explaining that as DataTables are in memory mini databases they represent a much bigger memory footprint and this won’t scale as efficiently as the approach I’m suggesting, that and they’re slower than DataReaders as they use DataReaders behind the scenes to populate their DataRows.&lt;/p&gt;  &lt;p&gt;Granted there is more work in getting results from the database with a DataReader and then iterating through that to populate objects or strongly typed Lists of objects, but it’s a less memory intensive solution, isn’t using Fisher Price programming; yes it will need updating if they change the data schema – unless we code gen much of the plumbing, but you can at least unit test an object / mock it, very hard to do that with a DataTable. &lt;/p&gt;  &lt;p&gt;At times I feel like I’m banging my head on a brick wall that almost seems to delight in refusing to listen. &lt;/p&gt;  &lt;p&gt;Have you had any similar experiences that might give me some insight into how to deal with this?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=GfZdZMkA1MA:c0d-vFPqQNs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=GfZdZMkA1MA:c0d-vFPqQNs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=GfZdZMkA1MA:c0d-vFPqQNs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=GfZdZMkA1MA:c0d-vFPqQNs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=GfZdZMkA1MA:c0d-vFPqQNs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=GfZdZMkA1MA:c0d-vFPqQNs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=GfZdZMkA1MA:c0d-vFPqQNs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=GfZdZMkA1MA:c0d-vFPqQNs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/GfZdZMkA1MA" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/08/29/DataReaders-vs-DataTables.aspx</feedburner:origLink></entry>
  <entry>
    <id>http://www.sjmdev.com/post/2009/08/27/havent-keeping-posting-schedule.aspx</id>
    <title>Why I haven’t been keeping up with my posting schedule</title>
    <updated>2009-08-28T03:57:43+00:00</updated>
    <link rel="self" href="http://www.sjmdev.com/post.aspx?id=eabe44fb-5645-4267-9d3f-bbc38aed557e" />
    <link href="http://feedproxy.google.com/~r/sjmdev/~3/-WlbLjPIF3M/havent-keeping-posting-schedule.aspx" />
    <author>
      <name>SimonMartin</name>
    </author>
    
    <published>2009-08-28T03:57:43+00:00</published>
    <link rel="related" href="http://www.sjmdev.com/post/2009/08/27/havent-keeping-posting-schedule.aspx#comment" />
    <category term="General" />
    <category term="SiteNotice" />
    <dc:publisher>SimonMartin</dc:publisher>
    <dc:description>I haven't posted in August - this is why...</dc:description>
    <pingback:server>http://www.sjmdev.com/pingback.axd</pingback:server>
    <pingback:target>http://www.sjmdev.com/post.aspx?id=eabe44fb-5645-4267-9d3f-bbc38aed557e</pingback:target>
    <slash:comments>0</slash:comments>
    <trackback:ping>http://www.sjmdev.com/trackback.axd?id=eabe44fb-5645-4267-9d3f-bbc38aed557e</trackback:ping>
    <wfw:comment>http://www.sjmdev.com/post/2009/08/27/havent-keeping-posting-schedule.aspx#comment</wfw:comment>
    <wfw:commentRss>http://www.sjmdev.com/syndication.axd?post=eabe44fb-5645-4267-9d3f-bbc38aed557e</wfw:commentRss>
  <content type="html">&lt;p&gt;I haven’t been keeping up with my posting this month for a couple of reasons. We went for a weeks holiday to Dorset, visiting my family and I did my best to stay completely away from computers – though there was, inevitably, some time spent fixing computers, giving them a clean out and making sure they were running properly. &lt;/p&gt;  &lt;p&gt;The other reason was that I had a bit of a hardware failure. Vista wouldn’t boot and kept throwing a &lt;acronym title="Blue Screen of Death"&gt;BSOD&lt;/acronym&gt;, going in to Safe Mode I discovered that my primary &lt;acronym title="Hard Disc Drive"&gt;HDD&lt;/acronym&gt; had been saying it was about to fail for a couple of months. I wasn’t expecting to see this as the stop error the BSOD was giving suggested it was a problem with my graphics card. Anyhow to cut a long story short I had to buy a new graphics card (Zotac GeForce 9600GSO) and replace my primary HDD, which meant paving a new system. Not that much of a deal, I’m using &lt;a href="https://www.mesh.com/"&gt;Live Mesh&lt;/a&gt; to backup my documents safely in the cloud and the few other bits that I’d hate to loose I tend to share with my work pc (I have quite a few dual screen wallpapers that I’ve taken some time to build up). &lt;/p&gt;  &lt;p&gt;So the computer is now restored (yes I could have used the backup Vista was keeping of my entire system, but that would have meant formatting a drive that I didn’t want to lose the data from) and, hopefully, normal blogging will resume.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=-WlbLjPIF3M:OTSElROGrBw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=-WlbLjPIF3M:OTSElROGrBw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=-WlbLjPIF3M:OTSElROGrBw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=-WlbLjPIF3M:OTSElROGrBw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=-WlbLjPIF3M:OTSElROGrBw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=-WlbLjPIF3M:OTSElROGrBw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sjmdev?a=-WlbLjPIF3M:OTSElROGrBw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sjmdev?i=-WlbLjPIF3M:OTSElROGrBw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sjmdev/~4/-WlbLjPIF3M" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.sjmdev.com/post/2009/08/27/havent-keeping-posting-schedule.aspx</feedburner:origLink></entry>
</feed>
