Prompted by a question posed by one of my colleagues today, “has anyone ever used Lisp?”, I surprisingly found myself being the only person that had.
I played around with it many years ago after being inspired by Eric S. Raymond’s seminal article, “How to Become A Hacker” in which he explained that “getting” Lisp is equalivent to finding programming nirvana.
Whilst I didn’t quite reach those levels, I found that using Lisp was a great learning experience. Despite it being half a century old, it is still a relevant language today; the online Practical Common Lisp book contains examples of a spam filter, an ID3 tag parser and other real-world examples.
The following two links are for the curious who might wish to try it out:
The London Perl Workshop is a free one-day conference in central London, UK. It will be held on Saturday the 29th of November, 2008 at Westminster University’s New Cavendish Campus
I’ll be attending, and so will my friend and fellow Yahoo Mike Whitaker, who will be presenting some talks on Moose and Enlightened Perl.
Wise words taken from a list of programming epigrams from 1982:
Epigrams on Programming
I’ve become quite obsessive about unit testing recently, and in particular the PHPUnit testing framework. A big proponent of test-driven development is Martin Fowler, and I keep one of his quotes in a sticky note on my desktop as a little reminder:
Whenever you are tempted to type something into a print statement or a debugger expression, write it as a test instead.
The PHPUnit manual is really well written, and contains a great guide for writing your first tests.
One of the new features of BBEdit 9 is the new Find/Replace Window, shown below:
It’s been simplified a lot since the last version, but the really big change is that it is now a modeless window. This means that the Find/Replace window can be left open whilst still allowing interaction with document windows. Initially, this seemed like a good feature to me before I realised a side-effect of this change: there are no keyboard shortcuts for the Find/Replace options anymore. You can see the difference by looking at the old Find/Replace window:
In this example, the Command key is being held down to illustrate which shortcuts are available; for example, Command-G toggles the Grep support.
Because of the Modeless window, these shortcuts have been lost in BBEdit 9. This makes the Find/Replace window slightly more cumbersome to use as turning on search options now requires the mouse. Furthermore, the very useful Start At Top option, has been removed completely.
Update: Thanks to Rich Siegel, CEO of Bare Bones Software, who has pointed me towards the release notes which document some brand-new Find shortcuts, thus rendering this blog post mostly pointless. Hurrah!
A very useful article from Google’s MiÅ¡ko Hevery about the problems with the Singleton design pattern. Essentially, Singleton’s rely on a global instance variable which could point to any number of other variables, thus creating a global state. This causes problems when you want to test your code.
code_swarm is a fantastic application that visualises software projects over a period of time by analysing their code repositories. It aims to show in a graphical manner the users working on a project, and the number of files committed. Some great example videos are available, including a video of the Apache webserver project.
Yahoo! Developer Network
stackoverflow.com is a new project from Joel Spolsky and Jeff Atwood, intended to be “the anti-experts-exchange (minus the nausea-inducing sleaze and quasi-legal search engine gaming) meets wikipedia meets programming reddit”. Worth keeping an eye on…
Interesting article from Zend co-founder Andi Gutmans on how the Java world is leveraging dynamic languages such as Ruby and PHP in order to remain relevant in the web application world. The obvious question is, though, whether using JRuby has enough advantages over using Ruby or PHP in a plain Linux environment without a JVM.
Today Sun is investing in JRuby Ruby and Jython Python support for its Java EE solution; the IBM Websphere group has realized the ineffectiveness of the Java EE platform for running modern Web workloads and has invested heavily in Project Zero which aims to make big blue a Web 2.0 player and initially delivers support for Groovy and PHP; BEA has also had some incubation projects going but with the upcoming sale to Oracle it is unclear whether any of those efforts will materialize.
Andi on Web & IT: Java is losing the battle for the modern Web. Can the JVM save the vendors?