<?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" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;DU4BQn4_eCp7ImA9WxNUGEU.&quot;"><id>tag:blogger.com,1999:blog-5770770</id><updated>2009-11-10T16:19:13.040-05:00</updated><title>Jon "Lark" Larkowski</title><subtitle type="html">Speed metal, ping pong, Ruby on Rails, and Hashrocket.  But not necessarily in that order. -- @L4rk</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.l4rk.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/l4rk" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DEUAQ3o9cSp7ImA9WxJQF0w.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-113148063919403743</id><published>2009-05-30T15:42:00.017-04:00</published><updated>2009-05-30T16:44:02.469-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-30T16:44:02.469-04:00</app:edited><title>Pair Programming &amp; git &amp; github &amp; Gravatar &amp; You &amp; You</title><content type="html">&lt;!-- #hashrocket --&gt;

&lt;p&gt;&lt;em&gt;Or, how Hashrocket displays pair programming gravatars on github.&lt;/em&gt;&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mydlpH8rAOs/SiGRoH1bIYI/AAAAAAAAAV0/oyCKnlJy8Y8/s1600-h/l4rk_ro.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_mydlpH8rAOs/SiGRoH1bIYI/AAAAAAAAAV0/oyCKnlJy8Y8/s320/l4rk_ro.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5341710751522038146" /&gt;&lt;/a&gt;

&lt;h2&gt;The Peculiar Problem of Pairs&lt;/h2&gt;
&lt;p&gt;At &lt;a href="http://hashrocket.com/"&gt;Hashrocket&lt;/a&gt;, we &lt;a href="http://c2.com/cgi/wiki?PairProgramming"&gt;pair program&lt;/a&gt; all the time. We also use &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; exclusively for source control. This presents a problem: &lt;strong&gt;&lt;code&gt;git&lt;/code&gt; only supports one “commiter,”&lt;/strong&gt; but we’d like to &lt;strong&gt;give credit to both developers&lt;/strong&gt;.  Here’s how we hacked it.&lt;/p&gt;

&lt;h2&gt;Author vs. Committer&lt;/h2&gt;

&lt;p&gt;First, a bit of background:  &lt;code&gt;git&lt;/code&gt; does support the &lt;strong&gt;notion of an “author” as distinct from a “committer.”&lt;/strong&gt; This feature handles the situation where some external third-party developer has submitted a patch to a source maintainer. The maintainer, as the authoritative and github-credentialed “committer,” can commit the changeset for the external developer, who is set as the “author.” Both the author and the committer are recorded in the commit data.&lt;/p&gt;

&lt;p&gt;We did think about setting one pair developer as the author, and the other as the committer.  But, then we thought of &lt;strong&gt;something we think is even sexier&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;Set the Pairs in the Author Fields&lt;/h2&gt;

&lt;p&gt;Unfortunately, &lt;strong&gt;&lt;code&gt;git&lt;/code&gt; only supports one “author”&lt;/strong&gt; as well. But, the author fields do provide us a workable place to hack in our pair attribution solution: &lt;strong&gt;we concatenate and store both pair developers usernames in the those author fields&lt;/strong&gt;. In the &lt;code&gt;BASH&lt;/code&gt; shell, that goes a little something like this:&lt;/p&gt;

&lt;kbd&gt;
&lt;pre&gt;
bash$ export GIT_AUTHOR_NAME='Jon Larkowski and Tim Pope'
bash$ export GIT_AUTHOR_EMAIL=dev+l4rk+tpope@example.com
&lt;/pre&gt;
&lt;/kbd&gt;

&lt;p&gt;The convention we use for &lt;code&gt;GIT_AUTHOR_EMAIL&lt;/code&gt; is the form:  &lt;code&gt;dev+pair1+pair2@example.com&lt;/code&gt; where “dev” is short for “developer.”  &lt;code&gt;dev&lt;/code&gt; is just an email alias that goes to every developer at Hashrocket.  The &lt;strong&gt;pairs are added in alphabetical order by github username&lt;/strong&gt;.  We hack our usernames into the email address using the “plus-notation” feature of email addresses.&lt;/p&gt;

&lt;h2&gt;Configure the Committer&lt;/h2&gt;

&lt;h3&gt;Committer for a Developer’s Laptop&lt;/h3&gt;

&lt;p&gt;As for the committer field, it’s just the developer whose machine you’re pairing on.  This allows us to tell &lt;strong&gt;which user this commit came from, while still indicating the pair authors&lt;/strong&gt;.  Also, it allows us to simply use that developer’s github credentials for pushing up changes.  So the &lt;code style="white-space: nowrap;"&gt;git log --pretty=full&lt;/code&gt; after a commit looks something like:&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;
commit 3eb7b3a155f11e56cf406f2b09dc2fd98e92b532
Author: Jon Larkowski and Tim Pope &amp;lt;dev+l4rk+tpope@example.com&amp;gt;
Commit: Jon Larkowski &amp;lt;jon@example.com&amp;gt;

   Ebony and ivory, live together in perfect harmony.
&lt;/code&gt;
&lt;/pre&gt;

&lt;h3&gt;Committer for a Shared Pairing Workstation&lt;/h3&gt;

&lt;p&gt;We do have one twist on the committer.  More and more, we’re using communal desktop machines at Hashrocket.  We have a couple Macs Pro and a couple Macs Mini (I assure you, those are the proper irregulars plural, look it up).  On these &lt;strong&gt;shared machines, we name the committer after the machine’s name&lt;/strong&gt;.  This allows us to know which machine a commit came from, but it’s not attached to any particular developer’s name.&lt;/p&gt;

&lt;kbd&gt;
&lt;pre&gt;
bash$ git config --get-regexp user\.*
user.email dev+some_workstation@example.com
user.name Some Workstation
&lt;/pre&gt;
&lt;/kbd&gt;

