<?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>benlog.org</title>
  <link rel="alternate" type="text/html" href="http://www.benlog.org" />
  
  <id>http://www.benlog.org/atom.xml</id>
  <updated>2009-10-12T23:02:18Z</updated>
  <subtitle>Ben Vinegar's weblog</subtitle>
 
  
  
  <link rel="self" href="http://feeds.feedburner.com/benlog_org" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
    <title>merb_has_json_flash: JavaScript accessible Flash for Merb</title>
    <link rel="alternate" type="text/html" href="/2009/10/12/merb-has-json-flash/" />
    <id>tag:benlog.org:/2009/10/12/merb-has-json-flash</id>
    <updated>2009-10-12T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      &lt;p&gt;Several months ago, I began using Michael Ivey&amp;#8217;s &lt;a href="http://github.com/ivey/merb_has_flash"&gt;merb_has_flash&lt;/a&gt; gem on &lt;a href="http://www.guestlistapp.com"&gt;Guestlist&lt;/a&gt;. The gem, which provides Rails-like &lt;a href="http://api.rubyonrails.org/classes/ActionController/Flash.html"&gt;flash&lt;/a&gt; accessors to &lt;a href="http://www.merbivore.com"&gt;Merb&lt;/a&gt;, works as advertised, until I wanted to manipulate the flash contents via JavaScript. The use case: setting a success message and then reloading the page, all client-side. It was difficult because, although the Gem stores the flash contents in the user&amp;#8217;s cookies, it&amp;#8217;s stored as a Ruby serialized hash that seems unreadable via JavaScript.&lt;/p&gt;
&lt;p&gt;The solution? A fork called &lt;a href="http://github.com/bentlegen/merb_has_json_flash"&gt;merb_has_json_flash&lt;/a&gt;, which instead of serializing the flash in Ruby, does so using &lt;span class="caps"&gt;JSON&lt;/span&gt;. Now you can set the success message in Ruby or JavaScript, and the behaviour is identical. The only downside is that the flash store is no longer obfuscated, so it&amp;#8217;s user-readable &amp;#8211; not a big deal.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s an example, using the &lt;a href="http://plugins.jquery.com/project/cookie"&gt;jQuery cookie plugin&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script type="text/javascript"&amp;gt;
  $.cookie('flash', JSON.stringify({
      notice: 'Ticket successfully saved.'
    }), { path: '/' }
  );
  window.location.reload();
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Anyways, that&amp;#8217;s it. I hope someone else finds this useful &amp;#8211; although it seems like Merb users are far and few between these days.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=IeU7ec6H1_M:S6_iS7IRN6M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=IeU7ec6H1_M:S6_iS7IRN6M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=IeU7ec6H1_M:S6_iS7IRN6M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=IeU7ec6H1_M:S6_iS7IRN6M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/TUtTT2-5pAs" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Blog now powered by Jekyll</title>
    <link rel="alternate" type="text/html" href="/2009/10/8/blog-now-powered-by-jekyll/" />
    <id>tag:benlog.org:/2009/10/8/blog-now-powered-by-jekyll</id>
    <updated>2009-10-08T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      &lt;p&gt;Huzzah. I&amp;#8217;ve successfully migrated this blog from an ancient version of &lt;a href="http://mephistoblog.com/download"&gt;Mephisto&lt;/a&gt; to &lt;a href="http://wiki.github.com/mojombo/jekyll"&gt;Jekyll&lt;/a&gt;, a static site generator written in Ruby. Since it&amp;#8217;s statically generated, I don&amp;#8217;t need a fancy hosting platform anymore, so I&amp;#8217;ve cancelled my $20/mo &lt;a href="http://www.slicehost.com"&gt;Slicehost&lt;/a&gt; account and begun hosting the content out of a cheap &lt;a href="http://www.dreamhost.com"&gt;Dreamhost&lt;/a&gt; account. Yeah, that Dreamhost.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re thinking of making the move yourself, I&amp;#8217;ve got a couple tips. First off, New Bamboo has an article that goes over &lt;a href="http://blog.new-bamboo.co.uk/2009/2/20/migrating-from-mephisto-to-jekyll"&gt;the migration process&lt;/a&gt;. After that, the biggest pain is preserving inbound links because Mephisto and Jekyll generate their pretty URLs differently. I followed New Bamboo&amp;#8217;s lead and forked &lt;a href="http://github.com/bentlegen/jekyll"&gt;my own version&lt;/a&gt; of Jekyll &lt;a href="http://github.com/bentlegen/jekyll/commit/6a8e3a2c4a69a1a6146dad0367d04fc6f5ad2584"&gt;that patches this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As for the deploy process, I&amp;#8217;ve got it down pretty simple: I build the entire site locally, then &lt;a href="http://henrik.nyh.se/2009/04/jekyll"&gt;rsync the result&lt;/a&gt; to Dreamhost. I&amp;#8217;ve read about some &lt;a href="http://tatey.com/2009/04/29/jekyll-meets-dreamhost-automated-deployment-for-jekyll-with-git.html"&gt;complicated setups&lt;/a&gt; that use GitHub post-commit hooks to have your server check out the latest version and build it in place, but I think rsync does the trick just fine. It also means my Dreamhost account doesn&amp;#8217;t need Ruby, the latest gems, nothing &amp;#8211; just a dumb folder system where I can dump static content. So far, pretty happy about it.&lt;/p&gt;
