Monday, December 31, 2007

New Year!

The year 2007 saw me: get my first employment (and hence the first salary), buy something with my own money, get a twitter account, create my website, make a bunch of new friends (not just in DA-IICT), develop Mac software (IPMessenger, Shakespeer, SnailMail Widget and more recently cyberoam client), have fun leading a team, write two (yet unpublished) papers, submit my first bug reports, get to know a near perfect woman (better than before anyway), start open source projects (BioTexPy, Winshortcut), explore music like never before, buy good headphones, see great TV series (Frasier, Seinfeld, House), learn new languages (Ruby, Objective C, Haskell, Prolog, Erlang) and a lot of little things that made a silent impact.

Surprisingly, I did not predict even one of them happening last year! Now I know that my predictions suck (they have neither precision nor recall) and hence I refuse to venture any predictions about 2008. Except this: 2008 will bring more surprises than 2007 or any other year yet.

Happy new year all of you.

Saturday, November 17, 2007

My prepration for CAT

Had dinner at Sardars and then dessert at Coffee Day. Watched 2 episodes of Frasier, 2 episodes of Seinfeld, 3 Ted Talks and Inside Man (the movie). Edited one Wikipedia article, read about 20 articles on random stuff, tried to research "Decommissioning of Nuclear Installations", looked at a few universities, ...

"Hey," you interrupt, "isn't that what you do everyday?" To which I reply "yes, of course". As the puzzled 'WTF?!' look starts taking shape on your face, I give a pitying nod and go to sleep — on the morning of the test.

Friday, September 28, 2007

Google Labs Blogger Widget

Posting from the widget. Pretty good idea. Needs spell checking.

Thursday, September 27, 2007

IPMessenger With New Icon Set

This version has a cool new icon set (developed by Pyro) and a few features for extra convenience.

New Features:
  1. New icon set.
  2. Clicking on the Growl notification opens the message.
  3. Can launch a file by clicking on the "Download finished" notification.


Bug Fixes:

  1. Extra logging is removed.


Known Issues:
  1. Setting the icon to busy might not work and it might stop the icon flip when a message appears. This can be fixed by re-lauching IPMessenger.


Get it here: IPMessenger.zip

Thursday, August 23, 2007

1410 in 20 Days

That was my GRE score and that was how long I took to prepare for it. This post is about that journey.

The first step I took was to select a good date. I was glad to have my father beside me when I chose the date because it turned out to be an excellent choice. I set it on 21st of August. Firstly I didn't have any exams or major deadlines nearby and I had a 4 day holiday stretch before the test. I think a good date has made my preparation a million times easier and more organized.

What to study: My learning is improved when I actually participate in the learning process and hence a software was a natural choice. Also I spend a lot of time in front the PC and a book would keep me away from it, which mentally for me would be a big chore and hence my mood would go down when I switch to books. Using a software I can just switch from a web page to GRE preparation whenever my mood swings without any overhead. After trying out a bunch of stuff, I started my preparation on August 1st with a software called SAT GRE Crash Course.

Initially I started with 40 words per day, doing all the exercises in the software. After two days, increased it to 80 words. And later I started adding a wordlist from Barrons to this (I think it has about 85 words per list). Eventually it reached to a stage of 200 to 250 words per day. I really had fun working with the software and after I got into a rhythm, I could do a wordlist in 20-30 minutes.

By 14th August, I completed all the words in the software (840 in total) and 4 wordlists (didn't like to switch to the book). That is when I relaxed a little and lost 2 days. A little panic crept in on 16th and I took Word Power Made Easy and completed all the words in the back of the book (I think there were 800 in total) during a pre-placement talk of Texas Instruments. I came back from the lecture and also completed the 300 Barron's high frequency words.

By 17th August, my preparation was mostly complete, or so I thought. That is when I talked to Santosh, he suggested me to check out: ExamBell, GRE Verbal and an Orkut GRE Community. I stared reading these sites but not so seriously. But I found one great source: Number2. I registered an account and started working out those exercises. Their questions and most importantly their analysis of my wrong answers (and their praising for the right ones) completely changed my mind about the test and helped me get into that mindset. I was so fascinated by their analysis that I took a number of screenshots and mailed them to friends (with subject titles like "how the hell could it read my mind?", "the machines have taken over our us" etc).

But the preparation turned suddenly when I started taking the practice tests (about 2 days before the exam - on 19th). I was surprised by the number of mistakes I made both in the math and in the verbal. It took me the whole of two days to just make myself patient enough to read the questions completely before jumping to answers. Here is a break down of my scores:

  • PowerPrep test 1 - 1340 (verbal: 590)
  • PowerPrep test 2 - 1380 (verbal: 600)
  • Kaplans test 1 - 1380 (verbal: 610)
  • Barrons Verbal test 1 - 610, test 2 - 740 (a fluke obviously but which surprised many people).

The day before the test, I made sure that my ride to the test center was arranged, that all my documents were ready and that the date indeed was on 21st August. This helped me a lot on the day of the test as it started raining pretty heavily the whole day. I went to the center an hour before my appointment, got used to the atmosphere (which was really good by the way) and got in front of the PC half an hour later.

Since I signed an agreement in the test which actually forbids me from revealing any questions, I can't post the actual questions. But reading the blogs and threads in Orkut really helps during the verbal. A lot of words were from the those sites (hmm... coming to think of it I knew the words anyway, so they didn't matter that much but still...). The reading comprehension questions were surprisingly easy (which makes me think I goofed up somewhere in the beginning of the test). In math, I spent too much time making sure I got the right answers (doing the same problem in different methods etc.) and I had to put random values in two graph analysis questions to make up for the time.

