Sunday, November 20, 2011

Displaying Groovy Classpath

http://marxsoftware.blogspot.com/2010/01/viewing-groovy-applications-classpath.html
this.class.classLoader.rootLoader.URLs.each{ println it } 


http://blog.blindgaenger.net/print_groovys_classpath_for_debugging.html
def printClassPath(classLoader) {
  println "$classLoader"
  classLoader.getURLs().each {url->
     println "- ${url.toString()}"
  }
  if (classLoader.parent) {
     printClassPath(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

http://www.smh.com.au/it-pro/business-it/virtual-phone-network-a-real-moneymaker-20111118-1nm28.html
 

git push putty disconnected error

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

http://stackoverflow.com/questions/3431314/github-no-supported-authentication-methods-available

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

Friday, November 18, 2011

Snap: Haskell Web Framework


http://snapframework.com/docs/quickstart
http://snapframework.com/docs/tutorials/snap-api


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

http://c2.com/cgi/wiki?JavaUtilDate
 
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 http://joda-time.sourceforge.net for alternative

Haskell, lazy, dataflow, declarative

  • http://en.wikipedia.org/wiki/Haskell_(programming_language)
  • http://en.wikipedia.org/wiki/Non-strict_programming_language
  • http://en.wikipedia.org/wiki/Lazy_evaluation
  • http://en.wikipedia.org/wiki/Dataflow
  • https://github.com/larrytheliquid/dataflow
  • http://en.wikipedia.org/wiki/Declarative_programming
  • http://en.wikipedia.org/wiki/Comparison_of_programming_paradigms


Steve Jobs: Life is made up

http://www.cultofmac.com/127707/reminder-watch-the-steve-jobs-one-last-thing-documentary-tonight-on-pbs-and-channel-4-in-the-uk/
 
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 rubypair.com

A simple approach to remote pairing using tmux & Skype: http://rubysource.com/loccasions-pair-programming/

Saturday, November 12, 2011