<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Bolton Strikes Again</title>
	<atom:link href="http://davidbolton.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidbolton.net/blog</link>
	<description></description>
	<lastBuildDate>Wed, 10 Feb 2010 19:21:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Components in Rails</title>
		<link>http://davidbolton.net/blog/2010/02/components-in-rails/</link>
		<comments>http://davidbolton.net/blog/2010/02/components-in-rails/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 19:21:02 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apotomo]]></category>
		<category><![CDATA[cells]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[showoff]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=222</guid>
		<description><![CDATA[I gave a talk at the RORO meeting in Sydney on Tuesday night (Feb 9th, 2010) covering the ideas of desktop development that have been used in web development, and in particular how and why we might think of using components with Rails. In particular, I focused on two Rails based frameworks &#8212; Cells and [...]]]></description>
			<content:encoded><![CDATA[<p>I gave a talk at the RORO meeting in Sydney on Tuesday night (Feb 9th, 2010) covering the ideas of desktop development that have been used in web development, and in particular how and why we might think of using components with Rails. In particular, I focused on two Rails based frameworks &#8212; <a href="http://cells.rubyforge.org">Cells</a> and <a href="http://apotomo.de/">Apotomo</a>.</p>
<p>My slides (built for use with Scott Chacon&#8217;s neat <a href="http://github.com/schacon/showoff">Showoff framework</a>) are on GitHub: <a href="http://github.com/lightningdb/roro-syd-beyond-actions">Beyond Actions &#8211; Components in Rails slides</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2010/02/components-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Programming Journey</title>
		<link>http://davidbolton.net/blog/2009/11/my-programming-journey/</link>
		<comments>http://davidbolton.net/blog/2009/11/my-programming-journey/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 06:15:37 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=192</guid>
		<description><![CDATA[Somewhat inspired by an old Jim Weirich post &#8212; yes, I&#8217;ve been meaning to do this for a while &#8212; here is a little history about my journey with computers and programming.
My dad worked with computers from before I was born, and we had home computers for as long as I can remember (at one [...]]]></description>
			<content:encoded><![CDATA[
<a href='http://davidbolton.net/blog/2009/11/my-programming-journey/ahl-1978sm/' title='ahl-1978sm'><img width="150" height="150" src="http://davidbolton.net/blog/wp-content/uploads/2009/11/ahl-1978sm-150x150.jpg" class="attachment-thumbnail" alt="" title="ahl-1978sm" /></a>
<a href='http://davidbolton.net/blog/2009/11/my-programming-journey/better_basic-211x300/' title='better_basic-211x300'><img width="150" height="150" src="http://davidbolton.net/blog/wp-content/uploads/2009/11/better_basic-211x300-150x150.jpg" class="attachment-thumbnail" alt="" title="better_basic-211x300" /></a>
<a href='http://davidbolton.net/blog/2009/11/my-programming-journey/book-writeyourownadventureprograms1983usborne/' title='book-writeyourownadventureprograms(1983)(usborne)'><img width="150" height="150" src="http://davidbolton.net/blog/wp-content/uploads/2009/11/book-writeyourownadventureprograms1983usborne-150x150.jpg" class="attachment-thumbnail" alt="" title="book-writeyourownadventureprograms(1983)(usborne)" /></a>
<a href='http://davidbolton.net/blog/2009/11/my-programming-journey/isaaman-tyler-1982sm/' title='isaaman-tyler-1982sm'><img width="141" height="150" src="http://davidbolton.net/blog/wp-content/uploads/2009/11/isaaman-tyler-1982sm-141x150.jpg" class="attachment-thumbnail" alt="" title="isaaman-tyler-1982sm" /></a>
<a href='http://davidbolton.net/blog/2009/11/my-programming-journey/zwfbqf/' title='zwfbqf'><img width="150" height="150" src="http://davidbolton.net/blog/wp-content/uploads/2009/11/zwfbqf-150x150.jpg" class="attachment-thumbnail" alt="" title="zwfbqf" /></a>

<p>Somewhat inspired by an old <a href="http://onestepback.org/index.cgi/Tech/Programming/SoftwareDevelSteps.red">Jim Weirich post</a> &#8212; yes, I&#8217;ve been meaning to do this for a while &#8212; here is a little history about my journey with computers and programming.</p>
<p>My dad worked with computers from before I was born, and we had home computers for as long as I can remember (at one time we had 12!) I&#8217;ll have to ask, but I imagine we had one from at least as early as 1982 (when I was 3 years old,) though there was no way on Earth I would even be allowed NEAR the computer at that stage.</p>
<p>No, my programming introduction began later. I&#8217;m not sure where it came from (possibly dad, perhaps the library,) but the classic series of books from Usborne on learning Basic, specifically aimed at kids, was pivotal for me. These books were mostly about programming games at various levels, but they introduced me to a wonderful world where the computer did what you asked. Soon I was also cruising Byte magazine for listings, really anywhere I could find more code. Everything I was doing at this stage was Basic, and while Dad had many other books, such as Peter Norton&#8217;s &#8220;Programmer&#8217;s Guide to the IBM PC&#8221;, these were largely impenetrable to me. It helped that one of my best friends in primary school was also way into computers. We swapped code, chatted on BBSes, and learnt a lot in the process (he now works for Pixar.) I loved coding, and created a lot of different programs, including a fairly rustic but workable text editor, a mouse based graphic program and a personal banking application. In fact, I&#8217;m convinced the banking application played a big part in winning scholarships to a couple of Sydney private schools.</p>
<p>Other random memories:</p>
<ul>
<li>writing a column for the local paper about BBSes, winning an insane database package in the process. I believe it was called &#8220;Magic&#8221;, and boy was it a nightmare.</li>
<li>creating a programming language (in Basic.) I knew nothing about lexers and parsers, but the general structure was there. It couldn&#8217;t do much, but it worked.</li>
</ul>
<p>During my teenage years I didn&#8217;t do a whole lot of programming. I was into the tracker music scene (though not particularly talented), and just general teenage stuff: sports, music etc, but I did build a robot controlled by my own code for a year 10 science project. The school computer teacher grilled me because he didn&#8217;t think I&#8217;d written the code myself, but after I proved I knew it inside out, he asked me to join the &#8220;programming team&#8221; for a statewide competition. Who even knew we had a programming team? I looked at the sort of things they had to solve, and they were so trivial and boring that I never joined up.</p>
<p>I still used BBSes a lot (I was a particular fan of Active BBS, and my friend Andre&#8217;s Mindflux BBS, both in Sydney), but when the internet first hit the mainstream I switched from BBS to internet and barely looked back. I built my first webpage in 1995. When I think back to the head start I had in that area, I really should rule the internet now!</p>
<p>I&#8217;d always had a general idea I wanted to be in business &#8212; for some strange reason I found accounting books fascinating &#8212; so when it came time to go to university, I decided on a Bachelor of Sciene in Information Systems, a combination of computers and business. I enjoyed this and did reasonably well &#8212; well enough that the computer people thought I was good at business and the business people thought I was good at computers. I took my first full time job as a consultant straight after uni, and was thrust into the world of corporate Java work. Despite my degree, I really had no idea what I was doing for a year or two, and it wasn&#8217;t till my second job that my learning accelerated. Now I can&#8217;t get enough of it, I devour every book in sight, and am constantly trying to plug any holes in my technical knowledge (though I wouldn&#8217;t swap the business and management training for anything.)</p>
<p>What a trip!</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/11/my-programming-journey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Tools of the Trade</title>
		<link>http://davidbolton.net/blog/2009/10/my-tools-of-the-trade/</link>
		<comments>http://davidbolton.net/blog/2009/10/my-tools-of-the-trade/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 11:07:08 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=181</guid>
		<description><![CDATA[Inspired by MIke Gunderloy&#8217;s &#8220;Tools of the Trade&#8221; post: 
Having just upgraded the hard drive in my laptop, and taken the chance to do a fresh OS install, I&#8217;ve had the opportunity to review almost all my tools. Here is how I get it done:
Hardware

MacBook 13&#8243; 2008 unibody, 4gb, 500gb 7200rpm drive &#8211; I use [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by MIke Gunderloy&#8217;s <a href="http://afreshcup.com/2009/10/11/my-tools-of-the-trade-2009/">&#8220;Tools of the Trade&#8221;</a> post: </p>
<p>Having just upgraded the hard drive in my laptop, and taken the chance to do a fresh OS install, I&#8217;ve had the opportunity to review almost all my tools. Here is how I get it done:</p>
<h2>Hardware</h2>
<ul>
<li><strong>MacBook 13&#8243; 2008 unibody</strong>, 4gb, 500gb 7200rpm drive &#8211; I use this all day, every day, and I *LOVE* it, easily the best computer I&#8217;ve owned. So physically solid, and OS X is the most humane operating system I&#8217;ve encountered, (but not perfect, oh no.) I&#8217;ve just upgraded to the 7200rpm drive, which seems noticeably snappier &#8212; although it could be the fresh OS install as well.  Incidentally, I could only get a 500gb drive! I really only need a 250gb, but they&#8217;re just not available. Anyway, I&#8217;m hoping I&#8217;ll be able to get a 250gb solid state drive for under $500 in the next twelve months.</li>
<li>Standard <strong>Microsoft Mouse</strong> &#8211; Does the job. I&#8217;ve seen the Kensington Expert Mouse trackball mentioned twice in the last 24 hours, so I&#8217;m taking that as a sign, and will probably try one out soon.</li>
<li>Backup drives &#8212; one at home, one at an off-site location. Rotated every couple of weeks. Backups using SuperDuper! nightly. Basically following <a href="http://jwz.livejournal.com/801607.html">JWZ&#8217;s advice</a></li>
</ul>
<h2>Software</h2>
<ul>
<li><strong><a href="http://code.google.com/p/macvim/">MacVim</a></strong> &#8211; I never really gelled with TextMate.  Vim feels like home, even though I only really started using it in anger mid 2008.</li>
<li><strong><a href="http://www.eclipse.org">Eclipse</a></strong> &#8211; Mostly I hate Eclipse. For the benefits (code navigation and refactoring), the hassles just seem to much. Don&#8217;t get me wrong, I know my way around it, and I&#8217;m efficient at using it, but there&#8217;s too much lost time as well. An IDE is essential for Java work.</li>
<li><strong><a href="http://www.pixelmator.com/">Pixelmator</a></strong> &#8211; Pretty easy to use, though I don&#8217;t push it much.</li>
<li><strong><a href="http://amarsagoo.info/namely/">Namely</a></strong> &#8211; I used to use Quicksilver, but it seemed like overkill, and wouldn&#8217;t pick up new applications quickly enough (probably configurable, but it should just work.) Namely JUST launches apps, and does it quickly.</li>
<li><strong><a href="http://www.evernote.com/">Evernote</a></strong> &#8211; Unbelievably, you can&#8217;t seem to link between notes, or make a note hierarchy. I don&#8217;t like Evernote all that much, but there&#8217;s an iPhone app, and the sync seems reasonable. I wish there was a better option.</li>
<li><strong><a href="http://agilewebsolutions.com/products/1Password">1Password</a></strong> &#8211; It works, but they&#8217;ve really messed up the 1Password 3 / Snow Leopard issue.</li>
<li><strong><a href="http://www.zotero.org/">Zotero</a></strong> &#8211; Crucial tool for organising my academic readings. The magic is it takes citations straight from Google Scholar, and handles different formats for material seamlessly. Combined with Skim (see below) it feels like a differentiator compared to my classmates&#8217; systems (Endnote, for instance, which just feels prehistoric.)</li>
<li><strong><a href="http://skim-app.sourceforge.net/">Skim</a></strong> &#8211; Beats Preview for annotating PDFs. Works brilliantly in tandem with Zotero.</li>
<li><strong><a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html">SuperDuper!</a></strong> &#8211; Schedulable backups.</li>
<li><strong><a href="http://culturedcode.com/things/">Things</a></strong> &#8211; There are a million organisation apps and systems out there, and I&#8217;ve tried a few, and this one seems to do enough to stick. Probably the fact that there is an iPhone app means something to me, even though the sync system is annoying.</li>
<li><strong><a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a></strong> &#8211; Parallels was my virtual machine of choice with my first Mac, but VMWare Fusion just seems faster and more stable. Looking forward to the 3.0 release at the end of the month.</li>
<li><strong><a href="http://www.balsamiq.com/">Balsamiq</a></strong> &#8211; This is a great way to create mock ups of user interfaces. The best part is that they&#8217;re a little rough, so clients don&#8217;t get too attached. Kills Visio.</li>
<li><strong><a href="http://www.irradiatedsoftware.com/sizeup/">SizeUp</a></strong> &#8211; A nice way to tile windows in OS X. It&#8217;s no Awesome (a Linux tiling window manager,) but it does the job.</li>
<li><strong><a href="http://visitsteve.com/work/selfcontrol/">SelfControl</a></strong> &#8211; Because sometimes/often I can&#8217;t stop the distractions from, well, distracting me.</li>
<li><strong><a href="http://www.openoffice.org/">OpenOffice</a></strong> &#8211; Works great for me, although we have Excel spreadsheets for reference data that have macros, and OpenOffice doesn&#8217;t help here.</li>
<li><strong><a href="http://fluidapp.com/">Fluid</a></strong> &#8211; Mainly I use this for a dedicated JIRA browser.</li>
<li><strong><a href="http://getfirefox.com">Firefox</a></strong> &#8211; Wins for its supreme web development tools, like Firebug.</li>
<li><strong><a href="http://iterm.sourceforge.net/">iTerm</a></strong> &#8211; I&#8217;d use Terminal, but it doesn&#8217;t do 256 colours without a lot of hackery.</li>
<li><strong><a href="http://adium.im/">Adium</a></strong> &#8211; I don&#8217;t really like chat all that much, but this works.</li>
<li><strong><a href="http://colloquy.info/">Colloquy</a></strong> &#8211; Man, I really suck at IRC. I fire this up about once a month.</li>
<li><strong>iTunes</strong> &#8211; I fought iTunes for so long. Songbird had my vote, but when I got an iPhone, it had to be iTunes.</li>
<li><strong><a href="http://www.videolan.org/vlc/">VLC</a></strong> &#8211; Plays media! Works!</li>
<li><strong><a href="http://www.cis.upenn.edu/~bcpierce/unison/">Unison</a></strong> &#8211; A great way to keep my music library in sync over two machines.</li>
</ul>
<h2>Incidentals</h2>
<ul>
<li><strong>iPhone</strong> &#8211; Best phone ever. Man, when I think back to that stupid Blackberry that I dealt with for a year, I get all angry.</li>
<li><strong>Mac Mini</strong> &#8211; Serves media around the house, and light browsing.</li>
<li><strong>Dell 24&#8243; LCD</strong> &#8211; This was great when I was doing a lot of work from home, but its just the Mac Mini screen now. It rotates to portrait orientation, which is great for coding.</li>
<li><strong>MacBook Pro 15&#8243; 2006</strong>, 2gb, 80gb &#8211; This was my first full time Mac, a nice computer. It doesn&#8217;t compare to the new one though. It is my wife&#8217;s computer now.</li>
</ul>
<h2>Wish List</h2>
<ul>
<li>Fancy keyboard &#8211; Kinesis, Das Keyboard? I don&#8217;t know, but it feels like I should have a swish keyboard.</li>
<li>Trackball mouse &#8211; As above, I think I&#8217;ll try a Kensington Expert Mouse this week.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/10/my-tools-of-the-trade/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installing Java 1.5/5.0 on Snow Leopard</title>
		<link>http://davidbolton.net/blog/2009/10/installing-java-1-55-0-on-snow-leopard/</link>
		<comments>http://davidbolton.net/blog/2009/10/installing-java-1-55-0-on-snow-leopard/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 22:09:15 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=179</guid>
		<description><![CDATA[Most people are pointing to the OneSwarm instructions for installing Java 1.5 on Snow Leopard (it has been saved 100 times in Delicious.)  While they do work, the following instructions (saved only 24 times in Delicious) here at chxo internets are much easier, and work just as well.  It also feels safer and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people are pointing to the OneSwarm instructions for installing Java 1.5 on Snow Leopard (it has been saved 100 times in Delicious.)  While they do work, the following instructions (saved only 24 times in Delicious) <a href="http://chxor.chxo.com/post/183013153/installing-java-1-5-on-snow-leopard">here at chxo internets</a> are much easier, and work just as well.  It also feels safer and cleaner since the Java install is coming directly from Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/10/installing-java-1-55-0-on-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using render_to_string in view or helper</title>
		<link>http://davidbolton.net/blog/2009/03/using-render_to_string-in-view-or-helper/</link>
		<comments>http://davidbolton.net/blog/2009/03/using-render_to_string-in-view-or-helper/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 02:20:14 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=174</guid>
		<description><![CDATA[I suspect some Google searcher is going to find this useful one day&#8230;
In Rails, render_to_string cannot be used in a view or helper, as it&#8217;s an ActionController method, not an ActionView method.  Instead, you can use standard render commands.  But beware, using render :file will set the content type header to the type of the [...]]]></description>
			<content:encoded><![CDATA[<p>I suspect some Google searcher is going to find this useful one day&#8230;</p>
<p>In Rails, <em>render_to_string</em> cannot be used in a view or helper, as it&#8217;s an ActionController method, not an ActionView method.  Instead, you can use standard <em>render</em> commands.  But beware, using <em>render :file</em> will set the content type header to the type of the file.  Rather, read the file into a local variable and use <em>render :inline</em>.</p>
<p>I&#8217;ve just confirmed this in Rails 2.2, and I suspect it&#8217;s a recent thing, as I don&#8217;t believe it always worked this way.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/03/using-render_to_string-in-view-or-helper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Objective C vs Ruby</title>
		<link>http://davidbolton.net/blog/2009/02/objective-c-vs-ruby/</link>
		<comments>http://davidbolton.net/blog/2009/02/objective-c-vs-ruby/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 01:04:50 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=172</guid>
		<description><![CDATA[I was asked yesterday for advice on the best language between Objective C and Ruby to learn for someone new to programming, who is hoping to be employed working with that language in the near future (an important point).  Here&#8217;s my response:
These are two &#8216;hot&#8217; areas generating a lot of buzz here and abroad.
For the [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked yesterday for advice on the best language between Objective C and Ruby to learn for someone new to programming, who is hoping to be employed working with that language in the near future (an important point).  Here&#8217;s my response:</p>
<blockquote><p>These are two &#8216;hot&#8217; areas generating a lot of buzz here and abroad.</p>
<p>For the Australian market, I&#8217;d recommend Ruby because its best use case is developing websites in Ruby on Rails and there is plenty of demand for websites at all levels, from small sites to large.  Plus working with the web will teach a set of skills that is transferable to other programming languages &#8212; such as using HTTP correctly and the ubiquitous HTML.  Ruby is syntactically reasonably simple, and makes a great language for learning the princuples of programming.</p>
<p>Objective C on the other hand has two main use cases currently: desktop software and iPhone applications.  Experienced developers can make serious money in these areas, but it is far more random, and not an area where you can build a career, particularly in Australia where the demand is minimal.  Objective C is could be interesting as a second or third language, but I&#8217;d advise against starting with it.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/02/objective-c-vs-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Too Many Options</title>
		<link>http://davidbolton.net/blog/2009/02/too-many-options/</link>
		<comments>http://davidbolton.net/blog/2009/02/too-many-options/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:22:04 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=161</guid>
		<description><![CDATA[A couple of posts ago, I mentioned my concern that Merb could add too much flexibility to the Rails world, and that the abundance of options would increase the barriers to entry for new Rails programmers.  Having watched the Rails/Merb 3.0 commits so far, it seems that the aim right now is to fix things [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://davidbolton.net/blog/?p=149">couple of posts ago</a>, I mentioned my concern that Merb could add too much flexibility to the Rails world, and that the abundance of options would increase the barriers to entry for new Rails programmers.  Having watched the Rails/Merb 3.0 commits so far, it seems that the aim right now is to fix things rather than add things, a good approach since it should be transparent for new and old Rails developers alike.</p>
<p>Anyway, Josh Susser <a href="http://blog.hasmanythrough.com/2009/2/7/the-tyranny-of-choice">thinks that we may be facing the issue of too many options</a> and too much to learn already, and he could be right.</p>
<blockquote><p>I have enough experience that I don&#8217;t have to spend much time pondering. But for someone new to Rails this all must seem pretty intimidating.</p></blockquote>
<p>While I was thinking of framework options, the fact of the matter is that there are already a multitude of options for approaching almost any aspect of a web app in the Rails world now.  Java hit this state many years ago &#8212; Bruce Tate, a leading light in the Java world who moved to Ruby on Rails, <a href="http://www.infoq.com/articles/From-Java-to-Ruby--Risk">had this to say</a>:</p>
<blockquote><p>Even if you do choose a popular stack such as Spring, your developers must learn potentially dozens of libraries that are specific to a given project. In this case, Java&#8217;s core strength, a plethora of libraries, works against it. In contrast, most Ruby developers know Rails.</p></blockquote>
<p>It&#8217;s this last sentence that is under threat.  In a year or two, Rails development may be just as fractured as Java.</p>
<p>Now options are not a bad thing per se, but many options that are essentially the same add nothing to the game.  I&#8217;m thinking in particular here of testing, mocking, and fixture replacement solutions, of which there are bucketloads in Ruby right now.  As a group we&#8217;d probably be better off just letting one of them win and moving on with our lives.  For instance, it seems that by-and-large we will all be settling on Passenger as the main deployment platform for the time-being.  This is a good thing, and lets us speak in a common deployment language, and allows us to worry about other parts of the tricky business of web development.</p>
<p>Working with common options doesn&#8217;t stop new approaches and frameworks from emerging, but they will need to prove to be sufficiently better to make it worthwhile to move, which is a good thing.</p>
<p>All this is to say: it will be very interesting to follow the progress of the Ruby and Rails communities over the next couple of years.  With no dominant vendor (such as Sun with Java), organic growth is driven by community needs, but it would be good to see the philosophy of &#8220;convention over configuration&#8221; rule in most cases.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/02/too-many-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript</title>
		<link>http://davidbolton.net/blog/2009/02/javascript/</link>
		<comments>http://davidbolton.net/blog/2009/02/javascript/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 22:10:31 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Crockford]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=156</guid>
		<description><![CDATA[Like many programmers, I&#8217;ve been using JavaScript for years, without really understanding everything about it. Recently I&#8217;ve been working on a project which is exclusively JavaScript, which is to say exclusively browser DOM manipulation via JavaScript, so I&#8217;ve been doing as much learning as possible.
First, the thing most worth knowing is that browser DOM APIs [...]]]></description>
			<content:encoded><![CDATA[<p>Like many programmers, I&#8217;ve been using JavaScript for years, without really understanding everything about it. Recently I&#8217;ve been working on a project which is exclusively JavaScript, which is to say exclusively browser DOM manipulation via JavaScript, so I&#8217;ve been doing as much learning as possible.</p>
<p>First, the thing most worth knowing is that browser DOM APIs are NOT synonymous with JavaScript.  As Douglas Crockford says: &#8220;The API of the browser, the Document Object Model is quite awful, and JavaScript is unfairly blamed&#8221;.  Once JavaScript the language is separated with the way it interacts with the browser, one can be a little more objective about the language itself.  To that end, the highest recommendation I can give is to <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742">Crockford&#8217;s &#8220;JavaScript: The Good Parts&#8221; book</a>.  It is an excellent exposition on the most useful and reliable subset of JavaScript.  Crockford explains that there are many average and poor parts of JavaScript, but that used properly and in a restricted way, it is a versatile and practical language.</p>
<p>Other excellent resources for understanding the JavaScript way of doing things are, particularly in the context of the browser:</p>
<ul>
<li>A detailed talk on why the DOM causes so many headaches by the founder of the jQuery project, John Resig: <a href="http://video.yahoo.com/watch/4403981/11812238">The DOM is a Mess</a></li>
<li>Douglas Crockford&#8217;s &#8220;Theory of the DOM&#8221; talk &#8211; parts <a href="http://video.yahoo.com/watch/111582/992708">1</a>, <a href="http://video.yahoo.com/watch/111583/996002">2</a>, <a href="http://video.yahoo.com/watch/111584/996008">3</a></li>
</ul>
<p>As Crockford mentions in his book,  most JavaScript references are not so useful, because they don&#8217;t differentiate between the bad parts and the good parts of the language, instead leaving them for you to figure out.  Nevertheless, it is probably worthwhile having a JavaScript reference, and <a href="http://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/dp/0596101996/">O&#8217;Reilly&#8217;s guide by David Flanagan</a> is probably a good start.  I&#8217;ve also got good mileage from <a href="http://www.amazon.com/Accelerated-Scripting-Ajax-APIs-Libraries/dp/1590597648/">Accelerated DOM Scripting with Ajax, APIs, and Libraries</a>, which covers modern JavaScript in the browser reasonably well.</p>
<p>JavaScript can be quite neat, though it wouldn&#8217;t be a first choice for me unless it was necessary (essentially, if I was working on the client side, in a web browser).  I certainly wouldn&#8217;t use it server side for anything, though there&#8217;s <a href="http://en.wikipedia.org/wiki/Server-side_JavaScript">plenty of effort in that area</a>.</p>
<p>Another area gaining steam is Test-Driven-Development of JavaScript.  I&#8217;ve been using <a href="http://jsunittest.com/">JsUnitTest</a>, but there are a number of libraries out there, each with quirks of syntax and implementation.  JsUnitTest works well for me for the moment.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2009/02/javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails &amp; Merb merge</title>
		<link>http://davidbolton.net/blog/2008/12/rails-merb-merge/</link>
		<comments>http://davidbolton.net/blog/2008/12/rails-merb-merge/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 02:23:04 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=149</guid>
		<description><![CDATA[The Ruby world is abuzz with the news that Rails &#38; Merb will be merging for version 3 of the Rails framework.  Big news!
We all realized that working together for a common good would be much more productive than duplicating things on each side of the fence. Merb and Rails already share so much in [...]]]></description>
			<content:encoded><![CDATA[<p>The Ruby world is abuzz with the news that <a href="http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3">Rails &amp; Merb will be merging for version 3 of the Rails framework</a>.  Big news!</p>
<blockquote><p>We all realized that working together for a common good would be much more productive than duplicating things on each side of the fence. Merb and Rails already share so much in terms of design and sensibility that joining forces seemed like the obvious way to go. All we needed was to sit down for a chat and hash it out, so we did just that.</p></blockquote>
<p>I think there&#8217;s a lot of potential for good here, but I&#8217;m also a bit concerned about added complexity&#8230; one of the attractions of Rails is that it is very quick to get started, and someone can get productive in a matter of weeks.  If we lose the convention over configuration idea too much, that low barrier to entry could be lost (God help us if we get to &#8216;a zillion ways to do things&#8217; like Java web development hit many years ago&#8230; ouch.)</p>
<p>I&#8217;ve got a positive attitude to this merging, but I&#8217;m also a little circumspect.  Robby Russell articulates my thoughts the best in <a href="http://www.robbyonrails.com/articles/2008/12/23/rails-3-and-merb">Rails 3 and Merb</a>:</p>
<blockquote><p>I’m curious about how the revised core team will incorporate the library-agnostic view points into Rails without increasing the complexity for configuration. For example, being able to use a different <span class="caps">ORM</span> is great, but at the same time, one of the things that I have really liked about Ruby on Rails was that it did make decisions ahead of time for you. Conventions over Configuration and all that jazz. While they intend to keep these <em>defaults</em>, I really wonder how much more configuration will be involved. Be that as it may, Rails and Merb are run by some of the best developers I’ve ever known… so I am sure these decisions will not be made without some deep consideration.</p>
<p>&#8230;</p>
<p>Having testing, consistency, and other best practices built-in did the world a huge favor. &#8230;and all it took was someone like <span class="caps">DHH</span> to throw his opinion out there and stick to it.</p></blockquote>
<p>Anyway, wheels are in motion&#8230; though I suspect Rails 3 is greater than 12 months away.  I can&#8217;t wait to see what happens.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2008/12/rails-merb-merge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thinking Sphinx Yaml</title>
		<link>http://davidbolton.net/blog/2008/12/thinking-sphinx-yaml/</link>
		<comments>http://davidbolton.net/blog/2008/12/thinking-sphinx-yaml/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 11:16:41 +0000</pubDate>
		<dc:creator>Dave B</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://davidbolton.net/blog/?p=147</guid>
		<description><![CDATA[Thinking Sphinx is a beautiful interface to the Sphinx search engine.  One thing that I only saw mentioned in passing was setting up a config/sphinx.yml file.  This is necessary if you want to run multiple sphinxes on varying ports (say, if you were running multiple apps on the one host).  The format is:

development:
  port: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ts.freelancing-gods.com/">Thinking Sphinx</a> is a beautiful interface to the Sphinx search engine.  One thing that I only saw mentioned in passing was setting up a config/sphinx.yml file.  This is necessary if you want to run multiple sphinxes on varying ports (say, if you were running multiple apps on the one host).  The format is:<br />
<code><br />
development:<br />
  port: 13000<br />
test:<br />
  port: 13001<br />
staging:<br />
  port: 13002<br />
production:<br />
  port: 13003<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://davidbolton.net/blog/2008/12/thinking-sphinx-yaml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.247 seconds -->
<!-- Cached page served by WP-Cache -->
