by Chris Douce
Another day, another ground breaking technological development... Sometimes the rate at which new developments arise can be bewildering. I find reading hard work, especially when it comes to reading technical documents, which can easily send anyone to sleep. Sometimes I find myself sketching diagrams to remember what I read, and how certain components relate. I was astonished to 'read' about the Google Chrome project, , not because here was a new paradigm busting browser that could revolutionise how we use the web, but because of the way it was presented. It was clear, understandable and fun! Whilst leafing through the virtual pages, I recalled a passing interest in graphic novels that I once had, and also remembered a fairly new series of technical books from O'Reilly called the Head First series. Learning about technical subjects need not be hard.
It seems that I'm not the only one flummoxed by the fact that things change all the time. Could we even say that choice could be considered harmful? We've all heard of the software crisis (by the way, did that ever get solved?), but are we faced with a web development crisis?
When working as a programmer, you have to consider how to tell the user things have not worked out as initially expected: you have to compose an error message or make use of magical error numbers that programmers who have gone before you have devised. If you're unlucky enough, your work may end up an error message 'hall of fame'. If you need another excuse to procrastinate, you can always view the Thirteen Greatest Error Messages of All Time (but let's hope you don't get a 404!)
From time to time, you have to learn a new language. I still haven't gotten around to meddling with Python or Ruby, but one of these days... The number thirteen seems to be all the rage at the moment. I know it is an unlucky number, but I always thought that seven was the magic one. Here's an article entitled Thirteen reasons why Ruby, Python and the gang will put Java to die... of old age
I really enjoyed reading Donkey Kong and Me.
it took me back to a time when I also was a lucky owner of an Atari 800 (an XL version, not the older, and bigger version). I was astonished to find 2 channels of two eight bit A to D converters, allowing you to plug in four paddle controllers. If you read on, you'll find some comments on comments.
Here is a connected link to the Atari series.
I found an article entitled Learning to Program without Basic very interesting. It look me back to the days when I developed my typing abilities by transcribing printouts from computer magazines (the end result was that I was very good at punctuation, numbers and keywords, but terrible at prose!), learning how to drive my mysterious machine.
I have heard of one member of PPIG who has a claim to fame of having had one of their programs published in this way!
We all know that programming is far from being a 'walk in the park'. Well, Linus Torvalds is thinking like we are when he said it isn't anything like a picnic.
I totally agree! There is a serious point here. Different open source communities work in different ways, but I have no idea how different they can be since I've only 'dipped my foot into the waters' of one or two. This remains an interesting question.
Remaining in the area of Open Source, I've recently discovered this book: Code Quality: The Open Source Perspective.
Coding standards and other people's indentation can inspire the use of colourful vernacular. This article, entitled Men Write Code from Mars, Women write more helpful Code from Venus, had a similar effect. I ask you, please don't get me onto the subject of parking...
This interview with Bjarne Stroustrup was published a number of months ago. For me, this link was, 'great! I'll read this when I have time!' I hope its useful. It's a useful resource in understanding the history of the language.
On a related note, I discovered this List of Programming Language Popularity which caused me to be rather bemused. Perhaps the couple of years I learnt Pascal as an undergraduate has not been in vain (I suspect its use of strong typing helped me deal with Java when I encountered it in the workplace).
XML has made a regular appearance in the PPIG newsletter (but not to describe it's contents – this remains, at present, plain old HTML!)
IBM have published an article entitled The Future of XML. I have little doubt I will continue to battle with the emergence of new XML related 'stuff' for many years to come. I have just about figured out the difference between a SAX and a DOM parsers, but please, don't ask me to explain them.
Apparently PHP is going to get namespaces. This seems to me to be a great idea, but one important question is: how should it be done?
I was recently directed to this blog entry entitled Set Sail for PHP namespaces.
Security is an issue that developers and designers alike have to contend with, but I feel that the notion of trust and security with regard to the use of computing systems (of various types) does not often receive the attention it deserves. Here is a very short essay entitled Inside the Twisted Mind of the Security Professional.
I have to admit, I have only watched the video.
But, now I know exactly what to do when I need to procrastinate.
I have long held a passing interest in software metrics. It has been said that if something can be measured, it might be able to be controlled. Assigning numbers to software may help us to understand what is meant by complexity.
We might ask the questions: (1) what can we make visible through numbers, and (2) is it useful to do this?
A couple of months ago I learnt of an approach to assign numbers against the performance of open source software developers through an article entitled: is counting open source code contributions really useful?
On a connected note, I found this blog post: how to recognise a good programmer.
Some attributes cannot easily be converted into metrics. This takes us onto the next connected theme of programmer profiles.
Another interest of mine is the notion of a programming career, how it can change over time in terms of the type of work programmers perform and what serves as sources of motivation (and the extent to which different people have different sources of motivation). I find reading biographies of developers really interesting, perhaps because as a developer I can immediately appreciate some of the frustrations that others come up against when trying to compose the 'magical mind stuff' that sits inside a computer.
I recently noticed a link to this book on a well known on-line book store: Programmers at Work: Interviews With 19 Programmers Who Shaped the Computer Industry by Susan Lammers.
It's quite an old book, and I'm sure that many of you have heard of it...
On a related note, I discovered this blog posting that had the enticing title of Embracing My Inner Geek? which touches upon themes of art, elegance and beauty.
A poster on Slashdot found himself in a new job faced with having to understand (and work with) a new and unfamiliar codebase. This is a real example of a substantial program comprehension challenge. Your company is paying you to learn stuff, and ideally they want you to learn it as quickly as possible. A poster posed the seemingly simple question of: what tools do you use to understand code?
Keeping with the theme of nostalgia, I remember my lecturer extolling the virtues of grep after he introduced the 40kloc FORTRAN code that we had to contend with as a part of a software maintenance project. Those were the days... the acrid smell of solder...
Frank Wales kindly directed me to a site entitled StackOverflow.
He tells me that it's a new site where people ask programming questions, and other programmers answer, and they're trying to make it useful to working programmers by filtering out rubbish questions and running a reputation scheme based on ratings of the quality of questions asked and answers given.
Frank also sent me this blog post about a programmer and his fish.
Many thanks go to the efforts of the reviewers of this edition of the newsletter. All your comments and words of wisdom are always appreciated.