<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:interblah.net,2008-06-01:kind/blog</id>
  <title>interblah.net - blog</title>
  <updated>2008-06-01T13:37:19+00:00</updated>
  <entry>
    <title>accessing-rdoc-fast-using-quicksilver</title>
    <id>tag:interblah.net,2009-06-10:/accessing-rdoc-fast-using-quicksilver</id>
    <updated>2009-06-15T11:32:50+00:00</updated>
    <published>2009-06-10T10:32:38+00:00</published>
    <link href="http://interblah.net/accessing-rdoc-fast-using-quicksilver"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Accessing RDoc fast using Quicksilver&lt;/h1&gt;

&lt;p&gt;Inspired by &lt;a href="http://mocra.com/2009/04/24/accessing-rails-documentation-fast/"&gt;this&lt;/a&gt;, but prefering &lt;a href="http://docs.blacktree.com/quicksilver/what_is_quicksilver"&gt;Quicksilver&lt;/a&gt; to &lt;a href="http://www.obdev.at/products/launchbar/index.html"&gt;LaunchBar&lt;/a&gt;, I hacked up a neat little way to browse the excellent &lt;a href="http://railsapi.com/"&gt;RailsApi&lt;/a&gt; docs using a Quicksilver trigger. It's pretty simple to setup, and most of the credit goes to the &lt;a href="http://mocra.com/2009/04/24/accessing-rails-documentation-fast/"&gt;original post&lt;/a&gt; and &lt;a href="http://coelomic.wordpress.com/2006/01/02/quicksilver-tips/"&gt;this trigger tutorial&lt;/a&gt;. Here's how to do it:&lt;/p&gt;

&lt;p&gt;As a bonus, you can also &lt;a href="#action"&gt;install this as an action&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Download the docs&lt;/h2&gt;

&lt;p&gt;Download the appropriate RDoc zip from &lt;a href="http://railsapi.com/"&gt;RailsApi&lt;/a&gt;. Here's what the interface looks like:&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/railsapi.png" alt="Selecting the rdoc to include in the downloaded RailsApi bundle"/&gt;&lt;/p&gt;

&lt;p&gt;I chose basically everything, and I've unzip mine into &lt;code&gt;~/Sites/rdoc&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;Create a virtual host&lt;/h2&gt;

&lt;p&gt;Next, we need some way of accessing the documentation. You can, of course, just double click the &lt;code&gt;index.html&lt;/code&gt; file in the unzipped directory, but some of the later steps don't seem to like &lt;code&gt;file://&lt;/code&gt; urls, so I've set up a really simple apache virtual host, using a tool I stole from &lt;a href="http://chrisroos.co.uk"&gt;Chris Roos&lt;/a&gt; called &lt;a href="http://github.com/lazyatom/hostess"&gt;hostess&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo gem install hostess
sudo hostess create rdoc.local /Users/james/Sites/rdoc
chmod -R a+r /Users/james/Sites/rdoc
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will create a new virtual host for our RDoc, so we can access it using http://rdoc.local. Note that you must ensure that Apache can actually serve those files by making them readable by everyone.&lt;/p&gt;

&lt;p&gt;It's worth visiting the new virtual host now (http://rdoc.local) to make sure that it's all working.&lt;/p&gt;

&lt;h2&gt;Add the Quicksilver trigger&lt;/h2&gt;

