Thoughts about Ruby, Rails, RubyMotion, iOS, IoT, and business growth.

JRuby 9000 on Mac OS X

JRuby. Ruby on the JVM.JRuby. Ruby on the JVM. Moore’s Law is about to run into a wall. Therefore, anything that software developers can learn about concurrency will be critical in coming years. Enter JRuby 9000.

What is JRuby?

JRuby is an implementation of the Ruby programming language that runs on the Java virtual machine (JVM). Advantages of running on the JVM include:

  • Reaping the performance benefits that come from decades of JVM tuning.
  • The ability to call time-tested Java libraries from Ruby programs.
  • The performance benefits that come from concurrency, built into the JVM.

Raspberry Pi 2 Model B Quad Core

Raspberry Pi 2 Model BRaspberry Pi 2 Model B The Raspberry Pi Foundation has upped their entry in the single-board computer competition. Raspberry Pi 2 Model B boasts a quad core ARM CPU and 1GB of RAM. More important: Benchmarks show that the board is 6x faster than the previous model. And the performance bump has been achieved while the price remains low: Roughly $45.

Getting the board up and running is easier, too. You can buy a pre-built Linux image on micro SD. Or you can download the New Out Of the Box (NOOBS) image yourself. Depending on the speed of your internet connection, you can be up in running in less than an hour.

Keep the Fun in Computing

“I think that it’s extraordinarily important that we in computer science keep fun in computing… What’s in your hands, I think and hope, is in- telligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.”
  ~ Alan J. Perlis, from the Dedication page in SICP

Enrolling in the Chicago SICP study group, I expected to dive into Lisp. I expected to be challenged. What I didn’t expect: The fun, somewhat irreverent attitude of the SICP authors. And why not? Software development is one of our newest professions. Other professionals are made more effective through our work. Everybody benefits from the increase in productivity.

SICP Study Group

SICPSICP Veteran developer Dave Astels is leading a Structure and Interpretation of Computer Programs (SICP) study group for the next ten months. The Massachusetts Institute of Technology uses SICP as the text for one of its early computer science courses. Session one of Dave’s group starts today at 6pm. For any developer who wants to ramp up in skill, the SICP study group is an excellent opportunity to do so.

MIT makes the entire text of SICP available online for free. Or you can buy a paper version of the book at Amazon.

Thank you Brad’s Deals and Ken Walters for hosting the SICP group.

WindyCityRails and You

If you have ever attended WindyCityRails: Thank you for helping to make the event more exciting every year. Organizers strive to give developers actionable technical information in a conference format. So far, it’s working!

Context Changes Everything

There are some cases where time zone information is absolutely critical. For example: When scheduling a video conference that crosses national boundaries.

A few hours ago, Google sent me a reminder about today’s LinuxBarbados meeting. The group meets via video conferencing software over the web. Google’s reminder was confusing because it showed the time without the time zone (screenshot below). LinuxBarbados is based in the Caribbean, and some of the members participate from other time zones.

What time is it when the time zone is unknown?What time is it when the time zone is unknown?

Google’s automated reminder said 3pm - 4pm with no time zone reference. How confusing! Members of the group received the same automated reminder with the same information, regardless of time zone. A small change, displaying the time as 3pm - 4pm (CST) would solve the problem.

Chicago Node.js

OpenROV at Groupon. Photo by Michelle Waldorf.OpenROV at Groupon. Photo by Michelle Waldorf. The Chicago Node.js user group invited me to present Node.js Under Water, an overview of the OpenROV underwater robot, this evening. Slides appear below.

Every version of this talk is tailored to the audience. This version focuses on OpenROV hardware components since this group certainly knows Node.js. Information has been added on hardware gotchas and tether management.

Thank you Chicago Node.js organizers and members for having me.

No Windows. Stronger Planes.

It is always good to start the new year with something inspirational. Technicon Design created a 3-minute video to demonstrate their IXION Windowless Jet Concept. Worth watching full screen.

How can a plane with no windows offer better views for passengers?

Looking Inside the Pygments Plugin

This blog uses pygments.rb for syntax highlighting. Recently pygments.rb stopped working, so I had to dig inside to determine the problem and apply a solution.

Full disclosure: Pygments didn’t simply stop working. I applied updates related to Octopress and Lunr.js, and then it stopped working. So the root cause is me! Rather than back-out the updates, I decided to push forward because Lunr.js will improve the search experience for visitors. Search options will be discussed in a future post.

Starting With the Error Message

As with all Octopress based blogs, the $ rake generate command creates a new set of static pages every time the command gets run. Normally the process is smooth. Here’s the error message that resulted this morning.

~$ rake generate


jekyll 2.0.3 | Error:  Pygments can't parse unknown language: </p>.


What unknown language? Something was fishy. Fortunately, pygments is an open source plugin. Solving the problem was non-trivial, but doable.

OWC Thinks Ahead

MacBook Pro SSD, next to a nickel.MacBook Pro SSD, next to a nickel. Every computer user has to deal with this at some point. Your machine runs out of storage space: hard drive, SSD, or whatever mass storage you happen to use. In my case, the 512GB SSD in my early 2013 MacBook Pro was over 90% full. Time for an upgrade.

Fortunately (and contrary to what the Apple literature says) it is possible to upgrade the SSD in a MacBook Pro. RAM is different because the MBP’s RAM is soldered to the logic board. But the SSD plugs into a socket. The SSD upgrade path is well-documented on YouTube and elsewhere.