Another OOK update

Went in for the followup, after wearing the trial pair of lenses for 9 days. Even though the right lens is still sitting slightly off-center, we decided to go ahead with the custom pair of lenses, since the time required to do another round of trial lenses just seems like too much bother. I can still see halos in both eyes at night (large pupils mean the correction zone is visible when dilated) but during the day, especially outdoors, my vision is fantastic.

There is still some corneal staining, particularly in the left eye, and we’re going to move to using the storage solution to lubricate my eye prior to wear, and again before removal. The staining means that my vision is subjectively not fantastic today, but if we can eliminate or reduce it through more extensive use of lubrication, I should have pretty good vision. Today, my measured vision after removing the contacts was 20/16, which is pretty darn good, even with the staining.

When discussing whether to do another round of trial lenses, the doctor commented that “We don’t expect to get perfect vision with OOK… we usually prescribe for 20/Happy, and you’re already unusually good.” I guess I may be overly picky, but I’m a bit less enthused about the whole prospect right now. We’ll see how the custom lenses are. The convenience factor of being able to see during the day is great, but I pay for it by having to be meticulous about wear.

The next step is to (again) let my eyes revert to normal. Then we’ll do a series of technical measurements on the shape of my eye and how well it reverts, and hopefully in about 2 weeks, the custom lenses will arrive and I’ll start wearing them.

You might also want to look at my other posts on Overnight Orthokeratalogy.

Howto: Disassemble LaCie LittleDisk External Hard Drive

I recently purchased a 500GB LaCie LittleDisk external hard drive. This is a nice little external 2.5″ form-factor drive, completely bus-powered, and quite compact. At $99 from newegg, it was a good deal. However, I wanted to swap the drive with the one in my laptop, which is only 250 gigs.

It is easy to take the drive apart, once you know how it is made:

  • Do this on the “top” side (marked “LaCie” on the case, and “Design by Sam Hecht” on the insert).
  • Slide a credit card between the external casing and the insert, pushing the two sections apart.
  • As you can see in the picture, the insert is connected to the outside case by two plastic tabs which were glued in place. Slide the card horizontally to break this bond on both tabs.
  • Pull out the insert.

LaCie 500GB LittleDisk - Disassembled

You could also use a knife, but a plastic card helps prevent damage to the case. There were 2 further tabs on the other side which were not glued on my model. It took a fair amount of force to pull the insert out (the padding provides a tight friction fit), and when I re-assembled the case with my old laptop drive in it, I did not bother to re-glue the tabs. Additionally, you may need to replace the fuzzy padding strips (particularly the thin ones) as they have a tendency to tear when you remove them from the drive.

Mine had a Samsung model HM500LI SATA drive in it, which is now happily running my Thinkpad X61. One nice side-effect of running Ubuntu is that I was able to swap the drives, and then boot directly from the old disk via the usb enclosure. Not something you can do with windows.

netflix dataset

I’ve been fascinated with the problem of improving search results for a long time, but have never really had a chance to try any ideas out on an actual dataset. Recently my dad suggested that I grab the data for the netflix prize and play with it. This had not occurred to me before, but it is data which is very relevant to the problem of general web search – groups of users ranking items based on their relative personal value.

I have no pretensions about seriously competing for the million dollar prize, but I do think that playing with the dataset should (at worst) give me a bit of hands-on experience with data processing, and might perhaps allow me to solidify some of my ideas about relative ranking of items, as determined by a group of similar users. Unfortunately, my formal statistics training is lacking, but it should still be fun to play with. I am considering finding a statistics class to audit next semester, since it’s a skill I should have, even if my degree doesn’t directly require anything.

I’m interested in this as a personal exploratory project, so I do not plan to seriously scour the web for the techniques that other participants are using, or to studiously read the blogs of all the top teams. If something comes up, I’m not going to actively ignore it, but I want to develop my own ideas.

I plan to use python for doing the data processing, but may need to be somewhat clever, since I’m likely to quickly run into memory limitations working with a dataset this large.

Some of the initial questions and ideas I want to play with:

  • How does the current average rating (as displayed to a user at the moment they rate the movie) affect users ratings? Can we correct for this trending?
  • Which movies experience extremely disparate ratings (many 1 and 5 star ratings)? Can we use these movies as strong indicators of how we should group users?
  • (from the previous) How extreme are users? Should we be ranking the opinions of users who rate many movies 1 or 5 stars differently from those who tend towards the middle? Should we be figuring out how to correct for this?
  • What happens if we binarize the data, and make everyone an extreme user? Can we do something useful with this, and then work the average ratings back into the picture?
  • What IS the median rating for the data? Is it 3?
  • Can we identify those people who seem to be unaffected by the average rating? Can we use their ratings in a valuable way? Should they form the basis for individual groups into which we can put the people who are swayed by the current star rating? Can we even categorize people into these two groups?