&lt;p&gt;Following the instructions &lt;a href="http://coelomic.wordpress.com/2006/01/02/quicksilver-tips/"&gt;here&lt;/a&gt;, it's pretty simple to setup a custom keystroke trigger. First, copy this url:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;http://rdoc.local/?q=***
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then open Quicksilver preferences (activate Quicksilver via whatever trigger you've set up, then type cmd+,), and choose the triggers tab&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/triggers.png" alt="The Quicksilver triggers interface"/&gt;&lt;/p&gt;

&lt;p&gt;Click on the + at the bottom to add a new hotkey&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/hotkey.png" alt="Adding a hotkey"/&gt;&lt;/p&gt;

&lt;p&gt;Double click on the new entry, and you'll see this window drop down:&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/new_trigger.png" alt="Setting the trigger"/&gt;&lt;/p&gt;

&lt;p&gt;Now, &lt;em&gt;paste&lt;/em&gt; in the url from above. You should see it populate the fields of the new trigger panel (though yours probably won't say 'ruby method' at the bottom, it's important that there is some text in there):&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/paste_in.png" alt="Pasting in the trigger url"/&gt;&lt;/p&gt;

&lt;p&gt;Finally, you'll want to set a hotkey for the trigger. I've chosen cmd+alt+ctrl+R, but you can choose whatever you like. Double click on your trigger under the 'Trigger' column, and you'll see this panel:&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/key.png" alt="Setting the hotkey"/&gt;&lt;/p&gt;

&lt;p&gt;Click on the 'edit' button, and then press all the keys for your trigger keystroke.&lt;/p&gt;

&lt;p&gt;Now you're good to go. Hit your trigger, then type the method name (or partial match), and hit enter.&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/rdoc_quicksilver/quicksilver.png" alt="Using the trigger"/&gt;&lt;/p&gt;

&lt;p&gt;Boom - your local Ruby documentation will be opened, with the search performed.&lt;/p&gt;

&lt;p&gt;&lt;a name="action"&gt;&lt;/p&gt;

&lt;h2&gt;Installing as a Quicksilver action&lt;/h2&gt;

&lt;p&gt;Another way of doing is is using Quicksilver actions. This lets you type some text, then hit tab and type 'rdoc', and then hit enter to perform your search. As you can see, the flow is flipped around a bit, but some people might prefer it this way. Open Script Editor, and paste in this script:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;using terms from application "Quicksilver"
    on process text query
        set rdoc_url to "http://rdoc.local/?q=" &amp;amp; query
        tell application "Finder"
            open location rdoc_url
        end tell
    end process text
end using terms from
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Save this script as 'RDoc' in &lt;code&gt;~/Library/Application Support/Quicksilver/Actions&lt;/code&gt;, and restart Quicksilver. Double Boom.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>freeagent-widget</title>
    <id>tag:interblah.net,2009-04-22:/freeagent-widget</id>
    <updated>2009-04-26T13:24:59+00:00</updated>
    <published>2009-04-22T08:33:04+00:00</published>
    <link href="http://interblah.net/freeagent-widget"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;FreeAgent Widget for Mac Dashboard&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://lazyatom.com"&gt;Going freelance&lt;/a&gt; has introduced me to a whole bunch of new chores and challenges, two of which are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;figuring out how to deal with the legal and financial side of being a company, and&lt;/li&gt;
&lt;li&gt;keeping track of how I spend my time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thankfully, there's a tool which seems to hit the spot in terms of power and simplicity - &lt;a href="http://www.freeagentcentral.com?referrer=31h0wcs9"&gt;FreeAgent&lt;/a&gt;. It seems to strike a great balance between gather all the information about expenses, payroll, taxes, invoices, timesheets and bills, whilst not requiring me to study accountancy to make progress.&lt;/p&gt;

&lt;p&gt;Anyway, on my latest project (working with &lt;a href="http://newleaders.com"&gt;New Leaders&lt;/a&gt; via &lt;a href="http://gofreerange.com"&gt;Free Range&lt;/a&gt;), I'm tracking my time in a relatively detailed way, and I thought it would be good to make use of the &lt;a href="http://www.freeagentcentral.com/tour/time-tracking?referrer=31h0wcs9"&gt;timesheet functionality&lt;/a&gt; that I'm already paying for. But, it's a pain to go to the website every time I need to track a task. So:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/lazyatom/freeagent-widget"&gt;&lt;img src="http://interblah.net/assets/freeagent-widget-1.2.png" alt="FreeAgent Timesheets Widget"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://interblah.net/assets/FreeAgent-1.2.zip"&gt;Download FreeAgent Widget 1.2 here&lt;/a&gt;. This is a Mac Dashboard widget, and so only works on Mac OS X.&lt;/p&gt;

&lt;p&gt;It's fairly simple, functionally, but covers everything I need. Once you fill in your &lt;a href="http://www.freeagentcentral.com?referrer=31h0wcs9"&gt;FreeAgent&lt;/a&gt; details, it will load your projects, and choosing a project will load the available tasks for that project. Hit the big middle button to start/pause timing, and then clicking "Post" will post that time to your account. I've added a few neat little tricks - try double-clicking the time and typing "1h30", for example.&lt;/p&gt;

&lt;p&gt;It's not hugely sophisticated - you can't manage your existing timesheets, or add a timesheet for another day - but clicking the 'timeslips' text will take you straight to your timesheets on the site should you need that.&lt;/p&gt;

&lt;p&gt;I hope it's useful for some people, and of course, since it's &lt;a href="http://github.com/lazyatom/freeagent-widget"&gt;on GitHub&lt;/a&gt; you're free to fork and improve it. I'm also keen to try the new &lt;a href="http://github.com/lazyatom/freeagent-widget/issues"&gt;github issues&lt;/a&gt; feature if you're having any problems.&lt;/p&gt;

&lt;h2&gt;Updates&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;v1.2 - now lets you add a comment to your timeslip, to help keep track of the specifics of what you're working on&lt;/li&gt;
&lt;li&gt;v1.1.1 - now only shows 'Active' projects. Great suggestion, folks. &lt;a href="http://github.com/lazyatom/freeagent-widget/issues"&gt;Keep 'em coming!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Thanks for the &lt;a href="http://freeagentcentral.com/central/free-time-tracking-widget"&gt;mention on the FreeAgent blog&lt;/a&gt; :)&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>gem-this</title>
    <id>tag:interblah.net,2009-04-06:/gem-this</id>
    <updated>2009-04-06T12:26:20+00:00</updated>
    <published>2009-04-06T12:14:18+00:00</published>
    <link href="http://interblah.net/gem-this"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Gem This&lt;/h1&gt;

&lt;p&gt;Most of the time, I don’t set out to write a gem.&lt;/p&gt;

&lt;p&gt;But, sometimes, after a bit of time (which could be days, weeks or months) spent working on some code, I might decide that I have something worth making a gem.&lt;/p&gt;

&lt;p&gt;It seems like many (if not all) of the existing gem-tools do some things that don't really thrill me. Either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They add themselves as a dependency, meaning that when someone installs my gem, they must install the gem-tool&lt;/li&gt;
&lt;li&gt;They expect to be used at the very start of development, creating a directory structure and imposing opinions left, right and centre&lt;/li&gt;
&lt;li&gt;Despite the "bonus functionality" of automatically uploading a website and blogging for me, the obscure what's actually going on&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This doesn't suit the way I work, at all. I don't want to force anyone to download anything other than the code that is useful to them, and I already have my project set up the way I like. I just want to turn this library into a gem!&lt;/p&gt;

&lt;h2&gt;What I Want&lt;/h2&gt;

&lt;p&gt;My code is already there; it's in an appropriate set of folders, and probably has existing Rake tasks. All that I'm missing is the ability to build the gem, maybe push it to RubyForge, and build the RDoc. Perhaps I'm storing the code on github, so producing a &lt;code&gt;.gemspec&lt;/code&gt; file is good too. And, most importantly, I want to be able to hack it to suit each project, without any further interference or opinionation.&lt;/p&gt;

&lt;p&gt;It's simple enough to achieve this; all you really need is a few standard tasks in your &lt;code&gt;Rakefile&lt;/code&gt;. So, I wrote a little tool to spit some fairly standard and easy-to-understand code into an existing &lt;code&gt;Rakefile&lt;/code&gt; on my behalf. If I already have tests (or specs), it will produce a simple task to run those, and if there's a &lt;code&gt;bin&lt;/code&gt; directory it will hook that up too, but that's pretty much it.&lt;/p&gt;

&lt;p&gt;It's called &lt;a href="http://github.com/lazyatom/gem-this"&gt;gem-this&lt;/a&gt;; fork at will.&lt;/p&gt;

&lt;p&gt;It's definitely not for everybody - I'm sure plenty of people get lots of mileage out of the existing tools and having a generated, standard structure for their gem code. I just don't find it very useful, personally.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>tdd-and-the-implementations-it-might-drive</title>
    <id>tag:interblah.net,2009-02-27:/tdd-and-the-implementations-it-might-drive</id>
    <updated>2009-02-27T17:01:45+00:00</updated>
    <published>2009-02-27T12:18:06+00:00</published>
    <link href="http://interblah.net/tdd-and-the-implementations-it-might-drive"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;TDD and the implementation it might drive&lt;/h1&gt;

&lt;p&gt;Speaking with &lt;a href="http://lukeredpath.co.uk"&gt;Luke&lt;/a&gt;, I just had a thought about Test Driven Development: &lt;/p&gt;

&lt;p&gt;&lt;em&gt;it pushes implementation to parts of the application where developers are most proficient at testing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Our concrete example here is a signup process, which has a number of steps that might be presented in a different order (a 'track') depending on what's more relevant to the visitor signing up.&lt;/p&gt;

&lt;h2&gt;The simplest implementation&lt;/h2&gt;

&lt;p&gt;I feel like the simplest way to implement this is have a single, large form posting updates to the account, and present them in different orders accordingly. Certainly there could be some validation issues as the record is populated over a number of different updates, but I think in our case, that is fine.&lt;/p&gt;

&lt;p&gt;I'll state right now that I've no evidence that this would be the actual simplest implementation; that's just my hunch, and I could be wrong.&lt;/p&gt;

&lt;h2&gt;Running away from the view&lt;/h2&gt;

&lt;p&gt;However, this pushes most of the logic around the presentation of the different signup 'tracks' into Javascript, and away from our beloved Ruby and &lt;a href="http://www.thoughtbot.com/projects/shoulda/"&gt;shoulda&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I can't speak for Luke, but Javascript testing is something I don't have a wealth of experience in. Worse still, we would probably want to include integration tests, pushing us towards &lt;a href="http://seleniumhq.org/"&gt;Selenium&lt;/a&gt; or another browser-driving mechanism. I've not had enough positive experience writing Selenium tests to want to add them to our codebase without hesitating.&lt;/p&gt;

&lt;p&gt;And so we're torn. We want to write tests, but we want to write tests that we know are good. And we've got the most experience, and the most comfort, writing tests in Ruby using test/unit and shoulda. &lt;/p&gt;

&lt;h2&gt;A local minimum&lt;/h2&gt;

&lt;p&gt;Here's the crux: if we're driving the implementation by writing tests, and we are only really comfortable writing tests using shoulda, this will ultimately drive us away from a Javascript-centric solution, towards modelling signups explicitly through the controller and model. &lt;/p&gt;

&lt;p&gt;So while we might end up with a pretty simple implementation that satisfies our sets, this might be a &lt;em&gt;local minimum&lt;/em&gt; complexity.&lt;/p&gt;

&lt;p&gt;I think the lesson here is that we need to become competent (and indeed fluent) in several different testing mechanisms if we're going to be able to effectively arrive at simple implementations. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you only have a hammer, everything looks like a nail&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Time to start learning some new testing techniques, I think.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://interblah.net/leave-a-comment"&gt;leave-a-comment&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>rails-underground</title>
    <id>tag:interblah.net,2009-02-25:/rails-underground</id>
    <updated>2009-02-25T16:01:51+00:00</updated>
    <published>2009-02-25T15:28:25+00:00</published>
    <link href="http://interblah.net/rails-underground"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Rails Underground&lt;/h1&gt;

&lt;p&gt;It's weird now. I think once you've been involved in putting on a conference, or maybe any event, you start to feel a bit more precious about your ideas than you did when you were just an attendee.&lt;/p&gt;

&lt;p&gt;Anyway.&lt;/p&gt;

&lt;p&gt;So &lt;a href="http://www.rails-underground.com"&gt;Rails Underground&lt;/a&gt; officially opened its doors for registration, and while I think the name is great, I'm less than excited:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;ul&gt;
    &lt;li&gt;Very Early Bird Tickets: £160 - strictly first come, first served, and for a limited time only!&lt;/li&gt;
    &lt;li&gt;Early Bird Tickets: £180 - book before 25th June. 140 tickets will be made avaiable.&lt;/li&gt;
    &lt;li&gt;Standard Tickets: £240.&lt;/li&gt;
    &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;From what I've heard, in order to cover the venue, speaker expenses, equipment, swag and meals, the conference is going to need to raise around £23,000 by selling around 150 tickets. The organiser has said that he doesn't plan to make a profit, and I've no reason to doubt that at all. But really - that much?&lt;/p&gt;

&lt;h2&gt;Culture Clash&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://twictur.es/i/1249361141.gif" alt="Ruby Manor looked great, I wanted to go for an intentionally different style, so not to clash."/&gt;&lt;/p&gt;

&lt;p&gt;I don't think Murray would disagree with this, so let me say now: &lt;strong&gt;the &lt;a href="http://rubymanor.org"&gt;Ruby Manor&lt;/a&gt; model is there for the taking&lt;/strong&gt;. We have no desire to establish a monopoly on &lt;em&gt;conferences that don't cost any more than they need to&lt;/em&gt;. If someone else was to organise an event based on the ideas (either the implementation, or just the principles) behind Ruby Manor, we would be &lt;em&gt;delighted&lt;/em&gt;. And, I think, so would a &lt;a href="http://search.twitter.com/search?q=ruby+manor"&gt;bunch of other people&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;The point&lt;/h2&gt;

&lt;p&gt;The point of Ruby Manor wasn't to do something cheaply. It wasn't because we don't see the value in conferences. It definitely wasn't because we are tight with our cash!&lt;/p&gt;

&lt;p&gt;The point was that we didn't understand why conferences needed to be as expensive or opaque as they were. &lt;/p&gt;

&lt;p&gt;We didn't see the point in the usual tricks of giving us bags and t-shirts that we were probably never going to use, or "early bird" ticket discounts. We particularly didn't enjoy the pot-luck of choosing sessions based only on the speaker's abstract, only to find out that either they'd changed their mind, or that it turns out they weren't going to cover the stuff we thought was interesting. &lt;/p&gt;

&lt;p&gt;We didn't see the value in providing flaky wifi when we saw how much it was going to cost the attendees; I can live without the internet for a day. We looked at confreaks to do the video, but again, the value wasn't there for the attendees, when they can get 90% of it by simply pointing a camera at the speaker and letting it roll (that said, I do think &lt;a href="http://rubymanor.org/videos/"&gt;our videos&lt;/a&gt; look great.)&lt;/p&gt;

&lt;p&gt;None of that stuff really matters - it's not what a conference is about. &lt;/p&gt;

&lt;p&gt;Conferences are about creating a shared space, listening to interesting ideas and presenting your own, either formally or informally. Meeting up with a group of like-minded people should be a &lt;em&gt;no-brainer&lt;/em&gt;, not an expense you need to justify to yourself, your accountant or your boss.&lt;/p&gt;

&lt;h2&gt;Speaker expenses&lt;/h2&gt;

&lt;p&gt;Probably the single most significant argument against stripping conferences like we did is that "people want big-name speakers". Fine, I'm not going to argue against that (or rather, I might, but that's a whole difference debate). Speakers need flights, and hotel rooms, and feeding, and we speakers only eat truffles and fois gras, served floating in a pool of champagne, served in a hat made of gold...&lt;/p&gt;

