Latest Publications

My UCI Research Project: Nomatic*Aid

A few summers ago I was privileged enough to get a fellowship to work on a research project when I was attending University of California, Irvine.  Professor Patterson who was the professor overseeing my research was a big help in me deciding that I really enjoyed the culture of working in a startup because that is how he made the fellowship feel for me.  I was allowed to work for however long I wanted and during the times that I felt were best for me.  The only objective I had was to get to a certain stage for the end of the summer presentation (embedded below).  I would have few meetings with him throughout the summer to show him my progress, but other than that I was on my own.  In the beginning it was very overwhelming and scary because I had no idea where to begin, but overtime it became easier and a lot of fun.  I would work late hours on my own free will just because I wanted to get to a certain point in the my to-do list.  It made me realize how most startups require you to work late hours and have flexible schedules, which I enjoy a lot.  Also, the fact that even though it was Professor Patterson’s research project he gave me the responsibility of doing it how I felt was best as long as the project got done and did not have any bugs.

I admit my experience with research at a university might have been a lot different than it normally is for most people, but I would highly recommend anyone who thinks they want to work in a startup environment to try and obtain a research opportunity.  I feel that it is a safe and secure environment for someone to test the waters of a startup environment and see if they feel like it is for them.

Here is a brief summary of the research that I did and the video of my presentation at the end of the fellowship:

Nomatic*Aid consists of a hand-held geo-tagging photo device that enables coordination between human relief workers during, as well as in the weeks and months after, crises. For an effective crisis response, spatial and temporal information about the resources (e.g. water, arable land, vaccines) and displaced people has to be collected and collated by the team of responders working on the field. The information garnered needs to be disseminated and collated by a central server. Since a network infrastructure may not be available after a crisis, the hand-held devices are expected to form a mobile delay tolerant network. Such a system uses the idea of parasitic data transport by encouraging nodes to physically carry data for others when network connectivity is not available.

This project intends to use camera cell phones equipped with a Global Positioning System (GPS) to tag, store, and communicate “capsules” of context-based data. The hand-held devices will serve both as data collection and storage devices as well as communication nodes. Since the devices have limited transmission range, unpredictable mobility, and limited battery power, routing algorithms that exploit these unique challenges will be designed.

Ruby Cheat Gem

A few days ago I was introduced to a cool new ruby gem called cheat by my roommate Rob.  The ruby cheat gem is an amazing tool to have with you whenever you are programming.  Before this gem I would download pdfs cheat sheets for ruby on rails, vim and regular expressions. With this chem I have access to over 548 and growing number of cheat sheets all through the easy access of my mac terminal.  All you have to do is simply type cheat vim and you will get a list of all the cheats for vim.  However, a problem I had was that the list was so long and it was a pain to scroll through the terminal.  The best way to solve that problem is to write your command with the less command so it would be cheat vim | less.  All of the cheat sheets are user created on the website for the cheat gem.  There are cheats for a ton of things ranging from ruby on rails, css and some interesting easter eggs as well.  When you download the gem try typing cheat girlfriend or cheat coding.

I would have to say this is one of the most useful gems I have installed on my computer.  Other gems have helped out a lot with projects, but this one I will be using a lot because it has cheat sheets for such a large range of things that I will be using in many future projects.  I would definitely say for any ruby on rails programming the cheat gem should be one of the first gems that you install on your computer.

Sleep, Studying, and Social Life: Which two do you choose?

where are you in the triangle?

where are you in the triangle?

Which of the two do you choose?  I was asked this question when I first entered college.  The realization was that you could only choose two of the three activities.  Therefore, you either had no sleep, horrible study habits, or no social life.  I thought that was the most absurd thing ever when I first heard it.  Managing all three would be a piece of cake and I would be able to enjoy everything college had to offer me.

The fact is trying to place yourself in the middle of the triangle is completely possible, but each end tries to manipulate and persuade you into slowly coming closer to it.  The more friends you make and organizations you join means you will have more social events and activities to be able to participate it.  Some organizations might require you to participate in a certain amount of activities throughout the semester or year as well.  The harder your courses get the more hours you will have to spend studying for those courses.  Also, if you are an overly ambitious person you’ll be inclined to study more or take harder classes to better yourself.  Lastly, all of these activities are going to eventually make you exhausted and tempting you to sleep more so you can rejuvenate your body.

