Alex Collins – Blog

Things I'm learning; lessons or otherwise…

Holiday Hack: reading Java class files

by atc on March 24, 2013, 2 comments

I spent a week by the pool in Egypt with my girlfriend, relaxing and…hacking. The lack of WiFi meant I had to rely on instinct and intellect to get me through my pet project and it proved a worthy exercise in problem solving and perseverance… I had the crazy idea of practicing my C programing […]

Clojure’s Concurrency: easy atoms

by atc on August 5, 2012, no comments

Clojure’s atoms let one transactionally and atomically store values. When one uses an atom, Clojure manages the mutation of the value and guarantees atomicity. Such a feature is very useful in a highly concurrent application. Much like Java’s Atomic* classes, but somewhat more powerful. This is a brief introduction. Atomic Values To define an atom, […]

Clojure’s Concurrency: Futures and Agents in Harmony

by atc on July 29, 2012, no comments

I’ve previously written on the wonders of Clojure’s agents, giving the programmer a wonderfully easy way of writing asynchronous code with very little effort. Here’s a slightly more complex example for those wanting more context. Combining Futures and Agents We’ll use this (deliberately poor) inefficient find-primes in a (future) to allow for asynchronous processing in […]

There’s nothin’ wrong with the Findbugs Maven Plugin

by atc on February 15, 2012, no comments

I made a schoolboy error. I ventured down the road named “Thinking your tools are broken instead of your code”. I haven’t done that in years. There’s nothing wrong with the Findbugs plugin for Maven. If you want to scan sub-packages by using the onlyAnalyze option, simply end your package declaration with .-. The manual […]

Modern Service Oriented Architecture: the basics

by atc on January 3, 2012, no comments

Just some of my notes on looking over SOA related theory. What is “SOA”? Service Oriented Architecture is a means of exposing business services separately from their platform and codebase in order to provide local and/or remote invokation of said services through abstracted data types and signatures. Put simply: SOA allows you to talk to […]

Convert LaTeX to any output format easily

by atc on December 4, 2011, no comments

I use LaTeX to take notes, record TODO lists, the shopping and everything in between. Oftentimes, I’ll need to copy my notes to somewhere: a wiki, this blog, or to put in an email. It’s at this point I need to quickly convert to my target format. So, to satisfy the above, I wrote a […]

What’s an “Interface” in Java?

by atc on October 29, 2011, 4 comments

I was browsing reddit this afternoon and came across this post. It’s an interesting concept to explain. I mean, what is an interface in Java? I thought through the best way to explain this to someone who doesn’t understand OO or Java in general, and I came up with the following. The Letterbox Analogy Think […]

Linux + svn + ssh+ Samba/NTFS: Operation Not Permitted!

by atc on October 15, 2011, no comments

My fancy-dancy and super-awesome SheevaPlug has certainly settled in at home. It exposes my media from my NAS so I can access it anywhere; runs transmission-daemon headless for all the ISO downloading of open source software I do; runs subversion/svn for my source code versioning needs; cleans the cat when it runs in with…OK, no. […]