Wednesday Jan 27, 2010

Finally its done, Cube3_div released

Here it is finally, Cube3_div 1.0. This adds Division algebra feature to CUBE 3.2 . Finally, its over. Now can completely devote myself to other projects. Thanks to Verdi March of Sun APSTC Singapore and Markus Geimer and Brian Wylie of Julich Supercomputing Centre for all their help and support.

Download and check (only if you are interested in MPI/Open MPI development). Click here to download.

Sunday Dec 06, 2009

Tweeting from Command line using Python

Woke up at 11 in the morning, brushed my teeth and all...Sat down at my desk to study for the end semester exams tomorrow but did not feel like it...So decided to do something fun..

Twitter is quite popular and people are just dying to join up and tell everyone what they are doing, what they had for breakfast, when they are going shopping and other such 'important' details about their daily life, whether people care to listen or not.  Nevertheless its a good service.

So yeah, coming back to the point. Long ago I had seen this shell script to tweet from the command line. And I have been into Python over the last few days, so decided to cook up one of my own in Python. Given below is the result of my last 20 minutes of work.

Caution: Won't work in windows because it does not have curl. Coming up with a Windows version soon.

 Save the code in a file say ''.To run this do a chmod +x and then just type ./ "Your message" and it will be posted. But before that, you will need to open up the file and put in your Twitter username and password in it. Check out the third and second lines from the bottom. That is where your username and password goes, inside the quotes. And you are all set.

import sys 

from os import popen

def tweet(user,password,message):
    print 'Hold on there %s....Your message %s is getting posted....' % (message, user)

    url = '' 

    curl = 'curl -s -u %s:%s -d status="%s" %s' % (user,password,message,url)

    pipe = popen(curl, 'r')
    print 'Done...awesome'

if __name__ == '__main__':

    if len(sys.argv) != 2:

    print "Usage: <message>"


    message = sys.argv[1]

    if len(message) > 140:
    print "Message too long"


    user = "barneystinson" #put your username inside these quotes

    password = "awesomeness" #put your password inside these quotes

Monday Oct 12, 2009

My first Barcamp...Barcamp Mumbai 6

Cross posted from my personal blog

Wow. What an experience!

Attended BarCamp Mumbai 6 today at SP Jain Institute of Management and Research (SPJIMR). This was my very first BarCamp and so I was unsure what to expect. I reached the venue at 6 in the morning as I had reached Mumbai early and had nowhere else to go. I had prepared half of my presentation on the bus to Mumbai and wanted to finish the rest provided I get a place to charge my laptop. On finding the gates of SPJIMR closed, I headed off to the Andheri Railway station hoping to find a plug point. Once again I was failed by Mumbai. By now hungry and tired I reached a KFC outlet which had opened at around 7:30, which again could not provide me with a plug point but I did find the next best thing, breakfast and that too, chicken. So I had some breakfast. But I still wanted coffee and a helpful guy at KFC told me that one Barista outlet nearby would be open. So I headed off to Barista for my morning cuppa. However, to my dismay, the outlet was to open only at 9 and I decided to sit outside. By now, having had a nice breakfast, mother nature was giving its call and I had no place where I could go and answer it in solitude. I was however relieved that the Barista outlet opened at half past 8 and I hopped in, dropped my bags (one containing my laptop and the other containing lots of Netbeans and OpenSolaris Cds) and answered mother nature’s call just in the nick of time. Once done and much relieved, I had the best start of my day with two cups of double espresso and proceeded to finish the rest of my presentation. Then I headed to the venue at 10 AM.

I got my session registered and selected a time suitable to me. Then I lay down Cds of Netbeans and OpenSolaris 2009.06 on the floor of one of the auditorium and on a desk at the other so that interested people may collect them. I also kept a bunch of OSUM Laptop stickers for whoever was interested. Soon a horde of people started picking them up and there were some queries coming my way. In all I had kept a hundred Cds in all and by the end of the BarCamp all were taken and many had stuck the OSUM stickers on their laptops. Someone had also brought Ubuntu 5.10 Cds to distribute.

