Change Tab Icons Based on Store Data in Sencha Touch 2

I’m building an app where my tab panel icon color needs to change based on data loaded during the app initialization and store refreshes. The challenge is tabs are automatically generated. While you can give them custom class names by setting iconCls it’s not quite as easy to target the tabs once the application is running.

Ad Hoc Provisioning With Sencha Touch

This post might be out of date; originally written for Sencha Touch 2 Developer Preview 2

I’ve been making good progress with my mobile app, now it’s time to show it to a few testers. With this being my first app, I was a bit lost on to go about ad hoc app provisioning. The sencha touch guide had a few sentences about it, but it just wasn’t working for me. With ST2 being such s new framework, there wasn’t much on the forums either. After a few wasted hours, I finally got it…

Rails CMSes

Ruby on Rails content management systems are a bit disappointing.

Refinery CMS looks great on the surface. It has a decent selection of modules and a strong group of developers behind it. But its UI is too simple if you expect to use it for any type of content other than plain pages.

For example, once you install the Blog add-on, to add a blog post, you just add a regular page and set the ‘Parent page’ to ‘Blog’. First, that’s not a very intuitive method of adding a blog post—I’d expect to see ‘Add blog post’ or something similar. Secondly, when I have 200 pages and 1,000 blog posts, that tree will be a mess.

Locomotive CMS is nice as well; and if you’re lucky, the demo might be working. A brief look at their features shows they have custom content types—key for any flexible CMS. Finally a CMS with some beef to it! Now, lets hop on over to their blog and … it’s a Tumbler-powered blog. Really? A CMS site that’s not using the CMS? Yikes. Moving on…

Radiant CMS was probably the first mainstream Rails CMS. But just as the tagline says, it’s a CMS intended for smaller teams or smaller collections of data. By all accounts it looks like a great CMS, but I wouldn’t want to be locked into it if the site could grow.

Everything else looks to be half-finished projects or frameworks for rolling your own CMS as part of a custom application. This is a bit frustrating as I often have website projects that evolve over the years into custom applications. Without a solid ruby CMS to start with, I often start with a PHP CMS then try to decipher when the right time is to break away from the CMS and move into a custom rails app, rather than just adding on and incorporating the CMS into the larger project.

Oh well, the hunt continues.

2011: Year in Review

2011 was a crazy year for the world. For Laura and I, 2011 was a very busy year filled with hospitals, construction projects, and lifestyle changes.

Boycotting GoDaddy

I’m boycotting GoDaddy because they support the Stop Online Piracy Act (SOPA, H.R. 3261), and the Protect IP Act (PIPA, S. 968). These bills sound good from the titles, but are broadly worded to allow the government to takedown websites for almost any reason. Feeling the pressure from the interwebs, GoDaddy officially renounced support for SOPA, but there was no mention of PIPA.

GoDaddy sells domains for cheap, and in return, I look past their horrible control panel, cheap advertising campaigns, and ridiculous animal abuse. No more; I’ve finally moved my 16 domains to Namecheap. I suggest you do the same and move your domains a responsible company like Namecheap or Dreamhost (both affiliate links).

And to read more about SOPA, Jeffery Zeldman has written a great piece on SOPA and what it could mean for our industry.

Arguments vs Arrays

I saw a job posting that illustrated the JavaScript/ECMAScript knowledge-level the candidate needed with:

can you figure out whether you’re working with an array or arguments list without the use of 3rd party code?

I was intrigued, because I didn’t know the answer.

Submit Form With JavaScript

Recently I was asked how submit a form with JavaScript… and I didn’t have a solid answer for them. The shame! So, like a teacher having the class write ‘I will not talk in class’ over and over as punishment, here are a few various ways to submit a basic form in JavaScript.