Still Married

When I got my new car a couple of years ago I didn't get rid of my old car right away, so I had to add the new one on to my existing car insurance policy. A couple weeks later I went to remove my old car from the policy, but the insurance salesperson said that there was "something wrong with the computer," because my new premium would be much higher after taking off the second car.

After I waited on hold for a while, she came back on and said she had found the problem: "With two cars, you're getting the married rate, but if you go down to only one car on your policy, then you're a single male so you would get a much higher rate." I found that sort of amusing, and decided not to take the car off of my policy. Ever since then, I've been insuring two cars.

Last week I turned 25, so today I went to the office to see if I could get a lower car insurance rate. Supposedly 25 is the "magical" age when you suddenly become much less likely to get in a car accident.

I inquired about removing my old car from the policy, but again discovered that this would increase my rate. This time I was able to get some specific numbers:

Cost to insure '84 Buick + '06 GTI: $277 + $560 = $837

Cost to insure just '06 GTI: $945

It's interesting to see that insuring a 2006 GTI costs 68% more if you're single than if you're "married." Apparently getting married is yet another way to instantly transform yourself into someone much less likely to get into an accident. The best part is that you don't even have to bother with the hassle of a wife: you just have to buy another car.

Now I'm wondering: could I reduce my insurance costs even further by adding a third car? I suspect not: clearly if I had three cars then I must have had a kid, and we all know how dangerous kids are..

Posted on May 27, 2008
Filed under: Car, General, Humor, Random Comments

Whole Foods vs. Safeway

Co-worker claim: Whole Foods is more expensive than Safeway.
Justification: They rip you off just because they can, and people are dumb enough to pay the higher prices.

My claim: That's BS! Their prices should be exactly the same.
Justification: This is what logical theory says. It's called Econ 101.

How to resolve this conflict? By doing an experiment, of course!

Here are my results from walking around in Whole Foods and Safeway with my camera-phone. I randomly chose different classes of foods, found products that were in both stores, and took pictures:

Banana Prices at Whole Foods and Safeway

Budweiser prices at Whole Foods and Safeway

Horizon Organic Milk Prices at Whole Foods and Safeway

Florida's Natural Orange Juice Prices at Whole Foods and Safeway

Honey Nut Cheerios Prices at Whole Foods and Safeway

Cheerios Prices at Whole Foods and Safeway

So what's the conclusion from all this? Averaging all of these products, Safeway is 4.3% more expensive than Whole Foods.

Result: We were both wrong. FAIL.

Posted on April 30, 2008
Filed under: General, Random Comments

Netflix Bandwidth

A random thought experiment that just popped into my head: what's the bandwidth of my Netflix "connection"?

Let's assume that Netflix mails me 3 DVDs per week, each of which is just a plain old single-sided single-layer disc with a movie on it. The bandwidth should be:

Netflix Bandwidth

The result surprised me: the bandwidth is 187 kbps! It's also sustained, full-duplex, and at 100% utilization (assuming I watch all the way through all the movies). The "download" speed is comparable to a low-end ISDN connection in the US. Switching to HD-DVD Blu-Ray would increase the bandwidth to 992 kbps, in which case the "upload" speed would actually be higher than my upload speed on my Comcast connection.

Of course, with an average latency of 2.3 days (201600000 ms), it would be pretty much impossible to run a protocol like TCP on it (unless the timeouts were really, really high). Just to begin downloading a simple HTML page would probably take several weeks, due to the SYN/ACK handshaking of the DNS and HTTP transactions..

Update 3/18: Fixed math error. Thanks Simon!

Posted on April 17, 2008
Filed under: General, Random Comments

Yoda Head

My Yoda pez-dispenser at work got into a fight with a Darth Vader dispenser. Unfortunately he lost..

Decapitated Yoda Pez Dispenser

Posted on April 15, 2008
Filed under: General, Humor Comments

TransparentMaker

Sko commented on the last post inquiring about a program I had a long time ago which allowed you to make various windows on your desktop transparent. It was an old-school Windows 2000 program I wrote to try out the fancy new WS_EX_LAYERED styles in Win2K:

TransparentMaker Screenshot

You could drag the cursor over a target window and adjust its transparency or make it 'always-on-top':

Transparent Calculator

It's extremely simple but it was pretty cool back in the day. I just tried it out and it still seems to work for the most part, but not as well on newer versions of Windows like Vista, due to the increased security that prevents processes from messing with each other.

An interesting unintended use of the program was that it could be used to discover saved passwords in '******' textboxes, since it displayed the result of WM_GETTEXT as you dragged the cursor over various HWNDs. Fortunately they seem to have fixed that vulnerability in XP+.

