Thursday, July 22, 2010

Ciao, Osmania University

It's been more than a month I left Osmania University and day after day I see my friends spread out to pursue their careers. But, whenever I go back in time, several sweet memories flash by before my eyes. To be honest, it's a little heart-breaking to realize that the college which I claimed to be mine is no more mine. But I still have what Osmania University has given to me - a whole lot of friends and a wonderful experience :)

One thing I understood at the end of this post was that these were the most happening four years of my life and I will definitely miss them :(

Four years back, I never thought that this time span would be over as quickly as it did. I still remember the day when I was at the EAMCET counseling, heart filled with anxiety, not sure which college I would get into and the seat-counters of various colleges go down one by one. As destiny wanted, I ended up at Osmania University, College of Engineering and then began a whole new chapter in my life.

Every one of these four years was special in its own way. In the first year, we were "The Juniors", with an unofficial formal dress code and living under the shadows of the seniors. To be honest, it wasn't as bad as it sounds. My seniors were really good and they did help us a lot and supported us when required. We also managed to learn several things from them over the years – both in terms of technology and event management. The first year ended with a magnificent freshers week at the "Landscape Gardens" and the freshers party at "Sixth Element".

Second year, we were "The Seniors" ;). We managed to have a lot of interaction with the our juniors and over a period of time we made a lot of friends among them. We had a lot of free time in the second year and even started bunking classes :D. We started exploring the college and spent a lot of time at the "Caroms Room". The second year ended with another freshers week and the freshers party at "F-Bar". I enjoyed making the freshers DVD and it will truly be one of my cherished possession of Osmania University.

All the career decisions began in the third year. A lot of my friends started taking up coaching for GATE and CAT. I was more focused towards taking up a job and didn't pursue either of the two. I joined Sun Microsystems Inc. as a Campus Ambassador (Technical Evangelist) in my third year and spent a year and a half working in it. Third year was a serious year concentrating on education and careers. And of course, the "Cricket Ground" :D. The third year ended with an Industry Attachment Program with Sun Microsystems Inc.

The fourth year was the fastest to pass by. Starting with a deep worry about job opportunities thanks to the recession impact in the country, it went by with me and my friends searching for jobs and spending countless moments at the "Placement Cell". Within a few months, the competitive exams like CAT and GATE came by and most of my friends were completely occupied with them.

Classes, Jobs, Exams and a little Fun - This is what fourth year was. And over and above all this, the Telangana Agitation ;). I even started my internship during the latter half of the fourth year along-side my final year project. I was literally beseeching for time the six months, but I believe it was worth the effort.

Over these years, I had several moments of fun and joy; and a few moments of sorrow and regret. But thinking back, I actually enjoyed each and every one of those moments. Well, time can never come back but it is the memory of these moments which brings about a warm smile on our faces.

Before I sign off, I would like to thank everybody whose has been a part of my college life over these years for giving me such a wonderful time and my sincere apologizes to anyone whom I have hurt knowingly or unknowingly. My deepest gratitude to the entire faculty for their guidance and putting up with all the juvenile things we have done. Wishing everyone the best of luck in their future endeavors and with a bright hope that our paths will cross again, Good Bye.

Thursday, July 15, 2010

Technology Team Outing 2010

Last week, the entire technology team of Capital IQ, Hyderabad went to Lahari Resorts. CIQ has a tradition wherein every year, every team goes out to a vacation spot to relax and enhance team bonding. So following the lines of this tradition, the technology team geared up this year to visit Lahari Resorts. The best part of this tradition is that the new joinees are responsible for the co-ordination of the entire event. Having joined Capital IQ last month as a fresher, the responsibility of organizing the event was on us and we had a great time organizing it :)

If you have already read Aishwarya's blog-post on the outing, this post may seem redundant, but before leaving, check out the photo show embedded at the end of the post. If you haven't read it, "Read On!".

After a lot of discussions and putting in a lot of thought, we selected Lahari Resorts for this year. Like any event, the major focus was on transportation, food, publicity and event management.

To lighten up the spirits of the team, we planned a few in-office events the day before the outing. We conducted various fun activities like "Logo identification" and "Recognizing the blurred images of various celebrities". To be honest, I never expected anybody to participate, but it was delightful to see people spare time from their work and participate in the events. And judging from their enthusiasm, I guess they had they had a very good time. We also designed posters and digital invitations to unleash the fervor.

The following morning, the D-day arrived, we all assembled in the office and moved on to the resort. Buses were arranged for people who didn't have their own vehicles. I went in a car, as me and a few others planned to reach a bit early so as to take care of the arrangements at the venue. From what I heard, the people in the bus had a wonderful time. Damn, I missed it :(

