RAM Speed

Can anyone convince me why Triple-Channel, 1066 MHz memory is better than the 667 MHz sticks in my ancient laptop? You’re not allowed to say “It’s faster” or “There’s more bandwidth,” nor will I be content with seeing technical benchmarks with no relationship to how I use a computer. I’m curious about real-world cases in which I would actually be able to notice the difference and say, “Oh yeah, that memory was slow.”

I recognize that triple-channel, 1066 MHz sticks would be “faster” than old 667 MHz ones, but I can’t recall a time when I’ve ever been bogged down by slow memory transfer. I’m usually waiting on disk, or I just don’t have enough RAM, so discussion of RAM bandwidth feels quite academic and ethereal to me.

Suppose you were given the choice between two computers at the same price: one had 8GB of RAM at 667 MHz, and the other had 6GB of triple-channel, 1333 MHz RAM. Is there a case when you would choose the faster memory over the one with more memory? Why? How much of an improvement would you see?


I was thinking a bit about those who cry “Socialism!” to all sorts of modern proposal. Besides the fact that those who know what they’re talking about seem to define Socialism as more than “the government spending tax dollars to help people,” it always seemed that, if that’s what socialism is, we have plenty of it. Here are some things that I’m pretty sure could be argued to be to socialism:

  • Libraries
  • Fire departments
  • Police departments
  • Paramedics (and hospitals)
  • Public schools
  • The military
  • The Post Office
  • National parks
  • Student financial aid
  • Highways, bridges, subways

That’s just off the top of my head. I’m sure there are a lot more.

The New Copyright

After reading a lot about DRM and what the RIAA and MPAA are doing to make sure you don’t share your music or videos, I began to wonder: why are libraries legal? The whole concept of a library is that you buy one copy of a book and share it with lots of people, so they don’t all have to buy a copy. (Additionally, the government does this. That’s socialism, at least by today’s political standards.)

Today, a coworker downloaded a technical videocast. It looked helpful, so I asked if he could send it my way when he was done with it. He hesitated, before telling me that he wasn’t sure if it was kosher. And he’s right.

But I’m conflicted on whether this makes sense. In “modern times,” it seems very reasonable. He bought it for his use, so sending it to me would be ripping off the video company and committing copyright infringement. On the other hand, that’s not at all what’s going on. I wanted to watch it when he was done, just like I’d borrow a DVD when he was done watching it, or just like I’d read the book when he was done. Even if he had sent me a copy and we both watched it on separate computers at the same time, is it really any different than putting the DVD on in the conference room?

The same author has an excellent e-book manual. I think I’d like to borrow it, but I’d also like to share it. It’s the same concept as the videocast, though: I don’t want to email it to the whole office and all my friends, I want to put it on a virtual bookshelf so my coworkers can grab it when they need it. Sending a copy of the book to them seems illegal and unethical, but buying a book and bringing it in so everyone in the office can borrow it doesn’t.

It’s just interesting to look at how things compare between digital and hardcopy material. And two questions that I mean more to spur thought than to get answered:

  • I own software that I lawfully purchased. I have the DVD for Windows Vista on my desk, for example. If I were to go to a filesharing site and download a copy of Windows Vista (but not participate in uploading), am I committing a crime? Am I doing something unethical?
  • Suppose the concept of libraries somehow didn’t exist in America, and President Obama proposed having the government buy media to be stored in each town so that Americans wouldn’t have to buy it, but could just borrow copies free of charge instead of buying them. Can you imagine the reaction?

Dressing Up

We have a casual dress code at work. (Or, more accurately, we have no dress code, because we have no HR bureaucracy.) Some days I’ll wear a button-down shirt or sweater, but when it’s warmer I usually wear jeans and a T-shirt. It’s totally normal.

I don’t even know how it started — the people involved in starting it have moved on — but sometimes people wear ties on Thursdays. It started for some sensible reason, but then it just became a tradition. By the time I came along I didn’t even know why we did it. Not everyone participates, and it’s not an official company thing.

