Friday, June 6, 2008

Seals, coming unglued...

First, the coming unglued part: this was not my fault. (Actually, it wasn't anyone's fault, though working around the issue took a lot longer than it should have.)

But the more interesting part: I apparently have a new pet. There's a seal in Manzanita Bay, where we often swim, who has decided that I'm fun to play with. It was pouring on Tuesday, so we didn't have a support craft; instead, I had one of those lifeguard rescue tubes dragging behind me on a strap. The seal thought it would be hilarious to play with it and tug on the straps. Spooked me out the first time the came around. Eventually, it just got annoying.

Wednesday was another swim day, this time with a support craft. To my surprise, the seal still wanted to play even though I didn't have the tube with me. This time, it was mostly in the form of bumping against my feet and swimming below me (face up, just to show that he was a better swimmer or somesuch).

I am a bit worried that he's getting too comfortable with humans. That's usually not a good thing for wildlife. Ah well... all of our attempts to scare him off have proven unsuccessful. I guess we'll just have to live with him.

Monday, May 26, 2008

I've been busy.

It amazes me that using the Internet, which used to be a fun, diversionary pastime, is now a lot like work. When I do get a free moment -- which is sadly becoming a rare occurrence these days -- jacking in to the matrix (errr, surfing the web, that is) is down at the bottom of the list of things I want to do.

As a result, updating my journal falls by the wayside, too.

So... let's see. Last update was 18 April. Since then, I've:
  • Gone to Maker Faire with Tamara and our friend Julie. It was a lot of fun. A few pictures I took of the gizmos are online.

  • Started open water swimming in Puget Sound again. We've mostly been swimming in Manzanita Bay (here's an overview of a typical workout there), and there's a seal which loves to swim with us. Actually, it's the ladies he seems to like. Don't ask me how he can tell the difference (or even if it's a male -- apparently, his/her ability to determine interspecial gender is better than mine), but he definitely goes up next to them instead of the guys.

  • Gone to Hobuck Beach a couple times. No pictures, sorry; I felt more like wandering than thinking about taking photos. I did get a nasty tire puncture hitting a sharp rock on highway 112 when returning from my first trip. That also prompted me to get my tires replaced; when putting the spare on, I noticed that the treads were much more pronounced. Oops.

  • Built a BlackBerry application to make oncall life easier at work, called Sur Appels Sans Frontières (i.e. "On Calls Without Borders" -- yes, I know the French is atrocious, but it translated forward and back properly in Google Translator, so I'm sticking with it). This was part of a competition to build tools for others in the company to make their lives easier. The upside: I won the "Best Tool For Builders" category. The downside: They want me to roll this baby out (in my copious spare time, of course :-). I did get a nifty hard hat helmet/trophy (in keeping with our internal system builder website's Bob the Builder theme). I'll have to take a picture of that.

  • Gotten completely inundated with operational issues at work. Ironically, while I was giving the demo of Sur Appels, my team was in the middle of dealing with a Sev-1. It also seems that the new database hardware we're getting has a bad issue with the storage controllers which causes the database to completely hang from time to time. In usual Amazon tradition, the engineers are being told to just deal with it, it's your problem, not provisioning's. That is, we'll spend a few million to work around the problem rather than a few thousand to deal with it directly. <sigh>

  • Been househunting off and on. More off than on in the last few weeks. I hate the whole process. That's all I'll say for now lest this become an angsty rant.

And there you have it, in executive summary PowerPoint bullet form. Next slide please.

Friday, April 18, 2008

It is snowing.

Which wouldn't be unusual in and of itself except (a) it's mid-April, and (b) this is Seattle.

We're supposed to have our first open water swim in a couple weeks. I'm beginning to wonder about this.

Maker Faire

Anyone reading this going to Maker Faire at the San Mateo Fairgrounds next month?

After two years of wanting to go but doing nothing about it, I'm finally plunking down the money to fly down and go. I'm usually reluctant to spend money on trips like this for myself without some other attached event (e.g., someone else is going, is getting married, etc.). I don't really know why I'm that way; I just am.

I'll be there on Saturday, May 3rd. If you'll be there, get my contact info and come say hi!

Sunday, April 13, 2008

I spent my weekend mostly naked.

Probably more information than you wanted to know. But I was at the PNA/NW Zone swim meet, so I had an excuse this time. This was my first ever swim meet that I've actually swum in (I've spent others timing and running the computer).

The King County Aquatic Center is nice. The competition pool is an LCM (long course (50) meter), dividable into various arrangements; for this meet, it was divided into two SCY (short course (25) yard) pools. It's 9 feet deep throughout -- no worrying about hitting your head turning in the shallow end -- and has waveless gutters. You could warm up during the meet in the dive tank -- 25 yards square and 17.5 feet deep. When you jump into it, you feel like you're just going to float forever downward.

Anyway, I did the 1000 and 1650 ("swimmer's mile") freestyle events, and a relay event where I swam another 50 freestyle. I learned that I'm faster than I think I am, but still nowhere near as fast as I'd like to be. I managed a 15:13 in the 1000 (vs. expected 18:00), and 25:08 for 1650 (expected 29:00). However, I know that I was faster here than I am in my normal pool -- all those niceties plus the adrenaline rush add up.

Tuesday, April 8, 2008

A decent web framework?

I've been playing with a combination of CherryPy, Genshi, and Dojo to put together a website for a friend. So far, I've been quite pleased.

CherryPy is the request router -- it's responsible for cracking open the HTTP message and deciding how to process it. I have a few nits about it -- mainly documentation related -- but getting a webserver set up which did something along the lines of, "Route everything through Genshi except this path, which you should serve from the filesystem," was very straightforward.

Genshi is the first page framework which evoked a response from me of, "Hm, this could work," instead of, "God, I feel like I'm going to throw up." It uses an interesting approach: you write everything in XML and embed the programmatic constructs in the attributes. The rendering phase takes care of the transformation to HTML (or text, or ). For example, here's how you might render a table full of sliders for every integer or floating-point parameter:
<tr py:for="param in parameters">
<td py:if="param.valueType in ('int', 'float')">
<div dojoType="dijit.form.HorizontalSlider"
id="${param.name}Slider"
py:attrs="param.sliderAttributes"
intermediateChanges="true"
onChange="onNumericSliderChange('${name}')" />
</td>
</tr>


I'm used to the frameworks which require you to escape any code. Genshi lets you do that, if you absolutely insist upon it:
<?python
for param in parameters:
?><tr><?python
if param.valuetype in ('int', 'float'):
?><div dojoType="dijit.form.HorizontalSlider"
id="${param.name}Slider"
py:attrs="param.sliderAttributes"
intermediateChanges="true"
onChange="onNumericSliderChange('${name}')" />
</td>
</tr>


Dojo is a set of widgets. Not quite Google Web Toolkit, but it's simple and gets the job done.

Friday, April 4, 2008

SpamAssassin's multiple personality disorder

SpamAssassin has become a bit overly aggressive in its filtering as of late. A few of my friends' e-mails are getting sucked up in there, so I've had to monitor it a bit more closely.

Today, however, I found this gem in there. Clearly, it was conflicted as to whether the e-mail was spam or not, though ultimately it decided it was (and was correct in this determination). What amazes me is that, even with 12.3 positive points subtracted, this e-mail still scores as spam.
Content analysis details:   (8.6 points, 5.0 required)

