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

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: | Leave a 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 »

Interesting pics from our trip to India

Posted by Venkatt Guhesan on July 9, 2015

Interesting pics from our trip to India

I took this shot from a higher elevation against the backdrop of the Gopura (vimana) of our ancestral family temple in Kaniyur, Tamil Nadu, India. Google photo animation stitched the pictures to create the animation.



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

Valley of Lugern, Switzerland – great place to wake up each and every morning!

Posted by Venkatt Guhesan on July 9, 2015

Valley of Lugern, Switzerland – great place to wake up each and every morning!


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

View from Mount Titlis, Switzerland

Posted by Venkatt Guhesan on July 8, 2015

View from Mount Titlis, Switzerland


Posted in Uncategorized | Leave a Comment »

Philips SlimStyle 60W LED bulb teardown

Posted by Venkatt Guhesan on September 28, 2014

While I was visiting Home Depot, I saw a Philips SlimStyle 60W LED bulb on clearance for two-dollars. I could not resist buying it for a tear-down to see how it’s built. I always wondered how they convert the 120VAC to a regulated DC voltage with high-current feed for lighting up those LED’s. So here is the first version of the tear-down showing you what’s inside the bulb. I will blog more about the current and voltage at the LED junction on a subsequent blog.

Picture of the bulb before the tear-down. You can see the unique flat shape.

Packaging front

Packaging back

What you expect to find is a custom version of what is called in Electrical Engineering as an LED Driver Circuit (and here). What makes this one interesting is how they made this all fit inside a tiny little base. And the flat design with the beveled plastic aids in efficient heat dissipation. So you don’t see the big metal base you find in other LED bulb models.

Plastic encasing removed (cut using a band-saw)

You can see the LED’s placed in a radial manner front and back. Although the placement allows you to distribute the light you still end up with a shadow effect. (I think the incandescent light was the perfect design)

Front face of the PCB board which makes up the base of the bulb:

Transformer……….. EE13302-162 B (KEE 1412) (closest neighbor to this transformer)

Black capacitor… S103

Orange rectangular piece bottom left (with Westinghouse logo) is a standard ceramic-fuse.

The black (labeled-N)  and white wires (labeled-L) gets soldered to the bulb metallic base (120VAC inputs)

Back of the PCB board:

D1300 is a standard NPN transitor.

More to come in the next blogs. Stay tuned.

Posted in Embedded Systems | Tagged: , , , , , , | 1 Comment »


Get every new post delivered to your Inbox.

Join 150 other followers