Archive for November, 2007

Etnanine

Wednesday, November 28th, 2007

For those who don’t know, I live in a house with some of my friends this year. A couple of weeks ago we decided to start a house blog that all of us would co-author. Since then, some of us have been writing articles on there and we’ve gotten a decent number of hits (not anything like the abundance of readers I get on here though). At any rate, I thought I’d advertise for that site here to maybe pipeline some of my traffic over there as well.

Personally, I think it’s a good site, we have some pretty interesting scientific articles, and of course a lot of life updates from everyone in the house. I guess it’s similar to my blog except it gets updated more frequently and you would get a couple more perspectives on some different things. I recommend that you check it out, I promise you won’t waste too much of your time.

Etnanine

I also just wrote an article on there about multitasking which I kind of wanted to put on here. I guess there’s a conflict of interest writing for two blogs with such few ideas and limited time for writing but I’ll figure it out.

Research: Joe-e project

Wednesday, November 21st, 2007

I haven’t had much time to work on any personal projects in the past couple of weeks so I figured I would write about the research project that I’ve been working on during this semester. I’m working with one grad student and another undergraduate on a new language that’s supposed to make it easier for developers to reason about security issues in their code. The other undergraduate and I have so far been working on a documentation system for the new language and we’re just about done with that and starting up a much more challenging project.

The language (called Joe-e) is a subset of Java that gives the developer less power in dealing with the system. Joe-e code ascribes to the principle of least authority, which means that objects should by default be given no power (authority) and should be granted authority on a need only basis. Compared with the norm, where objects typically have access to everything and must be explicitly restricted, applying the principle of least authority makes it substantially easier for a developer to reason about which objects have access to other objects. In this sense developers can determine more about each of their classes and thus they have a better idea of what would happen to their code if something went wrong in one of the classes. As I haven’t explicitly worked on the security features yet, I don’t know much more about the language itself, but if you’re interested, feel free to read more about it on the language website.

My partner (the other undergraduate in the group) and I have until now been working on a automated documentation generating system for the language. Since the language is a subset of Java, it makes sense to use javadoc (java’s documentation system) but we had to augment it to include some of the other features that we required. We made our documentation look very similar to Java’s API, so that java developers don’t have a hard time switching from java to Joe-e. Everything that we’ve done has just been added to the standard Java API look in a nice and clean way.

In Joe-e, a lot of the Java library classes have been restricted in accordance with the security principles of Joe-e, and our documentation system needs to indicate which parts of classes have been suppressed and why. So one of the main things that we’ve done in our documentation is mark which methods, constructors and fields have been suppressed and why. Another feature of Joe-e is that library classes can have honorary implementations of certain interfaces that provide information about the classes authority. We’ve added a section in the documentation to indicate which of the Joe-e interfaces this class honorarily implements as well. Other than that, there aren’t many differences between the joe-e API and the java API.

When we started working on this project, both my partner and I thought it would be really easy, but it’s taken us almost three months to finish. We’ve been working on it pretty regularly and dedicatedly, but we’ve run into tons of problems with javadoc’s source code that were serious roadblocks to our progress. For example, one such problem is that the javadoc’s API has been locked making it “impossible” to extend the standard javadoc classes and create your own documentation generation system. We ended up spending a lot of time looking at different ways to bypass this lock without re-writing a lot of code ourselves and finally came up with a pretty good solution. Another big problem was that on sun’s website, the information about customizing javadoc applies to java 1.3 and the javadoc tool has completely changed since then. As a result we had to look through tons of source code in order to figure out all the details of javadoc when all we really needed was an overview of it. There were a couple of other stupid problems that we had to deal with which I guess were pretty educational because I got to see how larger software projects worked but overall I found them to be very annoying.

When we got down to writing our own code, it was very straightforward. We ended up extending all the classes in the javadoc source code and just modified a couple of methods in some of the classes to provide the behavior that we wanted. It really wasn’t that challenging of a project, it was just that we had to deal with all of this random problems that made the project take so much longer than I expected.

