Sunday, November 20, 2011

Displaying Groovy Classpath
this.class.classLoader.rootLoader.URLs.each{ println it }
def printClassPath(classLoader) {
  println "$classLoader"
  classLoader.getURLs().each {url->
     println "- ${url.toString()}"
  if (classLoader.parent) {
printClassPath this.class.classLoader


Imaginary Boss

"I have an imaginary boss in my head. I'm still scared if I'm late coming in to work. Everybody else has someone to drive them, I had to find that discipline within myself."
Yoganathan Ratheesan of Lebara

git push putty disconnected error

PuTTY Fatal Error: Disconnected: No supported authentication methods available"

set GIT_SSH=c:\progra~2\git\bin\ssh.exe

Friday, November 18, 2011

Snap: Haskell Web Framework

cabal update
cabal install snap  -- installs into C:\Users\<user>\AppData\Roaming\cabal  (or $HOME/.cabal/) (10mins)
mkdir snapblog
cd snapblog
snap init -- creates .ghci, snapblog.cabal, <src>, <log>, <resources>
cabal install  -- installs executable snap (snapblog.exe) into C:\Users\<user>\AppData\Roaming\cabal\bin  (or $HOME/.cabal/bin)
snapblog -p 8000

Needle: Automated tests for your CSS

On the goals of Coderetreat

"The Principles of Product Development Flow: Second Generation Lean Product Development" by Donald G. Reinertsen

"The Principles of Product Development Flow: Second Generation Lean Product Development" by Donald G. Reinertsen

It should be obvious that fast feedback improves the speed of learning. What may be less obvious is that fast feedback also increases the efficiency with which we generate information and learn new things. It does this by compressing the time between cause and effect. When this time is short, there are fewer extraneous signals that can introduce noise into our experiment.

Team New Zealand designed the yacht that won the America's Cup. When they tested improvements in keel designs, they used two virtually identical boats. The unimproved boat would sail against the improved boat to determine the effect of a design change. By sailing one boat against the other, they were able to discriminate small changes in performance very quickly.

In contrast, the competing American design team used a single boat supplemented by computer models and NASA wind tunnels. The Americans could never do comparison runs under truly identical conditions because the runs were separated in time ...

Team New Zealand completed many more cycles of learning, and they generated more information in each cycle. This ultimately enabled them to triumph over a much better funded American team. It is worth noting that Team New Zealand explicitly invested in a second boat to create this superior test environment. It is common that we must invest in creating a superior development environment in order to extract the smaller signals that come with fast feedback.

Thursday, November 17, 2011

Java Date encapsulation
When we design systems, we need to decide what it is (out of all the many different things we could do with dates) that we actually want to do in each instance. Then we should encapsulate just that functionality in our own classes, delegating where appropriate to java.util.Date, java.util.Calendar and java.text.DataFormat?. Importantly, we must decide how we compare, add and subtract intervals, and how we will display each type of date.
See for alternative

Haskell, lazy, dataflow, declarative


Steve Jobs: Life is made up
ONE LAST THING takes an unflinching look at Jobs's difficult, controlling disposition, and offers unique insights into what made him tick. While there has been near-universal agreement that Steve Jobs was a great innovator in business and technology, ONE LAST THING looks into why he was so great. What were the influences that shaped his character? What drove him from such humble beginnings to the heights of success?
In a never-before-broadcast interview from 1994, Jobs expounds on his philosophy of life: "You tend to get told that the world is the way it is, but life can be much broader once you discover one simple fact; and that is that everything around you that you call life was made up by people no smarter than you … Once you learn that, you'll never be the same again."

Software is art

Remote pairing using tmux/Skype with

A simple approach to remote pairing using tmux & Skype:

Saturday, November 12, 2011