<?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>programming trip and tech thoughts</description><title>pieter michels</title><generator>Tumblr (3.0; @pieterm)</generator><link>http://wellconsidered.be/</link><item><title>How to login to postgresql through psql from a linux user</title><description>&lt;a href="http://obroll.com/how-to-login-postgresql-access-psql-from-ubuntu-user/"&gt;How to login to postgresql through psql from a linux user&lt;/a&gt;: &lt;p&gt;If you get these errors while trying to access your PostgreSQL database through ‘psql’:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;psql: FATAL:  Peer authentication failed for user “postgres”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://obroll.com/how-to-login-postgresql-access-psql-from-ubuntu-user/"&gt;This was exactly&lt;/a&gt; what I was looking for.&lt;br/&gt;So I updated my &lt;a href="https://github.com/pierot/server-installer/commit/de70b474c8c692f0fad32c3e38ea61fb4736a550#postgresql.sh"&gt;postgreSQL install script&lt;/a&gt;.&lt;/p&gt;</description><link>http://wellconsidered.be/post/16359570065</link><guid>http://wellconsidered.be/post/16359570065</guid><pubDate>Mon, 23 Jan 2012 20:36:00 +0100</pubDate><category>postgresql</category><category>linux</category><category>psql</category><category>Peer</category><category>md5</category><category>postgres</category></item><item><title>RVM loses default Ruby version when starting new shell</title><description>&lt;p&gt;I recently installed a new Ruby version on a server using RVM. To make sure your new ruby installation will be used by default, you have to invoke the follow command:&lt;/p&gt;
&lt;script src="https://gist.github.com/1665111.js"&gt; &lt;/script&gt;&lt;p&gt;&lt;a href="http://wellconsidered.be/post/10519696197/rvm-and-your-default-ruby-version"&gt;(I already blogged about this)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But now, my server kept forgetting this and each time I ssh’ed to the server (and thus starting a new shell) I was back at the default system Ruby version.&lt;/p&gt;
&lt;p&gt;It seems you can repair your RVM environments (I didn’t know I broke something in the first place?):&lt;/p&gt;
&lt;script src="https://gist.github.com/1665109.js"&gt; &lt;/script&gt;</description><link>http://wellconsidered.be/post/16359769511</link><guid>http://wellconsidered.be/post/16359769511</guid><pubDate>Mon, 23 Jan 2012 20:34:15 +0100</pubDate><category>rvm</category><category>ruby</category><category>repair</category><category>default</category></item><item><title>Varnish Guru Meditation</title><description>&lt;p&gt;I had a problem where a Rails application communicated with a third-party API (Dropbox) to do some actions. The request would take significantly more time than a regular request, lasting for more than 15 second easily (fetching numerous directories and files).&lt;br/&gt; Your browser won’t timeout on such requests, but in my case, Varnish was. It would serve me with the following message:&lt;/p&gt;
&lt;script src="https://gist.github.com/1551291.js"&gt;&lt;/script&gt;&lt;p&gt;Clearly this is a safeguard of Varnish. It’s easy to fix this with a settings change in your &lt;em&gt;‘vim /etc/varnish/default.vcl’&lt;/em&gt; file.&lt;/p&gt;
&lt;script src="https://gist.github.com/1551295.js"&gt;&lt;/script&gt;</description><link>http://wellconsidered.be/post/15186446140</link><guid>http://wellconsidered.be/post/15186446140</guid><pubDate>Mon, 02 Jan 2012 17:28:55 +0100</pubDate></item><item><title>Linode rocks</title><description>&lt;a href="http://www.feross.org/linode-vps-hosting-review/"&gt;Linode rocks&lt;/a&gt;: &lt;blockquote&gt;
&lt;p&gt;I’ve been using Linode to host my websites for the past 2+ years and I’m thoroughly impressed by the service. I can’t recommend them enough — it is easily the best web hosting service I’ve used to date.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Couldn’t agree more.&lt;/div&gt;</description><link>http://wellconsidered.be/post/14972898275</link><guid>http://wellconsidered.be/post/14972898275</guid><pubDate>Thu, 29 Dec 2011 14:45:49 +0100</pubDate></item><item><title>PDFKit Usage</title><description>&lt;a href="http://metaskills.net/2011/03/20/pdfkit-overview-and-advanced-usage/"&gt;PDFKit Usage&lt;/a&gt;: &lt;blockquote&gt;
&lt;p&gt;Wkhtmltopdf is an open source project that uses the WebKit rendering engine to convert HTML to native PDF code. This is the muscle behind the PDFKit gem and other projects like WickedPdf. In this article I am only going to focus on PDFKit with Rails. But many topics will apply to both PDFKit and WickedPdf since they use wkhtmltopdf on the backside.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Great guide for starting with PDFKit.&lt;/p&gt;</description><link>http://wellconsidered.be/post/14908701791</link><guid>http://wellconsidered.be/post/14908701791</guid><pubDate>Wed, 28 Dec 2011 08:31:55 +0100</pubDate></item><item><title>VirtualBox Linux local networking</title><description>&lt;p&gt;&lt;p class="p1"&gt;From time to time, I run an Ubuntu virtual host on my Mac OSX machine (in &lt;a href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;) for testing and trying. It took me a while to figure out, how to setup this virtual machine so it has access to the Internet as well as local access to my host.&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;For referencial purposes, here goes:&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;In your VirtualBox preferences, add a ‘&lt;em&gt;host-only network&lt;/em&gt;’ (&lt;em&gt;vboxnet0&lt;/em&gt;). &lt;/p&gt;
&lt;p class="p1"&gt;Adapter Settings:&lt;/p&gt;
&lt;script src="https://gist.github.com/1414735.js"&gt;&lt;/script&gt;&lt;p class="p1"&gt;DHCP Server:&lt;/p&gt;
&lt;script src="https://gist.github.com/1414740.js"&gt;&lt;/script&gt;&lt;p class="p1"&gt;Make sure you have your VirtualBox instance set up with two networks interfaces: &lt;em&gt;NAT&lt;/em&gt; (1) and &lt;em&gt;Host-only&lt;/em&gt; (2). Default settings are ok.&lt;/p&gt;
&lt;p class="p1"&gt;On your Ubuntu guest:&lt;/p&gt;
&lt;script src="https://gist.github.com/1414743.js"&gt;&lt;/script&gt;&lt;script src="https://gist.github.com/1414754.js"&gt;&lt;/script&gt;&lt;p class="p3"&gt;And then restart your networing.&lt;/p&gt;
&lt;script src="https://gist.github.com/1414757.js"&gt; &lt;/script&gt;&lt;p class="p3"&gt;Additionally, I configure my local Linux machine as a headless OS, as a result I only access it through SSH.&lt;/p&gt;
&lt;script src="https://gist.github.com/1414786.js"&gt; &lt;/script&gt;&lt;p class="p3"&gt;And reboot&lt;/p&gt;
&lt;script src="https://gist.github.com/1414788.js"&gt; &lt;/script&gt;&lt;/p&gt;</description><link>http://wellconsidered.be/post/13583303764</link><guid>http://wellconsidered.be/post/13583303764</guid><pubDate>Thu, 01 Dec 2011 08:51:00 +0100</pubDate></item><item><title>The twelve-factor methodology</title><description>&lt;a href="http://www.12factor.net/"&gt;The twelve-factor methodology&lt;/a&gt;: &lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;span&gt;In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;em&gt;&lt;span&gt;Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;span&gt;Have a clean contract with the underlying operating system, offering maximum portability between execution environments;&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;span&gt;Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;span&gt;Minimize divergence between development and production, enabling continuous deployment for maximum agility;&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;span&gt;And can scale up without significant changes to tooling, architecture, or development practices.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;
&lt;p&gt;Source: &lt;a href="http://www.12factor.net"&gt;&lt;a href="http://www.12factor.net"&gt;http://www.12factor.net&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://wellconsidered.be/post/13203161497</link><guid>http://wellconsidered.be/post/13203161497</guid><pubDate>Wed, 23 Nov 2011 14:35:00 +0100</pubDate></item><item><title>Default Passenger user and permissions</title><description>&lt;p&gt;Quick note to self.&lt;/p&gt;
&lt;p&gt;If you deploy a Rails application (with Capistrano for instance) to a Passenger / nginx server, you have to make sure you don’t deploy the app as user ‘&lt;em&gt;root&lt;/em&gt;’ (I hear people say ‘never ever use &lt;em&gt;root&lt;/em&gt;!’ … oh well).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why not? &lt;/strong&gt;&lt;br/&gt;Passenger will run your Rails application as the user who &lt;strong&gt;owns&lt;/strong&gt; the config/environment.rb file (&lt;a href="http://modrails.com/documentation/Users%20guide%20Nginx.html#user_switching"&gt;see help&lt;/a&gt;). If the owner of this file is ‘&lt;strong&gt;&lt;em&gt;root&lt;/em&gt;&lt;/strong&gt;’, the user is switched to &lt;a href="http://modrails.com/documentation/Users%20guide%20Nginx.html#PassengerDefaultUser"&gt;the default Passenger user&lt;/a&gt;, which is by default ‘&lt;strong&gt;&lt;em&gt;nobody&lt;/em&gt;&lt;/strong&gt;’. &lt;br/&gt;This might result in insufficient permissions for actions like writing to a database file or when compiling assets.&lt;/p&gt;</description><link>http://wellconsidered.be/post/12510348791</link><guid>http://wellconsidered.be/post/12510348791</guid><pubDate>Tue, 08 Nov 2011 13:44:00 +0100</pubDate></item><item><title>Gitlab, self-hosted git server and browser</title><description>&lt;a href="http://gitlabhq.com/"&gt;Gitlab, self-hosted git server and browser&lt;/a&gt;: &lt;p&gt;Gitlab might finally be &lt;strong&gt;the&lt;/strong&gt; front-end for a &lt;a title="Gitolite" href="https://github.com/sitaramc/gitolite"&gt;self-hosted git server&lt;/a&gt;. I’ve lost countless hours trying to install &lt;a title="Gitalist hell" href="http://www.gitalist.com/install/"&gt;Gitalist&lt;/a&gt; and had too many ugly systems installed. But, no more, I hope.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Gitolite support will be available in v 2.0)&lt;/em&gt;&lt;/p&gt;</description><link>http://wellconsidered.be/post/11905299470</link><guid>http://wellconsidered.be/post/11905299470</guid><pubDate>Tue, 25 Oct 2011 14:14:00 +0200</pubDate></item><item><title>Kindle Format 8</title><description>&lt;a href="http://www.amazon.com/gp/feature.html/ref=amb_link_357883242_1?ie=UTF8&amp;docId=1000729511&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=right-4&amp;pf_rd_r=1W9TVW24FCY05XH8YNN3&amp;pf_rd_t=1401&amp;pf_rd_p=1325986302&amp;pf_rd_i=1000729901"&gt;Kindle Format 8&lt;/a&gt;: &lt;blockquote&gt;
&lt;p&gt;We’re pleased to announce a wide range of new features and enhancements – including HTML5 support – coming in Kindle Format 8 (KF8). KF8 is the next generation file format for Kindle books – replacing Mobi 7. As showcased on Kindle Fire, KF8 enables publishers to create great-looking books in categories that require rich formatting and design such as children’s picture books, comics &amp; graphic novels, technical &amp; engineering books and cookbooks. Kindle Format 8 replaces the Mobi format and adds over 150 new formatting capabilities, including fixed layouts, nested tables, callouts, sidebars and Scalable Vector Graphics, opening up more opportunities to create Kindle books that readers will love.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seems like great news to me. Although I doubt the new format will be available on the slightly older Kindle devices, not so great news.&lt;/p&gt;</description><link>http://wellconsidered.be/post/11871119246</link><guid>http://wellconsidered.be/post/11871119246</guid><pubDate>Mon, 24 Oct 2011 20:35:02 +0200</pubDate></item><item><title>Building an installation together with Jeroen Bourgois,...</title><description>&lt;img src="http://26.media.tumblr.com/tumblr_lt237dep6d1r36yjwo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Building an installation together with &lt;a href="http://jeroenbourgois.be/"&gt;Jeroen Bourgois&lt;/a&gt;, using &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt; and &lt;a href="http://www.sparkfun.com/products/9367"&gt;WiFly Shield&lt;/a&gt;.&lt;/p&gt;</description><link>http://wellconsidered.be/post/11433788226</link><guid>http://wellconsidered.be/post/11433788226</guid><pubDate>Fri, 14 Oct 2011 14:40:24 +0200</pubDate></item><item><title>Amazon on fire</title><description>&lt;p&gt;For over 6 months now, I’ve been very happy with &lt;a title="Amazon Kindle Keyboard 3G" href="http://www.amazon.com/gp/product/B004HZYA6E/ref=as_li_ss_tl?ie=UTF8&amp;tag=wellconsidere-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B004HZYA6E"&gt;my Kindle 3G&lt;/a&gt;. It is a second generation one, with a keyboard. Being very lightweigt, having a long battery life and a fantastic screen (you have to see it before you know what I mean) is what still excites me everytime I use it. You see, I became somewhat of a Kindle / Amazon fan-boy!&lt;/p&gt;
&lt;p&gt;And now, Amazon updated its Kindle line-up with the addition of 3 new (dedicated) e-readers: &lt;a title="Amazon Kindle" href="http://www.amazon.com/gp/product/B0051QVESA/ref=as_li_ss_tl?ie=UTF8&amp;tag=wellconsidere-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B0051QVESA"&gt;Kindle&lt;/a&gt;, &lt;a title="Amazon Kindle Touch" href="http://www.amazon.com/gp/product/B005890G8Y/ref=as_li_ss_tl?ie=UTF8&amp;tag=wellconsidere-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B005890G8Y"&gt;Kindle Touch&lt;/a&gt; and &lt;a title="Amazon Kindle Touch 3G" href="http://www.amazon.com/gp/product/B005890G8O/ref=as_li_ss_tl?ie=UTF8&amp;tag=wellconsidere-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B005890G8O"&gt;Kindle Touch 3G&lt;/a&gt;. Even more lightweight and smaller.&lt;br/&gt;If you were still unsure whether to buy one or not: don’t hestitate, go get one now (but know &lt;a href="http://publishingperspectives.com/wp-content/uploads/2011/09/Pick-Your-Kindle-Flowchart.png"&gt;which one to choose&lt;/a&gt; :))! You’ll be very pleased with it, as I have been for the past months.&lt;/p&gt;
&lt;p&gt;When owning a Kindle, living in Belgium has some downsides. You’re still dependend on the Amazon book / Kindle store for your books and it doesn’t contain much literature in dutch. So for now, this is my main medium for all my technical books and some international writers. There are some options to buy on a store like Bol.com and than convert the book … but that’s down a ‘non-legal’ road and that might be too much of a hastle. Buying on Amazon.com is as simple as hitting the Buy button and your book is delivered automatically and via WiFi or &lt;a href="http://www.amazon.com/gp/help/customer/display.html?nodeId=200375890"&gt;Whispernet&lt;/a&gt; (world-wide data connection). &lt;/p&gt;
&lt;p&gt;But besides that: I’m all for the Amazon Kindle product-line.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lshbpytWmL1r0sz9y.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Last but not least, Amazon announced the &lt;a title="Amazon Kindle Fire" href="http://www.amazon.com/gp/product/B0051VVOB2/ref=as_li_ss_tl?ie=UTF8&amp;tag=wellconsidere-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399373&amp;creativeASIN=B0051VVOB2"&gt;Kindle Fire&lt;/a&gt;. An Android based tablet with a strong focus on movies, music and books. Might seem an attractive (and maybe only decent) alternative to an iPad .. time will tell.&lt;/p&gt;</description><link>http://wellconsidered.be/post/10974093090</link><guid>http://wellconsidered.be/post/10974093090</guid><pubDate>Mon, 03 Oct 2011 09:35:00 +0200</pubDate></item><item><title>"The Mythical Man-Finger.

