Thoughts from the office by Ed Ball
Tuesday, May 09, 2006

The book that I’m currently reading is chock-full of some of my biggest typographical pet peeves.

Am I the only person who  notices when an extra space is used inadvertently between two words of a sentence? Even the grammar checker in Microsoft Word is kind enough to let you know when you make this mistake. It really drives me crazy; I seem to find doubled spaces everywhere I look. (Did you notice the doubled space in the first sentence of this paragraph?)

Speaking of doubled spaces, please don’t type two spaces after the closing period of a sentence. The Elements of Typographic Style (and Bill Hill!) back me up on this one. I know that your typing teacher told you to use two spaces. I don’t doubt that typing teachers are still teaching two spaces, but that doesn’t change the fact that it’s wrong. (Don’t use two spaces after a colon, either.)

One more – when typesetting source code with a fixed-width font, please don’t use ligatures. (Notice the “fi” – that should be fixed-width font.) I don’t understand why any fixed-width font would support ligatures anyway – doesn’t that violate the idea of letters being a fixed width? Of course, the easiest way around this problem is to stop using fixed-width fonts for source code – it reads a lot better in a normal font, anyway. On screen, 10pt Verdana is the best font for reading and editing source code that I’ve found; I’m sure a similar font would look great in print.

Update: David (a coworker) reminds me that there are books in print that use variable-width fonts for source code, most notably The C++ Programming Language (3rd Edition) by Bjarne Stroustrup, which uses an italic roman font, and Effective C++ (3rd Edition) by Scott Meyers, which uses a sans-serif font like Verdana. I found both to be more readable than the standard fixed-width Courier, particularly the latter.

Update 2: Speaking of source code, don't let your word processor or typesetting software make any helpful character substitutions. For example, I don't know of any programming languages that allow “smart quotes” around "string literals".

Update 3: Al prefers double spaces after full stops and colons, and asked that I quote the relevant passage from The Elements of Typographic Style:

2.1.4  Use a single word space between sentences.

In the nineteenth century, which was a dark and inflationary age in typography and type design, many compositors were encouraged to stuff extra space between sentences. Generations of twentieth-century typists were then taught to do the same, by hitting the spacebar twice after every period. Your typing as well as your typesetting will benefit from unlearning this quaint Victorian habit. As a general rule, no more than a single space is required after a period, a colon or any other mark of punctuation. [...]

5/9/2006 7:54:08 AM (Pacific Daylight Time, UTC-07:00) | Comments [2] | Misc#
Tuesday, June 07, 2005

As you may have noticed, I'm in the midst of a serious blogging lull. On the business front, we're pushing hard to ship the next version of our flagship product; on a personal front, I'm in the complex process of buying a new home, selling an old one, and moving all of our stuff from one to the other, not to mention wrapping up loose ends with the people and places we're leaving behind. We've got a busy summer ahead as well, but I do hope to get back into the blogging pattern again soon. I've still got books to review and plenty of JavaScript stuff to talk about...

6/7/2005 10:57:38 AM (Pacific Daylight Time, UTC-07:00) | Comments [1] | Misc#
Wednesday, October 13, 2004

Most of my readers already have Gmail accounts, I'm sure, but if you don't, and you'd like one, just drop me a note and I'll send one your way.

10/13/2004 2:58:56 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Friday, July 09, 2004

I’m definitely not happy with my definition of “100% shorter” from last time. After all, if “100% longer” means “twice as long”, shouldn’t “100% shorter” mean “twice as short,” which is “half as long”?

To figure this out, let’s use “inverse-inches.” So if our rope is 60 inches long, it is 1/60 inverse-inches short. “100% shorter” is thus 1/60 + 1/60 = 1/30 inverse-inches short, or 30 inches long:

  • 50% shorter – 1/60 + 1/120 = 3/120 inverse-inches – 40 inches
  • 25% shorter – 1/60 + 1/240 = 5/240 inverse-inches – 48 inches
  • 75% shorter – 1/60 + 3/240 = 7/240 inverse-inches – 34.3 inches
  • 200% shorter – 1/60 + 2/60 = 3/60 inverse-inches – 20 inches
  • 300% shorter – 1/60 + 3/60 = 4/60 inverse-inches – 15 inches

