echo "hey, it works" > /dev/null

just enough to be dangerous

Quality PHP

The great thing about PHP is that it lets people put together web sites easily and quickly. Along with the vibrant community, it's one of the main reasons for the language's popularity. A side effect of this ease of production is that PHP hasn't developed a culture of quality, in the business sense.

What do I mean by quality? That software does what it's supposed to do, reliably and repeatably. It's maintainable and it's not fragile, so isn't prone to breaking when changes are made. Despite the lack of a culture of quality, some of the biggest web sites on the Web use PHP, and internally they must have processes to ensure quality.

I'd love the quality tools and processes to become more widely used in PHP, and so I've asked three questions of a bunch of Important People in the PHP community, people I respect and admire. In terms of PHP, what does quality mean to you? What tools and processes do you use in your development to ensure quality? Are there tools or processes that you'd like to include in your toolbox that you haven't used yet?

I'll post responses as I get them.

Laura Thomson

If you have a suggestion of someone I should ask, please let me know; identica, twitter, email

Warning bells: your boss responds to email in 5 minutes

Vic was a superb boss — his response time on email was under 5 minutes …

Exit interview: Jaiku's Jyri Engeström - (37signals)

Five minutes! That's definitely impressive, if your job is to be responsive to email.

Vic may very well be a superb boss, but responding to email quickly is an incredibly poor way to gauge your boss's performance. The boss should be providing a vision, communicating strategy to the team, making sure that everyone is working towards shared goals. Sure, they might also be dealing with discontent or malcontents, putting out fires, or keeping an eye on the stock price, but if they're sitting around waiting for your email to come in so they can respond to it quickly, they're probably not doing the important stuff.

CSS Pivot bookmarklet

Tweaking CSS on sites developed by other people seems to be something that comes up at least weekly in web development. Why isn't my footer displaying properly? Why is this div wrapping? Often it's me asking those questions, but every now and then I can solve someone else's problem with a CSS tweak or two. CSS Pivot, which I discovered via a post from Chris Coyier, is a site that lets you share those tweaks with other people.

I thought it looked useful, so I made a bookmarklet to send the current page to CSS Pivot. Drag it to your bookmarks.

Open with CSS Pivot

Playing drafts

In my Ideas of March post I said I had about 20 drafts, but on checking it seems I was underestimating; I have 26, the oldest being from April 11 2008, almost three years old. Why do so many of the posts I start end up sitting there unpublished? At the suggestion of andyc, I'm trying to see if there's a pattern or patterns.

Most of the drafts are simply a heading with a few jotted thoughts hinting what the post was going to be about. Some are about technical topics, some are about my experience as a user and observer of the Web and web software, and others are completely non-technical. So these are my unfinished posts, from most recent to oldest.

Lithium and continuous integration
Describing how to set up continuous integration for Lithium applications, using the junit plugin I wrote. Our work set up is pretty specific, so I wanted to whittle this down to something more generic, with wider applicability. Requires commitment.
The Farm
We disappear to the farm on a regular basis, and it's where I'm writing this post from. I wanted to include photos and I don't have a good photo-oriented workflow.
From Firefox to Chrome
When I switched to Chrome, I planned the obligatory switch post; what I like and what I miss.
Web framework routing
A discussion of the different routing philosophies employed by web frameworks. Lots of research required.
On PhD supervision
So many research candidates talk about problems with their supervisors, and I wanted to talk about how awesome mine have been. But I got bored talking about my PhD.
The spawn of PageRank
PageRank has been hugely influential, and when researchers come up with anything to do with graph traversal they tend to call it BlahRank. Lost interest.
Scott Leslie: What is the most “successful” “formal” “OER” project?
No idea. I started with a quote from Scott Leslie and then said, "When I started my PhD, I wanted to ..." what? Not do my PhD?
Uvumi: low sound, rumbling noise, murmur, or hum
My ongoing search for a decent music discovery service. I was hopeful about Uvumi but gave up on it, for a variety of reasons. Unlike other services I tried, these were actually nice folk, and I decided I didn't want to say anything bad about them.
An android or an apple
I'm due for a new phone, and a smartphone of some kind is the obvious choice for me. I want to support Android an iPhone is likely to Just Work.
The philosophy of Habari at LUV
I gave a talk about Habari at Linux Users Victoria. I was going to write it up and link to the video, when they published it, but the video was never released.
Time for some respect, for asylum seekers, for the Australian public
I'm disgusted by the amount of misinformation spread about asylum seekers who come to Australia by boat, the overwhelming majority of whom are found to be genuine refugees. I had a link to some sobering statistics from Amnesty International, but the link is dead now.
Searching for Just Right HTML and CSS editors Part One
Rachel was looking at learning HTML and CSS, and I was going to evaluate a variety of tools for her. Part One was going to be a description of needs, and Part Two was going to be the evaluation. She lost interest, and therefore so did I.
Simple gallery plugin for Habari
A description of a plugin I wrote for Habari, but I wanted to improve the plugin before I wrote about it, and just never got around to it.
Weka in JRuby
For my PhD, I used the Weka Machine Learning Toolkit, but to avoid writing any Java I ran it on JRuby. To help others do the same thing, I was going to translate the Java tutorial to JRuby, pointing out a couple of issues that tripped me up. But again, I got bored of my PhD.
Publishing with Habari
I think this was another go at writing up the LUV talk.
Encouraging Flow
This seems to be a copy and paste of a Tim Bray post to which I was going to add my own flow tips. Seems I only came up with "don't wear shoes" before giving up. I must have been in the flow.
Talking to famous people
I bought Mark Dapin's book, Strange Country, and I wanted to send him a notice or tweet saying, "I bought your book today. It has very large print," but he didn't have a microblogging account. Pithy stuff, can't imagine why I didn't finish that one.
Australia's 'Clean Feed' is bad policy
Ugh. A rant about Stephen Conroy's misguided clean feed push. Technically bad, economically bad, and bad social policy. I wanted to add to the debate, which meant linking to lots of sources, and I ran out of steam.
Setting up a new Mac
When we got burgled, I lost my MacBook Pro, and this was to record all the things I do in setting up a new machine. I kept finding new things I needed to set up and install, and then the post got stale.
Subversion and Trac on a slice Part I
I gave up on setting up Trac on the slice.
Developers benefit from open source
I only have the title, but I think this was going to be a discussion about how good working on open source projects is for developers.
Most tags suck
An embryonic rant about the suckiness of most tagging interfaces.
Standardisation == death of innovation
Some bloke who was building some service that never launched was claiming that because there hasn't been much innovation in the realm of email, standardisation is inherently bad. I think he's full of crap. This was going to be a wide-ranging post in which I interviewed Important Folks on the Web about the benefits and risks of standardisation. Too much work for me at the time.
Twitter has accomplished crowd search, except they haven't
A couple of years ago there was all this buzz about Twitter being the solution to real time search. I was calling bullshit on behalf of all those thousands of users with virtually no followers (for instance, me).
Testing thumbshots
Another post inspired by andyc, this time about implementing a thumbshot view of blog archives. I might have written it if I'd actually done that implementation.
The Web as helpdesk
Musing about organisations that actually engage on the Web, to the benefit of their customers or users. I got bored.

