Friday, September 14, 2007

Dangerous Knowledge

"In this one-off documentary, David Malone looks at four brilliant mathematicians - Georg Cantor, Ludwig Boltzmann, Kurt Gödel and Alan Turing - whose genius has profoundly affected us, but which tragically drove them insane and eventually led to them all committing suicide.

The film begins with Georg Cantor, the great mathematician whose work proved to be the foundation for much of the 20th-century mathematics. He believed he was God's messenger and was eventually driven insane trying to prove his theories of infinity. Ludwig Boltzmann's struggle to prove the existence of atoms and probability eventually drove him to suicide. Kurt Gödel, the introverted confidant of Einstein, proved that there would always be problems which were outside human logic. His life ended in a sanatorium where he starved himself to death.

Finally, Alan Turing, the great Bletchley Park code breaker, father of computer science and homosexual, died trying to prove that some things are fundamentally unprovable.

The film also talks to the latest in the line of thinkers who have continued to pursue the question of whether there are things that mathematics and the human mind cannot know. They include Greg Chaitin, mathematician at the IBM TJ Watson Research Center, New York, and Roger Penrose.

Dangerous Knowledge tackles some of the profound questions about the true nature of reality that mathematical thinkers are still trying to answer today."

Thursday, September 13, 2007

The imperative vs functional decision in Scala

When programming in Scala, one needs to think about whether to use an imperative or functional approach (or some hybrid thereof) when writing most methods. Thinking about which approach to use so frequently could result in a significant waste of time.

One thing that makes OO development easier is the use of automated refactorings for evolving a class hierarchy. So getting things right at the start is not so important because you can easily change things later.

To address the imperative vs functional decision that one encounters in most Scala methods, one can similarly have automated refactorings for transforming code fragments from one paradigm to the other. In this way, you don't need to worry much about getting this decision right because it is easy to change it later.

Moreover, for those not so familiar with functional programming, such refactorings can provide guidance by helping them transform imperative code to functional code.

Wednesday, September 12, 2007

How Google could beat Facebook at its own game

Google could obtain a social network graph quickly from gmail accounts.

Moreover, it could release a platform similar to Facebook based on GWT but take it another step further by providing free hosting on its massive computer cluster.

There would be some sort of revenue sharing system in place for apps created using this platform.

Instead of hiring so many software engineers worldwide, Google could "outsource" much of their app development to entrepreneurs.

Although Google already acquires a few startups here and there, one would expect thousands of apps to be developed quickly in what I described above.