By brewbooks from near Seattle, USA (Orbicular Granite) [CC-BY-SA-2.0 (http://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons

CodeMesh 2014 day 2

So, I went to day 2 of CodeMesh this year, James having taken day 1. Here’s a brief round-up of what I saw. Chad Fowler – Keynote “Tiny” An entertaining talk, talking about how the concept of “seven plus or minus two” applies in all sorts of categories of things (although Chad definitely leans towards…

By David Ingham from Bury, Lancashire, England (P2204757 Uploaded by oxyman) [CC-BY-SA-2.0 (http://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons

More Clojure component patterns

Like the proper nerd that I am, I’ve been recently playing around with the National Rail data feeds, with a view to drawing some pretty pictures of quite how differently timely our train services are. So, when you’re developing at the REPL, it’s convenient to be able to cleanly shutdown and restart a n service.…

By Chris McKenna (Own work) [CC-BY-SA-4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

LocationHistory visualisation part 3

I’m a bit like a dog with a bone about this LocationHistory thing (or a dog returning to his vomit?). Previously I had a bash at mapping my movements around London, then spent a bit of time trying to find out what the file format really was. This time, I’d like to tidy up and…

ml-dig

Why not program in Standard ML?

I decided to learn a language from the ML family recently, because we are seeing quite a few good candidates whose strongest language is F# or OCAML. So I decided to learn Standard ML. Yes, I know, that makes no sense. But wait… Standard ML is really small and easily learned. If you know another…

springtime

Lunchtime Hack: Decoding LocationHistory

Last month we took a look at how we might get our location history from Google and show it on a map. We found that the real deal is found at Takeout and consists of a file that’s mostly an array of lat/lng/time entries, but with some sort of ‘activities’ sub-elements sometimes. After a quick…

cables-straight

(defn reloaded/-main [] …)

I’ve been using Stuart Sierra’s reloaded pattern on a few Clojure projects recently, and I hit upon the problem of how best to use Stuart Sierra’s reloaded with a typical long running application. So, I thought I’d share one possible solution. Most of the code should be self explanatory, but there are a few things…

Honeycomb, 2001, Gavin Mackintosh, South Molton, UK. Creative Commons, via WikiCommons.

Java multi methods new home

I’ve split Java multi-methods out of LShift’s Java library. That’s mostly because Guava has equivalents for just about everything else in the library, but the multi-methods part is still unique, as far as I’m aware. You can find it here. You can raise tickets there as well. For more information, see the original post. Here’s…

ConorM_140625_0046_HIRESBW

Internship at LShift

Introduction Today it’s my last day of a 5 month internship as a Software Engineer at LShift. This has been a truly valuable experience for me. I am a third year student of Mathematics and Computer Science at Imperial College London and working here has taught me skills I would have not gained by just…

ConorM_140625_9793_HIRESBW

Lunchtime hack: My cycling routes

Like most Android users (because I think it’s the default) Google tracks my location. Thankfully, they provide a way for me to view and edit the data collected (Thus satisfying some major rules of personal data collection – well done!). But the interface on location history is clunky as a visualisation, so let’s spend lunch…

By Rept0n1x (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0-2.5-2.0-1.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

Optimizing Salsa20 in BouncyCastle

A while ago I started dabbling in cryptography a bit, and inevitably, I ended up toying with performance of the related algorithms and code. In this post I’d like to share my approach to optimizing BouncyCastle’s implementation of Salsa20. A few observations regarding Salsa20 (and presumably other modern ciphers) in the context of performance: Salsa20…