Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!



How long do your computer mice last?

Stephen Williams 12+ years (361 comments)

The blue Logitech Pilot mouse I'm currently using was bought along with a new PC in September 2001. It's been used almost daily since then.


about a year ago

Original Batmobile Sells For $4.2 Million

Stephen Williams Re:$4.2? (47 comments)

You're have to be Bruce Wayne to afford the insurance.


about 2 years ago

This Isn't the Petition Response You're Looking For

Stephen Williams Re:This is highly offensive. (191 comments)

"Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances."

I see nothing in the response involving a law either endorsing or persecuting the Jedi faith. You're just one of those shouty "New Sith", aren't you? :-)


about 2 years ago

Death of Printed Books May Have Been Exaggerated

Stephen Williams Re:Information density (465 comments)

The tactile nature thing is entirely subjective, I agree. For flicking through and bookmarking, I do find physical books more user-friendly if I need to cross-reference several pages within a book; I can stick a bookmark (or finger) on each page and rapidly flick from one to another. That's more of a chore with an ereader. But it's personal preference, I know.

Another advantage of ebooks besides the information density that I forgot to mention in my first comment is searching. For keeping track of important or favourite passages, searching can remove the need for bookmarking if one can remember a significant word or two. And it's more useful than a physical index.


about 2 years ago

Death of Printed Books May Have Been Exaggerated

Stephen Williams Information density (465 comments)

I live in a small flat with insufficient space to store lots of books. My Kindle solves that problem.

Reading ebooks is a completely different experience to reading paper books. I miss the tactile nature of paper books, the physical bookmarkability, and the ease of flicking through them. But the practical problem of storage space that ebooks solve is, for me, a more important consideration.


about 2 years ago

Director General of BBC Resigns Over "Poor Journalism"

Stephen Williams Re:Slashdot? (214 comments)

There's been a load of blah on Slashdot recently about some election in the colonies; turnabout is fair play :-)

more than 2 years ago

Firefox 8 20% Faster Than Firefox 5

Stephen Williams Re:For those confused (441 comments)

If you mash the Square button while it animates, your JavaScript runs faster!


more than 3 years ago

Mozilla Aims To Release Four Firefox Versions In 2011

Stephen Williams Re:Good Bye (263 comments)

The only thing I don't like about chrome is it's lack of good RSS support

I like RSS Live Links for subscribing to RSS feeds in Chrom{e,ium}. I find it to be a fine replacement for Firefox's live bookmarks. I have no idea whether it'll be any use to you, but there it is.