Next was the introduction ceremony where everyone introduced themselves in 30 seconds followed by another chance given to attendees who wanted to take sessions to give a very brief intro about what they are gonna talk about. Then the people who wanted to talk were asked to choose a timing for their talk and mark that time on a board placed outside with a post-it not, in many ways like a physical wiki. The sessions were divided across two halls. The first session I attended was by Manan Kakkar who spoke about the tech blogging scene in India. Some of his tips and ideas were good but I found his tone admonishing and patronizing at times and his idea about tech blogging seemed a bit myopic because of his presumption that all tech blogs only report tech news. This was followed by one on solving Rubik Cube and What History can teach us about prospering in the tech age respectively.

The session that I like most (beside mine of course) was the one of Scaling web apps by Vaibhav Arya of Skenzo as bits of it related to HPC which is my area of interest. Lunch followed and I chatted with Amitabh Jain who was to present a talk on Django Framework to be parallel to mine. He is a techie-turned MBA from IIM-A-turned entrepreneur and techie again. Talking to him again made me think if should reconsider my decision to go for MBA, or should I do a Masters in Comps. Soon after lunch I attended a session on Zopte, a web based dynamic website creation and hosting tool. I wanted to go deeper into it but mine was the next session and hence I was busy re-reading my presentation.

I had realized during the introduction session that the crowd was only party techy and that too relating to web technologies. And my talk on Parallel Application Profiling using Scalasca was strictly cutting edge High Performance Computing. Actually I had wrongly assumed that one must speak of ones original work at a BarCamp and my Scalasca work was the only original worthwhile work I could claim of. Had I known the target audience I would have probably talked on JavaFX or Zembly or FBML. Nevertheless I decided to do my best to talk about HPC, Parallel Apps programming, Profiling and Scalasca in my span of 20 min, hoping to create a world record of sorts. As expected, my session had a little more than a dozen people, most had left after reading the title. Still I decided to give it my best and skipped slides which I knew would be too technical. I had prepared those slides while on the bus and at Barista the next morning, so they weren’t exactly my best creation. I finished up my session fast and was asked quite a few questions and all were on the basics of Parallel Programming and MPI which I tried to answer to the best of my abilities.

I attended one more session and then left as I was tired and wanted to go back to Surat and sleep. Overall it was a great experience. I met school kids, entrepreneurs, professional blogger, coders, a really varied crowd and you could learn something from everyone.Overall an enriching experience. Looking forward for more.

So guys I will call it a day now. Am dead tired, need sleep and my back aches from having sat for nearly 32 hours. Good night.

More photostreams

Friday Oct 09, 2009

Innovation @ ACM SVNIT

As most you reading this blog might know, I was the Chairperson of the ACM Student Chapter of our college last year. As I am in my final year now, I have resigned and handed over the reigns of the chapter to an enthusiastic group of third year students. I will advising them in the capacity of a Student Mentor and so will Punit Mehta, the ex Vice Chairperson.

Until now the focus of ACM has been in conducting events and imparting knowledge to the students. This year, the junior decided to curtail on such events and instead go on a project drive where a group of students from First (Freshers) and Second (Sophomore) years will be alloted a project and they have to complete it by the end of this year. The will be guided by their seniors in Third (Junior) years.

Being senior students, I and Punit are guiding these students in  their projects. Our job is to look after all the projects and ensure that issues are sorted and deadlines met. The projects are from varied areas like web designing, J2ME, Java apps, Robotics, Image Processing and Linux. I wont go into the details here. Between me and Punit, we have experience in all the areas and yes, the projects were itself decided based on the experience of the people guiding them. A Project Allotment drive was conducted by the current ACM Core Team and projects were assigned.

And today was the first meeting since then.It was held at the canteen.I and Punit talked to the students on what technologies they were required to learn and how to go ahead with it. We gave each team a small task to accomplish by the end of their diwali vacations. Also we would be interacting with them on the ACM SVNIT Mailing list. We have high hopes with these projects.Lets see how things turn up.

BarCamp Mumbai 6

