Andy Laub

Andy Laub is a designer & developer in the Twin Cities.

Published Jul 10

The Fourth Kind »

Buying a new phone is definitely an easier decision for me nowadays.

My iPhone 4 arrived two weeks ago while, fittingly, I was in the middle of what would be my final phone call from my iPhone 3G. I was caught somewhat off guard, as I hadn’t been following FedEx as closely as I sometimes do and it was arriving nearly a week before schedule. I managed to make it through the rest of the call without any sort of drooling or heaving breathing so I feel like I handled the whole situation pretty well.

The unboxing process was nice enough but I wasn’t nearly as excited about this iPhone as I had been about the 3G, mainly because I didn’t expect this transition to be nearly as drastic. I was both right and wrong about this, in a good way, so let’s break it down:


This – THIS – is what an iPhone should look like. I liked the original aluminum iPhone, and very much disliked the glossy plastic 3G and 3GS so this new design is a very welcome change.

Unsurprisingly, it feels great to hold – Apple has few peers in this area. In recent history their influence over competitors’ designs is somewhat obvious, but photos can’t portray just how big the difference in build quality is. At the risk of stepping into fanboy territory, it’s often the difference between buying a gadget and a functional work of art.

Interestingly, I did run up against what is mostly a psychological problem when setting the phone down. In a situation where I’m about to put the phone on a desk or other flat surface, I’d tend to hold it with my thumb on the left, four fingers on the right, and the screen facing up. The curved back of the iPhone 3G meant that the back of the phone would make contact before my fingers, so I could then release. The flat back of the iPhone 4 results in the opposite, meaning I either have to reposition my fingers or “drop” it slightly. I wouldn’t go so far as to call it an issue as it doesn’t result in any harm to the phone; it’s just an oddity.


I found the initial startup to be a little underwhelming, actually. I think there was a lot of buildup for the Retina display and at first I didn’t notice a tremendous improvement. It is definitely nicer – a little whiter and a lot sharper, but it’s something that requires a slightly closer look for me to really appreciate. Where the difference is most pronounced for me is the app icons, as some of them are still formatted only for the old resolution and are quite grainy as a result.

What I wasn’t expecting was for the increase in performance to be so noticeable. Everything is significantly faster than on my old phone, but for me the two most useful instances of this are:

  1. The camera. It still takes a couple seconds to launch, but shutter actuation is much, much faster. It could still benefit from a bigger lens, but so could every camera ever made.
  2. Wifi. Locking the iPhone 3G would result in a loss of wifi (understandable), but it would take its sweet time reconnecting when unlocked. Not so with the iPhone 4, which retains a wifi connection even while locked (presumably for short periods of time) or reconnects almost instantly when unlocked.

The wifi in particular is an example of what Apple does well: continually refining things that were already okay until they’re great. The 3G’s wifi performance was a little annoying at times, but it wasn’t a situation where identical behavior from the iPhone 4 would’ve prevented a purchase. The newfound responsiveness has been particularly useful when using Touchpad, the remote app for our Windows Media PC.


I may be a fanboy, but I’m not so rabid as to admit that Apple’s devices don’t have their flaws. In this case, though, I think the nits I have to pick are mainly software-based except for two, both of which are self-explanatory:

  1. More storage is always better.
  2. The camera could be better still.

Even iOS 4 is pretty solid, in that it would take me a fair amount of time to remember and compile any of the complaints I would’ve had. The only one I can think of off the top of my head is with Apple’s implementation of Facetime. I certainly understand their reasoning for putting it front and center within the in-call menu, but they did so at the expense of the hold button. This resulted in a panic when I tried to put a call on hold the first time, and the end result was not pretty.

There’s been some coverage of this already, with the “official” response from Apple being that hold is just a glorified mute button. I get that, and now that I realize there even is a mute button I find myself a bit less peeved by the whole thing. The obvious question becomes: why did the two exist in the first place?

Also, I guess they’re having antenna problems or something? I wouldn’t really know as I haven’t experienced any.

And finally, still no 3G around here. Just go suck a dick, AT&T – you guys are terrible. On that note, though, I am now on the new DataPlus plan so I don’t feel like I’m being totally robbed every month. I guess that’s an advantage.

Sixteen Candles »

I just realized I never wrote a leader for this post, so here goes: nerdery abounds at redesign time.

JQuery. I’m pretty sure that’s where this all started. A few months ago I redid my work site in effort to add a little more, well, pop. In doing so I had a little discussion with JQuery and we decided that it would be fun to hang out some more. Since then it’s been finding its way into more and more of my projects, as it’s proven to be remarkably useful.

As I become more familiar with it, it’s easier for me to see what it’s capable of (hint: everything), and as a result I started thinking about a redesign of this blog in an effort to completely and utterly abuse integrate some of those capabilities. As work progressed, I realized there were some other bullet points I’ve been wanting to hit as well. Here’s the laundry list:


Like I said. In this case I’m using it mainly for the archive dropdown and the endless scrolling on listing pages. I played with some concepts that involved more horizontal scrolling, but decided to ultimately go a different direction.