I haven’t participated in a while, so today I decided to go for it. But it’s sort of like giving a moose a muffin*: if you’re wearing a tie, you need a nice dress shirt, and if you’re doing a nice dress shirt, you’ve got to have dress pants and dress shoes, and if you’re going that far you might as well break out the sweater-vest and pocketwatch.

I happened to see a lot of my friends today, and all of them asked why I was all dressed up. The conversation went like this every single time:

“Why are you all dressed up?”
“It’s Thursday.”
“What does that mean?”
“Thursday is tie day.”
“Why not?”
“So you got dressed up for no reason?”
“Well, just because it’s tie day.”
“You’re weird.”

Nitpicking Computers

One thing I like about Ruby is that it’s usually less nitpicky than some other languages I’ve used. Sometimes tiny little differences with computers are really important, and people programming should really have a mastery of those things. But sometimes the computer is just being petty.

Here’s one that ticks me off every time, though. Let’s say I do something really simple, like look up all the rows matching a simple criteria. I then call .each on the result, to iterate over them.

But there are actually two pet peeves in one here:

  • If you get back no results, you often end up with the variable being nil. And calling “nil.each” blows apart. Sometimes this makes sense and you really need to handle nil results specially. But very often, I couldn’t care less. I said to look something up and, for every one you found, do something with it. That works if you found 0 results, too: you do nothing. If I asked you to go through your refrigerator and, for every blue apple you found, put it on the table, and there were no blue apples in your refrigerator, I’d expect you to shrug your shoulders, put no blue apples on the counter, and briskly walk away thinking I was kind of weird. I wouldn’t expect you to keel over and die because there were no blue apples.
  • If you get one result back, it’s not always an array. Sometimes it is, and .find seems to give you an array like a good citizen. But I very often have to write dumb code that checks to see if what’s coming in is an array and, if not, puts it inside a new one-item array. This is dumb. Really dumb. (And you used to be able to blindly cast anything to an array, and Array.to_a was smart enough to not end up with an array inside an array. But that’s been deprecated.)

I’m sure the purists will argue that there’s some magical way that’s The Right Way, or explain why adding a no-op method to nil is bad and why Base.each would be unthinkably bad. But “take a group of things and iterate over each thing” is one of the most basic things you can do in any language, and it’s fantastically dumb for me to have to handle “special cases” of there being 0 or 1 things.


Here are a list of songs I have recently played at work to help me achieve flow:

It occurs to me that this seems a bit warped. Not because of the type of music I enjoy (people listen to a lot crazier stuff), but because it’s what I listen to to concentrate. Some sort of calming piano is exactly what I don’t need: it simultaneously puts me to sleep and helps my mind wander ten times worse than usual. But for some reason, my mind has no trouble focusing while Daft Punk blares at full volume, yet it has the hardest time in the world concentrating while I sit in a silent room. Someone tell me I’m not crazy.

The Wonderful World of Science Papers

I have a sickly Areca Palm tree. I’ve been having a hard time diagnosing what’s wrong, but I’m pretty confident that the cause isn’t something simple like overwatering or underwatering. There are various types of fungus that can cause rot, and winter’s supposed to be the hardest time for palms. I have no idea what it is, but there’s a little bit of something questionable on the soil, which I’m thinking may be spores of something harmful to the plant.

I’ve asked the pros for help identifying what’s going on, but in the meantime dreamt up a potential solution. My hypothesis is that Windex will be a moderately-acceptable fungicide in the absence of any data on what is going on. It seems like it would be harmful to any living thing, but it also seems that a light dusting of Windex spray on the soil would be insufficient to kill a three-foot-tall palm.

I was searching to see if I could find any supporting documentation for my crazy idea. I wasn’t having much luck. What I did find is the real point of my post.