I am attending BarCamp Mumbai 6 at SP Jain Institute of Management on the 11th of October. For the uninitated a BarCamp is a developer unconference. A BarCamp is an ad-hoc unconference born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos and interaction from attendees.

Starts at 9 AM and ends at 6 PM. I have registered for a session on SCALASCA and the Division algebra that I am working on for SCALASCA.

So be there. :)

Sunday Sep 27, 2009

Awesomeness as I see it

I have been part of various committees and organizations in this college. I was deeply involved with the ACM Chapter as a volunteer, then a Secretary and finally as the Chairperson. One other organization that I have been involved over the last one year is Renesa, the college monthly mouthpiece. I have been the editor of the tech page for over a year after Sunayana quit Renesa (Yes, like in almost everything I followed my Tech mom's (Sunayana) footsteps here too).

The last year we really did not work much. We could not bring out the promised number of issues and never made it on time. I would not blame any particular person or persons for this. It was a collective failure. A failure to understand what Renesa meant to the college, a lack of dedication and enthusiasm. We used to have meetings where some gave ideas but which never got implemented or were implemented poorly. I myself wrote boring articles for the tech page and mostly they were hastily written. Another reason why the editors were not interested in writing good articles was probably the fact that nobody ever read those. People were mostly interested in the college gossip page called "Rumor Mill". The rest of the pages were used for various innovative purposes like tissue paper in the canteen, making kites etc. So that dampened the enthusiasm of the writers. Of course this is not just a fault with the readers, if the content fails to generate interest a large part of fault of course goes to the content writers and planners. In all Renesa had become just another thing that the college does. Just another slightly colorful piece of paper.

Now come to this academic year. A new team was formed with Nijeesh Padmanabhan , Ashwin S, Srividya, Thomas, Swati and Shruti at the helm. Nijeesh is the editorial consultant and chief designer. Ashwin S and Srividya are the chief editors. Thomas along with Swati and Shruti are the impact consultant (btw, do magazines have such designations? ;-) ) . And what was the difference this time? Well these guys had a vision. They really wanted to "Change our world" with Renesa. They wanted it to be platform for people to think, to learn and also have fun. Most importantly, they expected people to read it and love it. Renesa, to these guys, is not a thing that they have to do, it is a responsibility they love to execute. And this is the vision they propagated to the team, specially Nijeesh, Ashwin and Thomas. And motivated they were. Earlier where we had to pester editors to write articles, this time we had an avalanche of articles and most of them very good ones. It was hard to decide which one to print and which one to reject. Our first issue had 33,000 words in 16 pages. To include that many articles, we reduced the font size. Readability suffered because of that and I have assured by Nijeesh that this wont happen again and I take his word for it because he wants his balls intact.

The design too was awesome. Never before did Renesa have so many colours and my respect for Nijeesh's designing skills has risen considerably. We printed Renesa in glossy paper and people loved it. Our editors debated endlessly on what to write, how to write on the Renesa mailing list. In fact, my mailbox received at least 15 Renesa mails a day. Last year there used to be 15 mails per month. We put up a new Renesa site. As of now, the site does not contain much content but we expect usage to pick up. The site is my job so I am thinking of ideas to promote the site. Our alumni read the issue and loved it. We got lot many mails of appreciation from them. Some even circulated the issue among their colleagues and relived their college life through Renesa. Students sent SMSs of appreciation with one even saying that he loved the issue so much that he was afraid to read it, lest it get damaged or wrinkled.

The editors are putting in everything they got. No one calls it work. We call it fun. Some of us are now accused of not having a life beyond Renesa because Renesa constantly crops up in our discussions. Some of the new things that have been included this year are "Jack and Jill" where we publicize about a guy and a gal of our college who have had significant achievements so that others can emulate them, "Reviews" where we have reviewed not just movies and books but also gadgets, restaurants etc, Guest articles by famous people (Shashi Tharoor wrote for the first issue), "Faculty Speak" where we ask a faculty to write, "Walk when you talk" where we interview a member of the college administration and College Band Review where we review the music bands (all Rock bands as of now) of the college. Also the Hindi editors are doing a fine job. And with this month's issue you can expect some really good stuff from them.

