Google Summer of Code 2014: Accepted !

Well, this summer just became super awesome !

I got accepted into the Google Summer of Code !

I’ll be working with mlpack, a scalable Machine Learning Library. My project deals with implementing Multi-Class Adaboost for mlpack.

Later, I’ll probably be shifting to another blog for GSoC related blogs.

Just wanted to put it out there. Really looking forward to this summer.


The terrible case of the two linux(e)s.

Houston, we have lift-off.

Not after quite a few hiccups, that is. On Monday, I formatted my laptop, removing my current install of Windows 7 and  Arch Linux. Having a rescue disk and a bootable USB at hand I was not worried.

I was wrong.

Over the last year or so, I had not overhauled my system. My current W7 ran without a desktop configuration file; I could not place icons on the screen and my Arch was throwing tantrums. And the whole machine was slowing down.

Hence the grossly thorough crackdown. Everything had been backed up, all the docs backed up on Google Drive and what-not save files taken care of.

After inserting and reinserting my rescue disk a couple of times, I realized that my CD tray was going to be of any help. Another casualty of technological redundancy. USB ports rule now and the wise words of (Dr.) Sheldon Cooper, ” Can you imagine a world without USB ports ? Oh, the horror !!! “, came back to me. Huh. 

Okay. I tried using my dad’s laptop to create a bootable USB for windows, from my rescue disk. Did not work. Turns out the CD, too, was damaged. So my plan of starting with windows and dual booting with Arch later on was out the window.

Linux had to go in first.

Now if you’ve hopped from OS to OS, looking for a perfect fit, you might have come across Arch. If you have, then you know that no other installation process is so self-involved or bare-bones, throwing you into the deep end of the pool with nothing more than a wiki to hold onto than Arch’s.

But a comprehensive and omniscient, raggedly efficient Wiki at that. One of the best I’ve seen out there. Still there’s a lot of places you can go wrong before you’ve even got the Desktop Environment up.

My ruination, this time, seemed to be the partitioning and the GRUB. After going through multiple installs, file-system definitions and declarations, and incorrectly installing the GRUB (mind you, the GRUB, not syslinux) on the wrong sda/b, I finally gave up.

For a day.

I left it on Tuesday, hung out with a couple of friends, saw The Hobbit: The Desolation of Smaug ( sm-a-u-g not sm-o-g ). Quite good, I must say. Just does enough to carry the story forward, with a lot of non-sense of Legolas and Tauriel and unnecessary connections thrown in just for the sake of elongating the story. You want to see more of Smaug, but that part is only about a fifth of the entire running time. Not less, but not quite enough.

Anyways back to this.

I’ve been jerked around quite a lot by Arch. So has another friend, but because of a little better hardware support, he doesn’t feel it that much. But there have been times when just a simple

pacman -Syu

wrecks your system. And then Ctrl-Alt-F2″ is your saviour. Another time, your sound card stops working, but what hurts the most is when your graphics driver messes up color configurations on vim and urxvt. Back, then, to good old Sublime Text. 

All this running through my head, I decided this was the best time to go for Ubuntu, the dumb man’s linux. Easiest-to-use, gnome-revertible Unity, popularly blogged on across the world, good hardware support (awesome color configs ! Yay !).

It’s not like I was giving up or anything; and I had used Ubuntu countless times for HDD recoveries, so there was that. Apart from, you know, Ubuntu actually being my first linux OS.

But I was so familiar with pacman ! And the awesome wiki and forums ! And a part of my ego did not want to type

“sudo apt-get”

every time. But I was also fed up with the constant never ending tweaking of my base system. The constant fear of breakdown, cradling a fragile state of the system.

Having almost installed Ubuntu, I made a decision to try Arch one last time. One more chance.

After spending the entire morning going over my filesystem and grub directories after mounting them, I figured that my GRUB cfg was using the sample file to read UUIDs and the file that I was generating was being saved as *.new.cfg. 

I  just renamed this to the original file and deleted the old one and shifted every filesystem onto sda and voila, it worked !

With a sigh of relief I installed Gnome, and later, the entire pack of Chromium, vlc and Transmission. Probably the only thing that I needed then.

