WotD: Trollumnist

It used to be that to get your own column in a broadsheet, you needed to add some value. Expertise, skill in interpreting social and political developments, or a distinguished history as a journalist were rewarded with a bit more space in the paper. There, you could spin out a longer-form piece analysing burning issues in a little more depth, or you could even act as an advocate for things that weren’t on the public’s radar.

As the newspaper business model heads south, though, we’ve been subjected to the rise of what we might christen the “trollumnist” — the writer who simply “trolls” in a multichannel, multimedia environment.

 — “If I Make You Angry Enough, Maybe You’ll Keep Reading” by Jason Wilson in New Matilda

Of course, this doesn’t just apply to the opinion pages of flailing newspaper websites or soap opera US cable television opinion shows… consider the newer, online, journalism-lite outfits which employ trollumnists to crank up page views and ad impressions.

It’s a terrifying media strategy: Find a niche — perhaps even an entire community, with all the politics and tragedy, highs and lows that entails — choose some regular targets for fæces-flinging, troll the living fuck out of them, and reap the blood money reward.

I’m sure my friends in various tech and politics communities will find this word instantly useful. A wonderful addition to the vocabulary for those fighting the good fight against fear, uncertainty, doubt, lies and bile.

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

Sexism, metaphor, whimsy and caprice

It’s difficult to recall the last time I laughed out loud when reading an Ubuntu changelog entry. Please direct any questions or comments you may have to the Department of Metaphor.

hunspell-en-us (20070829-2ubuntu4) karmic; urgency=low

  * debian/extrawords.txt: added "misandry" and "misandrist" (LP: #436145)

 -- Mackenzie Morgan   Thu, 24 Sep 2009 15:38:32 -0400
  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

QotD: John Lennon

No. No musicals. I loathe musicals. I never did have a plan for doing one. My cousin made me sit through some fucking musical twice. I just hate them. They bore me stiff. I think they’re just horrible. Even Hair. And they’re always lousy music.

 — John Lennon, from The Lost Interviews by Ray Connolly

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

QotD: Guy Rundle

The whole thing shows that if you have a basic contempt for the idea of government — that you wanted it to be small enough to “get it in the bathtub and drown it” — then it will come back at with you with failure that threatens the very basis of orderly life itself. California’s getting a lesson in that.

 — Guy Rundle in Crikey: What’s happened to the once great state of California?

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

Watching nginx upstreams with collectd

Already happy with nginx in front of Apache for a number of sites, I decided it was time to start testing nginx/fastcgi on my personal server (the serial crash test dummy of my web operations). The only problem: I have yet to find a sensible method of grabbing useful runtime information from the PHP fastcgi process itself, and if you can’t sensibly watch it, you can’t sensibly deploy it.

So for now, instead of watching the PHP fastcgi process directly, I’m tracking its performance and usage from nginx’s perspective. You can log all kinds of data about upstream performance with nginx:

log_format upstream '$remote_addr - - [$time_local] "$request" $status '
    'upstream $upstream_response_time request $request_time '
    '[for $host via $upstream_addr]';

Then we log to a central upstream.log file from every location block which includes a fastcgi_pass parameter. For example:

location ~ \.php$ {
    include  fastcgi_params;
    access_log  /var/log/nginx/upstream.log  upstream;
    fastcgi_pass  fcgi_php;
    fastcgi_param  SCRIPT_FILENAME  $wordpress_root$fastcgi_script_name;
}

Now we know how many requests the PHP fastcgi process is handling, and how quickly it’s doing so. collectd’s tail plugin can watch this log file…

<Plugin tail>
  <File "/var/log/nginx/upstream.log">
  Instance "nginx"
    <Match>
      Regex ".*"
      DSType "CounterInc"
      Type counter
      Instance "requests"
    </Match>
    <Match>
      Regex " upstream ([0-9.]*) "
      DSType GaugeAverage
      Type delay
      Instance "upstream"
    </Match>
  </File>
</Plugin>

… and turn it into something readable. First, the number of requests per second (which I only started watching at 14:30 this afternoon), then the delay for each request:

nginx Upstream Requests

nginx Upstream Response

(Relatively boring statistics here, as it’s only monitoring the dynamic processing of my personal sites.)

Combining nginx’s flexible logging and collectd’s tail plugin makes it pretty easy to watch the usage and performance of whatever you’re running behind nginx, even if you can’t instrument the application itself.

… and thus far, I’m pretty happy with the performance, reliability and resource usage of nginx in front of PHP in fastcgi mode. :-)

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

QotD: Brian Aker

Some companies lack “open source table manners”. Often they don’t know what is expected. Like my cat bringing dead mice to the dinner table.

 — Brian Aker, with some tiny Twitter wisdom

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

