October 2001

« September 2001 | Main Index | Archives | November 2001 »


Office trick #241. Write a program that will (on average, checking random numbers every second) loudly say "Ni!". Leave it running across the room from you.

First stir-fry was not a disaster. It wasn't brilliant, I'll put less garlic in the next one.

Zen and the Wok

  • 3:42 PM
Step one of the wok mission is complete. I have a number of cooking implements I did not possess before, and I have a book to tell me what to put in them.

The cookbook was going to be step one, mainly because the bookshop was across the road from the train station. It was the technical bookshop, where I also buy all my Nerd Books, but it also stocks things like cooking and philosophy. I was expecting to show up, find a whole shelf of "Stir-fry stuff" books, and pick the one that looked most user-friendly. Such was not going to happen. The closest I came was the half-inch thick "Womans Weekly Asian Cookbook", which I wasn't going to buy because it would have been confirming stereotyped gender-roles.

Staring out of the shelf, taunting me, was the yellow-bound Cooking for Dummies.

I fucking hate for Dummies books.

for Dummies books are patronizing. They're saying to you: "You don't know anything about this. You can't understand this, so we're going to use small words. We're going to talk down to you because that's what you deserve." I know, I'm going to get everyone saying "Oh, I bought [foo] for Dummies, and it helped a lot!" but this is my personal perspective, which comes from never having owned one. And with this attitude, I never will, no matter how much the book says seductively from the shelf... "You barely know how to boil an egg, Charles. Buy me... buy me..."

Then I saw it. Zen, the Art of Modern Eastern Cooking

My teacher Suzuki Roshi said, "When you cook, you are not just cooking. You are working on yourself. You are working on others." I invite my frustration, anger and sorrow, my tenderness, care and compassion to come into the kitchen with me. This is not the same as giving them free rein to do what they want. If this were so I might hide in a hole in the ground or beat a pilow with my fists. Instead I invite them to join me in cooking. Anger becomes intensity and focus, energy and vigour. Sorrow reaches out to touch and be touched. The afflictive emotions are transformed into nourishment.

Oh, yeah baby.

So now, I am not going to cook. I am going to embark on a spiritual journey involving Bok Choi, peanut oil, and a bloody big knife.

I've recently started peppering my journal posts with bold type.

Rest assured, I'm not doing this because I'm going mad, or trying to draw attention to myself. What happened was that I went back to one of my older, long journal entries and discovered that I didn't want to read it. It was all this dense text, and reading dense text on a computer screen is difficult. In 1997, Jakob Neilsen wrote that 79% of web users do not read web content, they scan it. By making one or two important phrases in each paragraph bold, people scanning the text have some idea what I'm saying, and can decide whether they want to read it in depth.

Journal: The place Charles puts words he doesn't need any more.

While going through the "Lord of the Rings" cast list, Candi discovered a bunch of characters who she didn't recognise from the books. I took this as a challenge, and through the joys of google managed to find all but one of them. The final character, Lurtz the Uruk-Hai, was made up for the movie.

Why? It's not like LOTR is short of characters, think how many they'll have had to cut just to make the trilogy short enough for three movies. With all the characters they've cut, why risk alienating the fans by going back and adding ones that weren't in the books?

The friends list on Livejournal is its worst feature.

The friends list is really a confustion of three features. Firstly it is a subscription list, allowing you to read summaries of posts from your entire subscription list. Secondly, it is an access-control list, on which you set the defaults for who may read your protected posts. Finally, it's a friends list on which you list names of people you like.

Anyone can tell that while these three lists overlap significantly, they're not by any stretch of the imagination the same thing. Half the population of LJ, as far as I can tell, has run into problems because the friends list is overloaded with meaning. One of the most common is (I've heard about this but not verified it personally) the fact that if you add a community to your friends list (for the purpose of subscribing to the community for your friends page), people in that community can see your friends-only posts. (edit: This bug is now fixed)

The other problem with friends groups is the friends page itself. The default layout for the friends page is geared towards occasional, medium-length posts. People who make frequent, short postings are annoying, because they clutter the page. People who dare to make long posts without using lj-cut make the friends page too long.

Friend groups are a good solution. You can define your friends list to be a superset of all three meanings, and use your friends groups to generate friends pages and access control your posts. Since your public friends list contains all these names, you don't offend people who can't see which groups they may be in.

I take a different tack. To solve the access control problem, I don't make friends-only posts. There's one post in my entire history that's friends-only, I made it that way because someone from work had found my wiki, and the post was about work. I figure, if I have something private that I want my friends to know, then it's important enough to tell them personally, rather than posting it on a web-page that they may or may not read.