I was very surprised in the end that I got 800 in math (happy) and 610 in verbal (not-so-happy) but overall I was quite fine with the result. I wish they told me my score before the research section for I would have done it with more patience and with less sarcasm in it (instead of arguing about traffic problems in a town, I started writing about my own models which will rid the town permanently of traffic ;)). Phew! got test done, came back, threw the books over the window (kidding - gave them to Pyr0) and have been having fun ever since.


Tuesday, August 14, 2007

Ecto

Trying out Ecto3. Very impressed so far. Works perfectly with the proxies.

Btw, Ecto3 should not have a "save" and a "publish" buttons and that too together. They seem to mean the same thing and it is easy to confuse save for publish. It would be better if save is renamed as "save draft". There are still a few bugs but I'm sure it is just a matter of time before they get fixed.

I also don't see the need for the ID field and it seems to insert random newlines in the text. I also wish it would give some notification (maybe using Growl) when the publishing is done.

Saturday, July 14, 2007

Shakespeer with Magnet Links

Now magnet links work!

Also includes added emoticons.

(Magnet links do not work in the main hub chat area.)

ShakesPeer 4.zip

Sunday, July 08, 2007

SVN

I have been using Subversion lately to commit code to my project and to checkout code from various other open source projects.

A few days ago, to my surprise, the proxy server of our university was giving 403 (access forbidden) error for any svn requests I made (subversion is mostly referred to as svn). Initially I thought it was due to something else but yesterday when I tried only svn, I got the same response and more over the internet connection was blocked for about half an hour. Completely baffled by this (I mean WTF right?), I put this as the status message of my chats:

When did svn become illegal?!


This conversation followed it shortly:

7:21 PM (h@!tu: wht is this??
u thr??
7:22 PM saideeeep...
sleepin??
7:23 PM me: yeah
not sleeping
what is what?
(h@!tu: istatus??
status??
me: what about my status?
7:24 PM (h@!tu: emiti adhi?? (translation: what is that?)
me: google for svn... or look in wikipedia
(h@!tu: k
7:25 PM lol
me: whats funny?
(h@!tu: so wht is this i thought??
hahha
7:26 PM me: what did you think it was?
(h@!tu: my name became illegal..
me: hahaha :D

Disclosure: His full name is SVN. Chaitanya.

As I soon found out, svn can mean a lot of things: http://en.wikipedia.org/wiki/SVN

Tuesday, July 03, 2007

SnailMail Widget (Major Updates)

This is the alpha version.

This version includes the following features:
  • Notification when you get a new mail on any day.
  • New look
  • Search function


Fixes:
  • Size is smaller
  • Dates are properly displayed
  • One can change the month in the calendar without ruining the date


Bugs:
  • Prev function sometimes does not fetch data. But the cause is identified and fix is being worked out.


Thanks to Prateek for the new look and the search function.

Get it here: snail 1.wdgt.zip

Thursday, June 28, 2007

Snail Mail Widget

My very first widget!

This is based on Prateek's idea. Its such a chore to go to the hostel website everyday to check if any postal letters have come (heck, I haven't check mine even once till now). So, we have developed a widget that takes the days letters list and brings it right on your dashboard.

This is my first attempt at creating widgets and the product is in alpha. There are still a few bugs remaining (none which would crash the widget fortunately).

Features:
  1. Provides a calendar (on the back) to check letters list of any day.
  2. Ensures that the names are in proper case most of the time even if they are entered in wrong case (which seems to be the case most of the time).


Bugs:
  1. Size is still a little big.
  2. 31 of all months is displayed as 30th of that month. Will debug the javascript date functions soon but no energy right now
  3. Changing the month without choosing a date ruins the date display in the front. This can be changed by going back and choosing another date
  4. Sometime prev button does not fetch the data. Use the calendar in that case


Thanks to Prateek for the idea and for bearing with me for a whole session.

Get it right here: snail.wdgt.zip

Monday, June 25, 2007

Open Source Project

Successfully hosted my first open source project at code.google.com. It is a program that reads windows shortcut files and lauches files linked by them.

Check it out at: http://code.google.com/p/winshortcut/

I am planning to do the same with IPMessenger after trying to contact the author again.

Friday, June 22, 2007

Personal Achievements.

Now is the time for placements. Since the resumes are constrained to only 2 pages, a lot of people are finding it difficult to write their real personal achievements.

We are more than glad to help our fellow DA-IICT students by providing a free space for their achievements right here:

Chaitu:
  • Stick cricket master (unbeatable; run rate > 30)
  • High jump
  • Continuously spoke for a whole day
  • Exploited Andhra Mess to the fullest
  • Caused price rise in Andhra Mess
  • Ruined futures of many cricketers (success rate > 95%), tennis players(100%), actors (100%), actresses (100%), movies (100% - Pirates 3, 300, Sainikudu etc.)
  • Death of one author (Sidney Sheldon)
  • Ruined holidays of at least one person (Venky)
  • Ruined computers of at least 4 (Vihary, Sidhu, Sharief, Siva Karhik)
  • Ruined phones of at least one person (Adarsh)
  • Ruined pop quizzes of at least 15 persons



KRC:
  • Good health regime: Eating only once a day.
  • Sleeping for 13-14 hours every day.
  • Spider Solitaire and hearts champion. Plays them throughout the night
  • Got praised by Anish Mathuria for thinking too much.
  • Specs more DotA games than the players themselves.



Lingam:
  • Reading for 20 hrs a day.
  • Reading for 20 hrs a day.
  • Reading for 20 hrs a day.



Vihari:
  • Got all common diseases
  • Second place in running race (from last)
  • Saw the naked back of Praneeth.
  • Crying
  • Sulking
  • Went to catch a bird instead of the ball while playing cricket.



Venky:
  • Super fast bowler.
  • Successfully tuned his body to sports (computer sports).
  • Just missed a exam and then its re-exam.
  • Tearing exam papers



Sai Deep:
  • Surfing net for a complete day
  • Could disturb a whole wing (E-wing, by arguing loudly during exams)



Vijay:
  • OMG from V. Sunitha.



Kunal:
  • Critique of user comments in IMDB.



Siva Kathik:
  • Record sleep of 18 hours a day.
  • Excellent coding conventions.



Praneeth:
  • Implemented a complete user login system in PHP by using just one function - strlen
  • Undertaking a major initiative to write a research paper.
  • Exposed a lot in the 3 years in DA-IICT.
  • Roughest hands in DA-IICT (or maybe the whole world).



Chandrashekar Movva:
  • Absorbs and emits more radiation than anybody else in DA-IICT.
  • Provides excellent company for his roommate.
  • Bought a knife worth Rs. 10 to kill a leopard (in rural internship). Now it is successfully being used to cut mangoes.
  • Could fool a lot of people into thinking he is a road side vendor (also in rural internship).



Ganachari:
  • Reading for 24 hrs a day.
  • Watching all released Telugu movies (only cam prints).
  • Watched Ghazni for more than 10 times.
  • Successfully maintaining the same timetable he had in his intermediate.



This list is no way complete. Please tell us of yours and your friends' personal achievements and we'll be more than glad to include them here :)

Thursday, June 21, 2007

New features

Before people start wondering why I'm delaying updates to IPMessenger, let me tell you what it takes to add one feature.

The feature in question is the addition of logging. One might want to archive important messages and retrieve them later. In the first glance this seems simple enough. Most of support files like these are stored in the Application Support/IPMessenger directory. All that needs to be done is to create one file per every user to interact with, store every message that pops up with its time stamp.

Now come the problems: How will the archives be retrieved? Will the IPMessenger provide an interface for it (like Adium)? Or just let the users look at the plain text files? If we are to provide an interface, this little feature will require the user-interface design, a good file format for the archived files, a way to delete the archives, export them as text files etc.

All in all, a significant update but which, in my opinion, is not worth the feature. Very few people use the archives (for something like IPMessenger) and that too for a very few things (like if they delete the last message accidentally).

Lets suppose we do not want to take all that trouble and let the users look at the plain text files. This also has the advantage that since the files are text files, spotlight can index them. However one can't expect all the users to know where the application support files are. What if you don't want archives of every conversation? What if you don't want archives at all?

How will the archives be deleted? They just can't keep growing indefinitely. One menu item to remove all archives? What if one specific user's archives are important and the rest are not? Or if only one user's archive has to be deleted? This includes significant number of preferences for something which will be used very rarely (if at all).

My solution so far has been to put just two menu items - last sent message and last received message. If you accidently close the last received message, or you want to send the sent message again (or to someone else), these two actions come in handy. I think this is what most people use.

If you have any suggestions about the archiving, please let me know. I do plan to incorporate the archiving feature if people find it important.

Sunday, June 10, 2007

IPMessenger alpha

This version contains the following features/fixes:

1. Now all users across different subnets are visible.

2. Duplicate local names are removed. You see yourself only once now

Important: Please do not edit the user list. I will have to work on it.

IPMessenger.zip

Shakespeer with improved search

Now browse files will actually take you to the file you were searching for in the user's file list

ShakesPeer 3.zip

Saturday, June 09, 2007

Shakespeer with search integrated

Now shakespeer has google search integrated in it.

Also removed recursion in a few places which gave a little increase in speed.



ShakesPeer 2.zip

Friday, June 08, 2007

IPMessenger beta

Did major work on it. Will release the first beta version in a while.

Shakespeer

Did some work on Shakespeer - the popular DC client for mac. I think these are specific to DA-IICT hubs and hence haven't thought about making these official.

This version has the following fixes/features:

1. The hub flooding is removed. This was the most important thing that was holding the whole app back. Now just enjoy chatting and trivia.

2. Better search.

Will put some screenshots later



ShakesPeer 1.zip

Saturday, May 05, 2007

Bug Fixes

This version has the following bug fixes:

1. The slashes issue

It also adds the following featues:

1. The names are organised properly now



IPMessenger 6-5-07.zip

Friday, May 04, 2007

Intel version of IPMessenger

This is the version of IPMessenger compiled for Intel platform. This is having enough bug fixes for the code to compile and a few minor GUI additions:

1. Command + comma now opens the preferences tag (it did not do that by default)
2. A few gramatical errors corrected in various dialog boxes.


IPMessenger Intel.zip

Known Issues:

1. Sometimes t is replaced with \

I will fix this issue in the next build - too tired to do anything right now.

Now that the code is successfully compiled and run, we can make app as good as we want! Any comments or suggestions for further improvement is most appreciated.

Tuesday, March 27, 2007

aps as basic proxy authenticator

You can use aps as an authenticator for both ntlm and basic proxies. Download this unofficial bug-fix release which supports both ntlm and basic proxies



aps098.zip

Note that the official aps page still has the bugs that is fixed in the version that I released. To use the official version, you need to replace the config file and the lib/basic_auth.py files from the original aps with my bug-fix release.

Tuesday, March 20, 2007

These are a few desires that just poped into my mind a few days ago:


  1. Get a macpro with at least 4GB RAM, 250GB hard disk and 24inch monitor.

  2. Contribute to the linux kernel.

  3. Work at Apple for at least a year to see how great products are built.



I have no idea how childish I will think these are when I'm older. And hence I have no idea how long this post will remain.

command-on-buffer

After reading the article on javascript bookmarklets in daringfireball.net, I wanted to make emacs do something that BBEdit and TextWrangler do: Take the buffer and give it to the shell command and replace the buffer's contents with its output.

I didn't know if it was implemented in emacs and got to working on it and one hour later I produced this emacs lisp script:


(defun command-on-buffer (command)
(interactive "MEnter command: ")
(shell-command-on-region (point-min) (point-max) command (current-buffer)))

(global-set-key "\C-c\C-s" 'command-on-buffer)


I was initially bent on using call-process-region but somehow it gave errors when I was running interpreted python or perl code. I remember the python code giving syntax error at reading stdin. I don't know whether it thought there was no stdin at all or if it was empty. However normal commands like "cat" worked without any problems.

So, I was looking for other programs which used call-process-region and since I was editing a python file (which was what I was testing the elisp function on), I recognized that the python-mode must use something like that for sending the buffer to the python shell.

I grep'd for a while in python-mode files and found out that shell-command-on-region is like call-process-region but it could execute shell commands and looked for its documentation (in emacs itself - it IS the best editor in the world after all). And yes, it did exactly what I wanted - it gave arbitrary text in the buffer to the shell command and could put the output in any buffer I chose. Writing the function then was very simple as you can see.

It doesn't give selected text to the command yet. I do plan to implement that too - but only when I have a real need or inspiration and if I find that emacs indeed doesn't have any functions to do what I want. For that I need a way to see if any text is selected, get the selected text and then ask shell-command-on-region to replace only the selected text. I don't think shell-command-on-region does that and if that is the case, I'll have to put that in a buffer and insert its contents into the selected region.