&lt;p&gt;Now, just to do something about this design &amp;#8230;&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=itwOej6i4bI:ABSw6rRU5Bs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=itwOej6i4bI:ABSw6rRU5Bs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=itwOej6i4bI:ABSw6rRU5Bs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=itwOej6i4bI:ABSw6rRU5Bs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/m4TbhXTs4NI" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>FreshBooks.rb now maintained by Ben Curren</title>
    <link rel="alternate" type="text/html" href="/2009/4/4/freshbooks-rb-now-maintained-by-ben-curren/" />
    <id>tag:benlog.org:/2009/4/4/freshbooks-rb-now-maintained-by-ben-curren</id>
    <updated>2009-04-04T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;I&amp;#8217;ve been late to announce this, but Ben Curren (of &lt;a href="http://outright.com"&gt;Outright&lt;/a&gt;) has been maintaining the &lt;a href="http://github.com/bcurren/freshbooks.rb/tree/master"&gt;canonical copy of FreshBooks.rb&lt;/a&gt; for a few months now. He&amp;#8217;s improved the library ten fold, so if you&amp;#8217;re a FreshBooks/Ruby integrator, I encourage you to take a look.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=yymbNR1GYk0:oUp9Io8iLgw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=yymbNR1GYk0:oUp9Io8iLgw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=yymbNR1GYk0:oUp9Io8iLgw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=yymbNR1GYk0:oUp9Io8iLgw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/Z09lUYiLuL4" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Revised date, datetime helpers for Merb 1.x</title>
    <link rel="alternate" type="text/html" href="/2009/1/31/revised-date-and-datetime-form-helpers-for-merb-1-x/" />
    <id>tag:benlog.org:/2009/1/31/revised-date-and-datetime-form-helpers-for-merb-1-x</id>
    <updated>2009-01-31T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;I&amp;#8217;ve expanded on both mine and Jamie Macey&amp;#8217;s original &lt;a href="http://www.benlog.org/2008/6/29/bare-bones-date-picker-for-merb"&gt;date helper code&lt;/a&gt; to support Merb 1.x, and add a datetime helper to the mix.&lt;/p&gt;
&lt;p&gt;Usage:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;%= form_for @person %&amp;gt;

  &amp;lt;%= date_field :birth_date :label =&amp;gt; 'Birthdate' %&amp;gt;

  &amp;lt;%= datetime_field :birth_date_and_time, :label =&amp;gt; 'Birthdate and time' %&amp;gt;

&amp;lt;% end =%&amp;gt;
&lt;/pre&gt;&lt;p&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You&amp;#8217;ll find the &lt;a href="http://gist.github.com/55584"&gt;code here&lt;/a&gt;, via GitHub. I generally name this file date_field.rb, and stick it in app/helpers.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=JI3tloB2TD4:PMB7mR4QxGQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=JI3tloB2TD4:PMB7mR4QxGQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=JI3tloB2TD4:PMB7mR4QxGQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=JI3tloB2TD4:PMB7mR4QxGQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/45Nmpk0wXzY" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>GitHub Pages for project docs, demos</title>
    <link rel="alternate" type="text/html" href="/2008/12/29/github-pages-for-project-docs-demos/" />
    <id>tag:benlog.org:/2008/12/29/github-pages-for-project-docs-demos</id>
    <updated>2008-12-29T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;Have you seen &lt;a href="http://github.com/blog/272-github-pages"&gt;GitHub Pages&lt;/a&gt;? As of mid-December, &lt;a href="http://github.com"&gt;GitHub&lt;/a&gt; now hosts complete web pages that are backed onto GitHub-hosted Git repositories. To start, just define an alternate ‘gh-pages’ branch for your repo, add your web content and push, and it will appear at yourname.github.com/repo-name. It&amp;#8217;s perfect for small one-off &lt;a href="http://defunkt.github.com/ambition/"&gt;project pages&lt;/a&gt;, or even &lt;a href="http://mojombo.github.com/"&gt;complete blogs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I’ve already migrated my project documentation pages over (see: &lt;a href="http://bentlegen.github.com/abbreviator"&gt;Abbreviator&lt;/a&gt;, &lt;a href="http://bentlegen.github.com/labelize"&gt;Labelize&lt;/a&gt;). I like the idea that these pages are accessible at the same location as their corresponding &lt;a href="http://github.com/bentlegen/abbreviator"&gt;source&lt;/a&gt; &lt;a href="http://github.com/bentlegen/labelize"&gt;code&lt;/a&gt;, with complete revision history, even if my blog is down or – dare I say it – long defunct.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=4ZrH_r0HkD8:PuCBV07JH5Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=4ZrH_r0HkD8:PuCBV07JH5Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=4ZrH_r0HkD8:PuCBV07JH5Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=4ZrH_r0HkD8:PuCBV07JH5Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/LHvnvSHDc9k" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Abbreviator: a jQuery plugin for fitting chunky content</title>
    <link rel="alternate" type="text/html" href="/2008/12/22/abbreviator-a-jquery-plugin-for-fitting-chunky-content/" />
    <id>tag:benlog.org:/2008/12/22/abbreviator-a-jquery-plugin-for-fitting-chunky-content</id>
    <updated>2008-12-22T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;Inside &lt;a href="http://www.freshbooks.com"&gt;FreshBooks&lt;/a&gt; (the application), there&amp;#8217;s a few places where we abbreviate long-ish text with ellipses to make it fit inside small table cells. This is done in &lt;span class="caps"&gt;PHP&lt;/span&gt; by a single function, whose two parameters are a string and the desired character length.&lt;/p&gt;
