HomeArticles by: Michael Rowe

Michael Rowe

The REA Tech Blog has a new home!

Category: Tech
Published on
Welcome to the new home of the REA Tech Blog: http://rea.tech/ This blog is about technology at REA Group, and we’re bigger than just our Australian property site. The new domain name reflects that, as well as being shorter—easier to remember, easier to type! Please update your bookmarks and feed readers. 🙂

Static analysis—what’s it good for?

Category: Tech
Published on
Let’s face it, writing software is hard. And frankly we humans suck at it. We need all the help we can get. Our industry has developed many tools and techniques over the years to provide “safety rails”, from the invention of the macro assembler through to sophisticated integration and automated testing frameworks. But somewhere along the way the idea of static analysis went out of favour. I’m here to convince you that static analysis tools still have a place in modern software engineering. Note that I am avoiding the word “metrics” here.…

Language use at REA

Category: Tech
Published on
As previously discussed we’re pretty keen on micro services at REA. Our delivery teams are organised around small, autonomous “squads” that get to choose pretty much any language and technology stack they wish to implement their solutions. This inevitably leads to a fairly broad church of language use. 🙂 That’s a graph of the 14 most commonly used languages across all of our Git repositories. Ruby is over-represented because it is widely used for tooling and deployment scripting, leading to lots of small repositories. But it’s also used in lots…

A Clojure library to authenticate with LDAP

Category: Tech
Published on
We have recently released as open source a small Clojure library that allows easy authentication users against an LDAP server: https://github.com/realestate-com-au/clj-ldap-auth It uses the UnboundID LDAP SDK for Java to look up a user name in an LDAP server and attempt to bind with specified credentials. The simplest usage looks like: (require '[clj-ldap-auth.ldap :as ldap]) (if (ldap/bind? username password) (do something-great) (unauthorised)) That works, but isn’t very helpful when authentication fails. So you can also pass a function that will be called with a diagnostic message in the event that…