&lt;p&gt;Also, note that the shared development workstation will need to have &lt;a href="http://github.com/guides/providing-your-ssh-key" title="Providing your SSH Key - Guides - GitHub"&gt;its own public key registered on github&lt;/a&gt;, under your organization's main github account, not your own personal one.&lt;/p&gt;

&lt;h2&gt;github &amp;amp; Gravatar Photos&lt;/h2&gt;

&lt;p&gt;github displays a &lt;a href="http://en.gravatar.com/"&gt;Gravatar&lt;/a&gt; photo next to a username when  displaying commit information.  This helps add to the “social” feel of github.&lt;/p&gt;

&lt;h3&gt;Single Developer Gravatar Photo&lt;/h3&gt;

&lt;p&gt;For you as a lone developer, github just &lt;strong&gt;looks up that gravatar based on the email address&lt;/strong&gt; you gave github when you signed up.&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mydlpH8rAOs/SiGMkvJGOLI/AAAAAAAAAVk/Zydt_VJgf54/s1600-h/github_single_commit.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 85px;" src="http://4.bp.blogspot.com/_mydlpH8rAOs/SiGMkvJGOLI/AAAAAAAAAVk/Zydt_VJgf54/s400/github_single_commit.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5341705195795921074" /&gt;&lt;/a&gt;

&lt;h3&gt;Developer Pair Gravatar Photo&lt;/h3&gt;

&lt;p&gt;Now for a pair, we need a unique email address that github can use to look up a photo on gravator.  This is where our &lt;strong&gt;pair developer email address convention&lt;/strong&gt; comes into play.  We just add that &lt;code&gt;dev+pair1+pair2@example.com&lt;/code&gt; as a &lt;strong&gt;new email address under our main corporate gravatar account&lt;/strong&gt;, which is maybe signed up under &lt;code&gt;info@example.com&lt;/code&gt; for instance.

&lt;/p&gt;&lt;p&gt;Gravator lets you have as many email addresses as you one under one main umbrella account.  It’s a bit spammy, in that every developer will receive a gravatar confirmation email whenever a new pair permutation signs up.  But, that sounds like a “First World problem,” if I ever heard one.&lt;/p&gt;

&lt;h3&gt;Say, “Cheese!”&lt;/h3&gt;

&lt;p&gt;We typically &lt;strong&gt;just snap our pair photos using &lt;em&gt;Photo Booth.app&lt;/em&gt;&lt;/strong&gt;, since we’re likely pairing at that very moment on a Mac with a built-in iSight camera.  Oh, and since we’re picky, we make sure that &lt;code&gt;pair1&lt;/code&gt; is on the left and &lt;code&gt;pair2&lt;/code&gt; is on the right of the photo.&lt;/p&gt;

&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mydlpH8rAOs/SiGM2RcgfVI/AAAAAAAAAVs/AqudFwO3QE4/s1600-h/github_pair_commit.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 127px;" src="http://1.bp.blogspot.com/_mydlpH8rAOs/SiGM2RcgfVI/AAAAAAAAAVs/AqudFwO3QE4/s400/github_pair_commit.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5341705497061915986" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;Hitch&lt;/h2&gt;

&lt;p&gt;Setting &lt;code&gt;git&lt;/code&gt; environment variables by hand every time you switch pairs could get tedious.  Ro and Les wrote a little gem called &amp;ldquo;Hitch&amp;rdquo; that makes this easy.&lt;/p&gt;

&lt;p&gt;Install it with:&lt;/p&gt;

&lt;kbd&gt;sudo gem install therubymug-hitch&lt;/kbd&gt;

&lt;p&gt;To set it up, follow the prompts and answer the questions:&lt;/p&gt;

&lt;kbd&gt;hitchrc&lt;/kbd&gt;

&lt;p&gt;When you start pairing with someone, just call:&lt;/p&gt;

&lt;kbd&gt;hitch your_pairs_github_username&lt;/kbd&gt;

&lt;p&gt;To code solo:&lt;/p&gt;

&lt;kbd&gt;unhitch&lt;/kbd&gt;

&lt;p&gt;To pick from the list of your previous pairs:&lt;/p&gt;

&lt;kbd&gt;hitch -i&lt;/kbd&gt;

&lt;p&gt;Just running &lt;kbd&gt;hitch&lt;/kbd&gt;, with no arguments, will tell you who you are pairing with.  Pro tip:  Add it to your &lt;code&gt;bash&lt;/code&gt; profile to see it when you start a shell.&lt;/p&gt;

Bonus, can hitch/unhitch from within &lt;code&gt;vim&lt;/code&gt;, i.e.

&lt;p&gt;&lt;kbd&gt;:!hitch github_username&lt;/kbd&gt;&lt;/p&gt;

&lt;h2&gt;Hardcore BASH Scripting Action&lt;/h2&gt;

&lt;p&gt;Here's a BASH script that accomplishes the same thing as hitch.&lt;/p&gt;

&lt;script src="http://gist.github.com/120583.js"&gt;&lt;/script&gt;

&lt;p&gt;To set up a pair:&lt;/p&gt;

&lt;kbd&gt;bash$ pair fry bender&lt;/kbd&gt;
&lt;br /&gt;
&lt;samp&gt;Bender Bending Rodriguez and Philip J. Fry &lt;dev+bender+fry@example.com&gt;&lt;/dev+bender+fry@example.com&gt;&lt;/samp&gt;

&lt;p&gt;To enter a pair that's not a declared variable at the top of the script:&lt;/p&gt;