(I'm not associated with RSS Live Links in any way other than as a happy user).


more than 3 years ago

Four IT Consultants Charged With $80M NYC Rip-Off

Stephen Williams Re:WTF is Eighty dollars millimeters? (126 comments)

The symbol for millimetres is mm, not MM. MM would be "megamega". Dollars megamega is equally nonsensical, mind.

about 4 years ago

Are Games Getting Easier?

Stephen Williams Story-driven games should be easy (854 comments)

Story-driven games should be easy. Everyone who starts the story should be able to experience the whole adventure and find out how it ends. They can still challenge more serious gamers by providing sidequests, optional bosses, bonuses for 100% completion etc.


more than 4 years ago

Slashdot Turns 100,000

Stephen Williams 100,000 is not a round number... (443 comments)

...to a geek. We should hold off celebrating until the next power of two. Looking forward to the 131,072nd story!


more than 5 years ago

At local midnight on the last day of the 2008 ...

Stephen Williams Re:Screengrabbing the leap second (301 comments)

The clock did indeed hit 23:69:60: I wrote the clock program in Ruby (dead simple; every tenth of a second, it just creates a new Time object and blats it to stdout, along with a carriage return so it overwrites the previous time) and had previously experimented to ensure it is possible to construct a Time object with a leap second. If one's timezone supports leap seconds, Time.local(2008, 12, 31, 23, 59, 60) does the right thing.

I just let it run, then took a manual screenshot at 23:59:60. (Fortunately, my reactions didn't let me down. All those countless hours playing video games have turned out to be useful for something, heh).


about 6 years ago

At local midnight on the last day of the 2008 ...

Stephen Williams Screengrabbing the leap second (301 comments)

I ran a digital clock program with TZDIR set to /usr/share/zoneinfo/right and TZ set to UTC. As soon as the clock hit 23:59:60, I grabbed a screenshot for posterity.

Have a nerdly 2009, everyone!


about 6 years ago

US No Longer the World's Internet Hub

Stephen Williams Re:I'm glad! (433 comments)

all these so-called "countries" that are or have been engaged in civil war are so because former British colonials drew a map that was convenient for them, forced people to get along at the point of 10,000 bayonets while they were there, and then thought it would continue to be so once they left.

Fixed your post for you.


more than 6 years ago




Well, that's another game finished then

Stephen Williams Stephen Williams writes  |  more than 12 years ago

I beat Final Fantasy IV last night.

The final battle took two attempts. I got utterly schooled the first time I attempted it. Before trying again, I levelled my party up five or so more levels (over the course of a couple of sessions), giving me a party with levels between 67 and 72-ish. I also changed my strategy the second time, using three party members to attack and two to heal, instead of having four attackers and only one healer.

The dizzying parallax scrolling effects used during the final battle were very nice, especially considering the age of the game. I don't recall seeing anything like them in FFVI.

In terms of difficulty, I'd rate the final battle about the same as FFIX's, easier than VI's, and slightly harder than VII's. However, I'd rate the game as a whole as the hardest FF I've played so far. The random battles get very difficult very quickly, and the learning curve doesn't get any shallower as the game progresses. Unlike the later FFs, the game is level-driven rather than story-driven. You have to commit time to levelling your party. I tend to be a fairly consciencious leveller-upper in RPGs, but it still came as a shock to the system.

It's my least favourite FF so far. The story was nothing special; the game lacked the certain "something" that made VII, IX and especially VI so wonderful. But it wasn't a bad game, at all. Just not a great one.

I have FFV to tackle at some point. I'll probably play it over Christmas; right now, I have Xenogears to finish.


Adding up the layers of harmony

Stephen Williams Stephen Williams writes  |  more than 12 years ago

Got myself a neat little portable MP3 player.

It's very small (smaller than an ordinary cassette case) and light (feels about the same weight as a cassette; heavier with 2 AA batteries in, of course). It came with a USB cable, AC adaptor, and a bizarre set of earphones that I can't figure out how to put on without using a mirror.

I got a 256MB CompactFlash card with it. I'd have liked a 1GB Microdrive, but they're rather expensive. Maybe next year.

Since it's a very new player, the Linux kernel doesn't know about the Nex IIe yet. (Its predecessor, the Nex II, is supported however). When I plugged it into the USB port - nada. So I had a look at the Linux USB device database and picked a CompactFlash reader that's known to work with Linux.

The Linux USB mass storage subsystem makes CompactFlash cards look like SCSI hard disks. So I can mount /dev/sda1 somewhere (I chose /cflash), copy my MP3s to the card, unmount the filesystem, stick the card into the Nex IIe and I'm good to go. Works like a charm.

The player sounds very good, to my ears. I encode my MP3s using LAME with the --r3mix option; the resulting VBR MP3s sound just great to me. (An audiophile with top-of-the-range equipment could doubtless tell the difference; but I'm a normal person, so I can't).


Has it really been a year?

Stephen Williams Stephen Williams writes  |  more than 12 years ago

It's chryseis' first birthday.

I was wondering whether to consider the 28th or the 29th to be chryseis' birthday. It was assembled late on the September 28th, 2001; but didn't really achieve "consciousness" until the 29th. So with that in mind, I decided it should be the 29th.

Nowadays, most new IA-32 computers are sold with CPUs clocked in excess of 1GHz. Nevertheless, chryseis' CPU, an AMD Duron clocked at "only" 900MHz, still seems ridiculously fast. (And it is).

Mind you, if anyone reading this would like to buy chryseis a birthday present, send a dual-Athlon motherboard to the usual address ;-)


Wrong number

Stephen Williams Stephen Williams writes  |  more than 12 years ago

Some confused young lady from Yell called our office today to confirm our listing. The pertinent part of the conversation went something like this:

Her: "Can you confirm that your phone number is [reads number that somewhat resembles ours, but is several digits too short]?"
Me: "No, it's [correct number]."
Her: "Uhm... *checks phone number again* yes, that's what I've got... and can you confirm that you are the Bracknell Bees?"

Uhm, no. The Bracknell Bees is a local ice hockey team.

So, not only did she manage to misread our phone number, making it too short to be a valid phone number for this area, but she thought we were the ice hockey team.



Second wedding in a month

Stephen Williams Stephen Williams writes  |  more than 12 years ago

Yup, August would appear to be the month for weddings.

This time, it was the turn of one of my friends from university: nice girl called Hannah, who was marrying an equally nice guy called Keith.

Hannah's family is Roman Catholic, so the wedding was held in the Catholic church where she was baptized as a child. It's a really pretty little village church with a thatched roof. I'd never seen a church quite like it before.

Hannah arrived in a horse-drawn carriage. Classiest entrance ever.

I've never been to a Catholic service before. It was very different from what I'm used to. It was read straight out of an order of service; the priest read the service word-for-word.

The weather kept fine, so there was ample time for photographs after the service. There were a lot of photographs. Standing outside in the sunshine in a jacket and tie got oppressive after a while. Goodness knows how uncomfortable the wedding party were, in their top hats, waistcoats and tailcoats!

My friend Chris gave me a lift from the church to the reception in his sports car. Bombing up the A2 in an open-top Lotus is an experience.

The reception was held at a local mansion house. In the past, it was probably owned by someone with a name like "Marquis St. John-Smythe XIV". Nowadays, it seems to be used exclusively for functions like wedding receptions.

I lost one of my cufflinks, which was bad. But I found it again, which was good.

The meal was very good. The first course was a fish course; there's something disconcerting about having a whole prawn staring up at you from the plate. Tasted good, once I'd figured out how to get into it... The main course was chicken in mushroom sauce; the dessert was strawberries. And the wedding cake was chocolate, not the traditional fruit cake, 'coz Hannah doesn't like fruit cake.

The best man's speech was a bit poor. He took the now all-too-common "let's dredge up a load of anecdotes from the groom's past and embarrass him" route. So poor Keith had to sit there and blush for ten minutes. On top of that, he spoke indistinctly.

A fair few of my friends and I are teetotallers, so we toasted the bride and groom with mineral water.

A book was passed around for the guests to write congratulatory messages to the bride and groom. My friends and I wrote a silly BASIC program that, if typed in and run, would print "CONGRATULATIONS HANNAH AND KEITH" in an infinite loop, and had our names as REM statements. Yup, we're a sad bunch of nerds alright :-)

There was a dance in the evening. (No, I didn't dance. Don't you know me at all?!) Some more friends from uni who just had evening invitations arrived. I hadn't seen some of these people for two years (since the last uni wedding, in fact), and it was really great to see them all again. It took a few seconds for us all to revert to "silly university mode" :-)

At around 22:30, some of us decided to get away from the (very loud) band for a while, so we went out to explore the grounds of the mansion. In the darkness. With only the light of the moon, the security lights, a small torch and the "headlight" on Paula's wheelchair. And then the digital cameras came out. And it all got very silly. Maybe it's best that we only meet up every couple of years :-)