&lt;p&gt;Of course, not all characters are made equal. We estimate appropriate character lengths as best we can, but it doesn&amp;#8217;t always work. If users have a penchant for typing in capital letters, or use text zoom, our little abbreviating function can fail. And of course, every design change to these areas require new character length settings &amp;#8211; a task that is easily forgotten.&lt;/p&gt;
&lt;p&gt;So, after some sanity checking/brainstorming with my co-workers Taavi and Justin, I put together a little jQuery library for accomplishing this feat in Javascript. It&amp;#8217;s called &lt;a href="http://bentlegen.github.com/abbreviator"&gt;Abbreviator&lt;/a&gt;, and it adjusts for font size, browser rendering differences, padding, and more. Take a look at the &lt;a href="http://bentlegen.github.com/abbreviator"&gt;project page&lt;/a&gt; for more.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s it for me for the year &amp;#8211; Happy holidays!&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=c9qq_2FoZPU:6e64xsAoRpE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=c9qq_2FoZPU:6e64xsAoRpE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=c9qq_2FoZPU:6e64xsAoRpE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=c9qq_2FoZPU:6e64xsAoRpE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/Bz6zqoCQg1o" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Labelize: a jQuery plugin for making big honking labels</title>
    <link rel="alternate" type="text/html" href="/2008/8/21/labelize-a-jquery-plugin-for-making-big-honking-labels/" />
    <id>tag:benlog.org:/2008/8/21/labelize-a-jquery-plugin-for-making-big-honking-labels</id>
    <updated>2008-08-21T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;&lt;a href="http://www.benlog.org/labelize/demo.html"&gt;Labelize&lt;/a&gt; is a handy &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; plugin that lets you give input-containing elements &amp;lt;label/&amp;gt; like properties, so that clicking on the container activates the input inside. The goal? To improve usability by giving hard-to-click input elements like radio buttons and checkboxes &lt;a href="http://www.37signals.com/svn/posts/1103-generous-link-targets-in-the-library"&gt;generous target areas&lt;/a&gt;. Surprisingly, this can&amp;#8217;t be done with a &amp;lt;label/&amp;gt; element alone &amp;#8212; if you want it supported in IE6, that is.&lt;/p&gt;
&lt;p&gt;Say we have the following markup:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;div class="myLabel"&amp;gt;
  &amp;lt;input type="checkbox"/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make the &amp;#8220;myLabel&amp;#8221; div become a label-like container for the checkbox its holding, we simply do the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script&amp;gt;
  $('.myLabel').labelize()
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s it! Now if we click anywhere on &amp;#8220;myLabel&amp;#8221;, the checkbox is clicked &amp;#8212; and its onclick() event is fired too. Huzzah.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;d like to see the plugin in action, I&amp;#8217;ve whipped up &lt;a href="http://www.benlog.org/labelize/demo.html"&gt;a quick project page&lt;/a&gt; with some working examples. Please have a look and let me know what you think.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=HlTGrSSkcjo:1_8VUEslaE8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=HlTGrSSkcjo:1_8VUEslaE8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=HlTGrSSkcjo:1_8VUEslaE8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=HlTGrSSkcjo:1_8VUEslaE8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/sCHn5U59EHw" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Rogers starts re-directing DNS misses</title>
    <link rel="alternate" type="text/html" href="/2008/7/19/rogers-starts-redirecting-dns-misses/" />
    <id>tag:benlog.org:/2008/7/19/rogers-starts-redirecting-dns-misses</id>
    <updated>2008-07-19T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;Beginning some time this past week, &lt;a href="http://www.rogers.com"&gt;Rogers&lt;/a&gt;, the largest &lt;span class="caps"&gt;ISP&lt;/span&gt; in Canada, starting re-routing missed &lt;span class="caps"&gt;DNS&lt;/span&gt; hits to &lt;a href="http://www20.search.rogers.com/search?qo=thisdoesntexist.com&amp;amp;rn=VeL7NT99rNToL2N"&gt;their own branded Yahoo-search page&lt;/a&gt;. Not only is this totally unhelpful and full of irrelevent ads (no, I do not want a Chatelaine subscription, thanks), it also re-writes the attempted &lt;span class="caps"&gt;URL&lt;/span&gt; in your browser&amp;#8217;s address bar &amp;#8211; making efforts to correct the typo you made a total pain in the ass.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the explanation from the about page:&lt;/p&gt;