So I hope to finish up the project this week and put it up on the Joe-e website on Monday (which will be really cool). My partner and I have already started work on our next project, which sounds a lot more challenging and interesting. Overall, I’m really enjoying my research this semester, and am excited to stay with the team next semester and for the future.

Startup Part I: how it all began

Friday, November 9th, 2007

Two of my friends and I have decided to start a company. We’re still in planning stages, but we’ve come up with some interesting ideas and have discussed these ideas with several people including some successful entrepreneurs. On the whole we’ve gotten good feedback and should begin the actual development very soon. The first month was eventful and very rapidly moving, but we’ve hit a slump without much progress in the last couple of weeks. But I digress, let me start from the beginning.

The Team Formation: The current team consists of Me, Neeraj, and Arvind. We’re all engineering students and we’ve been good friends for at least a year. Since this school year began, whenever we used to get together, we always discussed technology-related ideas that we’d be thinking about. Finally we decided that we should formalize this process and ultimately work to implement one of our ideas. We’re all really good at different things, and the union of our skill sets seems to cover all the skills needed in company founders and so…

 Sometime in late September, 2007: We had our first business meeting in my small (I stress small) bedroom. We discussed all of our motives and aspirations for the start-up and then moved on to discuss some of the ideas that we’d all been thinking about. Since we’d been thinking about this for awhile (at least the ideas), we had quite a few of them, but many weren’t grounded in reality, or were otherwise unfeasible. We selected a core few, and went on to research each specific area and look for competitors. We finally pinned down one idea, which we were all really excited about (so it made for a good candidate).

Then… : We started discussing the idea with our friends and peers, met a lot of criticism and as a result morphed the idea to still fit the same basic niche, while addressing the demands of these people. Before we started working on it however, we arranged a meeting with an entrepreneur in the area and discussed the idea with him. He loved it! So it looked like it was time to get working.

Roadblock #1: Midterms… All three of us have had exams these past couple of weeks and have been incredibly busy with school work and as a result we haven’t actually started implementing the idea at all. This will probably turn out to be one of the biggest road blocks that we’ll hit, because when it comes down to it, school comes first for all of us, so the start-up will keep getting put on hold. We haven’t even been having our weekly meetings for the past couple of weeks, which is pretty depressing, saying we have a solid idea that just needs to be implemented well (that’s the easy part). I’m hoping that we’ll get a bulk of our work done during the December break. Hopefully, we’ll have a vested interest in the company after that point and so we’ll keep working on over the course of the next couple of semesters.

My Thoughts

I’m really excited about the company, it’s a good idea that I think would be fun to work on. It provides a unique service that seems like it would attract a lot of users and it’s pretty easily monetized. I’m excited to work on it, but unfortunately I’ve been too busy to make much progress on it.

I’ve read quite a bit about starting companies from Paul Graham and others, and I know that this is one of the pitfalls of trying to start a company when you’re in school. I knew this coming in, but felt like the three of us were dedicated enough to keep working on it through the busy times. Again, we’re still in the early stages, but we’ll see how things go. I’ll keep posting updates here when things happen.

New Page: Sample Technical Interview Questions

Friday, November 9th, 2007

I’ve added a new page to the blog with some sample technical interview questions. I don’t think it’ll be pertinent to most people but some of my friends have been asking for some of these questions and it’ll also serve as a good place for me to look in preparation for interviews. I’ll update it whenever I hear more questions from my peers or from my own interviews.

akrish.net revamped with wordpress

Sunday, November 4th, 2007

I said I would be moving akrish over to wordpress, and here it is. I’ve imported all of my old articles and have categories that represent the feeds I used to have. Naturally I’m going to have to mess around with settings and configurations a bit, but ultimately there won’t be many other changes to this blog. Please let me know if anything doesn’t seem to be working as you’d expect and I’ll take a look at it.