Hannah and Keith departed just after 23:00. They're honeymooning in Egypt. I hope they have a good trip, and are very happy together as husband and wife. They're both Great, and deserve every happiness.


Where am I going?

Stephen Williams Stephen Williams writes  |  more than 12 years ago

This Slashdot article about careers and goals in life got me thinking.

For a long time, I've thought of myself as a person with no goals; no aims in life. I've never been career minded; it has never made sense to me to define myself by my job, or to make it the focus of my life. I just don't think it's that important.

I don't have a plan for my life. When I left university, I had no idea where I'd be by the time I reached my mid-twenties. Now I'm there, and I have no idea where I'll be when I'm thirty, or forty, or fifty.

There's no plan. There's no roadmap. I'm winging it.

One of the comments attached to the Slashdot article said something along the lines of "imagine your funeral, and imagine what you want all the people there to be saying about you. Then make plans to make it happen". So I began to think about what I want to be remembered for. Almost straight away, some silly tacky cliche popped into my head; something about people remembering me as the most loyal, trustworthy friend they could hope to have had.

It might be silly, and obvious, and not really very adventurous. But, thinking about it, I think it's all I could possibly want out of life; to be the very best friend to as many people as I can possibly be. To make a difference to the people around me; to improve their lives a little bit by being their friend.

Unfortunately, I'm not yet very good at it. I tend to fall into the "sarcastic, bad-tempered computer nerd" archetype far too easily. That's something I need to work on. A lot. I'll be working on it all my life, I think.

My job is just a job. It pays the mortgage, keeps me fed, and pays for a cool gadget or two every now and again. But basically, that's it. It's a means to an end, not an end in itself. It keeps me alive; it isn't the focus of my life.

Spending my life striving to be a better programmer, Linux admin or geek would be a waste. Spending my life striving to serve my friends to the best of my ability is not a waste. That's where I need to be going, I think.



