Return to Seattle

March 21, 2013
Comments

Lake Mary to Seattle

Working Concept is now officially back in Seattle! I’m excited to be setting up a studio space in the historic and really cool Inscape Building with Bryan Wilson and Scott Thiessen.

It’s exhilarating to be in good company and back on the west coast.

SmartStart WordPress Theme Fix

January 31, 2013
Comments

This is an oddly-specific post that I’m leaving here just in case my blog can better focus on the issue than ThemeForest’s flat comments1.

A rather common problem with the SmartStart Responsive HTML5 WordPress theme is that upon upgrading to WordPress 3.5, the site will suddenly start throwing an error on portfolio pages:

Warning: array_count_values() [function.array-count-values]: Can only count STRING and INTEGER values! in (...)/themes/smartstart/functions/custom-functions.php on line 640

A quick fix that drops the error and seems to leave everything in good order is to wipe out a line that tries to count something that’s not there. You can do this by opening smartstart/functions/custom-functions.php in a text editor (it’s okay if PHP seems scary) and finding line 640. You’re looking for this part:

$slide_types = array_count_values( $project_slider[0][0] );

And you’ll want to change it to look like this…

//$slide_types = array_count_values( $project_slider[0][0] );
$slide_types = 0;

Don’t forget to save your file! By adding two forward slashes in front of the original line you’re just commenting it out and telling WordPress to ignore it, so if you have any problems you can easily undo your change.

I hope this helps if anybody finds it! My original post is on page 87 of the theme’s discussion thread.


  1. Flat comments seem pretty lame since the discussion areas often act like support forums, and many helpful bug reports and solutions get buried. 

Glasses

January 13, 2013
Comments

Warning: I usually save personal posts for my private journal, but I feel like I should share this reflection at the risk of boring both my readers more than usual.

I got my first pair of glasses this week and I’m amazed at the literal change in perspective. My unaided vision isn’t horrible, but years in front of glowing rectangles have started to bear noticeable effect. On top of this, my eyes apparently have varying astigmatisms – meaning the wacky curvature of my eyeballs results in distortion. I had no idea, of course, because I’ve had my life thus far to adjust. Adding corrective lenses, however, is a headache: my “corrected” field of vision falls off more sharply and artificially to the left, so everything on my monitor is warped by a bizarre, horizontal gravity. Every close, flat surface tapers to follow a new and uncomfortable perspective. My world is suddenly crisp, richly detailed, and disturbingly shifted.

Here’s the cool part though: this is temporary because my brain will adjust. I’m already less distracted by the frames on my face, and after a few days my brain should adapt to signals that are different from those it’s been interpreting my whole life. How cool is that?

By positioning some shaped polycarbonate in front of my eyes, my quality of life improves. The hardware update does not require any software change. Sometimes I’m frustrated with the limitations of my own brain, and I forget that it’s a marvelous and powerful thing whether I appreciate it or not.

Page Layers

January 8, 2013
Comments

One discovery this week needn’t be a secret: it’s an app called Page Layers, and it’s already making my life easier.

Often I’ll need to put together mockups of an existing web page, and I’ll start by taking screenshots and breaking them up in Photoshop. This can take a significant chunk of time, and gets excessively annoying should the site’s content change during the Photoshop spree.

Page Layers solves both problems quickly and simply: feed it a URL and it’ll capture a screenshot like Paparazzi and similar programs. The critical difference is that it’ll allow you to save a layered PSD file, whose folder names and hierarchy come directly from the page markup. All text gets flattened, and if a particular element needs to be further separated it’s as simple as adding a span element before running through Page Layers. It’s, simple, smart, and surprisingly fast even on my mid-2009 MacBook Pro.

While there may already be a less primitive way to jump-start Photoshop mockups of existing pages, Page Layers has already been a helpful addition to my workflow. It fits a niche role, but works its reliable magic just as well as I’d hoped.

It’s available on the Mac App Store for $33.99, which I’d call pricey if the time saved didn’t more than justify the price.

[link] Design is Not Veneer

December 29, 2012
Comments

I’ve been moved by this article I came across today, which passionately clarifies the vast difference between design and decorating with enviable brevity and resolve. The implications are beyond design or any particular commercial endeavor, though the focus is on web design.

In other words, please read this. Aral Balkan: Design is not veneer.

Script: Copy Harvest Timesheet

December 11, 2012
Comments

In March of this year, I left Billings for the more cloud-friendly Harvest time tracking and invoicing service. It was an excellent choice, and the only complaint I’ve had is that recently I’ll have to log in every day to duplicate the previous day’s Timesheet, making my usual billable buckets available and ready to go.

Since this is an annoying and painfully redundant task, I decided to cut it down to a script I can run with Alfred. For this, I’m using some simple PHP to execute commands via the Harvest API. I simply choose my new “Harvest - Duplicate Timesheet” command, a few seconds pass, and then the browser opens to my current Timesheet to confirm that all went well.

What This Does

  1. Searches a day at a time into the past (from today) to find the last-used Timesheet. I’ve limited the search to 10 days so we don’t get an infinite loop – you may need to adjust if you rarely work or take long vacations.
  2. Duplicates each item from the last sheet onto today’s, with 0 hours.
  3. Toggles the last timer. By default, the last timer will start out running. By toggling it, our new Timesheet will be ready to go with no items running.

What This Doesn’t Do

Anything else. I made it for myself, and you’re free to improve it – it won’t be friendly warning you about invalid credentials or telling you that it can’t find a last-used Timesheet within the search period.

On the plus side, it would also have a hard time screwing anything up. It doesn’t modify existing data, it doesn’t delete anything, and it doesn’t change any timers. It’s pretty simple.

I guess I have to remind you that I offer no warranty, and should you ruin everything and blow up the planet while playing with my humble PHP, it’s not my fault.

Making It Go (Three Steps)

1. Grab the Script

Clone or save this PHP, add your account credentials, and put it somewhere that it can be called upon. (I have a Google Drive folder of scripts, for example, which I can conveniently run with the same path on any machine.)

2. Create an Alfred Trigger

You could do this with cron so it’d be totally automated, but for some reason I still prefer Alfred.

  1. Open Alfred’s Extensions preference pane.
  2. Click the little “+” (bottom left) to create a new Shell Script.
  3. Add some basic information, a title, description, and choose a keyword that you like. I run this silently, but this is your choice of course.
  4. In the Command box, add… php ~/path/to/your/harvest-duplicate-timesheet.php
    open https://shortname.harvestapp.com/time
    Change the path and account shortname to reflect your own details.
  5. Save.

3. Run it!

Use your new trigger, and if all goes well you’ll just wait a few seconds and your freshly-copied Timesheet will be staring right back at you from the browser.