Joe Edmonds Blog



My Other Pages

Job alerts powered by ZipRecruiter

Fri, 28 Jan 2011

Reducing Chrome Power Usage in Linux

I'm running ubuntu maverick on my ASUS U35F. It's got a couple problems (LCD screen viewing angle is right out of the 1990s, no nvidia graphics because they only offer the jury-rigged and linux-incompatible "Optimus", no CDROM drive -- I used to care about this; somebody remind me why) but it's fast & quiet, has plenty of RAM and hard drive space, and it has phenomenal battery life. Like you can use it during the whole flight ... to Korea.

That is, it will last the whole flight if you're careful. What's the best way to manage power usage in linux? Powertop. What causes the most problems for a web browser tab-addict like myself? Unsurprisingly, Adobe's flash player ("npviewer.bin") and the resource-hungry applets people create therein. So how do I track down the obscure pages where flash is doing nothing but wasting battery? (the AWS login page, anyone?!?) Press shift-escape to open chrome's awesome task manager, then scroll down to "Shockwave Flash" and click "End Process". Any tabs running flash get a little message bar at the top and battery usage falls to a tree-hugging 8-watts-or-so.

[] permanent link

Sun, 30 May 2010

Speeding up Google Chrome in Linux

Google-chrome was getting slower and slower on my otherwise-performant-seeming EeePC laptop. Sometimes it would take 10 seconds to open a page. And, after opening a page, while further assets were loading, the browser would become unresponsive and Chrome would offer to kill them.

Why? Well, I'm running ubuntu karmic, with a luks-encrypted ext3 home directory on the EeePC's cheap SSD. Somewhere in that stack, I believe Chrome's disk cache writes were beginning to bog down, as evidenced by kcryptd's appearance in "top".

To prove that disk performance was the culprit, I copied ~/.cache to my ramdisk /tmp/ directory and symlinked it back to my home directory. This instantly made chrome feel faster than a flying potato.

So how do I get that level of performance while still storing my cache on a persistent storage medium? After mucking around in /proc/sys/vm/ for a while to no avail, I tried ext3's "data=writeback" option. Works like a charm. The occasional fsck seems like a small price to pay. And, of course, it speeds up every app on the machine -- not just Chrome. This is life-changing if you have a cheap SSD.

[] permanent link

Fri, 28 May 2010

Epictetus Quotes

Wealth consists not in having great possessions, but in having few wants.

You are a little soul carrying around a corpse.