I’ve been basing the various iterations of this blog off of grids for a long time, but this is the first time in awhile where said grid hasn’t been dictated by Flickr. In this case I decided to try a 960 grid system and ended up using a 16 column grid here, with each column equaling 50px with a 10px gutter. I used this CSS generator to develop the initial CSS.

I’m debating whether I’d use this technique if I were to do it all again as I had a couple of hangups with the process:

  • I didn’t love the naming conventions for the various classes; I ended up replacing all the underscores with dashes because that’s what I’ve become accustomed to using in my CSS.
  • The system falters somewhat if you’re floating multiple blocks inside of a larger block (for example, three .grid-3‘s in a .grid-9. You need to add .omega (to remove the right margin) to the last block in the line, which doesn’t bode particularly well for dynamically-generated content.
  • It seems like an excessive amount of markup in general. Then again, I suppose that comes with the territory in a system that’s attempting to be somewhat universal.
Dynamic Stylesheets

I’ve been wanting to experiment with adding constants to my CSS files for some time now. One way of doing this is with LESS, a Ruby gem (also available as a WordPress plugin, thankfully). LESS basically allows you to define constants and nest classes within your stylesheets, which is a tremendously useful concept.

But in short, I hated it. I attribute part of this to the fact that I had already been messing with PHP as a way to dynamicize my CSS, but the LESS system ended up being a little too clunky for me to find useful:

  • LESS does math, and that’s great. Except when it tries to divide my shorthand font declarations, and as a result the entire CSS becomes null and void.
  • It seems that commas are no less of a hurdle, as I found LESS to stumble when I was trying to define the same set of properties for two different elements.
  • As I mentioned, any issue with syntax will cause the entire stylesheet to be totally dysfunctional with no indication of what the problem is.

I ended including the CSS in PHP form, which has functioned in a much more predictable manner.

Color Editing

This is the third version of mine to feature theme-editable colors. In this case, though, I ended up going a slightly different route. I had been using a variation of the functions.php file from the old default Kubrick theme, which writes custom CSS in the header of the HTML to define the chosen color. Instead of that, I decided to make use of my newly-created PHP CSS and pass that new color to the CSS via a URL variable. Much cleaner.

In addition, I decided to make light and dark stylesheets from the get-go, which I can also switch from the admin.

Mobile Friendly(ish)

I’ve been watching with interest the recent developments in “responsive web design”. As such I decided to define an alternate version of the site for mobile devices and viewports smaller than the width of the normal site. It’s an early effort, but I’m pleased with it for now and like the rest of these points, it’s experience that I can carry forward to future projects.

And More Less

From a content standpoint, I really wanted to simplify my own presentation of myself. I decided to eliminate the “about” page for the first time in basically ever, opting instead to let my various (side) projects and social networks do the talking.

From a contact standpoint, you may notice that the comment form is no more. Existing comments have been preserved, but the ability to comment has been disabled (for now, at least). Same goes for the contact form, for similar reasons: anybody who wants to discuss an article or get in touch is someone I likely already talk to on a regular basis (or someone I would talk to). I get the whole public discourse thing, believe me, but that happens so rarely here that I felt it was no longer worth the inclusion.

So that’s it! Let me know what you think OH WAIT YOU CAN’T.

Sleepless »

There's a fine line between "motivated" and "crazy"; for me it occurs at six in the morning.

I’m generally pretty consistent in my sleeping habits, becoming somewhat functional around 8 AM and calling it a day by around midnight. This is a slightly updated, delayed version of what used to be; a side effect of a new work situation and sharing a house with a teacher on summer break.

Sometimes there are bonus days, where I’m awake (and by that I mean actually ready to be finished sleeping versus being reminded by the cat that “hey it’s been nearly twelve hours since I’ve had food and I thought maybe you’d forgotten to feed us even though never once has that ever happened.”) well before usual, and I find that’s a great time to accomplish things. There are always things to accomplish when the internet is involved.

This is awesome when it happens in the morning. On the other hand there are times when I wake up during what I would consider to be “the middle of the goddamn night” for no conceivable reason, where it’s simply too early not to try to go back to sleep because anything else borders on dysfunction. Then you get blog posts like this.

Philosophy »

I just realized I never wrote this down.

When my life as an employee was coming to an end it gave me some time to think about exactly what led to my overall frustration and that would contrast with my new life as a business.

The conclusion I reached turned out to be relatively simple. Your working life is about projects, and the relative success of each affects your self-esteem and work ethic. In my case, those projects were websites, and my metric for success was “does this finished site make me happy?” While there are some I am distinctly proud of, they are decidedly the minority; beacons of light in an otherwise hazy ocean.

However, when you become a business, the business becomes your project, and what used to be projects become tasks to further the progress of that project. The previous metric of success for individual tasks is no longer the deciding factor in your happiness; instead, you’re happy when:

  1. You have more work to do.
  2. Your client is happy, because it begets #1.

For me, it’s as simple as that. When you can be proud of an individual project, that’s a bonus.