Some of these questions are easier to answer than others, and some could probably be found by a simple Google search, but I think they represent a good starting point for building analysis tools.

More OOK

I went through another pair of trial lenses, and we think that these, the third pair, may finally do the trick. They’re still a little bit off-center in the right eye, but it’s close enough that the treatment zone should cover the pupil. I’m starting the 10-day wear period today to see how they are after I’m fully corrected.

As an aside, dehydration makes a BIG difference in how easily the contacts come out of my eyes. When I last went in, I was a bit dehydrated after being out in SF for my friend’s bachelor party, and it took us a long time to remove the lenses. The normal procedure is to instill a couple lubricating drops in each eye, wait a few minutes for them to work their way under the lens, and then pop it out. This took us nearly 20 minutes, and we still managed to remove a bit of the outer layer of the left eye. Moral of the story? Twofold: Drinking causes noticeable dehydration, and even a little dehydration goes a long way towards changing the dryness of your eyes.

Hopefully this latest pair will do the trick. If I can still see the correction zone in this pair after the 10 day period, I MAY get another pair of lenses, or I may get dropped from the program for being too fiddly. Which is a shame, because I’ve seen the potential for a really great thing here. In either case, the doctor continues to be great, really genuinely worried about my experience during the whole process, and quite happy to put up with my multitude of generalized questions about vision, and the process.

You might also want to look at my other posts on Overnight Orthokeratalogy.

OpenID, and the posts you make

When I use my OpenID to comment somewhere, most sites list my URL in the comment, but they all add a rel=nofollow attribute to it. This is clearly the correct behavior, as anything else would encourage spam. However, there’s not any way (in many implementations) to tell the difference between an OpenID comment, and a comment entered by a regular user that includes a URL.

It might be possible to create a new attribute which indicates that a url is that of a logged in OpenID user, but this would have slow adoption and would be far from universal (and still require rel=nofollow, creating a contradiction). Instead, it should be possible for the OpenID provider to keep track of which sites have asked for login details, and provide that list to the user. This is the point at which it might make sense for an OpenID implementation to report additional information about the reason for authentication (create a new account, post a comment, whatever).

At the very least, it should be possible to provide the user with a list of “sites you interacted with.” A little filtering, and it might be possible to dynamically allow a user to add a feed of “places I’ve commented recently” to their blog, providing something similar to a trackback, without the required mechanisms on both ends.

Clearly, this breaks down in some cases. Sites where you login with OpenID, but then stay logged in via cookie. Sites that are not comment-based. Sites that you use OpenID to create an account for, but which are not “comments.” At the same time, it would be pretty cool to be able to generate a list of “sites I use” and to take a stab at parsing out and displaying comments across the web.

The key thing here is the simplicity. This could be implemented without creating any new protocols, using existing technology. I may try this…

PyPodGen

I wrote a really simple script in Python to help create podcasts. It’s a step above creating them by hand, but doesn’t have useless features. It should work on your local machine, your server, and on any operating system supported by Python, including Windows, OS X, and Linux.

Download PyPodGen v0.2.1

Setup is easy:

  • Make sure that Python is installed
  • Edit near the top of the PyPodGen source file to reflect your author details
  • Run it from the command line (locally or on your server):
    python pypodgen.py

It will ask for a few pieces of information, and then create your podcast file based on the files present in the directory you specify.

Please let me know if you find it useful, or if there are any bugs.

OOK Update

I went in for my one-week followup on the trial lenses. The doctor I’m working with seems very thorough, and is very invested in getting things just right – I’m very happy with that portion of the experience so far. My vision in my right eye is good after wearing the lenses, but the left eye is undercorrected.

The topology scan showed that the correction zone in the left eye was perfectly centered, and the doctor says that the custom contact should fit the curve of my eye better, providing the rest of the necessary correction. The right eye, however, showed that the contact was sliding up the curve to a slightly flatter area of my eye, leaving a portion of my visual field uncorrected. I can see the results of this at night, when streetlights and other point sources seem to be smeared downwards, and during the day when it makes it hard to read text on the computer.

