On Java, Python, Groovy, Grails, Spring, Node.js, Linux, Arduino, ARM, Embedded Devices & Web

Go lang – Revel Web Framework – .gitignore file starter sample

Posted by Venkatt Guhesan on January 25, 2016

For those of you trying to create a new Go Language – Revel Web Framework based project, here is a sample .gitignore file.

But before I provide you with the information, we need to discuss the project structure. If you visit the Revel site here, you will see their organization structure of a Revel project. In my case, their my_gocode/ folder is much deeper in what I store in my BitBucket account (or GitHub for that matter).

├── code
│   ├── bin
│   │   └── revel
│   ├── pkg
│   └── src
│       ├──
│       ├──
│       ├──
│       └──
│           └── web
│               ├── app
│               │   ├── controllers
│               │   │   └── app.go
│               │   ├── init.go
│               │   └── views
│               │       ├── App
│               │       │   └── Index.html
│               │       ├── debug.html
│               │       ├── errors
│               │       │   ├── 404.html
│               │       │   └── 500.html
│               │       ├── flash.html
│               │       ├── footer.html
│               │       └── header.html
│               ├── conf
│               │   ├── app.conf
│               │   └── routes
│               ├── messages
│               │   └── sample.en
│               ├── public
│               │   ├── css
│               │   │   └── bootstrap.css
│               │   ├── img
│               │   │   ├── favicon.png
│               │   │   ├── glyphicons-halflings.png
│               │   │   └── glyphicons-halflings-white.png
│               │   └── js
│               │       └── jquery-1.9.1.min.js
│               ├──
│               └── tests
│                   └── apptest.go
├── design
│   ├── logo-design1.png
│   ├── logo-design1.psd
│   ├── logo-final.png
│   └── logo-design2.psd
├── resources
│   └── some-materialcss-templates

As you can see my structure also includes some PhotoShop artefacts that also needs to be stored in my BitBucket (GIT) project. In my case, I want to ignore some of the go lang artefacts and revel artefacts.

So in the project-root, I created a .gitignore with the following contents relative to my project-root:


The above tells GIT to ignore the “**”, “**” and “**” subdirectories. As you add additional dependencies, you can revise and add to the above .gitignore file as needed.



Posted in GoLang, Revel Web Framework | Tagged: , , , , | Leave a Comment »

First Alert Carbon Monoxide Alarm – tear-down

Posted by Venkatt Guhesan on January 4, 2016

One of my First Alert Carbon Monoxide Alarm’s expired. This gave me an opportunity to look inside and see what’s inside this little gadget.

Here is a picture of the tear-down for those who are interested:

First Alert – Single Station Carbon Monoxide Alarm – model #: CO614




The specification for the carbon-monoxide sensor used in this model can be found here.

Here is a list of alternative carbon-monoxide sensors from Figaro.

Here is an alternative available at SparkFun. (Air Quality MQ135 sensor).

The second picture can be zoomed in by opening the image on a separate window.


Posted in Tear-Down, Technology | Tagged: , , , , | Leave a Comment »

Wishing everyone a Happy New Year

Posted by Venkatt Guhesan on December 31, 2015


Wishing everyone a Happy New Year. Please feel free to copy the banner and use it on your site or share with others!

Posted in General | Tagged: , | Leave a Comment »

Massive Floods in Chennai – 2 million people displaced – How can you help?

Posted by Venkatt Guhesan on December 3, 2015

Hello All:

I am writing today’s blog filled with tears and a sad heart to let the readers know that there are about 2 million people that are displaced in the city of Chennai, India today due to the recent massive floods. This flood is the worst seen in over 100 years in Chennai’s history. The last time this happened, Chennai (ancient city called Madrasapatinam) was not as densely populated as today (although we do not have actual numbers because census data is not available from 100 years ago). And to make matters worse the rainy season has just begun. It is anticipated that the rains may continue for another month or so.

The gravity of the situation down in the city of Chennai can be understood by these two examples:

  1. The Hindu, one of India’s largest print newspaper has for the first time not published it’s morning edition, since 1878. (Yes – 1878 – One Hundred and Thirty Seven years)
  2. All flights to and from Chennai have been suspended. Only limited set of emergency fights for critical people. All other flights have been diverted.

My attempt at this blog is to record the event and to bring awareness to others so that we can all help in our own ways to improve the human condition suffered by people of the world. And unless we all unite and build a better tomorrow not only for us but our next generation, we the people that live among the wealthy nations of this world will suffer the same fate and demise as nature unravels it’s fury. For the people of Chennai, India – the worst is yet to come as the after effects of flood such as increase in diseases from food borne viruses, lack of clean drinkable water, lack of clean sanitary conditions, lack of proper drainage systems to move the human waste.