Now “200% shorter” is the same as “three times as short” (as described last time), which works the same way as longer/long, so I think we’ve got it. Still, it’s not exactly obvious.

In any case, length is obviously not the only measurement that this applies to; some of these seem more sensible than others:

  • half as young is twice as old; twice as young is half as old
  • half as many is twice as few; twice as few is half as many
  • half as wide is twice as narrow; twice as narrow is half as wide
  • half as big is twice as small; twice as small is half as big

(Of course, “big” has its own problems – what’s “twice as big” as a 13-inch television? Shall we double the lengths of the sides, the length of the 13-inch diagonal, the area of the screen, or the volume of the box? We’d need to be more precise.)

This stuff actually makes more sense when we use ratio measurements, as with our original measurement of speed. We measure how fast something is by measuring how many tasks are accomplished in an amount of time, e.g. miles per hour – bigger numbers are faster. To measure how slow something is, we measure the inverse, which is how much time it takes to do a number of tasks, e.g. seconds per lap – bigger numbers are slower.

So, if my task took 20% less time, then a previously 100-second task would now take 80 seconds. To measure how fast the task is, we invert the measurement – I improved the speed from 1/100 tasks per second to 1/80 tasks per second. In decimal, that’s 0.01 tasks per second to 0.0125 tasks per second. That’s an improvement of 0.0025 tasks per second, which is 25% of 0.01, so we’d say that the task runs 25% faster.

Ouch. My brain hurts. Since I’d have to justify why shaving 20 seconds off of 100 is “25% faster”, I should probably stick with “20% less time.”

In summary then, we should probably avoid using phrases that would require us to invert our preferred form of measurement. Even “150% longer” can be confusing (it means 2.5 times the length), so you might avoid phrases like that as well. Stick with language that is clear and unambiguous.

7/9/2004 11:11:51 AM (Pacific Daylight Time, UTC-07:00) | Comments [1] | Misc#
Thursday, July 08, 2004

I had just optimized some code, and was about to say that it was “20% faster” when I realized I wasn’t really sure of what that meant. I said “takes 20% less time” instead, but now I have to know – what is “20% faster”?

(This may seem silly, but there’s a practical side as well. You find these kinds of measurements all over the place, particularly in product marketing. Just Google some of these phrases and see for yourself.)

Let’s start with something that seems obvious: length. If our old rope is 60 inches long, this is how long the new rope would be, depending on how we describe it:

  • as long – 60 inches
  • twice as long – 120 inches
  • half as long – 30 inches
  • three times as long – 180 inches
  • one-third as long – 20 inches

Makes sense, right? What if we use the word “longer” instead of “as long”? That is, how long would the string be if it was “200% longer”? Twice as long, i.e., 120 inches? That seems reasonable, until you consider what “50% longer” would mean:

  • 50% longer – 1.5 times as long – 90 inches
  • 100% longer – twice as long – 120 inches
  • 200% longer – three times as long – 180 inches

Let’s make things a little more complicated. What about the word “short”? How long would the string be if it was “half as short”? That’s a tough one. Many people would use that phrase if they thought that the old rope was “short” already, and they would mean that it was “half as long,” i.e., 30 inches. But what if we said it was “twice as short”? That’s got to be “half as long,” too.

The difficulty here is that we don’t have a number that gets bigger as the rope gets shorter. The only logical thing to do is to make “short” the inverse of “long”:

  • as short – as long – 60 inches
  • twice as short – half as long – 30 inches
  • half as short – twice as long – 120 inches
  • three times as short – one-third as long – 20 inches
  • one-third as short – three times as long – 180 inches

Those figures just seem weird, so it would probably be best to avoid that usage. Of course, we wouldn’t be done unless we considered “shorter.” How long would the new string be if it was “50% shorter”? We’d better just subtract that percentage from the original length:

  • 50% shorter – 30 inches
  • 25% shorter – 45 inches
  • 75% shorter – 15 inches

By that logic, “100% shorter” wouldn’t make much sense, since it would be 0 inches. “200% shorter” makes even less sense. Again, you probably want to avoid using “short” or “shorter” when describing relative measurements.

Well, that’s all for now. Tune in next time for the next exciting installment of “Relative Measurements in English,” where we’ll discuss other forms of measurement, and finally decide what “20% faster” really means!

