Afraid you’ll miss Firebug if you move to Chrome?

Probably not. Check out the screencasts at Chromium Projects: “Google Chrome Developer Tools”.

I haven’t abandoned Firefox yet. But it is important to experiment and keep your toolbox open.

Since Chrome has recently gone stable on the OS X, I’m finding it a capable browser. Haven’t switched yet however.

Easiest Movable Type Upgrade Yet

Over the years I’ve used Userland Frontier, Userland Manila, Userland Radio, GreyMatter, WordPress, PHP-Nuke, PostNuke, Drupal, and have ran this blog using Movable Type for years.

This upgrade was the smoothest yet, probably due to the lack of custom plugins or templates I am relying on these days. But the urge is still there to tinker. So is the urge to ‘minimal’ with something like PyBlosxom, Jekyll, Hyde, or to again write my own (in my work I’ve built full-on CMS’s, thin website frameworks, and have experimented with Django and web.py).

It always comes down to how I choose to use my time. Time is everything.

Kudos to the Movable Type team. Nice work.

Online heroes – Ushahidi

“Africa’s Gift to Silicon Valley: How to Track a Crisis”: “a small Kenyan-born organization called Ushahidi, which has become a hero of the Haitian and Chilean earthquakes and which may have something larger to tell us about the future of humanitarianism, innovation and the nature of what we label as truth.

More:

Ushahidi: Crowdsourcing Crisis Information (FOSS)

Developer information on their wiki

On “finding truth in the world and about ourselves”

Is Programming more like ‘art’ then ‘science’? A debate that is continuous, but I know where Richard P. Gabriel stands. In 2003 he wrote the forward to “Successful Lisp: How to Understand and Use Common Lisp,” by David B. Lamkins titled “The Art of Lisp and Writing”. Recently it got shared at “Hacker News”.

I admit to knowing enough about Lisp to be intrigued (inspired by it even) but have never used it at work or in a personal project. His essay while touching on some differences between Java and Lisp (and he would know – he worked at Sun), talks more of the act of writing and creation and how programming is akin to that. It was a good read.

Taught that programming–or the worse “developing software”–is like a routine engineering activity, many find difficulty seeing writing as a model or even a metaphor for programming. Writing is creative, it is self-expression, it is art, which is to say it isn’t a science and unlike science and engineering, it isn’t a serious activity. Judgments like this, though, are easiest made by people who don’t seriously engage in making both science and art. Art, engineering, and science are–in that order–part of a continuum of finding truth in the world and about ourselves.

…The difference between Lisp and Java, as Paul Graham has pointed out, is that Lisp is for working with computational ideas and expression, whereas Java is for expressing completed programs. As James says, Java requires you to pin down decisions early on. And once pinned down, the system which is the set of type declarations, the compiler, and the runtime system make it as hard as it can for you to change those assumptions, on the assumption that all such changes are mistakes you’re inadvertently making.

There are, of course, many situations when making change more difficult is the best thing to do: Once a program is perfected, for example, or when it is put into light-maintenance mode. But when we are exploring what to create given a trigger or other impetus–when we are in flow–we need to change things frequently, even while we want the system to be robust in the face of such changes. In fact, most design problems we face in creating software can be resolved only through experimentation with a partially running system. Engineering is and always has been fundamentally such an enterprise, no matter how much we would like it to be more like science than like art. And the reason is that the requirements for a system come not only from the outside in the form of descriptions of behavior useful for the people using it, but also from within the system as it has been constructed, from the interactions of its parts and the interactions of its parts separately with the outside world. That is, requirements emerge from the constructed system which can affect how the system is put together and also what the system does. Furthermore, once a system is working and becomes observable, it becomes a trigger for subsequent improvement.

Read the whole piece.

What is software testing

We just concluded a lab week at CIM that was awesome. No other short way to put it. Read Jon’s post for the details.

For this lab week I worked with folks from QA exploring a tool (a MIT research project called “Sikuli”) for its applicability in functional testing. I’ll have a post sharing how well it went soon. We learned quite a bit, had a great exchange of experience across a departmental boundary, and now have an additional tool in the tool belt that we will be using in some cases.

I had an interesting mountain to climb to become familiar with the challenges faced in QA. What helped set the stage for me was a great Google Tech Talk by James Bach on becoming a Software Testing Expert. His video is really about becoming an expert in almost anything but the slide on “Perfect Testing” made me take pause (literally – I paused the video to consider the slide because it is so expansive and almost poetic):

Perfect testing is…

Testing is the infinite process

of comparing the invisible

to the ambiguous

so as to avoid the unthinkable

happening to the anonymous.

In other words, perfect testing is a challenge.

That’s quite a statement!

Bach goes on to fill in the picture around this statement. Watch the entire video for the context.

After taking part in this lab week, a lot of what James Bach said in this presentation has sunk in further.

I had thought I was empathetic to the work that is encompassed in software testing. What I found out was I wasn’t even close, and this experience has left me a bit humbled and inspired.

“So what will it mean to bear witness in the future?”

They say that history is written by the victors. But now, before the victors win, there is a chance to scream out with a text message that will not vanish. What would we know about what passed between Turks and Armenians, between Germans and Jews, if every one of them had had the chance, before the darkness, to declare for all time: “I was here, and this is what happened to me”?

– Anand Giridharadas in the NYTimes in “Africa’s Gift to Silicon Valley: How to Track a Crisis”.

Ushahidi sounds inspiring.

The project is on Github.