Code Reviews: How Far Down the Rabbit Hole Do We Go?

“I only modified one line of the file, why should I be responsible for fixing the coding style of the whole thing?” That was my first reaction when participating in a full-scale code review at one of the software companies I worked for. Then, if I do have to fix the coding style, my name is going to be on the blame list when somebody checks version control for who wrote that section of code. How far should we take fixing things during reviews? (more…)

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…)

Bootstrap ALL the Things?

Bootstrap is a CSS framework that serves as a starting point for your website or web-application’s user interface styling. It has become very popular now, being the #1 trending repository on Github.com as of August 20, 2013. It is definitely a great asset, but should we be turning to it so quickly?

BOOTSTRAP ALL THE THINGS! …Bootstrap all the things?

(more…)

Remotely Pairing Up a New Developer to Your Project

While some short projects have a chance at keeping the team consistent, most projects don’t fall into this category. During the months, years, or even decades that the project chugs on for, a developer is very likely to be added or leave to work on another project and be replaced. How do you handle this transition period, especially when working remotely?

Until humans are wired up with Bluetooth transceivers for knowledge transfer, we can try pairing up in a more practical way with pair programming.

[[A surgeon is standing over a patient on a gurney.]] Patient: While you’re doing the surgery, can you also implant this in my arm?  Surgeon: A USB port? Man: Just wire it up to some nerves.  Surgeon: ... This won’t let your brain control USB devices, you know. Man: Sure -- I just want the hardware.  Man: The rest is software; I’m sure there will be a project to patch together support eventually. Surgeon: Ah -- you’re a Linux user, I see. Man: Yeah, how’d you know?
XKCD #644

(more…)

Representing Marionette.js Views with State

You want to create a simple login page for your new website, all written to be dynamic using Backbone.js and Marionette.js. To accomplish this, you listen for the login button to be pressed and then use jQuery to disable the form controls and display a loading message. An invalid login message comes back, so you reenable the form, highlight the incorrect fields, display a message, etc. The user presses login again… uh oh, you forgot to add code that removes the highlighted fields and hides the error message div.

Login dialog with username and password inputted. An error message is displayed informing the user that the username and/or password are incorrect. The password field has been focused and highlighted for the user.

Your view logic is starting to become tedious and you never know if you’ve covered all the possible paths through your user interface. However, there may be a solution to make your view more organized and predictable: states. (more…)