August 29, 2007

I've Been Feeling Detached Lately

Before I get back to gadgets, feeds, and Google, I have had a personal harrowing experience the past couple of weeks that I will share as a cautionary tale.

A couple of weeks ago, when I was visiting the mother ship, I noticed that something was "off" with my left eye. It seemed like the inside part of my left eye was looking through water or something, and it was messing with my perspective vision. Nothing hurt, and it wasn't hard to compensate for, but it was still kind of annoying. When I got back to Chicago on Wednesday (8/15), I called for an appointment with my ophthalmologist; I had LASIK done back in 1999 and I hadn't had a check-up in a couple of years, so I was overdue anyway. I just said that I needed check-up and that my left eye was a little funky. The doctor was on vacation that week, but I had an appointment for the following Tuesday.

The rest of the week was fine ... the eye was a little annoying, but not that big of a deal. I was a little anxious about the appointment, because that watery spot on my eye was not going away. At 2:00pm on Tuesday (8/21) I drove to the eye doctor's office. I went through a bunch of tests that all seemed kind of normal, plus a "side vision" test which is like a video game from 1974: when you see a little spot of light anywhere in your vision, press a little button which goes beep. The right eye was a steady series of beeps, but the left eye had long periods of time with no beeps. Hmmm.

The fun started after the doctor dilated my eyes and he began to examine my eyes with a bright light and some kind of lens that formed a very bright green vertical line. Right eye ... fine. When he got to my left eye and went looking around, he actually GASPED. He pushed back in his stool and all of the sudden he started treating me like I was radioactive. "Don't bend over. Don't shake your head. When was the last time you ate something today?" I knew things were probably not good after he asked that question.

He said that my left retina had become detached. Fortunately, it was only partially detached because it had not reached my macula, but I needed to have it taken care of right away or I risked permanent vision loss. So they made an appointment with a retina specialist in the area and I drove directly to the new office (which fortunately was in Arlington Heights where I live). This was at like 4:30pm. I figured I was probably going to ruin someone's evening.

More stinging eye drops, more bright lights, more tests ... yep, a serious detached retina. "When was the last time you ate something today?" I was going to have to go into surgery that night. A quick stop at home to coordinate babysitters and then I was off to the hospital. I haven't driven since then. Checking into the hospital was a piece of cake, and soon enough I was just lying around waiting for the 10pm surgery. Christine made it to the hospital right before I was rolled into the operating room.

They were going to perform a couple of procedures to re-attach the retina. The first is called a scleral buckle, which involves putting a flexible band around the eye to try to squeeze the wall back to the retina so it will go back into place. The second procedure is called a vitrectomy, where they essentially suck the fluid out of your eye and replace it with a gas bubble -- the idea that the gas bubble will exert pressure on the retina wall to keep it in place. It was this gas bubble that would become my nemesis.

The procedure started and I was under "twilight sedation", which is really pretty freaky. I remember the whole procedure (well, at least I think I do). I remember talking to the doctor while he was doing God knows what with needles and scalpels to my eye. They covered my right eye so I couldn't see anything, but still it was wild not being freaked out by all of that. That twilight sedation is good stuff. All in all, the procedure took a little over two hours.

Christine then drove me home. My eye was all patched up and I had a shield over my eye as well. In order to put the gas bubble in the right position, I had to sleep all night on my left side, which was tough because that was the bad eye side. Let's just say it was a very long, uncomfortable night. When I woke up, I had to continue lie on my left side as much as I could -- either that or I had to stare at the floor. At least on the left side I could watch some television.

I had a post-op appointment at 2pm in Chicago, which my dad drove me to (thanks Dad!). The bandages came off and everything was a blurry mess. Apparently this is okay, though, because the doctor said that everything looked good. My instructions for the next seven days were: use four different eye drops four times a day, no washing my hair, no lifting anything more than 5 lbs., no flying, try not to read very much, and maintain my head in a certain position -- either laying down on my right side or staring at the floor -- for at least 22 hours out of the day.

So, for the next few days my hair got grungier, my right hip and shoulder got sore, and my eye looked nasty. It wasn't too painful ... mostly just headaches that were the worst at night. I couldn't do much but lay around and either sleep or watch tv. That was actually a silver lining ... I haven't felt that rested in quite some time. I could do some work on the laptop by hunching over and staring down at the laptop below me, but really only for short bursts of activity. The FeedBurner team was very supportive and covered for me nicely.