All this was good. Now the bad part. Where we went wrong? Well for one the font size was too small. Some people even asked for a free magnifying glass with the issue. There were too many spelling and grammatical errors in the issue. I am sure we can all do with a bit more proof reading.

As for my tech page, I am trying to move it from being a Computers only page to a more general tech page. I want to cover all branches of science and engineering. So suggestions and ideas are welcome.

Do visit our site and download an ecopy at

And finally, I would like to praise the marketing and distribution team for distributing some 1800 copies in 8 hours, delivered room to room across 11 hostels. And thats an awesome feat considering that there are only 4 people in Marketing. They rock.

As for my role in Renesa, I do the tech page and a bit of humor articles apart from making useless funny comments on the mailing list, abusing people and using expletives that would put many rappers (and Christian Bale) to shame. In all, I have taken it upon me that we never have a dull moment on the mailing list. Kudos to me for that.

@Thomas: The above praise to you was probably the first and the last time I did that. Please do not expect such magnanimity again.
@Ashwin: I still love my abuses and nothing will stop me from using them.
@Renesa Team: You guys rock and so do I.

Friday Sep 25, 2009

JoyFest @ SVNIT

As engineering students we often get to hear from our faculty, parents and sometimes even random strangers that engineers have responsibilities and obligations towards the society. And we generally nod in favor. However, I can be certain that not even 1 percent realize what that obligation entails. And yes, we don't bother to find it. Not because we are brats, but an endless curriculum and various extra curricular activities leave us very ,little time to ponder over these. We do want but most of us don't know how and where.

We do have a group called Nirvana in the college. It is formed of our students and supported by the administration. They interact with the kids of the laborers who work in our college on various construction activities and teach them. It has been a commendable effort on their part. But still its a small group and not many join in.

In that context, Joy of Giving Week is a great concept. It would focus the energy of today's youth on social issues for a brief period which will benefit the society as well as make them aware of issues that they can tackle. It will, hopefully, be the beginning of a realization of one's responsibilities and obligations towards society.

At SVNIT, we will be celebrating JoyFest on the 29th. 250 differently abled kids would come and spend the afternoon at our campus. Students of our college will interact with them and mentor them. And its heartening to see that a lot of students have signed up for it. It feels great to know that we engineers do care. People generally volunteer for college activities to get a certificate or other benefits. Here people are coming on their own and they don't want anything in return, which is a breathtaking change. Then there is the performance by the Orchestra from the school of the visually challenged at Surat. It must be a real feat for visually challenged kids to play music instruments. I am looking forward to their performance. The college has been really generous in funding this endeavor and some enthusiastic students managed to generate a good sum of money through a paper collection drive. Hats off to them

Apart from this, we are planning a donation drive where students could donate stuff to be distributed among the needy. Many students have come forward and some are being exceptionally generous.

We are all trying our best to organize it in the best possible way. Wish us luck.


Software Freedom Day is the worldwide celebration of Free and Open Source Software. Sun Microsystems has been sponsoring SFD celebrations for the past few years. Also Sun supports SFD activities through its numerous Open Source University Meetup (OSUM) clubs worldwide. The OSUM clubs are provided with Sun merchandise, software CDs/DVDs, posters and banners to celebrate the event. All of these activities are co-ordinated through the OSUM site .

We celebrated SFD at SVNIT on 18th September, one day earlier, because its Navratri time and most students were about to leave that evening. Posters and banners were put up at the departments and hostels. I also designed a custom A3 poster for SFD. Apart from this SMSes were sent to students who had attended previous Sun Tech demos.

The topic on 18th was OpenSolaris and ZFS along with OpenSolaris installation on Virtual Box. I had done an OpenSolaris intro last year too but decided to do it again because entirely new batch of students have come this academic year 2. got feedback during my last talk that everyone wanted to learn OpenSolaris 3. the last talk on OpenSolaris saw very poor participation as it clashed with a singing competition where half the college decided to participate and the other half decided to cheer the participants. So with this OpenSolaris intro I want to start off with a long series of workshops on OpenSolaris and its related technologies.

