git aliae to make you more awesome (part 1)
One of the amazing advantages of git is that you can create commits locally on your own computer. I think this is one of the massively underestimated features of distributed version control systems as...
View Articleampex — a practical use of Ruby's & operator
Ruby is renowned for both its readability and its flexibility. The ultimate goal of every Ruby program is to work well while appearing as simple as possible. To achieve this as a Ruby programmer,...
View Articlegit aliae so that you never lose work (part 2)
Git is an incredibly powerful tool for version control. Much of this power stems from its underlying append-only object database which ensures that once you’ve made a commit it can never be changed or...
View ArticleHow to program like an explorer (with Pry!).
I'm one of the core committers to the [Pry REPL](http://pry.github.com/). Talking about this at work a few weeks ago, a colleague asked me: "Why should I use pry? I mean, I know it's better, but what's...
View Articleadding context to a shared git repository
At Rapportive we use git extensively for its powerful branching and merging capabilities. The workflow we use is very similar to that used by GitHub: everything in master is deployed, everything else...
View ArticleA quick introduction to Teacup
Teacup is a library for RubyMotion that let’s you create views and layouts in simple declarative code. The simplest way to understand it is that it’s “CSS for iOS”, but that would be to heavily...
View ArticleMVC is dead, it's time to MOVE on.
MVC is a phenomenal idea. You have models, which are nice self-contained bits of state, views which are nice self-contained bits of UI, and controllers which are nice self-contained bits of … What? I’m...
View Articlepry to the rescue
This post is also available [in Russian](http://scriptogr.am/entooru/post/20120827-pry-to-the-rescue). Thanks [kyrylo](mailto:kyrylosilin@gmail.com)! Introducing: pry-rescue: super-fast, painless,...
View ArticleEverything you ever wanted to know about constant lookup in Ruby
One of the best things about Ruby is that it just does what you mean. The downside of this is that if you’re dealing with a fiddly situation, it can be somewhat hard to work out exactly what it will...
View ArticleLSpace: Dynamic scope for Ruby
At Rapportive we have one master database that’s always up-to-date, and a read slave that may be a little bit behind. Usually a database read can use either connection, but if a user is viewing their...
View ArticleVisualizing memory leaks in Ruby
Memory leaks are my least favourite type of bug. To track them down requires not only a detailed knowledge of the entire codebase but also strong intuition (or a lot of luck). To make the process more...
View Articlebracketed paste mode
One of the least well known, and therefore least used, features of many terminal emulators is bracketed paste mode. When you are in bracketed paste mode and you paste into your terminal the content...
View ArticleNode's Unicode Dragon
At Bugsnag we accept JSON payloads of application crashes. These often contain broken data. For example, if your app has crashed with an invalid encoding error, the JSON will often contain the invalid...
View ArticleAvoiding MongoDB hash-injection attacks
MongoDB is a popular document store. Its query API neatly sidesteps SQL-injection attacks by not being SQL. Unfortunately when using a framework like Rails, it’s easy to build an app that’s vulnerable...
View Articledotgpg — easy to use storage for your production secrets
Where are your database passwords? your cookie encryption keys? your SSL certificates? The most common answers are “in git” and “in Dropbox”. Hopefully with a guilty squirm and followed by an awkward...
View ArticleIPv6 configuration instructions
This is a companion article to IPv6 comes to San Francisco that explains how to set up IPv6 with Sonic.net and Comcast. Comcast For Comcast, you can double-check that you have support by visiting...
View ArticleIPv6 comes to San Francisco
If you live in San Francisco there’s a good chance that you can use IPv6 on your home router. Comcast, AT&T, and Sonic.net all support it. (let me know if there’s one I missed). It took me a while...
View ArticleHow to serve a static site from Heroku
Heroku provides an awesome hosting service for all your apps. But it turns out that you can use it to serve static pages too. There are a variety of tricks I’ve seen, but most of them seem to involve...
View ArticleHacking smart-quote support into a font
figure.image img { border: 1px solid rgba(200,200,30,0.3) !important; } I’ve recently been doing some work on making Superhuman the most beautiful email client in the world. (N.B. We’re looking to...
View ArticleSmooth animated HTML-5 icons
Recently we added our first animated icon to Superhuman as part of the transition to the search interface: NOTE: The animations in this video are running at 1/10th of normal speed. There’s clearly more...
View ArticleWhat does = do in rust?
I have been learning rust for the last few months and, like many others, have found it hard to develop an intuition for when the borrow checker will disallow what I’m trying to do.I had an insight...
View Article
More Pages to Explore .....