(Edit: This is no longer true. I succumbed.) To solve the friends-page problem, I don't read my friends page. Go click on my friends page and you'll see it's gibberish. I have a Ruby script that checks if there are any new posts on my friends list every minute or so, and if there is one, it parses the page and I get a message saying who's posted, what the subject is, and the first fifty characters of the content. If I want to read the post, I go to the person's livejournal homepage.

I have a neat bookmark in Mozilla. I type "lj username" in the location bar, and it takes me to "username"'s livejournal. More often, I use lynx.

This works well. Firstly, you see peoples posts in context, without all the other voices around them clamouring for attention. Secondly, many people have page layouts that reflect their personality, so you get the added bonus of reading their journal entries in the setting they were written for. And since I have user-by-user control of whose entries I read and when, long posts or short posts don't faze me. For people who make frequent, short posts, I wait until they've posted six or seven times, and read everything in one group. Same goes for people who are on my friends list, but I don't feel like reading everything they write.

Quote of the day

Doing this sounds dangerously like using some over-generic model to model anything. Such over-generic models are a dangerous mermaid, whose beauties lure many many an analyst to an annoying, if not exactly fatal, variation on drowning. -- Martin Fowler, from Accounting Patterns

I had the strangest nightmare on Wednesday morning. My apartment had been burgled again, but this time they'd done a much more thorough job - taken the stereo and all my DVDs and the playstation and all but one of the computers.

They also left the place spotlessly tidy. My books were neatly piled up. The bed was made. The carpet was vacuumed (but the vacuum cleaner had been stolen too) Everything looked so... clean.

“Charles Formula for Success in Retail”, or “how to be a good check-out chick when you secretly hate people”.

Once you can fake sincerity, you've got it made. -- Unknown

For about five years, I was Charles the check-out chick. During this time, I got an inordinate number of commendations from customers, despite the fact that I'm really an antisocial introvert agoraphobe who hates meeting people. (how's that for tautology?) Anyway, as an aside to a discussion I had this evening, I decided to post my formula for successful customer service to my journal.

Customer service is the intersection of two opposing forces:

  1. The customer wants to be treated like a unique human being
  2. The shop-assistant doesn't have the energy or patience to deal with a thousand unique human beings in one day.

There are other forces at work as well, of course. For example, there's the Temporal Dilation Effect of Queues: when someone is at the head of the queue, they want as much time spent on them personally as possible, whereas when they are behind the head of the queue, they just want you to deal with everyone as quickly and efficiently as possible. On the other hand, that's sort of already covered by rules 1 and 2 above.

The trick to surviving eight hours full of unique human beings is to recognise that people really aren't unique at all. There's a limited number of personality types when it comes to shopping, a very limited number of applicable situations, and given a week you can come up with a script that covers all these situations. Come up with several scripts, you just need three or four for each of the major interactions, and one each for the uncommon ones. Remember to include a few jokes: they don't have to be funny, they're just a sign you're making an effort to be personable.

The most important part of these scripts is that they sound natural. This is where the quote at the top comes in. Generations of "experts" have consulted with retail chains to come up with the "perfect" patter between customer and salesperson. Inevitably, you get ordered to use this, and inevitably it sounds absolutely fake. Find out how much of the supplied script you can get away with discarding (I discovered the only line they insisted on at Target was that you say "Is there anything else?" instead of "Is that all?") and discard it. Say "Have a nice day" to all your customers and you sound like a drone. Alternate between "Enjoy yourself", "See ya", "Have fun" and "Bye", and you're offering the same semantic content, but it sounds like you actually care.

This brings us to another point, rotate your scripts. People don't feel unique if you tell them to "Have a nice day", just like you told the last five customers in the queue. This is why you need three or four scripts for the common events. If you're having a particularly energetic day, you can attempt to ad-lib, but most of the time you just don't need to. People who worked with me often got quite amused by this - they'd look at me incredulously at the end of the day and repeat one of the jokes that I just used on fifty different people, each time as if it was the first time I'd thought of it.

The aim here is that you can go into robot-mode. Customer shows up. You go through the mechanical actions, recite script #2, and as long as you remember simple things like eye contact and a genuine-looking smile, the customer will never guess that they only ever make it into your short term memory, and five seconds after they're gone, they're not taking up important brain-space any more.

