Clojure Gazette 1.50

core.typed, bravery, and accelerometer

Clojure Gazette

Issue 1.50 --- September 4, 2013

Editorial

Hello, Clojurites!

I promised you last week that I would have my videos up for sale before this newsletter went out. Well, I pulled a site together and they are selling! The LispCast Introduction to Clojure Videos are a great way for a beginner to Lisp to get comfortable with the syntax and main semantic concepts. They are a labor of love. I want to make more of them. If you think it's a good idea, please share with your friends. Tweet, Plus, Share, Blog, Retweet, Tumble, Pin, Thumbs Up, Like, whatever you can do to get the word out.

Enjoy!

Sincerely,
Eric Normand

P.S. I love hearing from readers. Just reply to this email!

Reading

Creating Sampled Instruments with Overtone

A cool walkthrough of using sampled flutes to create an overtone instrument.

Clojure for the Brave and True

Daniel Higginbotham has begun a nice beginner's guide to Clojure.

Using Polymorphic Higher-order Functions

Ambrose Bonnaire-Sargeant explains how to use polymorphic, higher-order functions, such as map, with core.typed.

Using core.typed at the REPL

A good, brief guide to using core.typed interactively to check the types of individual forms and whole namespaces.

Clojure and testing

Alex Miller examines the Clojure outlook on testing. It turns out it is rich and varied.

Moving things with Clojurescript and your phone accelerometer

A tutorial piece teaching you how to access the accelerometer from a web page and how to make it move things in the DOM. These types of tutorial articles are very helpful. I think we need more of them for Clojure and ClojureScript.

Software

clj-tuple

Zach Tellman has created a new data type that acts like a vector but is many times faster to create and destructure than a normal Clojure vector. You should also check out his other repos on Github.

Frak

A library to infer regular expressions from example matches.

crypto-equality

When comparing strings for equality, usually the function returns false as soon as it knows the strings aren't equal. This means that an attacker can measure the time it takes to compare the strings and determine how far into the string the comparison fails. He/she can use that to grow a prefix for such a string, until the prefix matches the entire string. This spells doom for comparing password strings or even their hashes.

James Reeves has issued a micro-library for comparing strings which always checks every character. I favor these types of micro-libraries because they effectively service a specific need.

lein-typed

A handy Leiningen plugin for type checking your code.

Watching

LispCast Introduction to Clojure Videos

I don't often promote my own content, but I am taking the privilege this time. Last week I told you that I would have this ready and now it is. You can purchase the videos for download with no DRM. The videos might be too basic for readers of the Gazette, but you might know others who could benefit from them. Please tweet, Facebook, and blog about them if you think they are worthy.

Programming for the Expression of Ideas

Does programming have something to offer the physics student? Gerald Sussman says that programming can clarify poorly expressed mathematical ideas.