&lt;p&gt;This isn't cheap, so ticket prices need to be high, right? Well, maybe, but even then, why not expose how much each speaker would cost to bring, and let the attendees decide - based on the speaker's presentation pitch, along with their reputation - if they're willing to foot the bill?&lt;/p&gt;

&lt;p&gt;Woah. I think I just blew my own mind.&lt;/p&gt;

&lt;p&gt;Anyway, I'm digressing. My point here is that there may be way of addressing stuff like paying for big-name speakers in a &lt;em&gt;better&lt;/em&gt; way. We should try to find that way.&lt;/p&gt;

&lt;h2&gt;The Fear&lt;/h2&gt;

&lt;p&gt;There's also the fear, as a conference organiser, that you're going to pay all these deposits, book these flights, hire all this equipment, and then not going to sell enough tickets to cover it. You're going to end up out of pocket. The fear. The mind-killer. The little death that brings total oblivion.&lt;/p&gt;

&lt;p&gt;I've got no argument against that, suffice to say that the best way to reduce that kind of risk is by &lt;strong&gt;avoiding any unnecessary expenses in the first place&lt;/strong&gt;. Simple.&lt;/p&gt;

&lt;h2&gt;Please, take my conference&lt;/h2&gt;

&lt;p&gt;Now maybe the rest of the world &lt;em&gt;wants&lt;/em&gt; the t-shirt. Maybe they expect a conference to be a certain way, and so to pay a certain price for it. And that's fine, honestly. But what I hoped we demonstrated is that &lt;strong&gt;lots&lt;/strong&gt; of people &lt;strong&gt;don't&lt;/strong&gt; care about the trappings of a typical conference. Certainly to run the infrastructure of a RailsConf or a RailsBizConf takes a lot of money. But is it really important to do that?&lt;/p&gt;

