Archive for the ‘Information’ Category

How to contribute to Drupal

Wednesday, August 24th, 2011

While up in Connecticut last weekend speaking at DrupalCampCT, I had the opputunity to speak with Ben Melancon (mlncn) about what we can do to make contributing more accessible to Drupal users of all skill levels. We all love that Drupal is very much a “plug-and-play” CMS, but getting those plugs made requires a lot of work and coordination. What I am trying to do is help streamline the process, so there is an extremely clear path on how to contribute to Drupal core and modules. As a first attempt, I’m working towards establishing an Un-official guide.

Please leave a comment with links to Drupal resources that you feel have been helpful in successfully contributing to Drupal: a guide/tutorial, feedback from a module maintainer, … anything really. After gathering a list, I will work to have seasoned vets of Drupal review the list, and pair it down to the best representation of the way to contribute.


Drupal Contributors Guide

Making a Drupal patch with Git –
Submitting patches –

Posted in Information | 2 Comments »

Using Hash Bangs in your URLs

Wednesday, February 9th, 2011

Ever since the emergence of AJAX into web commonplace, we have been looking for feasible ways to may the content crawl-able by spiders. Recently, you may have noticed a handful of websites with strange looking URLs, something like this:!some/unique/identifier

Why would anyone do such a thing? The answer should be obvious, Google. In a guide released on Google Code, they suggest creating “pretty URLs” that allows Google to find your “web snapshots.” Among the big players using the URL scheme is Twitter and Facebook, which inevitably means it started to spread as a sure-fire, absolutely perfect way of getting AJAX-ed content crawled.

We’ll, like most truths, this isn’t completely true. As a matter of fact, there is hardly ever a time you want to use this scheme. As Mike Davies awesomely outlined, there are so many disadvantages to using the scheme, and most of the advantages are myths (I’ll wait here ’til you go read that).

For the lazy, to summarize, you are in essence making a client-side front-controller: the “#” in the URL breaks it into a resource ( and a fragment (!some/unique/identifier) – the fragment is used as the unique identifier for what content to AJAX in, but it always routes through the same resource. It’s as if your website only has one page, that goes against all of our traditional SEO rules. Additionally, this AJAX scheme is not a standard, it’s a Google facility – meaning you’ve now ousted every other spider – kudos!

What about private web apps?

Mike Davies article was awesome, and you should really take to heart his guidance about not using hash-bangs in public sites. However, I wanted to begin a tangent off of a topic that Davies brought up – using hash-bangs in web applications. In his article he writes:

“Engineers will mutter something about preserving state within an Ajax application. And frankly, that’s a ridiculous reason for breaking URLs like that.”

Given his context, publicly searchable content, I’ll give him that. But the land of private, SaaS web applications, where the crawl-ability of your content isn’t a requirement or concern, let’s re-evaluate:

  • Using hash bang URLs prevents non-Google crawlers from consuming AJAX content, but a login system prevents them all from reading it! Crawl-ability is not a concern.
  • Using #! preserves back/forward buttons – for web apps, our main concern is UX, and using hashes is a native browser navigation feature, as opposed to binding to the forward/back buttons.
  • Using hashes allows you to develop an AJAX navigation framework using window.location.hash

To wrap up, Mike Davies definitely hit it on the head. In regards to using hash-bang URLs for public content sites … don’t. But for private web applications, the land of make-it-work, hash-bangs can provide some much needed functionality to accommodate AJAX navigation. I’d love to open the floor up to some other pros/cons or solutions about using hash-bangs in SaaS web applications.

Posted in Information | No Comments »

Fixing the “You have to install development tools first” error with Nokogiri.

Friday, November 26th, 2010

After wracking my brains around a strange issue installing Nokogiri, wmoxam in #rubyonrails and I figured out how to get it to install.

Problem: You go to install nokogiri, either with bundler or with a straight “gem install nokogiri”, and you get an error like the following:

In your wisdom, you decide to jump over to Aaron Paterson’s Installing Nokogiri page, where he tells you to install the libs, libxml2 and libxslt, manually and configure the gem install to those libs with flags … but it still doesn’t work.

Solution: You are probably using RVM, right? Yeah, we’ll when you installed ruby 1.9.* with it, it was probably old. Update your rvm install and re-install ruby with the new RVM version, and you will be green.

rvm update head
rvm --force install 1.9.2
gem install bundle

## in your rails app
Installing nokogiri (1.4.2) with native extensions


Tags: , ,
Posted in Information | 12 Comments »

Drupal Linkshare Pixel Module Released

Monday, June 14th, 2010

I released a nice little module onto the Ubercart site today called “Linkshare Pixel.” This handly little module is will create an image tag that Linkshare requires you to put on your checkout page for tracking purposes. It takes care of building the URL out of the cart contents and store configurations, all you have to do is provide your Linkshare merchant ID.


Tags: ,
Posted in Information | 1 Comment »


Friday, June 11th, 2010

The Ruby community announced yesterday that August 19 will be “Why Day” (, in honor of whytheluckstiff. For most of use in the Ruby world, _why needs no explanation, for those who don’t, I demand you to go learn about him, and all the amazing work he did for this community. I can go into detail, and site resources, but he’s had such an impact, that learning about him will not be hard at all.

I will however, post a link to his song, “This book was made”, that came with his “Poignant Guide” book. This Book Is Made

Thanks _why.

Posted in Information | No Comments »

Ruby 1.9.1 & Textmate Don’t Play Nicely Together

Friday, January 8th, 2010

Ruby 1.9.1 has been out for a long time now, so you may feel pretty comfortable about installing it on your box and doing to the big “let’s see what this broke” game with Rails. We’ll I just wanted to give you a little heads up with another program you may have not expected issues with, Textmate.

What? The Horror! Not being able to code Ruby with Textmate. Well, fortunately, that is not entirely true. You can still use the infamous editor to edit you Ruby code, no problem. The issue comes when trying to use any of the generators or functions that require you to execute Ruby code. You may find yourself running into this puzzling error:

invalid multibyte char (US-ASCII)

For those of you not in the know, the handling of different character types have changed in Ruby 1.9 and Textmate’s latest release does not accommodate this change.

I will update this with any updates, in terms of fixed Textmate versions or any other reliable solutions.

Tags: ,
Posted in Information | No Comments »

Take charge of your web app’s billing with Chargify

Wednesday, December 9th, 2009

The web is literally bursting with great ideas and it seems that every day, new web applications are emerging that are offering really awesome functionality to make life easier and fun. Us developers spend large amounts of time coding up these apps, and one of the trickiest parts is always the merchant transactions. Chargify has taken care of all that by offering you access to the most popular merchant gateways, with no transaction fees, only a monthly fees based on volume. Simply sign up for an account based on your volume, create your products and pricing tiers, and hook into their API via your web application – it takes care of the rest! No need to store credit card information, write recurring billing software, etc. Check it out

Posted in Information | No Comments »