It’s a Prepending Party

I just realized a very powerful and simple feature of CodeKit that has made my life immensely easier, as well as giving a speed boost to my sites.

You can prepend all the libraries you’re using on a project at the top of your main javascript file like so:

// @codekit-prepend "mootools-core-1.5.0.js"
// @codekit-prepend "mootools-more-1.5.0.js"
// @codekit-prepend "shadowbox.js"
// @codekit-prepend "chosen.js"
// @codekit-prepend "slider.js"

And then set the output to be Minified + source map (for easier debugging):

Codekit options for javascript

And then in your footer you can get all your behavior with one HTTP request:

<script src="<?php echo MEDIA_URL; ?>/js/min/application-ck.js" type="text/javascript"></script>

Stupid simple, but for some reason it just hit me that this was possible, and now I use it all the time. I love finding new ways to improve my workflow with CodeKit.

(Underwear drawer notes: yes, I still use MooTools on several of my older sites, as well as scrappy ol’ PHP. I have been wooed to jQuery and sexier Ruby + Python methods of coding over the years, but it’s good to keep a wide variety of skills in your tool belt.)

#codekit #php #mootools #javascript #stupiphany

Flat File Future

I’m not sure exactly where I entered the rabbit hole, but I saw a mention of Statamic somewhere, and one link led to another until I realized there is a myriad of very slick, flat-file-based frameworks to choose from, in just about any language you prefer.

Perhaps the idea of a barebones, well-orchestrated platform was such a relief because I’d been spending my entire weekend hand-coding PHP to send multi-part MIME order confirmation emails with crusty table markup, in the thick of aging procedural code. From "GOOD GOD WHAT AM I DOING WITH MY LIFE" to "Oh cool, Statamic looks nice."

Statamic just needs PHP 5.3. Pretty slim requirements1. It uses YAML for all config files, and creating plugins looks damn simple, enough to make PHP appear not-too-shabby as a language.

One of the earliest to start this trend is Jekyll, which has been around for some time, looking just gorgeous in its Ruby minimalism suit of adult soothing dark techy hues. Installing it is ridiculously simple:

gem install jekyll
jekyll create hotsauce
cd hotsauce && jekyll serve

Oo-lala! Like Python? I do. How about Cactus?

sudo easy_install cactus
cactus create holysmokes
cd holysmokes && cactus serve

Looks familiar! Jekyll comes a little more pre-styled, but they’re both very similar concepts. And along with Statamic, they all use a variant of the Django templating language (Cactus uses the real deal), which is fantastic.

But every time I get excited about using one of these handsomely simple frameworks, like Ghost, I remember that most sites I’ve worked on just aren’t minimal enough to be served entirely by these solutions. As soon as you need products or some custom data type the client can manage, or a page that mixes & matches data types (just about every site we do at Firebelly to my chagrin), I’d be fighting against their opinionated limitations.

All said, the next time I decide to redo my portfolio site, or have a simple site to build, I’m definitely going to give one of these a try. Being able to just create a new folder to extend heirarchy, work with markup entirely in inheriting templates, and version control the entire stack sounds damn refreshing.

For now, back to my PHP spaghetti.

  1. Though one thing about Statamic: it’s not free. I’ve noticed a trend emerging where folks are actually -gasp- charging for their work, and as a fellow developer I think this is a fine direction to go in. 

#statamic #jekyll #cactus #ghost #php #python #ruby #dreaming of simpler code

1 note

Hiding Settings Tab in Refinery 2

Quick note of something that took me a while to find: if you install the Refinery Blog engine but don’t need the Settings tab showing in the admin, you can easily hide it by adding config/initializers/refinery/settings.rb with:

Refinery::Settings.configure do |config|
  config.enable_interface = false

(This is for refinerycms / refinerycms-blog v2.1.0)

#rails #refinerycms #quickie