&lt;blockquote&gt;These search results were provided because the domain name you entered into the address bar is either improperly formatted, currently unavailable, nonexistent, or part of a key word search. Rogers Supported Search Results is a service &lt;b&gt;designed to enhance your web surfing experience&lt;/b&gt; by eliminating many of the error pages you encounter as you surf.&lt;/blockquote&gt;
&lt;p&gt;Thankfully, Rogers lets you disable these &amp;#8220;helpful&amp;#8221; search result pages. Except, they&amp;#8217;re not really disabled. Instead of showing you the search results page, you get &lt;a href="http://www20.search.rogers.com/not_found"&gt;a mocked up IE-style 404 error&lt;/a&gt; served to you by Rogers. Meaning, the &lt;span class="caps"&gt;URL&lt;/span&gt; is still being clobbered.&lt;/p&gt;
&lt;p&gt;Between this and the &lt;a href="http://www.digitalhome.ca/content/view/2436/206/"&gt;web content tampering fiasco&lt;/a&gt; from earlier this year, I&amp;#8217;m about done with Rogers. But since I&amp;#8217;m moving in a few months, I&amp;#8217;ll have to maintain this abusive relationship until then.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Update:&lt;/i&gt; This is now being &lt;a href="http://tech.slashdot.org/article.pl?sid=08/07/19/158208"&gt;covered on Slashdot&lt;/a&gt;.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=u3vgQ4fThUw:5q4sIXFsZ1Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=u3vgQ4fThUw:5q4sIXFsZ1Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=u3vgQ4fThUw:5q4sIXFsZ1Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=u3vgQ4fThUw:5q4sIXFsZ1Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/px10bgEPP8I" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Fun with Yahoo Pipes</title>
    <link rel="alternate" type="text/html" href="/2008/7/15/fun-with-yahoo-pipes/" />
    <id>tag:benlog.org:/2008/7/15/fun-with-yahoo-pipes</id>
    <updated>2008-07-15T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;&lt;img src="/assets/2008/3/30/logo_1.gif" style="float:right; margin: 10px 0 20px 20px"&gt;&lt;br /&gt;
