<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>smartbomb articles</title>
  
  <link href="http://smartbomb.com.au" hreflang="en" rel="alternate" type="text/html" />
  <author>
    <name>Lachie Cox</name>
    <uri>http://smartbomb.com.au/</uri>
    <email>lachie@smartbomb.com.au</email>
  </author>
  <id>tag:smartbomb.com.au,2009-02-15:/</id>
  <updated>2009-02-28T00:03:00Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/Smartbomb" type="application/atom+xml" /><entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2009/02/an-idiom</id>
    <title type="html">an idiom</title>
    <published>2009-02-28T00:03:00Z</published>
    <updated>2009-03-27T13:05:28+00:00</updated>
    <link href="http://smartbomb.com.au/2009/02/an-idiom" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><img src="http://smartbomb.com.au/images/posts/module_idiom.png" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/nIjFsFj5SQE" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2009/01/glitches-in-perception</id>
    <title type="html">glitches in perception</title>
    <published>2009-01-25T00:32:07Z</published>
    <updated>2009-01-25T00:32:07Z</updated>
    <link href="http://smartbomb.com.au/2009/01/glitches-in-perception" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>On the new <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=291389683&amp;s=143460">Matthew Herbert Big Band album</a> there’s an achingly beautiful song <em>One Life</em>. I thought it was annoyingly and capriciously glitched. The glitch repeats rhythmically over the track, seemingly detached and irrelevant, just occluding the music. Its not unusual in Herbert’s music, but usually <a href="http://www.matthewherbert.com/pccom.php">his mistakes</a> enhance tracks.</p>
        <p>At the magical Matthew Herbert Big Band gig at the Sydney Opera House last night <em>One Life</em> was the only track where Herbert stood back from his equipment, hands clasped, just listening. I immediately thought that he’d regretted the glitch on the album and was tacitly repenting on stage.</p>
        <p>This morning I googled the track; I was wrong. From the liner notes:</p>
        <blockquote>
        <p>one beep from the alarm system of my premature son’s neonatal special care unit. each beep represents 100 people killed in iraq since the start of the war in 2003 to oct 2006.</p>
        </blockquote>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/DQBkm-j1puI" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2009/01/dirdb</id>
    <title type="html">DirDB: Its like using a directory as a database. Sort of.</title>
    <published>2009-01-18T08:55:00Z</published>
    <updated>2009-01-18T09:01:41Z</updated>
    <link href="http://smartbomb.com.au/2009/01/dirdb" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>Rated PoC (you choose the meaning) &amp; alpha.</p>
        <h2>backstory</h2>
        <p>I keep running into the same pattern of wanting to keep my app’s data in a set of files in a directory, <br />
        rather than in a database.<br />
        Its always liberating for a while, but inevitably reaches a point where its more unwieldy than using a <br />
        plain ol’ database.</p>
        <p>The main benefit seems to be that the data’s data and there’s no reason it shouldn’t be kept in a file <br />
        instead of a database anyway.<br />
        The unwieldiness and performance angst seems to come not from the meat, but from the metadata: when you don’t need the whole thing<br />
        but a small detail or excerpt.</p>
        <p>In other words, my solution ends up getting more and more convoluted the further away from the meat of the data I get.</p>
        <p>For example, I was writing an app which was used to review Capistrano runs and parse their log files. Why store that stuff in a database? By the time I started considering a rewrite I needed to:</p>
        <ul>
        	<li>paginate a list of lot of log files.</li>
        	<li>pull out just an excerpt of the log file (say, a comment describing the reason for running the script).</li>
        	<li>determine the success of the run.</li>
        	<li>determine the time of the run</li>
        	<li>etc.</li>
        </ul>
        <p>It was boring to code &amp; slow.</p>
        <p>This library is an experiment in easing that kind of disparity &amp; angst.</p>
        <h2>example</h2>
        <p>The most recent path-crossing I had with the pattern was when I started dreaming of simplifying my blog, a la<br />
        http://github.com/toolmantim/toolmantim.</p>
        <p>The simplicity of “just having files” is great, but I know I don’t really want to go there in case I regret it, as I have in the past. Instead of giving up, this time I looked deep into my soul to work out what was eating me.</p>
        <p>I think this library will probably get me out of the existential bind; an article might look like this:</p><table class="highlighttable"><tr><td class="linenos"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42</pre></td><td class="code"><div class="highlight"><pre>require 'rubygems'
require 'dirdb'
require 'pp'

class Article
  # dirdb setting-uppness
  include DirDB::Resource

  index_class DirDB::Index::Basic    # optional, default shown
  glob '*.haml'                      # optional, default '*'

  # optional indexes:
  index :by_created_at do |article|
    File.ctime(article.path)
  end
  index :by_reverse_title_length do |article|
    -article.title.length
  end


  # mandatory scanner; this is where you grab all the file's information
  def self.scan_file(path)
    File.basename(path,'haml').sub(/^\d+_/,'').gsub('_',' ')
  end



  # normal modelness
  attr_reader :title

  def initialize(title)
    @title = title || ''
  end
end

