<?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>SickBiscuit &#187; javascript</title>
	<atom:link href="http://sickbiscuit.com/blog/category/code/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://sickbiscuit.com/blog</link>
	<description>The personal blog of Steven Wilkin</description>
	<lastBuildDate>Sun, 20 May 2012 01:11:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Home time revisited &#8211; redeveloping a CakePHP application with Sinatra</title>
		<link>http://sickbiscuit.com/blog/2010/03/24/home-time-revisited-redeveloping-a-cakephp-application-with-sinatra/</link>
		<comments>http://sickbiscuit.com/blog/2010/03/24/home-time-revisited-redeveloping-a-cakephp-application-with-sinatra/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 18:26:50 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Sinatra]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://sickbiscuit.com/blog/?p=466</guid>
		<description><![CDATA[I&#8217;ve just released the latest iteration of hometi.me, a little nano-app I&#8217;ve mentioned before.
Deliberate Practice
It&#8217;s only a trivial app but I&#8217;ve a bit of free time before the start of a contract so I thought it would be good practice to redevelop it, a task I&#8217;d been ignoring for a long time.
Goodbye CakePHP, Hello Sinatra
The [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released the latest iteration of <a href="http://hometi.me">hometi.me</a>, a little <a href="http://sickbiscuit.com/blog/2009/01/26/nano-apps/">nano-app</a> I&#8217;ve <a href="http://sickbiscuit.com/blog/2008/08/12/is-it-home-time-yet/">mentioned</a> <a href="http://sickbiscuit.com/blog/2008/09/09/home-time-is-a-little-closer/">before</a>.</p>
<h3>Deliberate Practice</h3>
<p>It&#8217;s only a trivial app but I&#8217;ve a bit of free time before the start of a contract so I thought it would be good practice to redevelop it, a task I&#8217;d been ignoring for a long time.</p>
<h3>Goodbye CakePHP, Hello Sinatra</h3>
<p>The original app was put together quickly with <a href="http://cakephp.org/">CakePHP</a>, a PHP-based framework I&#8217;ve used since my first paid programming gig. Since then though my interest and proficiency with Ruby and it&#8217;s frameworks has come more to the forefront. By choosing <a href="http://sinatrarb.com">Sinatra</a>, the app was given access to the rich Ruby ecosystem, including the joyful <a href="http://haml-lang.com/">HAML</a> and <a href="http://sass-lang.com/">SASS</a>.</p>
<p>The interesting aspect of this release is that all the logic is now implemented on the client-side using <a href="http://jquery.com/">Javascript</a>. Originally the countdown was calculated on the server-side and passed to the client with an AJAX call, but the server is more-or-less just hosting the markup, stylesheets and Javascript files required to get the app up and running in the browser.</p>
<h3>Heroku</h3>
<p>As this app doesn&#8217;t make use of a database or Cron jobs etc I thought I&#8217;d take the opportunity to move it from my own infrastructure and onto the awesomeness of <a href="http://heroku.com/">Heroku</a> whose free offering is a lot more performant than my little <a href="http://vpslink.com/?ref=CM6S0S">VPS</a>. Heroku is a service I&#8217;ve been playing with for a while now and it makes deploying a Ruby web app into production a breeze, assuming your project can work within it&#8217;s limitations.</p>
<p>All that&#8217;s left now is for the DNS changes to propagate. I&#8217;d like to show a bit more love to this app in the future, the controls to specify your own home time could be more intuitive for instance, but for now I&#8217;m content with the improvements I&#8217;ve made to it and it&#8217;s new home.</p>
<p>Is it passed your home time yet?</p>
]]></content:encoded>
			<wfw:commentRss>http://sickbiscuit.com/blog/2010/03/24/home-time-revisited-redeveloping-a-cakephp-application-with-sinatra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>node-shoutbox &#8211; a simple node.js demo</title>
		<link>http://sickbiscuit.com/blog/2010/03/19/node-shoutbox-a-simple-node-js-demo/</link>
		<comments>http://sickbiscuit.com/blog/2010/03/19/node-shoutbox-a-simple-node-js-demo/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:36:34 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://sickbiscuit.com/blog/?p=454</guid>
		<description><![CDATA[Last month, at the inaugural Super Happy Dev Castle, my buddy Dave Rice told me about a project he was working on involving node.js, an event-based I/O system for Javascript.
Javascript outside of the browser?
This concept seemed almost ridiculous to me at that time but I thought it was worth a look and cobbled together a [...]]]></description>
			<content:encoded><![CDATA[<p>Last month, at the inaugural <a href="http://www.superhappydevcastle.org/">Super Happy Dev Castle</a>, my buddy <a href="http://twitter.com/davidjrice">Dave Rice</a> told me about a project he was working on involving <a href="http://github.com/ry/node">node.js</a>, an event-based I/O system for Javascript.</p>
<h3>Javascript outside of the browser?</h3>
<p>This concept seemed almost ridiculous to me at that time but I thought it was worth a look and cobbled together a quick &#8220;Hello World.&#8221; I was greatly amused by creating a command-line app with Javascript but did nothing more about it until last week. I&#8217;m currently starting out as an independant contractor &#038; have a bit of spare bandwidth so I thought I&#8217;d put together something a bit meatier in order to learn more about this system &#038; to also sharpen up my Javascript skills.</p>
<p>Dave had shown me <a href="http://github.com/felixge/node-comment">node-comment</a> and I also studied <a href="http://github.com/ry/node_chat">node_chat</a>. From there I had just enough reference material to understand the mechanics of <a href="http://en.wikipedia.org/wiki/Push_technology#Long_polling">long-polling</a> and to start piecing together a simple real-time commenting system.</p>
<h3>What is node?</h3>
<p>In and of itself, node is not a web development stack. It provides an I/O platform of which HTTP handling is a part. People are building blogging and wiki engines, FTP servers and command-line tools with this thing, anything I/O based is possible and thankfully micro-frameworks like <a href="http://github.com/jed/fab/">(fab)</a> can ease the pain of creating web apps.</p>
<p>Node is still very young software, which I have felt the pain of. To serve up static content I wanted to use <a href="http://github.com/felixge/node-paperboy">paperboy</a> as it can be used as middleware within (fab), however mere days after the last update to the project the API it was relying upon in node changed fundamentally. Despite being new to node development I was able to <a href="http://github.com/stevenwilkin/node-paperboy">patch paperboy to work with node v0.1.31</a> and get on with my actual project. Another sticking point was the inability of (fab) to handle POSTed form variables, this functionality is planned for it&#8217;s next release though.</p>
<h3>Fun</h3>
<p>Ultimately, my app is of little practical use: it doesn&#8217;t make use of persistance or moderation and node&#8217;s suitability for the production environment may itself be questionable at this time, but it was quite a fun experience. From something I more-or-less despised a decade ago I&#8217;ve come to develop a real affection for coding Javascript over the past few years.</p>
<p>When I had the basics of the app laid-down I eagerly awaiting the moment when I could have it open in two browser windows and enter a comment into one and see it appear in the second. That moment came and it brought a smile to my face. I suggest you give it a go <img src='http://sickbiscuit.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Get the code</h3>
<p>As a wise man once said, code speaks louder than words, so please be my guest and <a href="http://github.com/stevenwilkin/node-shoutbox">clone my demo on GitHub<a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sickbiscuit.com/blog/2010/03/19/node-shoutbox-a-simple-node-js-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

