Git Copy a File From Another Branch

Just saved me about an hour’s worth of work:

$ git checkout branch file

Free Icons for Anything

Need an icon for something completely random? Consider one of the free icons from The Noun Project. From the mission page:

The Noun Project collects, organizes and adds to the highly recognizable symbols that form the world’s visual language, so we may share them in a fun and meaningful way.

20 Tips for Community Managers Out There

Back in my olden days, I was a community manager for designers at a startup here in Boston. I would have loved to have this list of 20 tried and true ways to get satisfaction. One of my absolute favorites (and in the same vein as my previous post All Your Users are Rookies):

16. Old hat. Just because an issue is “old” to you, doesn’t mean it’s old to the person who is having it. In fact, it’s new to them. Don’t “uh duh!” them, help them out.

You don’t even really have to be a community manager to appreciate this list. Customer service folks, solo entrepreneurs, or just anyone that interacts with your member base should read (and study and print off and sleep with) this list.

Permalink! Stick tap to delivertheawesome.

Add Your Current Git Branch to Your Command Prompt

If you work on multiple Git branches throughout your workday, you probably  find yourslef constantly git branch‘ing more than you’d like.

Instead, why not add your current Git branch to your command prompt?

Just add this to your ~/.bashrc file:

That creates a command prompt that looks like this:

jeff@lookitdev Resources dev-MEM59 :

That’s your username at your current hostname, your current folder, and your current Git branch.

InDesign 5.5 Review

I love InDesign. It might be my absolute favorite Creative Suite tool. (Fireworks comes very, very close for interactive work though).

You may or may not be able to install it on your new MacBook Air, but when you can, MacWorld makes it sound like it’s very worth it.

UI Designers, Don’t Be Like Appcelerator

The login form is a pretty basic and standard aspect of UI design.

At the very least, two form fields and a submit button are all you need: username, password and submit.

Sometime in the 1990′s, we gave Internet users the ability to save their session by storing a cookie on their computer when they click a little “remember me” checkbox near their password field.

This has been pretty standard practice for 20-ish years.

Leave it to Appcelerator (whom Tanner has scolded for other, unrelated reasons) to throw all precedent away by replacing standard “remember me” checkbox with a “reset password” checkbox.

Basically, replacing a standard aspect of login boxes with something that does the exact opposite.

Don’t do this. Stick to standards with your own twist.

PS: I consider “standard location” for a password reset function to be a link placed below the submit button.

Simulate a 3G Connection in OS X to Test Your iOS Apps

We’re getting closer to finishing the Lookit iOS app using Appcelerator Titanium. The app calls a custom API on the Lookit server for both submitting pictures to the server and getting pictures, ratings, comments and other data about everyone else’s pics.

The user experience of our app is as important to me as getting the app to work correctly in the first place, and that includes making sure the app is responsive and usable on slow cell connections. Of our iOS beta testers, more than 80% of them have installed the app on an iPhone or iPad with 3G service.

Since most of our development happens in the iOS simulator on laptops with great wifi connections, we needed a way to slow down our internet connection to simulate a cellular connection.

You can limit the network traffic on your Mac to 3G-like speeds with three lines in the Terminal:

$ sudo ipfw pipe 1 config bw 30Kbit/s delay 350ms
$ sudo ipfw add 1 pipe 1 src-port 80
$ sudo ipfw add 2 pipe 1 dst-port 80

This works great when testing your apps in the simulator on your laptop, but clicking with your mouse on the screen and touching with your fat fingers on an iPhone are completely different experiences.  Tanner and I each use iPod Touches as our development devices, which don’t have 3G chips – only wifi.

Testing the entire 3G user experience is possible on a device by slowing down your laptop’s internet connection to 3G speeds, sharing your laptop’s (now slower) wifi connection and connecting your iPod Touch to it.

To fake a 3G connection on your iPod Touch:

  1. Run the lines above, limiting the network I/O on your laptop to 3G speeds.
  2. Share your Internet connection from your Mac, essentially turning your laptop into a hotspot.
  3. Connect your iPod Touch to the new hotspot.

Returning your network’s connection back to normal is just as easy:

$ sudo ipfw delete 1
$ sudo ipfw delete 2

Someone should turn this into an app. I’d spend a buck on it because I’m a lazy bastard.

More info on the Lookit mobile apps »

How Many Users Have JavaScript Disabled?

An article on the Yahoo developer blog states that about 1% of users to their collection of sites has Javascript disabled.

Makes sense. But what’s particularly interesting is when you express actual numbers:

The second takeaway is that JavaScript-disabled users exist. While 2% of U.S. visitors may not seem like a lot, keep in mind that over 300 million users visit the Yahoo! homepage each month. That means 6 million users visit each month without the benefit of JavaScript. So even though it’s worth spending your time on the JavaScript-enabled version of the site, there are still a non-trivial amount of users out there who won’t be able to use it.

While the percentage of visitors with JavaScript disabled seems like a low number, keep in mind that small percentages of big numbers are also big numbers.

My personal development style is to start with the scaffolding by writing the XHTML without any styling, make sure the site is still readable then add the CSS. After that’s in place, I wave my magic jQuery wand over it and make it do it’s tricks. This usually (USUALLY) ensures that a javascript-less user at least has access to the basics of the site.

But always, always, make sure that a visitor with javascript disabled at least has complete access to your login, contact and homepage. Always.

Speaking of Email Replies…

Ryan Waggoner apparently has the same idea that I do: no-reply email addresses are crap.

From his article:

Think about your grandparents, or a stay-at-home mom in Kansas who orders something online once a year. These people don’t know what a “noreply” email address is. But they know that when they hit reply and ask a question, they expect to get an answer. When they don’t, they get frustrated, and that reduces their loyalty to the company in question.

Exactly right. Same thing I think about when designing something for others: All of your users are rookies.

A Comic About Opting Out of Email

This comic by Brad Colbrow pretty much hits the nail on the head in regards to how companies are taking advantage of their users opting into promotional emails.

For Lookit, it’s simple:

  • At the bottom of every email is a message telling you why you’re getting that email, and
  • a message on exactly how to unsubscribe. (Currently it’s “just reply back and say so”.)
  • We don’t sell our rent our list to advertisers and have no plans to do so in the future.

It’s simple. It’s human and it’s the right way to do it.

OK, go read that comic now. It hurts that it’s so true.