pts rule name description
---- ---------------------- --------------------------------------------------
1.0 NO_REAL_NAME From: does not include a real name
0.1 FORGED_RCVD_HELO Received: contains a forged HELO
0.1 HTML_90_100 BODY: Message is 90% to 100% HTML
0.0 HTML_MESSAGE BODY: HTML included in message
0.5 BAYES_99 BODY: Bayesian spam probability is 99 to 100%
[score: 1.0000]
0.0 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
-4.3 RCVD_IN_BSP_TRUSTED RBL: Sender is in Bonded Sender Program (trusted
relay)
[Return Path SenderScore Certified (formerly]
[Bonded Sender) - ]
1.6 URIBL_SBL Contains an URL listed in the SBL blocklist
[URIs: selleis.com]
3.8 URIBL_AB_SURBL Contains an URL listed in the AB SURBL blocklist
[URIs: selleis.com]
4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist
[URIs: selleis.com]
2.1 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist
[URIs: selleis.com]
3.0 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist
[URIs: selleis.com]
4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist
[URIs: selleis.com]
0.0 MIME_HTML_ONLY_MULTI Multipart message only has text/html MIME parts
-8.0 AWL AWL: From: address is in the auto white-list

Office/cubicle location

I've decided that it's not the size of the office which matters; it's the location. While I wouldn't pass up a posh corner window office on the penthouse floor, that's not what I'm thinking of. I need an office deep within a maze of twisty passages, all alike. The effort required to find me would place a high premium on interrupting me, and hopefully I could get more done.

Then again, maybe this will ensure that I only get determined idiots bugging me. Hm.

Tamara and I went down to Sacramento to visit a friend for an extended weekend. It was fabulous -- we spent a few days at her family's cabin in the Sierras, got together with a bunch of college buddies in the Bay Area, and otherwise just hung out.

Remember that fitness challenge I was doing in February? Well, the results have been posted; I came in second in my age group again. The guy who beat me won't beat me next year, though -- if only because I'll move up to the next age group. :-)

Monday, March 17, 2008

Value of a dollar?

If you are paid in or have bank accounts valued in U.S. dollars, the news that Bear Stearns was sold for $2 per share -- in a deal backed with $30 billion [edit: I originally mistyped "million" here] of your tax dollars -- should be extremely worrying.

This means that Bear Stearns is valued at $236 million. Last Monday, when it was trading at $70/share, it was valued at $8.26 billion. In the span of a week, $8 billion dollars effectively vanished into thin air -- in other words, investors overvalued BSC by 3500%.

If we were talking about Moe's Junkyard and Hot Dog Stand and other places with shoddy or non-existent accounting, nobody would care. But we're talking about a bank, whose finances were tracked by other banks.

This is like going to the ATM, withdrawing $20, and then trying to buy lunch -- only to find you can't afford it because there's only 57¢ in your wallet. Or going to the gas station and finding that the price of gas has risen from $3.50/gallon to $122.50/gallon. All stuff which is supposed to be unthinkable.

Yet it's here. And I'm worried.

Saturday, March 15, 2008

Mirroring blog entries from Blogger to LiveJournal

I've gotten a few questions on how I'm using Blogger while having posts mirrored to LiveJournal. The magic is a little Python script I wrote, which I've sanitized (that is, I got rid of my hard-coded and tossed up here.

It's not for the faint of heart in its current form. You'll need:

  • A Unix-ish computer. MacOS X is probably sufficient, but I don't have a Mac to test it on. Sorry, porting this to Windows is just too much effort.
  • Python 2.5.
  • The GData API for Python.

You'll probably want to install it as a cron job. My crontab runs this every 15 minutes:

# m h  dom mon dow   command
*/15 * * * * /home/dacut/bin/blogger2lj.py

Why would you want to do this? In my case, I'm getting weary of the goings-on with the suits over in LJ land, but still have a bunch of folks who read the version over there. I guess we got settled in before LJ became the platform for emo tweens. Heh, live and learn.

Anyway, I'm not saying that others should move to a new blogging platform. This just gives you the option to move without having to cut ties with your existing social circle. Could you imagine what real life would be like if decisions like this dictated your social circle? "Bob, Linda, Jake: It's been great hanging out with you guys, and I'm going to miss you. But I'm changing mobile phone companies, and the new one doesn't take phone calls from you. Sorry."

Thursday, March 13, 2008

Oracle Poetry

It's interesting what you can stumble across when you turn stones over while walking along a path. Or, in my case, when you snoop on network traffic. Worry not; I was doing this for a good cause: to track down a problem with the Oracle database driver.
@"Oracle

Everybody follows
Speedy bits exchange
Stars await to gl@ow"
The preceding key is copyrighted by Oracle Corporation.
Dupl@ication of this key is not allowed without permission
from Oracl1e Corporation. Copyright 2003 Oracle Corporation.

It looks like this is a creative way of making sure nobody else writes their own software for talking to Oracle databases -- to do that, you would have to copy the poem, which is a violation of Oracle's copyrights.

Saturday, March 8, 2008

Either I'm losing my edge....

... or the jargon beast has eaten the Eclipse folks and changed their website.

Granted, I'm only develop in Java because it's the langue du jour in software circles today and am not overly enamored of it (or its fanboys), but I do have a reasonably deep understanding of the lingo. But I can't make heads or tails of the Eclipse Equinox mission statement:

From a code point of view, Equinox is an implementation of the OSGi R4 core framework specification, a set of bundles that implement various optional OSGi services and other infrastructure for running OSGi-based systems.

More generally, the goal of the Equinox project is to be a first class OSGi community and foster the vision of Eclipse as a landscape of bundles. As part of this, it is responsible for developing and delivering the OSGi framework implementation used for all of Eclipse. In addition. the project is open to:

  • Implementation of all aspects of the OSGi specification (including the MEG and VEG work)
  • Investigation and research related to future versions of OSGi specifications and related runtime issues
  • Development of non-standard infrastructure deemed to be essential to the running and management of OSGi-based systems
  • Implementation of key framework services and extensions needed for running Eclipse (e.g., the Eclipse Adaptor, Extension registry) and deemed generally useful to people using OSGi
As a peer of the Platform, JDT and PDE projects, the Equinox OSGi code is managed by the Eclipse PMC and ships with the Eclipse project major releases. The various other bundles developed here may ship independently and on different schedules.

On the other hand, I think I'd be more worried if I did understand this...

Saturday, March 1, 2008

February is over...

And that means the February Fitness Challenge is done. Which is good, because my body desperately needs a day off.

I'm rather pleased with how I did. I swam 121,000 yards (68¾ miles/110 kilometers), beating my goal of 100,000 yards.

In pictorial form:

Monday, February 25, 2008

Am I radiant?

If you're going to steal something from an abandoned building, I recommend choosing something other than the old, radioactive X-ray source. It's also probably not a great idea to sell it on eBay.

Friday, February 22, 2008

Vista -- sorry, it's my bad...

At least according to Slashdot, Amazon caused Vista to ship before it was ready by stealing a key Microsoft SVP, Brian Valentine. He's the SVP of my org at Amazon now.


They also point out that we're paying him something like $33M over four years; for once, though, I'll say it's money well spent. He's probably saved the company that much already by cutting out crap. Very effective leader in my book.

Monday, February 11, 2008

I wax statistical...

I'm watching "Deal or No Deal" -- they have a new gimmick where they're putting up multiple cases with $1 million (12 of 26 for the current contestant), replacing the other high dollar amounts on the board. However, I'm not sure it actually changes the gameplay at all.

Computing the expected value at any point is straightforward. The bank's offers, however, are not solely dependent on the expected value; the number of turns appears to be a factor. A comment on this blog post suggests offer = <value> * turn / 10 (where <value> is the expectation value). The offers the bank is making in the early rounds of the 12 $1 million case version, however, seem low -- almost as if the values on the board were not $1 million but the previous values. The episode ended before the contestant finished, so I'm left wondering at this point.

One thing which strikes me, however, is that the endgame is probably the same. If he/she makes it to the final round, in all likelihood (though I have yet to confirm this statistically) the choice will be between a low dollar amount and a $1 million suitcase. Maybe it's somehow easier to get to this endgame? Hm. You know, I'm going to have to do the math on this one.