The talk began with the usual on how Sun OS became Solaris and Solaris has become OpenSolaris. I like my talks to be free moving and at times wander off to parallel areas. Also I prefer not to stuff my slides with too much of information. I generally have one big heading per slide and 4 lines(preferably words) of text. I expect my audience to look at me and not the slides. I talk, the slide doesn’t. Also I make my slides visually appealing. For me a presentation is a work of art and I am learning to improve my craft.

So yes, we discussed a lot of things like why no Free OS can play MP3 and many video formats out of the box and the workarounds to those problems. Why OpenSolaris matters and where it stands vis-a-vis other OS? The future of OpenSolaris post Oracle-Sun merger. Why OpenSPARC is better than Intel x86 and yet why it does not sell as much? Why Apple decided to switch to Intel processors etc

During my intro of OpenSolaris ZFS, I also talked about the recent intrusion at and how the sysadmins managed to save a lot of data and effort as they were using ZFS at various places. The students were also fascinated by the concept of Zones and lots of questions and doubts were fired on this. Due to time restrictions I could not talk in depth about Crossbow and I had to move on to the installation demo. Nevertheless, I will be talking about all of the above in great detail in future sessions.

Also there were goodies for asking and answering most questions. The guy who asked most questions got a Sun USB stick and the next three got OSUM bags. In all it was a fruitful discussion and will bring in more people next time.

Some more tech demos are planned in the next few weeks. Wish me luck.

Tuesday Aug 25, 2009

Brand new ACM SVNIT Chapter Website

Check out

Content still to be uploaded. And some issues need to be ironed and many more features to be added. We are making it very Web 2.0 ish. Tell us what you think about it.

Saturday Aug 15, 2009

How to be a good programmer...My tips

This article has been cross posted from my personal blog : 

At the very onset, let me make it clear that I DO NOT consider myself a good programmer. I rate my coding skills as average and I am still learning and have a long way to go before I am even slightly pleased with my programming skills. Yes I am better than quite a few people when it comes to programming, but thats merely because they are lazy and like to sit on idly all day and never bother about programming. Their horrible skills make my less horrible skills look marvellous. I have performed abysmally in ICPC and have never done well in any coding contest worth mentioning (I DO NOT consider college level contests worth mentioning). I havent succeeded yet in Google Summer of Code and my Imagine Cup moderate success (and glorious failure) isn't much to write home about.

So most of the tips I will mention below are lessons learnt from failed endeavours, they are what I have wanted to be and I am not. So lets dive in.

1.Decide why you want to become a good programmer: Is it because you want a job, preferably in a high paying software firm? Great. Then you are set to reach NOWHERE. All good programmers I know are good because they loved what they did. Develop interest in programming. See, programming is the only branch in engineering where you can straightway apply what you learn. Your dad may have a car but he certainly wont allow you to tweak the V2 or swap it for a v6 just to see what happens. But with computers you can do whatever you want. You want to simulate a virus? Cool. Install a virtual OS and run it. Then, when you are done, remove the virtual hard disk. If you are good at what you do, you will get paid and surely get that dream job. Yes, even I want to work in a big software company. But thats not because of the fat paycheck. Its because of the work they do. Because of the exposure I will have. Have you ever bothered to find out what all these companies do and the enabling technologies behind their products or the kind of R&D they do? Jobs will come. Dont make yourself a sucker for one. Sachin is not a great cricketer today because he decided to play cricket to earn money and get dozens of endoresements.

