Cover photo
Lachlan O'Dea
Lives in Melbourne, Australia
118 followers|60,378 views


Lachlan O'Dea

Articles, Podcasts, Talks  - 
getQuery eq null) "" else u.getQuery + '&' new URI(u.getScheme, u.getAuthority, u.getPath, origQuery + "foo=bar", u.getFragment) }. Ugh, that's going to get old fast. And of course, this primitive string appending probably won't do what you want if the original URI already had a “foo” argument.
Gordon Tyler's profile photoBoyd Smith's profile photoLachlan O'Dea's profile photoSteve Vickers's profile photo
Nice application of lenses to a type not normally thought of as being a container!

Checking out your gist, the lens-related types are very reminiscent of Scalaz's definitions.  Looking at the paper you kindly referenced (thanks!), it makes sense as the author of "Asymmetric Lenses in Scala" is Tony Morris (the originator of scalaz, IIRC).

Here's Scalaz 7's fully generalized LensFamily type:

with Lens defined as:

type Lens[A, B] = LensFamily[A, A, B, B]

Now, off to reading that paper! :-)
Add a comment...

Lachlan O'Dea

Shared publicly  - 
Ken Scambler's profile photoLachlan O'Dea's profile photo
I have yet to read it! But this guy piqued my interest.
Add a comment...

Lachlan O'Dea

Shared publicly  - 
As mentioned, no blocked thread.

I also have a theory that I haven't tested yet, which is that async may work better with HTTP pipelining. Last time I tried pipelining with the traditional blocking servlet API (in Tomcat), the pipelining produced no real benefit: the app code still wouldn't see the other requests until the first was completed.

I try to understand the global concept of Async on Play!
When someone go on "", server open a socket for him.
When I do a large process with Async/Promise, the client waiting the answer.
So the socket is still used, the socket ressource is taken and this socket cannot be used for an other user.

Could you explain me how the Async works ?
Add a comment...

Lachlan O'Dea

Shared publicly  - 
Crazy, but awesome crazy.
Why Apple needs a really expensive iPhone.

Some pundits are predicting, and others are advocating, that Apple launch an iPhone that's much cheaper than the current iPhone in order to keep up with Android phone sales.

This is crazy talk.

Apple doesn't need a cheaper iPhone. They need a more expensive one -- much more expensive. Here's why.
Add a comment...

Lachlan O'Dea

Shared publicly  - 
Isn't this a great sight? Our lovely planet, completely intact, taken a few hours ago as a new day began: Dec. 22, 2012. Courtesy of NOAA's GOES 15 satellite over the Pacific Ocean.
Add a comment...

Lachlan O'Dea

Shared publicly  - 
This just in: Santa has opened his Village for the world to see in preparation for his annual world tour at

The Village tour includes: Reindeer games, free calls from Santa, & some elf surprises. One elf overhead Santa: "Ho ho ho, who wouldn't go?"
Add a comment...

Lachlan O'Dea

Tutorials  - 
My experience deploying a Play app on an Ubuntu server.
All this stuff (known as stanzas) is described in the above mentioned Upstart cookbook, but I'll go through it briefly. The start on / stop on lines indicate that these actions are triggered by change...
Add a comment...

Lachlan O'Dea

Shared publicly  - 
Myles Jordan's profile photo
Good article. Another considered article:
Add a comment...

Lachlan O'Dea

Shared publicly  - 
#BAFact: On this date in 2004, the Earth was hit by the biggest blast of cosmic radiation in recorded history.

Eight years ago today - Dec. 27, 2004 - the Earth was slammed by the biggest explosion of energy coming from deep space in recorded history. It is almost impossible to exaggerate the size and scale of this event: It literally had a physical effect here on Earth, even though the origin was a mind-crushing 50,000 light years away!
Myles Jordan's profile photo
The amount of energy released, at 500 quadrillion kilometers away (based on 1/r^2) beggars belief...
Add a comment...

Lachlan O'Dea

Shared publicly  - 
Did you know that being the son of the monarch makes you a medical expert? It's true! (Apparently)
Add a comment...

Lachlan O'Dea

Shared publicly  - 
So the government finally admits it won't get a surplus, which was already faked by shuffling spending.

The real mistake was promising the surplus in the first place.

Actually, the real mistake was spending like a drunken sailor, so that they were so desperate to shore up their economic credentials that they had to make this silly promise.
Add a comment...
Embrace doubt
  • Scala
  • Apple
  • Unix
  • Blizzard
  • Long walks on the beach
  • Moral relativism
de omnibus dubitandum
Bragging rights
I have two beautiful daughters.
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Melbourne, Australia
Software Developer
Basic Information
Lachlan O'Dea's +1's are the things they like, agree with, or want to recommend.
Introducing our smart contact lens project

You've probably heard that diabetes is a huge and growing problem—affecting one in every 19 people on the planet. But you may not be familia

Maven Repository: Search/Browse/Explore

Popular Tags. ajax analysis annotations ant apache api archetype aspect asynchronously beans binding bpm build buildsystem bytecode cache cm

Play 2.2.0 is released! - Google Groups

Google Groups. Play 2.2.0 is released! James Roper, Sep 19, 2013 9:49 PM. Posted in group: play-framework. The Play team is proud to announc

Cake pattern in depth

This post is designed to serve as a “Cake pattern for dummies” walkthrough, primarily aimed at devs new(ish) to Scala - but with at least so

Git Tutorials and Training

Learn the basics of Git through this comprehensive Git training. Branching, pull requests, merging and more are covered in the Atlassian Git

Yesod Web Framework for Haskell

Yesod is a Haskell web framework for productive development of type-safe, RESTful, high performance web applications.

JavaScript Isn't Scheme –

Crockford has a way about him. Part of this is because his background is legimately impressive. He has and continues to do many great things

The Resource Monad

Edit: tomejaguar points out on /r/haskell that there is a Monad instance for this type. The original version of this post said that Resource

The Verge

The Verge brings you the best in technology news with in-depth reporting, the latest scoops, original features, and editorials from the smartest team in tech writing.

Play Framework

The High Velocity Web Framework For Java and Scala

Wowhead: It's dangerous to go alone! Take this.

A World of Warcraft (WoW) database site with items, quests, forums, news, profiles, quest-tracking, a talent calculator, and more.

Google +1 Button

Recommendations when you want them. Learn more about the +1 button. The +1 button is shorthand for "this is pretty cool" or "

Panic - Shockingly Good Mac Software.

Panic makes Macintosh software that rocks. Our programs include Audion, Transmit, Desktastic, CandyBar, Unison, Stattoo, and more cool thing

ReactiveMongo - - Google Groups

ReactiveMongo - Welcome to the official mailing list of ReactiveMongo, the non-blocking, reactive Scala driver for

Retribution Paladin Quick-Start Guide For WoW Patch 5.2 - Stats, talents...

WoW Patch 5.2 has hit, and it's got a long and scary list of changes for everyone including Retri Paladins as we head into the Throne of Thu

etorreborre/specs2 @ GitHub

Presentation. specs2 is a library for writing executable software specifications. With specs2 you can write software specifications for one

Brilliantly smart-ass responses to completely well-meaning signs.

Most of these signs were designed to help people — to get where they're going, to find a pet, to avoid grievous bodily harm — and yet some w

HTG Explains: What is a Zombie Process on Linux?

If you’re a Linux user, you may have seen zombie processes shambling around your processes list. You can’t kill a zombie process because it’

Custom Launcher for IntelliJ IDEA in Ubuntu Unity | nuf said

But in Unity it is not so easy. For IDEA, first you have to specify the location of Java by inserting the following line in the file

2 reviews