&lt;p&gt;What I hope we might've shown is that conferences can be put together in a different, and I would say better way, and that maybe other conferences might take that on board. Maybe some have... I'm not sure, but I hope nobody has avoided doing so because they didn't want to step on 'our' toes. &lt;/p&gt;

&lt;p&gt;Ruby Manor is owned by the people who contributed - everyone on the mailing list, everyone who came, and everyone who helped on the day, hell, even everyone who helped drink &lt;a href="http://flickr.com/photos/h-lame/3053086178/"&gt;the bar tab&lt;/a&gt; we ended up with. &lt;/p&gt;

&lt;p&gt;Worrying about adopting some Manor ideology is like the Pope worrying that his sermons might be stepping on Jesus' toes. Not that I'm likening myself to Jesus. I'm not Jesus. I realise that now.&lt;/p&gt;

&lt;h2&gt;I'm almost finished&lt;/h2&gt;

&lt;p&gt;I wish I could've written a shorter blog post, but alas I didn't have the time. Here is the gist:&lt;/p&gt;

&lt;p&gt;If you like t-shirts, the quo is ready to embrace you. &lt;/p&gt;

&lt;p&gt;If you don't, fork Ruby Manor. I think the world &lt;em&gt;might&lt;/em&gt; be better for it.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://interblah.net/leave-a-comment"&gt;leave-a-comment&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>web-services-showing-which-clients-access-them</title>
    <id>tag:interblah.net,2009-02-11:/web-services-showing-which-clients-access-them</id>
    <updated>2009-02-11T10:22:49+00:00</updated>
    <published>2009-02-11T09:59:08+00:00</published>
    <link href="http://interblah.net/web-services-showing-which-clients-access-them"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Discovering interfaces for web services&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://chrisroos.co.uk"&gt;Chris&lt;/a&gt; recently posted an interesting idea - &lt;a href="http://chrisroos.co.uk/blog/2009-02-09-idea-web-services-could-publish-stats-about-the-clients-that-connect-to-them"&gt;maybe web services should disclose information about the clients (and their versions) which access them&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;It’s not always obvious whether a client library is still compatible with the web service it was developed for. I’ve seen this before with flickr libraries and came across it again a couple of weeks ago when playing around with Amazon Simple DB.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and then&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;If the provider was to publish this information (cient name/version, total requests, date of last request and probably some other useful info) then it should be possible to see which libraries still work with the web service. Does anyone do this? Does it actually sound like a sensible idea?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think it sounds like a fine idea, and the primary example that springs to mind is &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;, which links information about the source of each tweet in their web interface. It's a useful piece of information about what tools people are using to interact with the service, and can often be used to 'discover' new (and maybe better) interfaces.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>bad-science</title>
    <id>tag:interblah.net,2009-02-06:/bad-science</id>
    <updated>2009-02-06T11:59:26+00:00</updated>
    <published>2009-02-06T10:44:38+00:00</published>
    <link href="http://interblah.net/bad-science"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Bad Science&lt;/h1&gt;