2. Programming languages: Very often people equate good coding skills with number of programming langauges known. Thats just damn untrue. While knowing a lot of programming language is good and sometimes, even, essential; it is more important that you know one or two lanugages very well. I 'know' and have used more than a dozen programming languages and yet C and Java are the ones I am truly comfortable at. Thats sad of course. I really wanted to be good at Assembly and Lisp as well. Never got the time or chance to develop those skills. To be good at a language takes years (at least 2 years). Being good at a language means, you understand where it is best used and where using that language makes no damn sense. On the other hand, knowing a language takes anywhere from 3 days to a week. If you are a beginner, learn C first. Don't buy Yashawant Kanetkar. Buy the book "The C Programming Language" by Brian W Kernighan and Dennis M Ritchie (If you don't know who they are, do this 1. Slap yourself 2. Google their names). This book is not the easiest but is the best. Its a small book but it is the most powerful. Generations of programmers have been brought up on it. And if you think this book is tough for you, please do not harbour any misplaced desires of being a good programmer and do not waste your time by reading this post further. Programming is an art (not a science. Yes you read it correctly), and like any art it requires painstaking effort.

Some people suggest Python as the first language to be learnt. Python is certainly a good language and is easy too. But you will have to rely mostly on the internet for help as not many around you would know Python. Also C has the broadest usage among all programming languages. Also please DO NOT use Turbo C. Its so damn outdated. Use GCC. If you are in Windows download Dev C++. It has GCC

Read this (small) essay by Peter Norvig Teach yourself programming in 10 years . Again, do a Google [ ;-) ]search and find out who Peter Norvig is.

3. Algorithms: Any good programmer has a good understanding of algorithms. Its not necessary that you know each algo by heart (in fact good programmers never learn things by rote) but you must understand when to use what. Algos will broaden your understanding and give you new ways to tackle problems. Another important thing is Data Structures. Its more important than algo. Once you have chosen (or developed) the correct data structure, the algorithm becomes self evident. For algo, read the book "Introduction to Algorithm" by Thomas H Cormen et al. You may also refer Andy Tanenbaum's "Data Structures in C and C++". Also if you have desires to participate in coding contests (the respectable ones), "The Art of Programming Vol I to V" by Donald E Knuth are mandatory. Also may be "Concrete Mathematics" by Donald Knuth. Again reading does not mean remembering everything. Just try and understand whats written.

4. Coding contests: Coding contests are good for developing your algorithmic skills and they make you think fast. Its a good idea to participate in ACM ICPC or Then there are coding contests (like Sun's Code for Freedom, Google's Summer of Code, Microsoft's Imagine Cup) where you develop a complete software. Such contests are spread over many months. Both require different sort of skills. You may be good in one and bad in another and yet you could be a good programmer. Contests like ICPC require lot of practice, fast thinking and you are expected to keep algos at the back of your mind. CFF, GSoC, on the other hand, requires creativity and focus spread over a long period of time. You dont have to come up with solutions too fast and you dont have to mug up algos. ICPC is like T10 while CFF,GSoc and Imagine Cup are like Test Matches. I would suggest you to participate in both types and then decide if you want to focus on either or both.

5. Participating in FOSS projects: You MUST participate in some free software projects. There are just too many. I am working on SCALASCA right now and then I will move on to Sun Grid Engine and Sun xVM Hypervisor and contribute code there. You learn a lot from these. You get to see a lot of code and learn the best practices. And did I mention, it looks good on your CV too. Most people catch cold feet when they go through some of the prerequities of such projects. Take Thunderbird for example. You would need to know a lot of C/C++ and Javascript (for developing modules). Now don't wait till the day you are an expert in these languages before contributing. Programming is an art, don't waste time sharpening your pencil when you should be drawing. You can ask me for directions.

6. Design Patterns: Any art is learnt by emulating. And therefore, you must emulate the best. Design Patterns are tried and tested architectural (of the software kind) solutions to some commonly encountered software design issues. And therefore, a basic knowledge of some common design patters in needed if you are planning to develop something that is even moderately complex. I suggest "Head First Design Patterns" from Oreilly as the first step.

7. Learning by emulation: Emulate the best. And this is possible by reading books written by the best and/or going through code from some of the best free software projects. I would urge anyone serious about programming to read the book "The Art of Unix Programming" by Eric S Raymond (dont forget to first slap yourself for not knowing who Eric Raymond is and then googling his name). You are not a programmer if you have not read that book. Period.

Now let me address a few common grouses

a. I dont find any interest in computers and want to do an MBA:Mainly a statement often repeated by Second Year(sophomore) students. Thats really your problem. I did not ask you to take Computers or even to join Engineering. You did not know, or bothered to find out, what you were getting into when you took up this branch of engineering and I am pretty sure you have NOT bothered to find out what awaits you in a MBA course either. I am also quite sure that 2 years after an MBA (if not earlier) you will also say pretty much the same thing about your job. Well what can I say. All the best :)

