Categories for Programmers: The Yoneda Lemma
This is part 15 of Categories for Programmers. Previously: Representable Functors. See the Table of Contents. Most constructions in category theory are generalizations of results from other more sp…
How I Got a Job in Web Development
The long, honest story of how I taught myself web development and turned it into a career.
Inside Ember.js FastBoot: Faking the DOM in Node
As we announced in the inaugural blog post in our Inside FastBoot series, we have begun working on giving Ember.js developers the ability to run their apps in Node.js. Once complete,...
Tuning Ruby's Global Method Cache
I was recently profiling a production Shopify application server using perf and noticed a fair amount of time being spent in a particular function, st_lookup, which is used by Ruby’s MRI implementation for hash table lookups: Hash tables are used all over MRI, and not just for the Hash object; global variables…
Node v4.1.0
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Building a ‘People Who Like This Also Like’ Feature
A while ago a friend of mine asked me how I would go about building a ‘People Who Like This Also Like …’ feature for a music startup he was working at. For each band or musician, he wanted to display a list of other artists that people might also be interested in.
Struct composition with Go
This is a quick Friday blog post to talk about a recent experience I had working on a piece Juju code that needed to capture the data being sent over a net.Conn .
Creating standalone Mac OS X applications with Python and py2app
In this tutorial we’ll be using py2app to create a standalone OSX application from a Python 2 or 3 source code with a simple Tkinter user interface. "py2app is a Python setuptools command which will allow you to make standalone application bundles and plugins from Python scripts. py2app is similar in purpose and…
How Laziness Works
So yesterday I saw someone ask about how many times the variable m gets evaluated in the following Haskell snippet:
Finding Closure in Rust
Closures in Rust are powerful and flexible, building on traits, generics and ownership.
Why Don't Software Developers Use Static Analysis Tools to Find Bugs?
Using static analysis tools for automating code inspections can be beneficial for software engineers. Such tools can make finding bugs, or software defects, faster and cheaper than manual...
Python Extension Proposal 498: Literal String Formatting
Python supports multiple ways to format text strings. These include %-formatting 1, str.format() 2, and string.Template 3. Each of these methods have their advantages, but in addition have disadvantages that make them cumbersome to use in practice. This...
Why We Use Go
Go is decidedly polarizing. While many are touting their transition to Go, it has become equally fashionable to criticize and mock the language. As Bjarne Stroustrup so eloquently put it, “There are only two kinds of programming languages: those people always bitch about and those nobody uses.” This adage couldn’t be…
What Holds Me Back from ClojureScript
Thoughts about programming, mostly
ElixirConfEU Keynote – Phoenix Takes Flight [video]
I’m Chris McCord, a programmer with a passion for science and building things. I spend my time crafting the Phoenix Framework, working with …
Rr 4.0 Debugger Released with Reverse Execution
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Double-clicking on the Web
Here's a usability feature for the web: disable double-clicks on links and form submits. Before you think I'm a complete idiot, allow me to talk some sense into …