<?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>aimee daniells &#187; coding</title>
	<atom:link href="http://edendevelopment.co.uk/blogs/aimee/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://edendevelopment.co.uk/blogs/aimee</link>
	<description>apprentice to Enrique Comba Riepenhausen</description>
	<lastBuildDate>Wed, 25 Aug 2010 16:20:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>760th day at Eden</title>
		<link>http://edendevelopment.co.uk/blogs/aimee/2010/07/09/760th-day-at-eden/</link>
		<comments>http://edendevelopment.co.uk/blogs/aimee/2010/07/09/760th-day-at-eden/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 18:25:48 +0000</pubDate>
		<dc:creator>aimee</dc:creator>
				<category><![CDATA[i use tags, not categories]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[learn to type week]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://edendevelopment.co.uk/blogs/aimee/?p=81</guid>
		<description><![CDATA[We have a new intern at Eden. Tom Crayford studies Software Engineering at Sheffield University and is doing a 2&#189; month internship with us, with the possibility of becoming an apprentice at the end of it.
In the style of Tom&#8217;s two recent blog posts, First day at Eden and Second day at Eden i thought [...]]]></description>
			<content:encoded><![CDATA[<p>We have a new intern at Eden. <a href="http://www.tcrayford.net/">Tom Crayford</a> studies Software Engineering at Sheffield University and is doing a 2&frac12; month internship with us, with the possibility of becoming an apprentice at the end of it.</p>
<p>In the style of Tom&#8217;s two recent blog posts, <a href="http://www.tcrayford.net/2010/07/08/First-Day.html">First day at Eden</a> and <a href="http://www.tcrayford.net/2010/07/09/Second-Day.html">Second day at Eden</a> i thought i might also write about my day, since it was a particularly satisfying one. It just so happens to be two years and a month (760 days) since i joined Eden!</p>
<p>Straight after this morning&#8217;s stand-up meeting, I had a quick debrief of a meeting we had with a potential new client yesterday evening. Then i helped Todd to write an email. We draft our emails on Google Wave these days, which is often fun. Four of us were editing the email at once, which means we quickly get to something we&#8217;re all happy with before sending it.</p>
<p>I went out for a walk with Frances to pay in some cheques and buy some Friday Treats for everyone!</p>
<p>At lunch time some of us had several rounds of <a href="http://play.typeracer.com/">TypeRacer</a> in preparation for <a href="http://programmingtour.blogspot.com/2010/07/learn-to-type-week.html">Learn To Type Correctly Week</a> next week! I think it&#8217;s incredible how so many people have got enthusiastic about learning to type well after Corey Haines announced it. If you don&#8217;t believe me, check the twitter hashtag, <a href="http://search.twitter.com/search?q=%23learn2typewk">#learn2typewk</a>!</p>
<p>Something quite unusual happened after lunch. We had a message from Richard Knoll at <a href="http://www.merciacyclingclub.org/">Mercia Cycling Club</a> in trouble and needing help because the site was not responding. Richard had found us on Google after searching for Ruby on Rails. I agreed to look at it with Tom for an hour and see if we could figure out what was wrong. We determined that rubygems and Radiant had been upgraded on the server and we needed to tweak a few configuration files. With help from Chris and Spencer, the site was back within the hour! Chris then helped me to raise an invoice for an hour&#8217;s work.</p>
<p>It&#8217;s interesting that we can do anything from a fast restore of an unresponsive website, to projects that take several months from start to finish, requiring two or three pairs of developers working at a time.</p>
<p>Tom and i continued to pair together for the rest of the afternoon. We were able to add value to a project to help a charity in Cambodia. I always learn something whenever i pair with someone. Tom is no exception and i very much enjoyed pairing together today. We all have things we can teach each other.</p>
<p>Tonight i think i might learn a bit from the <a href="http://github.com/edgecase/ruby_koans">Ruby Kōans</a>, possibly study a bit of <a href="http://mitpress.mit.edu/sicp/">SICP</a>, and definitely see who gets evicted from Big Brother!</p>
]]></content:encoded>
			<wfw:commentRss>http://edendevelopment.co.uk/blogs/aimee/2010/07/09/760th-day-at-eden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentation of my apprenticeship task</title>
		<link>http://edendevelopment.co.uk/blogs/aimee/2010/02/21/presentation-of-my-apprenticeship-task/</link>
		<comments>http://edendevelopment.co.uk/blogs/aimee/2010/02/21/presentation-of-my-apprenticeship-task/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 08:44:17 +0000</pubDate>
		<dc:creator>aimee</dc:creator>
				<category><![CDATA[i use tags, not categories]]></category>
		<category><![CDATA[apprenticeship]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://edendevelopment.co.uk/blogs/aimee/?p=54</guid>
		<description><![CDATA[Here is a presentation i made to some of my colleagues on friday explaining my first apprenticeship task, my wiki, how i went about it, the problems i encountered and what i learnt from the whole experience.
See my Apprenticeship task presentation on youtube.
]]></description>
			<content:encoded><![CDATA[<p>Here is a presentation i made to some of my colleagues on friday explaining my first apprenticeship task, my wiki, how i went about it, the problems i encountered and what i learnt from the whole experience.</p>
<p>See my <a href="http://www.youtube.com/watch?v=0EcMcAv_k3w">Apprenticeship task presentation</a> on youtube.</p>
]]></content:encoded>
			<wfw:commentRss>http://edendevelopment.co.uk/blogs/aimee/2010/02/21/presentation-of-my-apprenticeship-task/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Licky wiki news</title>
		<link>http://edendevelopment.co.uk/blogs/aimee/2010/02/04/licky-wiki-news/</link>
		<comments>http://edendevelopment.co.uk/blogs/aimee/2010/02/04/licky-wiki-news/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:27:53 +0000</pubDate>
		<dc:creator>aimee</dc:creator>
				<category><![CDATA[i use tags, not categories]]></category>
		<category><![CDATA[apprenticeship]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://edendevelopment.co.uk/blogs/aimee/?p=46</guid>
		<description><![CDATA[Just a quick update on licky, my little wiki apprenticeship task i&#8217;m doing. I realise that time has gone on and i haven&#8217;t talked about it as much as i might, plus i actually have some quite encouraging news to report now!
Last time i wrote, i was just starting to work on Pages and a [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick update on <a href="http://github.com/sermoa/licky">licky</a>, my little wiki apprenticeship task i&#8217;m doing. I realise that time has gone on and i haven&#8217;t talked about it as much as i might, plus i actually have some quite encouraging news to report now!</p>
<p>Last time i wrote, i was just starting to work on Pages and a PageFactory to find them or create them as necessary. Since then i&#8217;ve added a persistence strategy which saves wiki pages to the filesystem. I pass the desired directory to the strategy so that test pages can be kept separate from real pages. This was necessary as i wanted to clear out the test directory every time after use and i didn&#8217;t want to accidentally delete real pages.</p>
<p>After that little burst of progress i stalled for a long time as i knew i needed to start writing the web interface and i didn&#8217;t know where to begin. <a href="http://ohthatjames.github.com/">James</a> gave me a good idea which was to set up a simple Webserver class that would wrap around the web server of my choice. I have chosen WEBrick for the time being, but it shouldn&#8217;t be too difficult to swap in another one later, probably with another strategy pattern. James suggested i start by visiting a page and looking for the text &#8216;Hello world&#8217;. I thought this was a good idea and so i started finding out about WEBrick servlets.</p>
<p>With that start i was suddenly able to leap ahead, testing and implementing everything i need so that my wiki is now able to create, show and edit pages through the web interface. I feel as if i am very close now. Possibly the only thing left to do is add a way to link between pages and then i can truly call it a wiki.</p>
<p>Test driving the development of this whole project has been extremely educational. I know i started off getting too involved in writing a test framework, so Enrique pulled me back and made me think of the simplest thing that could possibly work. I began with one method: <code>assert_equal</code>. That was enough in the beginning. As time went on i added two more methods: <code>assert_true</code> and <code>assert_contains</code>. When necessary i added useful debugging information to report failures. At the appropriate time i refactored the testing framework into a module that could be included into multiple test classes.</p>
<p>I know i also started thinking about the web server too early. I started off trying to work with ERB and templates, as i am familiar with Rails, and in the end all i needed was a few servlets. As Enrique made me realise, the most important part of a wiki is not that it runs on a web server. The most important thing is content. Pages, with content, saved to a file system. Having focussed on that and got a real solid, well tested mechanism for saving and retrieving pages, i knew that the WEBrick servlets could rely on the underlying framework, and when the time came, it did not let me down.</p>
]]></content:encoded>
			<wfw:commentRss>http://edendevelopment.co.uk/blogs/aimee/2010/02/04/licky-wiki-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote trio programming</title>
		<link>http://edendevelopment.co.uk/blogs/aimee/2010/01/06/remote-trio-programming/</link>
		<comments>http://edendevelopment.co.uk/blogs/aimee/2010/01/06/remote-trio-programming/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:52:36 +0000</pubDate>
		<dc:creator>aimee</dc:creator>
				<category><![CDATA[i use tags, not categories]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[remote working]]></category>
		<category><![CDATA[trio programming]]></category>

		<guid isPermaLink="false">http://edendevelopment.co.uk/blogs/aimee/?p=37</guid>
		<description><![CDATA[If pair programming is good, trio programming must be great, right?
Well, normally no, probably not, but today i had a trio programming experience that worked really well. Two of us were new to the codebase and together we learnt a lot from the person who knows the code well.
Of course, we all did not crowd [...]]]></description>
			<content:encoded><![CDATA[<p>If pair programming is good, trio programming must be great, right?</p>
<p>Well, normally no, probably not, but today i had a trio programming experience that worked really well. Two of us were new to the codebase and together we learnt a lot from the person who knows the code well.</p>
<p>Of course, we all did not crowd around a single computer. That would not be comfortable at all. Due to the snowfall, most of <a href="http://twitter.com/edendevelopment/team">the edenites</a> were working from home today, so it gave us a great opportunity to find an effective way to pair remotely.</p>
<p>Initially we tried iChat screen sharing, but the screen updates are too slow to be satisfying. <a href="http://tooky.github.com/">Steve</a> had the idea of using <a href="http://www.gnu.org/software/screen/">GNU Screen</a> so that we could all access the same terminal window via SSH.</p>
<p>Using a VPN to the office network, we were able to tunnel to Steve&#8217;s laptop and access the screen. In fact we found it useful to have two screens running: one for editing code in Vim and another screen for running Cucumber features. The exciting thing is, we don&#8217;t all have to look at the same screen at the same time: each person is free to switch screens on their own machine without affecting the others.</p>
<p>A Skype conference call completed the experience so that we could talk through our thought processes and learn the details of the codebase.</p>
<p>It was altogether a very profitable day. The snow, instead of being a hindrance today, helped us to find a very effective way of allowing three people to collaborate on a codebase.</p>
]]></content:encoded>
			<wfw:commentRss>http://edendevelopment.co.uk/blogs/aimee/2010/01/06/remote-trio-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A testing framework</title>
		<link>http://edendevelopment.co.uk/blogs/aimee/2009/11/28/a-testing-framework/</link>
		<comments>http://edendevelopment.co.uk/blogs/aimee/2009/11/28/a-testing-framework/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 12:38:18 +0000</pubDate>
		<dc:creator>aimee</dc:creator>
				<category><![CDATA[i use tags, not categories]]></category>
		<category><![CDATA[apprenticeship]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://edendevelopment.co.uk/blogs/aimee/?p=22</guid>
		<description><![CDATA[Enrique has amended my task so that i cannot use any existing testing framework, not even Ruby&#8217;s built-in Test::Unit. However, i must practice test-driven development! Ha ha ha!
So here i am trying to ponder how to write a unit testing framework. Which is actually really nice because i get to decide the syntax i would [...]]]></description>
			<content:encoded><![CDATA[<p>Enrique has amended my task so that i cannot use any existing testing framework, not even Ruby&#8217;s built-in Test::Unit. However, i must practice test-driven development! Ha ha ha!</p>
<p>So here i am trying to ponder how to write a unit testing framework. Which is actually really nice because i get to decide the syntax i would like to use, and maybe &#8211; just maybe &#8211; i&#8217;ll come up with something that suits me really well and i&#8217;ll use again.</p>
<p>Enrique pointed me to the <a href="http://github.com/jimweirich/Given">Given</a> specification framework which i like because it uses the BDD &#8216;given/when/then&#8217; approach for unit-level specifications. I&#8217;m already used to this kind of format for Cucumber features. Effectively, we use &#8216;given/then/when&#8217; for Rspec, but it&#8217;s not made explicitly obvious. My comments in this trivial example should make it obvious:</p>
<pre>describe "example" do
  before do
    @counter = 1             #(given)
  end

  it "increments the counter" do
    @counter += 2            #(when)
    @counter.should == 3     #(then)
  end
end</pre>
<p>Now i think i could make the &#8216;given/when/then&#8217; more obvious, and i can also simplify it. I might actually change &#8216;then&#8217; to &#8216;expect&#8217;, meaning i can do away with the &#8217;should&#8217; method. Effectively i&#8217;m saying that whatever is in the &#8216;expect&#8217; block should return true, otherwise the spec fails. Here&#8217;s what i&#8217;m thinking of:</p>
<pre>spec do
  given { @counter = 1 }
  when { @counter += 2 }
  expect { @counter == 3 }
end</pre>
<p>I suppose this is what people call a DSL &#8211; a domain-specific language. That is the kind of language i&#8217;d like to use to write my specs. I&#8217;ve never written a DSL before, but i&#8217;m excited by the idea of being able to write specs like this, so i&#8217;m looking forward to giving it a go!</p>
<p>A little voice in the back of my head is telling me i&#8217;m going to have to finally understand &#8216;lambda&#8217; properly. Lambda is one of those things that never sticks in my head. I can look it up when i need to and blunder my way to making it work, but i never really understand what it&#8217;s doing or how or why. I have a suspicion that i&#8217;ll be making extensive use of &#8216;lambda&#8217; in my testing framework! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://edendevelopment.co.uk/blogs/aimee/2009/11/28/a-testing-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Practice makes perfect</title>
		<link>http://edendevelopment.co.uk/blogs/aimee/2009/10/21/practice-makes-perfect/</link>
		<comments>http://edendevelopment.co.uk/blogs/aimee/2009/10/21/practice-makes-perfect/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 21:20:17 +0000</pubDate>
		<dc:creator>aimee</dc:creator>
				<category><![CDATA[i use tags, not categories]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[katas]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://edendevelopment.co.uk/blogs/aimee/?p=3</guid>
		<description><![CDATA[I have recently been struck with the idea of practising coding skills. It makes so much sense. In this video, Corey Haines talks about the necessity of practice, and likens it to learning a guitar. You don&#8217;t just play a song right through first time, and then move on to another. You need to spend [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently been struck with the idea of practising coding skills. It makes so much sense. In this video, Corey Haines talks about the necessity of practice, and likens it to learning a guitar. You don&#8217;t just play a song right through first time, and then move on to another. You need to spend time practising the chords, and changing between them.</p>
<p><a href="http://vimeo.com/3039371">Road Thoughts &#8211; Practice</a> from <a href="http://vimeo.com/coreyhaines">Corey Haines</a> on <a href="http://vimeo.com">Vimeo</a></p>
<p>In the same way, as programmers we need to sharpen our skills by doing little practices (sometimes called katas from the Japanese word 型 meaning &#8216;form&#8217;) and repeating them over and over until we get them just right. The skills we learn during practice will be ready to use when we need them in a real project.</p>
<p>The atmosphere at Eden has changed recently as people are taking it upon themselves to learn new skills and practise katas. Suddenly we&#8217;re all looking at each other and thinking &#8220;I don&#8217;t want to be left behind!&#8221;. Just as Uncle Bob said yesterday:</p>
<blockquote><p>You raise the level of professionalism in your company by raising yourself. Refuse to stay where everyone else is.</p>
<p>- @<a href="http://twitter.com/unclebobmartin/status/5035063149">unclebobmartin</a></p></blockquote>
<p>That said, i still find it very hard to motivate myself into actually doing some practising! There&#8217;s always so much ELSE to do, right?! I love the idea, but i need a bit of a push getting started. I need a mentor to guide me.</p>
<p>I have forked <a href="http://github.com/coreyhaines/practice_game_of_life">coreyhaines / practice_game_of_life</a> on github and got as far as running the cucumber specs. At the moment i&#8217;m not really sure what to do next but i&#8217;m mulling it over and will hopefully make a start on coding something this week. I&#8217;ll probably completely mess it up a few times and have to start again, but hey, i&#8217;ll learn a lot from it! That&#8217;s the whole point of practising, isn&#8217;t it!</p>
<p>I will update here to let you know how i get on! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://edendevelopment.co.uk/blogs/aimee/2009/10/21/practice-makes-perfect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