Gasp! Turns out you can disable spell check in any Lion text field (when it&#8217;s active) under Edit &gt; Spelling and Grammar.
This was driving me batshit crazy writing commit messages in GitX, causing all sorts of &#8220;corrections&#8221; on my blathering commits, often riddled with techtastic abbreviations that OS X tried desperately to convert to English.
It only took me about a year to look for this option.

Gasp! Turns out you can disable spell check in any Lion text field (when it’s active) under Edit > Spelling and Grammar.

This was driving me batshit crazy writing commit messages in GitX, causing all sorts of “corrections” on my blathering commits, often riddled with techtastic abbreviations that OS X tried desperately to convert to English.

It only took me about a year to look for this option.

#os x #spell check #gitx #commit messages

Where I Live, 2013 Edition


  • Sublime Text (now at v3 beta) is where I’ve spent a good portion of my life over the last 2-1/2 years. It’s a great cave as far as code caves go.
  • Sadly Photoshop CC still sits in my toolbelt, Acorn is getting so damn good (same with Pixelmator) but it’s still not quite enough to supplant this required, ever-worsening POS. I pine for the day indie apps kick the crap out of the CC suite.
  • Tweetbot because I spend entirely too much time blathering in 140-char chunks.
  • GitX (L) because it’s a perfect git GUI. And free. I’ve tried so many and keep coming back to GitX (L).
  • On The Job for time tracking & invoicing. It’s not perfect but it’s the closest I could find to my simple needs. For many years I used Billable and only switched because I didn’t like the successor, Profit Train.
  • Chromium because I trust Google less every day. It’s always a pain finding a download for this. I can’t even find one now.
  • ForkLift 2 is still in my belt, because there’s nothing quite like it. I still use Transmit for DockSend. ForkLift has sadly been left to pasture by BinaryNights while they focus on Locko, a 1Password clone.
  • The Hit List is still the best damn to-do app. I don’t opt to pay for the syncing & iOS app. Reminders is my on-the-go queue for tasks that I dump into Hit List when back at the desk.
  • Sequel Pro for when you want to navigate MySQL locally. It’s crazy this is free. I just realized you can donate and dropped $10 in the beer fund.
  • CodeKit was a random purchase to compile Less files, but has become an essential tool for Scss compiling, Javascript combining/minimizing, image optimizing, etc. Hilarious version update notes are a bonus.
  • iTerm2 became stable enough to replace Terminal.
  • Notational Velocity is the sharpest text-editing knife. Plays nice with Dropbox folder of plain text files.

#osx #apps #software #sublimetext #tweetbot #gitx #thehitlist #forklift #sequelpro #codekit #iterm #notationalvelocity

1 note

Where I Live, 2011 Edition


TextMate has been supplanted by a new fling, Sublime Text 2, shown here with my own icon:


to replace the gray turd that comes supplied. Acorn 3 has finally come along far enough to replace Photoshop for most mockups and simple graphic tasks. Chrome’s slightly-enhanced version of WebKit’s Inspector is now good enough to replace the only reason to use Geezer Firefox: Firebug. TaskPaper usurped the forever-beta-expiration-updating Hit List, though there’s been murmurs of activity in the long-dormant lands of Potion Factory. I’ve been leaving Transmit open for the single feature ForkLift lacks: DockSend. 

Dark gray version:

#acorn #forklift #osx #software #sublimetext #transmit

iPad, The Bed Computer


It’s been nearly ten months since I posted my first impressions of the iPad. When I first wrote about it, the iPad was all over the tech news — people raving at how it was more expensive and less capable than a netbook; it was a toy (of course to many harping hacks, everything Apple is “just a toy”); it was nothing but a rich-but-dumb merit badge for those who want to shine at Starbucks; it was merely for media consumption and incapable of being a creative or business tool; it was just an overpriced “iPod on steroids.” But most of all, it was the latest disgustingly well-designed, minimal-port, non-replaceable-battery, fanboi fruit in Apple’s repressively walled garden. Junk! In two years Android will demolish the iPad with cheaper, Flash-enabled, open-sourcier slates! Windows Mobile 8 Tablet Series Connect Gobility will conquer as soon as it comes out in 2015!

My previously cute & cheap & useful MSI Wind U100 hackintosh is now covered in ten months of dust. The only time I have used my supposedly superior netbook was to get YouTube on the projector before the (admittedly overpriced) Apple VGA adapter arrived. Since then: bupkis. 

My iPhone has also felt the sting. Around the house, the only thing I need my phone for is, well, making calls. That is of course, in the parlance of our times, when AT&T allows my phone make a phone call.


The disparaging fact that one’s tough guy image may be tarnished by a manpurse to tote the 1.5lb, 10” iPad has been making the media rounds. The fact is, I think I’ve taken my iPad outside the house about 5 times in almost a year. Like more and more folks these day, my futuristic handheld ever-connected supercomputer slash phone is in my pocket at all times, and if I need to do “real work” such as coding or Photoshop, I take along the oh-so-hefty 4.5lb MacBook to the cafe.

So what the hell do I use the iPad for? Let’s run down my most-used apps:


I’m writing this on PlainText , using a bluetooth keyboard. Previously I used SimpleNote, which is still a great app, but Jesse of HogBay has concocted the perfect amount of visual grace and functionality in PlainText to make it a joy to write on.


There are many options now for Dropbox-synced text editors, and for good reason. The iPad makes a fantastic writing machine. It has just the right amount of connectivity, and distractions are more cumbersome to get to. The core concept of iOS, that the device becomes whatever app you’re using, is very well suited to keeping focused while writing. Then it’s just up to you to sit your ass down and write. That’s always the toughest part, but it doesn’t hurt in our over-stimulated age to have subtle ramps and funnels channeling your attention to a single task. PlainText does just one thing and one thing well: manage text files.


I’ve become more and more of a cinephile over the last few years, but I was late to join Netflix. Nearly all my friends have had those ubiquitous red envelopes lying around the house for years. The iPad was the perfect gateway device to an $8/mo streaming service. It also helped that Netflix was reaching a critical mass of streaming titles to make it worth the jump.


The iPad app seems to be almost entirely a WebKit-wrapped view of the Netflix website, and hasn’t received much love at all since release. You still can’t rate titles and it sometimes has rendering issues, but it’s functional. You can find movies and queue them up and Instant Watch. It usually remembers where you left off if you quit and come back, though sometimes it doesn’t even register what you just watched.

I’m still finding that about 1 out of every 4 movies I look up is DVD-only (or not available at all), but honestly, I have just been firing up HandBrake and ripping anything Netflix sent me in the mail, so I can watch it on the iPad streaming over my next favorite app.

Air Video

I’ve never been a fan of having iTunes manage movies and tv shows. It means the media has to live on my main drive, and has to go through ridiculously slow conversions, then synced to live on my space-limited iOS device. I much prefer to put movies on a large external drive and stream as needed. Air Video does just this, and it does it surprisingly well.


You run a small program on your Mac, tell it which drives to broadcast to the iOS apps via Bonjour, and it can either queue up conversions or send movies over the air on-the-fly (essentially a nice wrapper for ffmpeg). The videos stream in good quality and support subtitles if present, and it will remember your spot on the last-viewed movie. I’d love to see a bit more attention to the file listings, like a recently played list, folders listed above files, a jump-to-letter scroller like in Contacts/iPod, and a sort-by-date option that actually works. I don’t know what the hell kind of metadata it’s using, but sort-by-date doesn’t match up with Finder at all. It would also be great if there was a desktop player that shared your last-played position with the streaming server.

The lack of in-the-cloud sync and streaming are arguably the biggest weaknesses and possibly an achilles heel in Apple’s current tenuous stronghold on the smartphone market. It hasn’t hurt them much so far, and it’s no doubt the slow-to-no development was largely influenced by licensing issues with record label dinosaurs who fight tooth and nail at every technological advance. It feels like something’s going to change soon, however. There are rumors bubbling about MobileMe finally becoming a usable service, possibly freemium. In the meantime, services like Dropbox and apps like Air Video are filling in the gaps.


Much like the iPhone, from the very start Safari has been the killer app. I remember being amazed using Opera Mini on my tiny 1.5” Sony Ericsson screen, clicking around with my d-pad and zooming in for poorly rendered text. Switching to Mobile Safari was like stepping off a skateboard into a BMW. Full websites with javascript and CSS support at a usable speed in a handheld device? It still blows my mind.


I’m a big fan of gmail, and Google has put a lot of energy behind both the iPhone and iPad versions. Of course, any HTML5-happy mobile device now benefits from their efforts. It’s so good that I use web gmail over the native Apple Mail, even on the desktop. It’s a huge selling point for the iPad to be a very capable (and daresay fun) email device.


I played games quite a bit as a kid, from Intellivision and Commodore 64 to Amiga and Nintendo. However, most of the newer game consoles don’t do too much for me. Like movies, the gaming industry frequently lets cutting-edge graphics trump interesting story or gameplay. The Nintendo DS and iPhone have come along to tap into a sleeping market of many old-fashioned gamers like myself. Limited hardware caused developers to once again focus on making games fun without relying solely on dazzling eye candy.


Details on the games I like could easily fill another post, so I’ll keep it to a tiny list of favs: Jet Car Stunts (iPhone-only, but this game is pretty far & away my favorite iOS game right now), Scrabble, The IncidentgeoDefenseCanabalt, Katamari, Pinball HD and Eliss to name a few. As you can see in the screengrab I have more in another folder, and there are two more folders of iPhone-specific games on the next screen .. oof!



I understand many folks initial reaction to the iPad — where does this fit in? What’s the point? I’ve found I use it most at night in bed, watching a movie, checking email and blogs, and reading using the iBooks and Kindle apps. When I’m ready to crash, I load up the Public Radio app with come classical music and set it to sleep in 30 minutes. Similarly, I start the day checking email and flickr. It’s come in handy for displaying recipes (the Epicurious app is free and well done), scrollable by elbow while being more resilient to flour and random food debris than my laptop.

Yet another post could also be dedicated to music-making apps, there are a ton in the app store, but I wanted to mention a recent favorite find (no iPad-specific version, but still great): nanoloop. You might recognize that name from the old gameboy cartridge version.

I’m not even touching on an aspect that many folks have championed: the iPad is a social device. It’s great for handing around to folks in a room to look at photos, a YouTube video, or a website. I’ve only experienced this a few times since I rarely take my iPad out, but when it happens, you realize it’s a use we aren’t really accustomed to with computers. I’m sure this will be explored more in time, especially once Apple implements support for multiple users.

In short, after almost a year of use, I find myself using the iPad more and more, discovering new uses as apps are developed. It’s hard to pinpoint exactly what makes it so fun to use, but the seeming hyperbole of Apple’s description as “magical and revolutionary” doesn’t seem too far off for once.

#apple #apps #ios #ipad

Coding Ye Olde Todo App

Microcosm asked to add a todo section to their admin, and this is what I came up with after a few half-days of coding (thanks in large part to my good friend MooTools). They have two shops and a growing staff, and everybody spends quite a bit of time in the admin I built for them.

I’m a huge fan of The Hit List, which I believe is just about as perfect a task manager as you could ask for, and I obviously borrowed some ideas. If I had more time to fuss with this, and if it was something I’d be using regularly, I’d implement full keyboard control and mimic The Hit List even more.

Todo apps feel like the advanced “Hello, World” of programming exercises, akin to Tetris for game developers. I can’t believe it took me this long to get to make one.

#javascript #coding #screencast

The Age of Entitlement or Why Hasn’t the Hammer Been Updated? It’s been 32,000 years already!

Developers must be seriously ambivalent about their users now being able to purchase and update software over the web. Gone are the days when you sweated a bug-free shipping release that was pressed to a permanent medium, boxed up and set out on shelves. Release early and release often is the new chant of the user, especially the latter part. That and “I can’t live without the auto-syncing iPhone companion app!”

Users are also often demanding that the programmers join the social web revolution, broadcasting their progress in regular blog or twitter updates. A month of silence is inexcusable, 3 months is justification to jump ship, 6 months is proof of vaporware, and anything beyond that is a dire personal insult to each and every user hungry for features that “every other competitor already has.”

Two of my favorite programs on OS X, TextMate and The Hit List, seem to attract the loudest of these users. And yet, they’re both amazingly functional, almost perfectly so, in their current releases. Granted, the Hit List folks are mostly angry about the iPhone version that’s apparently been in private beta for some time, but there are also a number of users vocally upset that the dev is focusing elsewhere instead of posting further updates to the desktop version.

"Software is just a tool to make our life or job easier but nothing is irreplaceable." - from The Hit List User Group

Many users have given up waiting for The Hit List iPhone app and jumped ship to Things, which had its own similar fiasco, yet in reverse — users were up in arms when Cultured Code chose to focus on releasing their iPhone companion app before their desktop version was usably out of beta. To add insult to impudence, the original iPhone version was just as buggy when it finally came out. User revolt got so out of hand they completely wiped out their forum, after initially hiding it from their navigation.

Another promising program that has developers who are quiet on the web and slow in their updates, with an accompanying torch-wielding mob of angry users, is MacRabbit’s Espresso. I picked up The Hit List and Espresso in the last MacHeist bundle for a piddly $35, so I feel like I have no right to complain, but I’m seemingly alone with that opinion. I agree to the extent that Espresso was obviously rushed to v1.0 for MacHeist, and although it definitely holds a lot of promise, it does have deceiving claims on their feature list: live preview does not work on anything but locally hosted pages for one. MacRabbit similarly hid their forums from their main site navigation, but it still exists.

TextMate Nuke ‘Em v2.0

It’s been almost three years since Allan Odgaard warned TextMate users to “put TM 2.0 up there with Duke Nukem Forever and be positively surprised the day it is released.” Yet, folks to this day post rudely passive aggressive comments on any little post he manages to eke out on the Macromates Blog. You’d think they’d have given up by now.

The improvements I’d love to see in a new TextMate are hinted at in Espresso, but far from being realized. Primarily I’d enjoy a more seamless way to edit CSS, perhaps elements of FireBug hooked into the editor, allowing you to dive right into specific style rules, or lines in a javascript file. I can’t quite picture how this would work, but it would definitely simplify my jumping from TextMate (code) to Firefox/FireBug (live debugging) to ForkLift (SFTP) to Terminal (svn) and back for every little change. Some might recommend Coda and/or CSSEdit (which I have a license for), but neither worked well for me. If nothing else, removing TextMate from my workflow just wasn’t worth it.

Despite these desires to see future updates, I have a perfectly functional set of software that I trialed before purchasing. I don’t feel the developer owes me anything but essential bug fixes. Beyond that, I consider any updates a gift, and they should feel free to get the hell off the computer, travel around and booze it up, spending whatever scratch they managed to squeeze out of the competitive software market.

#espresso #osx #software #textmate #thehitlist