Chad Perrin: SOB

30 September 2009

About Those IT Concepts You Might Not Get

Filed under: Geek — apotheon @ 06:04

I recently read Ten IT Concepts That Non-IT People Don’t Get. Aside from the fact I noticed inconsistency between the capitalization scheme for the “title” of the first of the ten concepts and those that followed, I also felt a burning desire to respond to several of the points. What follows is a summary of my thoughts on each of these concepts that, apparently, Non-IT People Don’t Get.

By the way, if you don’t read the original first, parts of this might not make much sense.

  1. When to Click and When to Double-Click

    This point is pretty much summed up in one question: “Can you make rules for when to click and when to double-click?” It gets more specific with “Why do you double-click an icon to perform the action, but only single-click a button?”

    The answer to the second question is actually pretty simple: you double-click an icon because there might be a reason to single-click it just to select the button. The only reason in normal usage for selecting a button without clicking it is to be able to “click” it using the keyboard, so you don’t have to use the mouse — say, using the Tab key to cycle through buttons until you get the one you want. If you’re going to use the mouse to select it, you might as well just use the mouse to click it. You might want to select an icon to copy it, to get the full text below the icon to show up (as in cases of long names for desktop shortcuts that get truncated when the icon isn’t selected), and so on.

    There’s another reason for the difference, too: a button on a GUI is a metaphorical representation of a physical button, which one would likely reason only requires one click to work. The same does not apply to an icon.

    I think a simple explanation of this theory of how to determine when to single-click and when to double-click could help immensely. Of course, this is the logical approach. Some UI designers don’t stick to the logical approach, and we can’t really blame users if they have difficulty navigating the confusing waters of bad UI design.

  2. Hierarchical Folders

    “Folders” are just stupid icons used in GUIs to represent filesystem directories. They should never have been called “folders” in official application documentation in the first place. The confusion engendered by hierarchically arranging “folders”, which are generally not arranged that way with real, physical folders, is a direct result of some idiot thinking the system needed to be dumbed down to the user’s level by abandoning the term “directory”. Maybe the schmuck thought “directory” had too many syllables in it.

    The problem of inconsistent representations is a big one, and could easily be mitigated (if not entirely solved) by ensuring there’s always an available hierarchical representation of the filesystem location of a given directory. I still haven’t figured out why I need to explicitly open Windows Explorer, in default configuration, to get a hierarchical view of the filesystem while browsing through it; browsing the same stuff by opening My Computer gives you a completely different view, with different behavior. Bad UI design strikes again. Inconsistency not only of appearance, but also of functionality, when there is no reasonable explanation for it, is not good design.

  3. Using Add/Remove Programs

    The unobviousness of linking unwanted software with Add/Remove Programs is largely the fault of the fact that it’s not really a universal software management system. In this respect, MS Windows could definitely learn a thing or two from open source Unix-like operating systems such as any mainstream Linux distribution or BSD Unix system. When you expect all software, by default, to come from your software management system, it makes sense to expect all software to be removed through the software management system’s interface as well — and the exceptions should be fairly clear.

    When you have something like the Add/Remove Programs software management system on MS Windows, though, installation (and all too often uninstallation as well) is handled separately from that interface. As a result, users never really become used to thinking of that as the logical place to check for how to uninstall software. Even worse, trying to use Add/Remove Programs to uninstall software sometimes fails or even breaks the smooth operation of the system in nonobvious ways.

    As for keeping software but stopping it from starting automatically — this is a big issue. I have yet to encounter a centralized, simple interface for managing this sort of thing that doesn’t run afoul of confounding exceptions far too often. FreeBSD, Debian GNU/Linux, and MS Windows are all guilty of this sort of problem.

  4. Installing Bundled Software Hurts

    Yeah. I wish hardware didn’t come with crapware. Even supposed experts like me have been stung by this problem from time to time. This is not something that is a problem because “Non-IT People Don’t Get” it. This is something that’s just a problem, period. In some respects, I guess, it’s a good thing hardware and software vendors rarely write software that runs on something other than MS Windows, because otherwise this problem would exist on Linux distributions and BSD Unix systems as well.

  5. That There Is A Choice Of Software

    I have nothing to add here, other than that it goes far beyond browsers. This was written using Vim in XTerm on FreeBSD. The guy who originally wrote Ten IT Concepts That Non-IT People Don’t Get has probably never used any of those, and probably has some kind of deep-seated belief that, really, he doesn’t have the option of using them — for reasons of some excuse or other.

  6. What Updates Do

    Here, the guy seems to be saying he’s Non-IT People. He seems to be saying he, too, doesn’t know What Updates Do. I really don’t know what to say about that.

  7. Software Licensing

    “We need to put aside a discussion of whether software should be free or not for this one, and let’s just assume that people are happy paying for software for now.”

    Actually, we don’t need to put that aside. I think he utterly fails to understand the difference between open source software and free (as in beer) software. If people are, as he puts it, “happy paying for software”, they can do so even if the software is open source. Certain open source licenses make this sort of thing more difficult than others, and in fact some of them are particularly well suited to corporate monopolistic practices.

    Frankly, software with simple copyfree licenses such as the BSD and MIT/X11 licenses and the Open Works License solve this problem quite neatly. They’re even understandable by people who aren’t lawyers.

  8. What Memory (RAM) Is For

    Yeah . . . that’s a tough one. I can always try explaining, one person at a time, what RAM does — but without getting OS and windowing system developers to make it easier to view information about memory usage, and easier to understand it, there isn’t really a systematic solution to this problem.

  9. How To Use Networking

    OpenSSH is awesome. Everybody in the world should learn how to use it, and every general purpose desktop system should have it readily available. Copying across a network using OpenSSH utilities such as scp would help people start getting a grasp of How To Use Networking pretty quickly, I think. Too bad MS Windows doesn’t want its users to understand that stuff.

    Turning computers off when not in direct use all the time seems to be more of an outgrowth of the penny-ante system architecture of MS Windows, really. The damned thing needs to be rebooted so often one might as well just turn it off every time one goes to the bathroom, just to cover the bases. More stable systems that don’t require regular reboot for things like configuration changes to take effect do not train their users to turn them off just because they’re heading to the kitchen for a cup of coffee.

    Dropbox may be convenient, but I’m skeptical of its security. Also, y’know, it does much the same thing as sshfs — a network filesystem that uses the SSH protocol — except that it’s entirely in someone else’s hands. Not my idea of a must-have tool.

  10. The Display Is Not The Computer

    Do people still have this problem? Seriously?

    Frankly, if things are as bad as the way they’re explained here, I think we’re going to see a lot of people dying as the Singularity approaches just for sheer failure to adapt to a changing world. Maybe we shouldn’t waste too much time on a class of people who won’t survive the next fifteen years anyway.

    Okay, I’m kidding. Mostly.