if __FILE__ == $0
  Article.path = '/path/to/your/blog'
  
  @articles = Article.all(:by_created_at)
  
  @how_to_use_files = Article.get('how_to_use_files.haml')
end</pre></div>
        </td></tr></table><p><code>scan_file</code> is really the core of it; you could make it much more complex if the fancy took you:</p><table class="highlighttable"><tr><td class="linenos"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11</pre></td><td class="code"><div class="highlight"><pre>def self.scan_file(path)
  title = nil
  IO.foreach(path) do |line|
    if line[/^\s*-#\s*title:\s*(.*)$/]
      title = $1
      break
    end
  end

  title || ''
end</pre></div>
        </td></tr></table><p>The thing to realise is that whatever <code>scan_file</code> returns, <code>initialize</code> gets and must handle.</p>
        <p>OK, so it doesn’t really do much, but it does enough and will do more. Maybe I should give it up and just use Sphinx?</p>
        <h3>indexes</h3>
        <p>Indexes are only used for sorting at this stage. The block passed to the class method <code>index</code> has the<br />
        selfsame semantics as <code>Enumerable#sort_by</code>.</p>
        <p>There are two indexes at the moment: <code>Basic</code> and <code>YAML</code>.</p>
        <ul>
        	<li><strong>Basic</strong> scans &amp; builds indexes into memory, once on first use.</li>
        	<li><strong><span class="caps">YAML</span></strong> Is a file-cached version of the Basic index. On first use, it tries to read from <span class="caps">YAML</span>, then if necessary scans, builds indexes and writes out the <span class="caps">YAML</span> cache.</li>
        </ul>
        <h2>caveats</h2>
        <ul>
        	<li>Read-only. Read-write is strongly <span class="caps">YAGNI</span> for me, but naively you could get around it by rebuilding the index on write.</li>
        	<li>No specs or nuffin yet. Its just a PoC. The included features don’t really match up with the implementation anymore.</li>
        </ul>
        <h2><span class="caps">TODO</span></h2>
        <ul>
        	<li>Sqlite index storage.</li>
        	<li>Using git metadata for created and updated at times. This is more of a model implementation thing, but I’d like to include it in the toolkit by default.</li>
        	<li>Efficient will_paginate integration.</li>
        	<li>rake tasks for offline rebuilding of indexes (<span class="caps">YAGNI</span> for now).</li>
        	<li>Delta indexing (<span class="caps">YAGNI</span> for now).</li>
        </ul>
        <h2>code</h2>
        <p>See <a href="http://github.com/lachie/dirdb">DirDB on github</a></p>
        <h2>and</h2>
        <p>Please let me know what you think… is there something in this, or is it just a slightly lumpy catharsis?</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/M7txkgJf9UE" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/08/can-code-be-art</id>
    <title type="html">Can code be art?</title>
    <published>2008-08-27T05:23:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/08/can-code-be-art" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>For some reason an emasculated twitter-debate flared yesterday, on whether code is art.</p>
        <p>Of course, the question is intractable. Art is always elusive, otherwise there wouldn’t be any point to creating it in the first place.</p>
        <p>However I’ve been thinking on this subject a bit lately. Toby has an insatiable hunger for drawings of animals, to be wrought by whomever is available/closest. This hunger is so strong that he now associates Daddy’s Computer with the drawing of Elephants:</p>
        <p><a href="http://www.flickr.com/photos/lachie/2730829711/" title="efant by lachie, on Flickr"><img src="http://farm4.static.flickr.com/3196/2730829711_a11d1dc70d_m.jpg" width="240" height="180" alt="efant" /></a></p>
        <p>Of course I now have it on <a href="http://twitter.com/notahat/statuses/899024626">good authority</a> that my credentials on the subject of art and code are inadequate. But I’ve still been thinking about it enough to raise a slew of illustrative questions.</p>
        <h2>Is art available to everyone?</h2>
        <p>Is a child capable of detecting art? At what age do people become sensible of art? Can all people appreciate art?</p>
        <p>If No, then who decides? Is there a gold standard, at least a committee?</p>
        <p>If code could be art, who would decide if it actually was?</p>
        <h2>What is art?</h2>
        <p>For example, is <em>anything</em> within the realm of industrial design art?</p>
        <p>Is a beautifully designed car art? I had this discussion with Dad the other day, and you’d be hard pressed to persuade him that car design is anything lower than the height of human sophistication and art.</p>
        <p>Obviously this is completely subjective, even inside art’s own walls.</p>
        <p>Is literature art? Its not much to look at, but it can certainly manifest as art <strong>inside your head</strong>. Is a play art? Is its script art, or only a production thereof? And is an amdram production less arty than a big name one?</p>
        <p>Maybe code’s concepts or manifestation could be considered to be art. Or maybe code is only art if you <a href="http://redhanded.hobix.com/images/aside-from-that-there-is-a-range.gif">do it like _why</a>.</p>
        <h2>Science</h2>
        <p>Programming is part of computer science, but I’m fairly sure we don’t usually treat it as such (though maybe unit tests are moving us back towards the scientific method). There’s abundant beauty in science but it’s not art.</p>
        <p>For example, is Flickr more the result of computer science, or the imagination of a small group of people?</p>
        <h2>Apples, oranges &amp; elephants</h2>
        <p>Ultimately I think that comparing code and art is an impedance mismatch, but that perhaps the manifestation of code as an application could be considered as art.</p>
        <p>And, even if code <em>is</em> art, I think that we’re all still at the stage of kiddies who daub their masterworks with arbitrary parts of their body. Kiddies who appreciate most pictures as art, as long as they have elephants.</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/ZHCJSRN3qq4" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/06/rails-camp-three</id>
    <title type="html">Rails Camp Three</title>
    <published>2008-06-25T12:42:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/06/rails-camp-three" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>RailsCamp 3 just finished, and it was another fantastic weekend of hacking with mates.</p>
        <h1>what a kerfuffle!</h1>
        <p>You’ve probably heard by now that Ben (the organiser of RailsCamp) and Kaz’s munchkin Liam came six weeks early. We’d been talking about babies coming early just the night before, <br />
        since my son Toby was five weeks early. <br />
        It was an eerie shock to hear that nearly the same thing had happened to Ben &amp; Kaz! Liam is doing well, but is still in hospital for a little while.</p>
        <p>The upshot of this twist was that <a href="http://glenn.davy.net.au/">Glenn Davy</a> and I ended up running the camp. It was a pleasure as most of the heavy lifting had already been done by Ben.<br />
        Thanks so much to Glenn and Ben for making the camp awesome, and to everyone else for being so easy-going over the weekend.</p>
        <h1>codings</h1>
        <p>Lack of internet is a key feature of the RailsCamp fun.<br />
        To offset this, <a href="http://lstoll.net">Lincoln Stoll</a> set up a server chock full of VPS’s for hosting our apps. On top of that it served <span class="caps">DNS</span> and hosted gitorious.<br />
        At camp it was at http://git.railscamp.net, and now we’re back its still at http://git.railscamp.net. (Some of these apps will no doubt go across to github in time).</p>
        <p>A bumper crop of code came home from the camp this year:</p>
        <ul>
        	<li>Gitjour refactor</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/gitjour">http://git.railscamp.net/projects/gitjour</a></p>
        <p>A group of guys made their dissatisfaction with the current gitjour implementation manifest by refactoring it, waay into early saturday morning.</p>
        <ul>
        	<li>Gitnotify</li>
        </ul>
        <p>Broadcast a growl notification each time you commit to git.</p>
        <ul>
        	<li>Gitman</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/gitman">http://git.railscamp.net/projects/gitman</a></p>
        <p>Manage your git sharing, simply. By <a href="http://mike.bailey.net.au/">Mike Bailey</a></p>
        <ul>
        	<li>Swords</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/swords">http://git.railscamp.net/projects/swords</a></p>
        <p>A great start on a thesaurus based crossword generator. It has ascii and web interfaces.</p>
        <ul>
        	<li>Duke</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/duke">http://git.railscamp.net/projects/duke</a></p>
        <p>The return of the network jukebox. Gaming the duke voting system provided plenty of fun for all.</p>
        <p><a href="http://ducknewmedia.com.au/">Myles Byrne</a> and I were duke’s latest developers (everyone works on duke, some time). I failed to provide events for Myles, and I’m sorry.</p>
        <ul>
        	<li>bit-tags</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/bit-tags">http://git.railscamp.net/projects/bit-tags</a></p>
        <p>Taggable snippets by the Brisbane boys.</p>
        <ul>
        	<li>iShare</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/ishare">http://git.railscamp.net/projects/ishare</a></p>
        <p>An app for letting know what you’d like to hear or talk about at railscamp!</p>
        <ul>
        	<li>twonklist</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/twonklist">http://git.railscamp.net/projects/twonklist</a></p>
        <p>An anti-social networking application.</p>
        <ul>
        	<li>Twetter</li>
        </ul>
        <p><a href="http://git.railscamp.net/projects/twetter">http://git.railscamp.net/projects/twetter</a></p>
        <p>A local twitter. Linc pointed twitter.com at twetter so that everyone’s Twitterific <strong>just worked.</strong> <a href="http://blog.allen.com.au/2008/6/24/rails-camp-the-third">Matta writes about it here</a></p>
        <p>Max dropped in and wrote up a Flex based client, too.</p>
        <ul>
        	<li>starjour</li>
        </ul>
        <p><a href="http://github.com/lachie/starjour/tree/master">http://github.com/lachie/starjour/tree/master</a></p>
        <p>I did some work on refactoring starjour. Still not really sure where this app is going, but <br />
        it <em>was</em> good to see is list full of *jour services.</p>
        <p>If I’ve forgotten any projects, let me know.</p>
        <h1>jq</h1>
        <p>I gave a talk on jQuery, which was a bit of a shamozzle as my version of firebug wasn’t playing with firefox 3. Preparation? Next time I suppose.<br />
        Thanks to Hugh Evans for having a working ffx and some elegant jq code to show off.</p>
        <h1>feedback</h1>
        <p>If you have some feedback on the camp, please let me know: lachie (at) this domain.</p>
        <p>One thing I’d like to see is some more emphasis on family at RailsCamp. <a href="http://brodaigh.com/">Brodaigh</a> brought her daughter Crystal to this one and Lone and I brought Toby to the first one.<br />
        It adds a mellowing element to the camps that I really enjoy. And, I want a chance to beat Crystal at Set.</p>
        <h1>saving the day</h1>
        <p>When people started leaving on Monday morning, we hit a problem: someone had inadvertently taken <a href="http://www.moment.com.au/">Phil Oye’s</a> bag.</p>
        <p>After we’d finished tidying up and had hit McDonalds, I got a Twitter direct message on my phone from <a href="http://drnicwilliams.com/">Dr Nic</a> “what’s your ph num? we have someone’s black bag @ airport.”</p>
        <p>I was able to put Phil in contact with Greg Fairbrother and it all ended happily ever after.</p>
        <p>Twitter <span class="caps">FTW</span></p>
        <h1>Summer 08 ? Winter 09 ?</h1>
        <p>So who’s going to step up next? Railscamp happens where ever someone organises it. It may be a structure-less weekend, but its still non-trivial to set one up <br />
        If you think you’d like to give it a go, let me know and I’ll put you in touch with people who’ve done it before. lachie (at) this domain.</p>
        <p>The guys from Brisbane are keen to put on a camp, probably in Winter 2009.</p>
        <p>Who wants to organise an event for Summer 2008/9 ?</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/dmJ3SErJFtU" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/05/my-first-redbubble-shirt</id>
    <title type="html">my first redbubble shirt</title>
    <published>2008-05-22T03:49:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/05/my-first-redbubble-shirt" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>A couple of years ago, I designed and hand-printed three t-shirts.</p>
        <p><a href="http://www.flickr.com/photos/lachie/3128397/" title="DSCN3409 by lachie, on Flickr"><img src="http://farm1.static.flickr.com/1/3128397_c10fe739b1_t.jpg" width="100" height="75" alt="DSCN3409" /></a><br />
        <a href="http://www.flickr.com/photos/lachie/6112157/" title="crabjam shirt by lachie, on Flickr"><img src="http://farm1.static.flickr.com/6/6112157_17f6b70125_t.jpg" width="69" height="100" alt="crabjam shirt" /></a><br />
        <a href="http://www.flickr.com/photos/lachie/3452603/" title="ninja traced by lachie, on Flickr"><img src="http://farm1.static.flickr.com/2/3452603_f9117a5b95_t.jpg" width="74" height="100" alt="ninja traced" /></a></p>
        <p>It was a lot of effort, mainly due to having to hand-cut the stencils out of overhead projector slides. The quality was never quite up to snuff. And the paint was smelly and extremely messy. Despite all that, <em>it was a blast</em>.</p>
        <p>So now that I have a bit of time off, I find myself wanting to do some designs again… This time I’m eschewing the heady chemical aroma of fabric paint and using <a href="http://www.redbubble.com/">Redbubble</a>, a <a href="http://en.wikipedia.org/wiki/The_Long_Tail">long tail</a> publishing business based in Melbourne. They’ll print cards, prints and <strong>shirts</strong> from your artwork.</p>
        <p>They charge a reasonable base price, over which you can mark up whatever profit you desire. Selling costs nothing, so at the very least you can get your own designs printed for only $21. Niice.</p>
        <p>On top of that, the site is really nicely designed and runs on Rails. Our #roro friends <a href="http://rhnh.net/">Xavier Shay</a> and <a href="http://justinfrench.com/">Justin French</a> work there.</p>
        <p>so anyway:</p>
        <h1>buy my tshirt!<br />
         <br />
        <img src="http://images-0.redbubble.com/img/clothing/bodycolor:gold/size:large/style:mens/view:preview/1169263-4-schr-dingers-bird.jpg" alt="" /></h1>
        <p><a href="http://www.redbubble.com/people/lachiec/clothing/1169263-4-schr-dingers-bird">Here</a></p>
        <p>If you don’t get it, have a clue: http://twitter.com</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/0RqfHdRWNf0" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/04/white-blood-cells</id>
    <title type="html">white blood cells</title>
    <published>2008-04-19T23:59:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/04/white-blood-cells" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>We have such overwhelming abundance as a society; that we continue to squander it brings me close to despair. Acting only as a diluted 2020 herd is abdicating our responsibility.</p>
        <p>We’re the top of the pile; the assumption of personal responsibility stands as the only mechanism left to us to achieve the things we <em>need</em> to.</p>
        <p>The education system will never tailor itself to <em>your</em> kids. You will need to shoulder the burden of education yourself.</p>
        <p>The bulk of society will likely <em>never</em> grasp technology as fully as we do. Its up to us to promulgate and fulfill its promise.</p>
        <p>We’re not helpless motes in the plasma of society. We’re the <a href="http://en.wikipedia.org/wiki/White_blood_cell#Overview_table">white blood cells</a>.</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/EfSs2aafHy8" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/02/merb-tips</id>
    <title type="html">Merb tips</title>
    <published>2008-02-19T06:55:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/02/merb-tips" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>So there’s only one at the moment, but i really wanted to write this down:</p>
        <h1>0.5.x make the development logger log <span class="caps">DEBUG</span> messages…</h1>
        <p>Put this in <code>Merb.root/config/environments/development.yml</code></p><table class="highlighttable"><tr><td class="linenos"><pre>1</pre></td><td class="code"><div class="highlight"><pre>:log_level: DEBUG</pre></div>
        </td></tr></table><h1>0.9.x freezing gems</h1>
        <p>The way of installing the latest merb release is</p><table class="highlighttable"><tr><td class="linenos"><pre>1
2</pre></td><td class="code"><div class="highlight"><pre>$ cd to/your/app
$ gem install merb -i gems --source=http://merbivore.com</pre></div>
        </td></tr></table><p>Unfortunately, this command won’t install merb’s dependencies as it won’t be able to look inside the normal gems repository on rubyforge.</p>
        <p>This should do the trick though</p><table class="highlighttable"><tr><td class="linenos"><pre>1
2</pre></td><td class="code"><div class="highlight"><pre>$ cd to/your/app
$ gem install merb -i gems --source=http://merbivore.com --source=http://gems.rubyforge.org</pre></div>
        </td></tr></table><p>Yay!</p>
        <p>(Note that this is only a problem while the merb gems aren’t pushed to rubyforge).</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/klBJmdAHPf0" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/02/quicksilver-javascript</id>
    <title type="html">quicksilver javascript</title>
    <published>2008-02-11T10:32:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/02/quicksilver-javascript" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <h1>point one</h1>
        <p><span style="font-variant:small-caps;"><a href="http://www.blacktree.com/">Quicksilver</a></span></p>
        <h1>point two</h1>
        <p>I want to <em>act without doing</em> in web apps.</p>
        <h1>point three</h1>
        <p><a href="http://rails-oceania.googlecode.com/svn/lachiecox/qs_score/trunk/qs_score.js">qs_score.js</a></p>
        <p><a href="http://smartbomb.com.au/qs_score/qs_score.html">For example</a></p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/A67MGOoo2Tc" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/02/i-love-me-some-source</id>
    <title type="html">I love me some source</title>
    <published>2008-02-01T12:42:00Z</published>
    <updated>2008-09-01T18:05:39Z</updated>
    <link href="http://smartbomb.com.au/2008/02/i-love-me-some-source" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>I don’t know if its because I’m nosy, or because I’m a control freak, or perhaps both, but I really do like to read the source code. It occurs to me that this is probably why I feel so at home in the open source world.</p>
        <p>As much as I like something like Cocoa, it pains me not to be able to trace problems all the way down the stack. Even java solved this problem by shipping with its own source.</p>
        <p>Proclivities aside, I really like source, and am always looking for ways to make it easier to <em>get at</em>. <code>cd /usr/lib/ruby/gems/1.8/gems</code> gets old quick.</p>
        <p>I started with this little <em>cough</em> <a href="http://drnic.tumblr.com/post/166472">gem from Dr Nic</a>. Integrating it with my shell, I could now type</p><table class="highlighttable"><tr><td class="linenos"><pre>1</pre></td><td class="code"><div class="highlight"><pre>$ gems activerecord</pre></div>
        </td></tr></table><p>and up pops the activerecord gem in Textmate. So some new releases of activerecord came out, and suddenly my naive script is giving me the old version. Without looking too far into it I added gem requirement support so that I could type</p><table class="highlighttable"><tr><td class="linenos"><pre>1</pre></td><td class="code"><div class="highlight"><pre>$ gems activerecord '&gt;=2'</pre></div>
        </td></tr></table><p>and get a recent activerecord in Textmate. As good as this is, I was really after something with <em>less typing</em> and smarter pants. Well tonight I cracked it and I thought I’d open the source:</p><table class="highlighttable"><tr><td class="linenos"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11</pre></td><td class="code"><div class="highlight"><pre>#!/usr/bin/env ruby

require ENV['TM_SUPPORT_PATH']+"/lib/ui"
require 'rubygems'

gems = Gem.source_index.latest_specs.collect {|spec| spec.full_name}.sort

TextMate::UI.request_item(:title =&gt; 'open a gem', :items =&gt; gems) do |selected_gem|
  gem_path = Gem.source_index.specification(selected_gem).full_gem_path
  %x{open -a TextMate #{gem_path}}
end</pre></div>
        </td></tr></table><p>Honestly, that’s it! Bung that in a command using Textmate’s Bundle Editor and assign it a key (I gave it cmd-shift-G, as I don’t regularly search backwards).</p>
        <p><img src="http://smartbomb.com.au/assets/2008/2/1/open_a_gem-1.jpg" alt="" /></p>
        <p>Double click on one and you’re golden… neat.</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/Pk0lzpLEVLE" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2008/01/de-bulk-your-gem-threshold</id>
    <title type="html">de-bulk your gem threshold</title>
    <published>2008-01-27T02:33:00Z</published>
    <updated>2008-09-01T18:05:38Z</updated>
    <link href="http://smartbomb.com.au/2008/01/de-bulk-your-gem-threshold" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>At <a href="http://workatjelly.com/">Jelly Sydney</a> last Friday, I went to see if my <a href="http://merbivore.com">merb</a> gems were up to date. You know:</p><table class="highlighttable"><tr><td class="linenos"><pre>1
2
3
4
5
6</pre></td><td class="code"><div class="highlight"><pre>$ gem list --remote

*** REMOTE GEMS ***

Updating metadata for 114 gems from http://gems.rubyforge.org
...</pre></div>
        </td></tr></table><p>Each dot was taking aages, and there were to be one hundred and fourteen of the blighters!</p>
        <h2>In a nutshell</h2>
        <p>The rubygem server seemed to be having issues serving up incremental metadata. Until the rubygems server got back on its feet, I set my bulk threshold to a lower value:</p><table class="highlighttable"><tr><td class="linenos"><pre>1</pre></td><td class="code"><div class="highlight"><pre>echo :bulk_threshold: 1 &gt;&gt; ~/.gemrc</pre></div>
        </td></tr></table><p>I won’t leave it there, because it could impact the overall rubygem system’s performance (well maybe if everyone decided to do this all the time).</p>
        <h2>Detailure</h2>
        <p>There were about seven peoples on the <a href="http://nerfpalace.org/">NerfPalace Wifi</a> by this stage, so it was only natural to ask:</p>
        <p>Lachie: “Hey <a href="http://toolmantim.com">Tim</a>, is the network slow?”</p>
        <p>Tim: “Nah aah, girlfriend. You slow. Or yo gems are slow, biatch.”</p>
        <p>Well! It turns out that Tim had noticed the same thing and had started digging into the very source code of gems in search of an answer.</p>
        <h2>Teh Pwobwem</h2>
        <p>In order not to overtax the rubygem servers’ bandwidth, gem first finds out how many of its cached metadata are out of date. If the number is greater than an arbitrary threshold, it performs a bulk update in which <strong>all</strong> the metadata is updated at once.</p>
        <p>If the number is below the threshold, each metadatum is fetched and updated individually (<strong>incrementally</strong> you might say).</p>
        <p>By default, this number is 1000. Say each update was taking a second and there were 999 gems to update, this process would take more than a quarter of an hour. Presumably the average case is much better than this, but on Friday, each increment of the update was taking <em>forever</em>.</p>
        <p>The complete source_cache is currently ~850k gzipped. Although in aggregate this could cost the rubygems people a fair bit of bandwidth, it would never take 15 minutes on today’s broadband.</p>
        <p>What we needed was some way of forcing the bulk update, which at the time was much faster than the alternative. The mechanism for this is not very clear, so we got by by hacking the code.</p>
        <h2><span class="caps">HOWTO</span></h2>
        <p>Thankfully, there is a better way or changing the threhold! Although its not well documented or, well, documented at all, you can set the <code>bulk_threshold</code> variable in the .gemrc file kept in your home directory. Its <span class="caps">YAML</span>, y’know:</p><table class="highlighttable"><tr><td class="linenos"><pre>1</pre></td><td class="code"><div class="highlight"><pre>:bulk_threshold: 1</pre></div>
        </td></tr></table><p>See that colon out the front of the bulk_threshold key? Its because its a symbol once it gets inside the ruby.</p>
        <p>As I mentioned above, its probably not good manners to leave your threshold at 1, since the authors have built the system in a certain way (even if its not always optimal) and we’re not paying the rubygem bandwidth fees. Just think, it’d be terrible for The Authors to chuck a Zed and shut rubygems down!</p>
        <p>Hooray for Rubygems!</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/ENXZ_lDqpos" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2007/09/roro-sydney-talk-drying-up-your-views</id>
    <title type="html">RORO Sydney Talk - DRYing up your views</title>
    <published>2007-09-30T06:55:00Z</published>
    <updated>2008-09-01T18:05:37Z</updated>
    <link href="http://smartbomb.com.au/2007/09/roro-sydney-talk-drying-up-your-views" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>Last <a href="http://rubyonrails.com.au/2007/9/4/sydney-september-2007-meetup"><span class="caps">RORO</span> Sydney meetup</a> I did a talk on DRYing up your views.</p>
        <p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"><param name="movie" value="http://www.viddler.com/player/4ff82d29/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/4ff82d29/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler" /></object></p>
        <p>I was very pleased with how it went – this really does get easier with practice! The first couple of slides were dropped, but you didn’t miss much of note :)</p>
        <p>We’re really starting to refine the workflow for recording talks and I’m planning a write up of our experiences so far.</p>
        <p>Big thanks to Tim Lucas for putting this months’ ’casts together.</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/bmElkbRW_BA" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2007/09/logeye-a-rails-log-gui</id>
    <title type="html">Logeye - a rails log gui</title>
    <published>2007-09-16T04:40:00Z</published>
    <updated>2008-09-01T18:05:37Z</updated>
    <link href="http://smartbomb.com.au/2007/09/logeye-a-rails-log-gui" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>The Rails log is a very valuable resource. It contains a lot of information and its relatively easy to read.</p>
        <p>However, I find that It doesn’t take long to get pretty sick of scrolling around, visually decoding, not to mention that the ansi covered <span class="caps">SQL</span> is a pain.</p>
        <p>Logeye is my itch-scratcher to make it better and more useful. You point it at either your RAILS_ROOT or directly at a log file, and watch the requests flow past as you develop your app.</p>
        <p><a href="http://www.flickr.com/photos/lachie/1406167948/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1430/1406167948_57c8d136dd.jpg" width="380" height="500" alt="logeye 0.3.5 screenshot" /></a></p>
        <h1>Download</h1>
        <p><a href="http://rails-oceania.googlecode.com/files/Logeye-0.3.6.zip"><img src="http://blog.smartbomb.com.au/assets/2007/9/16/icon_128.jpg" width="128" height="128" alt="logeye icon" /><br /><br />
        Logeye 0.3.6</a></p>
        <h1>Features and problems</h1>
        <ul>
        	<li>In the open dialog you select <code>RAILS_ROOT</code>, not the log file itself.</li>
        	<li>Double click a log entry to open the corresponding controller file in your editor (set in preferences)</li>
        	<li>You can set window alpha, and make the windows float above other apps (set in preferences)</li>
        	<li>The zoom + does something useful.</li>
        </ul>
        <h1>Upcoming Features</h1>
        <ul>
        	<li>filtering, searching</li>
        	<li>-smarter opening.-</li>
        	<li>refined log details view with visual distinction for each kind of line.</li>
        	<li>easy copying of <span class="caps">SQL</span>.</li>
        	<li>easy opening of files referred to in backtraces.</li>
        	<li>backtrace filtering.</li>
        </ul>
        <h1>update 1 2007/08/19</h1>
        <p>Released Logeye 0.3</p>
        <p>changes:</p>
        <ul>
        	<li>refined look</li>
        	<li>ability to open log files directly</li>
        	<li>parsing of intra-request fluff</li>
        </ul>
        <h1>update 2 2007/08/19</h1>
        <p>Released Logeye 0.3.5</p>
        <p>changes:</p>
        <ul>
        	<li>now opens nested controllers</li>
        	<li>it remembers which logs it was tailing last time you had it open and reopens them</li>
        	<li>more looks</li>
        </ul>
        <p>Logeye 0.3.6 is a minor bugfix</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/K04ZsTYu6q0" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2007/08/hornsby</id>
    <title type="html">Hornsby</title>
    <published>2007-08-29T04:49:00Z</published>
    <updated>2008-09-01T18:05:37Z</updated>
    <link href="http://smartbomb.com.au/2007/08/hornsby" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>Scenarios look like:</p><table class="highlighttable"><tr><td class="linenos"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15</pre></td><td class="code"><div class="highlight"><pre>scenario :apple do
  @apple = Fruit.create! :species =&gt; 'apple'
end

scenario :orange do
  @orange = Fruit.create! :species =&gt; 'orange'
end

scenario :fruitbowl =&gt; [:apple,:orange] do
  @fruitbowl = FruitBowl.create! :fruit =&gt; [@apple,@orange]
end

scenario :kitchen =&gt; :fruitbowl do
  @kitchen = Kitchen.create! :fruitbowl =&gt; @fruitbowl
end</pre></div>
        </td></tr></table><p>By default, these are loaded from <code>RAILS_ROOT/spec/hornsby_scenarios.rb</code></p>
        <p>…and you use them in specs like:</p><table class="highlighttable"><tr><td class="linenos"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19</pre></td><td class="code"><div class="highlight"><pre>describe Fruit, "@apple" do
  before do
    hornsby_scenario :apple
  end
  
  it "should be an apple" do
    @apple.species.should == 'apple'
  end
end

describe FruitBowl, "with and apple and an orange" do
  before do
    hornsby_scenario :fruitbowl
  end
  
  it "should have 2 fruits" do
    @fruitbowl.should have(2).fruit
  end
end</pre></div>
        </td></tr></table><h1>Setup</h1>
        <p>Install the plugin:</p>
        <pre><code>
./script/plugin install http://rails-oceania.googlecode.com/svn/lachiecox/hornsby
</code></pre>
        <p>Or piston:</p>
        <pre><code>
piston import http://rails-oceania.googlecode.com/svn/lachiecox/hornsby vendor/plugins/hornsby
</code></pre>
        <p>Add the following to <code>spec_helper.rb</code></p><table class="highlighttable"><tr><td class="linenos"><pre>1
2
3
4
5
6
7
8</pre></td><td class="code"><div class="highlight"><pre># by default this loads scenarios from RAILS_ROOT/spec/hornsby_scenarios.rb
Hornsby.load

Spec::Runner.configure do |config|
  ...
  
  config.include(HornsbySpecHelper)
end</pre></div>
        </td></tr></table><h1>Advanced Usage</h1>
        <p>Its just ruby, right? So go nuts:</p><table class="highlighttable"><tr><td class="linenos"><pre>1
2
3
4
5
6</pre></td><td class="code"><div class="highlight"><pre>1.upto(9) do |i|
  scenario("user_#{i}") do
    user = User.create! :name =&gt; "user#{i}"
    instance_variable_set("@user_#{i}",user)
  end
end</pre></div>
        </td></tr></table><h1>Rake</h1>
        <p>If you’d like simply to load your scenarios into a database, use the rake task like so:</p>
        <pre><code>
$ rake hornsby:scenario RAILS_ENV=test SCENARIO=fruitbowl
</code></pre>
        <h1><span class="caps">TODO</span></h1>
        <ul>
        	<li>Make transactional for speed.</li>
        	<li>Add scenario namespaces for better organisation.</li>
        	<li>Detect scenario cycles.</li>
        </ul>
        <h1>Credits</h1>
        <p><a href="mailto:lachie@smartbomb.com.au">Lachie Cox</a></p>
        <p>The code is based on Err’s code found in <a href="http://errtheblog.com/post/7708">this post</a></p>
        <h1>License</h1>
        <p><span class="caps">MIT</span>, see <span class="caps">LICENCE</span></p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/LLZ_ecKvp70" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2007/08/hax-day-at-lachie-s</id>
    <title type="html">Hax Day at Lachie's</title>
    <published>2007-08-27T13:07:00Z</published>
    <updated>2008-09-01T18:05:35Z</updated>
    <link href="http://smartbomb.com.au/2007/08/hax-day-at-lachie-s" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <h1>seesaw</h1>
        <p>As you’ve probably heard already, <a href="http://blog.allen.com.au/2007/8/21/seesaw-restarting-your-mongrels-with-zero-downtime">Matt</a> and <a href="http://synaphy.com.au/2007/8/20/seesaw">Max</a> built a sweet little gem called seesaw. It allows zero-downtime, zero-request loss restarting of mongrel clusters. They put their heads together and wrought it before our eyes. I don’t think they noticed anything but the code all day :)</p>
        <p><a href="http://www.flickr.com/photos/lachie/1182056976/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1099/1182056976_b2e03a9759_m.jpg" width="240" height="158" alt="Hax Day - team seesaw" /></a></p>
        <pre><code>
