<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>colinramsay.co.uk</title>
	
	<link>http://colinramsay.co.uk</link>
	<description>If it's good enough to shout about...</description>
	<lastBuildDate>Tue, 05 May 2009 16:50:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/colinramsay" type="application/rss+xml" /><item>
		<title>Learning Ext JS is Up For the Packt Author of the Year Award</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/60LdJSSRCIM/</link>
		<comments>http://colinramsay.co.uk/diary/2009/05/05/learning-ext-js-is-up-for-the-packt-author-of-the-year-award/#comments</comments>
		<pubDate>Tue, 05 May 2009 16:50:53 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Ext]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=532</guid>
		<description><![CDATA[The book which Cutter, Shea and I wrote is up on the publisher&#8217;s site for the Author of the Year award. Obviously in our case it&#8217;d be co-author of the year but it&#8217;d be really nice to be in with a chance. Packt have a microsite for the award and the actual poll is here. [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.amazon.co.uk/exec/obidos/ASIN/1847195148/">book</a> which <a href="http://blog.cutterscrossing.com/">Cutter</a>, <a href="http://www.vinylfox.com/">Shea</a> and I wrote is up on the publisher&#8217;s site for the Author of the Year award. Obviously in our case it&#8217;d be co-author of the year but it&#8217;d be really nice to be in with a chance. Packt have a <a href="http://authors.packtpub.com/content/packt-author-award-2009">microsite for the award</a> and the <a href="https://www.surveymonkey.com/s.aspx?sm=J0AzTRKKHU4_2b60_2fGdrouaA_3d_3d">actual poll is here</a>. It&#8217;s up against some other great books so if you could spare a minute to vote it would certainly be appreciated!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=60LdJSSRCIM:KNX4gjNmiwo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=60LdJSSRCIM:KNX4gjNmiwo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=60LdJSSRCIM:KNX4gjNmiwo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=60LdJSSRCIM:KNX4gjNmiwo:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=60LdJSSRCIM:KNX4gjNmiwo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=60LdJSSRCIM:KNX4gjNmiwo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/60LdJSSRCIM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/05/05/learning-ext-js-is-up-for-the-packt-author-of-the-year-award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/05/05/learning-ext-js-is-up-for-the-packt-author-of-the-year-award/</feedburner:origLink></item>
		<item>
		<title>Ext JS 3.0 RC1 Is Coming</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/4JE83rgUiwc/</link>
		<comments>http://colinramsay.co.uk/diary/2009/04/15/ext-js-30-rc1-is-coming/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 14:22:49 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Ext]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=527</guid>
		<description><![CDATA[The Ext JS 3.0 examples are online already, and I believe Jack made the announcement at the Ext Convention today. Take a look at this sample showing how to create a Microsoft Word-style ribbon UI with Ext JS 3.0. I really like the new button features and the GroupTabs. I&#8217;d expect some more examples on [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://extjs.com/deploy/ext-3.0-rc1/examples/">Ext JS 3.0 examples are online already</a>, and I believe Jack made the announcement at the Ext Convention today. Take a look at this sample showing how to <a href="http://extjs.com/deploy/ext-3.0-rc1/examples/toolbar/toolbars.html">create a Microsoft Word-style ribbon UI with Ext JS 3.0</a>. I really like the <a href="http://extjs.com/deploy/ext-3.0-rc1/examples/button/buttons.html">new button features</a> and the <a href="http://extjs.com/deploy/ext-3.0-rc1/examples/grouptabs/">GroupTabs</a>. I&#8217;d expect some more examples on how to use some of the new features like the charting and Ext.direct and I&#8217;ll try and cover those when they appear.</p>
<p>Update: Cutter points out that there&#8217;s a new Image Organizer which shows off the Direct functionality but I can only see that in the <a href="http://www.extjs.com/products/extjs/download.php">download</a> at the moment. The examples on the download also cover charting too.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=4JE83rgUiwc:eSQkVe0QxXI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=4JE83rgUiwc:eSQkVe0QxXI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=4JE83rgUiwc:eSQkVe0QxXI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=4JE83rgUiwc:eSQkVe0QxXI:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=4JE83rgUiwc:eSQkVe0QxXI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=4JE83rgUiwc:eSQkVe0QxXI:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/4JE83rgUiwc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/04/15/ext-js-30-rc1-is-coming/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/04/15/ext-js-30-rc1-is-coming/</feedburner:origLink></item>
		<item>
		<title>Fizzler Used to Style WPF</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/yvDJFhXksAc/</link>
		<comments>http://colinramsay.co.uk/diary/2009/03/11/fizzler-used-to-style-wpf/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 18:33:58 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Fizzler]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=525</guid>
		<description><![CDATA[After I wrote Fizzler in a burst of development enthusiasm a few months back, it&#8217;s been sat on Google Code &#8211; a solution in need of a problem to solve. That is until Colin Eberhardt emailed me to report a bug in the selector engine, and to talk a bit about the way he was [...]]]></description>
			<content:encoded><![CDATA[<p>After I <a href="http://colinramsay.co.uk/diary/2008/10/19/fizzler-a-css-selector-engine-for-c-sharp/">wrote Fizzler</a> in a burst of development enthusiasm a few months back, it&#8217;s been sat on <a href="http://code.google.com/p/fizzler/">Google Code</a> &#8211; a solution in need of a problem to solve. That is until <a href="http://www.scottlogic.co.uk/blog/wpf/">Colin Eberhardt</a> emailed me to report a bug in the selector engine, and to talk a bit about the way he was using Fizzler when working with WPF. This was totally outside the domain I&#8217;d anticipated Fizzler being use in, and Colin E has now <a href="http://www.scottlogic.co.uk/blog/wpf/2009/03/using-css-selectors-for-styling-in-wpf/">revealed his project in full</a>. By wrapping part of Fizzler in a few interfaces, thus abstracting it away from HTML and towards a more general purpose solution, he was able to use it to query a XAML UI definition and apply style declarations. <a href="http://www.scottlogic.co.uk/blog/wpf/2009/03/using-css-selectors-for-styling-in-wpf/">CSS selectors for WPF</a>!</p>
<p>This is an amazing use case for a library which I hope will start to see more use in the future. Thanks to Colin E for letting me know about the work which <a href="http://www.scottlogic.co.uk/">Scottlogic</a> are doing with <a href="http://code.google.com/p/fizzler/">Fizzler</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=yvDJFhXksAc:vLdAEC8H74M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=yvDJFhXksAc:vLdAEC8H74M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=yvDJFhXksAc:vLdAEC8H74M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=yvDJFhXksAc:vLdAEC8H74M:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=yvDJFhXksAc:vLdAEC8H74M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=yvDJFhXksAc:vLdAEC8H74M:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/yvDJFhXksAc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/03/11/fizzler-used-to-style-wpf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/03/11/fizzler-used-to-style-wpf/</feedburner:origLink></item>
		<item>
		<title>Balsamiq Mockups</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/Y6YpgADSEX0/</link>
		<comments>http://colinramsay.co.uk/diary/2009/02/21/balsamiq-mockups/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 22:09:38 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Specifications]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=518</guid>
		<description><![CDATA[I love the idea of Balsamiq Mockups; it&#8217;s one of those idea which makes you wonder why it took someone so long to come up with it. Knock together a few UI mockups from common UI elements and you&#8217;ve got a great way to preview sites and programs to your client.
In fact I&#8217;ve seen people [...]]]></description>
			<content:encoded><![CDATA[<p>I love the idea of Balsamiq Mockups; it&#8217;s one of those idea which makes you wonder why it took someone so long to come up with it. Knock together a few UI mockups from common UI elements and you&#8217;ve got a great way to preview sites and programs to your client.</p>
<p>In fact I&#8217;ve seen people use the Visual Studio win/web forms drag and drop for this sort of thing but it&#8217;s pretty limited in terms of the UI elements you can use and the amount of information you can present without doing some coding work. When Balsamiq Mockups lets you put a data table on the page, for example, you can do headers, links and data with a simple comma separated list. It lets you display a placeholder for a mapping interface with absolutely no code.</p>
<p>So the idea and the basic implementation are both great, but I&#8217;m not sold on the larger picture. If you&#8217;re trying to explore a UI then you&#8217;re going to need more than one screen. It looks like Balsamiq Mockups supports this on the desktop version by letting you save mockups and load them later, but I&#8217;d really like to see a way of having multiple mockups together in one canvas. I think there&#8217;s a case for saying that this increases the complexity of BM in that many would like to see a way of showing how each mockup links to the next. I&#8217;m not too bothered about that, I&#8217;d just like to see multiple &#8220;pages&#8221;, each presenting a different mockup.</p>
<p>The other thing that baffles me is the ability to get an online preview of BM but not being able to use the software online once you&#8217;ve bought it. I&#8217;d really love to see an edition where I can use the software online, save my mockups in my online account, and be able to access them from anywhere. I&#8217;m writing this from my netbook and it&#8217;d be great to look at the mockups I&#8217;d created on my desktop without having to pass the files over.</p>
<p>I don&#8217;t want these points to distract from Balsamiq Mockups though, because it&#8217;s great, a revelation in fact. The way it allows us to piece together UI ideas without resorting to pen and paper or a paint package is a dream come true and gives us another method of rapidly prototyping for our end users.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=Y6YpgADSEX0:Ep5QPxAbmIU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=Y6YpgADSEX0:Ep5QPxAbmIU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=Y6YpgADSEX0:Ep5QPxAbmIU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=Y6YpgADSEX0:Ep5QPxAbmIU:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=Y6YpgADSEX0:Ep5QPxAbmIU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=Y6YpgADSEX0:Ep5QPxAbmIU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/Y6YpgADSEX0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/02/21/balsamiq-mockups/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/02/21/balsamiq-mockups/</feedburner:origLink></item>
		<item>
		<title>Easing NHibernate Development</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/2VuclXB7hzw/</link>
		<comments>http://colinramsay.co.uk/diary/2009/01/27/easing-nhibernate-development/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 00:27:33 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[NHibernate]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=494</guid>
		<description><![CDATA[NHibernate is now my framework of choice for working with a relational database. With a little bit of knowledge and a willingness to research, it&#8217;s pretty straightforward to make NH jump through whichever hoops you need it to. That said, there are certainly a number of friction points which can slow down any development effort. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hibernate.org/343.html">NHibernate</a> is now my framework of choice for working with a relational database. With a little bit of knowledge and a willingness to research, it&#8217;s pretty straightforward to make NH jump through whichever hoops you need it to. That said, there are certainly a number of friction points which can slow down any development effort. Mostly, these can be solved with a couple of tricks and tools which can be applied at various stages of a project.</p>
<p><a href="http://code.google.com/p/fluent-nhibernate/">Fluent NHibernate</a> is a method of cutting down on XML mappings which are commonly associated with NH. While in the past, tools such as <a href="http://altinoren.com/activewriter/">ActiveWriter</a> have enabled developers to bypass the most laborious parts of creating mappings, Fluent NH takes it a step further and provides a strongly typed means of setting up your entity mappings without even touching XML. You can either use the <a href="http://blog.jagregory.com/2009/01/10/fluent-nhibernate-auto-mapping-introduction/">auto mapping facility</a> or fully customise the mappings, but it&#8217;s all done with full intellisense support and a serious lack of angle brackets.</p>
<p>Once the mappings have been defined &#8211; either in XML or in code &#8211; you need to start working with the database itself. NHibernate has a built-in facility which can help you out here, by generating the database schema based on your entity mappings. In fact, in the latest releases, you can even update the existing schema without having to delete and recreate, which makes it possible to preserve your test data during development. This allows you to go end-to-end from the mappings direct to the database and keep in that context throughout the development process.</p>
<p>Here&#8217;s a quick aside: some of the criticisms put against ORMs are that a developer with great SQL knowledge can tweak and craft code better than any autogenerating tool. From my point of view, every query would have to be written to a high standard, all column choices would have to be perfect every time. NHibernate&#8217;s generated code has been reviewed by experts and it will be produced in the same way time after time, to the same level of quality.</p>
<p>With that in mind, I don&#8217;t really have a problem letting NH control every part of my database interactions. What I do need is a way of ensuring that if the mappings i&#8217;ve created are wrong, or are sub-optimal, that I have a method of finding out what&#8217;s going on. <a href="http://www.nhprof.com/">NH Profiler</a> is a piece of software which has recently started a beta phase and hooks in to NH itself to provide real-time analysis of what queries and sessions are being used by your application. As well as reporting, it also provides suggestions if it detects sub-optimal behaviour. Lazy loading, for example, can cause some nasty performance problems if used incorrectly, so NH Prof can pick up situations in which it would be better to change mappings to specify eager loading.</p>
<p>Over the last six months, new features and community involvement have transformed NH from a great development framework to the premier ORM for rapid development teams. The bumps have been smoothed, and we can get on with leveraging the wonderful work of the NH team.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=2VuclXB7hzw:awVxECEQI10:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=2VuclXB7hzw:awVxECEQI10:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=2VuclXB7hzw:awVxECEQI10:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=2VuclXB7hzw:awVxECEQI10:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=2VuclXB7hzw:awVxECEQI10:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=2VuclXB7hzw:awVxECEQI10:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/2VuclXB7hzw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/01/27/easing-nhibernate-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/01/27/easing-nhibernate-development/</feedburner:origLink></item>
		<item>
		<title>Delicious Library</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/5vQmowf5Khs/</link>
		<comments>http://colinramsay.co.uk/diary/2009/01/23/delicious-library/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 20:32:41 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Delicious Library]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=514</guid>
		<description><![CDATA[I&#8217;m sure there are a load of posts professing their love for Delicious Library. It&#8217;s pretty sweet. I downloaded it just after Christmas for no reason other than I thought it was really cool, but since then I&#8217;ve started to realise that some features could be real-world useful. Making an inventory of your possessions could [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure there are a load of posts professing their love for <a href="http://www.delicious-monster.com/">Delicious Library</a>. It&#8217;s pretty sweet. I downloaded it just after Christmas for no reason other than I thought it was really cool, but since then I&#8217;ve started to realise that some features could be real-world useful. Making an inventory of your possessions could be useful for insurance purposes, which is a most sensible use of this great program. I can also use it to track items that I&#8217;ve lent to people, because it integrates with Address Book on OSX.</p>
<p>I borrowed a bluetooth barcode scanner from my friends at <a href="http://www.internetware.co.uk">Internetware</a> and used that to zap over 500 items &#8211; books, DVDs, CDs &#8211; and Delicious Library ate them all up. It can be configured to read out the title of the item you&#8217;ve scanned so you can confirm it&#8217;s been inserted correctly, which was great for us as we bleeped our way through our bookcases in another room. The novelty of it didn&#8217;t really wear off either, in fact I found myself looking for more stuff to scan even when I&#8217;d finished the bulk of the items.</p>
<p>I&#8217;ve now got an attractive, searchable database of many of my possessions, and the Delicious Library publish feature means I can <a href="http://colinramsay.co.uk/deliciouslibrary/">expose it to the web</a>. My library currently holds 442 items and certainly gives a good look at my interests &#8211; most of my books are science fiction, for example.</p>
<p>When adding new items, Delicious Library offers the ability to use a webcam (such as my iMac&#8217;s built in iSight) as a barcode scanner. This feature&#8217;s been pretty disappointing and it requires quite a few attempts to get it to work, but adding items manually is pretty straightforward. New items can be automatically filtered using the smart shelf feature, which currently pulls all sci-fi and fantasy stuff into a separate area. In short, <a href="http://www.delicious-monster.com/">Delicious Library</a> is much recommended!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=5vQmowf5Khs:vvu-IEkRVNc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=5vQmowf5Khs:vvu-IEkRVNc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=5vQmowf5Khs:vvu-IEkRVNc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=5vQmowf5Khs:vvu-IEkRVNc:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=5vQmowf5Khs:vvu-IEkRVNc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=5vQmowf5Khs:vvu-IEkRVNc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/5vQmowf5Khs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/01/23/delicious-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/01/23/delicious-library/</feedburner:origLink></item>
		<item>
		<title>Castle Routing Documentation</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/IiSYKg5Zprc/</link>
		<comments>http://colinramsay.co.uk/diary/2009/01/18/castle-routing-documentation/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 11:20:40 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Castle]]></category>
		<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=510</guid>
		<description><![CDATA[After a while working on it, I converted the scratchpad for the routing documentation into a proper patch for Castle&#8217;s website. Gauthier Segay also contributed some sections, and I hope we can now provide some fixed, formal information on Monorail&#8217;s current routing system. Thank you to Markus Zywitza for applying the patch.
If you see something [...]]]></description>
			<content:encoded><![CDATA[<p>After a while working on it, I converted the <a href="http://using.castleproject.org/display/MR/Routing+Overview">scratchpad</a> for the routing documentation into a <a href="http://castleproject.org/monorail/documentation/trunk/advanced/routing.html">proper patch for Castle&#8217;s website</a>. Gauthier Segay also contributed some sections, and I hope we can now provide some fixed, formal information on Monorail&#8217;s current routing system. Thank you to Markus Zywitza for applying the patch.</p>
<p>If you see something that looks incorrect, or something that&#8217;s missing, then you can help <a href="http://using.castleproject.org/display/CASTLE/Helping+With+Documentation">fill in the gaps</a> by patching or just writing it up and someone else will try and create a patch for you.</p>
<p>The next missing docs I plan to address are the <a href="http://using.castleproject.org/display/IoC/Fluent+Registration+API">fluent registration API for Microkernel,</a> but there are a lot of features I&#8217;m not 100% on. <a href="http://using.castleproject.org/display/~alwin">Alwin</a> has been doing some great work here so that patch will probably be coming pretty soon. In the meantime, any <a href="http://using.castleproject.org/display/CASTLE/Helping+With+Documentation">contributions</a> would be gratefully received!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=IiSYKg5Zprc:eRTffuo__04:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=IiSYKg5Zprc:eRTffuo__04:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=IiSYKg5Zprc:eRTffuo__04:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=IiSYKg5Zprc:eRTffuo__04:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=IiSYKg5Zprc:eRTffuo__04:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=IiSYKg5Zprc:eRTffuo__04:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/IiSYKg5Zprc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/01/18/castle-routing-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/01/18/castle-routing-documentation/</feedburner:origLink></item>
		<item>
		<title>The State of Windows Mobile</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/GFvi_xOaeMQ/</link>
		<comments>http://colinramsay.co.uk/diary/2009/01/14/the-state-of-windows-mobile/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 19:28:11 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Compact Framework]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=505</guid>
		<description><![CDATA[&#8220;Have you done any Windows Mobile development?&#8221;
&#8220;A tiny bit. Isn&#8217;t it just like Winforms but on a phone?&#8221;
And from such an innocent beginning, a world of pain did explode into my universe. Just like Winforms on a phone is it? What&#8217;s the difference between the Compact Framework, Smartphone development, Pocket PC development, Windows Mobile? So [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Have you done any Windows Mobile development?&#8221;<br />
&#8220;A tiny bit. Isn&#8217;t it just like Winforms but on a phone?&#8221;</p>
<p>And from such an innocent beginning, a world of pain did explode into my universe. Just like Winforms on a phone is it? What&#8217;s the difference between the Compact Framework, Smartphone development, Pocket PC development, Windows Mobile? So many terms! So little time!</p>
<p>Windows Mobile is the operating system, just like Windows Vista. The Compact Framework is just like the .NET Framework on the desktop. As for the difference between a Smartphone and a Pocket PC, well, you&#8217;ve got me there. I picked Smartphone because my device had phone functionality and it seems to be working so far. There are separate SDKs for each, so I assume there are some key differences which escape me. With Windows Mobile 6, the Smartphone and Pocket PC SDKs are now Windows Mobile 6 Standard and Windows Mobile 6 Professional, respectively. I think.</p>
<p>Actually I think the real difference in these is the templates for projects you create and the emulators you are provided with. Professional, or Pocket PC, provides emulators for bigger screens. Microsoft has <a href="http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&#038;displaylang=en">this to say</a> about the naming kerfuffle:</p>
<blockquote><p>
With Windows Mobile 6, we are revising our SKU taxonomy and naming to better align our brand and products with the realities of today’s mobile device marketplace. The historical form-factor based distinction between Windows Mobile powered Smartphone and Windows Mobile powered Pocket PC Phone Edition is blurring dramatically. We want our taxonomies and terminology to evolve to better reflect the evolution of the mobile device industry.</p></blockquote>
<p>So in order to reflect the blurring of the mobile device form factors, they&#8217;ve changed from having SDKs named after the types of device to SDKs named &#8220;Standard&#8221; and &#8220;Professional&#8221;. Hmm. How about having a single SDK called &#8220;Mobile Device SDK&#8221; and allow me to pick the device dimensions from within my project on the fly? Back at the start of this tale, I assumed that picking Windows Mobile for development would allow us to target a range of different devices, large and small, and in fact I can do that. I can deploy my application to a Windows Mobile phone with a big screen and to one with a small screen. The SDK split seems pretty artificial with that in mind.</p>
<p>Naming conventions and confusions aside, it is nice to be able to write against a single API and deploy to any Windows Mobile device. Or it would be if it worked.</p>
<p>My bugbear here is with a particular class: CameraCaptureDialog. Take the Samsung Omnia for example. You can certainly pop up the camera using CCD.ShowDialog(), but can you retrieve the filename of the image you took? You cannot. That&#8217;s because the Omnia&#8217;s camera supports taking multiple images one after the other until you explicitly close it.</p>
<p>How about the HTC Diamond? Well that opens fine, and returns a filename too, but if you try and re-open the camera straight after processing the filename, to allow the user to take another photo, it fails silently and doesn&#8217;t show the camera. If you try and do the same thing with the HTC Touch, it freezes.</p>
<p>Part of the issue is that the Compact Framework leaves too much up to the manufacturers and doesn&#8217;t give enough control to the developer. We can set the resolution of the camera for example, but we have no shortcut of setting it to the maximum resolution available. If you try and set it to a resolution which is not supported, some devices reset silently to a much lower resolution.</p>
<p>Microsoft need to extend camera support for .NET developers and give a lower level of access. They need to push device manufacturers to adhere to the Windows Mobile APIs and be more precise in how they are specified. And they need to simplify and modernise their mobile development framework so that developers can be fully aware of all the options available to them.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=GFvi_xOaeMQ:XSSKRS5DRzU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=GFvi_xOaeMQ:XSSKRS5DRzU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=GFvi_xOaeMQ:XSSKRS5DRzU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=GFvi_xOaeMQ:XSSKRS5DRzU:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=GFvi_xOaeMQ:XSSKRS5DRzU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=GFvi_xOaeMQ:XSSKRS5DRzU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/GFvi_xOaeMQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/01/14/the-state-of-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/01/14/the-state-of-windows-mobile/</feedburner:origLink></item>
		<item>
		<title>JavaScript TickerTape on Google Code</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/v908v58_FNU/</link>
		<comments>http://colinramsay.co.uk/diary/2009/01/14/javascript-tickertape-on-google-code/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 15:30:27 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[TickerTape]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=497</guid>
		<description><![CDATA[As previously promised, the TickerTape is now on Google Code. It wasn&#8217;t under any kind of source control before, so this is a handy step if I want to move development forward. I do plan on doing so in the near-to-medium-term, but if you are using the TickerTape and would like to contribute any improvements, [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://colinramsay.co.uk/diary/2009/01/06/quick-word-about-the-tickertape/">previously promised</a>, the <a href="http://code.google.com/p/javascript-ticker-tape/">TickerTape is now on Google Code</a>. It wasn&#8217;t under any kind of source control before, so this is a handy step if I want to move development forward. I do plan on doing so in the near-to-medium-term, but if you are using the <a href="http://colinramsay.co.uk/diary/category/tickertape/">TickerTape</a> and would like to contribute any improvements, the move to Google Code means that I&#8217;ll be happy to accept good <a href="http://code.google.com/p/javascript-ticker-tape/source/checkout">patches</a>. If you&#8217;re not sure how to patch something but have found a problem, feel free to register it in the <a href="http://code.google.com/p/javascript-ticker-tape/issues/list">Issues section</a>.</p>
<p>I&#8217;ll be filling out the <a href="http://code.google.com/p/javascript-ticker-tape/">Google Code project page</a> with some documentation soon. I&#8217;ll also be repointing the TickerTape file references on older posts to the new downloads, so I apologise if you see some republished posts in your feed reader.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=v908v58_FNU:MD6DRRYH07c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=v908v58_FNU:MD6DRRYH07c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=v908v58_FNU:MD6DRRYH07c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=v908v58_FNU:MD6DRRYH07c:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=v908v58_FNU:MD6DRRYH07c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=v908v58_FNU:MD6DRRYH07c:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/v908v58_FNU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/01/14/javascript-tickertape-on-google-code/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/01/14/javascript-tickertape-on-google-code/</feedburner:origLink></item>
		<item>
		<title>Learning Ext JS Has Arrived!</title>
		<link>http://feedproxy.google.com/~r/colinramsay/~3/2RF78EfUYZI/</link>
		<comments>http://colinramsay.co.uk/diary/2009/01/12/learning-ext-js-has-arrived/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 01:01:16 +0000</pubDate>
		<dc:creator>Colin Ramsay</dc:creator>
				<category><![CDATA[Learning Ext JS]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://colinramsay.co.uk/?p=473</guid>
		<description><![CDATA[I reserve the right to be excited by this one; in fact pretty much everyone&#8217;s gone &#8220;oooooh&#8221; when they&#8217;ve seen it. Last week I received the author copies of Learning Ext JS from Neel at Packt, and the book looks great. I&#8217;m going to talk a little bit about the way I approached the writing, [...]]]></description>
			<content:encoded><![CDATA[<p>I reserve the right to be excited by this one; in fact pretty much everyone&#8217;s gone &#8220;oooooh&#8221; when they&#8217;ve seen it. Last week I received the author copies of <a href="http://www.packtpub.com/learning-ext-js/book">Learning Ext JS</a> from Neel at Packt, and the book looks great. I&#8217;m going to talk a little bit about the way I approached the writing, and how I feel about it all after the fact.</p>
<p><a href="http://farm4.static.flickr.com/3054/3097288741_4b26539d78_b.jpg" class="imageThumb alignleft"><img alt="Learning Ext JS Author Copies" src="http://farm4.static.flickr.com/3054/3097288741_4b26539d78_m.jpg" title="Learning Ext JS" width="240" height="180" class="size-thumbnail"/></a></p>
<p>Each chapter which I wrote was supposed to be around 25 pages, consisting of 6000 words. When I write a blog post, a good one is around 1000 words, so that was my comparison. I&#8217;ve not done any real writing since high school, so while I&#8217;ve continued to put out a lot of words, they&#8217;ve never been particularly well thought out, scheduled, or planned in any way. So six thousand words a chapter did cause a bit of a problem when I tried to churn out a few pages every night.</p>
<p>One of my techniques was similar to one of my main development ideas &#8211; don&#8217;t get bogged down in thinking how something should be done in the perfect way; just get started and refactor later. In this case, change refactor for edit, but you get the idea. I suspect this is writers block, and it was definitely a problem for me. Pushing on and getting something down turned out to be much more productive than mulling over &#8220;better&#8221; ideas. Another problem wasn&#8217;t necessarily thinking what to write, but making each chapter stretch out to the required number of words. Quite often I&#8217;d have a good couple of evenings when the writing was going well only to find that I&#8217;d underestimated how far an idea would stretch. In these cases I&#8217;d try and go in to detail on working with the subject matter or I&#8217;d think up another example to try and illustrate my points in a different or more advanced way.</p>
<p>Even when the initial drafts were completed, there was still a matter of sending them off for review. Editing sounds like it&#8217;s going to be the easy bit, but when you&#8217;ve been working on something for a few months you&#8217;re most likely sick of the sight of it, so revisiting it isn&#8217;t going to be high on your agenda. Still, it was an education reading over comments about my own writing, bringing me down to earth or giving me a buzz depending on how each chapter and paragraph was received. How often do you really get an outside, independent person to review your work?</p>
<p>Even when the edits were complete, there was still more: promotional material to be written, screenshots and code samples to be made available, blog posts to be written. After all that, and a few extra weeks, the physical copies arrived in the post and pretty much made the whole harrowing process worthwhile. Writing a book was always one of those things I&#8217;d quite fancied doing and never imagined I would, so being able to contribute to <a href="http://www.packtpub.com/learning-ext-js/book">Learning Ext JS</a> ticks a pretty cool box for me.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/colinramsay?a=2RF78EfUYZI:zOmTjwjtp-g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=2RF78EfUYZI:zOmTjwjtp-g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=2RF78EfUYZI:zOmTjwjtp-g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=2RF78EfUYZI:zOmTjwjtp-g:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/colinramsay?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/colinramsay?a=2RF78EfUYZI:zOmTjwjtp-g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/colinramsay?i=2RF78EfUYZI:zOmTjwjtp-g:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/colinramsay/~4/2RF78EfUYZI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://colinramsay.co.uk/diary/2009/01/12/learning-ext-js-has-arrived/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://colinramsay.co.uk/diary/2009/01/12/learning-ext-js-has-arrived/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 9.392 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-09 19:29:24 --><!-- Compression = gzip -->