I found this 1999 paper, complete with some misspellings or typos. They concluded that .5 mL of Windex on a young (unidentified) plant was detrimental, and that 1 mL of Windex was fatal to another unidentified plant, but that both were very young seedlings, and that the one that was just given water did well. This supports my “Windex is probably harmful” theory, but doesn’t give me nearly enough data to know whether a couple of sprays of Windex onto the soil on a big plant will harm the plant itself or not. It also confusingly blends with their other experiment, using soapy water instead of Windex. They do suggest that the ammonia in Windex seems to have dried the soil much faster than soap or water. (Which is good because I also wonder if I have root-rot, which perpetually-damp soil will aggravate.)

I looked around some more and found this paper. The writing style screamed of something written for a science class, and didn’t really sound like a college paper. I read it more and gathered that it was a 4th grade science project. I actually found it more useful than the college paper, if only because it gave more details, despite statements like, “The plant with no squirts [of Windex] is doing fine. The next day the plant with no squirts is still doing fine.” It seems to suggest that the plants they were using, which I infer may have been pepper plants, were more resilient than whatever was used in the college paper. (Of course, the same science class has this page with data that suggests potted seeds will germinate better with no light than fluorescent lights.)

So I was poking around some more, and found another relevant thread. It turns out it’s on a marijuana grower’s forum. That seemed slightly encouraging, since a marijuana plant is probably closer to the size of my palm tree than the plants used in those experiments. So I was hoping to see Windex discussed as a poor man’s fungicide. Instead, I burst out laughing as people running marijuana grow labs* cited the same 4th-grade science project I’d found earlier.

* I actually have no idea if they were running a giant “grow op” or were just recreational pot smokers, but the former is a much more entertaining notion.

I’m unable to find anything better than those two papers, though. Frustrated with having no answers to that or my questions elsewhere about what might be wrong with my palm tree, I decided to take science into my own hands, and sprayed a light mist of Windex onto the soil. I won’t get much good data out of it, though, since I have only one plant that seems to be declining. If it does better, the Windex may have worked. If nothing happens, the Windex may have had no effect, or may have had an effect I can’t see. If the plant dies, it may have been the Windex, or it may have been the fact that there seems to be a rapidly-growing fungus.

The marijuana forum did point out that Windex is ammonia-rich, and that ammonia is used as a fertilizer. Although I’m pretty certain that doesn’t mean that Windex is good for plants, given that it contains a lot of other chemicals.


Sometimes software usability gets painted as silly things like having a panel of people decide how a button should look. But in reality, I think it’s critical to having your software not feel like it was designed by an engineer.

At work, for example, we have a page with a JavaScript popup that warns that you’re trying to navigate away and that, since you haven’t saved your content yet, everything will be lost if you continue. Really obvious to me, and probably to you. But in usability testing, we discovered, quite by accident really, that some people would just blindly click “Continue” anyway, not reading the message or having any idea that their changes weren’t being saved. It was somewhat frustrating to us as developers, but really informative into how “normal people” interact with the web.

Sometimes sites can be pleasantly easy to use, though. I just tried to delete a set of photos on Flickr, but panicked, realizing that I wanted to delete the set itself, but not the photos that comprised the set. As a developer, I assumed that a “set” was nothing but a container for photos and that it was a safe action, but I couldn’t be sure how they implemented it. But the confirmation message couldn’t have been clearer:

Flickr's Really Clear Message

There’s something to be said for an interface — and the copy that goes along with it — that’s so easy to use that you don’t really have to think.

Antique Technology and Near-Antiques

The other day I uploaded some old photos of FIRST to Facebook. One depicts a floppy being used. And then today I drove by a Hollywood Video store overgrown with weeds, with signs indicating that it was for lease.