Saturday, February 9, 2008

Oof...

Silly me. Silly fitness challenge. I swam just over 6 miles today (10,600 yards). That's the most I've done in a single day and my arms are complaining like crazy.

I'm currently at 23.8 miles for the month; my goal is 56.8 miles (100,000 yards), so I'm a good part of the way there. Let's hope my muscles don't fall apart.

Early results from Washington

At least if the precincts in my caucus were anything to go by, it looks like Obama will have a solid lead in Washington. The breakdown in my precinct was 188 (12 delegates) for Obama, 55 (3 delegates) for Clinton, and 19 (1 delegate) undecided. Other precincts split similarly. Turnout was heavy, as one might expect.

This is the first time I've ever participated in a caucus -- my previous experiences were voting in lame duck primaries in California and Pennsylvania. I quite like Washington's system; you don't register for a particular party, so you can go to either of the caucuses. Since McCain has the Republican nomination pretty much locked up, it made far more sense to attend a Democratic caucus. Listening to people campaign makes for a far more lively atmosphere; participating in the political process is more fun this way.

Sunday, February 3, 2008

When work intrudes on your personal life...

I just saw the Super Bowl ad for Pepsi Stuff. Unremarkable, except they flashed the Amazon.com logo for a fraction of a second. It's so weird seeing that. I forget just how big Amazon is sometimes. It's unusual, because the work I do often has a direct impact on the website.

At every other big company I've worked (IBM, Seagate, Cadence), my work usually ends up being a footnote for some minor offshoot project which never made it into a real product. Until now, it's only been the startups (AstroTerra, Neolinear) where my contributions actually have had a measurable impact for a customer.

Monday, January 28, 2008

The Fed's big 75 point mistake

This article in the Motley Fool is, IMNSHO, spot-on. The Fed's recent 75 point cut in interest rates is a crazy mistake.

Remember that the Fed's job is to tame inflation, not try to correct the economy. The economy simply cannot be corrected by central planning like this -- time has shown again and again that this produces results counter to the effect desired.

What does reducing the interest rate do? It makes the dollar a less attractive investment for foreigners -- who wants to buy dollars when the return is lower? Then basic supply and demand kicks in: a decrease in demand means the price (or exchange rate) goes down. Since a lot of our goods are imported -- including and especially oil -- their prices will go up.

The net result? Stagflation.

Thursday, January 24, 2008

OOXML bad? Try iTunes.

Technical folks like to wail about how defective OOXML (Microsoft's "open" format for Office) is. I agree -- with instructions like "render this table in the quirky way Word 95 did it", it's an impossible standard to implement.

However, that is nothing compared to the travesty that is iTunes. I've been having problems with my iPod; whenever I plug it in, iTunes spits up a DOS-like dialog box: "There is no disk in the drive. Please insert a disk into drive E:. Abort/Try Again/Continue." Googling suggests a possible fix: delete your iTunes preferences and reinstall.

Ugh. I'd rather not delete my license key and preferences, thankyouverymuch. So I decided to see what was in this file and if I could fix it myself.

I open up iTunesPrefs.xml in XEmacs and am presented with:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EQ Preferences</key>
<dict>
<key>EQPresets:129</key>
<data>
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
....
</data>
</dict>
<key>HTTP</key>
<dict>
<key>Cookies</key>
<data>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU
WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElT
...
</data>
</dict>
<key>Keychain</key>
<dict>
<key>Keychain</key>
<data>
WqtWpl9/8NLX0QgFWU4ogEh/7aKP4SbSBd7LRQZ6G8NBJ8dt+AjSv4fs6UOK
qZQ1PkuO6SqRct7r67XozEPbT8LIyXCZsHZe3w5qcvBQyWOzOTUVOJXT74ZC
...
</data>
<key>iTunes Library XML Location:1</key>
<data>
QwA6AFwARABvAGMAdQBtAGUAbgB0AHMAIABhAG4AZAAgAFMAZQB0AHQAaQBu
AGcAcwBcAGMAdQB0AGgAYgBlAHIAdABcAE0AeQAgAEQAbwBjAHUAbQBlAG4A
...
</data>
</dict>
</dict>
</plist>

And so forth.

Ok, so I can understand wanting to obfuscate things like my DRM keys (presumably what's behind the Keychain bit). But equalizer settings? Application paths? Huh?

If you're going to store things in a locked down, proprietary format, why go through the lengths to format and parse it in an interchange format like XML?

Thursday, January 17, 2008

Ah, PL/SQL

Ah, the idiocies of Oracle's database language, PL/SQL.

Let's say you're trying to fix things for a few thousand customers who have managed to create duplicate accounts. You want to delete the duplicate accounts, which are listed in a driver table called DUPLICATE_ACCOUNTS. Knowing that committing a few rows at a time is a good thing on a running database, you might try something like the following:

DECLARE
    CUSTOMER_ID NUMBER;
    CURSOR CDEL_CUR IS SELECT CUSTOMER_ID
        FROM ADMIN.DUPLICATE_CUSTOMERS;
BEGIN
    OPEN CDEL_CUR;
    LOOP
        FETCH CDEL_CUR INTO CUSTOMER_ID;
        EXIT WHEN CDEL_CUR%NOTFOUND;
        DELETE FROM CUSTOMERS
         WHERE CUSTOMERS.CUSTOMER_ID = CUSTOMER_ID;
        COMMIT;
    END LOOP;
    CLOSE CDEL_CUR;
END;

Note the boldfaced delete clause. One might expect this to find the row where the CUSTOMER_ID is the same as the CUSTOMER_ID we just fetched from the driver table. But no! Oracle interprets this the same as:
    DELETE FROM CUSTOMERS
     WHERE CUSTOMERS.CUSTOMER_ID = CUSTOMERS.CUSTOMER_ID;


In other words, those rows whose CUSTOMER_ID is equal to itself -- which (since there are no null CUSTOMER_IDs) is every single freaking row in the database!

Yes, I did this (well, something similarly disasterous) at work today. Yes, it was a production database. No, thankfully nothing crashed -- our databases are so busy that this immediately got hung up waiting for locks that we were able to kill it once we realized what was happening.

I'm not a DBA. I just play one on TV.

Tuesday, January 15, 2008

I don't *want* to drool...

First off, I don't like Apple, the company. Steve Jobs is rather arrogant and his company reflects this character flaw.

But their products? Oooh. A laptop that's 0.16 inches (40 mm) thick? Yes, please.

I also acquired an iPod Shuffle over Christmas. It usually lives in a waterproof housing and goes swimming with me, though I'm still tweaking the headphones -- you need to prevent water from getting between the headphones and your eardrums to keep the music going. Apparently, the shape and size of my ears is at the tail end of some bell curve; I end up having to stuff massive amounts of silicone putty over my ears just to make it last more than a few laps.

Alas, I doubt that I'll own a Mac in the foreseeable future. I rarely have a need to upgrade my computer(s) wholesale -- they're like George Washington's axe, wherein each component has been replaced at various times so that none of the original parts still exist. If I remember correctly, my current machine started out life as a Cybermax (a company which went bankrupt years ago) AMD K6-2 with 512 MB of memory and a 8 GB hard drive, running Windows. It's now an Athlon 64 with 2 GB of memory, 250 GB RAID-1 array, in an understated Lian Li case, running Ubuntu 7.10.

Work is going well, though I can't post much in the way of specifics of what I've been working on. It's nothing exciting (well, to non-dev-types) or anything you'll hear about in the news, though; I only work on the backend systems, after all.

Monday, December 24, 2007

Merry Christmas!

Visiting Tamara's family over in D.C. (the other Washington). Lots of merriment is being had.

This came from my sister-in-law: what really happens to the glassware in hotels, with a follow-on edition for five-star hotels.

I guess I can understand why I was able to eat at the roach coaches parked in front of CMU and not get sick during my grad school years and not get sick: it's not that different from real life.

Saturday, December 22, 2007

Replacing the artist with a computer?

No, not really. At least, this falls far short in my mind.

I came across a CNet review of Photofiddle, a service which will turn your digital pictures into paintings and the like.

Alas, looking at the samples they have online, it looks more like they're just printing stuff onto canvas. You can have various effects applied (e.g. oil painting, watercolor), but I don't think they're actually applying oils with a brush (human or computerized). Brush strokes (and the globs of paint they can produce) affect the painting, and -- unless I'm mistaken -- these are simply absent in Photofiddle.

I'm also quite disappointed in what they claim are sketches. Sorry, but a crappy edge detection filter does not make it a sketch.

Friday, December 21, 2007

Amazon is moving to South Lake Union

It's official -- Amazon is moving to new digs in 2010 in the South Lake Union neighborhood.

I guess this means I'll be riding the S.L.U.T. to work every day.

I'm not so sure if swimming in Lake Union is an option. The south end is where a number of boat docks and Kenmore Air are located; the north end at Gas Works Park is apparently somewhat toxic.

Also, this is the first post I'm making through Blogger. I'll have to see if I can get my replication system over to LiveJournal working.

Sunday, December 2, 2007

Hm, so I haven't been reading many LJ entries as of late -- though not for lack of trying. I had to clear my browser's cookies (as I often do -- lots of work-related testing), forgot to log back in, and have been missing anything protected as a result. Whoops.

So I'll embed a video to make amends. (No, I'm not sure how that works, either.) It's an Aussie TV comedy/talk show host flirting with a church group. And not just any church group -- it's the Westboro Baptist Church.

Tuesday, November 27, 2007

They say that multi-drive failures are infrequent enough that you generally don't need to worry about them. RAID-5 is good enough.

Well, buy me a lottery ticket. I had to deal with a multi-drive failure on one of our login databases on Sunday night -- first drive failed at 9:30 pm, then the second at 10:08 pm. It took us about six hours to recover the database. Fortunately, our applications are resilient to a single-database failure, so there wasn't any impact -- but those were a tense six hours nonetheless.

Friday was another interesting day. A few web devs thought it would be neat to implement an AJAX script which updated a progress bar showing the progress of a sale (what percentage of items have been sold). Alas, they didn't think through the impact their little script would have as a few million users hit the site with a refresh request every half second. The script was badly written enough that it grabbed data from multiple services and then ignored 90% of the information retrieved. The net result? A few services and networking devices melted down. And guess who got to help clean up the mess?

Thursday, November 22, 2007

My people? Crazy.

Tuesday, November 20, 2007

I haven't checked work e-mail since late Friday night. I've been tempted, especially since today's Newsweek had the Kindle on the front cover and I'm sure there's a bunch of buzz in the office, but I need the unplug time.

Incidentally, I've known about this for a year or so, though I only knew it by its internal name, Fiona. I hadn't heard anything about it for a long time; I was wondering if it had died. Obviously not. My first impressions: Ugly? Yes (and it was just as ugly a year ago), though part of me says that if you focus on these sorts of things, you're not the target audience. Expensive? Ayup, too much so for my tastes (though the price will surely come down). Will I give up books for it? Doubtful; books don't have restrictive DRM and you can dogear pages much more easily. They are heavier and (in the instances where it matters) less searchable.

Vacation has been quiet and nice so far. Spent much of today working on my console (an electronics workbench). Lots of sawdust everywhere. Trying to use a 1/8" Dremel router bit to mill out a largeish area (about 10" x 6" x 1/4") is very, very tedious. Tomorrow will involve swimming, maybe some wandering over on the Olympic Peninsula, and more milling. Notably absent: work. :-)