In the middle of some recent web-based wanderlust, I found myself toying around with &lt;a href="http://pipes.yahoo.com"&gt;Yahoo Pipes&lt;/a&gt;, the aggregate web feed builder. Released earlier this year and still in beta, Pipes&amp;#8217; slick Javascript-based &lt;span class="caps"&gt;GUI&lt;/span&gt; lets you drag-and-drop feed sources, user inputs, and operators (like sort, filter, search and replace), and pipe them out to a single output &amp;#8211; a consumable web feed. In case it&amp;#8217;s not obvious, Pipes is inspired by &lt;a href="http://en.wikipedia.org/wiki/Pipeline_(Unix)"&gt;Unix-style pipelines&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My first creation is a &amp;#8220;Pipe&amp;#8221; titled &lt;a href="http://pipes.yahoo.com/pipes/pipe.info?_id=fOCZMnVQ3RGn9ZtDMlrX_Q"&gt;FreshFriends&lt;/a&gt;. It&amp;#8217;s an aggregated feed of &lt;a href="http://www.freshbooks.com"&gt;FreshBooks&lt;/a&gt; employees&amp;#8217; personal blogs. This took me about 30 minutes to create, most of which was spent tracking down everyone&amp;#8217;s feed URLs.&lt;/p&gt;
&lt;p&gt;Afterwards, I built &lt;a href="http://pipes.yahoo.com/pipes/pipe.info?_id=0487e4d6bb46592872497a115d223acd"&gt;a classifieds search feed&lt;/a&gt; that aggregates local Craigslist and Kijiji listings. I happen to be on the lookout for a used &lt;a href="http://en.wikipedia.org/wiki/Settlers_of_Catan"&gt;Settlers of Catan&lt;/a&gt; board game (don&amp;#8217;t ask), so I created this feed to receive new listings directly in my feed reader. The Pipe is generalized so that you can create your own customized feed by changing the supplied search params, including minimum and maximum prices, and location.&lt;/p&gt;
&lt;p&gt;Aside from my own creations, there&amp;#8217;s also some really cool stuff in the &lt;a href="http://pipes.yahoo.com/pipes/pipes.popular"&gt;public Pipe browser&lt;/a&gt;. I&amp;#8217;ve subscribed to one that cleans up &lt;a href="http://www.penny-arcade.com"&gt;Penny Arcade&lt;/a&gt; comic feeds to include &lt;a href="http://pipes.yahoo.com/pipes/pipe.info?_id=d3088cbf172e042ebe763037aa4d402e"&gt;only comic entries&lt;/a&gt;, and scrape the comic image directly into the feed (normally you have to click an embedded link to view the image). No more senseless and artist-supporting ad views!&lt;/p&gt;
&lt;p&gt;Long story short, &lt;a href="http://pipes.yahoo.com"&gt;Yahoo Pipes&lt;/a&gt; is a nifty &amp;#8211; and useful &amp;#8211; tool. It makes a lot of mundane scripting tasks fun, and combined with handy source cloning tools, easily shareable too.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=a0Kc91ktycc:za126Xvz2gU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=a0Kc91ktycc:za126Xvz2gU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=a0Kc91ktycc:za126Xvz2gU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=a0Kc91ktycc:za126Xvz2gU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/lDKmuiUsTNc" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>API Podcast from SXSW Is Up</title>
    <link rel="alternate" type="text/html" href="/2008/7/12/api-podcast-from-sxsw-is-up/" />
    <id>tag:benlog.org:/2008/7/12/api-podcast-from-sxsw-is-up</id>
    <updated>2008-07-12T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;It&amp;#8217;s kind of old news now, but my &lt;span class="caps"&gt;SXSW&lt;/span&gt; Interactive panel presentation, &lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=show&amp;amp;id=IAP060350"&gt;Developer Friendly Web Service APIs&lt;/a&gt;, is available in podcast form on the &lt;span class="caps"&gt;SXSW&lt;/span&gt; website. Once again, it features Carl Mercier of &lt;a href="http://www.defensio"&gt;Defensio&lt;/a&gt;, Avi Bryant from &lt;a href="http://www.dabbledb.com"&gt;DabbleDB&lt;/a&gt;, Leah Culver from &lt;a href="http://www.pownce.com"&gt;Pownce&lt;/a&gt;, Ari Steinberg of &lt;a href="http://www.facebook.com"&gt;Facebook&lt;/a&gt;. Topics covered include ideal request and response formats, strategies for reducing &lt;span class="caps"&gt;API&lt;/span&gt; changes, request throttling, and more.&lt;/p&gt;
&lt;p&gt;You can listen to the &lt;a href="http://2008.sxsw.com/blogs/podcasts.php/2008/06/16/building_developer_friendly"&gt;podcast here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Looking to get involved next year? &lt;span class="caps"&gt;SXSW&lt;/span&gt; has &lt;a href="http://2008.sxsw.com/interactive/programming/panel_picker/"&gt;begun taking panel submissions&lt;/a&gt; for 2009.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=gQolc_IeFmo:qp2Xr78CeMs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=gQolc_IeFmo:qp2Xr78CeMs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=gQolc_IeFmo:qp2Xr78CeMs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=gQolc_IeFmo:qp2Xr78CeMs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/IETDVnozC0Q" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Bare bones date picker for Merb</title>
    <link rel="alternate" type="text/html" href="/2008/6/29/bare-bones-date-picker-for-merb/" />
    <id>tag:benlog.org:/2008/6/29/bare-bones-date-picker-for-merb</id>
    <updated>2008-06-29T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;I&amp;#8217;ve been fooling around with &lt;a href="http://www.merbivore.com"&gt;Merb&lt;/a&gt; these past few months. Can&amp;#8217;t say I&amp;#8217;ve created anything of consequence, but along the way I&amp;#8217;d written &lt;a href="http://snippets.dzone.com/posts/show/5709"&gt;this simple date picker&lt;/a&gt;, and thought I&amp;#8217;d share it.&lt;/p&gt;
&lt;p&gt;Used inside a form_for block, it creates 3 separate drop-downs for year, month, and day from a Time object.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;% form_for @person %&amp;gt;

  &amp;lt;%= date_control :birthdate, :label =&amp;gt; 'Birthdate' %&amp;gt;

&amp;lt;% end %&amp;gt;&amp;lt;/code&lt;/pre&gt;
&lt;p&gt;Note: This should be run against Merb 0.9.3.&lt;/p&gt;
&lt;p&gt;Edit: Jamie Macey (below) has contributed an &lt;a href="http://gist.github.com/7324"&gt;updated version&lt;/a&gt; for Merb 0.9.4.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=JsZTLjQZF80:fAGnHkncZaE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=JsZTLjQZF80:fAGnHkncZaE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=JsZTLjQZF80:fAGnHkncZaE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=JsZTLjQZF80:fAGnHkncZaE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/yzMy9_yZEIg" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Quick and dirty meshU recap</title>
    <link rel="alternate" type="text/html" href="/2008/5/26/quick-and-dirty-meshu-recap/" />
    <id>tag:benlog.org:/2008/5/26/quick-and-dirty-meshu-recap</id>
    <updated>2008-05-26T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;&lt;img style="float: right;" src="/assets/2008/3/30/meshu.gif"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.meshconference.com/meshu"&gt;meshU&lt;/a&gt;, the workshop-oriented sister conference of &lt;a href="http://www.meshconference.com"&gt;mesh&lt;/a&gt;, took place this past Tuesday in Toronto. It sold out a few days beforehand, but with only four presentation slots and an estimated ~200 attendees, it had the feeling of a very small and tight-knit conference, big names aside.&lt;/p&gt;
&lt;h3&gt;Turning the tables&lt;/h3&gt;
&lt;p&gt;Avi Bryant kicked off the development track with a talk on &lt;a href="http://meshconference.com/meshu/avi-bryant.php"&gt;relational database alternatives&lt;/a&gt;. Instead of getting too deep into the why, Avi focused on design considerations / best-practices when building an application on top of services like Amazon&amp;#8217;s &lt;a href="http://www.amazon.com/SimpleDB-AWS-Service-Pricing/b?ie=UTF8&amp;amp;node=342335011"&gt;&lt;span class="caps"&gt;SDB&lt;/span&gt;&lt;/a&gt;, Google&amp;#8217;s &lt;a href="http://code.google.com/appengine/"&gt;AppEngine&lt;/a&gt;, and Microsoft&amp;#8217;s forthcoming &lt;a href="http://www.microsoft.com/sql/dataservices/default.mspx"&gt;&lt;span class="caps"&gt;SSDS&lt;/span&gt;&lt;/a&gt; (now in beta). He finished off with a first look at &lt;a href="http://ruby.gemstone.com/"&gt;MagLev&lt;/a&gt;, a new Ruby VM (and Bryant / Gemstone joint), demonstrating two irb-like shells accessing the same global objects, complete with transactional support. Very curious stuff; more details on MagLev are to be revealed during Bryant&amp;#8217;s &lt;a href="http://en.oreilly.com/rails2008/public/schedule/detail/4351"&gt;upcoming RailsConf talk&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Managing great software teams&lt;/h3&gt;
&lt;p&gt;Afterwards I snuck into Reg Braithewaite’s talk on &lt;a href="http://meshconference.com/meshu/reg-braithwaite.php"&gt;managing great software teams&lt;/a&gt;. I’ve been reading &lt;a href="http://weblog.raganwald.com/"&gt;Raganwald&lt;/a&gt; for the better part of two years, and I’ve generally enjoyed reading his management-type articles, so I was looking forward to hearing him speak in person – even with Daniel Burka of Digg/Pownce fame presenting next door. Unsurprisingly, Reg is as a good a speaker as he is a blogger, and it felt like management and developer-types alike enjoyed his assortment of management anti-patterns, golden rules, and hindsights. You can catch his slides &lt;a href="http://www.flickr.com/photos/raganwald/sets/72157605160498264/show/"&gt;here&lt;/a&gt;, but despite being aesthetically pleasing, they&amp;#8217;re hard to appreciate on their own.&lt;/p&gt;
&lt;h3&gt;Implementing OAuth&lt;/h3&gt;
&lt;p&gt;After lunch, my co-worker Taavi and I took in &lt;a href="http://leahculver.com/"&gt;Leah Culver’s&lt;/a&gt; talk on &lt;a href="http://oauth.net/"&gt;OAuth&lt;/a&gt;, an open &lt;span class="caps"&gt;API&lt;/span&gt; authentication protocol. Her presentation was both introductory and yet very-technical, with fairly complex slides depicting a number of authentication interactions, complete with source code examples. With a dizzying number of token names and types, OAuth was perhaps the most complicated subject of the day, but Leah had a helpful hand; Flickr’s Cal Henderson, author and celebrity audience member, answered questions throughout (OAuth is largely based on the &lt;a href="http://www.flickr.com/services/api/auth.spec.html"&gt;Flickr authentication model&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Thin and Rack&lt;/h3&gt;
&lt;p&gt;Last, but not least, &lt;a href="http://macournoyer.wordpress.com/"&gt;Marc-Andre Cournoyer&lt;/a&gt; gave a development talk on &lt;a href="http://code.macournoyer.com/thin/"&gt;Thin&lt;/a&gt;, a speedy event-driven web server for &lt;a href="http://rack.rubyforge.org/"&gt;Ruby&lt;/a&gt;, and Rack, a web server interface and library. Marc-Andre coded up a couple of Rack/Thin examples while he presented, and I’m not sure what impressed me more: Thin, Rack, or Marc-Andre’s expert command of TextMate. It was a great presentation (with a hilarious introduction), so it’s a shame it was scheduled opposite Ryan Carson and John Resig, as the audience was minimal. Oh well;  this subject would be better suited for a [Ruby|Rails]Conf, anyways.&lt;/p&gt;
&lt;p&gt;So that wraps things up. From all the feedback I’ve heard, &lt;a href="http://www.meshconference.com/meshu"&gt;meshU&lt;/a&gt; was a pretty big success, and all indications point to a repeat event next year. Thanks again to all the volunteers, organizers and sponsors* for making it happen.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Disclosure note&lt;/i&gt;: FreshBooks is a sponsor of both Mesh Conference and meshU.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=Rh62ir1mos0:wwyqUuvQ6SM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=Rh62ir1mos0:wwyqUuvQ6SM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=Rh62ir1mos0:wwyqUuvQ6SM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=Rh62ir1mos0:wwyqUuvQ6SM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/L-kITSSIgr4" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Catch me on Twitter, and other updates</title>
    <link rel="alternate" type="text/html" href="/2008/5/19/catch-me-on-twitter/" />
    <id>tag:benlog.org:/2008/5/19/catch-me-on-twitter</id>
    <updated>2008-05-19T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;So much for &lt;a href="http://www.benlog.org/2008/1/2/looking-back-at-2007"&gt;that New Year&amp;#8217;s resolution&lt;/a&gt;. Since I began micro-blogging via Twitter after &lt;span class="caps"&gt;SXSW&lt;/span&gt;, finding inspiration for a full-blown blog post has been tough. So, if you&amp;#8217;re curious what I&amp;#8217;m up to, I recommend &lt;a href="http://www.twitter.com/bentlegen"&gt;following me there&lt;/a&gt;. If you&amp;#8217;re looking for non-stop brilliant observations, however, be warned: my tweets are reserved exclusively for sarcastic retorts and lunchbox content reporting.&lt;/p&gt;
&lt;h3&gt;What&amp;#8217;s going on this week&lt;/h3&gt;
&lt;p&gt;Switching gears, it&amp;#8217;s looking like an interesting week here in Toronto. &lt;a href="http://www.meshconference.com/meshu"&gt;meshU&lt;/a&gt; kicks off Tuesday morning, which I&amp;#8217;ll be attending along with the entire &lt;a href="http://www.freshbooks.com"&gt;FreshBooks&lt;/a&gt; technical crew. Panel-wise, I&amp;#8217;ll probably be sticking to the &amp;#8216;development&amp;#8217; track, which begins with a talk by Avi Bryant on relational database alternatives. After mesh, &lt;a href="http://2008.drupalcamptoronto.org/"&gt;DrupalCamp2&lt;/a&gt; takes place Friday and Saturday, which FreshBooks is also sponsoring.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=Qes1hDq31PU:W3NbHhbXc_s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=Qes1hDq31PU:W3NbHhbXc_s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=Qes1hDq31PU:W3NbHhbXc_s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=Qes1hDq31PU:W3NbHhbXc_s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/CVE6zMTzg9c" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>meshU featuring Avi Bryant, Leah Culver</title>
    <link rel="alternate" type="text/html" href="/2008/3/30/meshu-featuring-avi-bryant-leah-culver/" />
    <id>tag:benlog.org:/2008/3/30/meshu-featuring-avi-bryant-leah-culver</id>
    <updated>2008-03-30T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;&lt;img src="http://www.benlog.org/assets/2008/3/30/meshu.gif" style="float: right; margin: 10 0 5 5"/&gt;&lt;/p&gt;
&lt;p&gt;Just a heads up that two of my fellow &lt;span class="caps"&gt;SXSW&lt;/span&gt; panelists, &lt;a href="http://www.dabbledb.com"&gt;Avi Bryant&lt;/a&gt; and &lt;a href="http://www.pownce.com"&gt;Leah Culver&lt;/a&gt;, will be making their way to Toronto to speak at &lt;a href="http://www.meshconference.com"&gt;Mesh Conference&amp;#8217;s&lt;/a&gt; new sister-event, &lt;a href="http://www.meshconference.com/meshu"&gt;meshU&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;meshU is a one-day event taking place May 20th, composed of a series of best-practice and how-to workshops intended for developers/designers. Other confirmed speakers include jQuery creator &lt;a href="http://www.ejohn.org"&gt;John Resig&lt;/a&gt;, and Carsonified&amp;#8217;s &lt;a href="http://www.carsonified.com"&gt;Ryan Carson&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From the &lt;a href="http://www.meshconference.com/meshu"&gt;meshU site&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;meshU is a one-day event that will be filled with small, focused workshops by those who have earned their stripes in the startup game; people who can talk knowledgeably about everything from interface design to using Amazon’s S3 distributed server network.&lt;/blockquote&gt;
&lt;p&gt;&lt;i&gt;Disclosure note&lt;/i&gt;: &lt;a href="http://www.freshbooks.com"&gt;FreshBooks&lt;/a&gt; is an &amp;#8220;in-kind sponsor&amp;#8221; of Mesh Conference, and my boss &lt;a href="http://www.michaelmcderment.com/"&gt;Mike McDerment&lt;/a&gt; is one of it&amp;#8217;s co-founders. Oh, and he totally put me up to this.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=vXkQpAPL3do:XuwJPsQTWeo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=vXkQpAPL3do:XuwJPsQTWeo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=vXkQpAPL3do:XuwJPsQTWeo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=vXkQpAPL3do:XuwJPsQTWeo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/HHGi3UCzaAw" height="1" width="1"/&gt;</content>
  </entry>
  
  
  <entry>
    <title>Four things I learned at SXSW (the hard way)</title>
    <link rel="alternate" type="text/html" href="/2008/3/14/four-things-learned-at-sxsw/" />
    <id>tag:benlog.org:/2008/3/14/four-things-learned-at-sxsw</id>
    <updated>2008-03-14T00:00:00Z</updated>
    <updated />
 
    <author>
      <name>Guestlist</name>
      <uri>http://www.benlog.org</uri>
      <email>ben@benlog.org</email>
    </author>
 
    <summary />
    <content type="html" xml:lang="en" xml:base="http://www.benlog.org">
      
&lt;p&gt;&lt;img style="float:right; margin-left: 15px" src="http://www.benlog.org/assets/2008/3/14/sxsw-logo.png"/&gt;&lt;br /&gt;
So, &lt;span class="caps"&gt;SXSW&lt;/span&gt; Interactive is good and over. &lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=show&amp;id=IAP060350"&gt;The panel&lt;/a&gt; went well (or so they tell me), I met &lt;a href="http://www.facebook.com"&gt;some&lt;/a&gt; &lt;a href="http://www.pownce.com"&gt;nice&lt;/a&gt; &lt;a href="http://www.dabbledb.com"&gt;folk&lt;/a&gt;, and drank some &lt;a href="http://www.independencebrewing.com/beer/austinamber.html"&gt;darn good beer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, things weren’t completely rosy. I made a couple of critical errors which slightly marred an otherwise brilliant weekend:&lt;/p&gt;
&lt;h3&gt;Don&amp;#8217;t hand out the wrong business cards (as in, somebody else’s)&lt;/h3&gt;
&lt;p&gt;&lt;span class="caps"&gt;SXSW&lt;/span&gt; is a &lt;a href="http://www.flickr.com/search/?q=sxsw%20business%20card&amp;w=all&amp;s=int"&gt;business card trading frenzy&lt;/a&gt;. So, a good idea is to make sure your business cards are your own. Mine weren&amp;#8217;t.&lt;/p&gt;
&lt;p&gt;I was sorting through my remaining business card supply half-way through the conference, and was horrified to notice that a handful were labeled “Kathy Donaghue”, a former &lt;a href="http://www.freshbooks.com"&gt;FreshBooks&lt;/a&gt; co-worker who’d left the team back in August. I guess our cards got mixed up some time ago, and I hadn’t bothered to check them before handing them out. So, if you’re back from &lt;span class="caps"&gt;SXSW&lt;/span&gt; and wondering who the heck Kathy is, look no further – it was me!&lt;/p&gt;
&lt;h3&gt;MacBooks don&amp;#8217;t have &lt;span class="caps"&gt;VGA&lt;/span&gt;-out&lt;/h3&gt;
&lt;p&gt;Unlike 99% of my web-developer peers – I don’t presently own a laptop. So I borrowed my colleague Sunir’s MacBook for the trip. As a PC-user-4-life, it didn’t occur to me that MacBooks don’t have &lt;span class="caps"&gt;VGA&lt;/span&gt; out – you need &lt;a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wo/StoreReentry.wo?productLearnMore=M9320G/A"&gt;a separate adapter&lt;/a&gt;. So, before my presentation, I actually borrowed a second laptop just to play the slides – a Dell PC running Windows Vista (!). My street cred dropped 50% instantly.&lt;/p&gt;
&lt;h3&gt;Remember to introduce yourself during your own panel&lt;/h3&gt;
&lt;p&gt;Yep &amp;#8211; no joke. We were about 20 minutes through the panel before I’d realized that, during introductions, I’d completely forgotten to introduce myself, or FreshBooks. Months of organizing, planning, and slide-preparing and nobody even knew who I was. Bummer!&lt;/p&gt;
&lt;p&gt;(If you&amp;#8217;re reading this now, I was &lt;a href="http://www.flickr.com/photos/ksoderstrom/2327236677/"&gt;the guy on the right&lt;/a&gt;.)&lt;/p&gt;
&lt;h3&gt;Bring a phone (that works)&lt;/h3&gt;
&lt;p&gt;My mobile phone company, &lt;a href="http://www.virginmobile.ca"&gt;Virgin&lt;/a&gt;, doesn’t offer roaming. With no connection to the outside world, I was always tethered to someone who did. Not being able to find your friends, hand out your number, find the latest party, or Twitter, was a complete drag. Never again!&lt;/p&gt;
&lt;p&gt;Anyways, all things considered, I had a great time, and let’s face it – these aren’t big deals. Still, next year, I’ll be way more prepared … maybe.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=cDrCFhdJasw:IpXe6J41DW8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=cDrCFhdJasw:IpXe6J41DW8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/benlog_org?a=cDrCFhdJasw:IpXe6J41DW8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/benlog_org?i=cDrCFhdJasw:IpXe6J41DW8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/benlog_org/~4/p3KTeOiOzt0" height="1" width="1"/&gt;</content>
  </entry>
  
</feed>
