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
Wise words taken from a list of programming epigrams from 1982:
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.
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.
Interesting article on how Rails features can be more of a hindrance than a help in many situations. Compared here with Django, which can be cleaner and more lightweight.