2013, Archiver, and Grunt

So it’s been a bit since my last post but things have been a bit crazy with holidays, new year, and client projects. Here is a quick summary of whats happened since:

Last October I started one of my first open source projects named Archiver, a nodejs module for archiving via Streams with a consistent API. Initially it started out as a “fork” of node-zipstream that I created for use in Grunt Contrib Compress, due to the lack of options with consistent APIs for multiple archive types. Archiver is now on version 0.4 and has undergone many architectural improvements that have greatly improved overall performance.

After working with Grunt Contrib team throughout the end of last year, I took a step back from the project but still continued to submit Pull Requests and provide support for several Contrib projects. Recently, I decided that my efforts were better focused on Archiver and its growth.

Time to get back to get back to work but I’ll try to lessen the time gap between posts next time around.

GruntJS and Contrib Enhancements

I’ve mentioned my involvement in Grunt-Contrib a few times lately. It’s the number one thing I spend my free time on. This month we decided to overhaul how contrib tasks are organized; branching them off into their own repos/packages. This brings flexibility and control that a single repo/package model made nearly impossible.

This overhaul is aided by a new Grunt feature, collections, which allows us to maintain the out-of-the-box usability for the “grunt-contrib” package while allowing more advanced tasks to be opt-in with a little more setup. With the number of available grunt tasks growing daily, I believe that collections will take off and that themed collections will become commonplace.

These (and many more) changes have made September a very busy month for all the contributors involved. Be sure to checkout all our hard work under the GruntJS Organization.

PS: Grunt also has a new site that makes finding Grunt plugins easier than ever.

Goodbye LESS, Hello Stylus

Ever since I got into the popular starter toolkit, Bootstrap, I’ve been using LESS in most all my projects and toolkits. LESS is pretty easy to start with but its release cycles and backlog of pull requests are getting rather annoying.

Then came Stylus, which I became aware of through my work with Grunt Contrib, which is frequently updated and includes many features that make everyday life easier. Not to mention that Nib, its CSS3 counterpart, which makes common CSS3 features cake with its mixins that will auto transform things like a simple border-radius property into multiple properties to support the ever so annoying browser prefixes that we must deal with.

So after much debate, I have decided that moving forward I will be using Stylus + Nib. This decision also helped me to look at better approaches to the development techniques I currently use for responsive websites, which make up 50% of my business at the moment. After much research, I found that a Mobile First approach was the right fit going forward. Thus I will be retooling my toolbox to take parts of Bootstrap, 320 and Up, and several other techniques mentioned by some of the webs top gurus.

How Time Flies

I started this blog in hopes that I would post to it more than my past blogging attempts. However, 2012 has been a busy year thus far between moving and helping out with some open source projects in between paid work. My new goal is to start posting mini-updates on projects I have contributed to, hopefully at least once a month. I will also try to mix-in some reviews, recommendations, and guides every so often.

Open Source Contributions

It has been a very busy month, but I managed to sneak in some time to contribute an advanced compression task to grunt-contrib. The addition of this task allows JavaScript developers to take advantage of cross platform zip, tar, and gzip compression in their grunt-based build process. Among many other task improvements, I’m also in the process of standardizing the project’s documentation.

I’m also sponsoring Quattrimus, android rom that brings ice cream sandwich to the Optimus V, by becoming a dedicated file host for the project.

Projects Worth Checking Out

Grunt is a task-based command line build tool for JavaScript projects that integrate several helpful 3rd party tools.

Grunt Contrib is a set of tasks contributed by users of grunt (including myself) to offer a more robust set of tasks.

In Other News

WordPress 3.4 was released yesterday, make sure to get your upgrade while its hot! Among other things, there is a whole new theme preview system.

WordPress Custom Post Types

While Custom Post Types were introduced in WordPress 3.0, usage of this feature has only recently started picking up momentum. Thus I want to introduce a handful of plugins that complement this feature.

The Plugins

Custom Content Type Manager
I had originally found this plugin a few months back. It’s really nice in that it not only allows you to add custom post types but also to add standardized custom fields to make things easy for the client. The only issue I have with it is that it makes itself a top level menu item.

Simple Custom Post Types
I recently ran across this plugin when I found the above mentioned plugin to be too much. This plugin’s simple yet granular control will keep it at the top of my toolbox for awhile. I also love that it’s part of the “Settings” menu as clients are less likely to find and fiddle with it.

Simple Taxonomy
A taxomony is basically a way to group things, ie a post’s categories or tags. This plugin is also made by the developer of Simple Custom Post Types and allows you to create your own groupings, perhaps a “genre” taxonomy for a “movie” custom post type. I find that the plugins work great together when trying to manage large data sets.

Posts 2 Posts
Say you have a “movie” custom post type that you want to associate with your “actors” custom post type. This plugin would allow you to link “actors” to “movies” via UI. The developer also recently added support for linking posts to users. I’m finishing up an intranet that uses this plugin to link various post types to internal departments.

In Closing

I hope this post allows you to benefit more from Custom Post Types. I’m planning to highlight a new WordPress feature each month and would love to hear any ideas below. I may even do a few Q&A posts!


I have decided to start a personal blog filled with helpful tidbits on CodeIgniter, jQuery, MySQL, PHP and WordPress Development that I run across during an average work day. Occasionally, I may also throw in a splash of my own personal views on current topics and happenings. I will be working on the overall design and initial content for this blog over the next few weeks so be sure to check back very soon!