WordPress and Drizzle

So, for amusement, education and a desire to put Drizzle through its paces with a real-world application, I built a Drizzle database adapter for WordPress.

Rather than completely dumping the native wpdb class (as most WordPress database adapters appear to do), I have subclassed it, replacing only the methods which use mysql_ functions.

This way, it’s easier to maintain, and more likely to work with plugins and future versions of WordPress. I have also written a cheesy, retroactive test suite for wpdb… I haven’t done a lot of TDD, so I have no idea if it’s any good, but it was helpful during development. ;-)

Because Drizzle has removed column types and various bits of syntax that WordPress (and heaps of  plugins) rely on, the adapter does a tiny bit of query munging along the way. For now, the only filters required are for CREATE, ALTER and friends.

Here’s a screenshot of WordPress running on Drizzle. Note that in the sidebar, I’m showing off two plugins which maintain their own tables — WP-PostRatings and Twitter Tools.

WordPress on Drizzle

To test this bad boy out — because it’s absolutely not for production blogs! — you’ll need the Drizzle server (and its dependencies, naturally), the Drizzle PHP extension, WordPress 2.8 and my adapter. Note that I have yet to test it with WordPress MU, but it shouldn’t require many changes if it doesn’t work already.

If you use Ubuntu and want an easier time of it, you can get almost everything from the following PPAs. The Drizzle server isn’t packaged, but it’s incredibly easy to build and changes so quickly that you’ll probably find you want to keep it up to date from the source anyway.

deb http://ppa.launchpad.net/drizzle-developers/ppa/ubuntu hardy main
deb http://ppa.launchpad.net/jdub/devel/ubuntu hardy main

(I have only built my packages for Ubuntu 8.04, hardy, but you can always just grab the source packages and build them for whatever you’re using.)

Make sure you install the database adapter before you go through the WordPress install process. In every other respect, your test blog should operate in a completely unsurprising manner. Except when Drizzle crashes… but that’s precisely why you’re testing it, right? ;-)

On Drizzle

I am incredibly impressed with the Drizzle project. It’s a living case study of Open Source innovation and project renewal.

In response to what could be regarded as the unadventurous maturity of the MySQL project, the Drizzle developers have not simply chosen a new goal and forked the code — they have crafted a mission based on an insightful reading of current and future needs, questioned everything about MySQL without throwing away what they had learned, and thoroughly redefined their expectations and model for community collaboration.

It’s the perfect application of Software Freedom’s most functional of permissions: the freedom to fork. Like other forks built on both technical and social foundations — such as Firefox and, coincidentally, WordPress — I think it will eclipse its predecessor. Yes, even the mighty MySQL. :-)

I hope that what the Drizzle developers have done will teach and inspire other projects to look beyond their own horizon.

Here’s a rocktastic presentation by Brian Aker, “Drizzle: Rethinking MySQL for the Web”, from the recent Open Source Bridge conference:

Please enable Javascript and Flash to view this Blip.tv video.
  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

How do dogs drink water?

Wow, this sure is counter-intuitive. Watching Po the other day, I was pondering more efficient ways for a dog to drink water. I mean, why doesn’t he just hold his breath, stick his snout in the bowl and suck? OK, it might take a leap of faith for a dog to do that due to inconvenient nostril placement. ;-)

Meanwhile, I’ve always assumed that dogs and cats scooped up the water in their tongue like a bucket. Turns out that was right, albeit backwards… in the slow-mo video below, you can see that dogs actually use the back of their tongue as a scoop, not the front (which is the way I would do it)!

YouTube Preview Image

Update: After some encouragement in the comments, Dusty sent along a video of Sarah (a six month old Gordon Setter) drinking through her snout like a straw! It may not be slow motion, but you can still clearly see her unusual approach to the problem towards the end of the video. Check it out:

YouTube Preview Image
  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

Truly, CSS is awesome

CSS is awesome

… and apparently available on Zazzle.

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg

Barack Obama celebrates National Andrew Bolt is a Dickhead Day

Barack Obama celebrates National Andrew Bolt is a Dickhead Day

(This stupid joke, and the linked cartoon which inspired it, will be difficult for international readers to understand. It might make slightly more sense if you replace “Andrew Bolt” with “Rush Limbaugh” as you read it, while noting that a true analogue to Limbaugh simply doesn’t exist in the Australian commentariat. Despite having our own breed of hypocritical right-wing crazies, I think it will be a long time coming before Australians would accept someone even remotely as ignorant and offensive as Limbaugh in our public conversation.)

  • email
  • Print
  • Twitter
  • Identi.ca
  • del.icio.us
  • Facebook
  • Digg