This past Tuesday (8/28) I went in for another check-up and got the good news: the gas bubble had done the job and the retina had successfully re-attached. I could pretty much get on with my life, except I still couldn't see out of my left eye and I still couldn't get on a plane or drive. Oh, and I still had to sleep only on my right side, but during the day I could go about my normal business -- just take it easy staring at a computer screen. This was fantastic. I celebrated by taking a shower and washing my hair.

I actually went back to the office on Thursday. I couldn't stare at the computer screen for too long, but it was great to get out of the house. My depth perception and peripheral vision is horrible, so there's a lot of my gliding around with my hands out to guide me. And of course I've got the crazy eye to scare the children and co-workers: the pupil is always dilated and is a little, well, bug-eyed. And red. Not the prettiest thing you've seen, but a whole lot better than it was a couple of days after the surgery!

So, what's next? Well, I had planned my brother's bachelor party in Las Vegas for next weekend, but I wouldn't be able to get on a plane because the gas bubble will still most likely be in my eye. So we're doing a trip up to Wisconsin instead. It will supposedly take a few weeks before I'll have reasonable vision in my left eye. Right now, when I look straight ahead, I "see" the gas bubble in the bottom half of my vision (it looks like I'm looking through a drop of water) and the top half of my vision is like looking through a thick yellow plastic sheet. That will supposedly get better, although I might have wear glasses or a contact lens. Bummer.

As soon as my left eye recovers, I actually have to go in and have preventative laser surgery on my right eye. Apparently there are thin spots and small holes in the right eye retina wall, so it is susceptible to detachment. As long as there's no gas bubble, I'm in!

What should you take away from this? Well, if you ever see flashing lights, new floaters, a shadow in the periphery of your field of vision, or a gray curtain moving across your field of vision, see your eye doctor right away. Say it's an emergency. That's where I went wrong. I didn't think it was that big of a deal, and I guess I was actually really lucky that it didn't detach more in that week before I saw the eye doctor. I should have insisted that I see SOME ophthalmologist, even if my regular eye doctor was not available.

I'm ready to get back to work and resume life. It's a really strange feeling when your life unexpectedly gets put on hold for a while. I'm thankful that medical technology exists to fix this -- it's just so amazing when you really think about what doctors do for things like this. Inject a gas bubble into your eye and wrap your eyeball with a belt? Wild.

So, that's that. I'll be writing about more pleasant topics Real Soon, I promise.

Reboot

Quite a bit has happened since my last blog post: I'm now a Google employee, I've found out that we're going to have a baby boy in November, I've picked up a few new gadgets, and summer has flown by. Lots to say, I just haven't been saying it. Time to reboot the blog.

May 16, 2007

Sansa Connect?

In my continuing quest to expand my personal Yahoo! Music kingdom, I've become intrigued by the Sansa Connect WiFi player. I really liked the description of the device given at "How to get the most from your Sansa Connect". I'm totally bought into the subscription model, so this seems pretty cool. I'll probably end up waiting for version 2.

On the home front, I'm considering giving the Sonos system a try. I'd probably jettison one of my YMU accounts (yes, I have two: one for me and one for Christine) for a Rhapsody account. should probably do that anyway.

May 14, 2007

Yahoo! Music Podcasts?

Long-time readers know that I'm a huge fan of the Yahoo! Music Unlimited service. I've built my little music ecosystem around it, with a Creative Zen Micro and a Roku Soundbridge as devices that support the subscription content. I'm generally happy with the set up, even though the Yahoo! Music Jukebox is -- ummm -- just not very good. Here comes a rant.

So, here's what I want to do: subscribe to a podcast (specifically, the KEXP Music that Matters podcast) with Yahoo! Music Jukebox and have it automatically download new episodes to my portable player when they become available. Pretty much a minimum level of functionality you'd expect out of a podcast client, yes? Let's try to set it up.

First, there's no support for podcasts out of the box, so you have to go find a plug-in somewhere. So, go to the help, type in "podcast" and a promising page comes back: Podcasts and the Yahoo! Music Jukebox. Cool, maybe this is going to be easy. "If you already have the Yahoo! Music Jukebox, you only need a plug-in to use podcasts. Download the plugin here". Great, let's click on that link.

Huh? I'm taken to some Yahoo! Gallery Beta home page, with no mention of anything music-like anywhere. Okay, fine ... must have been a re-org. Let me just type in "podcast" in the search box then. Here are the results. Wow, that's pretty unhelpful -- nothing that looks like a plug-in here. I click around for a while, and there's just no plug-in to be found anywhere.