gem install seesaw
</code></pre>
        <h1>javascripter</h1>
        <p><a href="http://the.railsi.st/2007/8/22/javascripter-organize-your-javascript">Pat</a> knocked up a javascript version of his “Styler” plugin. It allows you to include controller- or action-specific javascript in your views. Very useful stuff, as it can add another dimension to your javascripting, and the polish you apply to them.</p>
        <h1>numbr5</h1>
        <p><code>numbr5</code> got some love from Martin and Harry. They added</p>
        <table>
        	<tr>
        		<td> <strong>command</strong> </td>
        		<td> <strong>action</strong> </td>
        	</tr>
        	<tr>
        		<td> <code>?ri [term]</code> </td>
        		<td> look up term with <code>ri</code>, n5 will send a pm to you with the results. </td>
        	</tr>
        	<tr>
        		<td> <code>?bs [someone]</code> </td>
        		<td> ahem, bitchslap <code>someone</code>, you know, when you need to. </td>
        	</tr>
        </table>
        <h1>Duke</h1>
        <p>Our perennial favourite web based dukebox “duke” was dusted off by Nick and Dylan, and taught to sing. Well almost. They tried to get it using <a href="http://raop.rubyforge.org/">net/raop</a> but the new airport expresses weren’t really bedded down. Then icecast was attempted. Next Hax day, eh boys?</p>
        <h1>odds and ends</h1>
        <p>I made a few tweaks to <a href="http://faces.rubyonrails.com.au">roro faces</a>, while other guys just soaked up the knowledge, vibe and brownies.</p>
        <h1>afterword</h1>
        <p>Some guys stayed around for lovely curry made by Lone.</p>
        <p><a href="http://www.flickr.com/photos/lachie/1181196651/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1183/1181196651_3286d93721_m.jpg" width="240" height="158" alt="Hax Day - the stayers" /></a></p>
        <p>We’re hoping to have many more Hax Days over the coming months, and I think they’ll become a catalyst for more and more cool, useful stuff.</p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/gJlKX17w8Aw" height="1" width="1" /></div></content>
  </entry>
  <entry>
    <id>tag:smartbomb.com.au,2009-02-15:/2007/08/patrick-crowley-at-roro-sydney</id>
    <title type="html">Patrick Crowley at roro Sydney</title>
    <published>2007-08-12T05:26:00Z</published>
    <updated>2008-09-01T18:05:35Z</updated>
    <link href="http://smartbomb.com.au/2007/08/patrick-crowley-at-roro-sydney" hreflang="en" rel="alternate" type="text/html" />
    <content type="xhtml" xml:base="http://smartbomb.com.au/" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">
        <p>Well whaddaya know? The second roro Sydney July presentation video has dropped. This time it’s Patrick Crowley from SD Ruby, San Diego talking about his two latest plugins, Headliner and Styler</p>
        <p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"><param name="movie" value="http://www.viddler.com/player/60686700/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/60686700/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler" /></object></p>
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Smartbomb/~4/TR7zPyQ-J_M" height="1" width="1" /></div></content>
  </entry>
</feed>
