Tuesday, August 25, 2009


‘CL is great and Blub is crap’ has not worked as a strategy for selling Common Lisp. People invest years of their life learning Blub and don’t want to hear this message. A strategy of infiltation is better.

-- Mark Tarver

From The Next Lisp: Back to the Future.

X-bit labs error

Just wanted to read the story about Nokia's new netbook.

Sunday, August 23, 2009


Whether it's being done in honest ignorance, blind obedience, or cynical exploitation of the market, the result is the same: our ability to envision new solutions to the latest challenges is stunted by a dependence on market-driven and market-compatible answers.

-- Douglas Rushkoff

From Economics is not Natural Science. An interesting article arguing that our current economy is derived from an archaic set of man-made rules designed to serve particular interests. Rushkoff calls for consideration of alternative models (not based on scarcity, competition and centralisation) rather than assuming the status quo.

Saturday, August 22, 2009

LaTex resources

A few weeks ago I decided to bite the bullet and learn LaTeX. To make it happen I foolishly decided to type up my stats assignment (due yesterday) in it. Made for a very busy week, with my Bris FP talk, work, etc.

Anyway the following sites were useful.

Wednesday, August 19, 2009

Intro to functional programming talk

Last night I spoke at the Brisbane Functional Programming Group. Tried to scribble on the whiteboard a bit to avoid "death by slides". The objective was to help imperative programmers new to FP become familiar with some of the core concepts, so I tried to go at a slow pace. I think it went for about 1 hour 20 minutes.

The first part of the talk covered history and the landscape of popular functional languages. The rest was on functions, partial function application, algebraic data types, pattern matching and tuples. I used Haskell syntax, but the concepts are transferable to other languages such as Scala and F#.

Thursday, August 13, 2009

Zoho Writer LaTeX equation editor

I think the LaTeX support in Zoho Writer's equation editor is a fantastic idea. Although, I don't know what would happen to the LaTeX source when exporting for backup purposes.

Document can be exported as LaTeX.

I ran into the following issues with the equation editor.

  • The sigma representing a sum is tipped backwards at an angle when used in the denominator of a fraction. Changing to italics seems to straighten it up.

  • I couldn't figure out how to change the font.

  • When exporting to PDF, the equations looked a little blurry compared to text.
So I will stick with TexShop on the Mac for the moment. However, the Zoho editor is very useful for finding the LaTeX commands for mathematical symbols.

Wednesday, August 5, 2009

Strong Inference, Science (1964)

Strong Inference. Certain systematic methods of scientific thinking may produce much more rapid progress than others.

Strong inference consists of applying the following steps to every problem in science, formally and explicitly and regularly:
  1. Devising alternative hypotheses

  2. Devising a crucial experiment (or several of them), with alternative possible outcomes, each of which will, as nearly as possible, exclude one or more of the hypotheses

  3. Carrying out the experiment so as to get a clean result

Rinse and repeat to form a "conditional inductive tree" or decision tree. Write the tree out.

Or, as the philospher Karl Popper says today, there is no such thing as proof in science -- because some later alternative explanation may be as good or better -- so that science advances only by disproofs. There is no point in making hypotheses that are not falsifiable, because such hypotheses do not say anything: "it must be possible for an empirical scientific system to be refuted by experience".

Form multiple working hypotheses, so as not to get too emotionally attached to any particular one.

Monday, August 3, 2009

Scala version of F# orElse getOrElse functions post

Just a quick comparison of F# Option orElse getOrElse functions in Scala. Given orElse and getOrElse are already defined in Scala, the equivalent code is:

def f(s:List[(Int, Int)]) = {
def tf(g:Int => Boolean) = s.find {case (_,x) => g(x)}
tf(_ < 0) orElse tf(_ == 0) map(_._1) getOrElse 10

The argument to orElse is defined as lazy in the function declaration via : => Option[B] rather than :Option[B]. However in the F# version, the actual argument type is changed from 'a option to 'a option Lazy.

Why I am Not a Professor

I currently study at one uni and work at another (not in an academic capacity though). Unfortunately Why I am Not a Professor OR The Decline and Fall of the British University seems to aptly describe things.

To the claim that academia is living a lie, I would add that many in industry and government are doing just the same, except with different situational parameters.