So I don't finish posts when they sit too long, or when I get bored, or when they require lots of background work, and the world is probably a better place for the lack. At some point, I'll get around to writing the more recent posts, I hope, but for now I should just go and delete a bunch of drafts.

Ideas of March

Chris Shiflett laments the demise of blogging, placing the blame mostly on Twitter, because throwing out 140 character remarks is so much easier than sitting down and crafting a blog post.

I've blogged less in the last year as well, but I can't blame Twitter or Identica, my microblogging platform of choice. I'm going to blame the slightly younger and less grey me who decided that doing a PhD was a good idea, or at least an idea from which I shouldn't run screaming. The further I got into writing the big essay, the less creative I felt, and my writing on this blog almost completely stopped.

The timing of Chris' #ideasofmarch call to keyboards coincides with my desire to re-engage writing. I've got about 20 draft posts lying around, and while I'm not going to make a pledge, I would like to actually finish some of those.

I like blogging because I'm contributing to my space on the internet, because writing blog posts allows me to clarify my thoughts and to practice writing, and because helping to write the software running this site lets me poke around in the wonderful and fascinating wide world of the web.


And unless you're a bank or an airline, I'll never mention it again.

Logging Lithium queries

A nice tip from Nate yesterday on #li3 IRC. If you want to know the actual queries that Lithium issues, you can use a filter to dump them.

  function($self, $params, $chain) {
    return $chain->next($self, $params, $chain);

On pride and the PhD

With the risk of turning this blog into a research whinge-fest ....

I'm working on my completion seminar. That means I'm really close to done with this whole PhD journey, and I should be feeling happy and bouncy and joyful about the prospect of prattling on about what I've achieved over these last mumble years. But I don't.

I've learnt an enormous amount about lots of things during my candidature: technical things, computer science theory, research practice, critical thinking, statistics, writing, personal things like my tendency to procrastinate, and about my capacity to follow things through. I am proud to have managed to follow this through, and to have a complete thesis, and I'm happy to have learnt a great deal.

But here's the reason I don't feel happy and bouncy and joyful: I don't actually feel proud of the work.

Part of the reason is that I'd do everything differently (better) now. I know the PhD is supposed to be training to become a researcher, so by definition I wasn't ready to be a researcher when I was doing much of the work. I list a bunch of contributions in my conclusion, and I think my work matches the illustrated guide to a PhD. I think the thesis is probably good enough to pass.

William Webber, in a comment on another of my navel-gazing research posts, suggests I should wait 15 years for the pride to kick in.

I wonder if this lack of pride is a common feeling for students reaching the end of their candidature.


Standing in the middle of a barn of consumerism, located in the middle of an edifice built in honour of capitalism, situated in the middle of a wasteland dubbed suburbia, I'm trying to buy pants. No, not underwear, though buying those is painful too. Trousers. A casual pair, not shiny, not jeans, not part of a tracksuit, not something artificially faded or crumpled or with shotgun holes in them.

"Those are skinny legs." Oh god, a shop assistant. Weak smile.

"Sorry?" I look down at my legs, which aren't in the least skinny.

"Those pants, skinny legs. Everything has skinny legs this season."

"Not me, I'm afraid. Is there somewhere I can get a leg transplant around here?"

"Sorry?" He looks down at my legs. The smile gets weaker.

"Some people don't have skinny legs. And some people don't like shopping. And some people just want to buy a pair of pants without having their senses beaten into submission by 25 metre tall images of pre-pubescent androgynes wearing makeup applied with heavy machinery. And some people are appalled that men in suits sit around on the 102nd floor dreaming up mechanisms to bring about the Gruen transfer, while waiting for their mail-order Russian brides to ..."

I realised I was waving my arms, just a bit. And he was backing away from me, just a bit.

"I don't like shopping."

I wandered off to find Rachel. Women like shopping more, you see. She was standing by the railing, looking down on the swarming crowd of shoppers on the ground floor.

She looked at me and said, "I think I'm going to kill someone."