Below are some pictures of today’s condition as I write this:



And for people who do not know where this is here is a map of India with the area that’s being impacted.



(pictures are not mine and I have taken these from the internet (and news) to share the story of the devastation suffered)

Here are some links where you can read about the current situation and ways you can help support the cause (I am not affiliated with any):

Ways you can help

  1. Share the link to this and other articles on your Facebook, Twitter and other social media. As more people become aware of the problems facing humanity, the more government organizations will move towards supporting causes that makes an impact on humanity today. Right now the floods in Chennai are mentioned as a footnote in the daily news by the big news medias of the world.
  2. Support organizations that are working towards making an impact such as the following:
    • New Delhi Television (NDTV) has partnered with Fever 91.9 FM Chennai to coordinate relief and rescue efforts via phone, messages and on Twitter with the hashtag #NDTVFeverFMChennai. The SOS messages are being shared with relevant authorities.
    • If you are a person in Chennai and you need a quick recharge on your phone (Airtel/Aircel/Vodaphone sites are down for recharge) for making emergency calls, PayTM (a local Chennai tele company) is offering a free recharge of Rs.30. Please call 1-800-103-0033 and they will recharge your phone free of cost so that you can make the needed emergency calls.
    • Google Crisis Website
    • Facebook, has activated its Safety Check feature for the Chennai floods. The page helps people mark themselves or others as ‘Safe’ on the social network letting their friends and relatives know that they are alright.
    • Twitter has also officially endorsed a list of hashtags that are being used for help and rescue during the crisis including #ChennaiRainsHelp #ChennaiVolunteer #ChennaiRescue.twitter-chennai_650x488_61449141912
    • Restaurant App Zomato (popularly known as Urbanspoon in the USA) has also launched and announced ‘Meal for flood relief‘ with which people can order free meals for flood victims. For every order placed, Zomato will match the same amount. #ChennaiRains #MealsForChennai
  3. When you consider donating during the holidays (and year-end), consider donating to organizations that help people in these areas that have a USA charter (for tax-deduction purposes). Please make sure you thoroughly research the charity before making a contribution. There are a lot of charitable scams going around. Here are some I am familiar with:
  4. Most big organizations such as Google, Amazon, Zappo, Facebook, IBM, US Federal Government, Microsoft (and many others I have not mentions because the list will go on and on) have donation programs that match dollar for dollar. Please consider nominating one of the charitable trust that can directly help with the flood victims.
  5. Google & Amazon Drones: If you or someone you know at Google or Amazon that’s working on the drone project. Talk to the project team to see if you can use these drones to help identify people in crisis. You may be able to provide live feed to critical areas of impact while testing the prototypes. In my view this is the best place to test one of those drone projects to see how it can be leveraged to help humanity in crisis while getting some well needed PR. This will also benefit the companies because the air and FAA regulations will be nonexistent in this crisis situation in Chennai, India. If you’re someone from Google or Amazon Droid project, reading this, I am willing to volunteer my time to help with the logistics and in test driving your drones on the ground in Chennai while we help the folks up there. :-) This is a great way Google & Amazon can make a positive impact to humanity while furthering science and technology!
  6. Donate Portable Chargers: At this time, about 2 million people are without electricity to charge their cell-phones. Companies manufacturing portable battery chargers can help organize efforts to distributing USB portable charge units. This is beyond my capability but large companies can organize and mobilize this. Hopefully there is a reader out that who works for one of these companies that can make this happen.
  7. To the Google’s, Amazon’s and Facebook’s of the world: deploying portable mobile floating units for the following is essential:
    1. Rescue emergency folks
    2. Distribution of bottled water
    3. Distribute food and medical supplies
    4. Dysentery and antibiotics supplies
  8. Long Term Global Needs:
    1. Innovations in building portable, low-cost water filtration systems for drinking
    2. Portable solar cells for charging bare essentials
    3. Mobile-Floating Cell Towers for areas in crisis

If I have missed or if you come up with other means to help, send me an email and I will add the information on this page.

List of Emergency Contacts in Chennai and Surrounding Areas

Tree Fall, Water Logging: 1913
Sewage Overflow: 45674567,2200335
State Emergency: 1070
District Emergency:1077
Electricity: 1912
Fire & Rescue: 101

