Long due update  

Posted by Anirudh Acharya in , , ,

It's been a long time since I've updated my blog; four and a half months to be exact! A lot has changed. I left Raleigh, NC; moved to San Diego, CA; joined Qualcomm as a full time employee; bought a new car with CVT (which I love to drive and boast about! :D); Schumacher joined McLaren; England won the T20 world cup; Sania wed Shoaib (not that I care, I'm more than happy that two losers wed!); Facebook suddenly became the new bad-guy-on-the-block... Boy! So much has changed since I last blogged. It seems like a whole new world!

Summers will be here, in San Diego, in a couple of days. The weather is beautiful now. Long weekend's round the corner.

Aaah... I admit it. I have nothing to post. This is probably the most "scattered-idea" post of mine, ever! This marks the birth of a new tag for my posts - 'Bullshit'!

PS: How can I miss this! Lucid Lynx was released recently and it broke some parts of Mac4Lin. I am working on the fixed, albeit slowly. I don't find much time due to my full-time job; but I am trying my best to find some time.

Bye Bye 2009, Welcome 2010!  

Posted by Anirudh Acharya in , , , , , , ,

Another year has gone by. 2009 sped away; like the gusty winds of North Carolina! As with every year, here's a new year quote:

May all your troubles last as long as your New Year's resolutions! -- Joey Adams


That is one more reason NOT to make a new year resolution! The year started with my second semester at NC State, then an internship at Qualcomm in San Diego and then a feverish third semester. Of course with four courses in the last semester, it was bound to be meteoric! After a laborious one-and-half years, here I am with a Master's degree in Computer Engineering. It is so satisfying to see the hard work reflected on the degree :) It really feels strange though, when I think that I no longer have projects, assignments, exams! The very next day after my exams ended I followed the routine to check the course webpage for any new projects/assignments. It was then that I realized that my MS is over and I've graduated! It's a strange feeling... no project deadlines, no exams to study for, no lectures! This year I was also able to complete my article on MS in US. I am very happy to know that a number of Master's aspirants read the article and were benefitted from it. They even gave feedback about it.

There are other things that I'm thankful for. A full-time position with Qualcomm's GPU team is one of them. I now enter a new phase in life - the corporate world - a job with Qualcomm's GPU team at San Diego, California. It's in sync with my area of specialization at NC State University - Computer Architecture. I begin work on January 11, 2010.

The other thing is that I could release version 1.0 of Mac4Lin and it turned out to be one of the most popular Linux posts of the year 2009 on Lifehacker! As with every new release of GNOME, something or the other breaks and I am now working on fixing that for Mac4Lin's next release. How can I forget that Mac4Lin was one in 85 projects out of 47,000-odd Opensource projects from around the world to be nominated for Sourceforge.net's Community Choice Awards 2009. It was at the third place in the category it was nominated for. Mac4Lin was also featured in the hugely popular ComputerWorld magazine.

Winter, this year in the US, has been harsh. Temperatures have always been in negative (deg. C) since the past week and are predicted to follow the trend. Winds are gusty and pierce right into your face. This makes the apparent temperature fall further. But I've bared this hostile weather to goto the theaters and watch movies! Avatar, 3 Idiots, Sherlock Holmes were some of the movies that I saw and liked. I've been enjoying my last few days in Raleigh, North Carolina. Malls, movies, shopping, roaming, clicking photos. Boy! What a memorable one and a half years it has been in this city! New year celebrations haven't been exactly as exciting as the last one, with just a dinner outside on a rainy New Year's eve; but I have no complaints since I wanted to welcome the new year in a peaceful and graceful manner.

I hope 2010 will be as eventful and exciting as 2009, for me and for everybody! As each year passes, it fills more pages in the book of life with experiences, happiness, sorrows. The key to a happy life is to read the book of life and learn from the text; leave behind the sorrows, put the experience to good use and thus fill the empty pages ahead with happiness. So long... Have a great year ahead. Happy New Year!

Mac4Lin figures in Lifehacker's Most Popular Linux Posts of 2009  

Posted by Anirudh Acharya in ,

Mac4Lin is one of Lifehacker's "Most Popular Linux Posts of 2009"! The article author writes:

Mac4Lin Gives Linux Desktops the Complete Mac Look

It really, really does. If you don't mind the obvious break in your your free-as-in-speech fidelity, it's a pretty nice setup.


Read the full story here. (Mac4Lin is listed just above Jolicloud and Chrome OS)

It feels really good when you see your project figure on one of the Web's most popular tech websites! A big "THANK YOU" for all the support and appreciation :)

Chrome OS: First Impressions...  

Posted by Anirudh Acharya in ,


To satisfy my itching hands I finally pulled Chrome OS sources and compiled them, made a VMWare disk and installed it. I must say I'm not at all impressed by it. The first thing I said was: "WTH! It lacks a Shutdown/Reboot button!" Agreed, it's a developer build, but no shutdown/reboot?? Come on... you must be kidding! Not everybody can drop to the terminal to reboot or shutdown. Yes, to get to the terminal (a geek's haven!) you need to press the key combo: Ctrl + Alt + T. Once there, you find Chrome OS familiar :)

As of now, there aren't many options to fiddle with and many features are incomplete. You can close all the tabs in Chrome and lock yourself out. It's as though everything got sucked by the black-hole and now you are there staring at your monitor, looking helpless! You cannot change the system-wide volume. To log on to the system, you need to be connected to the internet - True cloud computing! You login using your Google/Gmail ID and password. There aren't many web app shortcuts as of now. Google Wave is hell slow. Flash plugin crashes every now and then. The task manager says everything is sandboxed.

When the terminal is up, the everyday Linux user smiles :) and feels at home. Its Ubuntu under the hood with many optimizations. The most evident is the elimination of many processes and daemons which boost the startup speed. The system boots in about 13 secs, even on a VMWare-emulated SCSI disk. Phew! Thats fast. Good job, Google! 'top' shows that almost no user-level processes run in background. The /proc fs is the door to all stats-gobbling enthusiasts. The root partition (/) is read only, hence the 'lock' in /var/cache/sources can't be modified. This ensures that no 3rd party software can be installed.

Private browsing is enabled and one can switch between the private browsing and normal Chrome window with Alt + Tab. The System tray displays the Network and Battery status. The OS has a simple task manager that has a weird column: Goats Teleported. Wait a minute... "Goats Teleported"??!! WTF is that??!! Another task manager opens directly in the browser, called Task manager for Geeks. The widget toolkit used is GTK+ (Yay! Mac4Lin FTW! :D).

Overall, it's still a very half-baked product. And IMHO, even after its ready I wouldn't like this very much. I think Google has taken up a very good initiative to make the OS very simple and easy to use without giving the users many confusing options. But running this on overpowered Netbooks just doesn't cut the cake, it cannot be justified considering the power they have under the hood. Netbooks are already quite powerful. By the time Chrome OS comes out, they'll be as powerful as full-blown computers were an year ago. I agree it's still to early to comment on all the features. But the best thing Google has done to it is that it's Open Source. So let's wait and watch!

Update: Turns out that the "Goats teleported" is just a dummy column as explained here. This is what the source code says according to that source:

// An id for the most important column, made sufficiently large so as not to
// collide with anything else.
static const int64 kNuthMagicNumber = 1737350766;
static const int kBitMask = 0x7FFFFFFF;
static const int kGoatsTeleportedColumn =(94024 * kNuthMagicNumber) & kBitMask;

....

case kGoatsTeleportedColumn: // Goats Teleported.
goats_teleported_ += rand();
return FormatNumber(goats_teleported_);

.....

// See design doc at http://go/at-teleporter for more information.
static int goats_teleported_;


http://go/at-teleporter is an invalid link. Must be Google's intranet. The goats_teleported_ += rand(); statement makes the number go like crazy and overflow. Looks like this is just an internal Google joke! :D

Update 2: There are prebuilt versions of Chrome OS. You don't have to take the pains of compiling it from source. Head to this page for instructions and download.

Some screenshots:

1) Chrome OS:

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

