Friday, March 26, 2010

Watch where you put the ejector seat button

Jeff Attwood explains, as only he can, Fitts Law.

What I like about this post is that he uses Google's Gmail and's post editor as examples. The former as bad and the latter as good. Both of these I use regularly.

While what Jeff says about these interfaces is correct according to Fitts Law, I would ask him - why so clumsy with the mouse? Click what you mean to click... I kid of course.

In defense of gmail, the buttons are all large and clearly marked. Though I can see where having Archive as a button and Report spam as a smaller less easy to click text link would make miss clicks harder.'s counter example of the Publish button vs. Move to trash illustrates this point beautifully.

Having said all that, I'm sure I'll miss click for weeks on end now.

Monday, March 22, 2010

199 out of 200 programmers can't program?

Can it be that 199 out of 200 programmers can't program?
"Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can't write code at all. I repeat: they can't write any code whatsoever."
Maybe so. What if you could screen them by watching them type a program over the web? Now you can with See[Mike]Code (not this Mike). Use this while you talk to the candidate over the phone... Nice.

Jeff Atwood explains how this works. The recommendation is to keep it short - the program you ask for should be about 10 lines long. You'll be amazed how many are stumped.

Thursday, March 11, 2010

finding aging disk hogs in a linux environment

Here's a common problem - I'm working along running tests and bam, disk is full - all running tests fail when the simulator can no longer write to disk. I won't get into the cost benefit analysis of simply adding more disks to the project - that's not my thing. I'm going to talk about how to find old directories so that the owners of those directories can be prompted to delete stuff they don't need.

In this case, I've decided to find directories in two categories:

  • directories older than 60 days
  • directories older than 30 but less than 60 days.

Looking through the interwebs I found that there are many examples of how to do some of this but no full example. Here is what I came up with:

find <start path> -mtime +60 -type d -maxdepth 1
  | grep <directory of interest> | xargs du -bs |
  sort -rn"

The above uses find to look for directories under "start path" whose age is 60 days or more (technically counting from yesterday). Note that mtime is "modified time", which for directories is loosely the time it was created. This is especially true when that directory is at the top of a large tree. The find result is piped through grep to narrow it down to directories I know contain lots of data. This in turn is piped to du to count how much data and finally to sort to reverse order the list.

To find data between 30 and 60 days, simply replace the -mtime 60 with:
 -mtime +30 -mtime -60

In projects that take many months, like ones I work on, there are many people who, for whatever reason, some legitimate some less so, keep data around for what seems like long after it is useful. These commands, which stand on other find examples I came across, help me determine who owns the oldest and largest data.

Now if only this was actually my job!

Tuesday, March 09, 2010

computer build parts list circa 2010

Doing a "build" for a friend. Looking for good price/performance trade offs. Also, "come in around $700" was the request. To save $$$ went with a core i3 instead of core i5 and put that savings back into an SSD.

Here is the build:
$125 Intel Core i3-530 Clarkdale 2.93GHz 4MB L3 Cache LGA 1156 73W Dual-Core Desktop Processor (link
$125 ASUS P7H55D-M EVO LGA 1156 Intel H55 HDMI USB 3.0 Micro ATX Intel Motherboard (link)
$195 Crucial CT64M225 2.5" 64GB SATA II MLC Internal Solid State Drive (SSD)  (link) - OMG blazing fast, good price
$15   StarTech BRACKET25 Adapter Kit to Mount 2.5" HDD in 3.5" Drive Bay - required adapter for SSD (link)
$121 Kingston HyperX 4GB (2 x 2GB) 240-Pin DDR3 SDRAM DDR3 1600  (link)
$85   Thermaltake TR2 TRX-650M 650W ATX 12V  (link)
$40   COOLER MASTER Elite 341 RC-341C-KKN1-GP Black (link)
$109 LG Black 10X BD-ROM 16X DVD-ROM SATA (link<

WIFI card: $34
2nd HD   : $39  Good for storing your personal (non Operating system) data, rather than using your primary HD for that. This keeps the PC fast longer.

You told me about an old drive you wanted to transfer data off of from a different computer. Get one of these to do that: Bonus: you get to use this enclosure to do backups!

Since you said you might want to hook it up to your TV, I changed the drive from just DVD to a Bluray/DVD drive. It costs more, but plays Bluray HD disks as well as being able to burn DVDs and of course read DVDs/CDs. You could save $75 by switching back to the just DVD drive.... Note that the case chosen is not exactly ideal for living room use...

Finally, you said you might want a new screen. Here is a reasonable screen for $160. What I like about this one is that it has built in speakers - one less thing on your desk!

I think this would be a pretty good machine for windows7 or linux. What do you think?

Saturday, March 06, 2010

Money buys change, and trumps reason, again

I'm not surprised that the main financial backers of many of the new Wake County School Board members are themselves in the business of running private schools.

Seems, times aren't changing at all - money buys change and trumps reason again.

From the ISS report (each number is a link to supporting information):
Rank of Art Pope -- primary Civitas benefactor and director of Americans for Prosperity, the group behind the Tea Party anti-tax protests -- among individual contributors to the anti-diversity candidates' campaigns: 2
Rank of Robert Luddy, current chair of Civitas and operator of a chain of private and charter schools: 1
Year in which Luddy founded Thales Academy, a chain of private K-8 schools in Wake County:2007
Year in which the chain opened an academy in Apex, N.C., with current Wake School Board Chair Ron Margiotta serving as a trustee: 2008
I sigh in Wake County's general direction.