&lt;kbd&gt;bash$ pair fry hypnotoad="All Hail the Hypnotoad"&lt;/kbd&gt;
&lt;br /&gt;
&lt;samp&gt;Philip J. Fry and All Hail the Hypnotoad &lt;dev+fry+hypnotoad@example.com&gt;&lt;/dev+fry+hypnotoad@example.com&gt;&lt;/samp&gt;

&lt;p&gt;To persist a pairing, even between shell invocations:&lt;/p&gt;

&lt;kbd&gt;bash$ pair -w zoidberg bender&lt;/kbd&gt;
&lt;br /&gt;
&lt;samp&gt;Bender Bending Rodriguez and Dr. John Zoidberg&lt;/samp&gt;

&lt;p&gt;Use &lt;kbd&gt;pair&lt;/kbd&gt; with no arguments to see who's paired.  Use &lt;kbd&gt;pair -w&lt;/kbd&gt; with no arguments to clear a persistent pairing.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-113148063919403743?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/113148063919403743/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=113148063919403743" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/113148063919403743?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/113148063919403743?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/05/pair-programming-git-github-gravatar.html" title="Pair Programming &amp; git &amp; github &amp; Gravatar &amp; You &amp; You" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mydlpH8rAOs/SiGRoH1bIYI/AAAAAAAAAV0/oyCKnlJy8Y8/s72-c/l4rk_ro.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">9</thr:total></entry><entry gd:etag="W/&quot;CUIGQn45fip7ImA9WxVbGUU.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-2367660002151468782</id><published>2009-04-05T21:36:00.002-04:00</published><updated>2009-04-05T22:05:23.026-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-05T22:05:23.026-04:00</app:edited><title>Bizness on Rails, Part 1: Why Rails is so Wicked Awesome</title><content type="html">&lt;p&gt;On March 3, 2009, &lt;a href="http://turriate.com/"&gt;Sandro&lt;/a&gt; and I gave a presentation at the &lt;a href="http://www.unf.edu/"&gt;University of North Florida&lt;/a&gt;, for a meeting of the &lt;a href="http://acm.ccec.unf.edu/"&gt;Association for Computing Machinery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The talk is split in two:  the first half covers &lt;strong&gt;why Rails is so wicked awesome&lt;/strong&gt;, the second half covers &lt;strong&gt;The Hashrocket Way&lt;/strong&gt;, our company's not-so-secret, but &lt;strong&gt;oh-so-tasty recipe for Agile process management&lt;/strong&gt;.&lt;/p&gt;

&lt;object width="640" height="360"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3949106&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=3949106&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;Here's a &lt;a href="http://vimeo.com/3949106"&gt;video of the first half&lt;/a&gt;.  The second half will come out later, parceled out as a series of short-form videos covering Hashrocket's agile processes one-by-one.&lt;/p&gt;

&lt;p&gt;Thanks to ACM and UNF and super-nice guys, Giancarlo Wieser and Jason Monsorno, for hosting us!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-2367660002151468782?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/2367660002151468782/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=2367660002151468782" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/2367660002151468782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/2367660002151468782?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/04/bizness-on-rails-part-1-why-rails-is-so.html" title="Bizness on Rails, Part 1: Why Rails is so Wicked Awesome" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;CUEFSHY4fyp7ImA9WxVbGUU.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-7588769845024693768</id><published>2009-04-05T19:51:00.005-04:00</published><updated>2009-04-05T22:06:59.837-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-05T22:06:59.837-04:00</app:edited><title>The Way I Getting Things Done</title><content type="html">&lt;p&gt;On January 29, 2009, I spoke about &lt;b&gt;my own special productivity sauce&lt;/b&gt; at the &lt;a href="http://www.refreshjacksonville.org/"&gt;Refresh Jacksonville&lt;/a&gt; &lt;b&gt;Pecha Kucha Night&lt;/b&gt;.  &lt;a href="http://en.wikipedia.org/wiki/Pecha_Kucha"&gt;Pecha Kucha&lt;/a&gt; is a rigid presentation format:  &lt;b&gt;twenty slides, twenty seconds each&lt;/b&gt;.  Talk about embracing constraints!  Definitely forces you to get to the point and sit back down.  This was my very first Pecha Kucha talk, and it was fun as hell.&lt;/p&gt;

&lt;p&gt;In general, I cover the what &lt;b&gt;applications and particular techniques I use&lt;/b&gt;.  The last part of the talk covers the importance of &lt;b&gt;guarding your attention&lt;/b&gt; for focused creative work, and &lt;b&gt;firewalling big blocks of time&lt;/b&gt; for the big important areas of your life.&lt;/p&gt;

&lt;h2&gt;Topics Covered&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;David Allen&amp;rsquo;s Getting Things Done&lt;/li&gt;
&lt;li&gt;&lt;a href="http://culturedcode.com/things/"&gt;Things for Mac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://culturedcode.com/things/iphone/"&gt;Things for iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.43folders.com/izero"&gt;Inbox Zero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;mail folder organization&lt;/li&gt;
&lt;li&gt;ping pong&lt;/li&gt;
&lt;li&gt;iCal calendar organization&lt;/li&gt;
&lt;li&gt;&lt;a href="http://spanningsync.com/"&gt;Spanning Sync&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.blacktree.com/quicksilver/what_is_quicksilver"&gt;Quicksilver&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;object width="640" height="360"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3462301&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=3462301&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;Thanks to &lt;a href="http://bigtiger.github.com/"&gt;Jim “Big Tiger” Remsik&lt;/a&gt; and &lt;a href="http://www.ngenworks.com/team/joey"&gt;Joey Marchy&lt;/a&gt; for putting a killer fun night together!  And thanks to Sandro&amp;rsquo;s parents for bringing &lt;b&gt;cake and margaritas&lt;/b&gt; for his birthday!  A terrific cap to the evening.&lt;/p&gt;