Friday, November 16, 2007

One of the better things about Amazon: our senior managers are not out-of-touch with the engineers. Nor are they afraid to speak their mind; what they say is not couched in managerspeak.

Brian Valentine, my division's SVP, gave a talk today entitled "Lessons Learned" -- basically a rundown of what he worked on in his career (most of it -- 19 years -- at Microsoft), described the mistakes made, talked about what he wanted to do at Amazon, and related a lot of war stories. It was hilarious and inspiring -- and this is from someone who is usually a bit pessimistic.

Alas, I don't know how much I can relate here, so I won't go off quoting bits and pieces of it.

Tuesday, November 13, 2007

Heh... so my son will be Robert'); DROP TABLE Students;--. I guess my daughter will be Elaine:

Monday, November 12, 2007

I was starting to wonder just how much energy a compact fluorescent bulb saves in terms of carbon footprint. It's widely known that you can use a lower wattage CFL bulb to replace a given incandescent bulb; e.g., the light given off by a 23 W CFL bulb is the same as that of a 100 W incandescent bulb.

However, CFLs also contain mercury (on the order of 5 mg per bulb). Disposal regulations vary widely; in my area of the woods, there's some confusion as to how households are supposed to dispose of them. We'll play responsible citizen here and take them to a recycling center.

In my county, there are three sites which accept CFLs. The nearest one is in Poulsbo, a 25.2 mile round trip.

Let's assume it's time to take that bulb to the recycling center. (Ok, normally I would bundle them up and take a bunch at a time.) In my 2000 Honda CR-V, this trip would consume a gallon of gas. According to a random environmental site on the Intertubes, this is 10.9 kg (24 lbs) of CO2.

Yikes. That sounds like a lot. Does this offset the benefits of a CFL?

The average lifetime of a CFL is 15,000 hours. Assuming our earlier 23/100 W bulb comparison, that's a difference of 1155 kWh over the lifetime of the CFL. According to this carbon calculator, 1 kWhr of electricity results in 0.43 kg of carbon emissions.

That's a 496 kg; discounting our (silly) trip, I will have released 486 kg less CO2 into the atmosphere -- that's half a ton.

Ok, I can rest easier now. :-)

Wednesday, November 7, 2007

Watching a train wreck...

A Canadian dollar is now worth 1.08 US dollars. Next stop: Australian dollar parity. And I don't see a bottom to this:

My investments have been flat. As expected, losing money on domestic stocks; gaining it on foreign stocks.

Saturday, November 3, 2007

Friday, November 2, 2007

What the heck is this? I see it popping up on various sites -- it's one of the most annoying Web 2.0 inventions I've ever seen.


I'm guessing it's supposed to show a thumbnail of the linked page. I've never seen anything but the "Loading Preview" text, though.

As another blogger aptly put it, "I was beginning to think it was the 90’s all over again, with the blinky text and the annoying midi files."

Even better:
Snap’s preview anywhere gizmo is ruining the reading experience for millions of people. Its intrusive, obstructive and un-useful in almost every respect and use case. The fact that so many big blogs are using it, big well respected blogs, does not mean that it’s useful, it just means that they, like most bloggers, have all the self restraint of a magpie in a sparkly things factory.


What's next? Are these folks going to go around and start modifying cars so they honk every time you hit the brake? Have my office phone ring anytime someone on my floor gets up to use the restroom?

Edit: Thanks to for providing this tip on how to disable it:
If you click on the gear, there should be an option to "disable", and the little preview-page that results will let you chooose "all sites" and then "save". It'll set a cookie somewhere and never bother you again, as far as I can tell.

Wednesday, October 31, 2007

This is what I've been spending a fair amount of time on over the last six months. Not that web page specifically, but all of the backend logic to make it work as well as migrating about 100k customers from the old set of bank accounts to the new.

Monday, October 29, 2007

U.S. occupies Canada

Our solution to the currency issue? Take over Canada, one piece at a time.