Stephen Williams Stephen Williams writes  |  more than 12 years ago

A couple of optimizations for the program below:

The last line:
contains a completely unnecessary string substitution. Goodness knows why I did that. It can be replaced with:

The two buffer.concat() calls halfway down the program can be replaced with a single buffer.concat() using a string sub:

However, I'm not sure whether it's better to apply that one or not. Two concat()s might be faster than one concat() and a string substitution. I ought to run some tests (e.g. time how long it takes to perform a million of each) to find out.


A little program

Stephen Williams Stephen Williams writes  |  more than 12 years ago

I have the verse program (included in the Debian GNU/Linux distribution) run automatically every time I log into my computer, so I get a Bible verse every day.

Soon, I'm hoping to obtain a second HDD on which to install FreeBSD. I want to use "verse" under FreeBSD, too. But it's not included in the standard distribution. The sensible thing to do would be to just get the Debian source package and compile the program under FreeBSD; or maybe use the Linux version using FreeBSD's Linux emulation. However, that'd be no fun. So I decided to write my own version of the program, in Ruby.

Here it is. It uses exactly the same verse file as the version that comes with Debian. My version has an extra feature: the verse file can optionally be compressed using gzip.

# @(#) $Id: rverse,v 1.1 2002/08/06 21:37:18 stephen Exp $
# Reimplementation of Debian GNU/Linux "verse" command
# Copyright (c) 2002 Stephen Williams.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# details, see the GNU General Public License.
# (http://www.fsf.org/licenses/gpl.txt)

# Set this to the name of your verse file. It can optionally be gzipped
VERSE_FILE = "/usr/lib/daily.verse"

# Make a string, RMMDD, where MM is the current month and DD the current day
t = Time.now()
prefix = format("R%02d%02d", t.mon(), t.day())

# Open the file and read the lines beginning with the prefix
re = Regexp.new("^#{prefix}(.*)")
buffer = ""
matched_yet = false
# gzip -cqdf sends a file to standard output, decompressing it if it
# is compressed
IO.popen("gzip -cqdf #{VERSE_FILE}") do |file|

    file.each() do |line|

        if match = re.match(line.chomp())
            matched_yet = true
            # Didn't match, although some lines already have, which must mean
            # that we've passed the end of the verse
            if matched_yet




Family wedding

Stephen Williams Stephen Williams writes  |  more than 12 years ago

My uncle got married yesterday.

I took Friday off work so I could travel up to my parents' house; then on Saturday morning, we all went to my uncle's together. He's my mother's brother, and lives in the same house they both grew up in, in Cromer, their home town, a seaside town in the east of England. I haven't been there in years. When we got there, I felt rather like Sabin in Final Fantasy VI when he arrived back at Figaro Castle after ten years ("This is just like old times! I have to wander around for a while!"). The place has hardly changed.

My uncle had asked my father to be best man, my mother to do the Bible readings, and my brother and I to be ushers, so we spent some time in the morning going over what we had to do during the various events. My uncle seemed remarkably calm, though he assured us that he didn't feel calm!

It was quite an informal do; no top hats and tailcoats, or any of that nonsense. We weren't all in matching outfits, though there was a common colour scheme: dark jackets and trousers, lilac shirts and ties, and white buttonholes. My mother wore a red trouser suit with a pink buttonhole.

(My uncle has a set of bathroom scales. I stood on them before getting changed. I currently weigh just under 100lb. This can't be healthy).

Being an usher is an easy job at an informal wedding. We just had to greet the guests as they arrived and hand them an order of service. Once everyone had arrived, our duties were over until the end of the service; then we had to make sure the doors were open for the bride and groom to leave through. (After they left, they promptly re-entered because it was raining. The wedding photos had to be taken in the church. Typical British wedding weather, then).

The bride arrived in a vintage chauffeur-driven limousine. She wore a lacy cream-coloured dress, with a lace tiara-thing on her head. She didn't have a veil, or a long train with a platoon of bridesmaids.

Before the service began, a large candle was placed on the communion table at the front of the church, and lit. At the beginning of the service, the minister explained that it represented Christ, and invited the bride and groom to come to the front and light two smaller candles from it, which represented themselves as single people. After they had said their vows, they blew the single candles out, and lit a fourth candle together; that represented themselves as a married couple. Nice touch; never seen that done in a wedding service before.

There were about sixty people there, including the wedding party. Most of the guests were from my mother's side of the family. My maternal grandmother (now sadly passed on; shame, she'd have loved to see her son get married) was from a large family with about twelve siblings; so my mother has a lot of cousins. While the photographs were being taken, she introduced me to some of them. Many of the women share a definite family resemblance: high cheekbones and prominent noses.