b. I dont like reading the books (or any books for that matter) that you mentioned above: Well this is not yet the world of Matrix where I can just feed in programming skills to your brain. Dont force yourself to read them. You can't . Do it only if you want to. And if you don't, please forget about being a good programmer. May be its time for you to use the excuse mentioned above (point a).

c. Give me one programming language that does all: There is none. Each has a different purpose. And thats how things are gonna remain buddy.

d. I want to a 'real' project: Thats great. You can do two things:1. Start one of your own 2. Join a FOSS project. But most people are not happy with this. They expect me to 'give' them a project, one thats easy (read, should not involve anything other than C and the only files you need to include should be stdio.h, conio.h (yes people here still use Turbo C) and may be string.h and math.h) and I should tell them what to learn. When people say this,they expect to go on a Autopilot ride.

e. I will learn X programming language by this sem/year/decade :There is no way you can sit with a book and learn a language. You need to do some real work with it, develop some real software and not just do those exercises in the book (that is necessary of course but not sufficient). Most of the languages I have learnt are because I was forced to do so as part of some project. Just pick up the basics in a day or two and then apply it to a real life project. Need ideas? Come to me.

Finally as Larry Wall says in Programming Perl : "We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris."

Laziness:So that you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer

Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer

Hubris: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.

So get set on your way to become a great programmer, the likes of Richard Stallman, Rithcie, Brian, Raymond, Torvalds. All the best.

Friday Aug 07, 2009


My SCALASCA project is coming to an end. Its nearly over. I will take up another after this. This seems to be addictive, I want to learn more and more about it. And I have such fantastic and supportive people like Ganesh, Rajesh and Verdi. I wont talk about my next project right now. Let me complete this one first.

Ganesh Sir has already let students from my college ( work on porting apps to OpenSolaris IPS. Now he is also willing to let selected students to work on HPC projects under Sun Engineers from Singapore, who are also researchers at NUS. And I am understandably ecstatic about it. This will really help our students. HPC @ Sun means the cutting edge of technology and some really cool projects.

Also I and a few other friends of mine are fully going ahead with our plan of setting up a cluster here. Exciting times ahead. :)

First CA event of this academic year

My CA term got extended for a year. So I will be the CA throughout my 4th year. My coordinator this year is Kumar Abhishek, a absolutely cool guy whose tech demos are wildly popular. My first event this year was on 4th Aug. It was an introduction to Sun and FOSS. I wanted to talk to people about FOSS, why it matters to Sun and why it should matter to them. We at our ACM Chapter, too, take FOSS seriously and do our best to promote FOSS. I made 2 types of posters(20 each), one to promote FOSS and the other to highlight Sun, which were put up at various part of the college.

Sun poster
FOSS poster

The talk focused on what FOSS is and I talked a bit about all the history related to it including the Free Software Foundation and Open Source Initiative. I also talked a bit about some popular FOSS software to make it clear that FOSS means serious software and not just enthusiasts stuff.Then the talk moved over to Sun Microsystems. My focus was mainly the software and hardware that Sun develops and some of its pioneering work. The students were particularly interested in OpenSolaris and have asked me to conduct workshops on it. That will soon happen, but before that I need to conduct workshop on Netbeans and SPOT. I am already in the process of installing Netbeans on all PCs in our computer lab. The talk went for about 90 mins and I was happy to see that the students were not bored.Students who asked good questions or answered my questions received Sun goodies. A total of 43 students attended, a good feat considering most had left home for raksha bandhan. Expectations are high now and I have to deliver. I will do at least one more tech demo next week, if possible two.

Wish me luck.

Wednesday Jul 22, 2009

Internship at Sun Microsystems

