Experiences with Node-RED

Over the past few weeks, I have been tinkering with Node-RED, in my workplace at the University. It is a great framework for quickly wiring up (literally) components in a flow based model and getting applications up and running. It brings the power of Node.js to a Flow Based Programming (FBP) paradigm. With FBP, you get black boxes, which you connect together to form your application.

My work has involved creating custom nodes for JSON sanitization and writing to an OpenLDAP instance. So far, it has been a great experience working with the framework.

The Good:
1.) The Node-RED workflow is great. It is quite easy to create a workflow, create subflows and wire components around. It is quite straightforward to understand, and it took me all of 10 minutes to get up and running and start playing around the framework.

2.) Developing a custom node is quite easy, and is well documented. It just takes basic HTML, JavaScript and some node.js knowledge to have a working node ready. There are some quirks, but overall it was a pleasant experience.

3.) Being based on Node.js gives access to the vast NPM repository. So, a lot of components are readily available for use. I found a module which provides a ready API to read/write to LDAP. I just wrapped it around the required HTML interface and it worked just fine.

4.) It is pretty easy to embed a Node-RED flow in an existing application, and the usage at university makes good use of this.

The Bad:

1.) Node-RED is poorly documented in many ways. To find common stuff such as unit testing is a pain. The documentation does not cover everything in vast detail (though it is enough to get you up and running). However this is made up by quite an active mailing list. Most of my queries were solved there.

2.) Debugging a custom node is not very easy. There are tools like node-inspector, but this has proved a little unreliable for me, often hanging up my system.

Sticking with FBP, I will be looking into NoFlo, which is responsible for the resurgence of FBP (and because of which many people know about FBP). More to follow :)

Cats and funny band-aids

This has got to be one of the funniest incidents in a long long time, and in reminiscence, it will always bring a smile to my face. I have a known fascination with cats (though am a dog person), despite the occasional run in with them. I had a sort of a pet during my undergraduate course, where a cat camped in one of the cartons I used to use for storage, occasionally startling me by climbing on top of me when I was working on my laptop. I find them enigmatic – deep, brooding creatures. You never know what they may be thinking. Their actions do not make sense, and this particular incident exemplifies that.

The Devil!

I was outside talking on the phone, when this cat comes out of nowhere and starts following me. I start to pet it, and take pictures with it (it was not that interested, and kept avoiding the camera). A few pictures later, it is on it’s back, inviting me to come and pet it. Now, if you have read Oatmeal’s How to Pet a Kitty, you know exactly what to do, and what not to do. You especially don’t do Point No 4. I did exactly that, and the kitty took a swipe at me. Result: Scratched Hand.

What does the cat do after scratching me? Get back to business and inviting me to pet it again :D

Though the scratch was pretty shallow, I was advised to show to the doctor, and off I went. The doc took one look at it, and gave me a band aid to put on. According to her, cats love to scratch their humans, she being a constant victim of those vicious claws. The band aid she gave me had me in splits: ‘Taz’ mocking me for getting scratched by a cat, and going to see the doc for it. :D

Taz band aid

Time to take a revision course in petting kitties ;)

A New Challenge

So after two years of working at an IT Major, it is time for a new challenge. For the next two years, I will be pursuing a graduate course in Computer Science at CU Boulder. A Master’s course has been in the pipeline for the past two years, and has now come to fruition. It is a new challenge, as it will enable me to specialize in advanced courses of computer science. Moreover, as this is my first time in the US, it brings its own set of challenges. New place, new environment, new culture. I am quite excited to get the opportunity to study in the US, and I am sure it will help me a lot in pursuing my career goals. More to follow :)


Sometime back, I wrote a post about how I got inspired by a lady in upholding traffic rules. I actively took upon myself to do my bit in this regard. Just today, traffic came to a standstill due to the rains. My usual commute by bicycle took me an hour and half, as opposed to 35 minutes. I encountered 3 individuals, whom I told off for riding on the footpaths with varying responses:

Person I:
I was blocking the area from where bikers could get onto the footpath. This guy repeatedly honked at me, after which I pointed out that it was a footpath. I told him that I would not budge no matter what he does. The guy forced out a way, not caring whether he hits my bicycle or tramples over me. He rode over the footpath, and got stuck in the jam a few meters away(which is what these idiots often do).