&lt;h2&gt;Other Coverage&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://vimeo.com/3462301"&gt;Watch on Vimeo site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.obiefernandez.com/content/2009/03/the-way-i-getting-things-done-by-lark.html"&gt;Obie&amp;rsquo;s Blog Post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.refreshjacksonville.org/announcements/january-29th-meeting"&gt;Refresh Jacksonville&amp;rsquo;s Meeting Announcement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bigtiger.github.com/2009/01/12/techa-kucha.html"&gt;Big Tiger&amp;rsquo;s Meeting Announcement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.refreshjacksonville.org/announcements/techa-kucha-thanks-for-coming-out"&gt;Refresh Jacksonville&amp;rsquo;s Meeting Wrap-Up&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.refreshjacksonville.org/presentations"&gt;Refresh Jacksonville&amp;rsquo;s Presentation Slides PDFs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://delicious.com/l4rk/pechakucha"&gt;My Pecha Kucha Bookmarks on Delicious&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-7588769845024693768?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/7588769845024693768/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=7588769845024693768" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/7588769845024693768?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/7588769845024693768?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/04/way-i-getting-things-done.html" title="The Way I Getting Things Done" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;DEECSH45fip7ImA9WxVUFEs.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-1580151614333478982</id><published>2009-03-19T08:24:00.004-04:00</published><updated>2009-03-19T08:44:29.026-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-19T08:44:29.026-04:00</app:edited><title>You know you've arrived when...</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mydlpH8rAOs/ScI6O56bSwI/AAAAAAAAAVY/_B8LgKapWOI/s1600-h/photo.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_mydlpH8rAOs/ScI6O56bSwI/AAAAAAAAAVY/_B8LgKapWOI/s320/photo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5314874537989065474" /&gt;&lt;/a&gt;&lt;div&gt;...when your &lt;b&gt;local coffee shop starts promoting a drink&lt;/b&gt; named after your company. (Haha, you got it official, &lt;a href="http://bigtiger.github.com/"&gt;Tiger&lt;/a&gt;.)&lt;/div&gt;

&lt;p&gt;Special thanks to &lt;a href="http://www.coffeebistroinc.com/"&gt;Coffee Bistro&lt;/a&gt; in Jacksonville Beach, FL, serving all our caffeination needs since 2009.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I believe the "Hashrocket" is a vanilla chai with a shot of espresso in it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-1580151614333478982?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/1580151614333478982/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=1580151614333478982" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/1580151614333478982?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/1580151614333478982?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/03/you-know-youve-arrived-when.html" title="You know you've arrived when..." /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mydlpH8rAOs/ScI6O56bSwI/AAAAAAAAAVY/_B8LgKapWOI/s72-c/photo.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></entry><entry gd:etag="W/&quot;A0INQX08cCp7ImA9WxVUE0Q.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-8372433476744592008</id><published>2009-03-18T13:28:00.005-04:00</published><updated>2009-03-18T14:06:30.378-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-18T14:06:30.378-04:00</app:edited><title>MLK Hack Day 2 this Saturday the 21st at Hashrocket</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://localpolitics.in/"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 232px; height: 260px;" src="http://3.bp.blogspot.com/_mydlpH8rAOs/ScE165d0xdI/AAAAAAAAAVQ/uphnBuhTA3w/s400/lpmod.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5314588321248495058" /&gt;&lt;/a&gt;&lt;b&gt;Come hack some open-source Rails&lt;/b&gt; with us at &lt;a href="http://www.hashrocket.com/"&gt;Hashrocket&lt;/a&gt; this Saturday the 21st at the Hashrocket offices. We're adding hot new features to our &lt;a href="http://localpolitics.in/"&gt;localpolitics.in&lt;/a&gt; site. &lt;a href="http://blog.l4rk.com/2009/02/hashrockets-martin-luther-king-jr.html"&gt;Read my blog post about the first Hack Day&lt;/a&gt; for some context.&lt;div&gt;
&lt;/div&gt;&lt;div&gt;We're gonna &lt;b&gt;get some sunshine&lt;/b&gt; at the beach for bit in the afternoon, so bring your Speedo's. See you cats there! 9am sharp, or whenever you typically wake up on Saturdays. We'll be hacking most of the day/night.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-8372433476744592008?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/8372433476744592008/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=8372433476744592008" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/8372433476744592008?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/8372433476744592008?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/03/mlk-hack-day-2-this-saturday-21st-at.html" title="MLK Hack Day 2 this Saturday the 21st at Hashrocket" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mydlpH8rAOs/ScE165d0xdI/AAAAAAAAAVQ/uphnBuhTA3w/s72-c/lpmod.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DEUASHg_eyp7ImA9WxVVE0w.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-557413746036898516</id><published>2009-03-01T13:47:00.008-05:00</published><updated>2009-03-06T00:10:49.643-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-06T00:10:49.643-05:00</app:edited><title>Acts as Conference Wrap-Up</title><content type="html">&lt;p&gt;From the &lt;em&gt;Shit-I-Shoulda-Posted-Last-Month&lt;/em&gt; Department&amp;hellip;&lt;/p&gt;  My &lt;a href="http://www.actsasconference.com/speakers/jon-larkowski"&gt;talk&lt;/a&gt; at &lt;a href="http://www.actsasconference.com/"&gt;Acts as Conference&lt;/a&gt; talk went great!&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mydlpH8rAOs/SatR4poLa5I/AAAAAAAAAVI/zSFNsWy14CY/s1600-h/l4rk_aac_2009.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 364px;" src="http://3.bp.blogspot.com/_mydlpH8rAOs/SatR4poLa5I/AAAAAAAAAVI/zSFNsWy14CY/s400/l4rk_aac_2009.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5308426619475159954" /&gt;&lt;/a&gt;

