Friday, September 10, 2010

Acing the GRE – Q & A with Satish Kumar

satishFor all people in 4th year and beyond, its GRE season and we decided to catch up with Satish Kumar – who just passed VIT and is now doing his masters in Purdue, USA. Needless to say, Purdue is one of the best universities across the globe and getting there isn’t easy.

So, we decided to ask him for an interview about how to approach the entire GRE procedure, and we’re thankful that he agreed to take the time out to answer each one of our questions.

 

And without further delay, here’s Satish:

Q: How much was your score?

A: my score was 1280/1600 , 800 in quant and 480 in verbal 

Q: How important is a good score in GRE?

A: It depends highly on the college, but it is always preferred that you have a full score in the quant section, which in most cases is a requirement (for some good universities). But there are universities which don ask you for a GRE score. So it highly depends on the score. And aim for a score of 1300+ , that is supposed to be a good and safe score.

Q: Any tips on preparing for the GRE?

A: All of us are generally good at GRE math, so you need not concentrate much on the  quant, if you have problems, you could solve some sample papers and you would be fine. There are a few areas you would want to perfect yourself before giving the exam such as data interpretation and statistics.

But verbal is the crucial point, don make the mistake of giving GRE without any preparation ( I did), you will realize that there are a lot of words which you would have seen somewhere but you can't recollect. I strongly suggest the Princeton Review's Hit list of words for GRE, they are very useful and have a high occurrence in the actual exam, but nevertheless it is also good if you take a general summer course in one of the many institutes for GRE. Again it highly depends on the person, if you are good at English and vocabulary you might not need any preparation.

Q: What is the application procedure?

A: The procedure is generally like, while you are preparing for GRE and TOEFL you also look at the possible universities you are interested in and shortlist them, once you are done with the exams, you can actively look up the research or work going on in each of the universities and then apply accordingly, most top universities have deadlines in first/second week of December for the following year's fall admissions. So make sure you do things in time. Also look up for Professors/Lecturers/Other people who have worked with you or taught you for writing Letter of Recommendations (LORs) for you. Also start writing your Statement of Purpose (SOP) early and keep revising it.

During the application, you will have to pay some application fee (80-100$) and then fill up a long application form and then submit your SOP, resume and other required documents. You will be asked to enter the details of the persons who would submit LORs for you, the persons will receive an email from the university asking them to submit an LOR for the corresponding student. Most universities follow this system of online submission. After everything is done, you will have to send a copy of your official transcripts to the university via courier (the DHL service in Vellore is awesome, they even come to the university and pick up your packet). So basically all this should be done before the deadline.

Though this is the general flow of events, the steps might vary largely for some universities, so always make sure that you read the steps required to be finished on the concerned universities website etc.

Q: How long does it take for the application results to be released after applying?

A: This again varies largely, but most universities which have deadlines in december start sending out replies by march or mid April. 

Q: What should be a student’s strategy while applying for Universities? Which universities should they aim for?

A: The general strategy is that the student picks up some universities which are dream to just try their luck, and then some universities which are safe or obvious (these are mostly lower than the dream universities), and then some super safe universities. So in the worst case you will end up at least in the super safe universities. But mostly people get selects from the safe universities and sometimes even from the dream universities. Also one could use sites such as msinus.com etc for some help, though let me caution you that they are far from accurate.

Q: How should the Visa interviews be approached?

A: Visa interviews are generally easy, but be very meticulous with the base paper work, be very confident whatever it may be, and I have not heard of many rejects. I guess we can talk about the finer aspects at a later appropriate stage.

Q: How difficult is it to get a US visa?

A: It is not very difficult, of all my friends who applied this year (about 15-20) , no one was denied a visa. Visa denials are very rare, especially for VIT students.

Q: How difficult is it to settle down in a university abroad? What were your challenges?

A: The main challenges I/my friends faced in the first weeks were :

getting used to the accent, it is very tough to understand what people speak, but you adjust very fast , so its ok

