1 note &
Braces, they work! Unfortunately, I don’t have a photo from a couple months ago, so some of the tooth’s movement may be natural. I’m going to see if I can get the pre-braces photos from the orthodontist to put up too
Before I started working on my current startup, MetaInbox, I worked at a startup called ShopWiki. ShopWiki was founded in 2005 and exited in 2010, selling to Oversee.net. The premise of the site was that it paired a comparison shopping engine (CSE) with a wiki which anyone could use to write buying guides. The search engine was pretty novel at the time since it used a crawler rather than just accepting data feeds like basically every other site did.
As it turned out, no one outside the company was really interested in writing wikis, so the company pivoted to focus primarily on the pretty successful search engine. What’s really tragic is that the CSE space is filled with a ton of companies where there’s little or no user loyalty. A typical user arrives via SEO or paid traffic, finds the store selling what they wanted at the price/sketchiness level they are comfortable with, and go on their merry way.
Over the years a lot of really interesting search features were implemented — it was the first site I knew of doing colour search, at least for shopping — but since users rarely stuck around there was little or no usage of the advanced features.
Even though I’m not working there anymore I thought it would be fun to show some of the things the site can do:
You can also search for weights, (mega)pixels, carats, prices and all sorts of other units. > and < work for ranges, and just putting the unit in on its own will catch just that unit.
A really undocumented feature is that it used to be the case that quoted strings were treated as regular expressions, but my friend Jack Saalweachter (SW’s former search engineer) and I couldn’t get it to work, so something must have broke somewhere in the pipeline.
I generally just go to amazon when I want to buy something, but on the occasions where I want range queries and access to units, ShopWiki is great. Give it a whirl the next time your normal shopping destinations aren’t up to the task!
1 note &
Braces, they work! Unfortunately, I don’t have a photo from a couple months ago, so some of the tooth’s movement may be natural. I’m going to see if I can get the pre-braces photos from the orthodontist to put up too
While I don’t think that I’m going to use it – my calendaring needs are extremely minimal – I think that this is a really interesting application from a user interaction perspective, and would encourage you to check it out.
What really makes Caliander stand out as an application is what it calls a “Perceptual Log” view. The screen is broken into vertical bars representing a period of time. Depending on which view you’re in (day, week, month) the bars will be as small as an hour or large as a day. When you click and drag one of the bars, the bars on either side will shrink or expand and you will see more of the future or the past depending on which way you are dragging.
Since my calendaring needs are almost non-existent I don’t think I’ll end up using this, but I may try creating a widget to do logarithmic timelines on the web if I have some free time. This is very interesting and I hope the author is successful in the Mac App Store!
When I was born I had a variety of things wrong with my eye. I had an astigmatism, an condition where the shape of the lens of my eye is wrong. Lots of people have it, and it’s pretty easily fixed with corrective lenses. My opthamologist explained that my eye was football shaped, and I was lucky in that the football was aligned vertically instead of horizontally, so the natural shape of my eyes would diminish the effect somewhat. Not a big deal.
In addition to that I also had strabismus. Strabismus causes your eye to have a “turn” and is what people commonly think of when they say someone has lazy eye (though in fact, amblyopia is lazy eye). Here is a picture of me from a couple years ago where you can see it clearly

Strabismus can be a pretty serious condition. Since the eyes aren’t aligned the brain can have trouble figuring out what to do with the image it is getting. Two of the possibilities are that you will develop amblyopia or you will start getting double vision. Neither of these is very good, but the latter is significantly worse. It’s so jarring to have two of everything that you’ll get headaches and have trouble concentrating. It’s similar to the side effects some people report with 3D glasses.
What was interesting is that the turn on my eye would change. Sometimes it would barely be visible at all and sometimes it would be like the picture above. It was a constant source of stress for me during job interviews and when meeting new people. I didn’t particularly care whether people thought I was attractive or not — although it did seem like it would be an issue when I delved into the world of online dating — but when someone new was talking to me and my eyes weren’t facing the same direction it was difficult for them to tell if I was looking at them or staring off to the side somewhere. There was also the added level of stress for me that I had no idea what my eyes were doing, and whether I should try to explain myself. What was fortunate about the strabismus is that people who knew me for a long time knew that they needed to look into my right eye instead of my left eye.
Amblyopia is a condition where the brain suppresses the image from one of the eyes. In my case it was caused partially by the left eye having weaker vision than the right eye, and partially as a defensive adaption by my brain to the misalignment caused by the strabismus. It’s important to note that amblyopia is an issue in the brain, not an issue with the eye.
The effect of the amblyopia is much harder to describe since people who have it experience vision in a different way than people with two functional eyes, or even people with only one functional eye. I primarily see out of my right eye, but the image from the left side is still there. It functions sort of like an expanded peripheral vision. With a bit of focus I can force myself to switch which of my eye I’m looking through. In combination with the strabismus this led to a fun game where I’d either look at someone using my left eye (causing the right to have the turn) or very quickly switching which eye I was using. I have trouble switching which eye I’m using in an instant, so if I need to actually look at something in the periphery of my left eye I generally turn my head so that it comes into my right eye’s field of vision.
Beyond having difficulties looking at things on my left, the biggest issue with amblyopia is that it stops fusion of the images from the eyes and because of that leads to having little or no depth perception via stereopsis. A lot of people ask me whether this means that I cant drive, and it doesn’t. This form of depth perception only affects how well you can perceive the distance of things within a few arms’ distances of your body. Beyond that, it’s also only really an issue when things are moving quickly. The other methods of determining distance (depth, paralax, etc) will mostly make up for the lack of stereopsis when I have a lot of time to react. I don’t have any issue reaching out to grab a glass of water or putting my hands back onto my keyboard and mouse.
I didn’t understand it at the time, but I actually first seriously felt the effects of my depth perception issues in high school. Several times per year we would do a variety of activities designed to test our fitness. One of the activities was throwing a ball against the wall with one hand, letting it bounce on the ground once, and catching it with the other. I always did miserably in the test, well below my general athletic ability, because it was the worst case for my ability to determine where something was in space: fairly small object, fast moving, and off to one side where it is harder for me to use other visual cues.
My other favourite example is a day when I was playing table tennis with a friend of mine in university. I was nowhere near his skill level, but after a while I was able to return fairly simple volleys regularly. On one shot he decided to slightly change the speed at which he hit the ball at me. I was totally lost. It seemed that an important cue I’d been using about where the ball was had been the length of time it took to get to me. The change in speed wasn’t visible, so I had trouble hitting the ball. A few months ago I was playing again with my coworkers at a party and I discovered that if I kept my head as close as possible to being in front of the ball and moved it back and forth as the ball came at me I could hit it back more frequently. My best guess was that moving my head let me see things from different angles and have a better idea where the ball was in space. I’ve seen birds do this a lot, probably for similar reasons.
Around March of 2009 I started going to the (excellent) SUNY school of optometry to see what I could get done about my eyes. My initial eye exam was done by a third year optometry student who was thrilled to have me there since my conditions gave her an excuse to try all sorts of tests which they don’t get to do on people who simply have poor vision. I got the first taste of what was to come when she pulled out a rectangle made out of triangular prisms of different angles. She moved it up and down to try to correct for the misalignment of my eyes caused by the strabismus. She was also optimistic about my chances to have something done because I could switch which eye I was using. Also notable during that visit was my getting a glaucoma test where the measuring tool actually touched my eye instead of just blowing a puff of air on it. I got my new glasses prescription, set an appointment with the vision therapy clinic, and left.
Vision therapy uses exercises to try to strengthen eye muscles and help the brain fuse its images. SUNY in particular was suggested to me a year earlier by an optometrist I saw. They’re supposed to be excellent for vision therapy, so if anyone could help me it would be them. The vision therapy clinic was one of the most interesting places I’ve ever been. I learned a lot of things about how my eye works and the conditions I have, including a lot of what I explained above. Their main goal of the vision therapy doctors was to see to what degree they could make my eyes fuse their images to assess how well vision therapy could be used to realign my eyes and avoid surgery.
They used a wide variety of tests, all of which I found very interesting. Many of them involved putting on glasses with two different coloured lenses and looking at a light. In some cases it was a pen light, in others it was a light which had two white beams, one read, and one green. They would then ask me how many lights I saw, and of what colours. When I was wearing the special glasses it was even more clear to me than normal that my main eye was my right eye but that my brain was still getting and processing the images from my left eye. There were also many more tests with the prisms that I’d had used on me in my normal check-up. In the prism tests they were trying to correct for the strabismus to see if I could obtain fusion if the amblyopia were the only problem. The most thorough of the tests they did was having me look through a pair of holes into a device where there was a picture of the pied piper. They were able to adjust it such that the images I was looking at were placed exactly in front of each of my eyes, completely eliminating the effect of the strabismus.
Unfortunately for me, I wasn’t able to fuse the images in any of the tests. It wasn’t too surprising since I was twenty years older than the people who normally have vision therapy for my conditions. The vision therapy doctor told me that he could probably break down the adaption I’d made—suppressing the image of my left eye—but he wasn’t sure if he could build something up to replace it. I didn’t have more than a 5% chance. Since I need my eyes for my work, and the idea of double-vision and headaches indefinitely wasn’t appealing, we decided that I shouldn’t go through with vision therapy. They told me that I should make an appointment with a surgeon to see if there is anything that I could do about my strabismus.
The surgeon I met a few weeks later and his students did the same sorts of measurements that the vision therapy doctor and his students had done. He was pretty sure the strabismus could be corrected with surgery. Some of his students showed some hesitation, but he explained that I had this condition and if getting rid of it was what I wanted then that should be good enough as well. I had some hesitation myself, but eventually decided to just go through with it.
It turned out that that doctor didn’t actually take my insurance, so I actually met with the other doctor in his office. She was nice to me and we went through the same sorts of tests. At this point I was an expert at the test where they put prisms in front of one of my eyes and then cover one eye back and forth to calibrate it.
There were only two really exciting things which happened in the lead-up to the surgery. The first was that she found the scars from when I had had this same procedure when I was six months old. More had been done on the muscles of the left eye than the right, but she was pretty sure that she could make the adjustments to the eye muscles of that eye without touching the right one. The second point of interest came straight from the first: even though it was my left eye that was turning, my eyes could be made to be aligned by adjusting either of the eyes. All that mattered was that they were aligned with respect to each other, not in an absolute way.
On the day of the surgery I got up at about 5am. The operation was scheduled for very early in the morning, and I was taking the E train. When I got there it was largely waiting around, and filling out forms, and more waiting around. A friend came to wait for me and take me home after since my family all lives far away. I got into a gown and tiny slippers, and then sat in an internal waiting room. After waiting there for a while I was moved to another waiting room—are you sensing a pattern?—in the actual surgery ward. I met my anesthesiologist who told me that in addition to the normal anesthetics I would be receiving an anti-nausea medicine. There was something about operations on the eyes that made nausea more likely.
When it was finally time, they had me stand up and I walked with a couple people along to the room where the operation would be performed. It was smaller than the ones on TV, but had lots of impressive medical equipment in it. It’s possible because this was a hospital for eye and ear conditions that a smaller room was sufficient. I got onto the surgery table and they began tucking in what seemed like foam along my arms. I asked why and they said it was to prevent me from moving around.
And then I woke up, in the recovery room, with my friend who had come to the hospital with me sitting there. I’ve (that I’m aware of) experienced memory loss before this, and it was extremely disorienting. At a follow up appointment with my doctor I asked whether I had spoken to her before the operation, and she said that we’d had an entire conversation. It seems that the anaesthetic can make you lose the short term memory before you go unconscious. I was mentioning this to a coworker later and he told me that his sister would actually wake up after a procedure several times and have no memory of any of them.
The recovery itself wasn’t terribly interesting. I had a patch on my eye for about a day, and I looked really messed up for a few months. A week later I actually had my first date with my now-girlfriend, and my grotesque eye seems not to have been an issue! I’ll edit this post later to add in a picture of how I looked at the time.
The last thing to note on this is that my eye will still sometimes wander up. It has an unfortunate habit of happening when I’m looking into mirrors (very unsettling). In my one-year follow up with my surgeon I asked about this and she said it had something to do with whether I was focussed or not. In general, people tell me that they have noticed the eye wander happening less, or even not at all. I’m really happy with how this all turned out, aside from the fact that I still have little or no stereoscopic vision!
While working on Nexus, my current project, I ran into a really strange error. I had just finished rewriting all of the database models I was planning to use and wanted to do a basic consistency check. The structure of the package was as follows:
nexus/
models/
db.py # SQLAlchemy Base and misc
feeds.py # Models related to RSS feeds
nexus.py # Generic models
users.py # User-related models
… # lots of other models
ui/
views/
subscribe.py # View for subscriptions
I wrote the subscription code as a test of the models, since it had to touch most of them in order to get a user subscribed to a feed. When I wrote a script to try executing the subscription code I found that it had an import error loading nexus.models.db. It seemed strange, so I opened up an interpreter and tried doing some imports:
»> import nexus
»> import nexus.db
»> import nexus.ui.views.subscribe
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “nexus/ui/views/subscribe.py”, line 2, in <module>
import nexus.models.feeds as feeds
File “nexus/models/feeds.py”, line 6, in <module>
from nexus.models.db import Base
File “nexus/models/nexus.py”, line 14, in <module>
from nexus.models.db import Base
ImportError: No module named db
At first I’d been assuming that I had a circular reference somewhere, but when I looked there definitely wasn’t on. That was cemented by the fact that I had already imported the module that it couldn’t find. The bigger mystery, which turned out to be the key to the whole thing, was why feeds.py was importing nexus.py on the line where it should have been importing nexus.models.db. I spent a while investigating assuming that the stack trace was somehow missing something because python imports are a really complicated sub-system. I tried deleting the .pyc files since I’ve had problems with old pyc files from now-deleted py files causing issues. I tried deleting every file in the project except the ones necessary for the code to run, and as a last ditch effort after reading this import-related bug report I tried changing all of my from X import Y style imports to import X.Y as Y, but no luck.
What turned out to be the problem was that from nexus.models.db import Base was interpreted as a relative import inside of the nexus.models package. nexus.models.nexus does not have an attribute called db which is a model that could be imported, so the import fails.
Lesson Learned: Do not name a python module the same thing as the root package, especially if you’re planning to import that module from within the same package.