New Albina Development Site

This week I finally decided to put together a new site for my company using just HTML, CSS and Photoshop. I’d been hosting it using Squarespace, but it felt like a really heavy solution for a static site. I also never felt as though I could get far enough away from it looking like a template — although I’m sure someone with more CSS skills could. Mostly though, the biggest reason is that I was never totally comfortable not owning every part of my site, and wanted the entire thing on my Mac.

Since I haven’t made any web sites by hand in a long time, I learned a lot — I’m also sure I got some things wrong and will need to tweak it over time. I found that using Coda and BBEdit helped the whole thing come together pretty easily.

Coda is great because the auto-complete works so well, and the CSS editor was really helpful. It’s also nice having everything in one app. The BBEdit features that helped the most were letting me keep all of my related files in a project and search globally across them.

The one thing that really struck me with doing it this way was how much it’s similar to, but not like programming.

Preview Current BBEdit Document Using Marked

I’m a big fan of Brett Terptra’s app Marked for showing Markdown previews while writing in another app. Since I’ve been using BBEdit more for writing Markdown, I’ve wanted a way to preview the current document without leaving the app, so I took a few minutes to write an AppleScript which does that. If you haven’t previously saved the document, you’ll be prompted to. Once the document’s on disk it’ll open up in Marked.

Add it your [!~/Library or ~/Dropbox]/Application Support/BBEdit/Scripts/ to launch it from the scripts menu in BBedit, or using script launching app like Alfred or Launchbar.

Closeby 1.0

A new app I created called Closeby is now available on the App Store. It uses your address book to tell you how far you are from people you’ve saved addresses for. Closeby is great if you’re visiting a town you don’t live in, are stumbling home from a bar and need the closest couch to crash on (I take no responsibility for the damage this does to your personal relationships), or just want to see all your friends addresses on a map.

Manton’s Follow-Up on Sandboxing

Manton Reece, on sandboxing for Mac apps:

I’ll admit I have some regret leaving the Mac App Store. It’s just so convenient for purchasing and installation. If I’m going to make this work, I’ll have to redesign my own rather clunky purchase and activation experience. And I’ll have to do a much better job of marketing, something that has not been easy with Clipstart.

I don’t envy anyone who’s facing this problem. I feel like Apple needs to rethink what they’re trying to do with Sandboxing; giving developers more time is not the answer. The problem is that to many useful apps just aren’t going to work with sandboxing, and others are going to need to compromise their users experience in order to accommodate it. I think of Apple has a company who puts the experience of their users first. Forcing apps to fit into a mold this restrictive is forcing them to implement work arounds for things that were never a design problem to begin with, or be left out of the biggest venue to get their app in front of the majority of users.

Xcode Build Script for Automatically Updating CFBundleVersion

Since Git doesn’t create numeric build numbers, I haven’t known exactly what to do with my app’s bundle version (CFBundleVersion) since switching to it. According to Apple CFBundleVersion needs to be “a monotonically increased string, comprised of one or more period-separated integers.” My previous (bad) solution was to sort of ignore this and just update when I release a new version. Now that I’ve started using Hockey for beta relases, it requires a unique number for every build, so I need to start paying more attention to it. It’s for the best since it’s better to give this number some significance.

I didn’t want to have to update this manually every time I send a beta build, so I started looking for an Xcode build script that could generate something like this for my ad hoc and App Store builds. Since I didn’t really like any of the code I saw, I decided to write my own using Python, and while I was at it set it to also commit and tag the build in Git.

You can add this as a “Run Script” build phase in Xcode (make sure you set the shell to /usr/bin/python). The only line you should need to update is configurations_list = ['Beta', 'App Store'] to be the names of the configurations you want this to run under. You’ll also need to set your CFBundleVersion to a start point that’s a whole number (0 for example). If you want this to work with a different SCM, just update the os.system lines to run the right commands for your system (or take them out all together if you don’t want that feature at all). For a configuration called App Store, I have the commit message set to be “Automated Commit For Build 25. Configuration: App Store.”, and the tag to be “AppStore_25”. You can change that if you like.

Of course, I take no responsibility if anything bad happens to your project, but it seems to be working great for mine.

Update: There’s a bug where this will cause simulator builds to fail if you don’t set your “Mac OS X Deployment Target” to 10.7 in your build settings.