food and other minor issues like general behaviour ( I did not face problems with these but mentioned them since I have seen people around me struggling with these), traffic rules etc

But don't worry, the people here are very friendly, so you will have almost no problems.

Q: How is the atmosphere in the university? Is there a culture shock?

A: Not much of a shock, I mean coming from VIT at least you can't say that ;). But yeah you need to get used to things and stop staring at girls ! :D

Q: Apart from the universities in the US, what are the other viable options for students from India?

A: I am not really  sure about this, you should probably ask someone else.

Q: How hard is it to get financial assistance? What is the procedure to apply for financial assistance?

A: The procedure generally depends on the university and more specifically on the department. If you are lucky enough you would be offered funding when you are selected itself. Other wise you will have to come to the university and look out for opportunities(like in my case). It is not very tough, but depends on the university. Mostly all Indians end up with something or the other after a semester.

Q: How are scholarships awarded? On what basis?

A: I am not really sure about this, there are a huge variety of options here too ... I mean there are fellowships for minorities and then there are merit based scholarships etc, so you can get this information mostly from the university website and after going to the university.

Wednesday, July 14, 2010

VIT’s very own Cloud Computing Centre #3

ani_thumb[1]
It’s now time for the third article in the series of articles on cloud computing.

This time I will cover Eucalyptus, a Linux based , open-source software infrastructure for the implementation of cloud computing on computer clusters which provides an interface that is compatible with the Amazon EC2 service.

A Eucalyptus cloud setup consists of five types of components. The cloud controller (CLC) and "Walrus" are top-level components, with one of each in a cloud installation. The cloud controller is a Java program that offers EC2-compatible SOAP and "Query" interfaces, as well as a Web interface to the outside world. In addition to handling incoming requests, the cloud controller performs high-level resource scheduling and system accounting. Walrus, also written in Java, implements bucket-based storage, which is available outside and inside a cloud through S3-compatible SOAP and REST interfaces.

Top-level components can aggregate resources from multiple clusters (i.e., collections of nodes sharing a LAN segment, possibly residing behind a firewall). Each cluster needs a cluster controller (CC) for cluster-level scheduling and network control and a "storage controller" (SC) for EBS-style block-based storage. The two cluster-level components would typically be deployed on the head-node of a cluster. Finally, every node with a hypervisor will need a node controller (NC) for controlling the hypervisor. CC and NC are written in C and deployed as Web services inside Apache; the SC is written in Java. Communication among these components takes place over SOAP with WS-security.

Many instructions in this article refer to a single-cluster installation, in which all components except NC are co-located on one machine, which we refer to as front-end. All other machines, running only NCs, will be referred to as nodes. In more advanced configurations, such as those with multiple CCs or with Walrus deployed separately, the front-end will refer to just the machine running the CLC.

Eucalyptus can be installed from source or using a set of packages (RPM and DEB). The former method is more general and should work on practically any Linux system, the latter is easier but will only work on the distributions that Eucalyptus support. As of 1.6 they are:

CentOS 5.4,
Debian squeeze,
OpenSUSE 11, and
Ubuntu 9.04 "Jaunty" and 9.10 "Karmic".


To install eucalyptus on CentOS refer this link : http://open.eucalyptus.com/wiki/EucalyptusInstallationCentos_v1.6

For configuration details refer the following links in order:

http://open.eucalyptus.com/wiki/first-time-setup-16
http://open.eucalyptus.com/wiki/hypervisor-configuration
http://open.eucalyptus.com/wiki/EucalyptusNetworking_v1.6
Once Eucalyptus is installed, the management tools called Euca2ools should be installed. For this refer to http://open.eucalyptus.com/wiki/Euca2oolsCentosInstall_v1.1

To troubleshoot, look at the eucalyptus forums.  You can also ask your questions by commenting on the article.

Next time, we will look into cloud management using Euca2ools.

Tuesday, June 1, 2010

VIT’s very own Cloud Computing Centre #2