Person II:
This guy knew what he was doing was against the rules. I shouted out to him. He replied ‘I know that I am riding on the footpath. I know that it’s wrong’. He just sped away. These people are the most dangerous. They know that it’s wrong, and still do it. This guy really infuriated me.

Person III:
Same situation as with Person I. I had the following conversation;

Me: That’s a footpath.
Him: So?
Me: You know it’s against the law.
Him: I am getting late.
Me: So am I. Do you see me riding on the footpath? I am not even obliged to follow traffic rules.
Him: This is India
Me: That is irrelevant.
Him: Look to your right. People riding on the footpath.
Me: Don’t justify. I will try and stop them as well. I am taking photos of their plates and will send to Traffic Police for action.
Him: <looks surprised> Ok. Fine

Signal turns Green

Me: Thanks.

The third conversation was interesting. I really hope that the guy respects pedestrian rights. Now, it is time to start a campaign. I will carry my cellphone with me when I ride, and take pics of those violating traffic rules, such as jumping a signal, or riding on the footpath, and tweet to Bangalore Traffic Police for them to take action. I sincerely hope others do the same and report the transgressors to the traffic police. It’s time to end this menace, and bring some semblance of order to the already clogged up traffic.

The Lone Warrior

It was a normal day at work, and I was riding back home. The traffic was busier than usual, and I was getting stuck at many signals. At one particular signal, I saw many motorcyclists using the pavement. This was nothing new, and is quite common in Bengaluru. What followed certainly was new. An old lady, probably in her mid sixties told off two guilty motorcyclists. When she them ignoring her, she stood in the middle of the pavement trying to stop others, shouting ‘I WILL NOT LET YOU PASS’. I stood there transfixed staring at this Gandalf incarnate, not knowing what to do. I thought of helping her, by blocking the other half of the pavement, but by the time I got off my bicycle, the lady had moved on, and the signal had turned green. Throughout my way back, I was thinking of the old lady…the lone warrior trying to make a difference in her own little way. Her effort may have proved futile, but she did inspire me to not look away when I see something wrong happening, especially if I can help prevent it.

The Power of Open Source Communities

This week, the open source world was rocked by Groupon staking claim over the GNOME trademark. The GNOME Desktop Environment, supported by the amazing community has held the right to the name since more than a decade. It was quite shocking to know that Groupon being large organization with a legal team could be so ignorant (or apathetic). They were filing 28 trademark applications for ‘GNOME’.GNOME came out with a strongly worded article on their blog protesting the move, and the whole open source world (yes…not just GNOME) came out to their defence, donating to help counter the move by Groupon. The intense pressure paid off, and Groupon decided to drop their interest in GNOME.

This is a massive win for open source in general. It was heartening to see that open source organizations united to defend the GNOME community. This brings to mind one image which Ralf Flaxa shared at the openSUSE Summit, about how open source communities are perceived from the outside world.

Open Source Communities

Instead, we are just one big happy family :)

I recently attended Open Source India at NIMHANS Convention Centre, Bengaluru. I was quite disappointed by the conference, which claims to be the biggest open source conference in Asia. Though the talks were really nice and informative, I felt they focussed too much on the industry using open source software. They left out the most important aspect of the Open Source Movement: THE COMMUNITY. There were no talks which discussed on how people could contribute to open source communities. What I love about open source conferences is how people from different communities get together and brainstorm about what works and what doesn’t. This aspect was totally missing. Instead, what we got was a bunch of people talking about how they are giving back to the community. I expected more from a conference of this scale.

Upgrading from openSUSE 13.1 to openSUSE 13.2

openSUSE 13.2 is out and gets a host of new stuff. Right from new desktop environments (KDE, GNOME, MATE…its got it all), there is plenty of stuff to write about. For those running on openSUSE 13.1, upgrading is pretty simple and takes only about 20 minutes.

1.) Open Software Repositories from YaST
2.) Disable all the unnecessary repositories (keep only OSS, debug, update repositories)
3.) Change the 13.1 in the Repository URL to 13.2
4.) Open Terminal. As root, run ‘zypper refresh’
5.) Once the repositories are refreshed, run ‘zypper dup’
6.) Go through accepting some licenses. Let the magic run

This should upgrade the system from 13.1 to 13.2. Have fun :)