(just a couple of Epictus' many great quotes)

[] permanent link

Mon, 03 May 2010


Helped build CrowdPhoto this weekend at Startup Weekend LA.

What was fun for me: Doing another project with the talented "ShareMySpot" gang from last year's SWLA, attracting a couple developers willing to learn the Android platform (in 48 hours!) and able to launch the mobile app that makes CrowdPhoto push-button simple, learning about the power of realtime PR (Twitter), learning about Amazon SimpleDB, working with the new ubuntu "lucid" release, barbecue on the roof of an Ocean Ave apartment building, a third customer for, and meeting a bunch of smart people from the LA startup world.

CoLoft graciously hosted the event and sponsored a 1-month free membership for the 2nd-place team, so I look forward to taking advantage of that over the next 4 weeks!

[] permanent link

Mon, 08 Mar 2010

ZipRecruiter (previously named StarterView), is a new site we launched that helps hiring managers find candidates. ZipRecruiter is already delivering value for its closed beta customers, so we figured it's time to open it up to the world. Come on by, create a free account, and start receiving qualified applicants in your inbox. We'd love to hear your feedback.

[] permanent link

Fri, 29 Jan 2010
Earlier this month, I wrote a simple image resizing service. We're using it at and I hope it will be useful for other sites that want to save the time & effort of implementing their own image scaling & caching.

[] permanent link

Buddhist Proverb
If you are facing in the right direction, all you need to do is keep walking.

[] permanent link

Sun, 30 Aug 2009

Firefox Search Tool for Google

Lost your Firefox Search Tool (aka "search plugin") for Google? I did. Here's how to get it back without reinstalling firefox.

Right click this Firefox Google Search Tool link, select "Save Link As..." and save it in the "searchplugins" subdirectory of your profile folder. You may need to right-click in the "save as" dialog and tick the "show hidden files" checkbox. Restart firefox and you'll have your google search plugin back.

[] permanent link

Sun, 02 Aug 2009

What I Do When Android Is Slow

When my HTC G1 (running android) gets slow, I have a simple, free way to speed it up (for a while). Eject the microSD card. Remember to unmount it first (Home -> Menu -> Settings -> SD card & phone storage -> Unmount SD card).

Plug the card back in, and life is good.

Unfortunately, the first google result for "android slow", has been marked read-only ("archived") by T-Mobile and its upshot is "buy a new SD card". Here's hoping this blog post climbs high enough in google to save a few people some money.

[] permanent link

Sun, 26 Jul 2009

mp3splt rulez

I converted each of my CDs to a single FLAC file for online access and backup. See earlier post about abcde.

Here's my recipe for using ubuntu hardy to convert them into small audio files with id3-style info available, for use on my android phone or Michelle's Sansa Fuze:

  • Upgrade your Sansa Fuze to the latest firmware. Settings > SystemInfo > Version should be at least V01.01.32A . If you don't have a "SystemInfo" section, I think you need to upgrade.
  • sudo apt-get install mp3splt
  • oggenc file.flac
  • mp3splt -c file.flac.cue file.ogg

That's it. Mp3splt extracts artist, album, track information from the cue file and puts it in ogg comments, which are read by both the Sansa Fuze and the android music player.

[] permanent link

Fri, 10 Jul 2009

Bogof Marketing

Economizing yesterday, I went to Subway for lunch. With my order, they gave me four of those scrach-and-win type cards. The first three yielded nothing, but the last one showed I was the winner of a BOGOF Reggae Chicken Sandwich. Exciting! I've never had bogof reggae chicken before.

Normally, I wouldn't eat Subway two days in a row, but I recently read about a study that shows people tend to put off appealing tasks just as much as they put off unappealing tasks. And, while I'm savvier and more diligent (not to mention more handsome) than the average punter in a psychology study, in this respect I'm afraid my propensity for ruts leaves me on the other end of the bell curve. So today, I went to another Subway to cash it in ASAP.

I can almost taste the delightful bogof reggae chicken as I stand in line and the manager congratulates me as their first winner! Even better, my golden ticket curiously didn't specify whether I was to be the recipient of a free 6" sub or a free 12" sub. But guess what... she's preparing the full 12-incher for me. Truly, today is my lucky day.

At the end of the line (No thanks, no sauces on that; I wouldn't want any superfluous flavors that might compete with the delicate mixture of bogof reggae herbs and spices) she taps at the register a bit and demands £2.99. Excuse me? That's more than a whole sandwich at the Subways back home. And what about my golden ticket?!?

"No," she says, "that's the price of a 6 inch. You see, this here means 'Buy One Get One Free.' So I gave you one 6-inch sandwich for free and you have to pay for the other one." I'm not sure what the penalty is here for pelting the cashier with those obnoxious little pound coins, so I thanked her, took my sandwich, and left.

So today's recommendation to heal the economy is: Let's not give our tax dollars to the !@#$% marketing department.

[] permanent link

Thu, 09 Jul 2009

One Small Step for Crisiskind
Here's my contribution to fixing the financial crisis: Any bank that gets more than a billion of my tax dollars must abolish ATM fees. That would encourage people to spend more money, right?

[] permanent link

Mon, 27 Apr 2009

The Solitary Basics at Parque Nacional Puyehue

We are sipping a cup of wine-from-a-box at a roofed picnic table in campsite 23 at Camping Chanleufú in Aguas Calientes, Chile. The night is damp and chilly but we have warm clothes. There's a light under the roof, so Michelle is reading her book, and I have the laptop plugged in so I can blog and do a little computer programming. We plan to break out the MSR stove in an hour or so to cook instant risotto.

There's nobody else in the campsite. So far, we haven't even seen a ranger to collect the alleged $20 fee. Maybe has something to do with the car barrier at the entrance, but of course we just walked in from thee bus.

It's kinda bizarre, but we have everything we need. Another day well below our target budget...

[] permanent link

Wed, 04 Mar 2009

The procedure I followed to get ghc 6.10, cabal-install, and happs-tutorial 0.6.5 working in ubuntu 8.10 (intrepid) or ubuntu 8.04 (hardy)


cat <<EOF >~/bin/cabal-install-this
runhaskell \$setup configure --prefix=$HOME --user &&
runhaskell \$setup build &&
runhaskell \$setup install --user
chmod a+x ~/bin/cabal-install-this

sudo apt-get install libgmp3c2 gcc libc6-dev g++ zlib1g-dev libgmp3-dev darcs

tar jxvf ghc-6.10.1-i386-unknown-linux-libedit2.tar.bz2
pushd ghc-6.10.1
sudo make install  # installs in /usr/local/ by default

tar zxvf HTTP-$httpv.tar.gz
pushd HTTP-$httpv/
cabal-install-this Setup.lhs 

tar zxvf zlib- 
pushd zlib-
cabal-install-this Setup.hs 

tar zxvf Crypto-$cryptov.tar.gz 
pushd Crypto-$cryptov/
cabal-install-this Setup.hs

darcs get
pushd cabal-install
cabal-install-this Setup.hs

cabal update
cabal install happs-tutorial
happs-tutorial 5001 True True

[] permanent link

A rough outline of the procedure I followed to get orchid-demo 0.0.4 working in ubuntu 8.10
First, see previous instructions to install cabal. Then:

sudo apt-get install libssl-dev

cabal install orchid-demo

orchid-demo --extract

w3m -dump http://localhost:8080/

[] permanent link

Thu, 04 Dec 2008

Tab Mix Plus Session Management
Tab Mix Plus' Session Management works better for me than either Session Manager or Firefox 3's built-in session management features. In particular, the crash recovery features of the latter two don't work well for me. Tab Mix Plus' crash recovery works great. Important now that I'm using Adobe's alpha and crash-prone 64-bit Flash plugin.

[] permanent link

Mon, 26 May 2008

ripping to flac + cue for slimserver using abcde in ubuntu hardy

Ubuntu Hardy Heron erased my mp3 collection. OK, I was a little reckless in assuming that, if I installed it over my existing ext3 partition, it wouldn't overwrite /usr/local/mp3/.

Photorec actually was able to recover over 15,000 mp3 files. Unfortunately, I don't own 15k mp3s. It had recovered 15k mp3 fragments. Fun to listen to on shuffle play (sounds like somebody fiddling with a radio dial in a city full of people exactly like me) but not really "recovered" in any useful way.

My take-away from this experience? Store files like this (not sensitive, but expensive to reproduce) on a partition that has good undelete support. Ext2 supports undelete; ext3 does not support undelete.

On the bright side, this is a perfect excuse to re-encode my entire collection in a lossless format. I'm still trying to decide whether to pay $1-2 per CD to have an outside service rip and encode my CDs or just feed CDs into the machine myself. In the meantime, I'm at least trying to identify the perfect format. I think I've found it: FLAC + cue seems like the best "copy of the CD" approach. Slimserver plays them gaplessly and you can burn a FLAC + cue file to a CD directly, if necessary.

In the past, I've liked abcde for ripping CDs, so I used the following command to rip the CD and the cue file in ubuntu hardy:

abcde -1 -M -p -o flac

This worked fine, except that slimserver wouldn't read the FLAC file. It just showed 10 tracks, each with the title of the album. After a little fiddling, I found that changing the "FILE" line allowed slimserver to read the file. So here's a messy litte script to fix up the cue files after ripping:

find . -name '*.cue' -print | xargs perl -pi.orig -e 'my $flacname = $1 if $ARGV =~ m#/([^/]+\.flac)\.cue$#; s/^FILE "dummy\.wav" WAVE$/FILE "$flacname" FLAC/;'

[] permanent link

Tue, 08 May 2007

Firefox Search Plugin Selection

Using a firefox search plugin has some advantages over a custom keyword:

  • Firefox will suggest searches based on what you've typed so far and (I assume) what other people have searched for. This actually often helps me search better.
  • Firefox keeps a history of my past searches.
  • Search plugins are easy to create so I probably don't have to write my own firefox keyword.
  • All searching actions are reachable in one place, using Ctrl-K.
One thing that took me a long time to figure out: You can scroll through your search engines using Ctrl-Up and Ctrl-Down (while the cursor is in the search field). This is a little worse than typing "Ctrl-L g g " because it requires you to look at the search box (the latter can be done with your eyes closed). But given all the other advantages of OpenSearch, it's how I search nowadays.

[] permanent link

Thu, 05 Apr 2007

Biking Happiness

A couple months ago, my office moved near my apartment. Not only are we now located in a vibrant, scenic, progressive, beachside community, but we are also close enough to my home that I can bike to work. And, four days out of five, that's what I do.

I knew driving in Los Angeles made me frustrated. It just seems like such a tragic waste of everyone's time. But I had no idea how happy I would be commuting by bike. Well, the jury is in.

What do I like about biking? The smells. The unobstructed panoramic views (OK, maybe a convertible would work for that). Sneaking right past lines of stopped traffic. Free parking. No time spent in the parking garage, waiting in a line of cars behind the Escalade that just has to have the parking spot currently occupied by the world's slowest person. Free exercise. Food is cheaper than gas. I can bike home after three beers.

[] permanent link

Sun, 01 Apr 2007

Keyconfig for Mouseless Mozilla

Today I learned a little about the wonderful world of Keyconfig. Install that keyconfig.xpi in both firefox and thunderbird, then get started assigning keys to javascript functions.

If keyconfig doesn't include a javascript function to do what you want, you may have to search the web for it. In thunderbird, to move an email to a folder with a single keystroke, I followed Deef's helpful instructions. In firefox, to open the "back button history menu", I quit firefox, added a couple of snippets of javascript from Mozillazine's Keyconfig Page to ~/.mozilla/firefox/*.default/prefs.js, restarted firefox, opened keyconfig (with Ctrl-Shift-F12) and assigned Alt-Shift-Left Arrow to "Back Menu".

[] permanent link

Sun, 25 Mar 2007

Dovecot Rules

I've spent a few hours over the past few weeks getting my ubuntu postfix installation configured to support SMTP AUTH. After screwing around with Cyrus SASL for far too long, I found this suggestion in the postfix SASL README: Use Dovecot's SASL support instead.

Since I had already switched from courier to dovecot as my IMAP server, modifying its configuration to serve SASL for postfix was a breeze. Dovecot rules!

[] permanent link

Thu, 14 Dec 2006

Matter-Energy Classification

Matter : Energy :: Noun : Verb :: Data : Function

Why do we divide things up this way?

[] permanent link

Tue, 05 Dec 2006

Childhood Smells
Today I smelled something that reminded me of preschool. Someday I'd like to go find all the smells that remind me of various phases of my childhood: all the schools I attended, everyone's home I visited, all the foods I ate. Then, if there were some way to make my own scratch-and-sniff book...

[] permanent link

Wed, 15 Nov 2006

Family That Walks on All Fours

I saw a touching and educational Nova episode tonight about a family in Turkey, many of whose members are afflicted with a genetic disease that interferes with their ability to walk upright.

It's fascinating how our genome leads to our actual morphology. It's as if our genes were designed for evolution. I wonder if other organisms (viruses?) or ecosystems fail because the way their genotype encodes their phenotype doesn't lend itself to stable mutations like ours does. Perhaps this trait could be defined and measured as a reduction in the percentage of possible mutations that yield catastrophic (unsurvivable) failures.

There are lots of ways to encode (compress) information. Some just seem to be more useful (meaningful?) than others.

[] permanent link

Mon, 06 Nov 2006

Geeky Gift Ideas

Here are some techie gift ideas for your favorite nerd. If your favorite nerd is me, you have no excuse for getting me a tie for Christmas.

See more of my Geeky Gift Ideas list at ThisNext.

[] permanent link

Sat, 28 Oct 2006

Blinking VCR Light Rant

Everybody loves to make fun of the luddite who slaps a piece of masking over the incorrect, blinking time displayed by their VCR. Granted, in this age of DVDs and PVRs, only a luddite would still own a VCR. But these infernal, blinking, green, epilepsy-inducing, referenceless non-clocks are installed in everything these days, including radios, microwave ovens, and cars.

The masking tape user does not deserve our scorn. It's the VCR designer who is to blame. He assumes the user wants their VCR to know the correct time. Now, some people use their VCR as a clock. Some people ask their VCR to record a specific channel at a specific time, and this requires that the clock be accurate. But nobody else, luddite or technophile, needs their VCR (or radio or microwave oven or car) to know what time it is.

Setting the time on your VCR isn't trivial. Even if the buttons are clearly labeled, first you have to find an accurate clock and then you have to press your clearly-labeled buttons in one of the seemingly-infinite combinations and permutations on which all the different manufacturers have failed to standardize. Power outages are inconvenient as it is. Why must our presumptuous appliances hassle us further? The VCR should be able to figure out whether I need it to know the correct time. Only show me the blinking clock if I have a program scheduled to record.

While I'm defending the luddites, I gotta make a case for the VCR too. Its superiority lies in its comprehensible user interface. The DVD menu is, possibly excluding Brad Pitt, the most-annoying invention of the movie industry. What made them think I wanted to solve a goddamned choose-your-own-adventure game just to watch my Star Wars 2 DVD? Which button is highlighted? Do I go "right" or "down" to get to the next button? Did my remote control's infrared command not make it to the DVD player, or did it receive the command and is it just waiting for steam to come out of my ears before actually performing it? I long for the "play", "rewind", "fast forward" simplicity of the VCR. The DVD gives me nothing in exchange for the simplicity it stole.

[] permanent link

Thu, 21 Sep 2006

Solar Computers
A few weeks ago, my friends and I walked past an illuminated, temporary road sign. It had a solar collector at the top to charge its battery. We speculated that it would be more efficient to redirect the light from the sun out through the pixels in the sign. Likewise, if fully-optical computers become practical, perhaps I can power one by just setting it out in the sun. Yeah, yeah: peripherals, nighttime...

[] permanent link

Fri, 01 Sep 2006

Sudo Alias

Here's a fun way to make linux system administration more like first grade:

alias simonsays=sudo

[] permanent link

Wed, 30 Aug 2006

Personal DNA
I took the "Personal DNA" test today. There are 20 minutes of my life I'll never get back. The results were pretty accurate. But that could just be because they're parroting back all my answers to their questions.

[] permanent link

Wed, 09 Aug 2006

Scratch-and-Vote System Could Help Eliminate Election Fraud

I'm optimistic about the Pret-a-voter voting system. Could be the voting system of the future.

Pros compared to traditional paper voting:

  • reasonable chance for voter to detect a tampered vote

Pros compared to existing electronic voting systems:

  • reasonable chance for voter to detect a tampered vote
  • no computer required at polling place
  • paper trail

[] permanent link

Mon, 07 Aug 2006

I really appreciate the word "plurality". It's the word that, at a glance, tells you you're reading a patent and not, say, a useful document that actually explains how to do something.

[] permanent link

Fri, 21 Jul 2006

Gnome "Run Application" Dialog
To bring up the "run application" popup in gnome (on ubuntu dapper, anyway), use "Alt-F2". If you just want to run some X program (like xmag), this is quicker than opening a whole terminal.

[] permanent link

Mon, 10 Jul 2006

GMailUI and Courier IMAP

I am very pleased with Ken Mixter's GmailUI Thunderbird extension. My #1 favorite feature is that it lets me use the "Y" key to yank the message into my archive folder. But it took my a while to figure out how my IMAP server (Courier) organizes its namespace. All the folders are under "Inbox.". So, in order for the "Y" key to work correctly, I need to configure GMailUI to point to "Inbox.Archive".

If I get a free hour, I'd like to extend GmailUI to move the message into "Inbox.ConfirmedSpam" (for input to spamassassin's Bayesian classifier) when the "Y" key is pressed on a message that's marked in thunderbird as "Junk".

[] permanent link

Mon, 05 Jun 2006

Tab Mix Plus

I just started using Tab Mix Plus. It's great. I'm a fan of these features:

  • when closing current tab, focus last selected tab
  • open new tabs next to currently one
I disabled these features that came enabled by default:
  • "close tab" buttons
  • "new tab" button
I'm not so sure about these default features, but I'm going to give 'em a try for a while:
  • Ctrl-Tab navigates tabs in the most recently used order

[] permanent link

Sun, 04 Jun 2006

Send Bug Reports to PalmSource

Here's a page that explains how to send a bug report to PalmSource. I assume these are the people who can fix bugs in the OS and apps that came pre-installed on my treo 650. They say:

Please include as much detail as possible about the problem you are experiencing.

The minimum set of information required is:

  • The product that has the problem
  • A summary of the problem
  • Steps to reproduce
  • Expected results
  • Actual results

[send the email to]

[] permanent link

Tue, 30 May 2006

Batman Begins

I guess my expectations for superhero movies (or action movies employing Liam Neeson) have finally sunk low enough. I really enjoyed Batman Begins.

[] permanent link

Mon, 29 May 2006

How to Clean an LCD Screen

Jeremy Zawodny hosts a long discussion about how to clean your LCD screen. My take-away: 50% isopropyl alcohol + 50% water worked well.

[] permanent link

Thu, 25 May 2006

Building HAppS in Ubuntu Dapper

Took me a while to figure out how to build HApps under ubuntu dapper. Here's what I did:

# build fps (seems to be no ubuntu package for this)

darcs get
cd fps
# HAppS calls breakFirst:
darcs obliterate --from-patch "we kill breakFirst/breakLast"
runhaskell Setup.hs configure --ghc --prefix=/usr/local
runhaskell Setup.hs build
sudo runhaskell Setup.hs install

# build HApps

darcs get --partial
cd HAppS
darcs obliterate --from-patch "we kill breakFirst/breakLast"
runhaskell Setup.hs configure --ghc --prefix=/usr/local
runhaskell Setup.hs build
sudo runhaskell Setup.hs install

[] permanent link

Thu, 18 May 2006

The "P" in NPR

When the radio voice says "NPR; National Public Radio" he stresses the word "Public". As if to reassure me that my donation is allowing any old underprivileged American to access their quality radio programs.

But when I try to listen on the Internet to a radio show recommended by a friend, using my free operating system of choice, I am in for half an hour of searching for a working media player. I even considered installing a product from one of my least favorite companies. The company I don't like sent me on a wild goose chase to an open source real media player that has an ubuntu package but when I tried to open this stream it gave me the error "The following components are required: protocol_rtsp_rdt". Eventually, I just gave up.

I'll resume my monetary support of NPR when they support me and my fellow linux/ubuntu users by releasing content in an open format such as ogg or mp3.

[] permanent link

Thu, 11 May 2006

TwinView vs Xinerama

When I set up my dual monitor workstation, I was in a bit of a rush. I cobbled together an xorg.conf file for my ubuntu breezy workstation, got it so it looked right and didn't think much about it for 5 months.

Over that time, I noticed that window drawing was surprisingly slow for my state-of-the-art workstation. OpenGL screensavers -- which I expected to run reasonably fast with my modern-if-not-gamer-quality Nvidia Quadro NVS 280 PCI-E card -- ran at a pace reminiscent of Mesa.

So yesterday, I did some googling and came upon TwinView. I set it up with a simple device section in xorg.conf:

Section "Device"
	Identifier	"NVIDIA 1"
	Driver		"nvidia"

        Option          "TwinView" "1"
        Option          "MetaModes" "1600x1200,1600x1200"
and, suddenly, everything is snappier. Most importantly, my screensavers look better. Now does anyone know how to convince xscreensaver to display 1 hack across both screens?

[] permanent link

Wed, 26 Apr 2006

Get Rid of Silly Colored Bars in Mozilla Thunderbird

I got a plaintext email newsletter today that included some headers that look like:

>>>>>>>>>>>>>> HEADER

Of course, thunderbird thinks it's clever and wants to render this as a 14th-level blockquoted citation with a large pyramid of stacked colored bars. I decided I'd like to do without the eye candy and finally found a forum posting that tells how. Since it's not so easy to read that forum, here are the distilled instructions:

Add this to ~/.mozilla-thunderbird/*.default/user.js:

user_pref("mail.quoted_graphical", false);
user_pref("mailnews.display.disable_format_flowed_support", true);

Add this to ~/.mozilla-thunderbird/*.default/chrome/userContent.css:

blockquote[type=cite] {
  padding-bottom: 0 ! important;
  padding-top: 0 ! important;
  padding-left: 0 ! important;
  border-left: none ! important;
  border-right: none ! important;

[] permanent link

Mon, 24 Apr 2006

Setting gnome-terminal Default Profile

After creating a few gnome-terminal profiles to set different foreground/background colors for different types of terminals, I found that newly-created gnome-terminals would use the profile I created last rather than the original one now misleadingly named "Default".

My friend showed me how to fix this: This is one of the gnome-terminal commands that is only available through the menubar. Right-click in window, select "Show Menubar". Under the "Edit" menu, select "Profiles...". Then you can select from the pulldown titled "Profile used when launching a new terminal". Whew.

[] permanent link

Sun, 23 Apr 2006

Spam Review Autoscrolling Viewer

Somewhat obsessive as I am, every week I review my spam folder. These are messages spamassassin has scored as spam. I don't want to miss any ham and, more importantly, I don't want to mess up spamassassin's bayes network.

I couldn't find a way to convince mozilla thunderbird to sort by spam score, so I wrote a perl script to read my Spam Maildir and display it in an 80-character-wide format with the columns [score, from, to, subject], sorted by "score" and "from". Then I use "less -m" to view review this report.

So far, so good. But the way I review it is to scroll slowly in the beginning and quickly toward the end. It's fairly unscientific. What I'd like to write is a program that scrolls through the entire list in X minutes, giving each message review time inversely proportional to its spaminess score. And I think it would need a pause button.

[] permanent link

Fri, 14 Apr 2006


I've added another weapon to my anti-mouse arsenal: XBindKey. Here's a quick cheat sheet:

  • xbindkeys --defaults > $HOME/.xbindkeysrc
  • xbindkeys --key # press a key to learn its syntax in .xbindkeysrc
  • xbindkeys
  • killall xbindkeys; xbindkeys # The manpage says "killall -HUP" works, but it doesn't for me.

[] permanent link

Thu, 13 Apr 2006

Mouseless Firefox

I'm a big fan of operating my computer using the keyboard (as opposed to the mouse).

The advantages include:

  • I can type without looking at what I'm typing.
  • I have to type a lot anyway, so time spent moving my hand from my keyboard to my mouse and back is time spent, well, moving my hand.
  • I put my keyboard in my lap and let the arms of my office chair support my elbows to reduce strain on my wrists. I have not found any similarly-comfortable way to arrange my mouse.

Unix used to be very keyboard-friendly. Now that so much of what we do on the computer is graphical, Windows' integrated OS and graphical toolkits generally put the X-gnome-gtk mishmash to shame in terms of consistent keyboard navigability. Emacs remains a paragon of super-efficient keyboard navigability [I just pressed alt-slash to autocomplete the word "navigability". There. I did it again. :)], but many of the other programs I use on a day-to-day basis require me to reach for the mouse. The worst offenders are firefox and thunderbird.

Once upon a time, I thought the best way to deal with this problem was to read mail and browse the web from emacs. Unfortunately, w3, w3m, and gnus, while having some serious strengths are just too slow, unable to display graphics, and difficult to configure. So I'm stuck with firefox and thunderbird which, despite their lack of obvious shortcuts, boast thousands of developers who make them the leading networking applications of our time.

If you want to learn how to save some miles on your mouse while browsing the web, first go read Adam Pash's Mouse-less Firefox article and the thunderbird keyboard shortcuts page.

That's a nice start. But there are still a lot of common tasks for which I've found no reasonable keyboard shortcuts. Here's my wishlist. I'll post solutions as I find (or create) them.

  • (delicious) bookmarklet shortcut: Write a firefox keyword that takes the url of the current page as an argument? Use the delicious firefox extension?
  • "search for button" shortcut (like using "'" to search for a link)
  • emacs keyboard shortcuts in textareas: Perhaps mozex together with emacs can fulfill this wish and more.
  • copy url of current page to X clipboard
  • deselect url bar (after pressing ctrl-L): Shift-tab almost works, but it jumps to the bottom of the page.
  • thunderbird: move currently-selected-message to my "Done" folder
  • display page history and allow me to navigate forward or back more than one page at a time

[] permanent link

Mon, 20 Mar 2006

Evince reads .jfx files

Looking for a way to open one of J2 Communications / JFax's .jfx files from an ubuntu linux machine? Just use evince.

[] permanent link

Wed, 15 Mar 2006

Charles Schwab fails to provide sufficient transaction history

It is frustrating, in this day and age when I have a $20 USB key in my pocket that holds a gigabyte of data, that Charles Schwab, with their millions of dollars and thousands of servers, can't show me a single transaction I made more than four years ago.

They say they're "working on it". Well I'm working on transferring my account to Etrade. Let's see who finishes first.

[] permanent link

Interactive Brokers APIs

Looks to me like the only game in town for automated stock trading for individuals is Interactive Brokers. Sure, you could write a WWW::Mechanize script to slog through your broker's frame-filled web site, hoping you don't someday accidentally purchase 1000 google puts just because your broker changed the order of the items in the pulldown list, but I would feel a lot more comfortable entrusting my transactions to a broker that has given some thought to a simple online API.

Interactive Brokers seems to provide a Java API that they claim works in unix. Getting java working on my debian box and then programming in it sounds like the kind of pain I would not enjoy. But the Interactive Brokers TWS API Wiki also mentions C, Python, and Perl APIs that have been crafted by community members. Hmm...

[updated 2006-03-15] There's an application called Medved QuoteTracker that has a stock trading API. It, in turn, passes the requests on to one of the ~14 brokerages they support. Sounds like a jury-rigged solution that involves keeping Windows running on a computer or a virtual machine. But it just might work...

[] permanent link

Sat, 11 Mar 2006

Postfix 1, Exim 0

A few weeks ago, the exim installation on my ubuntu laptop stopped using SMTP AUTH to communicate with its smarthost. I wrestled with it for a few hours over the intervening time and never made any progress.

Tonight I thought "maybe I'll see if postfix can do it." I did an "apt-get install postfix", then followed these instructions) and, less than 15 minutes later, it was working.

[] permanent link

Thu, 09 Mar 2006

Underwhelmed by Origami

I'm underwhelmed by the Ultra-Mobile PC. Microsoft's marketing site fooled me into thinking it might be a little revolutionary, but it looks to me like they just skinned Windows Explorer. The on-screen keyboard looks somewhat innovative.

No thanks, I'd prefer a Nokia 770.

[] permanent link

Tue, 14 Feb 2006

Running 32-bit applications under ubuntu amd64

If you try to run a 32-bit application under ubuntu's 64-bit amd64 distro, you get the following error:

unable to execute <program>: No such file or directory

The Debian AMD HOW-TO describes how to configure a debian-based system to run 32-bit apps. Below is my ubuntification of those instructions.

sudo apt-get install debootstrap

sudo debootstrap --arch i386 breezy /var/chroot/breezy-ia32 # this takes a while


sudo chroot $ia32root file /bin/ls
sudo chroot $ia32root /bin/ls

[] permanent link

Fri, 13 Jan 2006

Dictionaries in Ubuntu

If you're looking for /usr/share/dict/words (which seems to be missing from my ubuntu breezy installation), You may want to install "scowl" instead. It has contains a number of comprehensive, easy-to-parse word lists.

[] permanent link

Sat, 07 Jan 2006

Xmodmap for Sager NP5720 keyboard in linux

The default keyboard layout for my new Sager NP5720 laptop had some problems. The numeric keypad's PgUp and PgDown keys almost worked except, when the shift key was depressed, they would output the numbers 9 and 3 even though Num Lk was off. This is a pain because linux terminals use shift-PgUp/PgDown to scroll.

After an hour of research, twiddling, and trial-and-error I found that this fixed the problem:

xmodmap -e "keycode 81 = Prior Prior KP_9 Prior"
xmodmap -e "keycode 89 = Next Next KP_3 Next"

I used "Prior" instead of "KP_Prior" because the gnome app evince didn't understand ctrl-KP_Prior. I'm sure this will come back to bite me someday when I'm playing a game or something.

This approach also has the drawback that it breaks the 3 and 9 keys when num lock is on. But I never really use the numeric keypad, so this isn't a problem for me.

[] permanent link

Thu, 29 Dec 2005

Y Combinator Brain Pain

Joel Splosky's recent article about The Perils of JavaSchools mentions fixed point theory. Despite the fact that my CS degree required nothing so advanced as a true understanding of a fixed point theorem, I wanted to feel that I was the kind of person who, if he put his mind to it, could wrap his head around the concept. Besides, it's related to the Y combinator, and my friend Ben and I had taken the time to understand that a few months ago. Right?

When I was a kid, lying in bed trying to sleep, sometimes I would play a game with myself where I would visualize a golf ball rolling into a hole. The particular image is fairly irrelevant (Freudian analysists start your notepads) but the point is that I often couldn't get the ball to roll in the hole. I would try to push it in and it would slip away. An inability to command one's own mental visualization is disconcerting.

Anyway, visualizing why or how the Y combinator finds a fixed point of the function that's passed to it is giving me that same feeling. I get this close to understanding how it all fits together and then <poof> it slips away as I lose track of the pieces.

[] permanent link

NSA Web Site Puts 'Cookies' on Computers

If federal agencies like the NSA aren't allowed to use HTTP cookies, how is Carnivore/Omnivore/DragonWare legal? I guess the federal government's too big to be consistent. Maybe consistency in the government would be a bad thing. It might lead to fascism or memetic stagnation.

Someday I'm going to argue that we the people should make all information free, but first I have to read David Brin's "The Transparent Society", which is on order from Amazon.

[] permanent link

Thu, 08 Dec 2005

Logitech V270 Bluetooth Mouse in Ubuntu Linux

My new Logitech V270 Bluetooth Mouse arrived last night (4 days earlier than the delivery estimate!). This morning, I set it up under ubuntu linux (breezy) and it was much easier than I expected. I just followed the directions in the file /usr/share/doc/bluez-utils/README.Debian.gz.

[] permanent link

Fri, 02 Dec 2005

PC Recycling in Los Angeles

On my way to work today, I followed a truck with the phone number for a Los Angeles PC Recycling company: 1-877-PC-RECYCLE.

[] permanent link

Sun, 20 Nov 2005 Wed, 16 Nov 2005


How bad form is it to post a fortune fortune on your blog? As an entire entry? Hopefully the blog police will overlook this transgression. Enjoy:

Take time to reflect on all the things you have, not as a result of your merit or hard work or because God or chance or the efforts of other people have given them to you.

[] permanent link

Sun, 13 Nov 2005

Google Local Firefox Keyword

I created a handy firefox keyword for Google Local:

Name: google local
Keyword: gl

[] permanent link

Mon, 31 Oct 2005


I'm a sucker for physics simulation games like BridgeBuilder and moon lander. Lately I've been wearing out my arrow keys on the thoroughly-enjoyable X-Moto.

[] permanent link

Sat, 29 Oct 2005

Intentional Communities

I've lived in rented apartments for over 10 years. But now I'm getting to the age where I think I would really like to invest some of myself and some of my money in a place.

Unfortunately, I live in one of the most expensive cities in the country. And real estate prices have been rising quickly over the past five years so I don't want to risk losing a lot of money when the market inevitably cools.

I often wonder whether commune-style living could work for me. I don't need a lot of private space -- pretty much just a bedroom and a refrigerator. The rest of the space I'd like to invest in -- a big yard, a living room, a bathroom, a kitchen, an Internet connection, a garage, even a car -- could theoretically be shared, given the right arrangement. I actually like having people around. And, while there are inevitably conflicts among people who have to share spaces, the built-in community, the shared destiny (if 10 people depend on the Internet connection then ~10 times as many resources can be dedicated to fixing it when it's broken), and the diversity of skills might make up for the work required to resolve conflicts.

Last night I finally did a little googling and reading and found that the modern, PC term for a commune is intentional community. It looks like people have done lots of thinking about and experimentation with various models. Parameters include: work affiliations, how income is shared, religious affiliations, decision-making style, and much more.

I think I'd favor a fairly capitalistic arrangement. I'd like to save money and build community by sharing big, expensive things, but I would like the freedom to work and spend the rest of my money how I please (entertainment, travel, food) without these private decisions being subject to community review. I also might be willing to pay others to do community chores I'm not interested in doing.

[] permanent link

Tue, 25 Oct 2005

Old personal web page (further) retired

My old home page is so 1996. Back in those days, web pages were largely static. Accordingly, I guess I felt the need for a single page that described "me". I'd edit it as friends created web pages or I wanted to publish some new source code or pictures. But the page was all presentation and no semantics so changes to it weren't easy to discern.

Recently, I've come to realize that the aspects of myself that change are more numerous and maybe even more important than the aspects that remain constant. It looks like this blogging/RSS thing is here to stay and, while I still find the notion of polling for updates absurd, at least RSS acknowledges that change is important enough to be a first-class citizen of the web. I'm sure that when there are so many RSS producers and consumers out there that the Internet grinds to a standstill, people will migrate to a more scalable system like FeedTree or something.

In the meantime, I'm a-bloggin and I'm so embarrassed of my old home page that I just changed my four-letter domain to redirect here instead of there.

[] permanent link


The best is the enemy of the good.
-- Voltaire

[] permanent link

Mon, 24 Oct 2005

Gaming Laptops

My grandmother needs a laptop computer. Since her needs are simple (web browsing, emailing, viewing digital photos sent by her adoring grandson) I thought I'd install linux on an older laptop and give her that. Over the past few months, I've tried to refurbish two different laptops. The first, my Dad's old Gateway 400 MHz P2, worked OK until I tried to get the PCMCIA (Cardbus, actually) port working so she can get 802.11g wireless access from her room. At this point I don't remember the exact problem, but it was a no-go. The Gateway had a flaky power switch and a pretty annoying keyboard layout to boot.

So this weekend, I dusted off the old Dell 400 MHz P2 laptop that served me well for years after I bought it from my previous employer. I tried to install ubuntu on it. It failed repeatably with some vague error message like "could not install base packages". So I tried debian and noticed some funky hard drive noises accompanied by an extremely (brokenly) slow formatting process. Remembering that this laptop also has a jenky power cord and that the value of the time spent on this project was climbing into the hundreds of dollars and that I really like new gadgets myself, I began to investigate a new laptop for myself. Here's what I found:

I've gotten lazy in my old age. Nobody ever got fired for buying Dell and they've come out on top in many of my own past comparison shopping exercises. So I went through a navigational hierarchy that was obviously designed by a large committee of people who profit from you making the wrong choice at any turn (Wouldn't it be nice if the page you go to when you click the word "Notebooks" at the top of their site went to a page that showed you all of their notebooks?), and eventually found Dell's uber gaming laptop (I'm sure that link will break next time the committee decides they want to redo their entire site in pink). Nice. Looks good, has a higher resolution than any desktop machine I've ever used, and is undoubtedly faster than any desktop I've ever used. They say gaming laptops are here and I believe 'em. But once you select the GeForce Go 7800 GTX and the 7200 RPM hard drive, Dell's XPS M170 costs more than $3200!

On the off chance that there might be somebody out there who could undercut Dell, I did a little googling and found the Sager NP5720. Wow. This can be configured with all the features of the Dell for just $2300. And it has a nifty built-in camera and a built-in 4-in-1 card reader. It doesn't look like a pair of Nike sneakers (the Dell does), but for $900, I'll buy myself a few pairs of Air Jordans.

[] permanent link

Fun with userspace filesystems (FUSE)

Userspace filesystems have a high gee-whiz factor. I expect a filesystem to be a simple, clunky, old repository of data that changes infrequently. Sure there are filesystems like procfs, udev, sysfs, usbfs, and tmpfs. But I don't know what half of those are and the other half are just little read-only or write-only windows into the kernel.

But FUSE lets you write your own filesystem as a user-level process in less than 100 lines of code.

In fact, there are 37 different filesystems built on top of FUSE. These include a versioned filesystem, a versioned filesystem built on top of cvs, a way to mount a relational database as a filesystem, a simple bluetooth filesystem, a gmail filesystem (maximum filesystem size 2.6 GB and counting :) ), a bittorrent filesystem, and more.

[] permanent link

Mon, 17 Oct 2005 Tue, 11 Oct 2005

Sony PFM-42X1 transformer buzzing

I just recently noticed that my Sony PFM-42X1 plasma TV makes a 60Hz buzzing noise when it is displaying a bright image. It's as if drawing all that power makes the transformer noisier. Annoying as it is less than 1/60th of the way to its expected half life.

I found that putting it in "power saving: reduce" mode makes the picture a bit dimmer and pretty much eliminates this noise. I suppose it'll probably increase the life of the TV too.

[] permanent link

Mon, 10 Oct 2005

"Google This Site" Bookmarklet

Many web sites have sub-standard or non-existent site search engines. Fortunately, there's google. I often found myself using my google firefox keyword to search the current site for a page like this: "gg bookmarklet".

But I do this so often that I wanted to save a few keystrokes. This bookmarklet does the "gg" part automatically, popping up a dialog to ask you for the search keyword(s).

To add it to your browser, drag this button into your bookmarks or your toolbar: google this site

[] permanent link

Thu, 06 Oct 2005

Gaming LCD Monitors
I'm trying to decide on a new LCD monitor that will be convenient to carry to my friend's house for computer gaming. Here are two I'm considering:

  1. Samsung 214T Black 21" LCD Flat Screen
  2. DELL UltraSharp 2001FP 20.1-inch Flat Panel LCD Monitor

[] permanent link

Sat, 01 Oct 2005

My FICS cheat sheet

xboard -ics -icshost -size Average -telnet

examine joeski 0
unex #
tell  gg
play #
+chan #
seek 10 5 f m
match user          (to play a specific user)
say Hello (last) opponent!
kibitz Hello people watching this board!
whisper Hello watchers who aren't playing.

[] permanent link

Thu, 29 Sep 2005

Elevation-Aware Hybrid
I posted an idea about an elevation-aware hybrid vehicle to halfbakery today.

[] permanent link

Mon, 05 Sep 2005

First Post!
This is my first blosxom post.

[] permanent link

Sun, 09 Jan 2005

Deformable Sphere Robot
I posted an idea about a deformable sphere robot to halfbakery.

[] permanent link

Sat, 01 Jan 2005

I, Robot
The bright side about the movie not following the plot of any of the Robot stories is that I didn't have any idea what was going to happen. I really enjoyed the movie! But, then, my expectations were pretty low. You can buy I, Robot at

[] permanent link

Mon, 26 Jul 2004

Travels in Ireland and London

Michelle and I landed in London over a week ago, on Saturday morning. Though the seats on Virgin were smaller than the seats I remember on Delta a year and a half ago, lack of sleep, earplugs (provided in the complimentary Virgin gift pack), and a sleep mask (ditto) let me get a full four-or-so hours of sleep.

Since then, we've flown to Dublin, where we rented a car and spent a couple hours learning, the hard way, how to drive on the lefthand side of the road and negotiate the dreaded European roundabout. A few hours later we made it to the beautiful seaside town of Westport. Here we found the first and nicest of the many B&Bs we would stay at over the next week. After a visit to Matt Molloy's (a member of the Irish band The Chieftains) Pub, we split a doner kabob and chips and then headed for a younger pub where we played cards and watched the locals.

The next day we headed down to the Ailwee cave and through The Burren -- beautiful and remote.

Then on to Galway, where we had the best (and least Irish; coincidence?) meal of the trip near the Spanish Arch.

I should mention the Irish Breakfast, the source of much discussion among health-conscious travelers: Every B&B serves, for the 2nd 'B', an egg or two and a variety of fried pork products piled on the plate. To soak up the extra grease, some non-Atkins-approved bread is served with butter and jam. On the bright side, that's enough calories to get you through the entire day.

At dinner, we sat next to John Montague and his wife -- on a book-signing tour for his latest poetry collection -- who recommended the Dingle Peninsula as a smaller, more beautiful version of the Ring of Kerry. So, after Galway, we headed there, cycled around, explored the remote grassy peninsula and beaches, and had a nice lunch overlooking the ocean and some of the ancient beehinve fortresses.

We considered spending the night in this nice little town but decided instead to press on to touristy Killarney. While the town itself isn't very special, we took a spectacular, 34 mile bike ride around the lakes and through the Gap of Dunloe. While a pain in the ass (literally), it has probably been the high point of the trip so far. You'll see when I post the pictures...

Next morning we decided to try to get halfway to Dublin, so we went to Kilkenny, which the friendly woman who ran the B&B in Killarney had recommended. Turned out not to be quite all it was cracked up to be, but the Butler Castle tour was neat.

Yesterday we drove in to Dublin, dropped off the car, and made our way to our first and last hostel of the trip. We've sort of been collecting ourselves, doing laundry, shopping, sending postcards, and looking for good nightclubs for the last 24 hours. Tonight: the famous Wagamama restaurant and more nightclubs, no doubt.

Tomorrow we fly to London and catch the chunnel train to Paris, where we can hopefully settle down in one room (with its own bathroom) for a few days before the wedding on Saturday.

[] permanent link

Tue, 13 Jul 2004

A Giant Soapbox
I used to think a party convention as a purely political event: People gather to cheer on the candidates and boost the public image of the party's platform. But because it's so widely publicized and covered by mass media, the party convention also serves as a giant soapbox from which to broadcast your message if you can get invited to speak. President Reagan's son will speak at the 2004 Democratic National Convention to advocate stem cell research.

[] permanent link

Mon, 12 Jul 2004

When you're in a hurry to purge some shmarmy Harry Chapin tune from your mental jukebox and your mp3 collection is sorted in alphabetical order, the expeditious choice is clearly this little band from Newtown, Australia.

[] permanent link

Hello and welcome. A friend showed me the new and I'm considering this my excuse to start my own blog. I may choose to host this at my own site someday.

[] permanent link