Anti-Touch Typing

One thing I’ve always meant to do is learn to type properly. I took a class way back in Grade 8 and was rated at around 45 wpm, but the lessons never really stuck. I have awful, awful habits, no sense of standardized positioning, occasionally have to look at the keyboard, and make quite a few mistakes.

After watching some co-workers wail away on their keyboards I always felt a bit slow and clumsy in comparison. It was thus quite a surprise when, on a whim, I took a few different online typing tests and actually scored between 65-70 words per minute, including corrections. That was just on plain text, and punctuation-heavy stuff like code would be a bit slower, but it was still a lot higher than I expected.

I should still probably look into some kind of tutoring, though, to at least reduce mistakes. It still feels a bit foolish when you’re typing with a coworker looking over your shoulder and you spend half your time backspacing…

I Am The Virus King

After another thorough scan on my systems, including cross-scans from different OSes, I have confirmed that my streak of being virus-free is still unbroken from ever since I got my first PC in 1993. Sometimes it pays to be paranoid…

Avoiding them has actually been fairly simple:

1) Never run e-mail attachments directly. EVER. If you do get what you think is a legitimate attachment, save it to disk and then open it from within the appropriate program.
2) Don’t use Outlook. That’s just asking for trouble.
3) Firewall off every port and only open the ones you absolutely need. Preferably with a physically separate firewall device.
4) Don’t use IE on untrusted sites. If you do use IE, deactivate ActiveX objects and Javascript. If you have to leave them enabled, don’t ever say yes to those ‘toolbar’ downloads.
5) Be suspicious of .exe files from untrusted sites. Virus-check the hell out of them, see if you can open them in WinZip instead (sometimes they’re just self-extracting .zip files), etc.
6) If it has an unfamiliar extension, don’t run it.
7) If you browse Usenet, don’t auto-display HTML and images. Treat them like e-mail attachments in 1).

Grrrr

Dammit, comments were supposed to be disabled on that previous post, but they got reenabled at some point while editing the drafts.

Removed for now.

Arrr Matey, I Be Pillaging Meself

I’m lazy. In fact, I’m so lazy that I’ll spend 10 hours working on something that’ll shave ten minutes off some other task.

My current time-saving crusade is part of an attempt to work through the backlog of games I have. Although I probably really should focus on one at a time, I like to switch back and forth every so often, and that’s a bit of a pain. Thanks to the current copy-protection schemes, you need to put one of the original discs in, and keeping all those CDs nearby and searching through them and changing them is annoying. Although there are ‘no-cd’ cracks out there, I’ve had trouble getting a lot of them to work, they don’t always exist for that specific game and/or patch, they aren’t exactly from a trustworthy source, etc…

Instead, the solution I’m trying now is to use the Daemon Tools package to act as a ‘virtual’ CD drive, and DDump to rip copies of all the CDs. Then switching between CDs is just a menu selection, and I can even store the ripped images on the file server now that I’ve got sharing set up properly. Normally programs like these are considered pirating tools, but hey, there are legitimate uses after all…

Of course now I have to rip all of those games to disk, which is taking even longer than expected. It looks like some of the more common copy-protection schemes really slow down certain stages of the copying — it’ll take 20 minutes to read the first 10,000 or so sectors, then 8 minutes to whip through the next 300,000… At least I only have to do it for the play discs.

The Spam Files III

Subject: Don't forget your superman pill!

Forget that, where can I get myself some Batman pills?

Subject: Adult Shop - Movie Section!!! strickland

Do they also sell propane and propane accessories?

Subject: STOP PAYING FOR YOUR Pay_Per_View_Movies IX:z8gon26923

But if I didn’t pay for them, then they wouldn’t be pay-per-view…

Subject: sheee miiiight saaaaaay it's too haaaard

Aaaaand iiiiit miiiight giiiiive heeeer aaaa speeeeech impeeeedimeeeent tooooo.

Subject: what if you had.. battalion maggot

Is that a new Warhammer 40K figurine?

Subject: Loving yourself is the begenning of loving life!

Hey, it’s none of your business how I ‘love myself’…

Speaking of Music…

I’ve been on a bit of a CD-buying binge lately.

Velvet Revolver, “Contraband”: Yeah, it’s a gimmick band, but I’m actually enjoying it a fair bit. Nothing groundbreaking, but it’s mostly solid earache rock. There’s a couple of slower ‘ballads’ that seem a bit out-of-place, but that’s pretty much obligatory for this type of music.

Sonic Youth, “Sonic Nurse”: This one was on a recommendation; I hadn’t actually heard any Sonic Youth since sometime in the early ’90s. Definitely not for everyone, with their oft-noise-ish feel, and I don’t care for a couple of the tracks, but there’s a lot to like too. In particular I’d recommend “Unmade Bed”, “Dripping Dream”, “Stones”, and “Paper Cup Exit”.

The Killers, “Hot Fuss”: I’d never heard of these guys before, but I heard a couple songs while doing other shopping in HMV and liked them but didn’t know who it was, so I googled the lyrics later on and picked up the album itself a few days later. Average overall, but a few tracks are new favourites (“Jenny Was A Friend Of Mine”, “Smile Like You Mean It”, “Somebody Told Me”) and I wouldn’t really call any of them bad.

And Depeche Mode, “Music For The Masses.” Hey, it was five bucks.

There was also a cheap movie binge, but it’ll take longer to work through those…

The Never-Ending Search

To hell with it, maybe I should just get an iPod after all. The fourth-generation ones are out now, with the clicky-wheel from the mini-iPod, better battery life, and a lower price (I can live without the dock and case). It still doesn’t have the other features I’d like, but it’s better to have something at all than to chase a ‘perfect’ goal forever…

The problem then becomes one of management. I’d obviously need iTunes in order to load songs, manage playlists, and so on, but of the three systems I have, all of the songs are stored on the Linux file server, the one where iTunes isn’t available. There isn’t enough room to mirror the entire library on the iBook, and I don’t have FireWire or even USB2 on the Windows system (which I’d prefer to avoid and is also low on space).

Fortunately you can add songs to an iTunes library from a network share, so I can do all of the management from the iBook, but then that creates a couple more problems. First, it doesn’t seem to let me edit ID3 tags on songs in the library that are from a network share. Whether this is a limitation of iTunes or a permissions problem or what isn’t clear yet, so I still need to do some investigation there.

The second problem is that now I have a redundant data problem. Although I can’t fit my whole music library on the iBook, I *do* have a subset of my favourite tracks loaded on it so I can listen to them while roaming. Adding the songs from the network share makes the local ones show up twice in the library, and it’s not immediately obvious which one is the local one and which is the remote one (idea to Apple: smart playlists based on filename/path). What I really need is two separate libraries, one just for the networked songs and one for the local copies, but iTunes just has one big library per user.

There is a way around it though, if you cheat a bit. Since everything is stored in ~/Music/iTunes, all I had to do was take the existing directory, rename it to iTunes.local, restart iTunes and add the network songs to the now-empty library, quit iTunes, and rename the newly-recreated iTunes directory to iTunes.remote. Now all I have to do is make ~/Music/iTunes a symbolic link to whichever library I want to work on at the time before starting iTunes. (If I were really lazy I’d make wrapper scripts to do it automatically from the Dock or Finder.)

It’s a bit of a kludge, but should work well enough. Now where are all those pennies…

Two Down, 8142 To Go

Well I’ve finally managed to finish Knights Of The Old Republic and Morrowind: Tribunal and knocked them off the pile.

KotOR’s storyline might not be great literature, but it was still fun and well-executed. The underlying engine is hidden very well under a nice interface for better immersion, the graphics are great on the PC version, the voice acting was excellent, and so on. I’ll definitely be picking up KotOR2.

Tribunal was largely more-of-the-same of Morrowind, which is pretty much expected of an expansion pack, but it did get a few things right where the original game was a bit lacking. The challenge level was reasonable for a character nearing completion of the main quest, so it wasn’t just a cakewalk even if you had all the best items already. The ability to list quests in progress was also extremely welcome — all too often you’d be on multiple quests simultaneously but your progress on some of them would get buried dozens of pages back in the journal, making it hard to tell what you need to do next.

I think they also did a much better job of city and dungeon design in Tribunal. The original game has a ton of dungeons, which helps promote the feeling that you’re in a vast world open for exploration, but far too many of them were way too similar in layout and style, even along the main quest. In Tribunal they are for the most part more distinctive and sensibly laid out.

Now to finish off Icewind Dale and start Morrowind: Bloodmoon…

(though I’m tempted to just abandon IWD; the story is kind of dull, and for combat and such it’s just not as impressive post-BG2)

Shoulda Stayed In Bed

I just spent most of the day integrating the final InstallShield changes necessary for our next release of a client product to properly support the new firewall rules in the upcoming XP SP2.

About three minutes after I sent out the e-mail announcing the availability of the next build for QA, the first one to incorporate the SP2 changes, a manager stopped by and told me that Microsoft had just announced that there will be an SP1 for Server 2003. Apparently this SP1 will also incorporate some sort of firewall/security updates, and we’ll probably hold off on our SP2 update until we can incorporate the 2003 changes as well.

*sigh*

Yahoo Goes Nuts

Looking through the logs, I’ve been seeing some strange queries from Yahoo’s crawler recently:

[19/Jul/2004:21:34:09 -0600] "GET /MadonnaCiconne/parcel-problems/mboic.htm HTTP/1.0"
[19/Jul/2004:21:43:14 -0600] "GET /ambush/000122.htm HTTP/1.0"
[20/Jul/2004:05:21:00 -0600] "GET /sis/000186/favorpopscandy.htm HTTP/1.0"
[20/Jul/2004:07:20:38 -0600] "GET /lokalen_pa_nett.htm HTTP/1.0"

It’s like bits and pieces of legitimate paths on my site are getting mixed in with random keywords. Either their crawler has gone a bit bonkers, or some other site out there is making up random links and it’s trying to follow those…

const me = dumdum;

I can never keep these straight since I keep forgetting the exact rules around pointer type qualifiers, so for my own reference:

const X * foo;    // Cannot change what is being pointed at, can change the pointer
    foo = &bar;   // Allowed
    *foo = bar;   // Not Allowed
X const * foo;    // Equivalent to the above
X * const foo;    // Cannot change the pointer value, can change what is pointed at
    foo = &bar;   // Not Allowed
    *foo = bar;   // Allowed
const X * const foo; // Cannot change either the pointer value or the target
    foo = &bar;   // Not Allowed
    *foo = bar;   // Not Allowed