&lt;p&gt;Last week I had the pleasure of attending &lt;a href="http://www.lse.ac.uk/collections/methodologyInstitute/pdf/bad%20science%20flyer.pdf"&gt;a talk&lt;/a&gt; by &lt;a href="http://www.badscience.net"&gt;Ben Goldacre&lt;/a&gt; with my friend &lt;a href="http://chrisroos.co.uk/"&gt;Chris&lt;/a&gt;, who had also been kind enough to lend me &lt;a href="http://www.amazon.co.uk/Bad-Science-Ben-Goldacre/dp/0007240198/?tag=bs0b-21"&gt;Ben's book&lt;/a&gt; a few months earlier (and apologies to Chris for not returning it sooner). For those who aren't aware of Ben Goldacre, he's been writing for years about "Bad Science", which is in general terms the misrepresentation of science by the popular media, and how this can have a damaging effect on society as a whole.&lt;/p&gt;

&lt;p&gt;If you haven't already read it, I cannot recommend his book highly enough. The gist is so beautifully simple that it should be taught in primary schools: &lt;strong&gt;any statement of fact is only as good as the methodology used to derive it&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;Jeni Barnett is a cretin&lt;/h2&gt;

&lt;p&gt;Take the current mini-storm surrounding &lt;a href="http://www.badscience.net/2009/02/legal-chill-from-lbc-973-over-jeni-barnetts-mmr-scaremongering/"&gt;Jeni Barnett's MMR programme&lt;/a&gt;, where a radio journalist spouts &lt;a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt"&gt;Fear, Uncertainty and Doubt&lt;/a&gt; based on her expertise "as a parent".&lt;/p&gt;

