New Beginnings

There have been a bunch of changes in my life the last couple of weeks. Here is another one that has
been in the works for a while. My blog is being moved to a new platform. More details to come.


Talking to Dad

Having a discussion with my Dad about website, hosting and blogs.


Installing Haskell Platform on Ubuntu Lucid

After a fairly vanilla install of Ubuntu Lucid 10.04, I wanted to install the Haskell Platform but the base Ubuntu install is missing some dependencies.

These were the packages I installed to complete the dependencies:

  • libzlib1g-dev
  • libgmp3-dev
  • freeglut3
  • freeglut3-dev
  • libglew1.5
  • libglew1.5-dev
  • libglu1-mesa
  • libglu1-mesa-dev
  • libgl1-mesa-glx
  • libgl1-mesa-dev

Rather than installing GHC from the Ubuntu repositories, I used the GHC 6.12.3 generic binary from haskell.org

Afterwards, I downloaded the source for the Haskell platform (see here) and followed the instructions for installing it.



New Machine

These last couple of weeks I've been assembling a new desktop machine. It's a fairly hefty machine, core i7, Nvidia GTX 470, 12gigs of RAM.

The biggest annoyance right now is that the Nvidia GTX 470 graphics card is not 100% compatible with Linux (Ubunutu specifically). I can get Linux running but the resolution under X is hideous without the Nvidia driver and with the Nvidia driver I get random system freezes.

So for now, I'm living with Windows 7. It's not the most pleasant experience. However combined with VM player I'm able to get some of my Linux development environment goodness.

Hopefully the graphics issue gets resolved before or early in the new year.


Quick Thoughts on CUFP 2010

I went to CUFP this year. I've been diving into Haskell the last year and I thought it would be interesting to see how Haskell (and functional programming in general) were being used.

A couple of quick thoughts:

1. Enjoyed the tutorial on "High Performance Haskell" (slides here). I've spent the last year learning about Haskell but I'm not completely comfortable with it yet. The level of this tutorial was just about right. None of the stuff was over my head.

2. F# shows a lot of promise. I don't use any MS developer products but I'm considering getting Visual Studio to try out F#. It looks like a functional programming language with the fit and polish of the mainstream programming languages e.g. Java, C#

3. Side effects, imperative style are not optimal but sometimes they are very useful. This was a comment that was made in different forms over various talks. It surprised me a little but it shouldn't have. Haskell has affected my day to day work by making me more mindful about side effects. Perhaps that is the biggest thing functional programming can teach working programmers, to understand the various trade offs you make when you apply the different programming language paradigms (functional, imperative, oo).

4. Lots of people appear to be using Scala, Erlang and Ocaml to do serious work even if they're not blogging about it.

5. Not much was said about Clojure. This was a little surprising. 

Overall, it was a worthwhile two days and I learnt a lot. Still digesting the conference material and will be doing that for awhile. 


iPad + Kindle Love

It's a great time to be a computer technologist. The last 12 months feel like a new dawn in mobile computing technology. 

I recently picked up an iPad. Surfing the web and checking email has made my daily bus commute way more enjoyable. Rather than doing the morning email and web surfing from home, I can do it on the bus. This is a real time saver.

The iPad, like the smaller iPhone, is a fantastic device for taking on the move. The iPad may just be a bigger iPod Touch but the bigger screen, to me at least, makes the difference between night and day. I admit in the beginning I didn't see how the iPad could replace my Lenovo IdeaPad which was a portable device that I took almost everywhere. I could write code on my IdeaPad and it ran Linux after all! 

It came down to 2 things: 

1. 95% of what I did was surfing the web, writing and capturing ideas. 

2. Have you tried using a keyboard while standing? This makes difference when you're moving and want to check something. (I got used to the virtual keyboard. It's not the optimal solution for typing)

I still like my IdeaPad but all technology gets outdated by something newer and sleeker. I don't like it but I have no qualms about the engine of progress and a newer shinier version of the iPad in the future. 

Aside, I'm surprised by how much the Kindle gets dissed on though, that e-ink display is still the closest thing to paper I've seen on a display. I can use the iPad in hourly bursts but when I want to unwind for a couple of hours with a good story my first choice is still the kindle. Winnie and Alice are flashy but really distract me from reading the book. It's not new, sleek and shiny I guess and that makes sense.

 Sent from my iPad but edited on my desktop.


Quick Clojure: Understanding Dot Dot Macro

user> (. "hello " trim)
user> (. (. "hello " trim) toUpperCase)
user> (.. "hello " trim toUpperCase)
user> (.. "hello " trim toUpperCase length)
user> (.. "hello " trim toUpperCase (concat " world"))
"HELLO world"


Inside Smarty Pants


Brunch @ Smarty Pants

Sent from my iPhone

Posted via email from Daniel's posterous


Simple but Useful Script

Over the course of my career, I've written a variety of scripts to do the same thing over and over again. This particular script here takes a list of files and combines the files together for use in a CLASSPATH environment variable. It can be used for other things but I use it a lot for constructing CLASSPATH.

bash$ export CLASSPATH=`join.pl ~/.swank-clojure/*`

bash$ echo $CLASSPATH


This script gave me to the chance to try out my perl 5.10.1 distribution and a new perl 5.10 features e.g. say and Modern::Perl

Older Entries