For the past few years, most of my posts have been beginner-intermediate essays on various clojure features and coding techniques. Since a lot of people have told me that they like my blog as a genre piece, I decided to pull some of my favorites into one place, and order them by difficulty, from Clojure beginner on up so that folks don't have to root around.
It's been about two years since I undertook my first sizable application in Clojure, and really my first experience architecting a system in a functional language. It was a local dating application, and it's still up and running, despite the sins below. But, reading the code now, a few dire instances of truely bad code emerge. So, I crawled through for some examples, which I now impart to you:
After my last post on using Clojure's STM as a quick-and-dirty in-memory datastore, I had an interesting discussion in the comments about the wiseness of implementing my example with a static global. Coincidentally, I attended a talk by Stuart Sierra at EuroClojure about this very thing, and started getting some ideas about how to make things better, which I want to share today.
I was searching for a good example to illustrate some properties of refactoring object-oriented code into a more functional style, and I came across this example from Martin Fowler's Refactoring. It describes the process of refactoring code for a video store. It's a nice little example with a useful narrative to go along with it.
I saw this post, “Do It Yourself NoSql”, recently, and it reminded me of something that Clojure does very very well.
Clojure's go-to concurrency enabler is its
I've written about it before, but this seemed like
an opportunity to provide a nice example, and discuss a little more about some of the things
I often do to defer the need for a database.
This post is a follow-up/supplement to my article Anatomy of a Web App: How I Built RedditLater in Clojure, published on sitepoint. To make the article appealing for a mass-market audience, I had to take out most of the nitty-gritty details that wouldn't interest people who weren't interested in Clojure to begin with (plebians!). The details still have some good stuff in them, though, so I've made this post out of it.
So I hope you're here to read about my fiddly minutae, because off we go!
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.
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.
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.
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.
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).
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.
Disclaimer: Do I even need a disclaimer? Chill out dudes, don't get all bent.
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.
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
Learn X in Y minutes has a lot of conventional blockbusters like C and
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.