&lt;p&gt;Jeni uses reactionary truisms like "don't follow the herd" to justify planting seeds of doubt about whether or not children should have vaccines (and not just MMR, but any vaccines at all). &lt;/p&gt;

&lt;p&gt;The company behind her show has &lt;a href="http://www.badscience.net/2009/02/legal-chill-from-lbc-973-over-jeni-barnetts-mmr-scaremongering/"&gt;threatened Ben Goldacre legally&lt;/a&gt;, but you can &lt;a href="http://www.wikileaks.org/wiki/Bad_Science%3A_Jeni_Barnett_MMR_and_vaccination_slot_on_LBC_radio,_2009"&gt;listen to the whole thing here&lt;/a&gt; (or as much of it as you can stand before wanting to violently throw your computer against the wall to end the inane bleeting).&lt;/p&gt;

&lt;h2&gt;If this is reason, then bring me my pipe&lt;/h2&gt;

&lt;p&gt;Jeni's argument boils down to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You shouldn't always do what authority figures say &lt;/li&gt;
&lt;li&gt;I have heard bad things about the MMR vaccine&lt;/li&gt;
&lt;li&gt;My child is my responsibility, so it's up to me to decide what happens to it&lt;/li&gt;
&lt;li&gt;So, I'm not going to give my child the MMR.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think you might've skipped a few steps there. Like, do you have the information and tools to evaluate the 'bad things' you've heard? Have you examined the sources of this information, and determined whether or not their reasoning and conclusions are valid? Of course not.&lt;/p&gt;