Yes, I am disappointed in the Rockies' implosion in the series. Excellent showing by the Sox. Careful, though; keep it up, and people will start lumping you with another team in the northeast.

Saturday, October 27, 2007

Apple has apparently perfected their Windows emulation:
Dreaded Blue Screen of Death mars some Leopard installs
Apple support drones are getting an earful from Mac users who are getting the dreaded Blue Screen of Death while trying to update to the latest and greatest version of OS X. This thread on an official Apple support forum has more than 200 posts left in 25 hours at time of writing. A large percentage of the writers report getting a persistent blue screen that forces them to abort their installation of Leopard.


I cannot help but be amused. I kinda like Apple, but Steve Jobs' arrogance gets to me. This will take him down a peg or two -- hopefully.

Monday, October 22, 2007

On fire...

I-15 is never this empty, especially at rush hour:

I-15 at Felicita Road [map]




I-15 at Centre City Parkway [map]



I-15 at Mira Mesa Boulevard [map]



My parents were evacuated around 1 pm; their house is (was?) on the northwestern edge of the Witch fire. Haven't been able to reach them, but I'm figuring they're safe and probably stuck in traffic on a surface street somewhere.
Anyone else remember Master Ninja's Q&A section? For some reason, I was trying to remember the characters, and then I realized I didn't even recall which site it was. (Google was of no help; it's been gone for a few years now.) No idea why I was trying to remember this; it wasn't terribly amusing back then, either.

At the risk of offending , , and , I feel a bit sorry for the Red Sox. Now, I like the Sox -- how can you not like a team whose archrival is the Yankees? -- but they're going up against the Rockies. The Rockies who have been kicking everyone's ass -- including my Padres -- since the start of September. The Rockies who have won the last 22 of 23.

Oh, and this time it's not the Red Sox who are the underdogs.

The Sox' best hope is that the boys in Denver have cooled off while waiting for the ALCS to finish up.

Thursday, October 18, 2007

BBC News

Argh. They're screwing up everything I like about BBC news; -- basically, dumbing it down to become a British version of CNN or Fox News.

Saturday, October 13, 2007

This is what's in the water...

(from the Nikon Small World photomicrography competition)

Wednesday, October 10, 2007

Tamara, I know what to name our kids now...

Friday, October 5, 2007

I've been dared to explain seven of my interests...



Anachronism
Because, doggoneit, quill pens shouldn't just gather dust in museums! Seriously, though, there are a number of interesting solutions to problems in past times which required a lot of thought. Modern conveniences ("just take the car," "get a portable electric generator," "throw a microprocessor at it") have made us intellectually lazy and wasteful.
Carver Mead
One of my professors at Caltech; I took analog VLSI from him. He invented many of the techniques used to design modern chips. In the 90s, the startups he founded created the touchpad and CMOS digital cameras. More recently, he's been working on something called "collective electrodynamics," which is an attempt to revamp the way we're taught electricity and magnetism (E&M) from a quantum perspective.
Finesse
No, not the shampoo. See my response for anachronism. I love elegant solutions. If a solution is not elegant, then it probably isn't correct.
Jenolan Caves
An absolutely beautiful formation of caves in the Blue Mountains in New South Wales.
Scones
Sweet but not kick-you-in-the-teeth sweet, and they go well with tea. Comfort food. I don't know that I've ever passed one up for breakfast.
Scraphead Challenge
The original title of Junkyard Wars, as set in Britain. Developed by the inimitable Cathy Rogers, contestants had to cobble together working machines or vehicles from items found in an actual scrapyard. The ultimate in finesse.
Throwing Rocks
Because the damn kids won't keep off my lawn.

Thursday, September 27, 2007

Swam about a mile yesterday in Dewatto Bay. It was absolutely beautiful.


To put the location into context, it's on the eastern shore of the Hood Canal, on the Kitsap Peninsula. All of this is west of Puget Sound. We live on Bainbridge Island.

Tuesday, September 25, 2007

I just got ripped off.

I spent the last 90 minutes watching Open Water 2: Adrift. It was a free cable "On Demand" feature. That was about $30 too much. Which, if you're doing the math, means they should have paid me $30 to watch that turd.

Thursday, September 20, 2007

I had forgotten this quote. An excerpt from Greenspan's new book, The Age of Turbulence: "I am reminded of Churchill's perception of Americans, who 'can always be counted on to do the right thing -- after they have exhausted all other possibilities.'"

Also, in the excerpt printed in Newsweek, Greenspan lambasts the U.S. educational system, blaming its pitiful state for the growing income disparity. I have to agree; as long as schools are churning out people ill equipped to work in a high tech labor force and we persist in restricting the inflow of skilled immigrants, the wages of the few skilled workers remaining (which includes everyone who reads my journal, at least that I know of) will keep rising out of proportion. Simple supply and demand.

Alas, I'm not going to go out and buy the book just yet. I'm in the middle of Another Day in the Frontal Lobe: A Brain Surgeon Exposes Life on the Inside. Quite a good book so far; both entertaining and informative.

No more "Monopoly Money" jokes...

Start holding on to those Canadian coins. Each is now worth the same as the equivalent US coin. You still can't use them in vending machines, though.

Anyone know if the retailers up north who previously accepted US dollars have stopped doing so? And can I expect to see US retailers in areas like Bellingham to start accepting Canadian money?

Washington State Ferries may want to reconsider their relatively recent refusal to accept the loonie.

Sunday, September 16, 2007

Imagining the Tenth Dimension

In case you can't find your usual stash of mind-altering drugs...
http://www.youtube.com/watch?v=qU1fixMAObI

Wednesday, September 5, 2007

This is how cult religions get started...

Never mind that mentioned multiple times that she would be in Seattle on the 11th. Never mind that I have multiple gadgets telling me that today is the 5th. It's in my Outlook calendar: so it must be true.

This is the reality of my life these days. My schedule is completely interrupt driven. Without Outlook, I wouldn't know when and where to be or, conversely, what I can get away with putting off for now. Flipside: if I enter an appointment incorrectly, forget any possibility of me making it. It might as well not exist.

Ok, so I do know my wife's birthday (April 8th) and our anniversary (October 26th) off the top of my head. And, no, I don't need to look in the address book to remember that her name is Tamara :-P.

Anyway, , this means that I can still make a 11:30/noon lunch next week when is here.

Sunday, September 2, 2007

I managed to drive 73 miles yesterday without leaving the island.

How or why? I was one of the ground crew coordinators for the Arms Around Bainbridge swim.

Tiring, but lots of fun. I also took pictures, but I'll spare your friends page from them.

Friday, August 31, 2007

Those who enjoy cooking appreciate a good set of knives.

This guy, however, has taken one-upmanship to a new level; he uses a laser to cut his steak.

Wednesday, August 22, 2007

Most people's commutes are delayed by mundane things: traffic congestion, accidents, vehicles breaking down, etc.

In my case, I have bomb scares thrown into the mix.

I'm guessing this was intentional; who in their right mind would accidentally leave a bag of sparklers (which will set off the bomb-sniffing dogs they have here) stuffed behind a toilet just a day after the FBI released photos of a couple guys who have been asking for details about ferry operations?




Of course, this is all trivial stuff. I recently heard from a friend from high school who spent the last year in the hellhole of Darfur. I recommend reading her blog -- it's an eye opener. And nobody else could sum up the Darfur conflict as eloquently and flippantly as she does:
And that’s Darfur in a nutshell. The Red Sox, the Yankees, the Dodgers, the Padres, and the entire rest of the American League all armed and jealous of one another.
Anyway, off to a block of meetings.

Thursday, August 2, 2007

Wow. Video footage (from a security camera) of the I-35W bridge collapse.

Sunday, July 22, 2007

Harry entered the nearly deserted dining hall. A few other Hogwarts students were in the far corner carrying on a game of Wizard's Chess; one of them -- a Slytherin Harry didn't recognize -- looked up for a moment, but then returned his attention to the game.

Minutes passed. Where were Ron, Hermione, and Ginny? Harry hummed a tune; something catchy he heard played in a muggle shop. He didn't know most of the lyrics; something about a boy in Detroit catching a train at midnight to anywhere. The thought of a train reminded him of King's Cross station and made him chuckle. How constraining it must be -- was, he reminded himself -- to be tied to train and bus schedules, having to fill up automobiles.

Ginny enters and asks him how his meeting with Snape went. "Oh, as you might expect," Harry says. "Draco won't going to testify against his father to the new ministry."

At this news, Ginny sighs. "Well, we can't expect it all to happen at once. Hey! You're sitting on my wand!" she says to Ron as he enters and plops himself down next to her.

"Sorry. I've spent the last five hours tending to Professor Sprout's mandrakes, and I'm wiped. But as dad used to say, 'Try to remember the times that were good.'" A few of the chess players look over in their direction at the break in the silence. Harry feels the gaze of the Slytherin student, putting him on a bit of edge.

Ron shakes some dirt off the sleeve of his robe; something ruffles in his pocket. "Oh, right. Mum sent me a box of Bertie Botts." Ron pulls the box out and starts to open it. "Want some? Hey, where's Hermione anyway?"

A brief interruption in the sunlight streaming in an upper window catches their attention. Another shadow -- this time, they can see it's Hermione flying backwards, attempting to park her broom. "Ah, still trying to park," Ron sighs. The Slytherin student walks slowly towards them, still gazing at Harry. He pulls his wand out, and Harry feels a chill on the back of his neck. Just as Harry moves to pull his wand out, the Slytherin brushes past them to go to the restroom.

Ron finishes opening the box of jelly beans, and they each pop one into their mouths. Hermione, having finally parked her broom, runs up to the dining hall entrance.

[FADE TO BLACK]

Saturday, July 21, 2007

For my roadgeek friends...

I used driving directions from Google Maps today which included the following:
  • South on US 101 for 3.3 miles.
  • West on WA 108, WA 8, and US 12 for 38 miles total.
  • South (again!) on US 101 for 0.5 miles.
Yes, the directions are correct.
Yes, US 101 runs reasonably north/south in both locations.
Yes, WA 8/108 and US 12 run reasonably east/west.

The answer lies in the strange routing of US 101 between Astoria, Oregon and Olympia, Washington:
  • From Astoria, it runs north to Forks via Aberdeen (directionals read north/south).
  • From Forks, it runs east through Port Angeles to Port Townsend (directionals read east/west).
  • From Port Townsend, it runs south to Olympia via Shelton (directionals read south/north and the mile markers increase going south).
In case you're curious, we were going here.
Being so far behind in the series, I decided to read the Harry Potter and the Deathly Hallows plot summary on Wikipedia. The only thing I don't quite understand: Why, exactly, did Harry kill John F. Kennedy?

Saturday, July 14, 2007

Let me tell you firsthand: stingray stings are painful. Much more painful than a bee sting.

I was swimming just north of the San Onofre nuclear power plant on the Camp Pendleton side. Reaching the end of the swimming area, I stood up to turn back and promptly felt an intense pain in my right foot. After a sharp yelp followed by a few expletives, I hobbled back to the lifeguard tower where they had me soak my foot in near-scalding water. Trying to burn my foot never felt so good; apparently, the toxin breaks down when exposed to heat.




I discovered a combination toilet paper dispenser and iPod dock at Fry's yesterday. Seriously, folks -- if you're blowing money on this kind of crap, you have way too much disposable income.




Here are a couple pictures of the concrete roller coaster they're installing on I-15:

Sunday, July 8, 2007

In San Diego briefly; heading up to Mt. Whitney tomorrow with my dad.

First, though: WTF, San Diego? Have you decided that you wanted to pick up the worst features of Los Angeles and pave over the entire place? I swear, it looks like you're building a concrete roller coaster in the middle of I-15. Every town along the corridor looks like a game of Sim City gone horribly, horribly wrong.

Wow... I never thought I'd be glad to leave SoCal. The place is soooo married to the automobile, it's frightening. It's impossible to be a pedestrian here, really -- watching people try to navigate their way across eight-lane surface streets is sad.

Saturday, July 7, 2007

I've been remiss in posting these.

Today's workout was a killer -- just myself and the coach, and we had initially planned on a 1:20 workout. Instead, it ended up being 2:15 (!). We were 35 minutes in; she mentioned that I had been swimming with the current so it'll take longer to get back. Ok, "but let's go for five more minutes." Five minutes later: "Oh, hey, look, there's a neat beach neither of us have explored." Ten more minutes, we're at the beach.

Remember how I was going with the current? So, 50 minutes there... 1:15 back. About 3.4 miles total.

My arms were killing me when I got out. And this was all after an on-call shift from hell (35 pages in 48 hours... WTF?).

Friday, June 15, 2007

From today's low tide:


Trying to identify these critters...
Ah, joy. IBM has apparently lost a backup tape containing my name and social security number. And I only worked there for a summer 10 years ago. sigh

Thursday, June 7, 2007

My coach is trying to kill us -- either by the 1.8 mile swims or stings by a thousand jellyfish. Yet I pay for the torture and enjoy it. I guess that makes me the freak. :-)


