Why visualise data?
This excellent short video from Column Five really demonstrates the difference that even basic data visualization techniques can make.
Friday Linkage
This weeks interesting links:
- Why Functional Programming Matters
Not a new paper (1984!) but interesting take on the usefulness and potential scalability of functional languages. - Learn you a Haskell for great good!
An excellent online book for learning the Haskell functional programming language. - How we Scrum
A description of the scrum process at an indie game developer and how they’ve tailored it to their needs. - Best resources for iOS programming
A current summary of good online resources for programming Apple’s iOS devices (e.g. iPhone & iPad). - Can you really get great shots with a point and shoot?
Inspirational article about getting great photographs from compact point and shoot cameras rather than large, expensive DSLRs. - The Fall Event
Apple has ran a iPod music event every year in the fall until this year, this article speculates on what this means for the future of the iPod and on Apple’s changing priorities.
On taking initiative
As an engineer it is easy to complain about things that don’t work as well as they could, especially when you first encounter the issue.
However the difference between an average engineer and a truly effective engineer is that effective engineers don’t just stop and complain about a problem, they will actively suggest and implement solutions to allow them to continue working. This is especially apparent when it comes to repetitive manual tasks, I have witnessed so many people complain about tedious manual processes but then fail to automate the process! So do not view a problem as a road block preventing further progress, instead view it as an unexpected opportunity to solve a problem and improve something.
A pleasant side effect of this proactive approach is that those that habitually remove problems when they encounter them are also building a reputation as a problem solver and someone who gets things done. This reputation will dramatically increases the chances that they will be listened to when it comes to getting management buy in to solve a significant problem.
Friday linkage
Some pages I’ve found interesting recently:
- Online Python Exercises
A good summary of some of the Python exercises available online. If this interests you also check out my ‘Getting started with Python’ post. - The New Apple Advantage
An insightful piece on Apples successful strategy of offering minimal configuration options for its phones, tablets and computers as a way to simplify the buying process and improve revenue. - Developing Razor Sharp Focus
Worth it alone for the very useful mind map. I like his focus on creating rituals, managing email distractions and taking time to reflect and review. - Why I Go Home: A Developer Dad’s Manifesto
A very good post on work-life balance for software developers. I especially liked the following observation: ‘If you screw up at your job you can always get another one, but if you screw up your family, especially your relationship with your children, it will stay with you and stay screwed up forever‘ so many people seem to fail to realise that jobs are temporary but family is forever.. - XKCD: File Transfer (Comic)
Just why is transferring files still so awkward in this day and age?
Barbara
My beloved wife Barbara lost her nineteen month long battle with brain cancer almost a month ago on the 24th July 2011. She was an artist, a scholar and my best friend. We were married for six wonderful years and she is sorely missed..

Getting started with Python
The following is how I’d recommend getting started programming in Python:
- The Python Tutorial .
First off work your way through the official Python tutorial, its very comprehensive and covers all the language features and also has a quick tour of the modules available in the standard library. - Code Like a Pythonista: Idiomatic Python
Next I’d highly recommend reading the ‘Code Like a Pythonista‘ article is its entirety, its very useful for learning about the Pythonic way of thinking. - The Python Style Guide.
Next read the Python Style Guide (know as PEP-8), which will teach you about the general python coding style which depending on the languages you’ve used before could be quite a different style. - The Python Challenge.
Now try the Python challenge, this will push your new Python skills and riddle solving abilites. If you get stuck the official forums are helpful, I found I got stuck on the riddles more than the programming. Once you’ve solved each of the challenges I’d strongly recommend going and checking out the submitted solutions to that challenges. I found this a incredibly helpful learning experience, as by looking at the solutions I learned the pythonic way to solve the problems. Note: you can’t access these solutions till you’ve solved them yourself. - ‘Learn Python the Hard Way’ or ‘Dive into Python’.
For gaining further knowledge there are several ebooks available online for free: the first is Learn Python the Hard Way and there is also the dated Dive into Python. I’ve not read Learn Python the Hard Way but I’ve heard good reviews from several people.
For getting help with Python programming I’d recommend:
- Stack Overflow.
Stack Overflow is a collaborative quesion and answers site for programmers and has a very active python community. It is highly recommended to searching to see if your question has been asked already before posting a question. - #python on irc.freenode.net.
Visiting the #python IRC channel on irc.freenode.net is also a very good way to get help with Python questions. You can find our more about the various Python IRC channels here. Note: You’ll need an IRC client like X-Chat (Linux & Windows) or Colloquy (Mac).
Here are some tools I’d recommending picking up:
- Package installer – PIP or easy_install.
PIP is the current Python package installer of choice and lets you easily download and install Python from various sources such as the official Python package repository – PyPi and SourceForge. I found that PIP makes installing new Python packages trivial 99% of the time, the other 1% of the time you’ll need to build the packages locally which is more involved. Note: Windows users may be better off sticking to the older easy_install tool instead of PIP. - Enhanced command line – iPython or bPython.
iPython is an enhanced command line environment for Python that I’d highly recommend over the basic command line interpreter. You can find several different of video tutorials for iPython listed here. I am told that bPython is another enhanced command line that is worth checking out too. - Code analyser – PyLint or pyflakes.
PyLint is a python version of the Lint C/C++ static code analysis tool which will analyse your Python code and give you useful feedback on your code as well as a score out of 10. PyLint will also check your code adheres to the official Python Style Guide which I found very useful for learning the Python coding style. Alternatively pyflakes has also been recommended for static analysis of python code.
I’d be interested in hearing of any other resources you found useful to help you get started with python.