&lt;p&gt;So if there's merit in not-following-the-herd without any other justification, I'm with you all the way! Everyone says smoking is bad for you, but I'm no sheep - bring me my pipe, and stuff it with fibreglass! I'm sick of all this 5-a-day-and-get-some-exercise advice from the government and the NHS, who are they to tell me what I should be doing? NOW BRING ME MY CAKE SANDWICH! DEEP FRIED!&lt;/p&gt;

&lt;h2&gt;'The Man'&lt;/h2&gt;

&lt;p&gt;There's also this reactionary attitude towards 'Authority', a dark and shadowy cabal which has recently extended its membership to all scientists and 'allopathic' medical professionals in exchange for their utter obedience to &lt;em&gt;The Man&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;Why should we, the &lt;em&gt;glorious public&lt;/em&gt;, believe anything these know-it-all nerd-boffins tell us? The only difference between us them is that they have &lt;em&gt;years of training&lt;/em&gt; and their work is &lt;em&gt;rigorously scrutinised&lt;/em&gt; by other &lt;em&gt;highly-trained people&lt;/em&gt;, and what is that worth? &lt;/p&gt;

&lt;p&gt;Oh, right... hang on...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Science is not an exclusive practice which the public cannot engage with&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;It's just hard work, and we're too lazy to do it when you can buy The Sun every day and get a set of pre-formed 'opinions', and maybe get a free MP3 player with to boot, or turn on the radio and let 'journalists', full of sound and fury, pour bombastic-sounding crap into our ears.&lt;/p&gt;

&lt;p&gt;Jeni: Your show is editorial nonsense, and I would kindly ask you to not only get out of my ears, but stop pouring your idiocy into the minds of others around me too. Please make room for some real, reasoned and researched reporting from reporters who actually care about the effect the media has on the public, and undertake their journalism with respect and humility.&lt;/p&gt;

&lt;h2&gt;You have to actually do some thinking&lt;/h2&gt;

&lt;p&gt;Our right to 'do as we see fit' can only exist when we also rigorously scrutinize each potential course of action. There is nothing wrong with questioning what you are being asked to believe and do, but if you don't do it within a solid mechanism for reasoning and testing your conclusions, then you might as well be mumbling gibberish to ducks in a park.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>on-commenting</title>
    <id>tag:interblah.net,2009-01-16:/on-commenting</id>
    <updated>2009-01-16T14:48:47+00:00</updated>
    <published>2009-01-16T14:36:02+00:00</published>
    <link href="http://interblah.net/on-commenting"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;On Commenting&lt;/h1&gt;

&lt;p&gt;I've been thinking a bit about commenting on blogs. &lt;/p&gt;

&lt;p&gt;I'm sure most people who've spend an appreciable amount of time on the internet, and reading blogs, have found themselves responding to a blog post in the comments, and realising after the fifth paragraph that their epic riposte really doesn't belong in a thread of comments, but as a separate-yet-linked piece of writing itself.&lt;/p&gt;

&lt;p&gt;The question is, how to maintain the relationship between their new post, on their own blog, and the original inspiration for their response. "&lt;a href="http://cruftbox.com/cruft/docs/trackback.html"&gt;Trackback&lt;/a&gt;", I hear you say! Sure, but that has become fodder for spammers, has it not? &lt;/p&gt;

&lt;p&gt;Services like &lt;a href="http://www.disqus.com"&gt;disqus&lt;/a&gt; also aim to tackle this to some extent, but I still feel like I ought to &lt;em&gt;own&lt;/em&gt; my own opinions. Maybe some kind of spam-protected trackback is the way forward? Maybe this is already a solved problem. It's quite possible.&lt;/p&gt;

&lt;h2&gt;Huh.&lt;/h2&gt;

