<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Labnotes</title>
	<atom:link href="http://labnotes.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://labnotes.org</link>
	<description></description>
	<lastBuildDate>Wed, 11 Aug 2010 19:22:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vanity 1.4: Connection adapters</title>
		<link>http://labnotes.org/2010/08/11/vanity-1-4-connection-adapters/</link>
		<comments>http://labnotes.org/2010/08/11/vanity-1-4-connection-adapters/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 19:22:41 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1477</guid>
		<description><![CDATA[Vanity 1.4 introduces a lot of new features specifically around metrics and data storage.
Connection Adapters
First, connection adapters. Not just for Redis. Well, right now there are only two of them, one for Redis and one for MongoDB, but adding another database adapter is no longer a painful exercise.
In fact, here&#8217;s your chance to help. Adopt An Adapter. Either [...]]]></description>
			<content:encoded><![CDATA[<p>Vanity 1.4 introduces a lot of new features specifically around metrics and data storage.</p>
<h3>Connection Adapters</h3>
<p>First, connection adapters. Not just for Redis. Well, right now there are only two of them, one for Redis and one for MongoDB, but adding another database adapter is no longer a painful exercise.</p>
<p>In fact, here&#8217;s your chance to help. <strong>Adopt An Adapter</strong>. Either write one from scratch, or take ownership of existing adapter and make it better/faster and help maintain it in future releases.</p>
<p>Version 1.4 also introduces new configuration file, config/vanity.yml, easy way to configure adapters for different environments. For example:</p>

<div class="wp_syntax"><div class="code"><pre class="yaml" style="font-family:monospace;">production:
  adapter: mongodb
development:
  adapter: redis</pre></div></div>

<p>But you probably don&#8217;t need to configure test environment, see <em>Playground.collecting</em> below.</p>
<h3>Upgrade Your Data</h3>
<p>Rolled in there is a switch to the newer Redis library, and some cleanup to the way data is stored, which makes Vanity 1.4 <strong>incompatible</strong> with 1.3.</p>
<p>If you want to access the metric and experiment data, you need to tell Vanity to upgrade the database&#8217;s contents:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ vanity upgrade</pre></div></div>

<h3>Mock is Dead, Long Live Playground.collecting</h3>
<p>Vanity 1.3 actually had two adapters, Redis and Mock. The Mock adapter is still there in 1.4, but I&#8217;m thinking of deprecating it in favor of a different strategy.</p>
<p>Vanity 1.4 can run in two modes. When collection is turned on, it stores metrics, experiments and other state information in the database. That&#8217;s the mode you want to use in production, maybe also in development.</p>
<p>When collection is turned off, no data gets stored in the database. Some features that do need to hold state (e.g for testing different A/B paths), will hold on to it in memory, but will lose it when the playground is discarded (during test teardown). This is the mode you want to use when running unit and functional tests.</p>
<p>Under Rails, collection is turned off in all environments except production. If your development environment has more than one process you may need to turn collection on in development as well. It&#8217;s as simple as:</p>
<pre escaped="true lang="ruby"">Vanity.playground.collecting = true</pre>
<h3>Experimental</h3>
<p><a href="http://vanity.labnotes.org/experimental.html">New page</a> that covers work-in-progress features and ideas for future releases. Check it out if you want to know what the future holds, or just interested in picking a cool feature to contribute to.</p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/08/11/vanity-1-4-connection-adapters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rounded Corners 256 — Sharpening the saw</title>
		<link>http://labnotes.org/2010/07/26/rounded-corners-256-%e2%80%94-sharpening-the-saw/</link>
		<comments>http://labnotes.org/2010/07/26/rounded-corners-256-%e2%80%94-sharpening-the-saw/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 08:01:22 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1474</guid>
		<description><![CDATA[
Customizing IRB, 2010 edition. IRB customization with wirble, hirb, awesome_print and a few others choice libraries. What makes Iain&#8217;s .irbrc so awesome is the way it handles loading of dependencies (which may or may not be available).
A few git tips you didn&#8217;t know about. Guaranteed to make you a Git Ninja, or at the very least, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dadhacker.com/blog/?p=1265"><img class="size-full wp-image-1475 alignnone" title="I just adopted the new revised release calendar. What about you?" src="http://labnotes.org/wp-content/uploads/2010/07/new-release-calendar.png" alt="" width="500" height="359" /></a><br />
<strong><a href="http://iain.nl/2010/07/customizing-irb-2010-edition/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+iain-nl+%28iain.nl%29">Customizing IRB, 2010 edition.</a></strong> IRB customization with <a href="http://pablotron.org/software/wirble/">wirble</a>, <a href="http://tagaholic.me/hirb/">hirb</a>, <a href="http://github.com/michaeldv/awesome_print">awesome_print</a> and a few others choice libraries. What makes <a href="http://github.com/iain/osx_settings/blob/master/.irbrc">Iain&#8217;s .irbrc so awesome</a> is the way it handles loading of dependencies (which may or may not be available).</p>
<p><strong><a href="http://mislav.uniqpath.com/2010/07/git-tips/">A few git tips you didn&#8217;t know about.</a><span style="font-weight: normal;"> Guaranteed to make you a Git Ninja, or at the very least, much more productive with the command line.</span></strong></p>
<p><strong><a href="http://superuser.com/questions/52483/terminal-tips-and-tricks-for-mac-os-x">Terminal Tips and Tricks For Mac OS X</a></strong><strong>.</strong> Just what it says on the label.</p>
<p><strong><a href="http://upstart.ubuntu.com/">Upstart — event-based init daemon.</a> </strong>The new alternative to sysvinit. Not so new chronologically, but probably new to you. If you&#8217;ve using God or Nagios, <a href="http://dustin.github.com/2010/02/28/running-processes.html">consider upstarting </a>some of that.</p>
<p><strong><a href="https://chrome.google.com/extensions/detail/alelhddbbhepgpmgidjdcjakblofbmce#">Awesome Screenshot: Capture &amp; Annotate.</a></strong> This extension (Chrome only) makes screen capture and sharing so easy.</p>
<p><em>Incidentally, screenshot of the </em><a href="http://www.dadhacker.com/blog/?p=1265"><em>New revised release calendar</em></a><em>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/07/26/rounded-corners-256-%e2%80%94-sharpening-the-saw/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What&#8217;s on your iPad (that you&#8217;d recommend in a heartbeat)</title>
		<link>http://labnotes.org/2010/06/29/whats-on-your-ipad-that-youd-recommend-in-a-heartbeat/</link>
		<comments>http://labnotes.org/2010/06/29/whats-on-your-ipad-that-youd-recommend-in-a-heartbeat/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 23:28:58 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1442</guid>
		<description><![CDATA[Creating
 Simplenote — Simple clutter-free UI, instant synchronization, iPad and iPhone apps, JustNotes on the Mac, Web access. My go-to note taking, idea dumping, list making, unstructured todo. Should come bundled in iOS instead of Notes.
 Evernote — As much as I love the simplicity of Simplenote, I do end up using Evernote more often. [...]]]></description>
			<content:encoded><![CDATA[<h3>Creating</h3>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Simplenote1.png" alt="" title="Simplenote" width="64" height="64" class="alignleft size-full wp-image-1459" /> <strong><a href="http://simplenoteapp.com/">Simplenote</a></strong> — Simple clutter-free UI, instant synchronization, iPad and iPhone apps, <a href="http://selfcoded.com/justnotes/">JustNotes</a> on the Mac, <a href="https://simple-note.appspot.com/index.html">Web access</a>. My go-to note taking, idea dumping, list making, unstructured todo. Should come bundled in iOS instead of Notes.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Evernote1.png" alt="" title="Evernote" width="64" height="64" class="alignleft size-full wp-image-1460" /> <strong><a href="http://www.evernote.com/">Evernote</a></strong> — As much as I love the simplicity of Simplenote, I do end up using Evernote more often. With its multiple notebooks, Web clipper, PDF and image storage, Evernote is my big bucket of bits. I store more stuff for longer, using Simplenote mostly for short-term notes (some of which get copied to and archived in Evernote).</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Adobe®-Ideas-1.0-for-iPad1.png" alt="" title="Adobe®-Ideas-1.0-for-iPad" width="64" height="64" class="alignleft size-full wp-image-1461" /> <a href="http://itunes.apple.com/us/app/adobe-ideas-1-0-for-ipad/id364617858?mt=8"><strong>Adobe Ideas</strong></a> — Did you know Adobe made one of the first, decent, native iPad apps? That alone is worth a few points. Besides, it&#8217;s a great little apple for sketching out ideas, annotating screenshots and the occasional doodle.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/iMockups-for-iPad1.png" alt="" title="iMockups-for-iPad" width="64" height="64" class="alignleft size-full wp-image-1462" /> <a href="http://itunes.apple.com/us/app/imockups/id364885913?mt=8"><strong>iMockups</strong></a> — It&#8217;s more fun to use than mockup apps on the Mac (although not necessarily quicker), and I find it helps (a lot) to do early design work on the single-tasking iPad. Focus. Will set you back $10, though.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Popplet1.png" alt="" title="Popplet" width="64" height="64" class="alignleft size-full wp-image-1463" /> <a href="http://itunes.apple.com/us/app/popplet-lite/id364738549?mt=8"><strong>Popplet</strong></a> — Popplet exists somewhere between mind-mapping, single-person brain-storming and collaging. The UI is incredibly easy and smooth that I don&#8217;t have to think about it, what you&#8217;d expect from a true iPad app. This one works, where all the other mind-mapping tools I tried felt lacking. (Tip: there&#8217;s a free lite version you can try out)</p>
<h3>Consuming</h3>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Reeder-for-iPad1.png" alt="" title="Reeder-for-iPad" width="64" height="64" class="alignleft size-full wp-image-1464" /> <a href="http://itunes.apple.com/us/app/reeder/id325502379?mt=8"><strong>Reeder</strong></a> — One of, if not the best iPad app. After Reeder came out I stopped reading feeds on the Mac, at the same time subscribed to more feeds to read. The only feed reader that comes close is Reeder on the iPhone, which I keep around for the occasional DMV visit or weekend Costco check-out line.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Instapaper1.png" alt="" title="Instapaper" width="64" height="64" class="alignleft size-full wp-image-1465" /> <a href="http://itunes.apple.com/us/app/instapaper-pro/id288545208?mt=8"><strong>Instapaper</strong></a> — Instapaper guarantees that I will always have more to read than time to read.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Air-Video-Watch-your-videos-anywhere1.png" alt="" title="Air-Video-Watch-your-videos-anywhere" width="64" height="64" class="alignleft size-full wp-image-1466" /> <a href="http://itunes.apple.com/us/app/air-video-watch-your-videos/id306550020?mt=8"><strong>AirVideo</strong></a> — AirVideo is my Instapaper for videos. Download talks and presentations with <a href="http://clicktoflash.com/">ClickToFlash</a>, organize and store on the Mac, watch on the treadmill. (Tip: you can boost the volume louder and zoom in before hitting Play)</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Dropbox1.png" alt="" title="Dropbox" width="64" height="64" class="alignleft size-full wp-image-1467" /> <a href="http://itunes.apple.com/us/app/dropbox/id327630330?mt=8"><strong>Dropbox</strong></a> — DropBox is the easiest way to access files away from the computer. Mark a file as favorite and DropBox will download it and store a copy on your iPad (or iPhone). I use it to read books and reference material (PDFs mostly) offline, and sync videos when traveling (no cable required). (Tip: it can also view Pages, Numbers and many other file types, or open them in dedicated app)</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Kindle1.png" alt="" title="Kindle" width="64" height="64" class="alignleft size-full wp-image-1468" /> <a href="http://itunes.apple.com/us/app/kindle/id302584613?mt=8"><strong>Kindle</strong></a> — Truth is, between Reader, Instapaper, AirVideo and a healthy appreciation for sleep, it&#8217;s been long since I last looked at a book, but mentioning a book reader app makes me look more worldly. Also, I got two books waiting to be finished.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Netflix1.png" alt="" title="Netflix" width="64" height="64" class="alignleft size-full wp-image-1469" /> <a href="http://itunes.apple.com/us/app/netflix/id363590051?mt=8"><strong>NetFlix</strong></a> — It&#8217;s like having a TV in every room, except the volume could use some boost (AirVideo got that part right)</p>
<p><br style="clear:both"/><br />
I tweet a lot from the iPad, I use Twitterific for that, but I&#8217;m eager to replace it with a better Twitter client (anyone know what happened to Tweetie?). This list is for apps I&#8217;d recommend to others.</p>
<h3>Helping Hand</h3>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/1Password-Pro2.png" alt="" title="1Password-Pro" width="64" height="64" class="alignleft size-full wp-image-1471" /> <strong><a href="http://itunes.apple.com/us/app/1password-pro/id319898689?mt=8">1Password</a></strong> — Rule #1: use a unique password for every site, that way if one site gets compromised, the rest of your online life remains unharmed. Rule #2: use a password manager to prevent entering passwords into phishing sites. Hence, 1Password installed on both iPhone and iPad.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/WeatherBug-Elite-for-iPad1.png" alt="" title="WeatherBug-Elite-for-iPad" width="64" height="64" class="alignleft size-full wp-image-1472" /> <a href="http://itunes.apple.com/us/app/weatherbug-elite-for-ipad/id363235774?mt=8"><strong>WeatherBug</strong></a> — What is it about iPad apps that make you walk across the room, turn the iPad on and fire up the app, even though you were just sitting in front of a powerful computer with x5 the screen real-estate? Let me rephrase: how come no one managed to create a weather site that doesn&#8217;t suck? At least we got an app for that.</p>
<p><img src="http://labnotes.org/wp-content/uploads/2010/06/Dictionary.com-Dictionary-Thesaurus-For-iPad1.png" alt="" title="Dictionary.com-Dictionary-Thesaurus-For-iPad" width="64" height="64" class="alignleft size-full wp-image-1473" /> <a href="http://itunes.apple.com/us/app/dictionary-for-ipad/id364879902?mt=8"><strong>Dictionary</strong></a> — Because my spelling needs all the help it can get.</p>
<p><br style="clear:both"/><br />
Of course I have other stuff, 3 screenfuls of apps, but these are the ones I keep coming back to, the ones I couldn&#8217;t live with out. Well, I could, life just wouldn&#8217;t be as awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/06/29/whats-on-your-ipad-that-youd-recommend-in-a-heartbeat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rounded Corners 255 — You are what you click</title>
		<link>http://labnotes.org/2010/06/14/rounded-corners-255-%e2%80%94-you-are-what-you-click/</link>
		<comments>http://labnotes.org/2010/06/14/rounded-corners-255-%e2%80%94-you-are-what-you-click/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 05:45:21 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1441</guid>
		<description><![CDATA[
You are what you click. Everything you wanted to know about user behavior tracking with Google Analytics, Garb and Vanity. By Tony Pitale, for RailsConf 2010.
Cheating. Finally, cheat sheet for jQuery 1.4.2.
HTTP, meet CLI. Move over curl, there&#8217;s a new and better way to HTTP from the console.
Better reading. An interesting read from Phil Gyford on [...]]]></description>
			<content:encoded><![CDATA[<p><video src="http://www.youtube.com/get_video?fmt=18&amp;video_id=gXo2nm2ODF0&amp;t=vjVQa1PpcFOYhhVOnwPw6YvEB0RQc1S-9cWDcmTJHWA%3D" poster="http://img.youtube.com/vi/gXo2nm2ODF0/0.jpg" controls="controls" width="100%"></video></p>
<p><strong>You are what you click.</strong> Everything you wanted to know about <a href="http://www.slideshare.net/tpitale/user-behavior-tracking-with-google-analytics-garb-and-vanity">user behavior tracking with Google Analytics, Garb and Vanity</a>. By <a href="http://t.pitale.com/">Tony Pitale</a>, for RailsConf 2010.</p>
<p><strong>Cheating.</strong> Finally, <a href="http://woorkup.com/2010/06/13/jquery-1-4-2-visual-cheat-sheet/">cheat sheet for jQuery 1.4.2</a>.</p>
<p><strong>HTTP, meet CLI.</strong> Move over curl, there&#8217;s a new and better way to <a href="http://github.com/cloudhead/http-console">HTTP from the console</a>.</p>
<p><strong>Better reading.</strong> An interesting read from Phil Gyford on the design of <a href="http://guardian.gyford.com/">Today&#8217;s Guardian</a>, and how he went opposite of newspapers by <a href="http://www.gyford.com/phil/writing/2010/06/09/todays-guardian.php">paying close attention to friction, readability and finishability</a>.</p>
<p><strong>Postmodern databases.</strong> You can spot them a mile away by the <a href="http://www.xaprb.com/blog/2010/06/12/postmodern-databases/">absence of objective truth, and queries that return opinions</a>, not facts. Also, by most people calling them NoSQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/06/14/rounded-corners-255-%e2%80%94-you-are-what-you-click/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My development stack</title>
		<link>http://labnotes.org/2010/06/06/my-development-stack/</link>
		<comments>http://labnotes.org/2010/06/06/my-development-stack/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 02:45:01 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1439</guid>
		<description><![CDATA[The best part about working with frameworks and libraries is that you don&#8217;t have to reinvent the wheel.  Someone else did the hard work, and there&#8217;s usually more hard work than meets the eye.
The downside is that they&#8217;re never perfect. Other people&#8217;s code may be less buggy than mine, but I still run into bugs [...]]]></description>
			<content:encoded><![CDATA[<p>The best part about working with frameworks and libraries is that you don&#8217;t have to reinvent the wheel.  Someone else did the hard work, and there&#8217;s usually more hard work than meets the eye.</p>
<p>The downside is that they&#8217;re never perfect. Other people&#8217;s code may be less buggy than mine, but I still run into bugs that I need to patch.  Then there are incompatibility issues, behavior changes from one release to another, and features I have to extend to meet my specific needs.</p>
<p>Some frameworks and libraries are good for that.  Some, whatever you gained from using them is quickly lost when you have to debug their complex code, get surprised by changing behavior, or struggle to extend them. More than once, I wasted more time using a library than it would take to write it myself.</p>
<p>Over time I settled on a few choice frameworks and libraries where the balance was in favor of saving time and building from other people&#8217;s expertise. Those may not be the most popular choices out there in Ruby land, but they proved to have the best return-on-investment for me. Here&#8217;s a list of my current development stack.</p>
<p><a href="http://gembundler.com/">Bundler</a> — I work on several projects at once, maintaining a single environment for all of them is impossible. Bundler makes the Gem management pain go away. Switch to a different project, or even branch within that project, run <em>bundle exec bash</em> and you&#8217;re done. Also works great when deploying and getting the right environment in production.</p>
<p><a href="http://www.capify.org/index.php/Capistrano">Capistrano</a> — Speaking of deploying, I have some misgivings about Capistrano, but overall it&#8217;s great.</p>
<p><a href="http://rake.rubyforge.org/">Rake</a> — Great for breaking complex jobs into smaller tasks. It&#8217;s easier to develop and test when working one task at a time, it also allows complex jobs to pick up they left off, for example, when you bump into a bug or the unexpected.</p>
<p><a href="http://unicorn.bogomips.org/">Unicorn</a> — My production Web server of choice. I also use it for development. The fact that you can run two or more processes at once makes it faster than Webrick, and when you&#8217;re doing UI work, waiting for Webrick is cycles.</p>
<p><a href="http://github.com/defunkt/resque">Resque</a> — If it doesn&#8217;t have to be done synchronously, I push it off to a Resque worker.</p>
<p><a href="http://github.com/assaf/pipemaster">Pipemaster</a> — Pre-forking server for commands. Think Unicorn (and much of the same code base) but for requests that don&#8217;t come through the Web: cron jobs, command line, inbound emails, etc. I also use it to manage my Resque workers, since it&#8217;s able to hot-deploy new code with a <em>kill -USR2</em>.</p>
<p><a href="http://www.padrinorb.com/">Padrino</a> — A Web framework based on Sinatra. If you like fast, simple and less layers of abstraction between you and HTTP, you ought to check it out.</p>
<p>JSON/JQT — More and more of the UI I&#8217;m working on is going down the path of static HTML pages, JSON data and jQuery templates. Static HTML is easy to cache (on server or client), and JSON data means less load and higher latency. It also doubles as an API.</p>
<p><a href="http://vanity.labnotes.org/">Vanity</a> – I use it for A/B testing and as a metrics dashboard. Some of the metrics come from Google Analytics, some from database queries, or collected by Vanity. Having them all in one place is the easiest way to stay on top of things.</p>
<p><a href="http://mongomapper.com/">MongoMapper</a> — I recently moved away from MySQL to MongoDB. Lots of reasons. MongoMapper is similar in spirit to ActiveRecord, and the API is similar in many ways, but it&#8217;s not a drop-in replacement. I&#8217;d say it&#8217;s re-imagining what an ORM should be for MongoDB. Love it so far.</p>
<p><a href="http://github.com/cpowell/sysloglogger">SyslogLogger</a> — All the logs from all the processes and up in syslog.</p>
<p><a href="http://github.com/thoughtbot/shoulda">Shoulda</a> — The best ideas of BDD with the bullet-proof simplicity of asserts. I use it for unit, functional and integration tests (the later in combination with <a href="http://github.com/brynary/webrat">Webrat</a>).</p>
<p><a href="http://oauth.rubyforge.org/">OAuth</a>/<a href="http://github.com/intridea/oauth2">OAuth2</a> — You already have a Twitter/Facebook/Google account, why not use it to log on?</p>
<p><a href="http://jquery.com/">jQuery</a> — D&#8217;oh.</p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/06/06/my-development-stack/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Rounded Corners 254 — Hello World</title>
		<link>http://labnotes.org/2010/05/12/rounded-corners-254-%e2%80%94-hello-world/</link>
		<comments>http://labnotes.org/2010/05/12/rounded-corners-254-%e2%80%94-hello-world/#comments</comments>
		<pubDate>Wed, 12 May 2010 17:30:35 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1438</guid>
		<description><![CDATA[Hilarious. A Brief, Incomplete, and Mostly Wrong History of Programming Languages, starting with:
1801 &#8211; Joseph Marie Jacquard uses punch cards to instruct a loom to weave &#8220;hello, world&#8221; into a tapestry. Redditers of the time are not impressed due to the lack of tail call recursion, concurrency, or proper capitalization.
Patent pending. Just watched Patent Absurdity: [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Hilarious.</strong> A Brief, Incomplete, and <a href="http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html">Mostly Wrong History of Programming Languages</a>, starting with:</p>
<blockquote><p>1801 &#8211; Joseph Marie Jacquard uses punch cards to instruct a loom to weave &#8220;hello, world&#8221; into a tapestry. Redditers of the time are not impressed due to the lack of tail call recursion, concurrency, or proper capitalization.</p></blockquote>
<p><strong>Patent pending.</strong> Just watched <a href="http://patentabsurdity.com/">Patent Absurdity</a>: how software patents broke the system.</p>
<p><strong>In practice.</strong> Currently getting familiar and productive with: <a href="http://www.mongodb.org/">MonogoDB</a>, <a href="http://mongomapper.com/">MongoMapper</a>, <a href="http://www.padrinorb.com/">Padrino</a>, <a href="http://github.com/pelle/oauth">OAuth</a>, <a href="http://github.com/jquery/jquery-tmpl">jQuery templating</a>.</p>
<p><strong>Re-reader.</strong> If you like Google Reader as a feed reader, but don&#8217;t like the clutter, give it <a href="http://johnholdun.com/re-reader/">the minimalistic re-reader treatment</a>:</p>
<blockquote><p>I’d seen things like <a href="http://helvetireader.com/">Helvetireader</a>, which is quite lovely, but still doesn’t solve my problems. I wanted the ease of use I had with Reader, combined with a visual experience more like <a href="http://lab.arc90.com/experiments/readability/">Readability</a> or <a href="http://instapaper.com/">Instapaper</a>. Now I have it.</p></blockquote>
<p><strong>200 Drink.</strong> When Friday comes and you&#8217;ve got nothing better to do in front of the screen, play <a href="http://statuscodedrinkinggame.com/">the status code drinking game</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/05/12/rounded-corners-254-%e2%80%94-hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I </title>
		<link>http://labnotes.org/2010/04/02/i/</link>
		<comments>http://labnotes.org/2010/04/02/i/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 21:11:36 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1435</guid>
		<description><![CDATA[Ran into this problem with Yaketee, where we can geocode many of our visitors — 66.06% of you are using Firefox — but what do you do about everyone else?
So I added a map you can navigate. You can pan it around, move the center mark (the motorcycle, but you get different mark each time), or [...]]]></description>
			<content:encoded><![CDATA[<p>Ran into this problem with <a href="http://yaketee.com/">Yaketee</a>, where we can geocode many of our visitors — 66.06% of you are using Firefox — but what do you do about everyone else?</p>
<p>So I added a map you can navigate. You can pan it around, move the center mark (the motorcycle, but you get different mark each time), or do quick search for an address.</p>
<p>These may be easy and fun, but they&#8217;re not easily discoverable, which means we need something better. Meanwhile I resorted to the &#8220;if all else fails, document&#8221; approach and added instructions, which I thought would look cool hanging off the left of the map. Something less … ahem … instructional.</p>
<p>How do you tilt dynamic text?  With two lines of CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">-webkit-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-12deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
-moz-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-12deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>Granted it won&#8217;t work with IE, but then only 2.3% of our visitors are brave enough to surf the Interwebs with IE.</p>
<p><a href="http://yaketee.com"><img class="alignnone size-full wp-image-1436" title="CSS transform" src="http://labnotes.org/wp-content/uploads/2010/04/CSS-transform.png" alt="" width="600" height="500" /></a></p>
<p>BTW the arrow is not canvas, not yet anyway, but the image is background and made lighter with <em>opacity: 0.5</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/04/02/i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rounded Corners 253 — Some days the coffee makes you</title>
		<link>http://labnotes.org/2010/03/30/rounded-corners-253-%e2%80%94-some-days-the-coffee-makes-you/</link>
		<comments>http://labnotes.org/2010/03/30/rounded-corners-253-%e2%80%94-some-days-the-coffee-makes-you/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 08:37:03 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1433</guid>
		<description><![CDATA[
Reverse cache like there&#8217;s no tomorrow. It&#8217;s 2010, and you&#8217;d expect people who still think Ruby can&#8217;t scale to be invested in that belief of theirs. I&#8217;d rather read about the One True tab spacing then yet-another-article-about-scalbility-myths. In spite of that, the second part of this article is excellent, and whipping out a minimal reverse [...]]]></description>
			<content:encoded><![CDATA[<p><a title="I need this shirt!" href="http://blog.seanbonner.com/2010/03/11/i-made-a-coffee-t-shirt/"><img class="alignnone size-full wp-image-1434" title="coffee" src="http://labnotes.org/wp-content/uploads/2010/03/coffee.jpg" alt="" width="399" height="277" /></a></p>
<p><strong>Reverse cache like there&#8217;s no tomorrow.</strong> It&#8217;s 2010, and you&#8217;d expect people who still think Ruby can&#8217;t scale to be invested in that belief of theirs. I&#8217;d rather read about the One True tab spacing then yet-another-article-about-scalbility-myths. In spite of that, <a href="http://www.engineyard.com/blog/2010/architecture-wins-varnish-and-more/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+engineyard+%28Engine+Yard%29&amp;utm_content=Google+Reader">the second part of this article</a> is excellent, and whipping out a minimal reverse caching proxy to yield 10x performance improvement is smart. And you don&#8217;t have to use Ruby:</p>
<blockquote><p>The end result is a caching reverse proxy with very few tuning knobs, and behavior that’s not quite HTTP 1.1 correct, but that is very fast, stable, and hackable. It’s probably not actually as fast as it <em>could</em> be, since I piggy backed the implementation onto something that’s doing more than I really need, but it’s good enough</p></blockquote>
<p><strong>RESTfully yours.</strong> Part of adding geo-locations to <a href="http://yaketee.com/">Yaketee</a> is finding a database of existing spots we can reuse. A database we can actually use – pro tip: read the terms of service fully before investing in anything. Ideally, a database we&#8217;ll enjoy and learning something from using. Enter the Gowalla API. Like everything else they do it&#8217;s smart, simple and meticulous. If you want to learn how to do a RESTful JSON interface right, do <a href="http://gowalla.com/api/docs">check it out</a>.</p>
<p><strong>Matter of perspective.</strong> It&#8217;s been too long to remember, but it feels right. <a href="http://twitter.com/dlsspy/status/8914952195">Dustin Sallings</a> (via <a href="http://plasmasturm.org/log/unlearnsvn/">Aristotle Pagaltzis</a>):</p>
<blockquote><p>git doesn&#8217;t have a high learning curve. svn has a high unlearning curve. observe the difference in those familiar with neither.</p></blockquote>
<p><strong>Be specific.</strong> <a href="http://www.iamcal.com/issue-tracking/#comment1188">Follow this good advice</a> (&lt;- walking the walk):</p>
<blockquote><p>The one thing I&#8217;ve ever found truly important in issue trackers is that people who submit tickets start the names with verbs. I&#8217;m looking at your screenshots and seeing &#8220;better variable naming&#8221; and crying just a little bit inside .We&#8217;ve got a rule of thumb inside Stamen that issue names must read like imperatives: &#8220;improve variable names&#8221;, &#8220;delete blah functionality&#8221;, &#8220;fix broken jimmy-jammers&#8221;, etc. Nothing focuses the mind of the reporter like being asked to specify what exactly they&#8217;d like to see done, and it&#8217;s much easier for a developer to scan a list with actual tasks right in the sentence construction.</p></blockquote>
<p><strong>Salt your coffee. </strong> <a href="http://blog.khymos.org/2010/03/21/a-pinch-of-salt-for-your-coffee-sir/">No, seriously</a> (I have not yet tried it myself, just passing along):</p>
<blockquote><p>The first thing that comes to mind is that salt reduces bitterness. And to be more precise it is the sodium ion (Na<sup>+</sup>) that interferes with the transduction mechanism of bitter tas</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/03/30/rounded-corners-253-%e2%80%94-some-days-the-coffee-makes-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rounded Corners 252 — Fix the Interwebs</title>
		<link>http://labnotes.org/2010/03/17/rounded-corners-252-%e2%80%94-fix-the-interwebs/</link>
		<comments>http://labnotes.org/2010/03/17/rounded-corners-252-%e2%80%94-fix-the-interwebs/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 02:26:44 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1431</guid>
		<description><![CDATA[
Fix the Interwebs. You don&#8217;t have to be a grammar nazi to love Emend.  It&#8217;s a simple app that lets you submit corrections to other people&#8217;s sites with the click of a bookmarklet.  Here are all the corrections submitted against Labnotes. Simple. Awesome.
Another craving satisfied. Ikea SIGNUM Cord Management. What it says on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.designboom.com/weblog/cat/8/view/9492/quinze-milan-eastpak-built-to-resist.html"><img class="alignnone size-full wp-image-1432" title="quin01" src="http://labnotes.org/wp-content/uploads/2010/03/quin01.jpg" alt="" width="550" height="335" /></a></p>
<p><strong>Fix the Interwebs.</strong> You don&#8217;t have to be a grammar nazi to <a href="http://www.emendapp.com/">love Emend</a>.  It&#8217;s a simple app that lets you submit corrections to other people&#8217;s sites with the click of a bookmarklet.  Here are all the corrections <a href="http://www.emendapp.com/search/edits?q=labnotes">submitted against Labnotes</a>. Simple. Awesome.</p>
<p><strong>Another craving satisfied.</strong> <a href="http://www.ikea.com/us/en/search/?query=signum&amp;category=products&amp;range_subcategory=16195&amp;name_subcategory=Cable+management&amp;sorting=relevance">Ikea SIGNUM Cord Management</a>. What it says on the label. You can find better porn <a href="http://www.unplggd.com/unplggd/organizing/ikea-signum-cord-management-111477">shots of these on Unplggd</a>.</p>
<p><strong>MGET. <span style="font-weight: normal;"><a href="http://masonoise.wordpress.com/2010/03/17/redis-cheat-sheet-v1-0/">Redis cheat sheet</a>.</span></strong></p>
<p><strong>Score card.</strong> <a href="http://a.deveria.com/caniuse/">When can I use …</a> tells you which HTML5/CSS3/SVG features are supported in which browser. In short, we&#8217;re waiting for IE to die out.</p>
<p><strong>Where we go each day.</strong> Infographic of <a href="http://www.fastcompany.com/1583565/infographic-of-the-day-comparing-the-100-largest-sites-on-the-internet">the 100 largest sites</a> on the Internet.</p>
<p><sub>Photo: <a href="http://www.designboom.com/weblog/cat/8/view/9492/quinze-milan-eastpak-built-to-resist.html">most awesome couch ever</a>.</sub></p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/03/17/rounded-corners-252-%e2%80%94-fix-the-interwebs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rounded Corners 251 — The darkest URL</title>
		<link>http://labnotes.org/2010/03/16/rounded-corners-251-%e2%80%94-the-darkest-url/</link>
		<comments>http://labnotes.org/2010/03/16/rounded-corners-251-%e2%80%94-the-darkest-url/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 06:14:33 +0000</pubDate>
		<dc:creator>Assaf</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://labnotes.org/?p=1430</guid>
		<description><![CDATA[
ETA. Check out Culture Code&#8217;s Arrivals page. It let&#8217;s you know which features are coming to Things and when. It&#8217;s also sexy as hell.
Neat trick. Publish videos using the HTML5 video tag and include this script to make the page fall-back to legacy technology on browsers that don&#8217;t support HTML5.
This could be epic. gem man
EM.run Everything [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://halfwaycinema.tumblr.com/post/326990418/2001-a-space-odyssey-1968-1-14-20"><img class="alignnone" src="http://29.media.tumblr.com/tumblr_kw02i5czwM1qaw41mo1_500.png" alt="" width="500" height="228" /></a></p>
<p><strong>ETA.</strong> Check out <a href="http://culturedcode.com/status/">Culture Code&#8217;s Arrivals page</a>. It let&#8217;s you know which features are coming to Things and when. It&#8217;s also sexy as hell.</p>
<p><strong>Neat trick.</strong> Publish videos using the HTML5 <em>video</em> tag and <a href="http://code.google.com/p/html5media/">include this script </a>to make the page fall-back to legacy technology on browsers that don&#8217;t support HTML5.</p>
<p><strong>This could be epic.</strong> <a href="http://ozmm.org/posts/man_what.html">gem man</a></p>
<p><strong>EM.run <span style="font-weight: normal;"><a href="http://timetobleed.com/eventmachine-scalable-non-blocking-io-in-ruby/">Everything you wanted to know about EventMachine</a> and didn&#8217;t know who to ask. (Skip the blocking Flash and <a href="http://dl.dropbox.com/u/635/em_export.pdf">get the PDF</a>)</span></strong></p>
<p><strong>The darkest URL. <span style="font-weight: normal;"><a href="http://www.intranetsecrets.com/">Intranet Secret</a> scatalogs secrets to one of the darkest places of business life: the corporate Intranet.</span></strong></p>
<p><strong><span style="font-weight: normal;"><em>Photo, from </em><a href="http://halfwaycinema.tumblr.com"><em>Halfway Cinema</em></a><em>, a blog that captures the exact mid-point of various movies.</em></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://labnotes.org/2010/03/16/rounded-corners-251-%e2%80%94-the-darkest-url/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