(According to one of my mother's cousins, I look like my mother, and share many of her mannerisms. My mother apologised profusely for that! I don't mind; there are far worse people to be compared with).

As the reception began, my brother and I were called upon to perform ushering duties again. This time, we stood with the bride and groom as they received the guests; we had to take the wedding presents from the guests and put them on a table. That enabled the bride and groom to concentrate on talking to their guests without being distracted. We were also to have taken the guests' coats, but no-one had one. (Despite being rainy, it was also warm. Bleagh, humidity, just what we needed).

The reception meal was a buffet; no silly sit-down meal with a gazillion sets of knives and forks or anything. As a member of the wedding party, I was sat at the top table, along with the bride and groom, the minister, the other members of the wedding party, and the bride's sister and her family. There were a few short speeches after the meal; the best man, the bride's father and the groom all spoke.

After the reception, the limousine returned to collect my uncle and his new wife, and then we all went home.

It was a fantastic day. I am so happy for my uncle. He had never expected to get married, but now he has; and his new wife is a lovely person; and they adore each other; and it's just all so great! *enthuses*


My life's goal is accomplished

Stephen Williams Stephen Williams writes  |  more than 12 years ago

I sometimes hear people say things like "I don't want the world to end until I've graduated", or "I don't want the world to end until I'm married", or "I don't want the world to end until I've had a child".

My equivalent has always been "I don't want the world to end until I have a static IP address".

And now I have one.

Bring on the Apocalypse.


*updates crontab and goes home*

Stephen Williams Stephen Williams writes  |  more than 12 years ago

I implemented a nightly build system for our current project today. (Not too tricky; every night, it retrieves the latest code from source control and compiles it, keeping up to a week's worth of builds in separate directories).

I haven't told my boss about it yet. He'll find out tomorrow when the build system sends him a status report by email :-)


Summer has finally happened

Stephen Williams Stephen Williams writes  |  more than 12 years ago

The perma-rain has gone, for the time being. We've had heat and sunshine for four days running. In this country, that's gotta be some kind of record.

My thermometer reads 28C/82F. Yes, I know that's freezing cold by American or Australian standards, but it's summer weather for us.


Gadgets on my shopping list

Stephen Williams Stephen Williams writes  |  more than 12 years ago

Gadgets I want to buy when I have some spare money:

  • UPS (that's Uninterruptible Power Supply, not a parcel delivery outfit), for peace of mind; since I moved into my flat, I've never had a power failure, but I don't trust the power: the lights flicker occasionally.
  • Laser printer; probably a Kyocera, as they work well with Linux, are cheap to run, and I tend to favour Japanese gadgets. My creaky old Canon bubblejet prints fairly nicely, but consumes ink like it's going out of style.
  • Paper shredder, for secure disposal of credit card receipts and the like. I could burn them, I suppose, but that's just asking for a big, nasty accident.


Final Fantasy Geek Code

Stephen Williams Stephen Williams writes  |  more than 12 years ago


[G] (B)6(#)6,7b,9b(F)9(C)Cl,Cd,Vv(V)Kf(O)+
[D] (D)A(R)--(Q/S)?(A/R)?(Y)--(A)--

Yes, IX is going on record as my favourite thus far; despite VI having the best characters and VII the best story, IX was the most enjoyable experience overall. This might change when I've played VII again and done more of the optional stuff; on the other hand, it might not, as I think that using optional scenes to reveal vital plot points is a pretty silly piece of game design; IX never did that.



Stephen Williams Stephen Williams writes  |  more than 12 years ago

I just finished disc 1 of Final Fantasy VII.


How to demolish a guy's stoical facade in one easy move.

I knew it was coming; I read about it ages ago, reading spoilers in a fairly carefree fashion because I didn't think I'd ever get to play the game. So I was expecting it to be "yeah, expected plot revelation, shame it had to happen, let's get on with the game".

How wrong I was.

I just sat there staring, covered in little goosebumpy shivery things.

From this point on, the game is going to have a somewhat different flavour.


(If you post a reply to this, please don't explicitly describe the event in question, as I don't want it to be spoiled for those reading this who haven't played the game but would like to).

Slashdot Login

Need an Account?

Forgot your password?