Unfortunately, the upshot of all this is that I get to allow myself to go back to being blind for the next week, so that the shape of my eyes returns to near-baseline. Then I get another pair of 1-week trial lenses that will hopefully fix the problem with the right eye (left eye will be the same lens). If those work out, then I receive the custom-fitted lenses, which should be about perfect. Oh the joys of science.

You might also want to look at my other posts on Overnight Orthokeratalogy.

Passwordless SSH setup

I’d forgotten how to do this, so here’s another note.

To set up passwordless SSH, the easy way to do it is:

(on the local machine)

  • ssh-keygen -t rsa
  • Enter a passphrase if you want
  • ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote
  • Enter your password, and now you should be able to login remotely without a password.

ssh-copy-id makes the process as simple as can be, and all the other tools (like scp) will now work without the password as well. You may also want to modify your ssh config file to include a hostname alias.

OOK quick followup

After I put the lenses in last night, they were uncomfortable for a few minutes, but settled down to a reasonable sense of “there’s something in my eye.” I slept well, and by the morning, the lenses were pretty comfortable. Not a soft contact, by any means, but reasonable. Had some trouble with the left lens, it popped out twice after I woke up, mostly because I was touching the eye.

Just got back from the optical appointment. Some good, and a few minorly bad points. The right eye is down to -1.25, from around -3.0, the left is down to about -2.5, from around -3.5. The right eye has a patch of dryness on it, and the lenses seem to be adhering to the eye a bit more than is optimal. I’m supposed to use the lubricating drops when I wake up, and wait a bit for them to lubricate things before I try to take the lens out.

The left lens appears to have had a small bit of debris underneath it when I put it back in after having it pop out this morning, which caused a some micro-abrasions. They should be healed up by this evening, but they worried the doctor. I’m supposed to be more careful about that in the future and use the eye drops today.

I’m wearing a temporary set of contacts right now, but hopefully won’t need them tomorrow. Vision should be pretty good after the next day or two.

You might also want to look at my other posts on Overnight Orthokeratalogy.

all kinds of tired…

Very little sleep last night, finishing one of my own papers, and then helping a friend finish a 7 page paper starting from scratch at around midnight. Nevertheless, I’m looking forward to playing L4D tomorrow night.

In case I haven’t mentioned it, go buy Left4Dead, it’s really a hell of a lot of fun. 4-player team-play zombie killing, built to be like a classic zombie action flick. The lighting really adds a lot to the texture of the game and the level design – you want to hop between pools of light. You stay together, your team probably only dies some – one player wanders off, they die quite quickly. Some really fun set pieces, and the replayability is quite good, given the “Director” technology which gauges player stress level, and throws zombies in as appropriate to create a fun balanced experience. It’s different every time you play through a map. Not a game one can play on push-to-talk, it’s open-mic all the way – there’s no time to press the button when you’re suddenly being overrun by a zombie horde. I was hoarse after my first several hour play session. It’s really fantastic when you get a full 4 player game.

Also, tonight I’m starting my first night of the Overnight Orthokeratology research program I’m participating in through the UC Berkeley Clinical Research Center. Essentially, it’s a custom hard contact designed to be worn at night, which reshapes your eye such that after a few days of wear, your vision is corrected during the day even without the contact. Normally a $1.2k+ treatment, it’s free for me as a research participant (of course, I have to go in regularly and let them measure my progress, keep a wear diary, etc.).

Yesterday (my third visit, the first two consisting of a million detailed measurements of my eyes) I was shown how to put in the preliminary set of contacts, and I am supposed to wear them tonight for the first time. They were (as expected) pretty uncomfortable at first, but after a few minutes my eyes had stopped watering enough to notice that the optical quality of hard contacts FAR surpasses that of the soft lenses I have worn in the past. If this treatment doesn’t end up working out for me, I may look into getting hard lenses. They were relatively comfortable when I had my eyes closed, so hopefully sleeping won’t be too bad. I go in tomorrow morning right after waking (and wear the lenses to the appointment) to get an evaluation, see how much improvement there is, and to decide whether I should continue to wear this pair over the holiday weekend. The doctor will order the custom lenses after tomorrow if everything looks good, and I’ll have them in a week or two. I’m excited!

You might also want to look at my other posts on Overnight Orthokeratalogy.

I must quickly plug Doodle, a really wonderful scheduling/polling tool with an extremely low barrier to entry for everyone involved.