Once we reached the venue, we were in for the shock of our lives. The entire team had planned something for us, "The Freshers" - An Interaction. We were asked to introduce ourselves and do something - sing, dance, act, anything. For people wondering what I was asked to do - "Introduce myself in pure Telugu" (no laughing please ;)) and narrate a dialogue from a popular Telugu movie.

One thing which everybody in the office were waiting for were the Cricket tournaments. We booked a ground for ourselves and had several Cricket matches. In parallel a few of us played football and a few went directly into the pool.

After a few matches of Cricket and Football, we all plunged into the swimming pools. As the evening progressed, we assembled for a pool-side dinner. Simultaneously the dance-floor was opened. I personally felt that the Disco was the best part of the day. Initially a lot of people refrained from the dance-floor but eventually most of them ended up on it. It was nice to see people coming out of their shells and join us :)

We partied all night long and I reached home at midnight. I had a wonderful time and am enthusiastically waiting for the next party ;).

It would be unfair if I conclude without introducing the guys and girls who have made the event memorable - Aastha, Aishwarya, Anindya, Ankit, Arnav, Dinesh, Karthik, Niya, Preeti, Rajashree, Rohan, Sandhya, Sasikiran and Sudha - "New Joinees 2010" (Jame and Simanta - we missed you both)

And kudos to Raghu Vamsi, a year senior to us at CIQ, for his inspiring guidance through-out the event organization. Also my sincere regards to the entire Technology Team for making the night unforgettable.

And here's a small photo slide-show of the two days -

Saturday, July 10, 2010

Integrating OACurl With A Java Desktop Application

In my previous post, I introduced the Google Buzz API and the technologies surrounding it. In this post, I will be emphasizing on how to integrate OACurl with a Java Desktop Application to make the authentication process simpler. Before I continue, let me categorical state that this method is good for small student projects; but for serious production applications, OACurl integration isn't a good option.

OACurl is primarily an OAuth aware wrapper around the popular cURL command line utility. If you are wondering what cURL is, it is a software project providing a library and command-line tool for transferring data using various protocols like HTTP, FTP, HTTPS, LDAP, IMAP, POP3, etc. The beauty of cURL is that it simplifies the process of data transfer using these protocols to a very large extent. OACurl is an extension to this utility which supports OAuth, the authentication/authorization protocol of the Google Buzz API. OACurl provides an easy way to experiment with the Buzz API.

Before I start with OACurl Integration, let's see how we can connect a desktop application to the Google Buzz API without OACurl. As I mentioned in the previous post, the OAuth token request and authorization process takes place through a Web Browser. So the desktop application should open the Browser and allow Google to verify the user credentials. Then Google issues an authorized token to a Callback URL as specified by the application. This has to be detected by the application and it has to regain focus. For a more detailed view on this, check out - http://code.google.com/apis/accounts/docs/OAuthForInstalledApps.html.

The biggest challenge in this process is that in devices like Gaming Consoles, Setup Boxes, etc., where a Web Browser isn't available the entire procedure goes haywire. Google is working on a solution for this, until then we have to adjust with the Web Browser technique.

OACurl is a pretty easy tool to work with. It is available as a Java Archive with multiple classes for various operations like Logging in, Fetching data from URLs, etc. To use OACurl directly from the command-line, refer http://code.google.com/apis/buzz/v1/oacurl.html.

To use OACurl within a Java Desktop Application, add a reference to the jar file from your project. Now there are two classes which do the entire thing for us - Fetch and Login. Both of them contain a main method; actually it is these classes that are being used in the URL mentioned above. But instead of using classes from the command-line, we will directly call the main method in them from our Java program.

A bit of reverse engineering makes it clear that the flags like "-buzz", "-X", "POST", etc. are being sent as command line arguments. So we can create a String array of these flags and sent it to the main method.

com.google.oacurl.Login.main (new String[] { "-buzz" });
com.google.oacurl.Fetch.main (new String[] { "-X", "POST", URL });

The main methods push the output content to the default output stream as specified by System.out. By default, this is the user screen. If we want to use this output, we can transfer this output into a temporary file and read from this file.

File temp = File.createTempFile ("output", null);
PrintStream output = new PrintStream (temp);
System.setOut (output);

Similarly, the main methods read the input from the default input stream as specified by System.in. By default, this is the keyboard. If we have to send our input, we can create a temporary file, write the content into it and make the file the default input stream.

File temp = File.createTempFile ("output", null);
// Write into the file
PrintWriter writer = new PrintWriter (temp);
System.setIn (writer);

This way we can use the Google Buzz API within our Java Desktop Application without having to worry anything about the authorization process. Developers curious to know how this works can explore the OACurl project hosted on Google Code at http://code.google.com/p/oacurl/. The complete source code of the Login and Fetch classes as well as the Callback Server and other classes is available at the link.

Before I wind up, here is a small project developed in NetBeans which reads the latest buzz and publishes buzz content.