Green Eggs and Transducers

A quick tour of Clojure Transducers with core.async with Dr. Seuss as a guide. Follow along at home by: lein new green-eggs modify your project.clj to include the following: (defproject green-eggs "0.1.0-SNAPSHOT" :description "try them" :url "http://en.wikipedia.org/wiki/Green_Eggs_and_Ham" :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} :dependencies [[org.clojure/clojure "1.7.0-alpha1"] [org.clojure/core.async "0.1.338.0-5c5012-alpha"]]) Start up a repl and hack in! Green Eggs and Ham Transducers are a new feature of Clojure 1.7. Instead of trying to explain them with words, let’s take a look of them in action. First we need some data. Let’s def a vector of all the places you could try green eggs and ham. ...

September 6, 2014 · 4 min · Carin Meier

The Proper Pronunciation of Clojure's Assoc

Sometimes I pause before talking to someone about Clojure code. Not because I am unsure of the code, but because I am unsure of how to pronounce the code. The particular code in question is Clojure’s assoc. I have heard it pronounced two ways. One is “assosh”, the other is “assok”. So, to determine it, I decided to conduct a scientific poll of the Clojure community. I posted the poll on twitter to the Cojure community who follow me. The control group poll was not viewed by those who do not follow me, and/or, are not on twitter. ...

July 28, 2014 · 1 min · Carin Meier

Clojure X-Men

Nobody knows how it happened. Some people think it was due to the rapid expansion and adoption of Clojure. Other people say that the language itself was caused by something deeper and more magical. No one knows for sure. All that we really know is that people starting being born with extraordinary powers. Powers that no human had had before. They were strange and unique to each person they touched. The only thing that they all had in common, was that each was an aspect of the Clojure programming language. ...

July 27, 2014 · 4 min · Carin Meier

World Domination with Hexapods and Clojure

Once you have your hexapod assembled and running using the hand held controller, of course, your thoughts naturally turn to world domination. The most powerful tool in the world is the Clojure REPL World domination requires the most powerful tools available. That of course calls for Clojure and the Clojure REPL. I recommend Emacs as the editor of choice of such an endeavor. However, it if you are content with city, state, or single country domination, other editors that support Clojure are also fine. ...

March 20, 2014 · 4 min · Carin Meier

Hitchhiker's Clojure has a New Home

The Hitchhiker’s Guide to Clojure posts now have a new home to make it easier to read them in a chronological fashion. http://hitchhikersclojure.com/ There is also a public repo - feel free to contribute spelling and grammar fixes, or your great ideas.

February 16, 2014 · 1 min · Carin Meier

Hitchhiker's Guide to Clojure - Part 3

Amy and Frank fled down the stairs from her office and met an unexpected obstacle to their exit, a locked door. As they peered out the window, they saw yesterday’s Amy pull up in the parking space, get out, retrieve her laptop, and start to head in the front door. “Oh good, we can take your car”, said Frank. Amy took a second to recover from the shock of seeing what her hair really looked like from behind and then asked, “But, how can we get to it? The door is locked, and we can’t go back up to the office… I would meet myself.” ...

February 15, 2014 · 6 min · Carin Meier

Hitchhiker's Guide to Clojure - Part 2

Amy and Frank were hurtled quite rapidly through time and space after attaching themselves to a transaction headed through the Datomic Transactor. From there things slowed down a bit, then took a sharp left and ricocheted off again with incredible speed until they landed in another Datomic Peer, and finally appeared in the same room. Amy was quite startled by the anti-climatic nature of the whole dematerializing and rematerializing in the same exact spot, and didn’t really know what to do next. She surveyed her office and found it exactly the same, except for two distinct details. For one, the pistachio shells had disappeared, and for another, the date on the computer showed yesterday at 8:00 am. She tried to connect these facts rationally with the pistachios in her pocket and finally said, ...

February 8, 2014 · 4 min · Carin Meier

Hitchhiker's Guide to Clojure

The following is a cautionary example of the unpredictable combination of Clojure, a marathon viewing of the BBC’s series “The Hitchhiker’s Guide to the Galaxy”, and a questionable amount of cheese. There have been many tourism guides to the Clojure programming language. Some that easily come to mind for their intellectual erudition and prose are “The Joy of Touring Clojure”, “Touring Clojure”, “Clojure Touring”, and the newest edition of “Touring Clojure Touring”. However, none has surpassed the wild popularity of “The Hitchhiker’s Guide to Clojure”. It has sold over 500 million copies and has been on the “BigInt’s Board of Programming Language Tourism” for the past 15 years. While, arguably, it lacked the in-depth coverage of the other guides, it made up for it in useful practical tips, such as what to do if you find a nil in your pistachio. Most of all, the cover had the following words printed in very large letters: Don’t Worry About the Parens. ...

February 1, 2014 · 5 min · Carin Meier

Neural Networks in Clojure with core.matrix

After having spent some time recently looking at top-down AI, I thought I would spend some time looking at bottom’s up AI, machine learning and neural networks. I was pleasantly introduced to @mikea’s core.matrix at Clojure Conj this year and wanted to try making my own neural network using the library. The purpose of this blog is to share my learnings along the way. What is a neural network? A neural network is an approach to machine learning that involves simulating, (in an idealized way), the way our brains work on a biological level. There are three layers to neural network: the input layer, the hidden layers, and the output layer. Each layer consists of neurons that have a value. In each layer, each neuron is connected to the neuron in the next layer by a connection strength. To get data into the neural network, you assign values to the input layer, (values between 0 and 1). These values are then “fed forward” to the hidden layer neurons though an algorithm that relies on the input values and the connection strengths. The values are finally “fed forward” in a similar fashion to the output layer. The “learning” portion of the neural network comes from “training” the network data. The training data consists of a collection of associated input values and target values. The training process at a high level looks like this: ...

December 2, 2013 · 11 min · Carin Meier

Looking Forward to London

I really love the London. I have only been once many years ago, but I was enchanted. Here is a partial list of my favorite things: Ducks in Regent’s Park Tea Rooms The Food Hall at Harrod’s The British Museum English Breakfasts The way the British put an extra “r” in phrases like “vanilla in it” As you know, I also adore Clojure. So I am absolutely thrilled to combine the two. ...

October 3, 2013 · 1 min · Carin Meier