coding


Under construction…

With Phil’s hosting advice, I’ve gone with serveraxis’s Xen-based virtual hosting.

Here are the papers that were in Bioinformatics, Volume 22, Number 21. You can check out the site on a production server at http://ifold.dokhlab.org.

Base Paper [Adobe PDF]
Supporting Information [Adobe PDF]

Like.comJust played with the just-launched Like.com, a site whose design reeks of Web 2.0 but whose functionality is seriously unparalleled. This new webapp is from the creators of Riya.com and has stuff that would have Vannevar Bush rolling in his grave. For example: you can search for watches (or browse by watches) select which ones you like, and the backend feeds the user-friendly interface with tons of watches that look like it. What’s more, you can select which of the following attributes you like: the color, the shape, or the pattern on the watch, and the frontend immediately updates to show you watches based on your preference. THEN you can select a part of the watch you like, and find watches with that part! It’s eerily accurate. You can also change what color you’d prefer. Finally, you can look at pictures of celebrities and search based on the products that they’re wearing — you can drag a box around their shoes, or their watch, or whatever, and find products exactly like it!

Whew.

Keep a close eye on this one. Froogle-like functionality + Like.com + cool domain name = a killer app.

YCombinatorI went to Boston this past weekend to pitch an idea with Phil to YCombinator, a venture firm started by Paul Graham — the guy who sold his online store to Yahoo in ‘98 for 48,000,000 dollars. The entire weekend was an incredible escape from school and work (unfortunately as I write this now I’m right back in the heart of it). We applied with a completely different idea than what we pitched. In fact, we had a few ideas so we didn’t really know what we were going to pitch until the day before. Regardless, we put our faith behind an idea that did have a lot of technical problems. While we could have touted the amazing user experience and the sheer amount of pain points that the product could have addressed, in the end we were pushing our beautiful pie-in-the-sky design that would have solved all of these technical problems. I think Robert Morris noticed that the most. Phil and I both agreed that we probably would have done a lot better if we had a demo or if we had come better prepared to tackle the technical issues… or if we had went with the idea that Paul had suggested we do!

The night before the interview we had dinner with about 10 of the teams that were interviewing. Seriously, I met some of the most diversely smart people in the bottom of that Italian restaurant. The guys who probably impressed me the most were the three-member Weebly team. They have an amazing beta of their product with an impressive userbase and a great team organization. A few days ago they were mentioned in TechCrunch and received another 2000 users.

While I was pretty disappointed in not getting YCombinator, it was still awesome getting the opportunity to meet Paul, Robert, Trevor, and Jessica. And hey, everything happens for a reason. I was always upset at the possibility of leaving my friends and abandoning my senior year to work in Mountain View on the startup — although I definitely would have done it if we were given funding from YCombinator. A few hours after Phil called me and told me the outcome I ordered Chinese for the people I was staying with. After good food and a good conversation, I opened my fortune cookie and broke a smile as it read:

“Your true wealth lies with your friends”.

I made my decision tonight.

August, 2007: I’m moving to Seattle…!

Our work on iFold is going to be published in Bioinformatics, an Oxford Journal. I wrote up the part on the frontend and Dan did the backend. Our clients, scientists from the med school, wrote up a few things too. Writing a manuscript on iFold is pretty amazing. I have no idea how we were able to get it into two pages.. there’s so much stuff to talk about.

So yeah, awesome… my first published paper. Since i’m not going into research it might be my last too, but oh well, heh.

One of my favorite classes I took in the past three years of college was Computers and Ethics (also known as the disgusting, 1990s term: “Cyberethics”). Although most of it was bashing the use of computers in everyday life and attributing them to a very morbid, Terminator/Matrix-esque view of the future, there were some interesting points that were brought up. One of them was known as the “Silicon Imperative”. The general idea is that we should always question whether a computer should do everything for us. The obvious fact here is that humans are smart and computers are stupid. It’s simple — humans are not “digital” (either this, and/or that) in their logic. We have emotions. We learn based on previous events. We can see patterns very quickly that computers cannot possibly do at the moment. Therefore, there are many things that should not be “Silicon Imperative”.

I agree with all of that — for the present. However, if you have a software project that has a goal, that interacts with users, and gives them a useful featureset, you shouldn’t half-ass it. One of the most debatable areas, I think, of the Silicon Imperative, is in security. The reason why I’m writing this is because, from an end-user point of view, it seems like we are promising security at the sacrifice of innovation and user interaction.

There are some products that have been entering the market – you can probably guess what they are — that seem to embody this kind of thinking. What would your life be like if you had an assistant that promised to do a lot of things for you? Doesn’t that sound nice? Someone who made your food, cleaned your house, organized your desk at work. That would be awesome! Now, imagine if this same assistant would ask you, every time if you really wanted the food you were about to eat. Or, everytime you left the house for work, would ask you how you wanted every room to look like. Or how you wanted your desk to be organized everyday, and if you really wanted that manuscript to be shredded at the end of the day. Yeah, not so great, huh?

Why can’t the assistant remember what we asked? Why can’t it realize that the manuscript is confidential and that we don’t want it, instead of asking us everytime? Is it really that stupid? That assistant has manifested himself in the form of software.

“Hey, I’ve got a great idea, let’s ask the user every time if they really want to perform this certain action. That way, if something goes wrong, it’s not our fault! Sweet!”.

In this day and age in the software industry, is security really that bad that we should sacrifice user interaction like this? The “guaranteed” way of software security is not usually the best. Your software might not have any innovation and it might not do some intelligent adaptation based on what evils are out there, but I tell you what — your users will. You can barrage them with all kinds of prompts and confirmations, but the inevitable will happen: they’ll just click through them without even reading them, and that’s a huge security risk in itself.

What happens after a user accidentally clicks through a prompt and breaks the threat model? Are you going to sit back and point a finger? Is that what we do? Isn’t our goal to help people in their everyday lives instead of making them feel stupid by blaming them? Perhaps we should think some more about the Silicon Imperative…

This entire semester two other developers and I have been working on a web queuing project for submitting protein folding requests. About an hour and a half ago, we completed our final presentation. We have a little more documentation to do and some more tasks to flush out, but other than that, we've written a complete end-to-end system that allows you to submit tasks, see them in a queue, distribute them to a possibly clustered compute environment, and get your selected outputs (movie files, graphs, whatever you want) back.

This has been probably the coolest, and most fun, project I've ever worked on. Not to mention that it's the most successful project I've worked on. Our client presented the project at a DARPA (DARPA = government branch that researched and developed the internet) conference two weeks ago. We're in the process of working with our client to write a paper on it, and our client is in talks with other universities around the nation to distribute the web application to their servers.

In four months, we've developed the world's first protein folding simulation on the web. How frickin cool is that.

Here's a screenshot of the main page, after you login:

Screenshot of iFold

It's true. Jakob Nielsen, the usability god, and Kara Coyne just published the results of their eyetracking study here:

http://www.useit.com/alertbox/reading_pattern.html

One of the most enlightening usability articles I've read…

Lyceum is a hawt open-source, secure, scalable (up to 200,000 users!) blogsphere framework, just released by ibiblio. Basically, install your own blogger.com. It’s been in development for a while and gone through a myriad of developers, including myself, and now two of the most talented people I know — Fred Stutzman and John Joseph Bachir — have just put out a first release. So download it, get a group of friends together, install, and set up your own blogging community.

Next Page »