Font Smoothing

If you're really into icon fonts, which I have recently become, you may have noticed a tiny storm brewing in the suburbs of the internet. It's about CSS-specified font smoothing. Quite a nichy topic, one you can live a perfectly good life without ever knowing all about. You may in fact sleep better by not reading on.

Still here? Alright, here's the deal. WebKit — born of Safari, engine of Chrome — allows webdevelopers to specify how the edges of fonts are smoothed. The modern default font smoothing method is called subpixel antialiasing. It smoothes font edges using quite impressive means, and in nearly all cases it drastically improves the rendering of letters. If you look at the text in a magnifying glass, though, you'll notice a nearly imperceptible blue haze on the left side of each letter, and a red haze on the right side. WebKit provides a means for webdevelopers to pick which type of font smoothing is applied: subpixel-antialiasing, antialiasing, or none. Handy. Right?

The controversy is the fact that a number of people — smart people — feel that this CSS property is damaging to the readability of text on the web. There are very long articles on the topic. In fact quite recently a Google employee removed the CSS property from Chrome, citing the notion that the browser should render text according to the operating system. There's just one problem: icon fonts.

Icon fonts are custom-made webfonts that contain no letters, only icons. The purpose is to have fast access to a bunch of icons in a very lightweight and easy way in your webdesigns. Other benefits include the fact that the icons are infinitely scalable because they're vector graphics, and you can easily apply any color, drop-shadow or even a gradient to each icon using plain CSS. Sounds brilliant, doesn't it?

The only downside is that an icon font is still technically a font, so the computer thinks each icon is actually a letter, and by default will try to subpixel antialias it. While subpixel antialiasing does wonders to letters, it'll fuzzy up your icons and make them look blurry. Which is why the -webkit-font-smoothing property was so welcome. Here's an icon font without and with subpixel antialiasing:

As you can imagine, I'm strongly in favor of not only keeping the font-smoothing property, but in fact expanding it beyond WebKit to both Firefox and Internet Explorer. Icon fonts won't be a truly viable webdesign technique until every icon looks great on all the platforms.

"But SVG is the future of vector graphics on the web, surely you know that!" — Yes I do. But pragmatically speaking, that future is not here yet. SVG support is still lacklustre, especially when used as CSS backgrounds. More importantly, you can't easily change the color of an SVG icon using CSS only, or apply a drop-shadow. Yes, drop-shadows are on the road map for SVG, but the way it'll happen is not pretty. Icon fonts, on the other hand, provide a real-world solution today, which is both flexible and infinitely scalable. So next time you see someone bad-mouthing -webkit-font-smoothing, pat them on the head and mention icon fonts. The more you know.

Lucasfilm

By now you may have heard that Disney bought Lucasfilm. Incidentally that means they get Star Wars, Indiana Jones and Howard the Duck. It also means they get Lucasarts, the game studio that brought us Monkey Island, X-Wing, Day of the Tentacle and all the other wonderful games from your youth. Oh, and they're making Star Wars Episode 7, due 2015.

Absorbing the initial brunt of the shock that Lucas would ever sell the darling cow he's been milking for all these years, this may not all be bad. Sure, Disney's track record for big franchises is spotty, recently with John Carter, but it may still be a good home for Lucasfilm. After all, the Star Wars movies went downhill by the middle of Episode 6 anyway, so by the time Episode 7 comes, no matter how bad it'll be, there's no telling if it would've been better off headed by George Lucas himself.

To me, what happens to Star Wars is not the thing I care about the most in todays news. I've always thought that what came out of Star Wars other than the movies, was more interesting. Perhaps you didn't enjoy Episode 1, but it's hard to fault the music. It's also possible you cringed your feet in Episode 2, but there's a good chance you played a Lucasarts Star Wars game and enjoyed it a fair bit. In fact, the stories in the expanded Star Wars universe have always fascinated me more than the movies themselves. How do you build a lightsaber again? Oh, and did I mention the wonderful Ralph McQuarrie and Doug Chiang art?

There's also Indiana Jones, probably my favorite thing to come out of Lucasfilm. Heck, I even enjoyed the fourth one, and I was certainly looking forward to 5. Unfortunately, that may not be in the cards anymore:

While the Indiana Jones franchise wasn't mentioned much, Disney did say that though it now owns the rights, there might not be any new films because of potential hurdles with Indiana Jones distributor Paramount.

Even worse news for Lucasarts fans:

Disney CEO Robert Iger briefly discussed Disney's plans for game development using the intellectual properties acquired in the acquisition, saying, "We're likely to focus more on social and mobile than we are on console. We'll look opportunistically at console, most likely in licensing rather than publishing, but we think that given the nature of these characters and how well known they are, and the storytelling, that they lend themselves quite nicely, as they've already demonstrated to the other platforms."

It's impossible to tell whether George Lucas, had he kept the family business, would've seen the light and restored Lucasarts to its former glory, in fact it's probably unlikely. But there were plans for Indy 5, which I would've very much loved to see. So if you're fans of either of those, it seems todays news wasn't a new hope.

Honestly Flat

The authors of LayerVault blog about the flat design era — a move towards simpler UI design with fewer bevels and textures and more flatness. I endorse this movement too much to let this pass me by without comment.

While one side of the mouth yells “good design is how it works,” the other side mumbles that great aesthetics mean realism. It doesn’t need to be this way. Designing honestly means recognizing that things you can do with screens and input devices can’t be done with physical objects — more importantly that we shouldn’t try copying them. It takes too much for granted. Can you imagine your pristine iPhone built into the body of an antique telephone handset? Is that beautiful design?

I really can't help but agree with these points, but I'm thinking perhaps they're overthinking it. Having been in this business for over a decade now (yep, I'm old), I feel like I've arrived at a couple of simple truths. One of them I arrived at reluctantly, and it took a while to accept it. It's the notion that there's no such thing as good UI design, there's only bad UI design.

To elaborate: when you see a good design, chances are you don't notice it. Because it's a good design, it's already set you on your way to your next destination, offering a clean and simple path on your journey. On the flipside, a bad design has you stumble in your tracks, wondering — where's the phone number for this restaurant? Whether the UI design is full of linen does not necessarily matter (( I hate myself for actually saying that, because the linen texture is the worst )), what matters is that you found what you were looking for with the least possible friction. The point is: good design is good design, no matter how you arrive at it.

Aside from good design and bad design, there's also the design that creates an emotional connection within you. Not only does it step in the background when you have a specific goal, but it will reach inside you and shake something when you don't know where you're going. I'm not sure textures, bevels, or even glorious flatness does this. In my experience, only tone, can do this. The tone of your wording, phrasing, or even your kooky layout may incite a smile in your viewer, and your large personal photos may tug at a heartstring somewhere. So it's about being personal, and the best way I know to do this is to let the content shine.

Because of these two lessons — design to help the user on with their journey, and let content shine — my love-affair with gloriously flat UI design is not so much a matter of being honest as it is a matter of getting to that point where you're feeling the design you're working on, as fast as possible. Any big design project is borne of agony and a feeling of insufficiency. The more pieces you put in play, the more functionality you sketch out, the faster those feelings subside until at some point they turn into pride.

If I start my process with a canvas of linen, I'll have already limited my playing field into a very narrow path that's needlessly hard to find and follow.

For me, keeping things flat for as long as possible is like leaving your body and seeing your project from high above. Suddenly the answer to the question: "should I put a linen texture here?" becomes easy. That answer is that it doesn't matter. So I usually leave it out.

Unlikely Grooves

They just don't make saturday morning cartoon soundtracks like they used to. If you manage to not throw up on the visuals, enjoy them crunchy grooves:

Buck Rogers was also full of disco-dancing music:

The above is from the episode Space Rockers, which I'm convinced Daft Punk were inspired by.

Make your SSH keys work in Coda 2

This post is authored for Google, to help out others searching for solutions to Coda 2’s SSH woes.

Since Coda 2 was released, 2.0.1 and 2.0.2 have made strides to improve things, so upgrading is your first step. If you’re still experiencing trouble with Coda accepting your SSH keys, and/or get error messages such as “unable to extract public key from private key file”, try this:

  1. Set up your site as usual — enter username, servername and so on
  2. Click the key icon next to the password box to manually point to the id_rsa key-file (which I’d assume you’ve stored in ~/.ssh)
  3. Check the box “Ask each time”
  4. Save site, connect;  when asked, input SSH key password in the prompt
  5. Behold how it connects
  6. Disconnect, edit site, uncheck “Prompt everytime”

Let me know if the above works for you, it worked for me.

Why are you revving your engine?

