Teach Your Kids to Code!

On top of being a software engineer, I’m also the father of 3 kids. My daughter recently turned 8, and she is my oldest. I’ve been having her try out different methods of learning to program already, but nothing had really stuck. But I think this is about to change, as I recently discovered the wonderful website KidsRuby. After spending some time with KidsRuby over the last few days, it’s become clear there is interest enough to keep my daughter entertained and learning. My main gauge has been the fact my middle son (6) has also shown interest in what his sister is doing! Both of them have spent time playing with KidsRuby over the last few days, read on for our experience.

Getting Started

It’s pretty straightforward to utilize KidsRuby. Just go to their download page and download either the Windows or Mac package. Since the Mestery household is a Mac household, we went with the Mac version. After the download completed, I was able to install the package, but I could not get it to run. After doing some googling, I found this issue on github, which apparently is what I was hitting. After reading the thread, I simply removed KidsRuby, reinstalled, and then the install went through¬†successfully.

So, just a note if you have issues after installing on Mac, simply remove the KidsRuby package and reinstall to get going.

Learning Ruby!

After brining up KidsRuby, you are greeted by an easy to navigate menu. See the image below for what the “Help” section looks like:

Navigating the program is easy, and within minutes you’ll be writing your first graphical Ruby program! The program uses a Logo-like turtle interface to teach graphics programming. For those old enough to remember using Logo, the experience will be very nostalgic. My daughter and son both enjoyed this and were excited when the turtle was drawing on the screen, following their commands. In fact, my daughter spent 30 minutes changing how the turtle moved to draw different shapes, utilizing “for” loops. Little did she know she was writing her own algorithm!

My Take

Teaching your kids to program is almost a must in today’s world. Everything is moving to be “App” centric, so having the skills to understand this new world is important. KidsRuby provides a fun, easy to understand and navigate experience which will keep your kids happy and entertained for hours. On top of that, they are learning a great language in Ruby. From there, they can move on to move advanced things, such as running KidsRuby on the Raspberry Pi (video ¬†here). How cool is that?

Update on VXLAN in Open vSwitch

So, previously on the other site I blog for, I mentioned VXLAN in OpenStack Quantum. The reasons for this are dictated in that post. While we can start working on the segment ID and multicast address management in Quantum, getting VXLAN support into Open vSwitch can be done in parallel. That process has seen renewed interest recently (see the thread here), and I am happy to report I have setup a git repository with the patches from last fall merged into the latest master branch versions of Open vSwitch. To get the code, go here. At this point, you have to manually configure the tunnel endpoints, but passing traffic should work over the VXLAN tunnels.

I hope to work with other Open vSwitch developers in the coming weeks to get a fully realized and deployable version of VXLAN into Open vSwitch. At the same time, work will start on the management hooks into OpenStack Quantum. Stay tuned for the blueprint proposing this for inclusion into OpenStack Quantum soon.

Unit Test Frameworks for “C”

A recent project had me looking into useable Unit Test Frameworks for the “C” programming language. After doing some initial research, wikipedia ended up showing me a large list of frameworks, of which the majority appear to be dead or not used anymore. After doing some initial scanning, I decided to look into a handful:

  • I initially looked into check. This one is mostly current, still appears to be maintained, and looks like a large list of open source projects use this for their own unit test needs.
  • I also look at cmockery. This is a Google project to provide a fast, easy unit test framework for “C”. However, this one looks older than check, and doesn’t appear to be actively maintained.
  • The last one I looked at was FCTX. Ultimately, this is the one I chose.
FCTX has the following advantages:
  • It provides a robust unit test framework, all while being written and existing in a single header file.
  • It is licensed under the BSD license, which makes it friendly for commercial projects.
  • It is actively maintained, with the latest release coming out in April, 2011.
I’m in the process of trying to write unit tests with this now. Once I’ve played with it a bit, I’ll either update this post or write a new one detailing the actual experience of using FCTX for unit test creation.