Most of you already know that I did an
internship at Sun Microsystems India Engineering Center this summer
(I am sure I have bragged enough about it). The internship has been a
fantastic experience. The very first day I was welcomed by Rajesh,
the Sun CA program co-ordinator for the south of India and Ganesh
Hiregoudar, the APAC Head of the Sun CA Program. On the very next day
I got a complete list of projects in my preferred area, High
Performance Computing (HPC). I chose a project and a conference call
was scheduled with the concerned Sun Engineer, in my case it was
Verdi March, who works at the Sun Singapore office and is also a
researcher at National University of Singapore (NUS). I was also
alloted an account at Singapore Grid Discovery Zone to run my apps.
My project was to find the per function speed up of a parallel
application across multiple profiles. If you haven't understood
anything, don't worry. I will explain.

Any computer application is made up of
functions (I trust you already knew that). Profiling an application
involves executing it and finding performance metrics out of it, like
number of system calls, the time taken for each such call, the time
taken by each function to complete,the amount of memory used, the
number of bytes of inter process communication done by the
application etc. In my case, all the applications were parallel ones,
applications which use more than one CPU/cores/nodes. Now each time
you run a app, under different conditions like different number of
CPU, the performance characteristics will be different. Function will
take different amounts of time to complete under different
conditions, sometimes lesser time (a speed-up) and sometimes more (a
speed down, i.e a speed up of less than 1). My job was to write a
program that could read the performance profiles and calculate this
speed up.

Here comes SCALASCA (Scalable Analysis
of Large Scale Parallel Applications). SCALASCA profiles and analyses
parallel apps. It been developed by the Julich Supercomputing Centre
in Germany and has been used on such well known supercomputers like
the Blue Gene......

My job was to extend SCALASCA to
calculate the per function speed up. SCALASCA already does the job of
profiling your application and generating a trace in XML format. It
also provides an API to read/write those files. However, there isn't
much documentation available on SCALASCA as the developers are mainly
people at the Julich Supercomputing Centre. Neither is there a
mailing list for discussing problems. Hence I spent a hell lot of
time going through the source and trying to understand the underlying
design. The problem was further compounded by the near lack of
comments in the source code. However, the SCALASCA developers,
particularly Markus Geimer and Brian Wylie replied to all my question
which enabled me to understand the CUBE API (CUBE is the tool that
displays the performance data in the form of a GUI and allows you to
perform operations on it).

Understanding the architecture of
SCALASCA and the CUBE API took me quite a few days. And finally on
the fourth week, I had nearly written a code that I believed would do
the job. However there are still a few compilation errors to be taken
care of (They have reduced from 26 to 4 now). I should complete the
whole thing in the next couple of days.

I also met many of the other CAs. Made
great friends with Abhishek Uppala, Vasusen Patil, Jay, Avinash,
Abhishek Gupta, Okendra and others. Rajesh and Ganesh were always
helpful and approachable. They are the best bosses you can get. I,
Rajesh, Uppala and Vasusen also made a trip to Pondicherry. It was a
fantastic experience. We played Foosball daily and my performance as
a defender improved from pathetic to passable. We also had a few CA
conferences and a team lunch as a farewell to Vijaya Santosh, a CA

Overall the experience was amazing and
I am looking forward to go back to IEC.

Monday May 04, 2009

My new guitar. A Fender Squier

Got myself a new guitar today. My first one. Guitar classes began today. Learning proper finger placement.

My Guitar 

Sunday Apr 26, 2009

An Ex-Googler talks about MySQL and why it made sense to them back in 2001

An Ex-Googler talks about MySQL and why it made sense to them back in 2001. These guys ran AdSense on MySQL back in 2001, when it did not even have support for transactions. They decided to move to a \*real\* (or you can say proprietary and exhorbitantly costly) database and the switch proved to be a disaster.

 Read it here


Hi. I am Sandip Dev. I am a student of Computer Engineering at SVNIT (NIT-Surat). My passions are coding, listening to music, reading and learning new things. I am also the Chairperson of the ACM Chapter of my college and Sun Campus Ambassador here.


« July 2016