On my way home from work today, I stopped my bicycle at a red light. There was a scooter right next to me, also awaiting the green light. I noticed the chauffeur (is that the right word? I don't think so) had his right hand on the speeder. Revving. Wroom. Wroom. Wroom. Wroom. Wroom. On and on, like a nervous tick. Surely the scooter is recent enough that he doesn't need to rev his engine to keep it from going out, I thought to myself. It wasn't a particularly cool scooter — it was the type of scooter that'll make most casual observers think "man what a lazy person, why aren't you on your bike instead?"

It's fine. It was in the middle of downtown. I had a podcast in my ear, and cars were going by. The noise level was measured in enough decibels that I wasn't worried about falling asleep at the wheel; a little noise from a constantly revved engine like that will surely blend into white noise, I thought.

And it should have, but this pointless revving reminded of a motorcyclist who lives in the building across from me (fortunately not for long). I'm pretty sure he suffers from a severe case of douchebag-itis, enough that he should at least have it checked by a doctor (if you don't treat douchebag-itis early, you might end up buying a Porsche Cayenne!). Now this motorcyclist constantly revs the engine, to a point where I'm pretty sure it affects the performance of his driving — it's really quite ridiculous. Alas, this happens even when there are sleeping babies around. Of which I have one. That is, she's sleeping some of the time. She's not when he's revving his engine.

The difference between a motorcycle and a scooter is that one of them makes an engine-noise that could theoretically be satisfying to the part of the population that has octane in their blood. Theoretically. When I muster all the testosterone that I can, testosterone that's usually busy making me an exoskeleton for my daughter, I can sort of understand this.

I can't understand revving the engine on a scooter. Because scooters are not, and do not sound, cool. Ever. If you looked up cool in the dictionary, you'd see a picture of Miles Davis. Not a scooter. Not Miles Davis on a scooter. There would be no scooters nearby. No presentations discussing the birth of the cool would mention scooters.

So please dear scooterist, answer me this: why are you revving your engine?

Trust me. I looked long and hard for a "my other mode of transportation is a Millennium Falcon" bumper sticker on the scooter. Because yeah, revving the Millennium Falcon, that's cool bra', yo dawg). Unfortunately, such a sticker was nowhere to be found. I could only see an itsy bitsy engine, making loud noises by the rhythmic revving. I meant to chuckle, but I was baffled chuckleless.

Parentology

Parenthood is a club. Not necessarily a prestigious or elitist club, just a club. Like nerds really into Settlers of Catan, so do parents share a profound, mystical understanding. No, it's not that non-parents aren't welcome into this club, it's just that — like the Matrix — you cannot be told what it is like, you have to experience it for yourself. To clarify, by "parents" I also mean surrogate-moms and dads, adopters and sure even pet-owners — it's not about the blood, it's about taking on the responsibility of a life other than your own.

It's the little things that set parents apart. Like spotting a passing baby-carriage and quieting down as you pass it by. It's having been desensitized to diaper jokes. It's going to bed early and honestly looking forward to the morning coffee at 05:19. Mostly, it's carrying a void in your heart when you're away from the little one for too long.

From an outsiders perspective, parents are super annoying. They appear to be completely self-centered around their own little world. They bring their kids to grocery stores. And on flights, oh god they bring kids on flights make it stop. And they yell, and their children scream, and they lose their temper, and they should be bringing up their kids differently I'd show them how I'd teach'em good. And oh man the topics they drone on about, on and on and on and on, hours on end. "Did you know the diapers are really cheap in that store you don't normally shop in?" "Oh you really should be using cotton diapers, those one-time diapers aren't good for you." "Selma's teething now, it makes me look forward to the morning coffee at 05:19." Terrible.

Bear with us. Becoming a parent does something to you. The sleep deprivation combined with the intrinsic knowledge that failure won't ever be an option, sprinkled with the occasional tiny smile you receive from the creature in your care. It'll hit you like you haven't been hit before. It may only be chemistry, but it'll make you see through time and feel like you can punch through a wall. When I held my baby girl in my hands for the first time, while it was the biggest moment in my life, it was frankly bittersweet. The moment reminded me that everyone was once a cute little baby. That angry cat lady down the street who keeps yelling at you for no good reason. The sad homeless guy carrying an ominous sign. They were both once little cute babies, with a mother who nursed them and cared for them. Or, even more heartbreaking, lost their mothers.

It makes you realise you have something to lose now. Like a chronic tristesse, it drastically widens your perspective. Life takes on new meaning. Yeah, it'll likely take a while before you can watch the news again. Yeah, it'll make you focus your complete attention on children in your vicinity — not only your own, but other children as well. And yes, doing so will make you seem completely self-centered to your peers. It's a steep price and there are no returns. Fortunately it takes only one smile from the little creature and you're willing to pay double.