27 September 2009

Passive Skill Checks, Consistency, and Taking 10

Filed under: Geek,RPG — Tags: , , , , — apotheon @ 09:51

This is part of my RPG series of entries here at SOB. See the inaugural entry in the series for more details.

The night before last, I had a dream that was, I swear, just an excellent Pathfinder RPG session in which the PCs were being pursued by evil NPCs. The imagery of it was as though I was watching the events actually unfold, but the understanding I had in my (unconscious) mind was of player decisions and dice rolls being made, while I was thinking through how to develop the plot. Apparently, I was the GM.

The way things developed was great. It was entertaining, suspenseful, and pretty darned original. I don’t think I’ve ever seen anything like it in literature, film, or RPGs. There’s one weird detail that crept in there — as weird as things ever get in dreams — that I’ll surely leave out, but that didn’t really affect the way the game progressed. It’s good enough that I think I’m going to mine it heavily for use in some later campaign, so I’m not going to go into too much detail about what happened here. I don’t want potential future players reading this then, later, getting ideas about what’s going to happen and ruining the suspense.

Passive Checks

What prompted me to write about this here is something that just kinda came naturally in the course of the “game session”; a way to handle passive skill checks that seems strikingly obvious now, but didn’t really seem that way in the past.

In this dream game session, there was a moment when the PCs were on one side of a small structure of sorts, talking to someone at the front of this structure. The person talking to them seemed helpful and friendly enough, and allayed their concerns fairly readily, at least as pertains to himself. Because of this, there was really no reason to focus any attention on him as a potential source of danger. Their attention was focused more down the road, in the direction whence they had come, and from which they expected pursuers.

Meanwhile, a couple of people who posed a threat exited the other side of the structure and readied themselves to jump the PCs. This structure was small enough that these aggressors’ movements should be subject to an opposed skill check, Stealth vs. Perception. Of course, in cases like this, where the players have no immediate reason to believe they need to make a Perception check, asking them to do so may alert them to impending danger and change the way they have their characters behave. They might start searching things more, ask for Sense Motive checks they wouldn’t otherwise have made, and so on.

Without any sense of having just decided on a “new” way of doing things, I just assumed all the players would Take 10 (assume a roll of 10 and add skill modifiers) on their rolls, since they were not actively using their Perception skills. This essentially turned every PC’s skill into a DC, rather than a roll to oppose the aggressors’ Stealth skills. The aggressors, then, needed Stealth rolls to beat the PCs’ Perception rolls.

The Books Discourage Us

I think the main reason this isn’t something I have been using all along is the fact that, in the D&D 3.0 and 3.5 books, the times you aren’t supposed to use the Take 10 mechanic are much more emphasized than the times you are. The discouragement against using Take 10 at times other than when the suspenseful progression of the story is not at all at stake tends, at least in my case, to influence my natural proclivities so that any time there’s any question, I “disallow” use of the Take 10 rule. I’m gradually coming to realize that this has done me a disservice.

In general, I think the assumption should be to allow it and, beyond that, even to assume it in cases where the players shouldn’t even have a choice in the matter (such as when they might not be aware rolls are even needed). One should really only disallow a Take 10 skill check when one has specific reason to disallow it. This isn’t a question of computer security; it is perfectly acceptable in this case to take a “default allow” approach with exceptions for extraordinary cases, rather than a “default deny” approach with exceptions only when one feels they are quite thoroughly warranted.