I realized that for me staying in the middle on a constant basis was very difficult. My first two years of college I was on the side of sleep and study because I was driven to transfer out of my current university.  Once I accomplished that goal I had to evaluate what I wanted out of my last two years of college.  I realized I wanted to obtain more of a social life since I studied really hard my first two years.  However, I did not want to ruin my education after I worked so hard to get into the university I wanted to be at.  It is hard to always stay in the middle, but it is not that difficult to move around the triangle if you have some self discipline.  I learned to use my calendar and to-do list to manage my studying time making sure that when crunch time came I wouldn’t be tempted by my friends asking me to hang out with them.  Likewise, my calendar allowed me to know when I did have the free time to hang out or to catch up on some sleep.

It all comes down to how motivated you are to make sure you balance your life.  Realize there is some truth to when people tell you that you have to choose two out of the three, but you have to ability to move around willingly.

There are many ways you can help yourself in all three areas.  In general the Getting Things Done method has helped me out a lot.  The basic principle is that you need to record your tasks externally so that you free your mind from remembering everything that you need to get done.  I like to give myself three main task to accomplish each day and make sure I get them done no matter what.

There are many methods and opinions on how to study effectively.  People will tell you to skim the book and just highlight the main concepts that matter.  Sometimes it is pointless to read the book and more important to pay attention to the professor.  In general my study habits include putting on my headphones and listening to some classical music while I’m studying in one of the libraries on campus.  I would have to say that my advise here would be to find the best situation that works for you and make sure to always stick with it.  If you know you work well at the library force yourself to go there when you need to study.  Here is a good simple guide on how to study effectively that includes some of the things I highlighted and some other key advise.

When it comes to sleeping  I have realized that when you are told you need at least eight hours of sleep is not true at all.  First of all there are studies that are showing that people who sleep eight hours die sooner than those who sleep less.  Also, it all comes down to making sure you stay in a constant habit and getting yourself to REM sleep.  If you really want to be able to balance studying, social life and sleep an interesting new idea that a friend brought to my attention is called polyphasic sleepingThere is The Siesta, The Everyman, and The Uberman.  They are all very difficult to accomplish and many people have tried.  If you have the time and energy it will allow you to have a lot more hours throughout the day to do all the things you want with minimal amounts of sleep, but you’ll probably feel more refreshed then people who sleep for hours.

The best advise for obtaining a social life is just start talking to people and joining clubs and organizations that associate with the activities and things you enjoy doing.  Surrounding yourself with people who enjoy the same things as you, but are also different while expand your knowledge as well as allow you to have some fun.  So, go out and enjoy life just make sure you don’t get caught up in one area because being able to balance everything is what will allow you to enjoy everything you want.

Graduation

So, I walked at my graduation commencement last week and it was an interesting experience. Even though I will technically receive my diploma in December I decided that I wanted to walk early so I could be with my friends.

In a way I am glad I walked before I officially finished my undergraduate career. It made me realize how much I still need to get done before I enter into the real world. I have to learn little things like keeping track of my personal finances and figuring out where I am going to live and what I want to accomplish once I am done.

This summer I have been fortunate to start working on Indinero, which has the potential of turning into a dream full time job that I would do once I am done with college.

My goal these next few months are going to be to work hard so that I can accomplish the goals I want to achieve come the end of college and make sure I experience all that college life has to give me. There are so many interesting things that go on at the Berkeley campus, but with all the classes and organizations I am involved with I never had time to attend them. This last semester I am going to make myself go to as many of these things as possible because I believe it is important for all students to go to these types of events because once you are done with college these things are not so easily accessible to you. This last March I got to attend a talk by The Dalai Lama and that was such an insightful talk and I want to make sure I don’t ever miss anything like that.

Therefore, my advise to incoming freshmen is that don’t get to sucked into all the classes and organizations you join when you enter into college. They will be great experiences, but if you want to learn more about yourself and broaden your knowledge about the world you should find time to attend things that really aren’t usual things you would go to.

My advise to juniors and seniors is that make sure you know what you want to do after college and keep yourself on the track that will lead you to all those goals because it is really easy to go off track with all the other things that you have to deal with like essays, tests, etc…

Quicksilver vs. Spotlight

The battle between these two softwares has been epic since Nicholas Jitkoff decided that apple just was not doing a very good job with spotlight. The first Mac I ever purchased was an iBook G4.

After getting sucked into the Mac realm I learned about Quicksilver and how it was the “swiss-army knife” that all Mac users needed to have and learn. I decided to use it and I would have to say it was by fair one of the most amazing and useful applications I ever used on my iBook. It allowed me to do so many things without having to click with my mouse and open folders or web pages. Whenever I would show my non-Mac and Mac friends what I could do with Quicksilver they wished they had something on their computer that could accomplish even half of the things I could do.