This got me thinking about how many things I’ve used that are already obsolete, and how bizarre it is that kids in school now have no concept of some of these things.

  • If we wanted to move documents between computers, we had to use floppies, which held 1.44MB, were unbearably slow to use, and were ridiculously error-prone.
  • The only way to connect to the Internet was by dialing into an ISP over a telephone line. Modems were “56K” but 33.6 kbps was the realistic maximum I ever got — that’s about 4KB/sec. Since it was a phone line, you couldn’t stay online for too long or you’d miss incoming calls.
  • Email was really only over POP, which required that you download each message in full. Downloading the message removed it from the server. Periodically someone would send you a big attachment and it would require that you sit around forever and wait for it download at 4KB/sec.
  • Cell phones did not exist. We had landline telephones, and that was it. Some people had cordless phones in their house.
  • There was no wireless access. You had to plug your computer into a wired network in your house if you had one. You had 10 Mbps drops with goofy BNC connectors, and used hubs, which would just blast the signal out all ports, so two people transferring a lot of data would take the whole network down. Laptops were good for word-processing on the couch or something.
  • We ran Windows NT 4 as a desktop because it was so much more stable than Windows 95 — it only crashed a few times a week, as opposed to every few hours. We could have bought a Mac, but they were even worse. Linux was incredibly immature and would have taken hours to compile a kernel, and we’d be lucky if graphics worked. So NT was really the best OS out there, unless you wanted to play games, when you’d have to reboot into Windows 95, where you’d exit to DOS to play the games.
  • TV was a terribly crappy signal and it was hard to make out any details, but none of us knew it because HD video hadn’t been conceived.
  • Music came on cassettes. There were no CDs, and there certainly wasn’t iTunes. (And there was no such thing as peer-to-peer sharing of songs, because if you copied a song to your computer off of a cassette, it’d probably have been a WAV file and taken hours to transfer.) Over time they’d degrade and start to sound worn, and for some reason all the tape inside always came out like spaghetti, forming a giant tangled mess, forcing you to just throw the thing out and buy a new one.
  • Movies came on VHS tapes, which were huge cassettes. They had all the same problems.
  • There were stores, which were quite popular, that just rented VHS tapes so you could watch movies at home.
  • If you wanted to listen to music on the go, you could get a Walkman, which was a cassette player with an AM/FM radio. Most people kept a bunch of cassettes in their car.
  • There were payphones outside of stores so you could make phone calls if you were out and about.
  • GPS was meant for the military and the accurate signal was encrypted. There was a signal accurate to a few hundred feet (look up “Selective Availability”) that civilians could use with store-bought GPSs, but between Selective Availability and the fact that there was no way to store much map data on a portable device, they had no navigation capabilities, other than on boats and airplanes.

Here are some things that we still use, but that I’m pretty sure, in a decade’s time, will have moved up to the above list:

  • Computers used to store files on hard drives, which had metal platters inside, spinning really fast. An arm would store and read data on the platters. People wanting better performance would get drives that spun faster. There was a big problem with “seek time,” where it took a noticeable amount of time for the head to find the right point on the right platter. You needed to use a “defragger” to make sure your files were stored contiguously; otherwise the seek time would be multiplied many times and transfers would slow to a crawl. And moving the disk while it was running made a “head crash” very likely — the head make contact with the platters and leave a big scratch, destroying it in a split-second.
  • People used to have “newspapers” delivered to their homes. (It saddens me to think that this will make the list.) Instead of looking online, people would have a printed copy of the day’s news delivered to their home every morning.
  • People used to have “landline” phones, which were run to their homes over copper wiring.
  • People used to have “answering machines,” which were like a voicemail machine hosted client-side.
  • Radios used to be unencrypted, so you could listen to the police and fire departments with a receiver called a “scanner.”
  • TV and broadcast radio used to be unencrypted, so you could record a show without DRM and use it as you liked.
  • Our cars used to run on gasoline, which they’d spray in a fine mist into an engine to explode, which is how cars ran. You’d have to fill your car up every week or so, and it cost as much as dinner for your whole family at a restaurant. All of that money went overseas to a giant cartel that people suspected was complicit in financing terrorism.
  • Teachers used “overhead projectors,” which would run light through a “transparency” (like a piece of paper, but with clear plastic instead of opaque paper) to illustrate things to their students, instead of running their computer into a projector.
  • You used to be able to call a company and have a human pick up the phone.

What’s especially interesting to me is that this the technology that I remember using. This isn’t the stuff that my parents might have used, like typewriters, VT100s, record players, and black-and-white TVs. Much of this is stuff that we still have kicking around in our house.

What technologies am I overlooking?