• Yeoman, Backbone, and a Smarter Client

    I have gone through a number of tutorials on newer front-end tools like AngularJS, Grunt, and Backbone. Nothing compares to building something of your own, though. After dipping my toe into the water numerous times before, I dove into the deep end and started combining these tools on my own.

  • Git Submodules

    I normally feel fairly well-versed in Git, which is to say, I can commit code, I can see what’s happening, and I generally know enough to not screw anything up. I thought my Git Fu was tight enough that I at least had a good grasp on all that could be done with the version control system until I came across a project that used submodules. In Git, a submodule is a connection from one repository to another. Say, for instance, you’re working on a suite of similar products. You want each one to have its own repository. That makes plenty of sense. But suppose each of these products shared a common messaging platform. Instead of maintaining this same code across the suite of products, which would defeat a lot of the purpose of setting up a VCS, you can give it its own subrepo, and have each product in your suite set up a submodule to reference that repo. All seems well and good, but there are a few gotchas to keep in mind.

  • Bower: Your Third-Party Front-End Code Assistant

    As I’ve started diving into more client-side heavy web apps, I’m finding myself constantly asking why any given tool was developed. Lots of web technologies can look cool, but what problem is each trying to solve. Bower was one that mystified me, even as I let Yeoman go ahead and install it in my latest project. It describes itself as a package manager for the web. As a user of npm, I was aware of various packages and tools that can be installed, but I did not understand what packages Bower could be capable of handling. What problem is Bower trying to solve?

  • jQuery Selectors with Valueless Attributes

    It goes without saying that the possibilities involving jQuery Selectors are vast. I recently needed to select all table cells within a given table that only spanned one row. The start to this seemed easy enough. The not selector would be able to target all td’s with a rowspan, but how could the selector cover all possible rowspans? It might be easy to assume that the values would be small enough.

  • HTML5 and Media Queries

    I finally took it upon myself to tackle HTML5, and you are looking at the results.  Of course, implementing any form of HTML5 isn’t necessarily rewriting all of your markup with fancy new <section> and <nav> tags nor does it have to be adding HTML5 native Javascript.  The first step is the simplest, but it’s a first step nonetheless.  I started by simply replacing my doctype with <! DOCTYPE HTML5>.  Gorgeous in its simplicity, no?  This change alone will give you HTML5  features in all modern browsers1.