7/8/2004 4:53:46 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Saturday, January 31, 2004

If you enjoy trolling for good technology deals, and you have an OfficeMax nearby, I would recommend checking out their in-store specials once a week. Presumably to entice you into the store to buy stuff that isn't so cheap, they do a pretty good job of pointing out the really good deals, which generally involve a combination of instant and mail-in rebates. Mail-in rebates aren't as nice as instant rebates of course -- not just because you have to mail them in, but because you have to pay sales tax on the higher price -- so always keep that in mind.

Anyway, an example of the deals this week, most amazing first:

  • $50 for a 120GB Western Digital hard drive
  • $40 for a 256MB USB Flash Drive
  • $10 for a 64MB USB Flash Drive
  • Free memory card reader
  • Free 3-pack of VHS tapes
  • Free CD/DVD/VHS tape rack
  • Free 50-pack of CD-Rs
  • Free caller-id telephone
  • Free surge protector
  • Free RCA remote control
  • Free Ethernet card
  • Free 100-pack of jewel cases
  • Free 6-foot extension cord
  • Free CD cleaning kit
  • Free 10-piece tool kit

There's even more free stuff I didn't mention, and none of it is truly free, in that you have to send in your mail-in rebate and wait for it to arrive, and you don't get your sales tax back.

Now, I don't recommend you go out and get all of this stuff. But if you could use a 120GB hard drive, $50 is a pretty amazing deal (I bought the same drive from Circuit City a few months ago for $60 after rebates). If you don't have a USB Flash Drive yet, you really should grab the 64MB drive for $10; it's great for moving data from one machine to another without needing to burn a CD (I bought mine back when OfficeMax had a 128MB drive for $20). I'm tempted to get the memory card reader so that I don't have to plug my digital camera in to get pictures out...

1/31/2004 12:33:33 PM (Pacific Standard Time, UTC-08:00) | Comments [1] | Misc#
Thursday, January 08, 2004

I finally read Eric Sink's article Make More Mistakes. It's a great article, and helps explain why an entrepreneur I'm not. I probably wouldn't “fold with four jacks when the opponent has a possible straight flush,” but you never know... I have great respect for entrepreneurs, though, and I'm particularly thankful for the risk-taker that pays my salary.

1/8/2004 2:35:14 PM (Pacific Standard Time, UTC-08:00) | Comments [0] | Misc#
Thursday, December 04, 2003

I've got an old Dell Dimension that I'm not ready to replace, so I've been upgrading it here and there. One problem with the machine is that it only has one 5.25" slot for a CD drive (hey, it was a bargain), so I had to replace the original CD drive with a CD-RW a while back so that I could start backing up my data. Trouble is, I've never been entirely happy with my CD-RW -- it burned CD's quite well, but had trouble reading any CD with a really big file on it. I don't know why, and their technical support never really believed me. In any case, I decided to upgrade to a CD-RW/DVD combo drive to improve the situation and get DVD support at the same time! Okay, enough backstory...

So I slap the drive into the box, turn it on, and it hangs at the Dell logo. Uh-oh. Shut it down. Make sure everything is connected right. Check the BIOS settings. Start scouring the Web. Google. The drive manufacturer. The drive distributor. Dell support, faq, knowledge base. My fourth attempt to figure out the right search keywords at the Dell community forum finally struck gold. Somebody with the exact same problem I had with the exact same drive (Samsung SM-352 DVD/CD-RW, distributed as I/O Magic 52x24x52 Internal IDE CD-RW / 16x DVD Combo Drive, purchased from CompUSA, in case anyone is Googling for a solution to the same problem).

There's something comforting about knowing that someone else out there has your exact same problem, even if they didn't find a solution. Fortunately, this person did. As it turns out, the machine wasn't hung, the BIOS was just taking upwards of two minutes to figure out that drive at every boot cycle. After I let it sit for long enough, it booted and everything was fine. The post recommended upgrading the BIOS, and that worked. (Okay, so maybe upgrading the BIOS was an obvious solution from the start -- I'm not much a hardware guy.)

So, I'm happy. And reminded yet again that non-technical people don't have a chance when it comes to installing hardware -- of course, they're probably smart enough to know that. :-)