Of course, this makes repeat customers a problem. If someone shows up week after week, they'll eventually notice that you can never remember who the hell they are, and realise that they're not making any lasting impression. I'm sure that in my four years or so at Target, there were people I saw quite regularly, but because nobody ever made it past the short-term memory, I probably disappointed them by not greeting them like long-lost friends.

On the other hand, nobody really mentioned it to me.

Enough procrastinating. This weekend I shall purchase a wok. And a stir-fry cookbook. And things what go in woks to be stirred and fried. I can't promise to use it often, but it'll be a useful skill to develop anyway.

From Advogato - Leaving SourceForge. The financial situation for VA Linux looks bleak. Those of us who depend on SourceForge for development are, or should be, getting worried. Already, one of the core services provided by SourceForge has fallen into "no longer being maintained". It seems prudent to develop back-up plans.

And in other news, why the hell does Windows decide it needs to go through six different dialog boxes just because I happened to plug my camera into a different USB port than usual?

On Gender Politics:

(Charles) The way it was explained to us in biology, the Y chromosome is really pretty useless, the X does all the work, which is why men get all these genetic problems women don't because they have the backup, useful X. I was offended by that.
(Candi) it's true.. all things are inherently female.. but in half the cases something goes wrong :)

Augh! I hate Rage. You've just decided it's a good time to go to bed, and they play Depeche Mode, The Jesus and Mary Chain, and My Bloody Valentine. Bastards.

I'm looking through my CD list, and thanks to buying CDs by Gerling and Endorphin, I've finally filled the gaps in the "G" and "E" directories. To have the whole alphabet, I still need "I", "Q", "Y" an "Z".

Q is easy - I've been meaning to get one or two Queen CDs (Night at the Opera, and the one with the big robot on the cover with We Are the Champions on it). Any suggestions for the other three? (No, I've never really liked Zappa enough to get one of his albums)

I need to buy myself a CD player that can hold more than three CDs at a time.

Today's Haiku:

VisualAge crashes
The sun rises in the East
Day follows the night

Courtesy of Candi, who knows me far too well for her own good:

Charleseque: adj: Similar to, resembling:

  • An explanation that nobody else would even try to offer.
  • An extensive and silly explanation to explain something simple.
  • The logical mixed with a heaping of the absurd.
  • The thought process that would come up with "It's easier to clean the picture of the carpet with photoshop than actually have someone clean the real thing."

All my friends make fun of me :P

Jakob Nielsen: End of Homemade Websites. "Most small websites are probably better off with Yahoo's default set-up than anything they could design themselves." (Scripting News)

Another link stolen from Scripting News, but it echoes something I've been thinking lately. Remember a year or two ago, when the web was a little younger, and it was the height of embarrassment to have a website that was generated for you by some tool, rather than written by yourself in emacs? Hasn't that just flipped around completely in the last six months.

It's like at some point, a switch was flipped, and everyone started thinking "What the hell are we doing this for?" And what are we writing websites for? We put stuff up on the web so that the words we write, the links, lists, pictures and thoughts we gather around ourselves can be communicated to the world, or at least those parts of the world we want to show off to.

When writing software, one of the biggest decisions you have to answer is Write or buy? -- Is the stuff that is out there already good enough, is it worth using, or is it more effective to buy your own. Recently, the stuff that's out there has become good enough, the templates flexible enough for us to not feel embarrassed using them.

Enter online journals. Enter blogs. Enter wiki. Enter the world of Content Management. It comes in many forms, but really they all do the same thing - it's no coincidence that Slashdot and Kuro5hin both do journals now, the code was all there, it's just a slightly different angle on it.

All these sites make it easy for you to write something, link to something, fill out a survey, take a picture, propagate a meme, gather opinions, and have it exposed to the world with the least fuss. And then when you're finished with it they take care of archiving what you said so you can get back to it later, without you having to manually update three levels of indexes.

Write or Buy. Not so long ago, the results you got hacking your own site in vi or notepad were so much better than the available alternatives that it was worth spending the extra effort, worth the time updating those indexes by hand and editing file after file when you wanted to change the look of your site. Now you can theme and tweak through text boxes and the CMS takes care of it.

Similarly, I had a moment of inspiration a week or two ago, and started sketching plans to write my ideal blogger/journal/linked nodes/whatever site. I could quite easily write one that suits my needs personally - when you get down to it, the whole thing is just writing views on a database. But... I don't have the time, and why should I bother when I can pay a few bucks a month and get an account on a Manila site, or on LJ?

