This afternoon I was invited to speak at the June Table Talks hosted by Table XI. Today’s theme was developer education. My topic: Practice Begins With Play. Developers who want to achieve mastery have many practice resources to choose from, including open source hardware like Raspbery Pi, BeagleBone Black, and Parallella.
Kali Linux for Pentesting
Braintree hosted a Hax ‘n Snax event this afternoon. Devs from around Chicago gathered together to hack on code, socialize, trade ideas, and hone skills. Thanks Braintree for putting on a great event.
My Hax ‘n Snax time was spent interacting with other devs and experimenting with a Linux distro that I just discovered, Kali Linux.
What is Kali Linux?
Kali is a fairly new Linux distro designed for digital forensics and penetration testing. If you’re looking for a general purpose Linux distro, Ubuntu would be a better choice. Kali is the successor of BackTrack. The developers of Kali and BackTrack, Offensive Software, state that “Kali is a more mature, secure, and enterprise-ready version of BackTrack Linux.” You can download it at Kali.org.
BeagleBone Black, Up & Running
BeagleBone Black, like the Raspberry Pi, is a small, inexpensive computer that runs Linux. It’s smaller than a deck of cards and you can buy one for about forty-five dollars ($45.00). The device is made by CircuitCo in Richardson, TX, USA.
It Just Works
BeagleBone Black runs Linux right out of the box. Steps required:
- Plug in the micro-HDMI cable for the monitor. See the “Gotchas” section about micro-HDMI below.
- Plug in the keyboard & mouse via the USB port. You might need a USB hub because the board only has one USB port.
- Add power via the mini-USB port or the 5v power connection.
After a few minutes of boot time, we have a fully-functioning Linux computer with a GUI, Firefox browser, and other tools.
Upgrading Ruby With RVM
Ruby Version Manager (RVM) is one of my favorite tools in the Ruby ecosystem. Reason: RVM lets me experiment with Ruby and Rails at will. I don’t know about you, but my best experiments are full of risk so they eventually blow things up. When that happens, I can always recover the broken areas without wasting time on a full system restore.
Some devs choose to use another tool, RBenv, that serves a purpose similar to RVM. I began working with RVM before the other tools existed, and since it has always worked well for me, I have no reason to switch.
Ruby 2.0.0-p195
The latest patch of Ruby 2.0.0, p195, was released two days ago. Time to take it for a spin. RVM lets devs upgrade Ruby and manage gemsets seamlessly. Here’s how the process went.
RubyMotion Sketchnotes
Alexis Finch (@agentfin) captured Sketchnotes for a RubyMotion presentation that I gave for Groupon’s Geekfest.
Sketchnotes are typography and drawing and notes all mixed together.
The Man Who Sold Hot Dogs
Note: This timeless story pre-dates the web, and it has appeared at WisdomGroup.com. Author unknown.
There was a man who lived by the side of the road and sold hot dogs. He was hard of hearing, so he had no radio. He had trouble with his eyes, so he read no newspaper. But he sold good hot dogs. He put signs up on the highway telling how good they were. He stood on the side of the road and cried “Buy a hot dog, mister?” And people bought. He increased his meat and bun orders. He bought a bigger stove to take care of his trade.
One day, his son came home from college to help him out.
Ack 2.0: Written in Perl, Useful With Ruby

Ack is an open source command line tool that lets developers search large trees of source code very quickly. If you are looking for a method definition in a haystack of files, Ack will find that needle for you. Many devs regard Ack as a replacement for grep.
The Elmhurst ChicagoRuby meetings are always a source of unexpected learning. Today ChicagoRuby welcomed Andy Lester, creator of Ack. Andy released Ack 2.0 two days ago. He shared some of the latest features in an impromptu demo.
New RVM Behavior With .ruby-version and .ruby-gemset
I trust RVM to manage my Ruby versions and my gemsets. So when I saw an unexpected change in RVM’s behavior, I was concerned about a possible disruption in my workflow.
Elegant Code
This quote is too long to tweet, but too good to pass up:
Ugly programs are like ugly suspension bridges: they’re much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code.
~Eric S. Raymond, Author of The Cathedral and the Bazaar
Challenges Make Us Stronger
A man found a cocoon of an emperor moth. He took it home so that he could watch the moth come out of the cocoon. On the day a small opening appeared, he sat and watched the moth for several hours as the moth struggled to force its body through that little hole.
Then it seemed to stop making any progress. It appeared as if it had gotten as far as it could and it could go no farther. It just seemed to be stuck.