12/4/2003 12:12:22 PM (Pacific Standard Time, UTC-08:00) | Comments [0] | Misc#
Thursday, October 30, 2003

Happy 0th Birthday to Rebecca Lily Ball, born Tuesday, October 28, at 4:45 p.m. Praise God for healthy and happy mom and baby!

10/30/2003 11:37:27 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Friday, October 03, 2003

FoxTrot update for .NET:

class App
{
  static void Main()
  {
    for (int count = 1; count <= 500; count++)
      System.Console.WriteLine(
"I will not throw paper airplanes in class.");
  }
}

http://www.ucomics.com/foxtrot/2003/10/03/

10/3/2003 8:25:02 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Monday, September 15, 2003

One of the frustrating things about software development is that we cannot measure productivity [Martin Fowler]. This makes things difficult for management, of course, but it even makes it difficult for me as a programmer to know how productive I've been. Each Friday I look back at the week, consider what I accomplished, and it often seems as though I could have been more productive. But it's hard to know for sure; if I'd have worked smarter, or harder, or whatever, could I have "measurably" enhanced my productivity? It also makes motivation difficult at times; my boss knows that productivity is hard to measure accurately, so I could probably get away with a lot of slacking before he'd notice... So, I think I agree with Jon Galloway that a good work ethic is the best that we can hope for; maybe I should stop writing this blog entry and work on mine...

9/15/2003 10:25:30 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#

I've always been particular about making sure that I spell words correctly; I even have "automatic spell-checking" for when I send an e-mail, just in case. Unfortunately, bad spelling doesn't appear to make words any harder to read.

9/15/2003 10:08:28 AM (Pacific Daylight Time, UTC-07:00) | Comments [1] | Misc#
Friday, September 12, 2003

A number of my favorite bloggers have taken an online Myers-Briggs personality test. I've always thought Myers-Briggs was at least entertaining and sometimes useful; my wife and I both took the test in college during premarital counseling, and it helped us understand ourselves and our relationship a little bit better.

Anyway, I took the test and got the same result as I did in college: ISTJ.

  • moderately expressed introvert (56%)
  • slightly expressed sensing personality (11%)
  • very expressed thinking personality (100% -- yikes!)
  • distinctively expressed judging personality (67%)

Of course, the more often you take the test, the more you wonder if the "right" answer comes too naturally. I may be becoming closer to an INTJ as time goes on; I did get that result once, and my "sensing" is certainly my lowest score...

9/12/2003 9:00:08 AM (Pacific Daylight Time, UTC-07:00) | Comments [6] | Misc#
Tuesday, September 09, 2003

Way back in September 1992: http://www.ucomics.com/calvinandhobbes/1992/09/07/

When I compare the rubbish on TV these days compared to the rubbish on TV ten years ago, it's clear that good taste hasn't bottomed out yet.

9/9/2003 8:00:19 AM (Pacific Daylight Time, UTC-07:00) | Comments [1] | Misc#
Monday, September 08, 2003

Why do I insist on spelling hierarchical with an "ei"? If not for spell-checkers, I'd probably never get it right.

9/8/2003 4:05:05 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Friday, September 05, 2003

Does anyone know why the default long date format for Windows includes a leading zero for the day, e.g., September 05, 2003 instead of September 5, 2003? One of the first things I do after I install Windows is head over to Regional and Language Options under Control Panel and change the long date format to "dddd, MMMM d, yyyy". Is the leading zero more correct in some way? I've certainly never written dates that way...

9/5/2003 8:25:07 AM (Pacific Daylight Time, UTC-07:00) | Comments [1] | Misc#
Tuesday, September 02, 2003

I'm not entirely sure where I stand on software patents. I especially don't like patents on things that seem obvious -- but don't most innovations seem obvious once you get used to them? Imagine if a patent made it necessary for Microsoft to remove ActiveX support from Internet Explorer, for example...

9/2/2003 11:54:37 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Tuesday, August 19, 2003

"Everybody" is linking to the Career Calculus article by Eric Sink. It's basically an argument for taking every opportunity to learn new stuff while in the development profession, an argument that I agree with wholeheartedly.

Special thanks to Bob for always being willing to provide me with the latest information on technology, be it books, magazines, or surf time.

8/19/2003 4:35:10 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Misc#
Search
Archive
Links
Categories
Administration
Blogroll