I run at home. It grabs newsfeeds via RSS from a dozen different sources. It's web-based so I can access it from anywhere. If I spot something interesting then in two clicks I can have it as a link on my weblogger homepage. And it'll look the way I want it to. And when it's old it'll slip off into archive-land on its own. I can post to my livejournal from a little Perl command-line app on my shell account. Ditto.

So here's to never having a real homepage again.


  • 11:54 PM
Some things posted on my blog that I've been tardy in cross-posting..

(9:10:54 AM) Guardian: "FBI investigators have officially concluded that 11 of the 19 terrorists who hijacked the aircraft on 11 September did not know they were on a suicide mission." (Scripting News)

Eight people who can spend a year planning their own deaths (and those of thousands of others) without any of them cracking and alerting the authorities is still scary, but significantly less scary than 19. It also means that the next strike is going to be harder to plan, as now the terrorists are going to be looking over their shoulders wondering whether the grand plan includes their deaths or not.

Weblogs are funky. Dave Winer reads this in The Guardian and links to it from Scripting News. I read it in Scripting News and link to it on my page. The idealistic nerd in me tells me that this is what the whole "World Wide Web" thing was supposed to create.

(1:24:45 PM) Mark Pilgrim keeps a weblog. It got him fired, not because he said nasty things about his employer, but because he said too many things about himself.

(11:46:19 AM) Courtesy of Livejournal's Alphabet Soup, here's a celebration of Palindrome Day

I just sent an instant message to someone sitting five feet away from me. Somebody shoot me now.

More flashbacks

  • 10:10 AM

Another train experience. This time I was on the way to work. Three seats behind me, a large man sprawled in his seat. He had his walkman on at top volume. It was playing Pat Benetar's "Love is a Battlefield" *shudder*

I walked into the office, sat at my computer and turned on the monitor. Then I said "Good morning, computer. Are we going to do some good work today?" Nobody in the office looked at me strangely.

"You put on the leather pants, the pants start telling you what to do." -- Bono

Insurrection wasn't nearly as bad as the reviews at the time said it was. I was expecting something from the deep pits of Hell, and it turns out to be just another elongated TNG episode.

I rearranged my room today, moving some stuff around so that I could move my computers back to the big table. The little desk was getting too cramped, and it was impossible to do any serious work there because everything was at a weird angle, and there was no place to balance books. My new geek-zone can be seen here.

Dual-head is cool, but annoyingly implemented. Win2K (or perhaps the Matrox drivers, I'm not sure) does not treat the two screens as separate, but just spreads everything out so that I have a screen resolution of 2560x1024. This is neat in theory, but in practice it means that when you maximise a window it takes up both windows, the systray in the taskbar appears on the secondary screen, and all sorts of transient windows (such as alt-tab) appear in the "middle" of the screen, unreadably split between the two monitors. I'd much rather have both monitors be a "desktop" in their own right.

I also discovered that my 17" monitor (the second one) is stuffed. Even if I shrink the horizontal stretch to the narrowest possible setting, the picture is too big for the screen. This is regardless of what computer it's plugged into or what resolution I've chosen. Not happy.

(Update) I downloaded more recent drivers for the dual-head. They work properly. Now all I have to do is get the damn second monitor fixed.

And today's winner of the Everclear award for only really having one song is... Jamiroquai! Congratulations, Jay, for ten years of releasing the same refried-retro-disco tune again and again and again and again...


  • 1:43 AM

The net's been lagging all night. I guess I should start reading all the network outage emails I receive, I'm sure at least one of the ones I deleted today would have read "Major fiber cut, all traffic will be routed via Tonga until further notice". If they don't fix it before StarCraft time, I'll be mightily annoyed.


  • 7:37 PM
It was somehow a reversal of my journey to work. At Town Hall Station they piled on, in basketball singlets and biceps, in too-loud hair, too-loud clothes and too-loud conversation. Spiky, bleached and the center of the world.

And I stood, turned to them, and said. "I'd like to thank you all. It's as if the eighties never ended."

This is what makes train travel worthwhile. :)

I just got an email with the subject line: "May I borrow your towel?!?". I was hoping for something to do with Douglas Adams, but sadly it was just another porn spam.

The Grim Reaper was on my train today. He got on at Town Hall, and travelled with us until I got off at Wynyard, the next stop.

I'm not entirely sure what is more shocking. That the incarnation of Death is a stocky chinese man in a black plastic jacket, that his scythe is really a five-foot long cardboard tube with a blade coated in tin-foil, or that something as important as the cycle of living is being trusted to Sydney's public transport system?

Perhaps this is why World War Two happened? Hitler was scheduled to be taken early but on the day of his demise, the line was down due to track work.