&lt;p&gt;As an aside, this was inspired by my &lt;a href="http://interblah.net/rails-biz-conf"&gt;other post about RailsBizConf&lt;/a&gt;. I wanted to respond to Obie in more detail than the questionnaire's text input for 'other' allowed, but believe with increasingly fervour that this, &lt;a href="http://interblah.net"&gt;interblah.net&lt;/a&gt;, my own &lt;em&gt;grand palace of thought-stuff and nonsense&lt;/em&gt;, should be the repository for my opinions. After all, where else can I revise my version of the truth with utter impunity?&lt;/p&gt;

&lt;p&gt;I wouldn't want Obie to think that, by making &lt;a href="http://interblah.net/rails-biz-conf"&gt;that&lt;/a&gt; post on my blog, I felt that something &lt;em&gt;ought&lt;/em&gt; to be said on the topic of conference prices. Rather, I think this is where my comment should live - in a place where it can be easily ignored :)&lt;/p&gt;

&lt;p&gt;It's too easy for commenting to descend into trolling, spamming and anonymous jibing. I figure if you have an opinion, get yourself a blog and post it there.&lt;/p&gt;

&lt;p&gt;Any comments? ;)&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>rails-biz-conf</title>
    <id>tag:interblah.net,2009-01-16:/rails-biz-conf</id>
    <updated>2009-01-16T14:20:42+00:00</updated>
    <published>2009-01-16T13:00:33+00:00</published>
    <link href="http://interblah.net/rails-biz-conf"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Rails Biz Conf&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://obiefernandez.com"&gt;Obie Fernandez&lt;/a&gt; is attempting to put together a conference for (Rails) business entrepreneurs &lt;a href="http://blog.obiefernandez.com/content/2009/01/railsbizconf-survey.html"&gt;at the moment&lt;/a&gt;, and I wish him the best of luck with it.&lt;/p&gt;

&lt;p&gt;One aspect that really stands out, however, is the price tag. Obie has asked people to state how much they might be willing to spend, and gives options up to &lt;strong&gt;$5000&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Registration price is probably going to be a minimum of $2000 since I would like to book a great venue with top-quality food, conference facilities and amenities. Speakers may receive discounted or waived registration depending on the amount of support we get from sponsors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now, I'm familiar with the justification that conference price tags are easily offset by increased client revenue, but that doesn't automatically mean that conferences &lt;em&gt;should&lt;/em&gt; be expensive.&lt;/p&gt;

&lt;p&gt;Obviously &lt;a href="http://interblah.net/ruby-manor"&gt;my opinions are quite clear&lt;/a&gt; on this subject, but it's worth reiterating. All a conference really needs to do is gather people together in the same space, and provide a set of tools sufficient for them to share ideas. Those tools might be a projector and whiteboards, could be wifi, or could just be &lt;a href="http://www.nickcrossland.co.uk/blog/2008/mashed"&gt;loads of free beanbags&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I don't go to conferences because I want to stay in a luxurious hotel, or eat sumptuous lunches. &lt;strong&gt;I do that anyway, but on my own time ;)&lt;/strong&gt;. This is not to say that I want to be sitting crossed-legged on a splintery floor and eating gruel for lunch, but I think there's a balance to how much of the typical conference trappings we actually need and are worth paying for.&lt;/p&gt;

&lt;h2&gt;Anyway&lt;/h2&gt;

&lt;p&gt;This isn't a rant against Obie's idea - &lt;strong&gt;the conference sounds like a great idea&lt;/strong&gt;, and having launched into that vague sphere myself recently, I would certainly like to pick the brains of the kind of people he's looking to attract. I just don't know if I could ever justify paying $5000 for it, and I wonder if setting the price so high will result in many  smaller business-people finding it difficult to attend.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://interblah.net/rails-biz-conf"&gt;0 comments for rails-biz-conf&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>ruby-manor-videos</title>
    <id>tag:interblah.net,2009-01-16:/ruby-manor-videos</id>
    <updated>2009-01-16T12:49:15+00:00</updated>
    <published>2009-01-16T12:48:52+00:00</published>
    <link href="http://interblah.net/ruby-manor-videos"/>
    <author>
      <name>james</name>
    </author>
    <content type="html">&lt;h1&gt;Ruby Manor Videos&lt;/h1&gt;

&lt;p&gt;Just a quick note - some of the videos for &lt;a href="http://rubymanor.org"&gt;Ruby Manor&lt;/a&gt; are &lt;a href="http://rubymanor.org/videos"&gt;now available&lt;/a&gt;. I've been doing the editing myself, so please forgive any weirdnesses and lack of finesse! While I'm sure confreaks could've done a slightly more polished job, I hope the spirit of our conference (as affordable as possible) justifies itself adequately.&lt;/p&gt;</content>
  </entry>
</feed>
