Debian (Wheezy) on Sony VAIO VPCEA series laptop

There is a certain Shutdown bug, caused by ehci_hcd module (Enhanced Host Controlled Interface). What happens is that when you are on battery power and you try shutting down the laptop by using shutdown -h 0 command or poweroff, the system halts and then automatically reboots. The funny part is that even if you issue a ‘halt’ command while at the grub bootloader, the system reboots for one more time. i.e, you will have to issue halt twice (Grub bootloader -> halt -> system halts and reboots -> Grub bootloader -> halt -> system halts).

While running on AC power, the system shutdown works just fine and so the automatic thought initially is that it is caused by laptop-mode-tools, which comes up while working on battery. But lmt is not the culprit, the culprit is actually the ehci_hcd module (atleast for Sony VAIO VPCEA series laptop they are).

So, if you are facing this issue, try to remove this module before issuing poweroff or shutdown -h 0. The command to remove this modules is :

rmmod ehci_hcd

You can also put the above command into rc.local.shutdown so as to automate the procedure.

Mario Time

So, I saw this sketch and got inspired. Really inspired. So I decided to try drawing Mario myself. I have had my fair share of seeing him jump up and down on the screen, eat mushroom, and go down tubes and raise flags! So with all that nostalgic feelings coming up, I started sketching Mario….And with my own crude skills sets in sketching, I managed to get it done in the following fashion.


Mario using charcoal

Hmm.. So what do you think??

IBM toys with atoms!

IBM, recently released a short clip/movie in which they arranged atoms to create a boy like figure and then the boy goes around playing with other atoms in the vicinity. You can watch it below :

Hmm, so what does that mean to a anyone??

Well, as computer move from life size to lap size to palm size and so on, in the near future, atomic computation is going to be the norm. For this to be successful, the ability to move atoms, are very crucial. The movement of atoms can play a huge role in creation of atomic memory modules. So..its on-wards to next-gen technology!

More details are published by IBM Media at this website.

Back to Sketch board

I have always been fascinated by charcoal sketches or let’s say, black and white images. The contrast is so appealing. Recently I found myself craving to pick up my charcoal pencil and sketch something. And as soon as I bought my new charcoal pencil, the idea and inspiration appeared in front of me in the form of this blog post. And the sketch I wanted to imitate is this one. So I started working… I am not a very good artist (you have been warned), but I love to when I get inspired.. I tend not to let the flow of creativity get blocked. 

So… Here is what I accomplished.

This below one is the first version:


And this is the second version :


And here’s both together.


I personally like my second version of the sketch, but please do tell me your opinion on which one you like better..and why.. Also please do give me tips to improve. I know that I need to improve on my shading skills! 😀


See self-assembly and 4D printing in action

Wow! Just imagine the possibilities.

TED Blog

A part on the outside of a spaceship that morphs, rather than requiring an astronaut to perform a risky maneuver. Plumbing pipes able to bend and flex based on the needs of the water flowing through them. Furniture that assembles itself, no screwdriver required. Buildings with the ability to repair themselves when something goes awry.

[ted_talkteaser id=1707]These are just some potential applications of research being done at TED Fellow Skylar Tibbits’ Self Assembly Lab at MIT. In this lab, designers, scientists and engineers come together to work on new ways to make disordered parts become ordered — on their own, since the programming is part of the object itself.

In today’s talk, give at TED University at TED2013, Tibbits introduces us to one of his most fascinating nascent ideas — what he calls “4D printing.” A collaboration between the Self-Assembly Lab and 3D printing giant Stratasys, 4D printing allows…

View original post 254 more words

Chitto Jetha Bhayshunyo(Where mind is without fears)

Chitto Jetha Bhayshunyo

Where the mind is without fear and the head is held high,
Where knowledge is free,
Where the world has not been broken up into fragments, by narrow domestic walls, Where words come out from the depth of truth,
Where tireless striving stretches its arms towards perfection,
Where the clear stream of reason has not lost its way, Into the dreary desert sand of dead habit,
Where the mind is led forward by thee , Into ever-widening thought and action,
Into that heaven of freedom, my Father, let my country awake.

– Rabindranath Tagore.

This poem is part of the Nobel prize winning literature ‘Gitanjali‘ written by my countryman Rabindranath Thakur (anglicized as Tagore) who was the first non-European to win a Nobel award for literature. Some of the selected poems of Gitanjali can be found here.

An RGB Experiment

So.. Now that I have completed the XOR Simulation exercise and understood a bit about I/O on the Arduino board, I am all set to connect and light up an RGB LED. A simple setup it shall be. I will have three push buttons in pull down configuration (that means, when they are not pressed they are grounded — logical 0) and each corresponding to one of the RGB colour. So when the first button is pressed, it shall make the RGB LED glow Red, the second one shall make it glow blue and the third shall make it glow green. Also, if you were to press two of the buttons simultaneously, then both the corresponding colours should glow up(Hey, After all..its a RGB LED.. What fun without some colour combinations!).

Before we go into the circuit setup, lets understand the pin combinations of a 4 pin RGB LED. A normal 4 pin RGB LED’s come in two categories based on their pin combination. One being the common anode and the second being the common cathode. I guess in most of the cases, you will have with you a common cathode RGB LED and so let’s understand the pin markup of a common cathode RGB LED. It is as shown below :

RGB LED Markup

And here is the circuit setup :


Below, is the code required to achieve the functionality as explained above

/* RGB Experiment - Blinking colors with RGB LED and three push
* buttons.

* Arduino shall detect the button press and shall make the RGB
* LED blink the corresponding colours. If two buttons are pressed
* together, then both the corresponding colours shall light up.
* But in case all three button are pressed together or all three
* are release, the RGB LED will be in off state.

created 31 Mar 2013
by Rajgopal Menon<>

//Declaring all constant values. These don't change
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int ledR = 9;
const int ledB = 10;
const int ledG = 11;

//Declaring all variable. These shall change during runtime
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;

void setup() {
//Setting the output to the RGB LED's
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
//Setting the input ports through which button
//press is detected.


void loop() {
//Reads the button values
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);

//Executes the switching on and off of LED based on condtions.
//If two buttons are pressed, an analog write is done where the
//colours corresponding to the pressed buttons are give 2.49V each.
if(buttonState1 == HIGH && buttonState2 == LOW && buttonState3 == LOW){
digitalWrite(ledR, HIGH);
digitalWrite(ledB, LOW);
digitalWrite(ledG, LOW);
else if(buttonState2 == HIGH && buttonState1 == LOW && buttonState3 == LOW){
digitalWrite(ledR, LOW);
digitalWrite(ledB, HIGH);
else if(buttonState3 == HIGH && buttonState2== LOW && buttonState1 == LOW){
digitalWrite(ledR, LOW);
digitalWrite(ledG, HIGH);
else if(buttonState1 == HIGH && buttonState2 == HIGH && buttonState3 == LOW){
else if(buttonState1 == HIGH && buttonState2 == LOW && buttonState3 == HIGH){
else if(buttonState1 == LOW && buttonState2 == HIGH && buttonState3 == HIGH){
else {
digitalWrite(ledR, LOW);
digitalWrite(ledG, LOW);


Hmm.. I see that my code has a big if-else-if snake. Currently I am unaware of a technique to write cleaner code for my sketches as I am just a beginner.  I will have to read more and learn more to make this code look better. But for now this is the way it is. I am open to views of anyone who has better experience in correcting this particular issue in the above code…or is it the way it is supposed to be?