After a few years my iBook got old and I decided to purchase a MacBook Pro. At the time when I purchased my new Mac apple had come out with it’s hot new operating system OS X 10.5 code named Leopard. One of the big new features was that they had completely revamped Spotlight. When I heard this I was skeptical because Spotlight was not that great on my iBook and unless they integrated Quicksilver I couldn’t see how Spotlight could be any better. Surprisingly when I started using my new MacBook Pro I really liked Spotlight and how it was so much faster and finding exactly everything I needed and the new features that were included into it. I did not download Quicksilver and thought I was completely pleased with the new Spotlight. However, my Mac fanatic friends questioned by I did not have Quicksilver and I tried to defend my reasoning, but I realized that in actuality I wasn’t happy with Spotlight instead I just accepted it. I realized that Spotlight did not allow me to do even half the things Quicksilver did and I just accepted the fact that I needed to open other applications and use the mouse to navigate through different applications. All Spotlight really did was allow me to search through my Mac for different documents and folders. The best new feature was the Quick Look feature that allowed a user to look at documents without having to open an application. I still find that feature amazingly useful.

In the end Quicksilver in my opinion is the best application to use between the two. It allows you to do everything Spotlight does and more. One concern I did have before was Quicksilver taking up too much RAM, but it is minimal and therefore there is no reason for someone not to use it. Given the learning curve is high in terms of really being able to do everything Quicksilver allows you to do, but it’s worth spending the time figuring everything out in the long run for avid Mac users.

The Problems of Altered Beast

I was fortunate enough to have a class at Berkeley that involved using Ruby on Rails. It was called Software and Service using Ruby on Rails. Everyone in the class got into groups and designed some kind of cool service using Rails. My group decided to create a forum for all the students that attend Berkeley so that they would have a open place to discuss issues and ask questions. I researched different plugins that had the basic forum features that we would be able to tweak and add features that we thought would be useful for the college crowd. The best plugin I find through my research was Altered Beast it was essential Beast, but up to date. My group added some cool features and we turned in our project which ended up being pretty cool.

Our winter break came by and I decided that I wanted to work on the forum more and actually host it on a site that all the Berkeley students could access because the class provided us with servers so they would be going down soon. I started getting into the code of Altered_Beast more and I found some odd bugs that I was really surprised about. First if you try to log in with an incorrect password more than once it sends you to an error page rather than give you a warning and redirect you back to the log in page. I decided to fix this and push the patch to Altered_Beast. Secondly I found another huge mistake in state machine that was created. When a user would sign up it would send two authentication e-mails and then when I fixed that it had the person in pending so then they would never go into passive, which caused them never to be able to actually log in. I figured even though I am a new Rails developer I would contribute my patches and decided to even ask the two main people involved with Altered Beast if I was just missing something in the code and it was actually correct. The two main people are Courtenay and Technoweenie. It has been almost a full month and neither of them have gotten back to me or accepted my patches. I am really confused as to why these bugs were in the code for such a long time or if I am missing something drastic in the code that I thought didn’t make sense, but actually does. If anyone reads this blog post if they could get back to me with whether or not I missed something in the code or if I didn’t why courtenay and technoweenie haven’t gotten back to me yet that would be great. My commits for altered beast are here Danish Khan’s Altered Beast.

TwitterFon vs. Twinkle

So I have been using Twinkle since I got my iPhone and I personally liked it a lot better than twitterific. Twitterific would load a lot slower and I did not like the ads. I’ve heard good things about the paid version, but I wasn’t going to pay for a twitter iPhone client when there were clearly free ones that were just as good.

Twinkle was a good client it would show the tweets as bubbles kind of like using iChat. The best part that I liked about it was the ability to see nearby tweets. However, the downside was that they were not nearby tweets from twitter, but rather tweets sent by other twinkle users. Also, you had to create a tapulous account to use twinkle. The interface was nice and the load time was acceptable.
Twitterfon does everything twinkle does, but faster and nicer without having to create another account as well. You can easily retweet and reply, which is really nice. Also, you can follow a conversation as if it was an IM on iChat or like the SMS style on the iPhone. The other great part is that it opens up links in twitterfon’s own browser, which is really nice and you can easily send either a tweet with the url, open the url in safari, or email the url to someone. The other great thing that sold me on twitterfon was the fact that you could search for keywords with the client and search for nearby tweets that were sent by all nearby twitter users not just people using a specific client like twinkle.