2) Google Wave: Slow as hell!

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

3) This is what happens when you close all of the tabs! No way to get them back unless you fall back to the terminal:

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

4) The options menu. Same as Chrome:

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

5) The network config menu:

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

6) The battery menu:

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

7) Funny hostname!

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

8 ) Under the hood! Its Ubuntu all the way...

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

9) Private Browsing:

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

10) Task manager. What's "Goats teleported"??!! LOL...

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

11) Taskman for Geeks (thats how it's link is presented as in the Simple Task manager). Will it support IE, Safari through WINE? or is the message satirical??!!

Free Image Hosting at www.ImageShack.us

QuickPost Quickpost this image to Myspace, Digg, Facebook, and others!

Iktara has been playing on my iPod since a fortnight!  

Posted by Anirudh Acharya in , , ,

Yes, "long time no see". I've been way too busy with my final semester of Master's. Projects, exams, assignments and sometimes classes... I'm stuck in this infinite loop! I wish like running away. Sigh! I have no choice but to endure these. After all, there's this consolation that I'll be earning my Master's degree in a month from now.

So, with those elements in the infinite loop, what's the one thing that's "loop invariant"? Music, of course! I've been hooked to The Fray's How to save a life since quite sometime now. Not a new song (released sometime around September 2006, first version), but the lyrics are touching. The lead singer, Isaac Slade, (though has some vocabulary problems :D... weird pronunciation I must say!), says he was influenced by his experience while working as a mentor at a camp for troubled teens. You can listen to this song here.

But the song that gets to be the cherry on the cake is "Iktara" from the movie Wake Up Sid. Absolutely amazing, mesmerizing, pure genius! Yes, it's a bit old as compared to the new songs like Tera hone laga hoon (from the crappy movie, Ajab prem ki ghazab kahani) etc. I am now wondering how could I have left this beautiful song unexplored, untouched! The lyrics are just so perfect and Kavita Seth's voice does complete justice to this song. Amitabh Bhattacharya complements Kavita's voice well. Add to this recipe a dash of Shankar-Ehsaan-Loy and lo and behold! you have the perfect delicacy! So much so, that this song's been playing on my iPod for the past 15 days in Repeat Item mode!

Listen to this song here.

PS: For some reason my last.fm scrobbling isn't working! :(

Where are all the jobs in the computing industry??!!  

Posted by Anirudh Acharya in , , ,


To start with, let me clarify that this post is not meant to be a job search guide! It is intended to only give some pointers in choosing the right courses.

If you are in the field of computing, you would know that these days the mantra is Multi-core CPUs rather than Blazingly fast single-core CPUs. Gone are the days of clock-cranking where you would see a jump in the CPU clock speed every fortnight or so. In a way, the computing industry has reached a theoretical barrier of cranking the clock speed. The focus is now on inclusion of multiple cores on the same die. No wonder you see the "dual-core, tri-core, quad-core and soon octa-core CPU" ads. Unless there is a breakthrough in the field of microelectronics and cooling solutions, this "stuffing-of-more-cores-on-the-same-die" will continue.

From a normal computer user's perspective, it may seem like "Wow! Two cores, double performance!". Nope...Thats not entirely true, in fact not even half true! There are some inherent challenges in the multi-core environment. What are those challenges? If you can find the answers to these challenges, then Hey Presto you most probably would be hired! The challenge is 'Parallel Programming'. What is parallel programming? This is a concept, which deals with processing data in parallel. Lets say you need to perform this task: Fill two glasses of water. Assuming you have 2 glasses with you, 2 taps and a big container, enough to hold the water of 2 glasses, this is pretty easy and fast. You can fill in those two glasses with both your hands in parallel and there, you completed the task in half time as compared to doing that work sequentially!

Now, what happens if you have 2 glasses, but only 1 tap? Even though you have enough resources, you are forced to do the work sequentially because you need to wait on the tap (the source). What happens if you have 2 taps, 2 glasses but a container big enough to hold only one glass of water? You need to wait till its consumed and then fill in from the other glass. See something here which you can relate to the world of computing? The glasses are the cores of the CPU, the taps represent the programs, the container represents data bandwidth. Makes sense? What it all means is that if you do not have complementing system components and a program optimized to be processed in parallel by multiple cores of the CPU, the performance gain will be negligible even if you haf the world's most advanced CPU.

Let me iterate the title of this post now: "Where are all the jobs in the computing industry??!!" The jobs are here:

1) in making sure that there are as many taps as glasses - developing parallel algorithms and programs which all these years were sequential, so that each part of the program can be processed in parallel on each core of the CPU
2) in making sure that there are more glasses - designing multi-core CPUs, understanding the shared-memory problem, coherent caches etc, so that you have more "workers" for completing the task
3) in making sure that there are big enough containers - designing memory systems which can complement the multi-core CPUs by keeping them busy, feeding them with and extracting useful data/results without being the bottleneck

If you are interested in 1) then you will most probably be a Computer Sciences student and IMO you should take up courses like Algorithms, Parallel Programming, GPGPU etc.

If you are interested in 2) then you will most probably be a Computer Engineering student and IMO you should take up courses like Parallel Architecture, Design of GPUs, Advanced Microarchitecture etc.

If you are interested in 3) then you will most probably be an Electrical [Electronics] Engineering student and IMO you should take up courses like Memory Systems, Digital/IC Design etc.

Whether Computer architects come up with many-core CPUs or not, whether Electrical Engineers come up with high bandwidth systems or not, Computer Sciences students will always have the job of converting the billions of already existing sequential computer programs into parallel to make use of the current multi-core CPUs. So if you are a CS student go ahead and register for any and every Parallel Programming related course that you can. These are sure-shot job fetching courses.

I hope this post was useful :)

Mac4Lin featured in ComputerWorld!  

Posted by Anirudh Acharya in , ,


I'm very happy to inform you all that Mac4Lin has been featured in the current issue of CompterWorld. I'd like to thank Howard Wen for penning down the article. The topic of the article was Transformation Packs. It can be read here.