<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Ruby/Rails developer and designer in London.

Here are articles that I’ve read and found interesting, mostly from places like Hacker News and a collection of RSS feeds that I follow. It’s mainly here for my own records but you’re welcome to follow me.

I’m starring items I find in Google Reader (using Byline) and using ifttt to publish them to Tumblr. This way I can read and reblog articles on the tube (London underground) where there is no Internet connection.

You can also subscribe via email if you like</description><title>Finds by @samoli</title><generator>Tumblr (3.0; @samoli)</generator><link>http://samoliver.com/</link><item><title>Convert Ruby 1.8 to 1.9 hash syntax</title><description>&lt;p&gt;In vim, for an entire file:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;:%s/:\([^ ]*\)\(\s*\)=&gt;/\1:/g
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In the shell, for an entire project:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;perl -pi -e 's/:([\w\d_]+)(\s*)=&gt;/\1:/g' **/*.rb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now, instead of those old-school hashes like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;get '/', :agent =&gt; MOBILE_BROWSERS do
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You’ll have new-school hashes like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;get '/', agent: MOBILE_BROWSERS do
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/wsaZiz"&gt;giant robots smashing into other giant robots&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/17501142298</link><guid>http://samoliver.com/post/17501142298</guid><pubDate>Sun, 12 Feb 2012 14:03:20 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>After Years Of Drilling, Antarctic Lake Will Be Reached</title><description>&lt;span&gt;
														&lt;span&gt;By Katia Moskvitch&lt;/span&gt;
				&lt;span&gt;Science reporter, BBC News&lt;/span&gt;
			&lt;/span&gt;
		        
        &lt;div&gt;
  &lt;img src="http://bit.ly/xJzSdk" width="464" height="261" alt="Lake Vostok"/&gt;&lt;span style="width:464px"&gt;The first satellite images of Lake Vostok were obtained in the 1990s&lt;/span&gt;
  &lt;/div&gt;
	&lt;div&gt;
		&lt;a href="http://bbc.in/wzr5sk"&gt;Continue reading the main story&lt;/a&gt;		&lt;h2&gt;Related Stories&lt;/h2&gt;
		&lt;ul&gt;&lt;li&gt;&lt;a href="http://bbc.in/xi7wSp"&gt;In Pictures: The hidden lake&lt;/a&gt;&lt;/li&gt;
											&lt;li&gt;&lt;a href="http://bbc.in/x4gxSI"&gt;New lakes beneath Antarctic ice&lt;/a&gt;&lt;/li&gt;
											&lt;li&gt;&lt;a href="http://bbc.in/xKolGY"&gt;Secret rivers found in Antarctic&lt;/a&gt;&lt;/li&gt;
								&lt;/ul&gt;&lt;/div&gt;
                      &lt;p&gt;With only about 50m left to drill, time is running out for the Russian scientists hoping to drill into Vostok - the world’s most enigmatic lake.&lt;/p&gt;
        &lt;p&gt;Vostok is a sub-glacial lake in Antarctica, hidden some 4,000m (13,000ft) beneath the ice sheet.&lt;/p&gt;
        &lt;p&gt;With the Antarctic summer almost over, temperatures will soon begin to plummet; they can go as low as -80C.&lt;/p&gt;
        &lt;p&gt;Scientists will leave the remote base on 6 February, when conditions are still mild enough for a plane to land.&lt;/p&gt;
        &lt;p&gt;The team has been drilling non-stop for weeks. &lt;/p&gt;
        &lt;p&gt;“It’s like working on an alien planet where no one has been before,” Valery Lukin, the deputy head of Russia’s Arctic and Antarctic Research Institute (AARI) in St Petersburg, which oversees the project, told BBC News.&lt;/p&gt;
        &lt;p&gt;“We don’t know what awaits us down there,” he said, adding that personnel at the station have been working shifts, drilling 24 hours a day.&lt;/p&gt;
  
      &lt;p&gt;But some experts remain concerned that probing the lake’s water - thought by some to be isolated from everything else on Earth - could contaminate the pristine ecosystem and cause irreversible damage.&lt;/p&gt;
        &lt;p&gt;The sub-glacial lake is located underneath the remote Vostok station in Antarctica.&lt;/p&gt;
        &lt;p&gt;Overlaid by nearly 4km of ice, it has been isolated from the rest of the world for millions of years. Some scientists think the ice cap above and at the edges has created a hydrostatic seal with the surface, preventing lake water from escaping or anything else from getting inside.   &lt;/p&gt;
        &lt;p&gt;And if the Russian team gets through to the pristine waters, they hope to encounter life forms that have never been seen. &lt;/p&gt;
  &lt;span&gt;Astonishing discovery&lt;/span&gt;
	      &lt;p&gt;It was at the Vostok station that the coldest temperature ever found on Earth (-89°C) was recorded on 21 July 1983. &lt;/p&gt;
        &lt;p&gt;Normally, water in such extreme conditions exists only in one state: ice. And when, in the 1970s British scientists in Antarctica received strange radar readings at the site, the presence of a liquid, freshwater lake below the ice did not instantly spring to mind.&lt;/p&gt;
        &lt;p&gt;It was not until 1996 that the discovery was formally acknowledged, after satellites sent in the images outlining the lake’s contours. &lt;/p&gt;
        &lt;p&gt;Space radar revealed that the sub-glacial body of fresh water was one of the largest lakes in the world - and one of some 150 subglacial lakes in Antarctica. &lt;/p&gt;
        &lt;p&gt;At 10,000 square km and with depths reaching 800m, it is similar to Lake Baikal in Siberia or Lake Ontario in North America. &lt;/p&gt;
        &lt;p&gt;Since the lake has remained sealed off from the rest of the world, scientists estimate that conditions in it have probably remained unchanged for some 15 million years.&lt;/p&gt;
        &lt;p&gt;For liquid water to exist in Antarctica, glaciologists suggest that the ice cap serves as a giant insulating blanket, able to capture the Earth’s geothermal heat to melt the bottom of the ice sheet. &lt;/p&gt;
        &lt;p&gt;Eager to explore the ancient lake, scientists started drilling and managed to go as deep as about 3,600m - but when the untouched waters were only some 130m away, in 1998, the project ground to a halt. &lt;/p&gt;
  &lt;div&gt;
  &lt;img src="http://bit.ly/xgHMh8" width="464" height="261" alt="Vostok station, Antarctica"/&gt;&lt;span style="width:464px"&gt;Antarctica’s Vostok station was built in 1956&lt;/span&gt;
  &lt;/div&gt;
      &lt;p&gt;“We had to stop because of the concerns of possible contamination of the lake,” explained Alexey Ekaikin, a member of the current expedition, who spoke to the BBC Russian Service from Vostok station.&lt;/p&gt;
        &lt;p&gt;He said that drilling was resumed in 2004, when the team came up with new, ecologically safe methods of probing the lake.&lt;/p&gt;
        &lt;p&gt;In November 2010, the scientists submitted a final environmental evaluation of the project to the Antarctic Treaty’s environmental protection committee and were given the go-ahead to sample the ancient waters.&lt;/p&gt;
        &lt;p&gt;They said that instead of drilling into the lake, they would go down until a sensor on the drill detects free water. &lt;/p&gt;
        &lt;p&gt;Then they would take the drill out without going any further and adjust the pressure so that instead of any liquid in the borehole falling down into the lake, water in the lake would be sucked up. &lt;/p&gt;
        &lt;p&gt;Then the drill would be taken away and left for quite some time to freeze, creating a plug of frozen ice in the bottom of the hole. &lt;/p&gt;
        &lt;p&gt;Finally, next season, the team would drill down again to take a sample of that ice and analyse it. &lt;/p&gt;
        &lt;p&gt;But the work has not been going very smoothly, being repeatedly delayed because of technical difficulties.&lt;/p&gt;
  &lt;div&gt;
  &lt;img src="http://bit.ly/xEuJSs" width="464" height="261" alt="Lake Vostok"/&gt;&lt;span style="width:464px"&gt;In the summer season (Dec to Feb), air temperature is relatively mild, about -30C, but in the winter it can plummet to -80C&lt;/span&gt;
  &lt;/div&gt;
      &lt;p&gt;“Up until three km down, drilling is usually relatively easy - it has been done in Greenland and here in Antarctica. But after three km and as we near the bottom [of the ice sheet], the ice temperature gets very close to the ice melting point, and all sorts of problems begin,” said Dr Ekaikin.&lt;/p&gt;
        &lt;p&gt;Dr Lukin added that additional difficulties arise from the changing structure of the ice - after about 3,600m, it is pure frozen lake water, composed of huge round monocrystals of a metre or more in diameter and as hard as glass. &lt;/p&gt;
        &lt;p&gt;That is why for the past few weeks, the team had been advancing at a snail’s pace - about 1.6m a day.&lt;/p&gt;
        &lt;p&gt;They have already reached the 3,700m mark and have just some 50m more to go.&lt;/p&gt;
        &lt;p&gt;Dr Ekaikin said that having analysed the ice cores obtained so far, the scientists have already discovered some bacteria that are likely to be living at the bottom of the lake, where the water is warmer because of the heat coming from the Earth. &lt;/p&gt;
  &lt;span&gt;Contamination concerns&lt;/span&gt;
	      &lt;p&gt;Besides possibly discovering new microorganisms, sampling the waters could also move us a step closer to the understanding of similar glacial conditions at one of Jupiter’s moons, Europa.&lt;/p&gt;
        &lt;p&gt;Its surface, researchers suspect, is covered by a huge ocean, hidden within a thick shell of ice. &lt;/p&gt;
  
      &lt;p&gt;Despite all the precautions, some international observers still dub the project a threat to the ancient sub-glacial lake.&lt;/p&gt;
        &lt;p&gt;“It’s probably almost impossible to make something absolutely, utterly and totally clean,” said Dr Andy Smith, a glaciologist at the British Antarctic Survey.&lt;/p&gt;
        &lt;p&gt;“It’s worth [sampling the waters], as even though originally it seemed a really wild thing to expect, there will be life there -  anywhere we go on the planet where there’s an extreme environment, we always find life.&lt;/p&gt;
        &lt;p&gt;“But we have to make a huge effort not to spoil the environment by being interested in it,” he added.&lt;/p&gt;
        &lt;p&gt;But the Russians working in Antarctica believe that the risks are virtually non existent and that the possibility of a great discovery makes it entirely worthwhile.&lt;/p&gt;
        &lt;p&gt;In 2006, researchers reported evidence for a network of rivers under the ice which connect Antarctica’s sub-glacial lakes. Some scientists think this could spell trouble for the prospects of finding microbial life that has evolved “independently”. &lt;/p&gt;
        &lt;p&gt;Nevertheless, some of those on the team working at Lake Vostok have been waiting for a eureka moment for decades, and have been coming to the base to drill since the discovery of the lake in the 1970s.&lt;/p&gt;
        &lt;p&gt;Now they are hoping the technology will not fail them and they will be able to reach the waters before the season ends on 6 February.&lt;/p&gt;
  &lt;div&gt;
  &lt;img src="http://bit.ly/yW4Vjr" width="464" height="261" alt="Lake Vostok"/&gt;&lt;span style="width:464px"&gt;The scientists say that at the base, there are only two colours: white and blue; but the scenery is still breathtaking&lt;/span&gt;
  &lt;/div&gt;
      &lt;p&gt;Because if not, they will have to stay patient for yet another long year.&lt;/p&gt;
             
	&#13;&lt;img src="http://bit.ly/wnHvQm" height="1" width="1"/&gt;&lt;p&gt;[shared via &lt;a href="http://bbc.in/xlvZ37"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16915563532</link><guid>http://samoliver.com/post/16915563532</guid><pubDate>Thu, 02 Feb 2012 05:46:42 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Neil Young is right — piracy is the new radio</title><description>&lt;a href="http://bit.ly/yQOp0O"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/x7p22v"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16860081943</link><guid>http://samoliver.com/post/16860081943</guid><pubDate>Wed, 01 Feb 2012 06:30:55 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Plan 9: The way the future was</title><description>&lt;a href="http://bit.ly/zetu3U"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/ykkOET"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16860081566</link><guid>http://samoliver.com/post/16860081566</guid><pubDate>Wed, 01 Feb 2012 06:30:54 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Study Finds Engineers Far More Likely than MBAs to Build and Run Companies</title><description>&lt;a href="http://bit.ly/ycKSII"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/zmTWf2"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16860081731</link><guid>http://samoliver.com/post/16860081731</guid><pubDate>Wed, 01 Feb 2012 06:30:54 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Zsh is your friend.</title><description>&lt;p&gt;I don’t know if you know this, but ZShell is your friend, you might not know it
yet, but its true. I know what you are thinking , “whats wrong with Bash?”,
nothing, except its not Zsh.&lt;/p&gt;
&lt;p&gt;Its not that Bash is a bad guy, I don’t want to put him down, but if we
were picking teams, Bash would be last picked in gym class.&lt;/p&gt;
&lt;p&gt;He isn’t very versatile and he doesn’t do anything particularily great, all in all
he is kind of just a worse Zsh(or Zsh is kind of like a better Bash).&lt;/p&gt;
&lt;p&gt;Zsh is easy to get started with because it looks and acts like bash in a lot of
ways. So if you are familiar with bash don’t worry, you can try zsh out without
skipping a beat and you still end up with a better shell.&lt;/p&gt;
&lt;h3&gt;Why is Zsh better then Bash?&lt;/h3&gt;
&lt;p&gt;In my mind one of the most important reasons why Zsh is better then bash is
autocompletion, and I don’t mean that whimpy autocompletion you get by installing
bash completion. I mean, this is real deal command completion, besides getting all
the completion of common commands on the command line, and being ridiculously
fast, the completion also gives you a keyboard navigable completion list.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://bit.ly/y6F8Pv"/&gt;&lt;/p&gt;
&lt;p&gt;Okay, I know what you are saying, big deal right? Well how about really great built
in autocompletion for common commands. Lets use Kill as an example. You type&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kill &lt;tab&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in bash, you get what, the list of all files that are in your current
working directory. Not very helpful behavior in my opinion. What happens if you type&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;kill &lt;tab&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in Zsh? This:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://bit.ly/xlv6Vu"/&gt;&lt;/p&gt;
&lt;p&gt;Lists of all your processes with pids? Yes please.&lt;/p&gt;
&lt;p&gt;Another thing that make makes Zsh stand out is shared history. If you are anything
like me you live in the terminal all day long. There is nothing worse(I’m exaggerating)
then opening another terminal in a tab and navigating your history looking for
that recent thing you just did in another window and have it not be in your
history. In Zsh this isn’t an issue.&lt;/p&gt;
&lt;h3&gt;Time for more awesome&lt;/h3&gt;
&lt;p&gt;Okay, so we have great, fast autocompletion and shared history. How much more awesome
could there be? Lots!&lt;/p&gt;
&lt;p&gt;Autocorrect is pretty cool&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mikegrouchyv2 ::(master*) » gut status
zsh: correct 'gut' to 'git' [nyae]?y
git status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hey thats pretty cool, autocorrect for known commands. What would I do
without you(besides type the command again)?&lt;/p&gt;
&lt;p&gt;Even cooler then autocorrect, for the super nerd(like me) Vi and emacs mode,
&lt;strong&gt;shit yeah&lt;/strong&gt;, you can have your favorite editor on your command line. It will
support common movement commands and editing modes, like command and insert mode
for Vi.&lt;/p&gt;
&lt;p&gt;Last but certianly not least, Zsh has &lt;a href="http://bit.ly/zf8tKy"&gt;oh-my-zsh&lt;/a&gt;
from the website:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, &lt;span&gt;OSX&lt;/span&gt;, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I know one exists for bash, but I find oh-my-zsh to be excellent, it autoupdates,
has great plugins and a very active community behind it.&lt;/p&gt;
&lt;p&gt;All in all, Zsh is pretty great, so if you haven’t tried Zsh, maybe its time you
try it out. If so &lt;a href="http://bit.ly/zf8tKy"&gt;oh-my-zsh&lt;/a&gt; is a
pretty great place to start.&lt;/p&gt;
&lt;p&gt;If you are already drinking the Kool-aid and have some Zsh tips to share, either
leave a comment or hit me up on &lt;a href="http://bit.ly/yF1O4q"&gt;twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, &lt;a href="http://bit.ly/z2fmwh"&gt;More discussion on Hacker News&lt;/a&gt;&lt;/p&gt;&lt;img src="http://bit.ly/wXfc6d" height="1" width="1"/&gt;&lt;p&gt;[shared via &lt;a href="http://bit.ly/AoJvFS"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16830983207</link><guid>http://samoliver.com/post/16830983207</guid><pubDate>Tue, 31 Jan 2012 15:17:55 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Codecademy Becomes A Platform: Now Anyone Can Write Programming Tutorials</title><description>&lt;a href="http://bit.ly/zTaZrn"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://tcrn.ch/A0XbIN"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16830194745</link><guid>http://samoliver.com/post/16830194745</guid><pubDate>Tue, 31 Jan 2012 15:01:07 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Sorry, this blog post is not available in your country.</title><description>&lt;a href="http://bit.ly/wgXtye"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/wL1FsU"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16768597561</link><guid>http://samoliver.com/post/16768597561</guid><pubDate>Mon, 30 Jan 2012 13:31:47 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Legal streams are less available for rentals than a year ago</title><description>&lt;a href="http://bit.ly/An5jRB"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/zTitIX"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16766133895</link><guid>http://samoliver.com/post/16766133895</guid><pubDate>Mon, 30 Jan 2012 12:31:28 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>The Power of Introverts: A Manifesto for Quiet Brilliance</title><description>&lt;a href="http://bit.ly/xyejhM"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/wVHfg9"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16766133470</link><guid>http://samoliver.com/post/16766133470</guid><pubDate>Mon, 30 Jan 2012 12:31:27 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Your Users Won't Read</title><description>&lt;a href="http://bit.ly/A1zROR"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/yhlsZ0"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16766132895</link><guid>http://samoliver.com/post/16766132895</guid><pubDate>Mon, 30 Jan 2012 12:31:26 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Once set, variables are always defined</title><description>&lt;p&gt;When you set a variable in a section of code that is never executed, the variable will still be defined.&lt;/p&gt;

&lt;div&gt;
  &lt;div&gt;&lt;pre&gt;&lt;span&gt;if&lt;/span&gt; &lt;span&gt;false&lt;/span&gt;
  a = &lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;whatever&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;end&lt;/span&gt;

puts a
&lt;span&gt;# =&gt; "nil"&lt;/span&gt;
&lt;span&gt;# Does NOT raise 'NameError: undefined local variable or method `a' for main:Object'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This post was submitted by Olivier El Mekki.&lt;/p&gt;&lt;img src="http://bit.ly/ACfswX" height="1" width="1"/&gt;&lt;p&gt;[shared via &lt;a href="http://bit.ly/wGljyq"&gt;Ruby Quicktips&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16404294030</link><guid>http://samoliver.com/post/16404294030</guid><pubDate>Tue, 24 Jan 2012 07:16:43 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>I'm at The Clevelander - C-Level Rooftop Terrace!</title><description>&lt;p&gt;&lt;img src="http://bit.ly/xl9te2"/&gt;&lt;br/&gt;
 &lt;a href="http://4sq.com/quRa1X"&gt;http://4sq.com/quRa1X&lt;/a&gt;&lt;/p&gt;</description><link>http://samoliver.com/post/16384691597</link><guid>http://samoliver.com/post/16384691597</guid><pubDate>Mon, 23 Jan 2012 21:17:37 -0500</pubDate></item><item><title>I'm at Hog's Head!</title><description>&lt;p&gt;&lt;img src="http://bit.ly/sGxWXF"/&gt;&lt;br/&gt;
 &lt;a href="http://4sq.com/cDdmQR"&gt;http://4sq.com/cDdmQR&lt;/a&gt;&lt;/p&gt;</description><link>http://samoliver.com/post/16249882754</link><guid>http://samoliver.com/post/16249882754</guid><pubDate>Sat, 21 Jan 2012 17:17:00 -0500</pubDate></item><item><title>Rails 3.2.0: Faster dev mode &amp; routing, explain queries, tagged logger, store</title><description>&lt;p&gt;So we didn’t quite make the December release date as we intended, but hey, why break a good tradition and start hitting release targets now! In any case, your patience has been worldly rewarded young grasshopper: Rails 3.2 is done, baked, tested, and ready to roll!&lt;/p&gt;


	&lt;p&gt;I’ve been running on 3-2-stable for a few months working on &lt;a href="http://bit.ly/ukngVr"&gt;Basecamp Next&lt;/a&gt; and it’s been a real treat. The new faster dev mode in particular is a major step up over 3.1.&lt;/p&gt;


	&lt;p&gt;Do remember that this is the last intended release series that’s going to support Ruby 1.8.7. The master git branch for Rails is now targeting Rails 4.0, which will require Ruby 1.9.3 and above. So now is a great time to start the work on getting your app ready for the current version of Ruby. Let’s not hang around old versions forever and a Sunday like those Python guys :).&lt;/p&gt;


	&lt;p&gt;There’s a &lt;a href="http://bit.ly/AgjBbx"&gt;v3.2.0 tag on Github&lt;/a&gt; and we of course we still have the &lt;a href="http://bit.ly/z5w9Wx"&gt;3-2-stable branch&lt;/a&gt; as well. You can see all the glorious details of everything that was changed in our &lt;a href="http://bit.ly/w0VSug"&gt;&lt;span&gt;CHANGELOG&lt;/span&gt; compilation&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;For documentation, we have the &lt;a href="http://bit.ly/wlSST9"&gt;3.2 release notes with upgrade instructions&lt;/a&gt;, both &lt;a href="http://bit.ly/y7L3mH"&gt;the &lt;span&gt;API&lt;/span&gt; docs&lt;/a&gt; and &lt;a href="http://bit.ly/ti46ZE"&gt;the guides&lt;/a&gt; have been generated for 3.2 as well, and there’s a brand new &lt;a href="http://bit.ly/yuUS0T"&gt;3.2-compatible version of Agile Web Development with Rails&lt;/a&gt;. A smörgåsbord indeed!&lt;/p&gt;


	&lt;p&gt;Note: If you’re having trouble installing the gems under Ruby 1.8.7, you’ve probably hit a RubyGems bug with &lt;span&gt;YAML&lt;/span&gt; that’s been fixed in RubyGems 1.8.15. You can upgrade RubyGems using “gem update—system”.&lt;/p&gt;


	&lt;p&gt;If you can’t be bothered with the full release notes, here’s a reprint of a few feature highlights from when we did the first release candidate:&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Faster dev mode &amp; routing&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;The most noticeable new feature is that development mode got a ton and a half faster. Inspired by &lt;a href="http://bit.ly/AcVJUs"&gt;Active Reload&lt;/a&gt;, we now only reload classes from files you’ve actually changed. The difference is dramatic on a larger application.&lt;/p&gt;


	&lt;p&gt;Route recognition also got a bunch faster thanks to the &lt;a href="http://bit.ly/yQq3i4"&gt;new Journey engine&lt;/a&gt; and we made linking much faster as well (especially apparent when you’re having 100+ links on a single page).&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Explain queries&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;We’ve added a &lt;a href="http://bit.ly/zQeqJ8"&gt;quick and easy way to explain quieries generated by ARel&lt;/a&gt;. In the console, you can run something like &lt;code&gt;puts Person.active.limit(5).explain&lt;/code&gt; and you’ll get the query ARel produces explained (so you can easily see whether its using the right indexes). There’s even a default threshold in development mode where if a query takes more than half a second to run, it’s automatically explained inline—how about that!&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Tagged logger&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;When you’re running a multi-user, multi-account application, it’s a great help to be able to filter the log by who did what. Enter the TaggedLogging wrapper. It works like this:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;Logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
Logger.tagged("BCX") { Logger.info "Stuff" } # Logs "[BCX] Stuff" 
Logger.tagged("BCX") do
  Logger.tagged("Jason") do
    Logger.info "Stuff" # Logs "\[BCX\] \[Jason\] Stuff" 
  end
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;&lt;strong&gt;Active Record Store&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Key/value stores are great, but it’s not always you want to go the whole honking way just for a little variable-key action. Enter the Active Record Store:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;class User &lt; ActiveRecord::Base
  store :settings, accessors: [ :color, :homepage ]
end&lt;/code&gt;&lt;/pre&gt;


	&lt;pre&gt;&lt;code&gt;u = User.new(color: 'black', homepage: '37signals.com')
u.color                          # Accessor stored attribute
u.settings[:country] = 'Denmark' # Any attribute, even if not specified with an accessor&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/zxi6Ri"&gt;Riding Rails - home&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16198560139</link><guid>http://samoliver.com/post/16198560139</guid><pubDate>Fri, 20 Jan 2012 20:00:42 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>I'm at Envy Labs!</title><description>&lt;p&gt;&lt;img src="http://bit.ly/zDlGwJ"/&gt;&lt;br/&gt;
 &lt;a href="http://4sq.com/eu8Ky9"&gt;http://4sq.com/eu8Ky9&lt;/a&gt;&lt;/p&gt;</description><link>http://samoliver.com/post/16170846106</link><guid>http://samoliver.com/post/16170846106</guid><pubDate>Fri, 20 Jan 2012 09:32:00 -0500</pubDate></item><item><title>I'm at London Gatwick Airport (LGW)!</title><description>&lt;p&gt;&lt;img src="http://bit.ly/wSzHcD"/&gt;&lt;br/&gt;
 &lt;a href="http://4sq.com/27d3PN"&gt;http://4sq.com/27d3PN&lt;/a&gt;&lt;/p&gt;</description><link>http://samoliver.com/post/16112587213</link><guid>http://samoliver.com/post/16112587213</guid><pubDate>Thu, 19 Jan 2012 07:32:00 -0500</pubDate></item><item><title>How I Program Stuff</title><description>&lt;a href="http://bit.ly/z8eeMo"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/z4f5oy"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/16015731856</link><guid>http://samoliver.com/post/16015731856</guid><pubDate>Tue, 17 Jan 2012 14:01:38 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Data Mining: Finding Similar Items and Users</title><description>&lt;a href="http://bit.ly/wrUfnt"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/yp6NqY"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/15963103204</link><guid>http://samoliver.com/post/15963103204</guid><pubDate>Mon, 16 Jan 2012 15:18:48 -0500</pubDate><category>ifttt</category><category>reader</category></item><item><title>Getting Started with Sublime Text 2</title><description>&lt;a href="http://bit.ly/w5ePRJ"&gt;Comments&lt;/a&gt;
&lt;p&gt;[shared via &lt;a href="http://bit.ly/xDfazo"&gt;Hacker News&lt;/a&gt;]&lt;/p&gt;</description><link>http://samoliver.com/post/15724556510</link><guid>http://samoliver.com/post/15724556510</guid><pubDate>Thu, 12 Jan 2012 10:46:50 -0500</pubDate><category>ifttt</category><category>reader</category></item></channel></rss>