ani_thumb[1] This is the second instalment in the series of articles on Cloud Computing. As promised in the previous article, this article will cover two major topics

 

 

 

  • Deployment Models
  • Importance of Interoperability and open standards in Cloud Computing.

Deployment Models:

1. Public Clouds: Public clouds are based on the standard cloud computing model, where a service provider provides resources (Applications, platforms, Infrastructure) to the general public over the Internet. Public cloud services may be free or priced on pay-per-usage model.

Benefits:

  1. Easy access to resources through the Internet
  2. Inexpensive due to the payment model.
  3. Scalability(The most important benefit of cloud computing i.e. elasticity)

Examples of Public Clouds: Amazon EC2 service –> paid service ->provider of Iaas, Google App engine –> paid service –>PaaS, Google Docs –>Free (I'm not sure if they have an enterprise subscription) ->SaaS

2. Private Clouds: Private clouds are similar to Public clouds, except that they are build on private networks. The idea behind private cloud is to deliver the benefits of cloud computing at the same time reducing the security risks that arise with public clouds. Private clouds are best suited for large corporations that are not comfortable with having their data on a public cloud. It is estimated that private clouds will be adopted more in the coming years until all the security concerns are addressed. Eucalyptus is an open source software used to build private clouds. The cloud infrastructure that is being build at VIT by the Linux User Group is powered by Eucalyptus.

3. Hybrid Clouds: Hybrid cloud is an environment in which some resources are kept in-house (may be on a private cloud) and some resources are placed on the public cloud. This setup is also ideal for corporations.

Interoperability:

Interoperability w.r.t Cloud Computing refers to the ability of customers to use the same artefacts (Management tools, OS images, APIs) with a variety of cloud computing vendors. Let me give you two examples:

a) GNU/Linux images running on Amazon EC2 should be able to run on Slicehost without changes.

b) The Office documents created on Google Docs should be editable on other Vendor services.

The idea behind open standards and interoperability is to avoid vendor lock-in so that customers can migrate between vendors depending on their service. It is an important issues as proprietary lock-in can hinder the adoption of cloud computing. If cloud computing is to move ahead, vendors need to put aside their differences and agree on common principles related to security and the interoperability of cloud platforms. A lot of groups and forums have been formed to address these issues of which the important ones are CCIF and DMTF.

In the next article I will cover a step by step procedure to build your own Private Cloud. Till we meet again, Happy reading.

Tuesday, May 25, 2010

VIT’s very own Cloud Computing Centre #1

ani We finally got Anirudh Nair to speak up about the Cloud Computing Centre he and some more students from VIT are working so hard on. The cloud is going to be located at MB 111 (if you’re still in campus, feel free to give them a visit).

The cloud computing centre is a collaborative venture by LUG@VIT.

Setting up a cloud hasn’t been easy, and here we have Anirudh Nair sharing his experiences with you in a series of articles. Enjoy!

This is the first in the series of articles on Cloud Computing. In this article I will cover the basic idea behind cloud and the different services that are possible with cloud computing.

Cloud computing has been a buzzword for quite sometime now. Over the past few years cloud computing has matured from a mere buzzword to a dynamic infrastructure used by hundreds of organizations around the world.  All the major IT companies already have a cloud related product in the market.

The cloud technology is still evolving and a rigid definition of cloud is not possible. In simple terms a Cloud is an infrastructure of dynamic resources which are utilized on demand. They are basically a clusters of computer nodes which are scaled as and when required.

The three fundamental services possible through cloud computing are

         a) Infrastructure as a service (Iaas)
         b) Platform as a service (PaaS)
         c) Software as a service (SaaS)

I'll touch upon each of the services in detail. 

IaaS:

Infrastructure service delivers virtualized hardware(processor, RAM, network adapters)  as a service. So, instead of purchasing a server or data center or network equipments, clients can get these resources as a service. The service is billed on as per the amount of resource consumed. Amazon Web Services (AWS) is the most successful IaaS provider to date. Amazon's Elastic Compute Cloud (EC2) offers, as the name suggests, server power that can grow and contract in line with an organization's demands.