I think, in fact, that the Take 10 mechanic is probably woefully underutilized by gamers in general. It should not be used more just for passive checks, where the PCs aren’t actively using a skill, but also for many more instances where an action is “routine”.

For instance, Bards (and other PC performers) almost always end up performing based on a roll, even when they’re just playing for a few coins at the inn — but, in reality, they should almost always be doing things that for them are well within their skill levels’ comfort zones, things that are “routine” for them. If a performer is sufficiently certain of his skill that he believes he can one-up another performer in a contest of skill (think The Pit Fiend Went Down To Ganelonne or something like that), he should just be able to Take 10 on his Perform: Mandolin roll and expect that the other performer with a skill five ranks lower than his own will have to really exert herself and take chances to beat him, thus necessitating a roll that is as likely to result in fumbling the fingering and reducing the overall quality of her results as to have a moment of sublime excellence. Even if she outdoes herself, she may only match his own skill — and how likely is that to happen twice in a row, when it comes time for a rematch?

The Take 10 mechanic is an excellent rule, and I will definitely endeavor to use (and encourage its use) more in the future. It even matches the presumed realities that the rules are meant to capture fairly well, better than just requiring a roll all the time. If you take the “safe” approach, and just Take 10, you know that your performance will be consistently within the range of your general level of skill. That’s really the point of the Take 10 rule, anyway; to actually be competent at something, you have to be able to consistently perform to a given level. Meanwhile, if you take chances you may do exceedingly well, but you may also make mistakes — as in the case of overreaching yourself when playing the mandolin against the kingdom’s Minstrel Laureate in a musical competition, and fumbling the fingering, producing discordant error where you hoped for impressively nimble playing to shame that champion’s legendary excellence.

Keep Things Moving

A nice side-effect is the reduction in rolls to slow down the game. Sometimes, rolling dice heightens the suspense and excitement of the game. At other times, it just slows things down. Don’t be afraid to let it play through without pausing to make a roll for every single thing that happens. Don’t relegate the Take 10 rule to the status of a second-class citizen in your games.

21 September 2009

hostname guilt

Filed under: Geek — apotheon @ 07:15

After about six years, I finally got tired of my (wo)men and monsters of myth and legend theme for naming computers. After Phobos, Deimos, Asherah, Erebus, Kokopelli, Kraken, Fenris, Thoth, Koroni, Tyr, and many others, I’m feeling a little tapped out.

I recently bootstrapped myself a new laptop system, and needed a hostname. As is typical, I didn’t plan ahead for a hostname, and found myself staring at the dialog that asks me to name my computer during the FreeBSD install without any notion of what I was going to call it. I just pulled a corny word out of thin air and figured “It’s just temporary. I’ll change the hostname later, when I decide what it will really be called.”

Today, I got tired of it. The word I had plucked out of the air was kukaburra, which is great an’ all, but it’s neither mythic nor terribly short and easy to type. Worse, I still had the previous laptop running so I could just harvest stuff off it across the network when I decided I wanted something from it, and the old laptop’s hostname is kokopelli. I managed to make the mistake of seeing a nine-letter word with k as the first and third letters, and the seventh and eighth letters being the same, assuming it was kukaburra, and accidentally entering a command into an SSH session on kokopelli. The names were just too similar. Luckily, I didn’t do any damage, but clearly things needed to change.

As I said, I was kinda tired of the same-ol’ method of choosing hostnames. I decided I’d use this to pick my new hostname for this laptop:

#!/usr/bin/env ruby

lines = IO.readlines '/usr/share/dict/words'
count = (rand * lines.length.to_i) - 1
puts lines[count]

I ended up with guilt as the hostname for my “new” laptop, and frankly, I love it. I reserve the right to veto a randomly selected name in the future, and run the script a second time to get a more agreeable word — just in case I end up with something like r or copyright, for instance.

(Note: Your Unix-like system may have its plaintext dictionary file in a different location than mine, if you aren’t using FreeBSD.)

Of course, I decided to use the hostname command to change the hostname right away, as well as editing the rc.conf file so that the change will be “permanent”. I issued the command to change the hostname in a terminal emulator window, and smiled — for about half a second. I suddenly realized I had changed the hostname on kokopelli by accident, because I was using that particular terminal emulator window to do some remote work on the other laptop via SSH.

Yeah. Oops. I changed it back, then changed kukaburra‘s name to guilt. All is now right with the world. I’ll just take this as proof that I made the right decision when I chose to change the hostname today.

Change FreeBSD Hostname

Just in case someone ends up here after doing a Google search for “change FreeBSD hostname”, I’ll explain how it’s done.

To immediately change the hostname (until the next restart) to guilt:

hostname guilt

To set the hostname in rc.conf so the new hostname guilt will apply after a restart, add this line to rc.conf:


To set an FQDN with your network’s domain name (using example as the domain in this case) in rc.conf:

Older Posts »

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License