Seeing jellyfish this early in the summer was strange. We haven't seen them anywhere except in Blakely Harbor, though. Fortunately, as with most things in the Pacific Northwest, they aren't the dangerous kind; their barbs are incapable of penetrating the skin, so the worst you'll get is a mild rash.

Wednesday, June 6, 2007

Saw this interesting vehicle on Wyatt Way on the Island this morning:


I thought it was unmotorized -- the guy was pedaling as it went along -- but it was zipping along faster than anything else I've seen.

A closeup revealed that the wheel he was pedaling is attached to a generator (under the front bar) charging a battery (in the black box under the seat); this is attached to a motor which powers the rear wheel.

The front wheels are only for steering and braking.

I thought it was cool.

Tuesday, June 5, 2007

Heh... I just spent an amusing yet frustrating 8+ hours tracking down an obscure bug. (Non-coders, you probably want to stop reading now.)

I thought there was something bizarre going on with our logging framework. We're working on some new validation code (checking for things like invalid characters in names, etc.). One of the things we log is the number of calls to various functions handled in each request. The logs should look like (simplified):

Request 1: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:1
Request 2: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:1
Request 3: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:1
Request 4: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:1


Instead, I was getting:
Request 1: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:1
Request 2: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:2
Request 3: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:3
Request 4: RequestHandler:1,Validation:1,IsClientAuthorized:1,IsValidName:4


This indicates we're calling IsValidName() four times on the fourth request. Huh? This is utter nonsense. That's got to be a bug in the logging framework or our log4j configuration, right?

Nope. We really were. My desktop started getting *really* slow around the 100,000th request.

The culprit? We screwed up a singleton initialization. The RequestHandler initializes the validation framework each time; the first call should do the real setup work, and the follow ons should be no-ops. Except... we forgot to set the alreadyInitialized flags and we were adding the same set of validations to the framework each time. For various obscure reasons, the setup actually appends to the framework rather than replacing it.

Amusing because I didn't believe what my eyes were telling me. Frustrating because it took 8 hours of me looking in the wrong place to track this down.

Sunday, June 3, 2007

I am the proud owner of a new cast iron skillet:


It's 17" across, which is the perfect size for making large pizzas -- which is exactly what we did today. The crust came out better than any other I've done.

Yes, I'm getting excited about cooking utensils. Eating well is important!

In other news, L-Com -- a provider of networking equipment and cabling -- knows how to appeal to the Y chromosome:

Yes, they're showing some networking equipment being run over by a truck.

