<?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>Yet another collection of things. May it be useful.</description><title>Links.Quotes.Thoughts.</title><generator>Tumblr (3.0; @behrends)</generator><link>http://erikbehrends.com/</link><item><title>Threads in Ruby</title><description>&lt;p&gt;The current (as of Ruby version &gt;= 1.9) situation concerning threads, concurrency and parallelism in Ruby is nicely explained in this &lt;a href="http://www.engineyard.com/blog/2011/ruby-concurrency-and-you/"&gt;article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The GIL (Global Interpreter Lock) in the MRI Ruby interpreter gets mentioned and its purpose of data protection is exemplified &lt;a href="http://merbist.com/2011/10/18/data-safety-and-gil-removal/"&gt;here&lt;/a&gt;. The same author previously published a &lt;a href="http://merbist.com/2011/02/22/concurrency-in-ruby-explained/"&gt;piece&lt;/a&gt; that described threading in Ruby in a more general way, including the topic of fibers. &lt;/p&gt;
&lt;p&gt;Finally, I found an interesting &lt;a href="http://www.ruby-forum.com/topic/2798098"&gt;discussion&lt;/a&gt; addressing this subject in the Ruby forum.&lt;/p&gt;</description><link>http://erikbehrends.com/post/12596636761</link><guid>http://erikbehrends.com/post/12596636761</guid><pubDate>Thu, 10 Nov 2011 13:23:53 +0100</pubDate><category>ruby</category></item><item><title>ThoughtBot: cd'ing to frequently-used directories in ZSH</title><description>&lt;a href="http://robots.thoughtbot.com/post/10849086566"&gt;ThoughtBot: cd'ing to frequently-used directories in ZSH&lt;/a&gt;: &lt;p&gt;&lt;a href="http://robots.thoughtbot.com/post/10849086566"&gt;thoughtbot&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://thoughtbot.com/about/#jclayton"&gt;Josh&lt;/a&gt; just dropped some sweet, sweet ZSH knowledge. I spend a lot of time in the directories under &lt;code&gt;$HOME/thoughtbot/&lt;/code&gt; and &lt;code&gt;$HOME/src&lt;/code&gt;, and to get there I type (for example) &lt;code&gt;cd ~/thoughtbot/hoptoad&lt;/code&gt;. There is a better way!&lt;/p&gt;
&lt;p&gt;First, add this to your &lt;code&gt;~/.zshrc&lt;/code&gt; and source it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;setopt...&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;</description><link>http://erikbehrends.com/post/11410700321</link><guid>http://erikbehrends.com/post/11410700321</guid><pubDate>Fri, 14 Oct 2011 00:34:19 +0200</pubDate></item><item><title>What Someone (not me) Learned About Testing Over the Last Year</title><description>&lt;a href="http://jakegoulding.com/blog/2011/10/10/learned-about-testing-last-year/"&gt;What Someone (not me) Learned About Testing Over the Last Year&lt;/a&gt;: &lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;Note that these three things cover the entire life cycle of code; correctness applies to the &lt;/span&gt;&lt;em&gt;present&lt;/em&gt;&lt;span&gt; of the feature, confidence comes into play when the feature is in the &lt;/span&gt;&lt;em&gt;past&lt;/em&gt;&lt;span&gt;, and design feedback sheds light into the &lt;/span&gt;&lt;em&gt;future&lt;/em&gt;&lt;span&gt; of your code.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://erikbehrends.com/post/11310720647</link><guid>http://erikbehrends.com/post/11310720647</guid><pubDate>Tue, 11 Oct 2011 09:50:14 +0200</pubDate></item><item><title>Real Software Engineering</title><description>&lt;a href="http://confreaks.net/videos/550-scotlandruby2011-real-software-engineering"&gt;Real Software Engineering&lt;/a&gt;: &lt;p&gt;Video from Glenn Vanderburg’s talk at Scotland Ruby 2011.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Software engineering is the science and art of designing and making, with economy and elegance, […] systems so that they can readily adapt to the situations to which they may be subjected.&lt;/p&gt;
&lt;p&gt;In classical engineering, the construction is by far the most expensive part while in building software, the construction (done by compilers and interpreters) is by far the cheapest and designing is the most expensive.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://erikbehrends.com/post/10974772241</link><guid>http://erikbehrends.com/post/10974772241</guid><pubDate>Mon, 03 Oct 2011 10:26:05 +0200</pubDate></item><item><title>Talk on fast Rails tests (Corey Haines)</title><description>&lt;a href="http://confreaks.net/videos/641-gogaruco2011-fast-rails-tests"&gt;Talk on fast Rails tests (Corey Haines)&lt;/a&gt;: &lt;p&gt;At GoGaRuCo 2011, Corey Haines shared ideas about how to speed up a unit test suite in Rails by treating Rails as a third-party component that can be isolated. He extracts business/domain logic into plain old Ruby classes which can be tested without the framework overhead. He maintains a &lt;a href="https://github.com/coreyhaines/ShoppingCart"&gt;github repository&lt;/a&gt; with an example Rails app that illustrates his approach in branches. &lt;/p&gt;</description><link>http://erikbehrends.com/post/10935347851</link><guid>http://erikbehrends.com/post/10935347851</guid><pubDate>Sun, 02 Oct 2011 17:10:55 +0200</pubDate><category>ruby</category><category>rails</category><category>testing</category></item><item><title>About (not) testing private methods</title><description>&lt;a href="http://blog.rubybestpractices.com/posts/gregory/034-issue-5-testing-antipatterns.html"&gt;About (not) testing private methods&lt;/a&gt;: &lt;p&gt;Gregory Brown (author of &lt;a href="http://rubybestpractices.com/"&gt;Ruby Best Practices&lt;/a&gt; - available for free as &lt;a href="http://sandal.github.com/rbp-book/pdfs/rbp_1-0.pdf"&gt;PDF&lt;/a&gt;) discusses the issues around tests involving private methods. The gist of it is that private methods should only encapsulate auxiliary functionality that is so trivial that it doesn’t need to be tested. Any more complex code found in private methods can be regarded as code smell indicating that the method should be exposed as public or that there are more serious underlying design flaws.&lt;/p&gt;</description><link>http://erikbehrends.com/post/10934857241</link><guid>http://erikbehrends.com/post/10934857241</guid><pubDate>Sun, 02 Oct 2011 16:56:00 +0200</pubDate><category>ruby</category><category>testing</category></item><item><title>Private methods in Ruby</title><description>&lt;p&gt;Method visibility in Ruby is different from other languages, especially Java. In Java, public methods or data members are accessible from everywhere, protected ones can only be accessed by the containing class or subclasses and private members are visible only to the class where they are defined. In contrast to that, method visibility in Ruby is all about the receiver of the message as &lt;a href="http://weblog.jamisbuck.org/2007/2/23/method-visibility-in-ruby"&gt;this blog post by Jamis Buck&lt;/a&gt; from 2007 explains very clearly with some example code. &lt;/p&gt;
&lt;p&gt;Ruby allows public methods to be called with explicit receiver, self or implicit receiver. Protected methods may be called if the receiver is of the same class as “self” (explicit or implicit) and private methods cannot be called with an explicit receiver at all.&lt;/p&gt;
&lt;p&gt;This is how private/protected/public are designed to work in Ruby and it is helpful to not think about method visibility in terms of inheritance - it avoids a lot of confusion because for example in Ruby, a subclass can call the private method of its parent.&lt;/p&gt;</description><link>http://erikbehrends.com/post/10934600684</link><guid>http://erikbehrends.com/post/10934600684</guid><pubDate>Sun, 02 Oct 2011 16:48:00 +0200</pubDate><category>ruby</category></item><item><title>Examples for responsive web design</title><description>&lt;a href="http://mediaqueri.es/"&gt;Examples for responsive web design&lt;/a&gt;: &lt;p&gt;Found in this &lt;a href="http://assets.en.oreilly.com/1/event/59/Building%20Bulletproof%20Views%20Presentation.pdf"&gt;presentation&lt;/a&gt;.&lt;/p&gt;</description><link>http://erikbehrends.com/post/8337455980</link><guid>http://erikbehrends.com/post/8337455980</guid><pubDate>Mon, 01 Aug 2011 13:40:58 +0200</pubDate></item><item><title>Extensive list of OS X keyboard shortcuts and touch gestures</title><description>&lt;a href="http://www.danrodney.com/mac/index.html"&gt;Extensive list of OS X keyboard shortcuts and touch gestures&lt;/a&gt;: &lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://erikbehrends.com/post/7880410004</link><guid>http://erikbehrends.com/post/7880410004</guid><pubDate>Thu, 21 Jul 2011 11:29:47 +0200</pubDate></item><item><title>"When your goals and your user’s goals are truly aligned, you don’t need pixie dust. Don’t out-spend,..."</title><description>“When your goals and your user’s goals are truly aligned, you don’t need pixie dust. Don’t out-spend, don’t out-friend, and please don’t out-badge. There is a world of difference between helping someone *appear* more awesome and helping them actually BE more awesome.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Kathy Sierra in &lt;a href="http://gapingvoid.com/2011/06/07/pixie-dust-the-mountain-of-mediocrity/"&gt;Pixie Dust &amp; The Mountain of Mediocrity&lt;/a&gt;&lt;/em&gt;</description><link>http://erikbehrends.com/post/7569681882</link><guid>http://erikbehrends.com/post/7569681882</guid><pubDate>Wed, 13 Jul 2011 13:02:26 +0200</pubDate></item><item><title>Beautiful Markup (or: curing DIV-itis with Semantic HTML, CSS and Presenters)</title><description>&lt;a href="http://blog.envylabs.com/2010/06/beautiful-markup/"&gt;Beautiful Markup (or: curing DIV-itis with Semantic HTML, CSS and Presenters)&lt;/a&gt;</description><link>http://erikbehrends.com/post/7494824835</link><guid>http://erikbehrends.com/post/7494824835</guid><pubDate>Mon, 11 Jul 2011 17:40:17 +0200</pubDate></item><item><title>"Everything we hear is an opinion, not a fact. Everything we see is a perspective, not the truth."</title><description>“Everything we hear is an opinion, not a fact. Everything we see is a perspective, not the truth.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Marcus Aurelius&lt;/em&gt;</description><link>http://erikbehrends.com/post/7261705352</link><guid>http://erikbehrends.com/post/7261705352</guid><pubDate>Tue, 05 Jul 2011 14:47:54 +0200</pubDate></item><item><title>alanvanroemburg:

Apple iCloud icon golden ratio
Alan van...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lmtv7t2pkX1qbpnjzo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://alanvanroemburg.tumblr.com/post/6550997276"&gt;alanvanroemburg&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple iCloud icon golden ratio&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/alanvanroemburg"&gt;Alan van Roemburg&lt;/a&gt; thanks to &lt;a title="Takamasa" href="http://stam-design-stam.blogspot.com/2011/06/icloud.html"&gt;Takamasa!&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good catch&lt;/p&gt;</description><link>http://erikbehrends.com/post/6617632447</link><guid>http://erikbehrends.com/post/6617632447</guid><pubDate>Fri, 17 Jun 2011 12:27:22 +0200</pubDate></item><item><title>How to silence PostgreSQL in Rails</title><description>&lt;a href="http://mentalized.net/journal/2011/05/24/how_to_silence_postgresql_in_rails/"&gt;How to silence PostgreSQL in Rails&lt;/a&gt;: &lt;p&gt;Get rid of messages during executing rake tasks and log statements for meta queries.&lt;/p&gt;</description><link>http://erikbehrends.com/post/6355000614</link><guid>http://erikbehrends.com/post/6355000614</guid><pubDate>Thu, 09 Jun 2011 17:42:13 +0200</pubDate></item><item><title>10 One Liners to Impress Your Friends</title><description>&lt;p&gt;&lt;a href="http://solog.co/47/10-scala-one-liners-to-impress-your-friends/"&gt;Scala&lt;/a&gt; vs. &lt;a href="http://programmingzen.com/2011/06/02/10-ruby-one-liners-to-impress-your-friends/"&gt;Ruby&lt;/a&gt; vs. &lt;a href="http://ricardo.cc/2011/06/02/10-CoffeeScript-One-Liners-to-Impress-Your-Friends.html"&gt;CoffeeScript&lt;/a&gt;&lt;/p&gt;</description><link>http://erikbehrends.com/post/6347948282</link><guid>http://erikbehrends.com/post/6347948282</guid><pubDate>Thu, 09 Jun 2011 10:02:34 +0200</pubDate></item><item><title>RubyMine, Spork, RSpec, Cucumber </title><description>&lt;a href="http://avdi.org/devblog/2011/04/17/rubymine-spork-rspec-cucumber/"&gt;RubyMine, Spork, RSpec, Cucumber &lt;/a&gt;: &lt;p&gt;Explains how to include Rubymine’s special RSpec formatters into spork’s prefork to enable running specs against spork from Rubymine.&lt;/p&gt;</description><link>http://erikbehrends.com/post/6171669818</link><guid>http://erikbehrends.com/post/6171669818</guid><pubDate>Sat, 04 Jun 2011 12:21:03 +0200</pubDate></item><item><title>I didn’t know that the chrome dev tools are in fact a web...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/N8SS-rUEZPg?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I didn’t know that the chrome dev tools are in fact a web app themselves. Lot’s of stuff to discover. There is also an accompanying  blog post: &lt;a href="http://paulirish.com/2011/a-re-introduction-to-the-chrome-developer-tools"&gt;A Re-introduction to the Chrome Developer Tools&lt;/a&gt;&lt;/p&gt;</description><link>http://erikbehrends.com/post/6137271477</link><guid>http://erikbehrends.com/post/6137271477</guid><pubDate>Fri, 03 Jun 2011 10:59:40 +0200</pubDate></item><item><title>Debating test distribution</title><description>&lt;p&gt;Two guys from ThoughtWorks (one dev and one test fellow) share their take on testing and test distribution (unit vs. integration vs. acceptance). The dev guy thinks that ~70% unit tests, ~20% integration tests and ~10% acceptance tests form a reasonable &lt;a href="http://jamescrisp.org/2011/05/30/automated-testing-and-the-test-pyramid/"&gt;test pyramid&lt;/a&gt;. The test guy begs to differ and explains how acceptance tests can be prevented from becoming unmaintainable and brittle in a &lt;a href="http://deancornish.blogspot.com/2011/06/on-testing-pyramid.html"&gt;responding blog post&lt;/a&gt;.&lt;/p&gt;</description><link>http://erikbehrends.com/post/6119636627</link><guid>http://erikbehrends.com/post/6119636627</guid><pubDate>Fri, 03 Jun 2011 00:10:53 +0200</pubDate></item><item><title>The Only Way to Get Important Things Done </title><description>&lt;a href="http://blogs.hbr.org/schwartz/2011/05/the-only-way-to-get-important.html"&gt;The Only Way to Get Important Things Done &lt;/a&gt;: &lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;The answer, surprisingly, is not that they have more will or discipline than you do. The counterintuitive secret to getting things done is to make them more automatic, so they require less energy.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It turns out we each have one reservoir of will and discipline, and it gets progressively depleted by any act of conscious self-regulation. In other words, if you spend energy trying to &lt;a href="http://blogs.hbr.org/schwartz/2011/01/six-keys-to-changing-almost-an.html"&gt;resist a fragrant chocolate chip cookie&lt;/a&gt;, you’ll have less energy left over to solve a difficult problem. Will and discipline decline inexorably as the day wears on.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;p&gt;&lt;span&gt;“It is a profoundly erroneous truism that we should cultivate the habit of thinking of what we are doing,” the philosopher &lt;a href="http://en.wikipedia.org/wiki/Alfred_North_Whitehead"&gt;A.N. Whitehead&lt;/a&gt;explained &lt;a href="http://www.brainyquote.com/quotes/quotes/a/alfrednort108058.html"&gt;back in 1911&lt;/a&gt;. “The precise opposite is the case. Civilization advances by extending the number of operations we can perform without thinking about them.”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Indeed many great performers aren’t even consciously aware that’s what they’ve done. They’ve built their rituals intuitively.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;…&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;
&lt;p&gt;A ritual, consciously created, is an expression of fierce intentionality. Nothing less will do, if you’re truly determined to take control of your life.&lt;/p&gt;
&lt;p&gt;The good news is that once you’ve got a ritual in place, it truly takes on a life of its own.&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://erikbehrends.com/post/5829363578</link><guid>http://erikbehrends.com/post/5829363578</guid><pubDate>Wed, 25 May 2011 11:57:18 +0200</pubDate></item><item><title>What pythonistas think of Ruby</title><description>&lt;a href="http://blog.peepcode.com/tutorials/2010/what-pythonistas-think-of-ruby"&gt;What pythonistas think of Ruby&lt;/a&gt;: &lt;p&gt;Turns out that Python can’t implement the smooth syntax of RSpec… and “&lt;span&gt;Ruby takes full advantage of the Lisp chainsaw.”&lt;/span&gt;&lt;/p&gt;</description><link>http://erikbehrends.com/post/5632812666</link><guid>http://erikbehrends.com/post/5632812666</guid><pubDate>Thu, 19 May 2011 10:05:55 +0200</pubDate></item></channel></rss>