&lt;p&gt;Photo credit: &lt;a href="http://turriate.com/"&gt;Sandro Turriate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;a href="http://aac2009.confreaks.com/06-feb-2009-13-30-testing-as-communication-jon-larkowski.html"&gt;watch the video&lt;/a&gt;, thanks to &lt;a href="http://confreaks.com/"&gt;Confreaks&lt;/a&gt;.  You can also &lt;a href="http://idisk.mac.com/jonlarkowski-Public/l4rk_testing_talks_money_walks.pdf"&gt;read the slides as a PDF&lt;/a&gt; (they&amp;rsquo;re little jumbled, but mostly OK).&lt;/p&gt;

&lt;embed src='http://aac2009.confreaks.com/player.swf' height='380' width='640' allowscriptaccess='always' allowfullscreen='true' flashvars='file=http%3A%2F%2Faac2009.confreaks.com%2Fvideos%2F06-feb-2009-13-30-testing-as-communication-jon-larkowski-small.mp4&amp;image=images%2F06-feb-2009-13-30-testing-as-communication-jon-larkowski-preview.jpg&amp;plugins=viral-1'/&gt;&lt;/embed&gt;

&lt;p&gt;Love those regional conferences.  Better, smaller, shared experience.  More human.  Thanks again to &lt;a href="http://blog.adsdevshop.com/"&gt;Robert Dempsey&lt;/a&gt;, for a great conference.&lt;/p&gt;

&lt;p&gt;Also, read &lt;a href="http://www.cornetdesign.com/2009/02/round-up-from-friday-actsasconference.html" title="Cory Foy: Round up from the Friday acts_as_conference Sessions"&gt;Cory Foy&amp;rsquo;s roundup&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-557413746036898516?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/557413746036898516/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=557413746036898516" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/557413746036898516?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/557413746036898516?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/03/acts-as-conference-wrap-up.html" title="Acts as Conference Wrap-Up" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mydlpH8rAOs/SatR4poLa5I/AAAAAAAAAVI/zSFNsWy14CY/s72-c/l4rk_aac_2009.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;A0cEQnwyeSp7ImA9WxVWFE4.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-6683029362009277851</id><published>2009-02-22T17:43:00.004-05:00</published><updated>2009-02-23T20:30:03.291-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T20:30:03.291-05:00</app:edited><title>Hashrocket's Martin Luther King Jr. Memorial 2009 Hack Day Apps for America Celebrity Rabies Awareness Pro-Am Fun Run Race For The Cure</title><content type="html">&lt;p&gt;From the &lt;em&gt;Shit-I-Shoulda-Posted-Last-Month Department&amp;hellip;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Approaching the eve of the Obama inauguration, the president-elect made a national call to service.  Our consultancy was just then moving into our brand-new office on Jacksonville Beach, Florida.  Being a technical bunch of web developers, we decided to put our programming skills to charitable use.  We wanted to see what we could hack out in a day.  Plus, what an auspicious and fun way to break in our new office.&lt;/p&gt;

&lt;p&gt;We had recently heard of the &lt;a href="http://sunlightlabs.com/appsforamerica/"&gt;Apps for America&lt;/a&gt; web site challenge, which is an effort to promote government transparency by exposing public data via new web site interfaces.  It seemed forces were aligned, so we grabbed whoever was willing to code that day, and we went for it.&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mydlpH8rAOs/SaHVg-KZ7CI/AAAAAAAAAU0/NZE6oM7NIZg/s1600-h/mlk_hack_day.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://4.bp.blogspot.com/_mydlpH8rAOs/SaHVg-KZ7CI/AAAAAAAAAU0/NZE6oM7NIZg/s320/mlk_hack_day.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5305756598438325282" /&gt;&lt;/a&gt;

&lt;p&gt;Sixteen hours later we launched &lt;a href="http://localpolitics.in/"&gt;http://localpolitics.in/&lt;/a&gt;  The site simply asks a citizen for their zip code, and returns a page showing their congress people, and a list of the top ten presidential campaign donors.  Our initial feature-set was purposely small.  We just wanted to get the ball rolling.  But we've set the stage for easily consuming and presenting data from the Sunlight Labs, and similar web data services.&lt;/p&gt;

&lt;p&gt;It's exciting to see what can be pushed out in a day on the web.  Interesting times.  Big thanks to all who participated!  Especially Dennis Eusebio, from &lt;a href="http://thoughtandtheory.com/"&gt;Thought + Theory&lt;/a&gt;, who gave us a killer design on short notice, and who stuck it out to the very end late at night.&lt;/p&gt;

&lt;p&gt;Now, we have to decide if/when we go for a Round Two.  Apps for America submissions are due on March 31st.  Winners will be announced on April 7th.&lt;/p&gt;


&lt;h2&gt;Other Coverage&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://blog.obiefernandez.com/content/2009/01/getting-our-national-service-groove-on-with-apps-for-america.html"&gt;Obie Fernandez: Getting our National Service groove on with Apps for America&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.adamlowe.me/2009/01/great-resource-in-localpoliticsin.html"&gt;Adam Lowe's Blog: A Great Resource in LocalPolitics.in&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Open Source on GitHub:  &lt;a href="http://github.com/hashrocket/localpolitics.in"&gt;http://github.com/hashrocket/localpolitics.in&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;The Hackers&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.adamlowe.me/"&gt;Adam Lowe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://bigtiger.github.com/"&gt;Big Tiger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://brighter.net/"&gt;Jacqui Maher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://obiefernandez.com/"&gt;Obie Fernandez&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://turriate.com/"&gt;Sandro Turriate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://thoughtandtheory.com/"&gt;Dennis Eusebio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://tpope.net/"&gt;Tim Pope&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://metaclass.org/"&gt;Wilson Bilkovich&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Original Post on usaservice.org&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.usaservice.org/page/event/detail/dayofservicejanuary19/4v95k"&gt;http://www.usaservice.org/page/event/detail/dayofservicejanuary19/4v95k&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hack on code at the beach! Put your technical skills to their best use for charity. We're a fun bunch of developers who live at the beach. Our company, Hashrocket, is hosting a hack day. Our plan is to develop an "Apps for America" web site (http://sunlightlabs.com/appsforamerica/). It's not about the money, it's about coding for a cause.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-6683029362009277851?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/6683029362009277851/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=6683029362009277851" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/6683029362009277851?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/6683029362009277851?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/02/hashrockets-martin-luther-king-jr.html" title="Hashrocket's Martin Luther King Jr. Memorial 2009 Hack Day Apps for America Celebrity Rabies Awareness Pro-Am Fun Run Race For The Cure" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_mydlpH8rAOs/SaHVg-KZ7CI/AAAAAAAAAU0/NZE6oM7NIZg/s72-c/mlk_hack_day.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEEBQHkzeSp7ImA9WxVQEE8.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-4479595080151357323</id><published>2009-01-26T21:01:00.004-05:00</published><updated>2009-01-26T21:17:31.781-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-26T21:17:31.781-05:00</app:edited><title>Speaking at Acts as Conference</title><content type="html">I’m excited to speak at &lt;a href="http://www.actsasconference.com/"&gt;Acts as Conference&lt;/a&gt; this year. I’ll be giving a modified version of my talk, &lt;em&gt;Testing as Communication&lt;/em&gt;, which I gave at the &lt;a href="http://www.voicesthatmatter.com/ruby2008" title="Voices That Matter: Professional Ruby Conference with Obie Fernandez - November 17-20, 2008"&gt;Professional Ruby Conference&lt;/a&gt; last November (see &lt;a href="http://blog.l4rk.com/2008/11/pro-ruby-conference-wrap-up.html"&gt;wrap-up post&lt;/a&gt;).

I’m reworking and enhancing my core talk a bit to emphasize the theme of the conference:  software development in tough economic times.  I’ll cover business-as-usual testing at &lt;a href="http://hashrocket.com/"&gt;Hashrocket&lt;/a&gt;, and:
&lt;ol&gt;&lt;li&gt;how our agile methods like pairing, stories, and diligent testing actually &lt;em&gt;save us time&lt;/em&gt;&lt;/li&gt;&lt;li&gt;how each of our tools and techniques enhance client communication, but with &lt;em&gt;low overhead&lt;/em&gt;, and minimal workflow interruption&lt;/li&gt;&lt;li&gt;how we deliver early and often (constantly, actually)&lt;/li&gt;
&lt;/ol&gt;&lt;strong&gt;About Acts as Conference&lt;/strong&gt;
Acts as Conference 2009 is a two-day Rails conference that will make you a more competitive Rails developer by learning from those driving the innovation that is fueling the Rails community. Held February 6th and 7th in Orlando, Florida, Acts as Conference features a great speaker lineup, free food, a chance to meet with Rails innovators, and a live via video Q&amp;amp;A session with David Heinemeier Hansson. At $125 dollars and limited to 175 attendees, the conference will sell out fast, perhaps faster than last year. Register today at &lt;a href="http://www.actsasconference.com/"&gt;http://www.actsasconference.com&lt;/a&gt;. See you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-4479595080151357323?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/4479595080151357323/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=4479595080151357323" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/4479595080151357323?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/4479595080151357323?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2009/01/im-excited-to-speak-at-acts-as.html" title="Speaking at Acts as Conference" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C0ENSXgzfCp7ImA9WxVQEE8.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-5763377969167674727</id><published>2008-11-22T15:08:00.005-05:00</published><updated>2009-01-26T21:01:38.684-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-26T21:01:38.684-05:00</app:edited><title>Pro Ruby Conference Wrap-Up</title><content type="html">The &lt;a href="http://www.voicesthatmatter.com/ruby2008"&gt;Professional Ruby Conference&lt;/a&gt; in Boston was maybe my favorite conference yet. I really dug the intimate feel. And the single-track approach gave all attendees a common thread to engage around. It was also my first big-time talk. Rock on.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/sd/3044379546/in/set-72157609355648746"&gt;&lt;img style="cursor: pointer; width: 266px; height: 400px;" src="http://3.bp.blogspot.com/_mydlpH8rAOs/SShtRcqn6HI/AAAAAAAAAUA/rBVm62z4TDY/s400/jon_at_obieconf.jpg" alt="" id="BLOGGER_PHOTO_ID_5271583510357338226" border="0" /&gt;&lt;/a&gt;
&lt;span style="font-size:78%;"&gt;Photo credit: &lt;a href="http://flickr.com/photos/sd/3044379546/in/set-72157609355648746"&gt;Sebastian Delmont&lt;/a&gt;&lt;/span&gt;

The best part for me was seeing how one little slide at the end of my talk can make all the difference. I showed the Ruby community some love, and it came back to me many times over. It makes me feel, I dunno... vital, alive and, well, human to be a part of such a progressive, smart community. That's what I think most of us want, in the end: to engage with kick-ass people, advance the state-of-the-art, and have a blast while doing so. Thanks to everyone at the conference, and in the community, for making that a reality.

And thanks to Barbara, Debra, Olivia and people I don't even know about for organizing a great conference. Here's to the next one!

Other coverage:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://idisk.mac.com/jonlarkowski-Public/lark_testing_as_communication.pdf"&gt;Slides from my talk&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Great overall coverage from &lt;a href="http://blogs.law.harvard.edu/lianaleahy/2008/11/20/voices-that-matter-professional-ruby-conference-wrap-up/"&gt;Liana Leahy's blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;I can't believe &lt;a href="http://litanyagainstfear.com/blog/2008/11/18/professional-ruby-conference-notes"&gt;Nick Quaranto blogged the whole thing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Nick's blog entry on my talk... &lt;a href="http://litanyagainstfear.com/blog/2008/11/19/testing-as-communication-real-world-techniques-notes/"&gt;Testing as Communication: Real-World Techniques&lt;/a&gt;&lt;/li&gt;&lt;li&gt;And great &lt;a href="http://flickr.com/photos/sd/sets/72157609355648746/"&gt;pics from Sebastian Delmont&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Of course Obie: &lt;a href="http://blog.obiefernandez.com/content/2008/11/smackdown-at-pro-rubyconf-08.html"&gt;Live from Pro Rubyconf '08 / SMACKDOWN&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Send any remaining love to &lt;a href="http://www.workingwithrails.com/person/10007-jon-larkowski"&gt;my Working with Rails page&lt;/a&gt; ;)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-5763377969167674727?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/5763377969167674727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=5763377969167674727" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/5763377969167674727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/5763377969167674727?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2008/11/pro-ruby-conference-wrap-up.html" title="Pro Ruby Conference Wrap-Up" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mydlpH8rAOs/SShtRcqn6HI/AAAAAAAAAUA/rBVm62z4TDY/s72-c/jon_at_obieconf.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;CEMCQ304fSp7ImA9WxRVGE8.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-8255974539187924603</id><published>2008-11-16T01:07:00.006-05:00</published><updated>2008-11-16T03:01:02.335-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-16T03:01:02.335-05:00</app:edited><title>RubyJax turns one years old!</title><content type="html">&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"Our little RubyJax is all growns up! He's growns up and he's growns up and he's growns up!"&lt;/span&gt; - with apologies to Vince Vaughn in &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Swingers&lt;/span&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;It's been over a year since I came to &lt;a href="http://hashrocket.com/"&gt;Hashrocket&lt;/a&gt;. (Actually, I came to Hashrocket before there was a Hashrocket, but that's another story.) New in town, I was disappointed that there was no Ruby users group in Jacksonville.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Thank goodness I went to that &lt;a href="http://refreshjacksonville.org/"&gt;Refresh Jacksonville&lt;/a&gt; tech meetup. I met a bunch of great people at that meeting. Among them, a young man named &lt;a href="http://lesseverything.com/steven-bristol/"&gt;Steven Bristol&lt;/a&gt;, of a company you may know, &lt;a href="http://lesseverything.com/"&gt;Less Everything&lt;/a&gt;. He'd been wanting to start a Ruby group, and I was certainly motivated to start one as well.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;My long-time friend, and fresh Hashrocket hire,  &lt;a href="http://www.workingwithrails.com/person/9803-jim-remsik"&gt;Jim "Big Tiger" Remsik&lt;/a&gt; soon joined the fray, and &lt;a href="http://rubyjax.com/"&gt;RubyJax&lt;/a&gt; was born. Our first meeting was very well-attended and very encouraging!&lt;/div&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/jremsikjr/2082049374/"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 500px; height: 333px;" src="http://farm3.static.flickr.com/2057/2082049374_79dcffe3a9.jpg" border="0" alt="" /&gt;&lt;/a&gt;

&lt;div&gt;Since that first fateful meeting, we've covered a wide range of topics:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;RSpec
&lt;/li&gt;&lt;li&gt;bash shell
&lt;/li&gt;&lt;li&gt;spider testing
&lt;/li&gt;&lt;li&gt;advanced ActiveRecord
&lt;/li&gt;&lt;li&gt;Amazon EC2 &amp;amp; S3
&lt;/li&gt;&lt;li&gt;haml and sass
&lt;/li&gt;&lt;li&gt;pair programming
&lt;/li&gt;&lt;li&gt;jQuery, prototype, the Less Js Routes Plugin
&lt;/li&gt;&lt;li&gt;best practice patterns
&lt;/li&gt;&lt;li&gt;vim vs. TextMate
&lt;/li&gt;&lt;li&gt;testing
&lt;/li&gt;&lt;li&gt;website performance tips and tricks
&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;My particular favorites were the pair programming, and "code &amp;amp; coffee" hack sessions. I'd like to see more of those in the future.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;We've also had some great guests, including: some guy named &lt;a href="http://obiefernandez.com/"&gt;Obie&lt;/a&gt; who is big into Rails or something, &lt;a href="http://www.desimcadam.com/"&gt;Desi McAdam&lt;/a&gt; who runs &lt;a href="http://www.devchix.com/"&gt;DevChix&lt;/a&gt;, &lt;a href="http://www.tpope.net/"&gt;Tim Pope&lt;/a&gt; who &lt;span class="Apple-style-span" style="font-style: italic;"&gt;is&lt;/span&gt; &lt;a href="http://rails.vim.tpope.net/"&gt;rails.vim&lt;/a&gt;, &lt;a href="http://reinh.com/"&gt;Rein Henrichs&lt;/a&gt; who is for the moment slightly better than me at ping pong, &lt;a href="http://www.workingwithrails.com/person/6966-wilson-bilkovich"&gt;Wilson Bilkovich&lt;/a&gt; of &lt;a href="http://rubini.us/"&gt;Rubinius&lt;/a&gt; and &lt;a href="http://www.engineyard.com/"&gt;Engine Yard&lt;/a&gt; fame, and most recently Will Reed from &lt;a href="http://ask.com/"&gt;ask.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;It's been a great year. I've met some amazing people through this group. And with the exception of Steve, everyone is sharp and engaging and just generally pleasant to hang around with. ;) So, what's in store for next year? I think Big Tiger says it best:&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"RubyJax is, exactly, no more and no less than what you make it."&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;Here's to RubyJax in 2009! Thanks, beloved members, for taking the time.&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;# Lark&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;
Usual links:

* &lt;a href="http://rubyjax.com/"&gt;http://rubyjax.com&lt;/a&gt;
* &lt;a href="http://meetup.com/rubyjax"&gt;http://meetup.com/rubyjax&lt;/a&gt;
* &lt;a href="http://groups.google.com/group/rubyjax"&gt;http://groups.google.com/group/rubyjax&lt;/a&gt;
* #rubyjax on irc.freenode.net
* gcal:  &lt;a href="http://www.google.com/calendar/embed?src=4l89gdt6toa7ub2io9p6tgpfi8%40group.calendar.google.com&amp;amp;ctz=America/New_York"&gt;http://www.google.com/calendar/embed?src=4l89gdt6toa7ub2io9p6tgpfi8%40group.calendar.google.com&amp;amp;ctz=America/New_York&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-8255974539187924603?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/8255974539187924603/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=8255974539187924603" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/8255974539187924603?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/8255974539187924603?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2008/11/rubyjax-turns-one-years-old.html" title="RubyJax turns one years old!" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D0IEQ3wyfSp7ImA9WxRWGEg.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-5223902620290037674</id><published>2008-11-04T22:13:00.004-05:00</published><updated>2008-11-04T22:25:02.295-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-04T22:25:02.295-05:00</app:edited><title>See ya at RubyConf</title><content type="html">Hashrocket is off to &lt;a href="http://rubyconf.org/"&gt;RubyConf&lt;/a&gt; tomorrow! We're taking the &lt;a href="http://www.railsenvy.com/2008/8/12/the-ruby-hoedown-in-10-minutes"&gt;party RV again&lt;/a&gt; (see minute 5:27 for RV goodness, *past party performance not an indicator of future party success). See y'all there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-5223902620290037674?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/5223902620290037674/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=5223902620290037674" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/5223902620290037674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/5223902620290037674?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2008/11/see-ya-at-rubyconf.html" title="See ya at RubyConf" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkUHQH06eyp7ImA9WxRWGEg.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-6776172872298046464</id><published>2008-11-04T21:10:00.004-05:00</published><updated>2008-11-04T22:03:51.313-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-04T22:03:51.313-05:00</app:edited><title>Spot.Us is live! Open source, community-funded reporting</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/obie/2896892021"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 160px;" src="http://farm4.static.flickr.com/3256/2896892021_13f5f589cf_m.jpg" border="0" alt="" /&gt;&lt;/a&gt; Recently &lt;a href="http://spot.us/"&gt;Spot.Us&lt;/a&gt; went live! It's like micro-loans, except for journalism. Independent journalists propose stories, to be funded by regular citizens giving only small donations. With the consolidation of corporate media, and all the reporter layoffs, this is a site whose time has come.

We did this site as a &lt;a href="http://www.hashrocket.com/products"&gt;Hashrocket 3-2-1 Launch&lt;/a&gt;, coding the majority of it in just three days! Couldn't have done it without guest star help from &lt;a href="http://thoughtbot.com/"&gt;thoughtbot&lt;/a&gt;. Thanks doesn't say enough to &lt;a href="http://joeferris.me/"&gt;Joe Ferris&lt;/a&gt;, &lt;a href="http://tammersaleh.com/"&gt;Tammer Saleh&lt;/a&gt; and Hashrocket's own &lt;a href="http://www.desimcadam.com/"&gt;Desi McAdam&lt;/a&gt;.

And &lt;a href="http://www.digidave.org/"&gt;David Cohn&lt;/a&gt;, the mastermind behind it all, is one of the coolest journalism cats on the planet. Great success, dave!

But wait, there's more, it's &lt;a href="http://github.com/spot-us/spot-us/tree/master"&gt;open source on github&lt;/a&gt;.

Other coverage:&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.spot.us/2008/09/26/first-look-at-spotus-in-action/"&gt;First look at Spot.Us in Action&lt;/a&gt;, from the &lt;a href="http://blog.spot.us/"&gt;Spot.Us Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thechrisoshow.com/2008/10/2/a-peek-at-the-inner-workings-of-hashrocket"&gt;The Chris O Show: A peek at the inner workings of Hashrocket&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://tammersaleh.com/posts/rockin-jax-with-hashrocket"&gt;Rockin' JAX with Hashrocket&lt;/a&gt;, from Tammer's blog&lt;/li&gt;&lt;li&gt;&lt;a href="http://github.com/spot-us/spot-us/tree/master"&gt;http://github.com/spot-us/spot-us/tree/master&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-6776172872298046464?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/6776172872298046464/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=6776172872298046464" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/6776172872298046464?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/6776172872298046464?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2008/11/spotus-is-live-open-source-community.html" title="Spot.Us is live! Open source, community-funded reporting" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DUMBQXg5eyp7ImA9WxRWGEk.&quot;"><id>tag:blogger.com,1999:blog-5770770.post-5124227477860135368</id><published>2008-11-04T20:10:00.001-05:00</published><updated>2008-11-04T20:10:50.623-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-04T20:10:50.623-05:00</app:edited><title>beep</title><content type="html">let's try this blogging thing again...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5770770-5124227477860135368?l=blog.l4rk.com'/&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.l4rk.com/feeds/5124227477860135368/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5770770&amp;postID=5124227477860135368" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/5124227477860135368?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5770770/posts/default/5124227477860135368?v=2" /><link rel="alternate" type="text/html" href="http://blog.l4rk.com/2008/11/beep.html" title="beep" /><author><name>Jon Larkowski</name><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14711911326481729289" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