Resulting conversations go something like this:
Husband: We need one of these.
Wife: (Comes over) What are you looking at?
Husband: It's an OC-3 to OC-12 media converter.
Wife: Err... it's a thousand dollars. Where are you going to use it?
Husband: I... don't know. But we need it!
Wife: What do you mean you don't know? How can you need it, then?
Husband: Isn't it obvious? It can survive being run over by a truck!
Wife: (Shakes head, walks away)

Wednesday, May 30, 2007

The recent mass deletion of "objectionable" communities and journals has me on edge. Not that it affects me directly -- none of the communities I visit were affected -- but the attitude being taken is so very big brother-ish. You can argue about legalese and how, as a corporation, Six Apart is not bound by the Constitution of the United States -- at a basic level, I feel there's been a violation of an implicit trust.

And, as an engineer, things that put me on edge spark me into looking for solutions to the problem. Technical solutions, not diplomatic ones (though I did pass the U.S. Department of State's Foreign Service Exam, I decided this isn't exactly my calling). It makes me wonder if there's a way to ensure this doesn't happen again -- e.g., by decentralizing the power that's currently centralized.

Ironically, solving this would solve a similar issue we're facing at work (, you might have seen my thread on sde-feedback@ about my ideas for a decentralized package store). I even have the basic idea in my head.

What I can't figure out, however, is how to restrict access in the manner of friends-only entries and the like. I mean, it's certainly possible -- a friends-only entry just becomes an entry encrypted with various friends' public keys. However, today I can trust that my restricted entries won't be reposted because I trust those on my friends list. With what I'm proposing, I would have to trust not only you, any software that you might run, and anyone who might acquire (illicitly or via other means) your private key, now and in the future.

That's a lot of trust.

I'm going to mull this over in my head a bit more. I don't know if it'll actually go anywhere -- honestly, work has left me in a zombie state most days. I'm angry, but I don't know if I'm angry enough to overcome zombie dacut.

Wednesday, May 23, 2007

Oof. Only a mile and change, but this left me wiped:


Swimming with a wetsuit feels like someone has attached rubber bands to my limbs. It's also nice, though a bit exhausting, to not have to turn around every 25 yards. :-)

Monday, May 21, 2007

Moron^H^H^H^H^H More on investing

Amazon's stock is up 7% today -- for no reason. I decided to sell my (small) holdings entirely.

I mean, rah rah company and all, but this is just irrational. Our P/E ratio is 107. In plainer English, this is thinking along the lines of: "If the stock price is tied to a company's performance, if I give you $107 today, I can expect this to be worth $108 a year from now."

This is a worthy investment in, say, a charity (where I expect to reap zero financial return). In a for-profit enterprise, however, it's silly. With inflation running a little over 1% per year, this is a net loss. Most banks will pay you a higher interest rate!

Now, there can be other assumptions being made in the valuation. Some of this is a correction for previous assumptions about stagnant profits, which were blown away during our last earnings report. It could also be shorts covering (an activity I'll explain below). Either way, this is not a position I feel a comfortable basis for investment.
What's this about "shorts covering"? No, it's not a way to hide your underwear. A short seller is someone who makes a bet that a stock fall over some time period. An example of how this works is:
  • Alice thinks Amazon's stock will fall over the next three months.
  • Alice borrows 100 shares of Amazon from her broker, Bob, which she immediately sells for $5/share, netting her $500.
  • Three months pass, and Amazon is now at $4/share. Alice buys 100 shares, costing her $400.
  • Alice returns the 100 shares to Bob and keeps the $100.


Ok, sounds reasonable. But what if Amazon's stock actually rises a month after Alice sells her (well, Bob's) shares? She could hang on, hoping that it will fall in the next couple months; on the flip side, she could decide to cover her losses and buy the shares back right now (before they rise further).

Like anything else, stocks are subject to supply and demand. When a lot of people want to buy the stock, this increases demand and the price rises. You can see how short sellers can create a feedback loop here: A positive report about the stock causes the price to rise; shorts cover their losses, causing the price to rise further.

Anyway, if this sounds a bit abstract and sketchy to you, you're not alone. I prefer a firm connection between a company's performance and its stock price.

Saturday, May 12, 2007

I think this short is going to give me nightmares.

Saturday, May 5, 2007

Canada does away with paper money

At least, that's what appears to be happening. They've just issued a C$1 million coin. It's 50 cm wide, 3 cm thick, and weighs 100 kg.

Sunday, April 29, 2007

What the hell?

From Microsoft's Knowledge Base:

When you enter a negative number in the ERF function or in the ERFC function, you receive a "#NUM!" error in the Microsoft Excel worksheet. The "#NUM!" error occurs when you enter a negative number as the lower_limit value or as the upper_limit value.

Additionally, if you enter a numeric value of 27.3345 or larger in the lower_limit value or the upper_limit value in the ERF or ERFC functions, you may receive a #NUM! error in the Excel worksheet.

CAUSE:
This problem occurs because Microsoft Office Excel 2003 and earlier versions are not designed to correctly process negative input values and input values that are larger than 27.3345. This is true even though negative input values and input values that are larger than 27.3345 are both mathematically correct.

Gee, thanks. What if I actually need to, say, compute erf(-1) for, say, comparing against a normal (bell curve) distribution?

Goddammit. Microsoft, you suck. I shouldn't have to write my own program to do something that should be so freaking trivial in Excel.

Wednesday, April 25, 2007

When I woke up this morning, I was quite a bit richer than I was when I went to bed last night.

Alas, it's all paper money, and I expect the irrational exuberance will settle down by the time my stock actually vests. Still, it's a bit nice to know that there's a possibility these golden handcuffs might be made of something other than fool's gold.

Thursday, April 12, 2007

Girl is incredibly attractive when wearing a black dress.

Friday, April 6, 2007

I'm not sure why I took this picture this way, but I like how it came out.

Saturday, March 31, 2007

Feeling much better today: everything is back to normal except appetite, which I can live with. Heck, that might do me some good.

In other news: one way to capture my interest is to put a big "OFF LIMITS" sign on something. In this case, a blacked out region on the Alaska/Canadian border on every satellite photo I can find:
Google Maps
TerraServer

Thursday, March 29, 2007

Ugh. I've been horribly sick the last two days, to the point where yesterday is a complete blur. I'm having trouble piecing together what was real and what was dreamed during my short fits of restless sleep.

Alas, the stinking, stained clothes in the bathtub indicate that the projectile vomiting was real.

Thank god I have a lovely wife who's willing to run out to Safeway at 6 am to buy Gatorade to rehydrate me.

Saturday, March 24, 2007

During a browsing stream-of-consciousness, I came across a YouTube video of the Dan Rather/George H. W. Bush interview during the 1988 presidential campaign. (Yes, I'm old enough to remember watching it.)

One thing I found quite interesting rewatching it: Bush 41 was perfectly happy to have his and others' testimonies provided under oath, and made quite a point of this during the interview. It makes you wonder why is his son so reluctant to do the same.

Wednesday, March 21, 2007

I just posted the picture of Athena widgets below in 's journal because she randomly mentioned widgets.

Looking at this -- what, 20+ year old? -- picture, it occurred to me: someday, there will be a revolt against all of these sculpted interfaces and eye candy, and people will be clamoring for the simplicity of Athena widgets.

Except the scrollbar. Sorry, but the Athena scrollbar's unintuitive behavior is just crap.

Tuesday, March 13, 2007

My quote of the day on Java and its fanboy community:

"Java is like an F-14 Tomcat. It can be a useful, deadly weapon. But you wonder what the heck you were thinking when you sold it to the Iranians."

Thursday, March 8, 2007

My job today was to be a babysitter. An overpaid, glorified babysitter.

This makes me regret that corporal punishment has fallen out of favor as a disciplinary measure.

Tuesday, February 13, 2007

Ugh...

Didn't quite make it to the 3 mile mark today. I was cramping up, badly.

Then, in the shower, I threw up.

Unpleasant^n. And I think I freaked out the head lifeguard, who happened to walk in as I was hunched over, trying to catch my breath.

Friday, February 2, 2007

My performance self-review for the past year is done and submitted. I have confessed to my crimes against productivity.

Yearly performance reviews are a joke, and Amazon's are no exception. The reality is they reflect what you've done in the last month (two if you're lucky).

Next week: peer reviews!
"Bob is a terrific coder. The only improvements I can suggest would be that he consider adding some actual logic and comments."
"Sally's code needs serious work. Although it saved the company $30M last year in reduced costs and increased uptime, she places braces on the same line as her 'if' statements. How can anyone be expected to maintain this crap?"

Tuesday, January 30, 2007

I just gave an overview of the twisted, convoluted payments infrastructure at Amazon to my new manager.

He almost ran away screaming. :-)

Friday, January 26, 2007

Andy Roddick interview

Andy Roddick got his ass handed to him by Roger Federer in the Australian Open, 6-4, 6-0, 6-2. His performance at the press conference afterwards, though, was awesome.

Selected quotes:

Q. What was it like for you just being there at the end of that?
ANDY RODDICK: It was frustrating. You know, it was miserable. It sucked. It was terrible. Besides that, it was fine.

Q. How much would you have paid in order not to come too this press conference tonight?
RODDICK: That's about the best question that's been asked.
     Well, I mean, I can't really say an amount because I would have gotten fined, what, 20 grand. Obviously, it would have to be less than that, right, if we're thinking logically? It really wouldn't be about the money; it would be about running away and not facing it.
     I would pay a lot of money if everyone would just make up stuff that I said and pretend like I was actually here. That would be fine. My dad didn't raise me to run away from it, so here I am.

Q. What did Jimmy say? US Open final experience, you played him tough, got on a roll. Did you talk about that before the match, if Roger gets on a roll, try to do X, Y or Z, slow it down?
RODDICK: Yeah, there's a lot of strategy talk. It's not so much like, If you're down 6‑4, 6‑0, 2‑0. We didn't really talk about that. Oops.

Q. After a night like this, do you sleep well?
RODDICK: Do I sleep well?
Q. Yes.
RODDICK: It depends on how much I drink tonight.
Happy Australia Day!

Monday, January 8, 2007

In stranger news...

In stranger news, one of the tempered glass doors on our shower randomly exploded.

This happened while nobody was in the shower, thankfully. I had left the light on in there -- it's right above the door -- and there was probably a 10°F difference from top to bottom. That alone wouldn't explain why a door would shatter; I'm guessing there was a latent issue (manufacturing defect, improper installation, damage in transport or during installation, etc.) which, combined with the temperature gradient, shattered it.

Weird, though. Took us a few minutes to identify where the sound came from.
Caltech -- the site of my undergrad edumacashion -- snapped its 207 game NCAA basketball losing streak.

To be honest, I wasn't aware we ever had a basketball team.

Sunday, January 7, 2007

Ill conceived item #5734: Kellogg's Fudge Ripple Mini Swirlz.

Friday, January 5, 2007

I might end up as background scenery in Grey's Anatomy. They were filming some stock footage around town, and caught the ferry I was on as it was docking. If I do end up in the shot, I'm one of the folks on the starboard side passenger deck with an expression on my face which says, "Why the heck are all those people standing around on the dock with cameras pointed at us?"

Saturday, December 23, 2006

We are empowered again, not to mention eminternetted. It was a long, strange week, though.

Starting on Christmas cards tonight. Err... yeah. Anyways... :-)

Wednesday, December 20, 2006

Still no power. Haven't sent Christmas cards as a result because I can't get at my address book. Nor have I been able to read personal e-mail in that time.

Worse, there's another storm coming up today. From what I understand we will be pushed back to the bottom of the priority list for power restoration. This is contrary to the claims being made by PSE that they'll restore power to those without it longest; the reality is they have no way of tracking how long you've been without power since their systems automatically reset you to "power restored" after 48 hours.

I'm close to just giving up and heading back to Pittsburgh. At least I have heat there, and basic utility outages are treated seriously.

I'm also getting in trouble at work because I haven't been checking up on things from home. Folks assume that, since they have power, you should, too.

Friday, December 15, 2006

ELECTRIC SERVICE DOWN STOP PLEASE SEND REPAIR CREW STOP CURRENT ETA TO RESTORATION ONE WEEK STOP HOUSES COLD AND REFRIGERATORS WARM STOP TYPING THIS FROM WORK STOP FIRST TIME I HAVE USED CAPSLOCK IN A LONG TIME STOP

Tuesday, December 12, 2006

Today was the busiest day of the year at work. We also came frighteningly close to a large (though not total) meltdown. My role in this was mostly canary ("Uh, guys, these systems don't look good..."), a bit of Chicken Little ("No, really, the sky is falling, and we need this team in the war room now."), a dash of resolver ("Well, the problem isn't here, and it's not there, so let's look thataways."), with a topping of reassurance ("Yes, the graphs look good now, we really can stop panicking now, thanks, now let me step out of the way while you manager types affix blame.").

Alas, I ended up spending the entire day in the war room and got no work done. Bleh. I also like to talk in italics. So sue me.


Speaking of suing, the SeaTac Christmas holiday tree fiasco amazes me. Basic gist: Rabbi wants a menorah included in holiday decorations at the airport, is met with typical bureaucratic "I'm going to answer in the way that involves the least amount of work for me" responses ("Your request is important to us, please stand by"). He gets fed up, threatens a federal lawsuit if they don't comply within 48 hours. Bureaucrats panic, consult lawyer, lawyer says you'd better take them down or prepare to include symbols of every possible faith including demonic worship, etc. So the trees come down.

Is anyone surprised by this? Apparently, Rabbi Elazar Bogomilsky, who had threatened the lawsuit, was.

Either the parties involved are truly nefarious and disingenuous, or they're idiots. I find both plausible. Taking DAC's law into account ("Never attribute to malice that which can be attributed to stupidity"), I'll say they're idiots all around.

Sunday, December 3, 2006

I have a cold. Nothing terribly bad, but it's kinda gross to be around me right now and I'm likely contagious.

Alas, I cannot stay home from work tomorrow. I'm on-call from noon Monday until noon Wednesday. Normally, an on-call shift is the ideal time to stay home (you're not going to get much work done anywhere you are). During December, however, my team is required to have our on-call present in the "war room" during peak traffic hours -- a crowded place with a bunch of graphs projected on the walls. I don't expect this to be pleasant for myself or anyone around me.

Fortunately, I've found a mask which will filter out most of the germs. It looks a bit silly, though -- more like I'm about to do some carpentry rather than the surgical-style mask I was looking for.

Friday, December 1, 2006

Tuesday, November 28, 2006

Apparently the commute yesterday around Seattle was so bad that rush hour lasted until well after midnight. The trip from Seattle to Tacoma -- usually about 30 minutes or so -- required five hours.

For those of us who take the ferry, though, it was a normal, though chilly, commute. (Well, aside from having to get around the crowds swarming Qwest Field for the Monday night football game.)

Tuesday, October 31, 2006

Argh! I just encountered another instance of the following code from one of our developers:
    try {
// some stuff
}
catch (NumberFormatException e) {
throw e;
}


Do some folks just enjoy typing for the sheer fun of it?

Sunday, October 29, 2006

Random silliness related to a new project I'm working on at home: visualizing the keep-out regions for an ATX motherboard for a case I'm working on.


(A higher quality video is available here, but $)@(*#$ LiveJournal won't let you link to videos if they're not on YouTube or Google).