PaaS:

PaaS offerings may include facilities for application design, application development, testing, deployment and hosting as well as application services such as team collaboration, web service integration and marshalling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation. These services may be provisioned as an integrated solution over the web. An example of PaaS is Google App Engine.

SaaS:

SaaS,  is software that is deployed over a network. With SaaS, a provider licenses an application to customers as a service on demand, through a subscription or a “pay-as-you-go” model. Saas is also called “software on demand.” SaaS vendors develop, host, and operate software for customer use. Rather than install software on site, customers access the application over the Internet. The most common examples of SaaS are Gmail and Google docs.

Now, in the next article I'll cover the different  deployment models and the importance of open standards in Cloud Computing. The future articles will also contains detailed instructions setting up your own private IaaS using open source tools. Till we meet again, Happy Reading.

Tuesday, April 13, 2010

Collaborative MindMap – Anand Narayan

As we promised earlier, we have a special article by Anand Narayan himself sharing his experience as the developer of Collaborative MindMap: and interface you can use to collaborate online with like minded26874_1423248302114_1259930618_1207705_1029667_n people. The idea is ingenious and we’re proud to have an article from Anand himself on our website.

Anand is pursuing his B. Tech., CSE from VITU and he is currently in the third year.

As an introduction, we have his video about Collaborative MindMap here:

And without further delay, we have the man himself. Here’s what he feels:

5 semesters over, 3 to go. I wanted to build a nice app that I would fetch me some money before I get out of college. So I brainstormed with a lot of my connections, did some market research, finally landed up at one. Collaboration was (is) the in thing. Even Google (wave) was into it. And one of my mentors suggested I do a collaborative mind mapping tool. Sounded pretty interesting, something I could sell. So we collaborated and charted out the features and I started with the development.
Step one of every project; you got to choose the technology you are going to use to implement the idea. I asked a lot of people, social networks, friends, geeks. Didn't get many suggestions. Ended up with a couple of libraries, stuck to one. Learnt it for a week. Then had no clue how to use it to develop what I wanted, felt like I was stuck with too ambitious a project. This is where it really helps having a mentor, he broke it down, and I finally got going.

It was full code now, after like 3-4 days of coding, I just finished connecting a couple of rectangles and stuff. I realized that I had chosen a very low level technology, which meant that I had to write a lot of code and in-return I get a lot of power. For instances I had to code even a simple textbox and trust me it’s not that easy to code a textbox, loads of events have to be taken care of at such a low level . And so I continued and had a lot of fun. I was able to appreciate computer graphics; so much of code goes into them, browsers, desktop interfaces and stuff ... Lovely.

After sometime with development, I reached the crucial collaborative part. I had a naive idea about how to go about this, again googling, Wikipedia, only made things worse. The more I read about them, the more I got confused. Fortunately I landed on some code and I got the concept in like minutes. It’s so weird theory is always confusing, but it is actually meant to make things simpler.

So now my working prototype was almost ready, I just had to test for a few bugs, and I was ready to go. I made a screen cast and showed it to a few people and got some feedbacks. Eventually I attended Barcamp Chennai, a few of the people whom I had shown the idea to, were present there and they really egged me on to demo my prototype there. Thanks to them I did speak at Barcamp and I demoed the product, got some nice supportive positive encouragement from the people there. They gave good suggestions and I really felt like I should do more to this product, because so many people like it, Felt great. I was wondering how Steve Jobs would feel when he shows off a product like iPad to the whole world and have them jaw drop .

So this where I am now , I am looking at developing the UI , adding more features , making an alpha version , then beta , then release . I'm also looking for people who can work along with me. If you are interested mail me at anand[at]sanandnarayan.com

We hope you enjoyed this inspired you to do something similar. We’d love your feedback, you can always follow us on Twitter: www.twitter.com/VITreporter or just email us: contactus[at]vitreporter.com

We’ll be back with more!

Special thanks to Aditya Vikram Thoomati for letting us use his image.

Saturday, April 3, 2010

Top Programming Myths