Okay, that didn't go so well. Maybe Google knows where the plug-in is. Ah! There's an entire Yahoo! Podcasts Beta site. Here we go ... a link in the FAQ: Podcasts in the Yahoo! Music Engine. Well, that's the old name for the client, but that's probably okay. Click to that page ... we might be in business! "If you have the Yahoo! Music Engine software, you can get the entire Yahoo! Podcasts experience without launching a browser. All you need to add is the podcast plug-in, if you haven't already downloaded it, click here". What am I waiting for? Click!

yahoo_podcasts_not_found.gif

(In the background, we hear the gnashing of teeth and the rending of garments)

Back to square one, I find an old reference on Jeremy Zawodny's blog to a podcast plug-in from 2005. I'm more than a little skeptical because it's so old, but what the heck ... click on it and I actually get deep-linked into a page that actually works!

So, I download the plug-in, try to install it, and it ends up uninstalling Yahoo! Music Jukebox from my machine. Wow. Fine. Reinstall Yahoo! Music Jukebox. Thankfully, all my settings are still there. Try installing the plug-in again. This time it seems to work ... I get two tabs labeled Yahoo! Podcasts and My Podcasts.

Success? Not a chance. Even though I have these two tabs and it looks like I can subscribe to podcasts, there's just no way I can find to actually link the podcast to my device so it gets synced up. Maybe create a playlist, add the postcast subscription to the playlist and sync the playlist? Nope.

All smarminess aside, I'm stuck. Seriously, can anyone help me at this point?

May 10, 2007

Xbox Live Firewall Settings

For some reason, the other night when I was trying to play some Gears with my brothers, my Xbox Live connection was freaking out ... I couldn't connect to a hosted game and I was seeing lots of lag. Lag! I haven't seen lag like that since Quake CTF over a 56kbps modem.

So, at some point I must have changed one of my routers or switches, because when I went to check my network connections I got a "Moderate" for my NAT settings. Ah, so I must have to tweak some firewall settings. Funny I didn't have this problem before. Well, since I'm pretty sure I'm not going to find "Old Pentium running shorewall on Gentoo" on the list of Xbox Live certified devices, I try to find out what port forwarding I need to do.

Here we go: "Xbox 360: Port settings for Xbox Live". Looks like port 88 UDP and port 3074 UDP and TCP. So I put those rules in the firewall, reload the config, and test the network connection again. Now I get "Strict" instead of "Moderate"! That's no good. Well, it turns out that you have to route TCP on port 88 as well as UDP ... I put that rule in as well and now everything works as it should.

So, moral of this story: forward both UDP and TCP traffic on ports 88 and 3074. Port 88, eh? I never knew that Xbox Live used Kerberos. Learn something new every day.

April 24, 2007

Circuit of Life

Well, my Slingbox just died. Must have blown out the power supply or something, because plugging it in does nothing. Oh well ... I think I bought it the day they came out, almost two years ago now. I guess I'll have to pick up a new one.

But, for every yang there's a ying ... my Roku SoundBridge started working again. For the past several months, I couldn't contact any of the servers in the house so all I was getting was Internet radio. I don't know if it was a firmware update on the Soundbridge, a new version of Yahoo! Music Jukebox, or a new router, but all of the sudden I can play all of my Yahoo! Music again. Ahhhh.

April 19, 2007

Save Net Radio

I've been exposed to so much great music via Internet radio that it just fries me to think that ignorant lawmakers are trying to crush it. Please sign the petition to do what we can to keep these stations operating.

SaveNetRadio.org

March 15, 2007

March Madness Widget?

Where's my Google March Madness widget -- er, gadget? I see there's one for Yahoo! Widget Engine and seems like there's a nice SpringWidgets one (see below), but nothing for Google Desktop. Don't see one for Vista Sidebar either. Ah well. The nice thing about SpringWidgets it that it works both in a web page and on the desktop ... very cool.

March Madness always reminds me of one of our coolest Spies back from the Spyonit.com days: we'd alert at the conclusion of every game, or only for upsets. That was a fun one.

March 05, 2007

Why the Semantic Web is Doomed

So, why is the so-called Semantic Web (caps absolutely Required) doomed to fail? While there might be lots of technical reasons, all you really need to know is that one of the core specs for the Semantic Web has the acronym of GRDDL. I'm sure they want me to pronounce that "griddle", but I can't help but pronounce it "girdle". What's even worse is what is stands for: Gleaning Resource Descriptions from Dialects of Languages. Gleaning? Really ... you're going with gleaning? I can understand picking lame-ass words to fit a bitchin' acronym, but you chose gleaning so you could nail down the girdle acronym? I really don't need to know any more about these people.

This has become a useful filtering mechanism, actually. I get contacted by lots of different companies about all sorts of things (note to tech recruiters: I will never ever answer my phone, so stop calling). Now, when I check the company's web page, if the words "Semantic Web" show up I know I can ignore them, as they will be neither competitive nor complementary to anything I'm interested in doing.

February 26, 2007

Fun with User-Agents: Firefox and IE7

One of the key parts of FeedBurner's stats processing is trying to determine if a request for a feed represents a casual, drive-by browse or an intentioned subscriber. It has gotten a little bit more complicated lately as some clients serve double-duty. I wanted to share with you how we handle the requests from the two most popular browsers, Firefox and Internet Explorer 7.

Firefox

The Firefox browser can also be used as a feed-reading client with the Live Bookmarks feature. So, the key for FeedBurner is to determine if a request for a feed is coming from Live Bookmarks (where we can count it as a subscriber) or from a visitor that just happened to click on the feed chicklet (where we just report it as a browser hit). Up until Firefox version 2.0.0.1, we really have to guess, since the requests for the most part look identical: they both have a User-Agent that looks like Mozilla/.*Firefox/.*. So, what we do is that we look at a couple of other headers: X-Moz and Referer. So the logic tree looks like this:

If version < 2.0.0.1 and (X-Moz: prefetch or Referer is not empty), then it's a browser.

Firefox (version 1)

Otherwise, it's a Live Bookmarks request.

Firefox Live Bookmarks (version 1)

That's not ideal, because if someone just types in the feed URL in the location bar or launches the feed URL from a different app, we'll count it as a Live Bookmarks hit because the Referer will be empty. But we have nothing else to hang onto.

Firefox 2.0.0.1 has a wonderful new addition that makes this tracking much more accurate. Now, if the request is coming from Live Bookmarks, there will be an X-Moz: livebookmarks header. We can detect that and we don't have to do the referrer guessing game.

If version >= 2.0.0.1 and X-Moz: livebookmarks, then it's a Live Bookmarks request.

Firefox Live Bookmarks

Otherwise, it's a browser request.

Firefox

Internet Explorer 7

The latest version of Internet Explorer adds feed reading capabilities by leveraging the Windows RSS Platform. So, on the surface, things seem really straight-forward, since the Windows RSS Platform has its own User-Agent that's distinct from the IE7 User-Agent.

If User-Agent matches Windows[- ]RSS[- ]Platform/\S+ .*, then it's a "Windows RSS Platform" subscription.

Windows RSS Platform

At this point, however, things get complicated. Outlook 2007 has a cool feed reading capability. Unfortunately, the Microsoft Office team didn't get the memo and identifies itself the same as IE7 instead of leveraging the Windows RSS Platform, which would have made much more sense. So how do we distinguish between IE7 browser hits and Outlook 2007 subscriptions? We use the old referrer trick: if there's no referrer, assume it came from the automated poller fueling Outlook.

If User-Agent matches Mozilla/4\.0 \(compatible; MSIE 7.* and Referer is empty, then it's an Outlook 2007 subscription.

Outlook 2007

But wait ... there's more! It turns out that some Microsoft Vista Gadgets also identify themselves as IE7, and we think it's more appropriate to treat those requests as subscriptions rather than browser hits. Fortunately, there's a hook: we can look at the Referer, and if it starts with x-gadget:///, then the request is coming from a Gadget.

If User-Agent matches Mozilla/4\.0 \(compatible; MSIE 7.* and Referer starts with x-gadget:///, then it's a Vista Gadget subscription.

Microsoft Vista Gadget

Finally, if none of the other rules match, we treat it as an IE7 browser hit.

Internet Explorer 7

So, those are the kinds of decisions that we make when evaluating each of the over 300 million feed requests we get each day. We're constantly reviewing the list of User-Agents we get in those requests in an effort to make these stats as accurate they can be. What really makes our lives easier is when we can definitively discern through request headers if the request is for an intentioned subscription vs. "other". With developments like a distinct User-Agent header for the Windows RSS Platform and the new X-Moz header, we're getting closer!

About Me

Hello, my name is Eric Lunt. I'm the CTO at FeedBurner, and this is my sorta-kinda semi-professional blog. You can check out my bio for more info.

Feeds

Or, receive an email when this blog changes:

Enter your email address:

Delivered by FeedBurner

Recent Vox Posts

Recently Watched

Reading

Listening To

Creative Commons License
This weblog is licensed under a Creative Commons License.