Here are the regional office numbers:
Manali: 9445190002
Tondiapret: 9445190004
Royapuram: 9445190005
Thiru. Vi. Ka. Nagar: 9445190006
Ambattur: 9445190007
Annanagar: 9445190008
Teynampet: 9445190009
Kodambakkam: 9445190010
Valasaravakkam: 9445190011
Alandur: 9445190012
Adyar: 9445190013
Perungudi: 9445190014
Sholinganallur: 9445190015


Please share this article with others you may know so that we can bring more awareness to this crisis.

And for the folks in Chennai, India – Live and Stay Strong!


Posted in Humanity, Uncategorized | Tagged: , , , , , | 1 Comment »

Solved: git status failed with code 69 error when opening SourceTree in Mac OS X

Posted by Venkatt Guhesan on September 24, 2015

If you receive the following error when opening SourceTree or other applications installed in your Mac OS X, then here is how you can solve it. Sometimes people make things more cryptic than it needs to be.

Error encountered

‘git status’ failed with code 69:’

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

and here is the example of the screenshot:



What that message is telling you is that you need to open the application XCode on your Mac OS X and since it hasn’t run since the last update, you need to accept the new license EULA agreement that’s part of the updated XCode. Once you accept the license and close the XCode application and then go back to your other application that was throwing the error and try opening it. The error no longer happens.


Posted in Mac OS X | Tagged: | 1 Comment »

Email sent to Harry’s Shave Club today!

Posted by Venkatt Guhesan on September 23, 2015

Yes, I sent an email to Harry’s Shave Club today! Being close to technology is a blessing and a curse sometimes. You start seeing ways to improve the user experience in everything you touch and you feel compelled to make the world a better place. So “yes” – you’ve heard it. I am a member of Harry’s Shave Club.

I got tired of buying those expensive store brand razors that starts with a “G”. So I’ve tried both the DollarShaveClub and Harry’s. I’ve settled on Harry’s Shave Club. But that’s not the focus of this article. So today, as I was shaving this morning, it occurred to me that Harry’s can improve their customer experience by adding new functionality to their site and so as soon as I got out of the shower, I dashed to my computer before the idea skipped my mind and sat down to write this email to Harry’s. I’m hoping that they see the value in adding this functionality to their website. I’m furthering my request for this feature by blogging about it. So let’s hope that it reaches someone’s ear at Harry’s and they see the value in my suggestion and they implement my request for helping Harry’s customers with a better user-experience.

So here we go with the email:

Subject: Suggestion on functionality that can enrich the Harry’s experience


I am one of your current customers on a shave plan and also happened to be an Web
Enterprise Architect. I wanted to provide feedback on one of the things I’ve noticed.

Comparing Harry’s with other shave-clubs. You send more blades in one mail-order than
others. And it would be ideal if you had an option online where I can login into your
site and add an alert/reminder with a set frequency so that I get an email remainder
to switch my razor-blade.

For example, if I setup a reminder email from Harry’s to remind me to swap out my
blades once every 10-days. On the 10th day, I get an email saying –

“This is a friendly reminder from Harry’s that it’s time to swap out your razor-blade
on your next shave.

If you wish to change the frequency or disable this reminder, you can do that under
your profile in Harry’s. We at Harry’s believe in making sure you have the best shave
each and every day.”

This way, when I see that email and the next day I am in the shower, I will swap out
to a new blade. So today I keep using a blade until I actually see it becoming dull.
And with your shipping frequency, after a few months I end up with boxes and boxes of
refills which I do not know what to do with and most likely, I will then be forced to
stop shipment on new refills until I run out of them. But by using my above process,
you are helping each user swap out their blades on a regular “habit-forming” cycle and
you are making sure that your customers are not stopping/pausing the shipping cycle
and most important of all, each of those emails can now have an added value for an
opportunity for marketing.


Venkatt Guhesan

Posted in Great Ideas | Tagged: , , | Leave a Comment »

How to configure and install ZeroMQ (libsodium) on CentOS 6.7?

Posted by Venkatt Guhesan on September 6, 2015

When getting started on ZeroMQ (version 4.2.0 or above) can be quite challenging especially with all the prerequisites. I’ve spent a good two days to get the process ironed out. So I’m sharing this so that others can avoid the same pitfalls and can have a good head-start with setting up their environment.

Pitfall #1: Develop for your platform. I’m accustomed to developing in Ubuntu 14.04.3 LTE but in this case my deployment environment happens to be CentOS 6.7 (minimal server). Because the dependencies such as GLIBC versions are different, it’s best to stick to a setup with the target platform in mind.

