1991-2016—25 years of Art & Logic

Level Up Your Coding Skills With exercism.io

Level Up Your Coding Skills With exercism.io
A few months ago I stumbled across across an interesting open source project created by Katrina Owen called exercism.io that provides a collection of programming practice problems in over 30 languages. On the surface, it’s a great resource for learning to code or learning a new language. I’ve found however that as you dig deeper it has much more to offer on a number of levels.
To get started you simply install the exercism command line client, login with GitHub, pick a language to work in, and fetch your first problem. The first problem in many languages is often just a simple “hello world” exercise just to get you started. When you fetch a problem you get a ReadMe file with a description of the challenge and a suite of unit tests. In TDD style you write code until the tests are passing and you’ve solved the problem. Afterwards, you submit your solution and other exercism users are able to review and comment on your code. You can carry on the conversation and submit additional revisions of your code as part of this informal peer code review.


Bringing Radio to a Software Engineer’s World

Grundig FR-200 radio receiver with computer terminal in the background.

When we think of the term radio, “high-tech” isn’t the first word that comes to mind anymore. A lot of people will think of analog commercial radio (“FM/AM“), something that started up around the 1920s. In fact, many airports, public safety organizations, and businesses still use conventional analog radio to communicate. However, digital radio completely dominates cellular communication and is increasing in usage with public safety organizations.

Given how low-level analog radio electronics are, how do software engineers and computers fit into the picture? Software-defined radio (SDR) is a way of performing radio communications using software components in place of hardware components (e.g., mixers, modulators, filters, etc.). (more…)

Greatest Hits (Vol. 1)

I've never heard of him, but SEVEN VOLUMES of Greatest Hits? That's impressive.

Image from numusiczone.com

I’m just realizing that this here blog just celebrated its first birthday — my first ‘hello world‘ post here was May 1, 2012. This seems like a good opportunity to go looking through the archives and point to some older posts that newer visitors/subscribers may not have read.

Ryan Brubaker did a great three part series on using CoffeeScript and Backbone.js:

CoffeeScript has been all the rage lately and I’ve been wanting to hop on board the bandwagon. I’ve also seen Backbone.js mentioned quite a bit and was even more intrigued after listening to this .NET Rocks podcast. I decided to convert some plain JavaScript code I had in a side project to use both CoffeeScript and Backbone.js and see how things went.

The project is a simplified morse code simulator that animates morse code being sent over a telegraph line. The complete source is available here and the running code can be seen here.

I was interested to learn this week that the folks at github recently updated their JavaScript style guide to require that all new JavaScript code be written using CoffeeScript. That’s a pretty significant vote of confidence in my eyes — if you’ve been assuming that CoffeeScript is just a fad, maybe this will prompt you to re-evaluate that stance.

Steve Huey dropped a whole bunch of useful iOS/OS X-related posts:

Along the way, I contributed a few pieces talking about the idea of programming as a liberal art, and as something that most people should learn how to do at some level:

I believe that everyone should learn to write a little code, and play an instrument, and make things out of wood, and tend a garden, and cook, and, yes, do a little plumbing, too. They shouldn’t learn these things because they’ll use them every day to earn a paycheck, they should learn them because it makes them better thinkers, and better able to take care of themselves. On top of that — if vast empires were being built on top of plumbing the way that they’re being built on software, I’d say that anyone who was happy to ignore it as a black art practiced by wizards was making a big mistake. The value of acquiring a new mode of thinking isn’t affected by the fact that most people won’t need to use pointers or recursion on a daily basis.

If you missed these the first time around — check them out.