And yeah, contrary to common sense, I still have a lot, and I mean a LOT, invested in my Chrome and Google profile. This still freaks out a few of my friends. But more on that later.

I’ve still got a ways to go – configuring my urxvt, vim, zsh. And tmux. And my mpd, ncmpcpp.

As a friend said, in a rare moment of clarity, ” tweaking arch = actually making arch “.

10 steps to setting up a live wallpaper on [Arch] Linux.

One reason why people switch over to Linux is the cool customization and tweaking capabilities offered.

One of my first tweaks on Arch was setting up a live desktop. I could have used so many conky configurations, so many skins and themes.. but this simple trick was.. elegant.

My desktop wallpaper is now a live view of the Earth from one of NASA’s satellites. It keeps updating every three hours, with the shadow of the Sun visibly shifting.

So the steps to set one up on your Linux desktop are :

1. Download and install gnome-schedule from your package manager.

Install the package gnome-schedule by using the command : “sudo pacman -S gnome-schedule” or its equivalent in your package manager.

2. Run the application

3. Click the “New” icon to setup a new task and select the option : ” A task that launches recurrently “. Give it a title – moving wallpaper or something.

4. Now the command : In the command line copy this and paste it there : ” wget -O 1600.jpg –user-agent=”Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10″

Understanding the command :  wget is a software package for retrieving files from the web. Here the -O option means “–output document=file”.

the file is 1600.jpg from the site root : “” whereas the  –user-agent option is used to circumvent a kind of protection against direct downloads on that site. Each of the option therein are for different web browsers.

5. Choose to “Suppress the output” in the next option.

6. Below these, there are options to set how frequently this command runs. Make it a 3 hour update. Put “*/3” in the hour line.

7. Save and execute the command.

8. The image should be saved in your “Home” directory. Put it as your desktop background.

There it is!! Now every three hours, your background is updated as the image on the site is updated. Here’s mine :

@5 pm.

My desktop. It’s around 5 pm as of now.

Note: This setup could’ve also been done without the use of the gnome-schedule package. A simple crontab could have done the trick as well. Or instead, one might’ve used the software package : “xPlanetFx” – a much more comprehensive but complicated option.

A week since I became an Archer !!!

Last week I shifted, after a lot of contemplation (and hardwork), over to Arch Linux.

Given it wasn’t that easy – once my Ubuntu Grub disappeared, I had to reinstall my Arch distro around 8 times to figure out where I was going wrong – and yes, at one moment of time I actually had 4 different OSes booted on separate partitions on my laptop !! In the end I finally had to settle with Archbang Linux, based on the Arch kernel but with a different Window Manager.


And I tell you – the last week has been very tough but ( now that I come to think of it ) also very rewarding. Trying to get myself acquainted with my terminal – Terminator, different openbox themes, mpd, daemon files, the Arch wiki and forums and conky configs etc has been very exciting and I’m always learning.

So my desktop finally looks like :


This has come from a weeks worth of fiddling around.

For those of you who have no clue whats going on around here –

The arch philosophy 2.0 :

without unnecessary additions, modifications, or complications
combining simplicity, power, effectiveness, a quality of neatness and an ingenious grace of design
capable of doing many things competently; having varied uses or many functions

easy, or quick; convenient

At the end of all of this you get a system which is yours and only yours. It has evolved as you have, reflects your personality, is as efficient as you have made it to be.

Never thought so much about an OS, have you?

But after all of this, Arch is not, I repeat NOT for everyone. It is for users who have spent considerable time with the CLI, know their way around a Linux system, have a hacker tendency – you learn by tweaking and fiddling around the system, and who are capable of dealing with errors and crashes on their own.

Or those who are capable of keeping up Arch’ssteeplearning curve.

With respect to the last point, the Arch user community is the “RTFM” type ( read the f****** manual ). Yes they will help you out, but they expect you to have researched a lot and read the first 5 pages of google search results. Thats how the Arch philosophy works – you (ALWAYS) learn by doing. No matter where the error is, you will always figure it out.

For more info head on over to

For the next few weeks, I’ll probably posting a few more posts on my progress.