Anyway, here's a link to download it:

TransparentMaker.zip

Posted on March 23, 2008
Filed under: General, Programming Comments

Windows Updated

Uptime

For the final project in a class I am taking we had to build a web-based disk storage system with a REST XML API, basically like Amazon S3 but at much smaller scale. The assignment was pretty cool because it was very open-ended: our servers just had to register their URLs with the professor's server and allow him to store data blocks. How we actually did it (OS, language, etc) was completely up to us.

I decided to just run my server on a computer at home, which is what most people did. I figured it would work out fine. My biggest worry was that Comcast would block a port or go down and screw me over. Fortunately that didn't happen, but there were other problems.

For about two weeks my server ran perfectly with 100% uptime, but the professor only started monitoring uptime and availability this Tuesday. Of course, on Tuesday afternoon there was a power outage at home, and my computer didn't turn back on until I got home from work and found it. I have my main computer hooked up to a UPS so it didn't go down, but the other computer was running in a closet with no UPS. Lesson learned: always have a battery backup when homework points are at stake. Also, set all computers to reboot themselves automatically after a power loss.

After I booted it back up I figured it was OK and went to bed. Of course, this happened to be the second Tuesday of the month, so Windows Update downloaded a bunch of patches overnight and rebooted, taking out the server. My process failed to start on reboot, so I had another outage all night. Normally I always set updates to "notify only" and never "automatic", but in this one case I left it on automatic, figuring that it wouldn't matter too much since it was a closet-computer that I wouldn't even log into regularly. Lesson learned: never ever ever leave the updates on automatic, they'll always find a way to screw you at the wrong time. Also, test to make sure the service comes back up properly after a reboot.

Larger-scale, I guess I learned about the importance of having geographically distributed datacenters and automatic failover, but that wasn't really a practical option in this case.

Fortunately most of the other students in the class also suffered outages as well (see graph above), so I don't think my grade will be impacted too much.

Posted on March 14, 2008
Filed under: General, Programming Comments

BenderCam

I was updating the links on the ol' resume page and realized that I didn't have a page about any EE stuff, so I decided to write one up.

My final EE project in undergrad was to build an embedded computer system from scratch, and my team decided to build a digital video camera, called "BenderCam" (Bender didn't really have anything to do with anything, other than that one guy just really liked Futurama).

Here's a picture of the final system:

BenderCam circuit boards

The circuit board on the left has the main CPU circuit, which was composed of a Motorola 68HC11 microcontroller, a 32K ROM with the system software, 32K of runtime RAM, and 512K of auxiliary VRAM. It also has a Spartan II FPGA with some DACs that ran the VGA interface, as well as the RS-232 serial interface to a computer workstation. It's connected via an old IDE cable to the second circuit board on the right that has the CCD video sensor and another FPGA to drive the video capture.

Here's a picture of the back of the main board:

BenderCam wires

This was mostly hand wired by me, which almost caused me to go crazy since every wire had to be perfect or else the chips could all fry. The wires at the top are for the CPU and its two 16-bit buses, and the nasty mess at the bottom is the 24-bit buses for the VRAM double-buffer. If I had to do it all again I would almost certainly go with a PCB rather than hand-wiring the whole thing.

The system captured 640x480 video in black & white (we used a CCD sensor from a security camera) and displayed it on a VGA monitor. After some tricky optimizations in the firmware, I was able to get the framerate up to about 15 frames per second, though the bandwidth at that rate was too high for the hand-wiring to handle, and EM interference started to introduce random bit errors into the video stream. Here's a picture of it taking a video of us taking a picture of it:

BenderCam double-shot

The CCD sensor is the thing with the electrical tape all over it, to prevent light from leaking in. On top it has a lens that we cracked out of an old dead cellphone (high quality all around).

The microcontroller also hooked up to a computer via a serial connection which could be used to download new firmware as we were debugging it, as well as upload pictures back to the computer. The connection was only 56 kbps so it could transfer about one frame every 10 seconds. Here's the software after it has taken a picture of us and some random dude who jumped into the picture:

BenderCam group picture

The random white and black pixels in the image are examples of the bit errors that happened at high speeds. The "washed out" vertical lines near the ceiling lights were caused by excess capacitive charge building up on the DAC, which could be easily temporarily fixed by licking your finger and using it to short out the DAC's voltage supply line.

Posted on March 9, 2008

CampusChat

Today while going through some old files I found an old program I wrote back in college for a Microsoft-sponsored programming contest. Microsoft was doing a big marketing push for the newly-released .NET Framework and C#, so they sponsored programming contests at various universities to promote it (hook 'em while they're young? cough). I ended up winning an original Xbox, which was also new and cool at the time. Somewhat ironically, there was a guy from Sun Microsystems at the contest who saw my program and got me a part time job there working on Solaris.

The point of the contest was to write an application that would be useful for the university, so I decided to write an instant-messaging system called CampusChat. At the time the university had no global IM system that students could use to communicate with TAs and professors, or find and collaborate with other students. My ultimate goal would have been to create a grand, unified online environment like Project Athena at MIT, but I only had a couple of months so I went with IM.

It also allowed me to finally 'correct' all of the horrible (perceived) flaws in the corporate IM systems of the day (namely AIM, MSN and Yahoo). These flaws were:

  • The IM servers were centralized and under the control of one corporation; people could not run their own servers.
  • The IM client software contained advertisements that had to be hacked out of the executables.
  • IM sessions were not encrypted on the wire, so your dorm-neighbors and ISPs could read all the messages (this has been mostly corrected these days, thankfully).
  • IM sessions were not encrypted end-to-end, so the IM provider could read all your messages (this is still not fixed today..).
  • Trust and authentication were ad-hoc, with no method to determine who you were actually talking to.
  • There was no way to tell if the person you were talking to had actually received your recent IMs or had become disconnected (extremely annoying back in the dial-up days).
  • You didn't know if the other person was in the middle of typing a message to you or not.
  • Other users would often select horrible, ugly fonts that you could not override.
  • The customizability of your own font and UI themes were very limited.
  • There was no plugin architecture that you could use build apps on top of the IM system's authentication and communication layers.

The (arguably) largest flaw of the corporate IM systems was that they weren't interoperable with each other at the time, and by creating my own IM system I was admittedly making that problem even worse (open protocols like Jabber and SIP did not really exist yet).

I based CampusChat around Kerberos 5, which is a distributed authentication system that can be used for secure client-to-client communication using strong encryption. All of the IT infrastructure at the University of Colorado was based on Kerberos 5, so every student and faculty member already had Kerberos IDs, which were their usernames and passwords. It was also integrated into Windows 2000+, so if you were logged into a computer with your university username, CampusChat automatically grabbed your credentials from your login session and you didn't have to type in your password again.

Kerberos allowed for the encryption and mutual authentication of individual IM sessions between users, so that you knew exactly who you were talking to, and nobody along the wire (even the IM server itself) could read the communications. I realized later that since Kerberos is based on having a trusted third party generate the symmetric keys (rather than using public-key methods), its entire security rests with the "trusted third party" – in this case the university IT department, which was arguably nothing of the sort (as far as us Computer Science students were concerned). A malicious Kerberos server could have ruined the entire security scheme.

Once you logged into a CampusChat server, the main 'Buddy List' window looked like one of these (all screenshots are using the 'chess' theme):

CampusChat

The screen on the left is of a server in "community mode", where users can see all of the other people who are logged into the same server and the public chat rooms that are available. This mode was designed for individual classes or departments – a professor could set up a server for his/her students to use for collaboration, allowing students to find each other and their TAs during 'virtual office hours'. This mode is contrasted with 'classic mode', which is on the right, and behaves just like AIM or MSN, where you have lists of 'buddies' that you maintain, and you can only see the online status of the people you have explicitly added. This mode was designed more for university-wide servers which everyone could log into at once. The controls on the bottom allow you to add buddies and create public or private chat rooms. The blue slider at the bottom of the window allowed you to adjust the transparency of the window and set it to be "always on top".

IM windows look like this:

CampusChat

The first thing they do is initialize a secure encrypted connection with the other user. At the bottom of the window the status bar lets you know that all of your IMs have been received by the other party (or it lists the number of outstanding messages for which an ACK has not been received). It also tells you if the other person is currently typing, and has the transparency-slider control. The "Direct TCP connection" button allows you to establish a direct connection to the other user, in order to cut out the IM server from the conversation (for speed, as well as to prevent malicious servers from logging the timing and frequency of your messages).

The Text Settings dialog allows you complete control over all of your text. You can use any CSS styles you want on your text, and you are also given the ability to override your conversation partner's CSS text styles if you don't like them. For example, if you were to use the CSS string "text-align: right; background-image: url(http://www.google.com/images/logo.gif);", you would get this:

CampusChat

CampusChat also supports Unicode (natively, since it is written in C# and Managed C++), which allows you to converse in any language (AIM was infamous at the time for not supporting Unicode):

CampusChat

Multi-user chat windows are pretty similar to IM windows, though users have less control over various settings:

CampusChat

CampusChat supported an extensive plugin API, which you could use to modify the base client software and build your own applications on top of the secure connection. It just required implementing a specific C# interface and plopping your DLL into a specific folder. Complete .NET objects could be easily sent between clients using simple function calls (they were serialized to binary form, compressed, encrypted, and sent out automatically).

To keep things simple, I implemented a lot of CampusChat functionality as plugins, such as file-transfer, away-messages, directory lookups, speech recognition, and text-to-speech. The away-message functionality was particularly cool because you could write your own away-message provider that allowed all kinds of fancy logic about which specific people to send the messages to, different messages for different people, and so on. To demonstrate the flexibility and power of the API I also created a full-featured chess game as a plugin (only requiring a couple hundred lines of code):

CampusChat

Alas, in the end CampusChat died a death of neglect after the programming contest and was never widely adopted at the university. It still works great, but you can only use it if you have a valid Kerberos 5 account on some domain, which I no longer do. I've uploaded the ZIP file here for posterity:

Posted on March 2, 2008
Filed under: General, Programming Comments

10,000 miles

2006 VW GTI  10000 miles

My car recently hit 10,000 miles, so I took it into the dealer for a service checkup. I took it to the dealer where I bought it, which unfortunately is on the complete other side of Seattle, and it can take about an hour to get there during rush hour, which is a huge pain.

When I dropped it off in the morning, the service guys were extremely friendly, but almost suspiciously so, which was kind of weird. They told me it would be ready by 5:00 PM. I arrived right at 5:00 expecting to pick up the car, but they didn't have it ready. My suspicion is that they hadn't even started on it until I showed up, because I had to wait another two hours to get it, and it certainly doesn't take two hours to change the oil, rotate the tires, and check a few things.

While I was waiting they tried to be extremely nice about it, apologizing profusely for the delays. At the end I finally learned why - they offered to give me a "free oil change" coupon as long as I "said good things" about them when Volkswagen Corporate called me to ask how the service went. I muttered some sort of "OK" and went on my way. I think it's the first time somebody has tried to bribe me in a real-world situation, which is sort of interesting (I don't count homework-bribes in school under this category).

When Volkswagen called I told them what happened, and the guy on the phone sounded displeased and insisted that they would "rectify the situation". My guess is that this dealership has been getting bad reviews (apparently for good reason), and Volkswagen has been getting on their case. I'm not sure if my complaint was anonymous or if they can trace it back to me, but I probably won't be going back to that dealership again anyway, mainly since it is so far away and inconvenient. I honestly expect to get bad service pretty much wherever I go, so I'm honestly not too displeased about that.

Posted on February 25, 2008
Filed under: Car, General Comments

No Candy

The best part about Valentine's Day is always going and stocking up on super-cheap 70%-off candy afterwards. Apparently the 17th is too late to do that, because today when I went to Target all the candy was already gone :(.

No Valentine's Day Candy at Target

Posted on February 17, 2008
Filed under: General, Random Comments

Server noise

Unfortunately, after a couple of months of operation, my Windows Home Server has started to make a lot of noise. The case fans were always pretty loud, but now the hard disk has started making a high-pitched whining noise. Normally this wouldn't be too annoying since you could eventually get used to it, but the noises fluctuate in pitch at seemingly random intervals. This is irritating since you can't habituate to it and ignore it.

My first thought was to put it in the garage with a little Linksys WiFi bridge:

HP MediaSmart Server in the garage

This worked pretty well and it certainly took care of the noise problem. Unfortunately it was a little far away from the AP, so the wireless connection went out every once in a while when doing things like using the microwave. It wouldn't normally really be noticeable, but it interrupted things like streaming music to the Squeezebox.

Another problem with the garage setup was that an outlet shortage forced me to run a power extension cable across the ceiling on a water pipe, right next to a fire sprinkler:

Power cable running across the ceiling on a water pipe

This was a disaster waiting to happen in more ways than one, and it also irked my inner-Electrical Engineer.

Now I'm trying a new solution, which is to stick the server in the laundry closet. This looks like it's working better so far (it's also a lot closer to the AP), but I'm waiting to see if it might overheat the closet or computer when the dryer is running.

Posted on February 9, 2008
Filed under: Electronics, General Comments

Speed Dating

So this evening I went to the grad student "speed dating" event at UW. It was not really what I was expecting, but it was still interesting nonetheless.

Before it started they announced that many more women signed up than men. This sounded like a good thing, but it didn't end up mattering since we didn't get through even half of the people.

It was set in a large room with long folding tables laid out in parallel. There were 20 men on each side and 20 women on the other side. Here's a rough mspaint rendering:

Speed Dating Room Layout

You were given 3 minutes to talk to the person across from you, at the end of which the women would stand up and shift down one place, looping around to the other end of the table. After you got through everybody at the table, there was a 5 minute break and then the females would all move to the next table (in theory at least).

This process worked well at first. When the bell rang, everyone would stand up and then all shift down one seat simultaneously. This broke down pretty quickly and eventually people were only moving one at a time, leading to a "bubbling" effect where people could not move until everybody else at the table had shifted down one, which often took more than a minute, cutting into the 3 minute period. As people tried to "make up" the lost time the problem just got worse and worse.

Unfortunately it seemed that the organizers of the event did not book the room for enough time, and we were only able to get through two "rounds". So while there were 180 girls there, I only met 40 of them.

On the tables were scattered "valentines" where you could write down your email address and give it to the other person if you were interested in them. The organizers did not describe the protocol for using the valentines (guy always offers his contact info first (or vice versa), guy asks girl for her contact info, etc), so it led to a bit of chaos as people didn't know what to do. The main problem with the system was that it was both awkward to ask the other person for their info, as well as offer your info to them. Shy people such as myself had difficulty doing either.

Other speed dating protocols don't allow communication between the two parties during the "dates", and participants fill out a list of people who they were interested in. When there's a mutual match, contact info is sent to both people. This seems like a much better system, at least for small groups of people where you can remember who the other people were. After meeting 40 or 180 people, I would have trouble remembering who was who, so that kind of system might not have worked too well unless you filled out the list as you went along.

During the 40 "dates" there were some good ones and some bad ones (most were just sort of awkward since it was obvious it wasn't a good match). Here are some examples of the ones that didn't go so well:

Her: So what are you studying?
Me: Computer Science.
Her: Ah, are you a hacker?
Me: Um, no.. not really.
Her: 'cause hacking is cool.
Me: Well it's not really as glamorous as it is in movies.
Her: Still it seems like it would be a lot of fun.
Me: You mean, like snooping on people's email?
Her: You can snoop on people's email???
Me: No, no, I don't do that.
Her: Why would you do that??
Me: Well if you were a hacker that's one of the things you would be doing.
Her: I'm not giving you my email address!
Me: No, no, I'm not saying I'm a hacker. I... uhh.. never mind.

Her: So what do you like to do in your free time?
Me: Uh, well I like to read-
Her: Ugh I hate reading.
Me: So what do you like to do?
Her: I like to drink.
Me: Like in bars?
Her: Yeah or clubs, wherever there's lots of alcohol.
Me: uh..
Me: ...
Me: Hmm, so 3 minutes is actually sort of a long time isn't it?

Me: So what do you like to do?
Her: I like to hang out with my ex-boyfriend a lot.
Me: Ah.
Her: He's like really the only friend I have.
Me: Uh huh.
Her: That's probably a weird thing to admit at this sort of thing, right?
Me: Yeah it is kind of a weird thing to bring up.
Her: Yeah I probably shouldn't bring that up.
Me: ...

Her: Wow, so you actually have like a real job!
Her: You probably have so much more money than everyone at this table!
Me: Uhh... Hmm well if they are all full-time graduate students, then yes I guess that is probably correct. But I don't mean to-
Her: Just like in terms of per-hour, you're worth so much more than us!
Her: Did you know that the average grad student only makes $13,000 per year?
Me: That sounds about right, I guess I didn't know the exact figure.
Her: That's as much as a McDonald's worker makes!
Me: Uh-huh.. yeah.. So how about that weather eh?
Her: Man it must be cool to have a real job.
Me: ...

Her: So how old are you?
Me: I'm 24.
Her: Wow, everyone here is really young. How old do I look?
Me: Uh, well I'm not really that good at guessing that sort of thing..
Her: No no you have to tell me! I want to know.
Me: Uh... 30?
Her: Ah how nice of you. I'm really 35.
Me: Ah... well.. yeah..

Posted on February 5, 2008
Filed under: General, Random, School Comments

Ghost

At work a co-worker got upgraded to a window office across the hall from me, so we naturally had to rig up an office-warming surprise for him.

ghost prank door

The shut door looks innocent enough..

ghost pops up

.. until you open it and a ghost pops up to scare you!

The idea was that opening the door quickly would cause the Angel of Death to pop up from the shadows and startle the victim. The bright yellow network cable probably looked suspicious as the door was opening up, but we had to make do with the supplies in the office.

Unfortunately, the prank was not a huge success and didn't really scare anybody, as you can see in the YouTube video below. We tried it out on various other co-workers and got similarly underwhelming reactions.

Posted on January 20, 2008
Filed under: General, Humor Comments

Hmm

I saw this in a university newsletter spam today:

If you’re SINGLE and want a “special” Valentines Day – Join us for a night of Graduate student SPEED DATING. Just in time for Valentine's Day! Come meet fellow single graduate students!

Who: Current single UW graduate students

What: Speed Dating

When: [redacted]

Where: [redacted]

Please RSVP to [redacted] to let us know if you are coming. (The sooner you respond, the better your chance of getting a seat!). If you feel comfortable please also let us know what table type you would like to be assigned to. There will be four tables to choose from: straight, gay, lesbian, and bisexual.

Note: this event is only open to UW graduate students; IDs will be checked at the door.

My initial reaction is "Ha, like that would ever work. Delete.", but on second thought I'm actually considering it, if for no better reason than curiosity. I have never been to one of these kinds of things - anyone have any idea what they are like? The Wikipedia page actually makes it sound somewhat interesting.

Being an engineer I naturally started trying to do a CBA on it, but the usual approaches aren't working too well. Here's what I have so far:

Pros:

  • Pool restricted to just girls who are single.
  • Potentially lower awkwardness/expectation levels.
  • They're graduate students, so at least some level of intelligence-filtering has already been performed.

Cons:

  • Potential for embarrassment.
  • Speed-dating == speed-rejection? [see: personal phobias]
  • Mail does not say whether free food is provided.
Posted on January 16, 2008
Filed under: General, Random, School Comments

Rent Increase

After last year's experience of having my rent raised on me by more than $100 per month for two years in a row, I decided to try mitigating the problem by only signing a 9-month lease. I wanted to move my lease renewal period from June to March/February, in order to hopefully lock in low rental rates during the winter. My hypothesis was that June is a bad time to sign a lease due to all of the college kids who just graduated and are starting new jobs at that point, thus creating increased demand for apartments. In my area there's also a large influx of summer-only interns that work for nearby tech companies. The traditional wisdom is that all of these hundreds of interns fill up all the available apartments and cause rents to be higher over the summer. I haven't seen any data that actually backs up this idea, but it seems plausible.

Today I got my lease renewal offer from my apartment manager and I was "pleased" to find out that my rent is only increasing $40 per month for this year, which is much less than in previous years and within the 2%-4% "move out threshold" that I established last year. I want to attribute this "success" to my plan described above, but in all reality it probably has much more to do with the plummeting housing market in Seattle than anything else.

As far as I can tell, there are two schools of thought about the relationship between apartment rents and housing prices:

  • The "traditional" model says that rents and prices are tightly linked to each other, and the economy as a whole. If house prices go down, then rents should also go down because there's less money flowing around. Similarly they should both go up at the same time as well. This model seems to have matched the last few years, as both housing prices and apartment rents have climbed to ridiculously high levels.
  • The "bubble" model suggests that when a housing bubble "pops", as seems to be happening right now, then rents should actually increase as housing prices decrease since all of the people who would have been buying houses are now forced into renting apartments due to the credit crunch, which increases renting costs everywhere due to increased competition. Similar logic would also seem to imply that rents should decrease or level off during a housing boom, since lots of renters are moving out and buying houses.

The fact that my rent is still going up even though local housing prices are declining seems to indicate that neither theory is totally correct (or as often seems to be the case, reality is just more complicated).

It may also be related to the fact that Microsoft keeps hiring 10,000 new people every year. Any theory is going to predict that local prices are going to be rising in that scenario...

Posted on January 14, 2008
Filed under: General, Housing Comments

RAM Upgrade

One of the problems with the HP MediaSmart windows home server is that it only comes with 512 MB of RAM by default. This is probably sufficient for a file server, but it gets pretty slow when you load it up with other stuff and try browsing the web. Here's my Task Manager results after two weeks of normal usage:

Windows Home Server out of memory

The way to check if your computer doesn't have enough RAM is to compare the Physical Memory and Commit Charge numbers. In this case, the server has 512 MB of RAM (Physical Memory = 490956 K), but the operating system has currently allocated about 545 MB of memory (Commit Charge = 558872 K), which means that it's 6.5% over-allocated even when it's idle and doing nothing.

The 'Peak' Commit Charge reflects the heaviest usage the system has seen since it was booted, which probably happened when I was using Firefox. In this case it was about 753 MB (770832 K), or 241 MB (47%) over-allocated. When this happens the system grinds to a halt as it tries to move unused blocks of memory to the hard disk in order to keep the 'Available' physical memory (98672 K here) high enough for programs to run smoothly. These are the kinds of slowdowns we want to avoid since they are the ones that happen when you are actually trying to use the computer.

Fortunately these days RAM is cheap and a 2GB stick can be had on NewEgg for only $50, which should be more than enough for the foreseeable future. I was surprised at how easy it is to upgrade the RAM in the HP server - it just required removing a couple of screws and sliding the motherboard out of the bottom of the case:

HP MediaSmart RAM Upgrade

With the new RAM the system is running a lot faster, but the bottleneck is now the relatively weak 1.8 GHz AMD Sempron processor, which doesn't appear to be readily upgradeable. One of the reasons to go with a Sempron is the power/heat savings, so it's probably an acceptable tradeoff at this point.

Posted on January 5, 2008
Filed under: Electronics, General Comments

Broken Rock Band pedal

Broken Rock Band Drum Pedal

The excitement of New Year's Eve got a little out of hand.

Posted on January 1, 2008
Filed under: Games, General Comments

Dead cable modem

While I was gone on my brief Christmas vacation over the last week, my computer back at home disappeared from the internet - the IP address did not respond to any connection attempts at all.

Naturally I feared the worst, namely that some thieves broke into my apartment and stole all my stuff, or something like that. Fortunately, when I got home I discovered that the cable modem had simply stopped working, and everything else was fine.

There may have been a power outage or some other electrical anomaly while I was gone, because the cable modem seemed to be fried. When I plugged it in, all the LED lights turned on but it didn't seem to do anything else. I searched around on the internet but couldn't really determine what these symptoms meant, or how to fix the problem (for the reference of anybody searching for the same thing in the future, it's a Terayon TJ 715x cable modem).

What happened next was the most amazing thing I have experienced all week. I thought for sure that I would have to call Comcast, argue with them ("yes, I tried rebooting the computer.."), make an appointment for two weeks in the future, which they would be late for, causing me to miss work, etc. (being without internet access the whole time, of course).

What actually happened was that I called Comcast, immediately got a real person on the other end, explained the problem, and got a maintenance appointment scheduled for "right away". A half hour later, the guy showed up, swapped out my modem with a new one, and now everything works again. In total, it took about 45 minutes.

So I am pleasantly surprised that Comcast had such good customer service and I was able to get the problem fixed so quickly. Of course, this doesn't excuse them blocking our, uh, bible, downloads, but there has definitely been a lot of improvement since my last encounter with them.

Posted on December 27, 2007
Filed under: Electronics, General Comments

UW Grading System

This week I got the grade for my Data Compression class and was somewhat surprised at the format. From my undergrad experience I was expecting it to be in the usual A, B, C format, but instead I got a "3.9" grade.

I looked up the University of Washington's grading system, which is apparently number-based and on the same scale as the GPA system. So 3.9-4.0s are "A equivalents", 3.5-3.8s are "A-"s, 3.2-3.4s are "B+"s, etc..

I'm a bit torn on my evaluation of the merits of this system. On one hand, it's much more fine-grained than the lettering system, and you can distinguish between students who worked really hard and got perfect scores on everything, and other students who just did the work required to get an A. The letter grade system doesn't really distinguish between people to that degree, until you start using the plus/minus quantifiers to the letters, at which point you've basically admitted that just using the letters doesn't quite cover all the information you need to convey. It seems that UW has solved that problem by just throwing away the letter system and replacing it with the number system.

On the other hand, I'm sort of miffed by this, because after all these years of school, it's become very ingrained in my mind that an A == 4.0 GPA. Now I have an "A", but my GPA is 3.9, which in my mind means "dang, screwed up and got a B in 1 out of 10 classes." Of course, in reality, a 3.9 is a perfectly fine grade and probably nobody will ever care anyway (how much to MBA/PhD programs care about GPAs? I am not really sure.. hrmm..). Still, grr :).

Now that I know how the system works, I can accommodate it if I decide I really need that 4.0 (which, honestly, I probably don't).

Posted on December 21, 2007
Filed under: General, Random, School Comments

1984

Apparently my copy of 1984 restarts from the very beginning on page 43, meaning that it's missing about 40 pages at the end of the book:

1984

If it was any other book I would have just chalked it up to incompetence, but since it was this particular book, I had to wonder if it was done on purpose, and if so, what did those 40 pages contain that caused them to get tossed down the memory hole? Perhaps a stinging revelation that the paperback-publishing industry is the root of all evil? If I asked about it, would the answer be that "1984 is missing 40 pages. 1984 has always been missing 40 pages"?

I found and read the rest of the book on the internet, and alas, it doesn't actually appear to be a vast conspiracy 🙁

Posted on December 13, 2007
Filed under: General, Random Comments

Windows Home Server

This week I got a HP MediaSmart server, which runs the new Windows Home Server software. It's a small, quiet headless computer about the size of two six-packs stacked vertically:

HP MediaSmart Windows Home Server

Fortunately I was able to get an employee discount of a few hundred dollars off the list price. I don't think it would be worth it otherwise, compared to just re-using an old desktop computer as a server. The advantages of this hardware are that it's small, quiet, consumes very little power (it has an AMD Sempron), and has server-class parts designed to be running all the time (SCSI .5 TB drives, etc). The disadvantages of the hardware are that it is headless (can't be used as a small media center or DVD player), and that it has only 512 MB of RAM.

I got it to replace my Mac Mini, which I had been using as my media center, MP3 server and remote-login server. The Mac Mini hardware apparently wasn't up to the task of running all the time, since it died a horrible death after running continuously for about a year and a half. I'm hoping this new computer will fare better.

I would use my normal desktop computer for server stuff, but the problem is that it's extremely loud, noisy, and sucks a lot of power, so I usually have it turned off at night and while I'm gone. This creates the problem that I can't log into my home network while I am away, in case I need to access an important file or do other, uh, tasks that can't be done at work.

One nice feature of Windows Home Server is that it is essentially a stripped-down version of Windows Server 2003, with some unnecessary parts removed (Active Directory server, etc), but useful things kept in, such as IIS. It gives you a free *.homeserver.com domain name, and automatically updates the DNS records whenever Comcast changes your IP address on you. At that address it serves up a little web page that allows you to log in and access files on the server, upload new files to it, and TS into the server itself or other computers on your network with Remote Desktop Proxy. Using the normal server administration tools, you can use Wake-On-LAN to boot up any of your computers, even if they are turned off or are sleeping (which is cool). You can also run whatever ASP.NET 2.0 apps you want on it (I'm trying to think of a cool one to write).

Another of the big features is that it can automatically back up your Windows computers every night with Volume Shadow Copy, and allow you to restore the entire OS to any point in time by booting off a CD and copying the image off the network. You can set it to back up the important data on multiple disks, so that if one of them fails in the server, you're still safe. These kind of regular backups are things that everybody knows they should do, but few really do, myself included. Up until now, my current backup strategy was "burn a DVD every 6 months or so", so this should be a lot better.

Unfortunately I am hitting one problem with the way it does the automatic backups. It sets your computers to automatically wake themselves up at 3:00 AM via ACPI and connect to the server to do the backup. After that, it seems to assume that the computer will automatically fall back asleep after 30 minutes of inactivity, or whatever the Windows default is. Of course, I have automatic sleeping disabled on my computers, so that doesn't work. For the last two days I've woken up to find that my computer woke itself up at 3:00 AM and stayed on all night. I made a small scheduled task that should put the computer back to sleep after it finishes backing up, so we'll see if that works tonight.

One of the interesting things about the HP server is the printed manual that comes with it. I don't know if they just never copy-edited it, or accidentally published the first draft instead of the final one, but it's absolutely terrible (almost 'Made in Taiwan'-bad). Here's a little gem on the DRM-troubleshooting page:

HP MediaShare DRM

Posted on December 9, 2007
Filed under: Electronics, General Comments

Disappointed

At work I made an apparently too-cryptic joking reference to the Total Information Awareness Program and John Poindexter, but nobody understood it.

I was quite disappointed - I had figured that most people would get it. I'm sure if it had been a reference to American Idol or Survivor more people would have understood it.. So sad.

Total Information Awareness logo

Posted on October 26, 2007
Filed under: General, Humor, Random Comments

Dead Mac

There were some power outages and fluctuations this week due to wind, and one of the casualties seems to have been my Mac Mini media center (and yes it was plugged into a surge protector):

Sad Mac Mini

It refuses to boot or do much of anything at all when I push the power button (the only button or switch on the entire thing). I don't know whether it is the computer or the power supply. The AC adapter reads 0 Volts when probed, but it may just be waiting for a load to be applied. I suppose I can probably take it to the Apple store and see if they have a spare power supply I can test it with. It's out of warranty (of course), so I doubt it would be worth paying the repair fee if it's not just the power supply..

Posted on October 20, 2007
Filed under: Electronics, General Comments

Seattle Forecast

Looks like this week it is: rain, rain, rain, rain, rain, and rain.

Seattle Forecast

Posted on September 29, 2007
Filed under: General, Random Comments

Car recalled, again

This week: Volkswagen recalls 340,000 vehicles because of head lights

And in February: VW recalls 790,000 vehicles because of brake lights

Recalled twice in one year.. this could be a bad sign.

Posted on September 29, 2007
Filed under: Car, General Comments

Me

Apps

CubeCheater Piratizer

Search

Archives

Site Tasks