This exercise assumes that you’ve installed CentOS 6.7 (minimal server option).

Pitfall #2:

In your research you may have come across the following errors below. I’m including them in hopes that the search engine bots will bring you to this blog so that you can save some headaches.

checking whether the C compiler works… configure: error: in `/root/downloads/libzmq-master’:
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `–host’.
libsodium is not installed
src/.libs/ undefined reference to `crypto_secretbox_open'
src/.libs/ undefined reference to `crypto_box_beforenm'
src/.libs/ undefined reference to `crypto_secretbox'
src/.libs/ undefined reference to `crypto_box'
src/.libs/ undefined reference to `crypto_box_keypair'
src/.libs/ undefined reference to `sodium_init'
src/.libs/ undefined reference to `crypto_box_open'
src/.libs/ undefined reference to `randombytes_close'
src/.libs/ undefined reference to `crypto_box_open_afternm'
src/.libs/ undefined reference to `randombytes'
src/.libs/ undefined reference to `crypto_box_afternm'
collect2: ld returned 1 exit status
make[1]: *** [tools/curve_keygen] Error 1
make[1]: Leaving directory `/root/downloads/libzmq-<wbr />master'
make: *** [all-recursive] Error 1
GLIB 2.14 not found


The following steps provides you a step-by-step instruction to get you to a point where you can compile the standard ZeroMQ HelloWorld Server and HelloWorld Client.

# Steps to a working ZeroMQ 4+ code on CentOS67

# Login as root or make sure you have sudo access
# The following instructions assume you are logged in as "root"
# Assumes the following path /root/downloads
mkdir download
cd download

# ZeroMQ 4+ requires libsodium 
# You also need a C compiler

# Pre-requisites
yum update
# Gets your system upto date with the latest updates

yum install libtool gcc-c++ glib*
# This installs autoconf, automake, cloog-ppl, cpp, gcc, mpfr, ppl
yum groupinstall "development tools"

# Let us install and build libsodium
tar -xvf libsodium-1.0.3.tar.gz
cd libsodium-1.0.3
make clean
make install
# libsodium libraries are now installed under /usr/local/lib directory
# Next we need to tell libzmq and other development code where to find these libraries

# Add the following exports defining the following environmental libraries
# Edit the root users .bashrc file
vim /root/.bashrc
# Add the following
export sodium_CFLAGS="-I/usr/local/include"
export sodium_LIBS="-L/usr/local/lib"
export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib
export LD_RUN_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export CFLAGS=$(pkg-config --cflags libsodium)
export LDFLAGS=$(pkg-config --libs libsodium)

# Reinitialize settings under .bashrc
source ~/.bashrc

# Add libsodium to ldconfig 
echo '/usr/local/lib' > tee -a /etc/

# Download the latest lizmq from the GIT repository
cd /root/downloads
cd libzmq-master

# Lets begin building it
# Generate the configure script from template
make clean
make install

# ZeroMQ libraries are installed in /usr/local/lib path
# Need to add the libraries to ldconfig so that they can be
# statically linked in C code
# Since ZMQ is installed in the same path as libsodium,
# we do not need to add another path into /etc/*.conf
# we just need to reload the "ldconfig"

# Let try compiling and testing a sample code
mkdir /root/downloads/zmqtest
cd /root/downloads/zmqtest

# vim helloserver.c
# Copy hwserver code from the following url:

# Copy hwclient code from the following url:

# Compile hwserver 
gcc hwserver.c -o hwserver -lzmq
gcc hwclient.c -o hwclient -lzmq

# Open two SSH terminals to /root/downloads/zmqtest
# Run hello-world server in terminal #1
# Run hello-world client in terminal #2

# If it runs, you're all set to go
# Please link me from your blog/social places so that others can easily find this article
# Also provide me with feedback so that I can ammend this guide for others

# Thank you & cheers!



Posted in C - C++ - gcc - cpp, Kernel, Linux, ZeroMQ | Tagged: , , , | Leave a Comment »

[Solved] configure: error: cannot run C compiled programs.

Posted by Venkatt Guhesan on September 6, 2015

Common error when you run configure before make && make install:

checking whether the C compiler works… configure: error: in `/root/downloads/libzmq-master’:
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `–host’.

Add the following into your /root/.bashrc or /home/{username}/.bashrc

export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib
export LD_RUN_PATH=/usr/local/lib

Logout and login to reinitialize .bashrc or do the following:

source /root/.bashrc

# or

source /home/{username}/.bashrc

Return back to running “configure” and that should get you past the error.


Posted in C - C++ - gcc - cpp, Kernel | Tagged: | Leave a Comment »

Welcome to the Age Of Light: Two BIG innovations in Graphene and nano technology can forge a new future for mankind

Posted by Venkatt Guhesan on August 27, 2015


As I was reading today’s news (Science) breakthroughs, I came across two independent discovery/invention but combined makes a HUGE breakthrough and paves the way for a BIGHTER FUTURE!!!

If this peeks your interest read further.

[#1] Invention:
Manufacturing Graphene using Tea-Extract

What problem does this solve?
Today, manufacturing Graphene takes a lot of time and can only produce/grow small amounts of the material. It takes a lot of energy, raw-material and time – to produce the small quantities of the product. In comes, a new process or method at growing it cheaper, quicker and with less energy. This will make Graphene cost effective to use in the industry. To learn more about the details behind the process, see the links below:

Article, (from International Business Times)
Graphene Manufactured Using Tea Tree Extract Paving Way For Cheaper Method

The science behind the process:
Catalyst-Free Plasma Enhanced Growth of Graphene from Sustainable Sources

[#2] Discovery:
The Nano Lightbulb

What problem does this solve?
Today, we have hit an upper-limit on how much we can compact inside the silica-chip. As you may have seen, our computers now has “quad-core” processors which are directly due to the ability to pack more chips/processors per square-inch. But we are reaching an upper limit on this because of three major factors:

1) Scale: We are already working at the atomic scale. Trying to compress more atoms smaller than the atoms in gold and copper etc will not be possible unless we find new materials that have a smaller atomic structure and has electrical conductive properties.
2) Heat: Moving electrons in a copper wire produces heat as a side-effect. The smaller and more compact they are then you produce more heat and the very same heat also makes the gold, copper and metal atoms excited that they begin to show signs of expansion. And you know what happens when two copper wires with electricity comes together. You end with a short-circuit.

3) Growing demand for alloys and metals: The world is reaching a near death of small-circuits because the mines that produce these alloys are getting depleted. So we will reach a end of rare-metals in the future (just like Oil). It’s a limited resource on this planet!

The Solution:
Young Duck Kim while trying to clean up some graphene in the lab tried to clean it up in a novel manner. He wrapped up some graphene with a small wire and induced a current through the wire to aid in cleaning the dust on the graphene. What he observed is that the graphene – glowed (almost like a incandescent light bulb). What he noticed is that just like a lightbulb, you can turn the graphene on and off and you can turn it on and off as fast as 10 Gigahertz (possibly 100 GHz) – imagine turning a switch on and off a thousand-one-million times a sec (that’s a lot). And it produces negligible heat dissipation and the graphene does not burn out. So imagine being able to produce a binary-switch (On | Off – 0|1) using this method of switching on a light-bulb at a microscopic level.

And the story gets better, using fiber-optics (instead of copper and gold wires) you can build circuits at the microscopic level to move this on-off signal will revolutionize the industry to produce even smaller, denser circuits that moves data at the speed of light with almost zero (negligible) heat-dissipation! And to produce the fiber-optic cables and matrial – you need silica (which comes from sand on a beach – which we have plenty of on the planet)


Now humans can break the metal/electrical barrier to forge us into the “AGE OF LIGHT“.

You can learn more about the discovery here:
Article on Popular Science: The Nano Lightbulb

What does this mean?
1) Reduce the need for rare-metals and alloys = less mining for the raw-materials = greener planet.
2) Produce more complex devices that are smaller and produces less heat.
3) Grow Graphene using greener methods = less harm to the environment
4) High-Performance Computing (HPC) at a nano scale – computers that can process much-much more data in shorter time = better forecasting for things like weather, green-house effects, etc and more profits for businesses worldwide!!!

Greener Healthier Planet that’s more Profitable than ever before!!!

Welcome to the “Age of Light”!!!

If you find this article important, please share it with others!

Posted in General, Great Ideas, Inspirational | Tagged: , , , , | Leave a Comment »

Hiking @ Centennial Park, Ellicott City, Maryland

Posted by Venkatt Guhesan on August 4, 2015

Here are some great pictures I took from the hiking at the nearby Centennial Park in Ellicott City, Maryland

Click here for the complete link to the post

Posted in General, Outdoors & Nature | Tagged: , | Leave a Comment »


Get every new post delivered to your Inbox.

Join 152 other followers