• A Redis-based queueing system for ruby; much more efficient than Resque, from the looks of things, and really nice deployment configuration (ie: someone's bothered to write cap recipes and similar). Definitely going into the toolbelt, I think.
  • "The Bullet gem is designed to help you increase your application’s performance by reducing the number of queries it makes. It will watch your queries while you develop your application and notify you when you should add eager loading (N+1 queries), when you’re using eager loading that isn’t necessary and when you should use counter cache."
  • "In the golden age of BASIC, it was easy for anyone to write a program. Now we offer you this exact same capability, but this time with the advanced features of the Nintendo DSi™ system… Many programs are included to ensure that you can fully enjoy using BASIC. The included programs were also written in BASIC, so you can add new features to them in order to enhance your games. You can also take the programs and data you create and convert them to QR codes that can be shared with friends who also have Petit Computer on their Nintendo DSi systems. (Programs included: 12 feature samples,5games, a character picture tool,a background screen creation tool,a graphics tool,and a picture-drawing tool.)" Interesting – especially the music-creation stuff, as Create Digital Music proved.
  • "ClickToPlugin is a lightweight and highly customizable extension that prevents Safari from launching plug-ins automatically, resulting in faster browsing, reduced fan usage, and increased battery life. It replaces every plug-in object by an unobtrusive placeholder that can be clicked to load the embedded content. Further, it can replace many plug-in-based media players by Safari’s native HTML5 media player." Installed.
  • Cape solves a surprisingly common problem: I have this big bunch of rake tasks; I'd like them to run on the server, which tends to mean writing cap tasks just to run the rake tasks. Cape makes it easy to just mirror them.
  • "Sitting quietly on my kitchen table, it has already changed my radio behaviour: instead of sticking one channel on and leaving it for hours, I surf—but intelligently, discovering things I actually want to hear. Adding pictures to the radio: but just a single, little, useful one." Nice.
  • "A great deal of what is called `digital art’ is not digital art at all, and it seems many digital artists seem ashamed of the digital.  In digital installation art, the screen and keyboard are literally hidden in a box somewhere, as if words were a point of shame.  The digital source code behind the work is not shown, and all digital output is only viewable by the artist or a technician for debugging purposes.  The experience of the actual work is often entirely analog, the participant moves an arm, and observes an analog movement in response, in sight, sound or motor control.  They may choose to make jerky, discontinuous movements, and get a discontinuous movement in response, but this is far from the complexity of digital language.  This kind of installation forms a hall of mirrors.  You move your arm around and look for how your movement has been contorted."
  • "If I were in London now or in the next few weeks, instead of Frieze I'd probably be getting to these shows." Rod's lists are always good.
  • I've used the Settings plugin a lot, but it's very old and dusty. This is a nice fork of it, ported to Rails 3, and saved for future reference.
  • "In a sense, a child, by definition, shrinks Scribblenauts’ scope. The game’s potential solutions are necessarily limited by vocabulary, so players with a smaller vocabulary have fewer options open to them. But, free of the dry, efficient logic of adulthood, a child’s imagination also opens the game up in ways beyond most adults’ reach."
  • "His base is too good, and I don’t have the choke. He proceeds to take a more dominant position, scores points, and my body is burning from the effort. The choke he applies toward the end of the match is almost a formality, since I’m far too tired to do much more than hang on. Second place. Second place because I’m learning the triangle choke, not learning Jiu Jitsu. Chipp never wins tournaments." A fantastic piece of writing, about beat-em-ups and combat sports, and the mindset you get into as you play both. I'm not a combat sports man, but it nails some of the inside of your brain when you've played a lot of beat-em-ups, for sure.
  • "But to my eye, GIF is the most popular animation and short film format that's ever existed. It works on smartphones in millions of people's pockets, on giant displays in museums, in web browsers on a newspaper website. It finds liberation in constraints, in the same way that fewer characters in our tweets and texts freed us to communicate more liberally with one another. And it invites participation, in a medium that's both fun and accessible, as the pop music of moving images, giving us animations that are totally disposable and completely timeless."
  • "My wife and I talk about this. We talk about the protocol of the fertility clinic. We talk about her support group, and failure to produce. We talk about adoption, which is expensive and ambiguous. We talk about giving up on the process and living our lives without the ghosts of unconceived children (the most adorable ghosts there are). We talk, and talk, and wait." Powerful, sad, brave writing from Paul Ford. Sometimes, you wish things were nice for the good people in the world.
  • "I needed to get up to speed with doing recursive node structures so I coded up a project that would put a dot on the screen. When you tapped this dot, it would create a bunch of orbiting child-dots. These children could also be tapped, creating even more child nodes. This prototype took less than a day to create and I naively thought we would be done with the whole thing in a week, max. Silly me."

    Marvellous, dense post from Robert on designing Planetary: lots of show-everything, material exploration, and plussing. What detail looks like.

  • "Years later, when recounting his conversations with Beckett (which he did often), André the Giant revealed that they rarely talked about anything besides cricket."
  • "In this scenario one sunny day you're working on low-level NoSQL projects at the Gootch or wherever, and you get an email from Facebook and you go for the interview and Zuckerberg is talking about scaling PHP and suddenly pauses, gets this look in his eye, pulls his hoodie over his head and says “You have sixty seconds. You should be running.” Because engineers, as we are often reminded, are the ultimate prey."
  • "A problem with the human mind – your human mind – is that it's a horrific kludge that will fail when you most need it not to. The Ugh Field failure mode is one of those really annoying failures. The idea is simple: if a person receives constant negative conditioning via unhappy thoughts whenever their mind goes into a certain zone of thought, they will begin to develop a psychological flinch mechanism around the thought. The "Unhappy Thing" – the source of negative thoughts – is typically some part of your model of the world that relates to bad things being likely to happen to you."
  • "Designers get handed a tool kit that has as many tools as a good swiss army knife, and the maps reflect these tools. Millions of people use them to make appointments across town, find restaurants, and drive home for the holidays.

    But what if, instead of a swiss army knife, we used a box of crayons? Or charcoal and newsprint? Or play-doh? What would those maps look like? What could they tell us about the world?"

  • "One thing that I learned during the launch of the original Macintosh in 1984 was that the press usually oversimplifies everything, and it can't deal with the reality that there are many people playing critical roles on significant projects. A few people always get too much credit, while most people get too little, that's just the way it has always worked. But luckily, it's 2011 and I can use the service that I helped to create to clarify things." This is Good And Proper. (Also it's good management).
  • How ads used to be made. Some beautiful photographs here.
  • Useful notes on the modern way of deploying Rails applications with Bundler and Capistrano.
  • '"The expectation is slightly weird here, that you can do this stuff without killing yourself," added McNamara. "Well, you can't, whether it's in London or New York or wherever; you're competing against the best people in the world at what they do, and you just have to be prepared to do what you have to do to compete against those people."'

    This is what McNamara considers responding to controversy. I'm furious that men like this are allowed to manage other human beings.

  • "This is an atlas, then, made by that other nature, seen through other eyes. But those eyes have been following me, unseen and without permission, and thus I consider provoking breach a necessary act." This is good.
  • "csvkit is a library of utilities for working with CSV, the king of tabular file formats." Ooh.
  • "Synapse is an app for Mac and Windows that allows you to easily use your Kinect to control Ableton Live, Quartz Composer, Max/MSP, and any other application that can receive OSC events. It sends joint positions and hit events via OSC, and also sends the depth image into Quartz Composer. In a way, this allows you to use your whole body as an instrument." Oooh. OSC into anything; really nice, dead simple, and exactly the sort of thing I've been considering poking.

If you’re working in Ruby, you’re probably using Bundler. And if you’re using bundler, you’ll probably know that typing bundle install foo will install your bundle to a directory called foo.

Of course, the problem is that Bundler remembers this configuration, and if you now run bundle install, you’ll install your bundle to… foo.

This is annoying. It’s especially annoying if you never meant to install to foo, and that was just a typo.

So: if you want to reset bundler to installing to the default location – which is your system’s current gem folder – you’re going to spend up a good hour messing around on Google looking for a plain English solution.

Can you guess who did this, and who this article is written for? That’s right, it’s me in the past!

Your solution: just run bundle install --system. That’ll install your bundle to the default system location – and continue to do so in the future. Problem solved.

(As usual, when I write about how to do something technically, it’s because I couldn’t find the answer. That’s all.)