faster, easier to understand, easier to integrate, more scalable, more..."</title><description>“&lt;p&gt;The Mythical Man-Finger.&lt;/p&gt;

&lt;p&gt;faster, easier to understand, easier to integrate, more scalable, more portable, more sustainable, more consistent, and many, many times more flexible than even the most well-thought-out graphical apps.&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://j.mp/ofkcdS"&gt;http://j.mp/ofkcdS&lt;/a&gt;&lt;/em&gt;</description><link>http://wellconsidered.be/post/10727640045</link><guid>http://wellconsidered.be/post/10727640045</guid><pubDate>Tue, 27 Sep 2011 16:41:00 +0200</pubDate><category>commandline</category><category>cli</category><category>gui</category><category>linux</category><category>mouse</category><category>ux</category></item><item><title>Stock quotes as a Ruby library or via your command line: Stockery</title><description>&lt;p&gt;&lt;a title="stockery" href="https://github.com/pierot/stockery"&gt;Stockery&lt;/a&gt;, a simple Ruby gem that allows you to query stock quotes from (for now) the Google API or Yahoo Finance API. The nice thing is that you can use it as a library inside your project, or just via the command line and mix &amp; mash it with your favourite shell script.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage via command line&lt;/strong&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1235742.js"&gt; &lt;/script&gt;&lt;p&gt;By default stockery outputs a JSON format of the result fetched from Google.&lt;/p&gt;
&lt;script src="https://gist.github.com/1235750.js"&gt; &lt;/script&gt;&lt;p&gt;Fetch GOOG quote via Yahoo.&lt;/p&gt;
&lt;script src="https://gist.github.com/1235751.js"&gt; &lt;/script&gt;&lt;p&gt;Set the output to print and it prints it directly to your prompt.&lt;/p&gt;
&lt;script src="https://gist.github.com/1235756.js"&gt; &lt;/script&gt;&lt;p&gt;Multiple stock symbols.&lt;/p&gt;
&lt;script src="https://gist.github.com/1235777.js"&gt; &lt;/script&gt;&lt;p&gt;Help :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage through Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1235774.js"&gt; &lt;/script&gt;</description><link>http://wellconsidered.be/post/10526511041</link><guid>http://wellconsidered.be/post/10526511041</guid><pubDate>Thu, 22 Sep 2011 21:33:00 +0200</pubDate><category>ruby</category><category>stock</category><category>quote</category><category>cli</category><category>finance</category><category>gem</category></item><item><title>Rack-webconsole, a console inside your browser</title><description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Wouldn’t it be nice to have an in-browser console for a Rails application?”&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Introducing rack-webconsole&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://codegram.github.com/rack-webconsole"&gt;Rack-webconsole&lt;/a&gt; is a Rack middleware that enhances your development experience providing a JavaScript-powered bridge to your Ruby application backend.&lt;/p&gt;
&lt;p&gt;With it you can interact with your database and explore the runtime environment from within the browser. Although it should be used mainly in development environments, I personally think it could be a useful tool for staging as well. Avoids the pain in the ass of interacting with some console over an SSH session :)&lt;/p&gt;
&lt;/blockquote&gt;
via &lt;a href="http://blog.codegram.com/2011/7/rack-webconsole-a-rubyrails-console-inside-your-browser?utm_source=rubyweekly&amp;utm_medium=email"&gt;blog.codegram.com&lt;/a&gt;
&lt;p&gt;This one is really useful. It keeps you in your browser window while debugging an application.&lt;/p&gt;</description><link>http://wellconsidered.be/post/10519734978</link><guid>http://wellconsidered.be/post/10519734978</guid><pubDate>Fri, 29 Jul 2011 12:54:00 +0200</pubDate><category>console</category><category>rack</category><category>ruby</category></item><item><title>Gem Versioning and Bundler: Doing it Right</title><description>&lt;blockquote&gt;&lt;span&gt;Gem Versioning and Bundler: Doing it Right&lt;/span&gt;
&lt;p&gt;May 30th, 2011&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Executables&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;When you install a gem to the system, Rubygems creates wrappers for every executable that the gem makes available. When you run an executable from the command line &lt;strong&gt;without bundle exec&lt;/strong&gt;, this wrapper invokes Rubygems, which then uses the normal Rubygems activation mechanism to invoke the gem’s executable. This has changed in the past several months, but Rubygems will invoke &lt;strong&gt;the latest version of the gem installed in your system&lt;/strong&gt;, even if your &lt;code&gt;Gemfile.lock&lt;/code&gt; specifies a different version. In addition, it will activate the &lt;strong&gt;latest (compatible) installed version of dependencies of that gem&lt;/strong&gt;, even if a different version is specified in your &lt;code&gt;Gemfile.lock&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This means that invoking executables as normal system executables bypasses bundler’s locked dependencies. In many cases, this will not pose a problem, because developers of your app tend to have the right version of the system-installed executable. For a long time, the Rake gem was a good example of this phenomenon, as most &lt;code&gt;Gemfile.lock&lt;/code&gt;s declared &lt;code&gt;Rake 0.8.7&lt;/code&gt;, and virtually all Ruby developers had &lt;code&gt;Rake 0.8.7&lt;/code&gt; installed in their system.&lt;/p&gt;
&lt;p&gt;As a result, users fell into the unfortunate belief that running system executables was compatible with bundler’s locked dependencies. To work around some of the remaining cases, people often advocate the use of rvm gemsets. Combined with manually setting up application-specific gemsets, this can make sure that the “system executables” as provided via the gemset remain compatible with the &lt;code&gt;Gemfile.lock&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, this kludge (and others) sufficiently reduced the pain that most people ignored the advice of the bundler documentation to always use &lt;code&gt;bundle exec&lt;/code&gt; when running executables tied to gems in the application’s &lt;code&gt;Gemfile.lock&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It’s worth noting that typing in &lt;code&gt;rake foo&lt;/code&gt; (or &lt;code&gt;anyexecutable foo&lt;/code&gt;) in the presence of a &lt;code&gt;Gemfile.lock&lt;/code&gt;, and expecting it to execute in the bundler sandbox doesn’t make any sense, since you’re not invoking Bundler. Bundler’s sandbox relies on its ability to be present at the very beginning of the Ruby process, and to therefore have the ability to ensure that the versions of all loaded libraries will reflect the ones listed in the &lt;code&gt;Gemfile.lock&lt;/code&gt;. By running a system executable, you are executing Ruby code before Bundler can modify the load path and replace the normal Rubygems loading mechanism, allowing arbitrary unmanaged gems to get loaded into memory. Once that happens, all bets are off.&lt;/p&gt;
&lt;small&gt;&lt;a href="http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right#"&gt;Click here to cancel reply.&lt;/a&gt;&lt;/small&gt;&lt;/blockquote&gt;
via &lt;a href="http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/"&gt;yehudakatz.com&lt;/a&gt;
&lt;p&gt;Great tip as I’ve been having the ‘rake-problem’ myself lately while upgrading to 0.9.1.&lt;/p&gt;</description><link>http://wellconsidered.be/post/10519723501</link><guid>http://wellconsidered.be/post/10519723501</guid><pubDate>Sun, 05 Jun 2011 06:26:00 +0200</pubDate><category>bundle exec</category><category>bundler</category><category>gem</category><category>rake</category><category>ruby</category><category>rubygems</category><category>versions</category></item><item><title>Vim Movement Shortcuts Wallpaper - Ted Naleid</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lrxk7sdWxu1r0sz9y.png"/&gt;&lt;/p&gt;
&lt;p&gt;via &lt;a href="http://naleid.com/blog/2010/10/04/vim-movement-shortcuts-wallpaper/"&gt;naleid.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most of the keys are already ‘in-my-fingers’ but I keep forgetting some basic one.  &lt;br/&gt;This is going to be real useful for me!&lt;/p&gt;</description><link>http://wellconsidered.be/post/10519722727</link><guid>http://wellconsidered.be/post/10519722727</guid><pubDate>Tue, 31 May 2011 14:34:00 +0200</pubDate><category>vim</category></item><item><title>The $20 Starbucks Test</title><description>&lt;div class="posterous_bookmarklet_entry"&gt;
&lt;blockquote&gt;
&lt;div&gt;
&lt;h3&gt;&lt;a href="http://blog.snootymonkey.com/post/2432103782/the-20-starbucks-test"&gt;The $20 Starbucks Test&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A couple of weeks ago I had the good fortune to meet &lt;a href="http://www.crunchbase.com/person/hugh-crean" target="_blank"&gt;Hugh Crean&lt;/a&gt;, the ex-CEO of &lt;a href="http://www.bing.com/travel/about/howAirPredictions.do" target="_blank"&gt;Farecast&lt;/a&gt;, ex-Microsoft executive (they acquired Farecast) and current Entrepreneur in Residence at General Catalyst. A group of us talked to Hugh for close to an hour, and I learned more about the travel industry in that short span than I’ve learned in a lifetime of flying, hoteling and using Kayak, Priceline and the like.&lt;/p&gt;
&lt;p&gt;The purpose of our chat with Hugh was to get some feedback on a project we are working on, and Hugh shared a cool $20 technique for validating your new product, service or startup idea that I’d like to pass on. Here is how it works:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Get yourself a nice crisp $20 from an ATM&lt;/li&gt;
&lt;li&gt;Go down to your neighborhood Starbucks&lt;/li&gt;
&lt;li&gt;Walk up to strangers with empty coffee mugs and tell them you are worried about your brother, need some advice, and can you buy them a cup of coffee in exchange for a quick 5 minutes of their time. (This will be awkward for most of you to do. Get over it. The “worried about my brother” line is a bit of psychology that means most people won’t turn you down. If they do turn you down, you just got a point in the &lt;a href="http://rejectiontherapy.com/" target="_blank"&gt;Rejection Therapy Game&lt;/a&gt; anyway, so consider yourself lucky).&lt;/li&gt;
&lt;li&gt;Buy them a simple coffee, not a mocha-whippa-frappa-latta-chino; you want your $20 to last.&lt;/li&gt;
&lt;li&gt;Explain that your brother has a crazy business/product idea, and that he’s about to get a 2nd mortgage on his house, raid his 401k and quit his job. His wife is a nervous wreck, afraid that they’ll lose their house and retirement fund, and he’s hit your parents up for seed money that they really can’t afford to lose. Your parents and your sister-in-law have come to you for help to try to talk him out of his hair-brained scheme.&lt;/li&gt;
&lt;li&gt;Explain that this is where they come in, your brother is a very logical and reasonable guy, and can be convinced by good reasons, but he has been blinded by thinking this is a really good idea. The problem is, you sort of agree with him, so you need some really solid reasons to give him as to why his idea won’t work, and why he shouldn’t proceed with his plan. Then… pitch your idea! Sell it the best way you can. Respect their time (you asked for 5 minutes), but give the best 2-3 minute pitch you can.&lt;/li&gt;
&lt;li&gt;Now, ask for their reasons the idea won’t work. Keep them focused on the idea, not the backstory (they may want you to convince your brother of the merits of retirement savings or the dangers of 2nd mortgages), and really listen. Resist the temptation to argue against their objections. Then thank them heartily for their time.&lt;/li&gt;
&lt;li&gt;Repeat until your $20 runs out.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://blog.snootymonkey.com/post/2432103782/the-20-starbucks-test"&gt;blog.snootymonkey.com&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;I think this is a great way to test your ideas. And it doesn’t matter if those ideas are for a marketing campaign or your upcoming startup-project.&lt;/p&gt;
&lt;/div&gt;</description><link>http://wellconsidered.be/post/10519722049</link><guid>http://wellconsidered.be/post/10519722049</guid><pubDate>Tue, 31 May 2011 12:56:00 +0200</pubDate><category>ideas</category><category>pitch</category><category>startup</category></item><item><title>Socket Policy file for AS3 with Node.js socket server</title><description>&lt;p&gt;Setting up a socket server with &lt;a href="http://nodejs.org/"&gt;Node.js&lt;/a&gt; is very simple. Consuming it with Actionscript 3 should be too.&lt;/p&gt;
&lt;p&gt;Except, Flash has very strict policy rules concerning which domains/ips can connect through which ports on your server. So, your socket server needs to serve a crossdomain policy xml file which states that your client can connect to the server. Something like this:&lt;/p&gt;
&lt;script src="https://gist.github.com/919731.js"&gt; &lt;/script&gt;&lt;p&gt;I’m not using a very strict policy rule; perfect for development purpose.&lt;/p&gt;
&lt;p&gt;When you connect with Flash to a socket server, Flash will first check if it is allowed to connect, thus requesting the xml policy file. It will send a message like this:&lt;/p&gt;
&lt;script src="https://gist.github.com/919737.js"&gt; &lt;/script&gt;&lt;p&gt;The problem I had was that I served the policy file only after the connection was made and the first data message (like the one above) was sent. What I didn’t do, at first, was sending the policy file right after the connection was made and also when Flash sends the request message (&lt;policy-file-request/&gt;). &lt;br/&gt;This resulted in an error:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;strong&gt;Ignoring &lt;em&gt;policy&lt;/em&gt; file with &lt;em&gt;incorrect syntax&lt;/em&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So I had to change it into something like this:&lt;br/&gt;&lt;strong&gt;(don’t forget you need to end each socket.write with ”)&lt;/strong&gt; &lt;/p&gt;
&lt;script src="https://gist.github.com/919707.js"&gt; &lt;/script&gt;</description><link>http://wellconsidered.be/post/10519721421</link><guid>http://wellconsidered.be/post/10519721421</guid><pubDate>Thu, 14 Apr 2011 17:25:00 +0200</pubDate><category>as3</category><category>crossdomain</category><category>nodejs</category><category>policy</category><category>socket</category></item><item><title>Updated Ruby version with RVM causing RubyGems errors</title><description>&lt;p&gt;&lt;em&gt;This is a reminder for myself and others, it’s nothing new.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When your run into errors like these when executing a ‘&lt;span&gt;gem install&lt;/span&gt;’ command:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ERROR: While executing gem … (ArgumentError)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;marshal data too short&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;and these:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;uninitialized constant Gem::Commands::InstallCommand&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It’s clear there’s something wrong in your Ruby / RubyGems setup. I was using &lt;a href="http://rvm.beginrescueend.com/"&gt;RVM&lt;/a&gt; and when I updated my Ruby version to the latest I got messages as mentioned. It took me a while before I figured out what to do.&lt;/p&gt;
&lt;p&gt;There were 2 things, I needed to do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;First: delete your ~/.gem directory.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/908655.js"&gt; &lt;/script&gt;&lt;p&gt;It probably contains some gem versions compiled for another version or so. Just get rid of them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Second: delete your cache folder of your Ruby installation&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In case you’re using RVM it’s located in a directory like this on:&lt;/p&gt;
&lt;script src="https://gist.github.com/908663.js"&gt; &lt;/script&gt;&lt;p&gt;&lt;em&gt;(I installed RVM ‘system-wide’)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So you do:&lt;/p&gt;
&lt;script src="https://gist.github.com/908669.js"&gt; &lt;/script&gt;&lt;p&gt;After this I could install all my gems again and run ’&lt;span&gt;bundle install&lt;/span&gt;’ without any problem.&lt;/p&gt;</description><link>http://wellconsidered.be/post/10519720638</link><guid>http://wellconsidered.be/post/10519720638</guid><pubDate>Thu, 07 Apr 2011 20:28:00 +0200</pubDate><category>cache</category><category>gem</category><category>gem install</category><category>marshal</category><category>ruby</category><category>rubygems</category><category>rvm</category></item></channel></rss>