Each one of us often wonders - how do we become good programmers? And that question becomes much more predominant if you’re going to get an engineering degree within a period of four years.
First, let us shatter some misconceptions. The first one is what most students believe – the more programming languages I learn, the better I will become. Wrong. In fact, you couldn’t be more wrong. Programming is like poetry. And when you try a different programming language, it becomes more or less the same situation where you switch to completely different writing language and try to come up with meaningful poems. In fact, a new programming language will only result in the overhead of adapting to the syntactical changes.
The second of most prevalent misconceptions – I should learn programming from a book. Let us ask you a question from the perspective of poems again – which poet do you know of, learnt poetry from an English grammar book? Again, programming is something best learnt through experience. Yes, a reference book is definitely going to help, but it is not going to be a source of new ideas in terms of algorithms. A programming language book is only going to explain to you the grammar of the language, the syntax. It will not inculcate in you the skill to come up with an algorithmic solution to a problem.
The third – those who took programming in their high school can only be good at it. Again, false. Programming is like mathematics and poetry combined. You can learn and master programming at any stage in life, given you move in the right direction with it.
Okay, enough myth-busting. Let’s get down to ‘how to learn programming’. The key my friends, is experience combined with a sharp analytical skill. First, one needs to learn how to effectively translate and break every situation down into a programming problem. Almost everything encountered in engineering can be put in terms of programming. Once you’re able to do that, half the work is done.
The next stage is the planning and analysis. Hold your horses before you reach out for the keyboard and begin coding. First, get yourself some old fashioned piece of paper and a pencil. Now, analyse the problem statement mathematically. Take some cases, try them out, see how the math flows. Next, move on to the more extreme cases and see if the flow of things is still the same. If not, repeat the previous step, until you begin to get the drift of things.
Now comes the part where your computer and the compiler are your best friends. You’ve done the planning, you’ve done the analysis, it’s now time to sit down, and code. In real programmer vocabulary, this part is not as exciting as the planning and analysis part. Ask any good programmer and you’ll find out.
So what do we conclude from this? Firstly, you need to know just one programming language. Yes, classical computer science doesn’t need you to know more than one. A programming language is just a way of translating mathematics into a computer’s language.
Secondly, try programming more for mathematical situations rather than things like sockets and other such utilitarian pieces of code. Unless you’re really interested in run of the mill Information Technology, you don’t need to know much about such code.
Thirdly, spend more time with a pencil and a paper than an IDE. Imagine more, and think in terms of mathematics.
Fourthly, get an algorithmic bent of mind. Instead of issuing a reference book from the library, buy yourself a copy of a hardcore algorithmic bible like “Introduction to Algorithms” by CLRS or “The Art of Computer Programming” by Donald E. Knuth.
Lastly, patience. Which of course, all of you who have read till this line, have.
Cheers and happy coding.

Tuesday, March 30, 2010

Code your way to $150,000 or Las Vegas!


Attention, all the developers out there.

TopCoder's 2010 TopCoder open has just been announced with $150, 000 in prizes, and a trip to Las Vegas. If you've not yet heard of TopCoder, rush to their site and you'll know what they're about.

In short, TopCoder is one of the biggest online programming forums around and their community is rich with some of the best developers and algorithmists from across the globe.

For starters, you might want to first sign up on their site and get yourself a handle. We suggest you participate in some SRM's (Single Round Matches), where you'll be given a set of problems in increasing order of difficulty which you have to finish in a fixed amount of time. Your scores will take some time to get updated (after the match), and will depend on the amount of time you spend in programming the solutions. Your programs will be evaluated based on a test 'set' which TopCoder's servers will test your program with. Each one of your programs should output the correct results within 2 seconds, for each of the test case.

Also, keep in mind that TopCoder also runs as a Java applet on your computer, so you might need Java Runtime Environments up and running on your system.

You can code in your preferred language.

We'll leave the rest of the exploration to you. All the best, and do us proud! [below are all the links you'll need to get started!]

The TCO10 six competition tracks: