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.