Apr 6, 2014

In Defense of Coffeescript

I often see arguments about whether or not using coffeescript is a good idea. Arguments against usually center around whether it's a barrier for contributions, or whether it's an unnecessary abstraction over another language that the developer needs to know anyhow.

Mar 20, 2014

Elasticsearch Rosetta Stone

I've recently done some work with Elasticsearch. It's a great platform, but I still found it pretty hard to get started. It wasn't obvious what was what. Perhaps I didn't read the docs closely enough. Anyhow, I wrote up some examples demonstrating how to get started with Elasticsearch.

Feb 20, 2014

Set up Flask with webassets

Flask isn't new, but it's really great, and it's definitely my first choice when starting a new Python app. Today I want to give you a quick tour of the tools I use to set up a new Flask app.

Jan 19, 2014

Just what does "code as data" mean anyway?

Recently, I've seen popular articles on macros and metaprogramming in Nimrod and Elixir. Both of these are wonderful metaprogramming systems, to be sure, but I couldn't help

Dec 6, 2013

The many flavors of concurrency in Clojure

Clojure, being the extensible, malleable, rewritable language that it is, is spoiled for choice when it comes to making your cores work for you. You can pick your poison when it comes to making your program concurrent.

Nov 16, 2013

Angular in the small

For those of you that aren't familiar, Angular.js is one of a new breed of emerging frameworks dedicated to building rich, responsive in-browser interfaces. I've had the privilege of working with both Ember.js and Angular.js, and enjoyed them both, so this won't be a showdown (if that's what you came for, here's a nice one).

Nov 7, 2013

Common Rules in Cryptography

Disclaimer: I have no background in cryptography, despite writing occasional ramblings on the subject. I just know what I've picked up along the way, of which precious little is made available to people who don't go searching for it.

Oct 8, 2013

What your datastore says about you

Disclaimer: Do I even need a disclaimer? Chill out dudes, don't get all bent.

Sep 29, 2013

Clojure's core.typed vs Haskell

Ambrose Bonnaire-Sergeant's core.typed library has been receiving a lot of attention lately. In fact, Ambrose has just raised a well-deserved $20,000 to continue his work on the library.

Sep 10, 2013

On secure SSL: The least every developer should know

The NSA, besides playing the role of Big Brother in the unfolding dystopian saga revealed by Snowden's leaks, is at the forefront of cryptography research. Being in the business of secrecy, the NSA also has recommendations for keeping things secret.

Aug 30, 2013

Top Github Languages for 2013 (so far)

I just discovered the Github Archive, a dataset of Github events queryable using Google BigQuery. What fun! So I decided to count how many repositories have been created this year by language.

Aug 21, 2013

Fixing "Could not generate DH keypair" on RedditLater.com

RedditLater.com is a little app I made last April. It worked fine until sometime in July, when Reddit released an improvement to its SSL configuration on its api. Thereafter, attempts to get an access token using clj-http-lite began

Aug 6, 2013

3 new programming languages to watch

On the eve of learnxinyminutes.com getting TechCrunch'd, I thought I'd write about a few of my favorite languages on the site.

Learn X in Y minutes has a lot of conventional blockbusters like C and

Jul 11, 2013

3 Wrong Ways to Store a Password

Sooner or later, in the field of Web Development, you're going to need to store someone's password. This is easy to get wrong, but easy to get right, too. Today, let's take a tour of the wrong ways, and then find out how to do it the (current) right way.

Jul 10, 2013

Live development is the way of the future

Live development is nothing new; it's been well-explored in Lisps and in other languages like Smalltalk and Erlang since more or less the dawn of man. Emacs was for a long time – and by many still is – considered the only way to develop for Lisp, thanks to SLIME.

Jul 7, 2013

Reducers explained (through Python)

Last year, Clojure introduced a new library called core.reducers, which represented a new, efficient way to deal with operations across collections in functional languages. It's since been picked up by Elixir, and libraries have been written for some other languages.

Today, I want to explain a bit about what reducers are, why they exist, and how they can be more efficient than other functional methods of handling collections, and help you write your code more prettier.

Jun 28, 2013

Learn C in Y minutes

Learn the language of strong, independent women and hairy-chested manly men alike: I've written a quick C overview for LearnXinYMinutes.com.

Y probably is not 15 in this case, but if you feel like brushing up, head on over

Jun 26, 2013

Learn X in Y Minutes

Short version: Go to http://learnxinyminutes.com/

After I posted Learn Clojure in 15 minutes, perhaps yesterday, itself a knockoff of Tyler Neylon's Learn Lua in 15 minutes, I had a little twitter brainstorming session with Tyler and @emarref. Therein, I was inspired/encouraged to generalize the concept of inline tutorials-as-code language primers in a community-editable site.

Jun 24, 2013

Learn Clojure in 15 minutes, perhaps

Moving on from pointless flamebait rants, here's something a bit more constructive. Inspired by Tyler Neylon's excellent Learn Lua in 15 minutes, I humbly present my original effort at an equivalent for Clojure (also available as a gist).

Jun 19, 2013

You use PHP because you don't know better.

My typical response when asked to defend a given offhand, derogatory comment I've just made about PHP is to cite the most excellent PHP is a fractal of bad design. But, spurred, by the numerous comments hating on me for hating on PHP on this Portugese translation of my PHP vs Python vs Ruby vs Clojure piece (which, to be fair, is emphatically biased), I'm going to go ahead and let the hate out now, as one big rant, so that I have something to refer to in the future (even though I bet I'll find it embarrassing and childish then).