May 2012
1 post
1 tag
Easiest way to get books onto your iPad
iBooks supports loading of books that weren’t bought in the iBooks Store, but the standard way is to connect to iTunes, and drag the book into iBooks using the File Sharing feature. That’s a huge pain, especially if you’re away from the computer you sync with. Luckily, there is a better way.
You’re already using Dropbox, right? Of course you are. The next time you buy a...
April 2012
1 post
3 tags
Paper and in-app purchases
The iPad drawing app Paper has gotten a lot of attention in the past week. One of the interesting bits about Paper is that the app is free, and gives you access to one of the 5 available drawing tools. To access the others, you have to buy them for $1.99 each. So to get the full functionality of the app, it costs $8.
This doesn’t bother me, in fact I kind of like this model. You can try...
March 2012
1 post
Why twitter is awesome
The other day, Austin Kleon tweeted:
I’m in the mood to do something stupid: retweet this link to #StealLikeAnArtist, & I’ll tweet a mini-blackout at you: bit.ly/snvIu4— Austin Kleon (@austinkleon) February 28, 2012
This was a promotion for his new book Steal Like An Artist, which is great by the way. So I retweeted, and a few days later I have a personalized1newspaper...
February 2012
5 posts
3 tags
Direct link to redeem a Mac App Store promo code
I saw a blog post by tap tap tap a while back with a way to create user friendly links for redeeming iOS app promo codes. This is so much easier for the user than sending them a code and giving them precise instructions on the way to redeem it, especially if they’ve never done it before. You can send a link and they can get a free version of your app with one-click.
I hadn’t come...
4 tags
Rethinking the calendar
Jason Fried, giving a preview of the all-new calendar in Basecamp Next:
There is one thing in particular I love about this calendar. Instead of the standard month-at-a-time view, it shows the next 6 weeks. You can see the current week and 5 weeks into the future. It’s one of those things that is so incredibly obvious once you see it. Why doesn’t every calendar do this?
...
3 tags
Selling open source apps
I’ve been thinking for a while that the app store – both Mac and iOS – might be the perfect way to make money creating open source apps. For the average user, they don’t care about the code. They don’t know what open source is, and couldn’t care if it’s written in Cocoa or Flash or Java1. They buy an app that solves a problem, and that’s it. Other developers can...
5 tags
Chrome and the blank new tab button
I noticed yesterday that Chrome no longer displays a “+” inside of the new tab button.
Above: the new tab button for the previous versions of Chrome on the left and the new tab button on the right.
At first, I thought it was a bug. I quit and restarted Chrome with the same results. I tweeted about it and quickly got a few confirmations that it’s not an issue just on my...
3 tags
Why I'm excited for Clear
Everyone has probably already watched the video and read about the yet to be released to do app Clear. There has been a lot of buzz for the app because of the innovative and well-considered interaction design. If you haven’t seen it already, I’ve embedded it below:
Now, I’m really interested in this app as a designer and developer of software, and I’ll write more about...
January 2012
3 posts
2 tags
Commoditize your complements
A complement is a product that you usually buy together with another product. Gas and cars are complements. Computer hardware is a classic complement of computer operating systems…
All else being equal, demand for a product increases when the prices of its complements decrease.
– Joel Spolsky
I definitely recommend reading the whole article. It’s 10 years old, but still...
1 tag
A better mousetrap
Build a better mousetrap, and the world will beat a path to your door.
– Ralph Waldo Emerson
I don’t really love any of the apps I use. Some are ok, some are great, but none of them are perfect (my apps included). Maybe it’s because I’m a developer, or maybe I have high standards, or maybe it’s just because you really can’t please everyone. So it’s...
Google as a time machine
I had the thought last night that if Google sticks around for the next 50-100 years, and maintains Google Maps, then it could actually turn into a time machine. Load up maps, choose your place and your time, zoom around in street view. I can’t imagine how amazing it would be to check out what San Francisco in the late 1960’s. Plus, Google will have gathered much more information over...
December 2011
4 posts
Top gear of 2011
These are a few of my favorite pieces of gear that I’ve acquired in 2011:
MacBook Air
I retired my aging 15” MacBook Pro this year, and bought a 13” MacBook Air. Definitely the best computer I’ve ever owned. Having something lightweight, powerful, and with a long battery life has changed how I use a laptop. It’s even surprisingly fast for its size, and I...
1 tag
Encouraging feedback from your users
I love hearing feedback from my users. I would love to hear every detail about what they love, hate, or want in my apps. But that’s not always so easy to come by. The users that really care about the app, or are really opinionated, will find a way to express their opinion to you.
But there is a large number of users that would probably give you feedback if it was simple and immediate right...
1 tag
Native vs. Web
There has been a lot written about this topic. So many people on both sides of the debate, arguing one is superior over the other. Brent Simmons nails exactly how I feel about it:
I think instead that we’ll see a more tangled future. Native apps will use HTML, CSS, and JavaScript more. Web apps will appear more often on smart phones as launchable apps. Native apps will support linking in and...
2 tags
Latest Version
Matt Gemmell wrote a great article recently that’s been making the rounds about supporting only the lastest version of an OS for your app. I highly recommend reading if it you haven’t already.
Matt covers a few reasons: less hassle, less code, better customers, free marketing. I won’t rehash it, but wanted to add one other point: making a better app. If you’re a small...
November 2011
1 post
1 tag
Collapsing time
I just came across the work of Stefanie Posavec (via Feltron), and love these images of first chapters of books based on the number of words in the sentences, drawn in a single image.
First chapter of The Great Gatsby
I don’t know if there is a term for these kind of visualizations, but for lack of a better word I think of them as “collapsing time”. They take something...
October 2011
2 posts
1 tag
Things I like: The Great Discontent
The Great Discontent is one of the best sites I’ve come across recently. It features weekly interviews with creative people, about “understanding the human side of creativity and our innate drive to create that keeps pulling us forward.” The interviews dive into the background of the interviewee and how they came to be where they are. Focusing more on questions like “are...
4 tags
Real artists ship
I just submitted Flint 1.0 to the Mac App Store this morning. My goal was to finish it and submit by September 1st, 2011, and it took about 6 more weeks, which isn’t too bad all things considered. It was time well spent. I got more beta testers, added a few more nice features, and fixed a lot of bugs. But still, I had more that I wanted to do. I just kept thinking about adding one more...
September 2011
2 posts
2 tags
Overdoing it
It’s easy to do too much with your app. Much easier than doing too little. It takes restraint and focus to pare down the features to just what the user needs to achieve their goal. If you’re not constantly mindful of this, you just starting throwing every feature you think a user might want, and the user experience suffers.
Here’s an example. There is a nice social network for...
4 tags
How I name my apps
For the last couple of apps I’ve made, I’ve been creating a sort of mind map to help me come up with the name. Finding a good name for an app is hard, but having a somewhat formal and repeatable process has made it much easier for me.
I say “sort of” mind map, because there aren’t really any strict rules I follow about organization/hierachy/line length/color/etc. It...
August 2011
1 post
Pixar and iteration
Toy Story, as we all know, was a huge hit. Only it was almost scrapped before ever seeing the light of day. Pixar had been trying to make the first, feature length computer animated film for years. They finally got the chance when Disney gave them the green light for Toy Story. The incredibly talented team worked on it for months, they showed it to Disney, and…it was terrible. It...
July 2011
1 post
1 tag
APIs and Support
Almost every web app these days has an API. They have been integral in helping many apps, especially Twitter, grow from a service to a platform. Twitter just recently announced they surpassed an incredible 1 million registered apps. Most companies would kill to have that many users. All the APIs out there now are great, and have enabled all kinds of amazing apps to be created, but there’s...
June 2011
4 posts
1 tag
On Rdio
I’ve been using Rdio for about a month now, and so far I love it. It’s as if I actually bought every album I’ve thought about buying on impulse. It’s totally replaced Pandora for me as what I listen to all day at work. I still like owning music though, so I’ve also been using it as a way to “try before I buy”. When a new album is released, say like the new...
Rejected Lion logos
I was able to dig up some logos that didn’t make the cut for Lion. As you can see, they kept getting further off the mark…
3 tags
Alfred Remote iPhone app concept
I still haven’t found a good iPhone app for remotely controlling my desktop. It’s not something I would use every day, but there a few use cases where it would really come in handy. Like wanting to stream something from my iMac to my Apple TV, but iTunes isn’t running. Like a fool, I’ve been walking all the way upstairs to open iTunes, or if I’m lazy and have my...
4 tags
Working without a clock
For the past 4 years or so, I’ve worked without ever having a clock in sight. I don’t wear a watch, I removed the clock from the menu bar of my computer, and I cover up any clocks I can’t remove. I realized that watching the clock, even subconsciously, is stressful. You’re always aware of the time ticking by, wondering if you’re getting enough done or if it’s...
May 2011
1 post
2 tags
Hues and Spot Color
When the Mac App Store came out, I decided to update my app – Spot Color, and release it as a new app called Hues. That’s caused a bit of confusion about how Hues is different from Spot Color, so I thought I’d explain a bit of the differences and reasoning.
Spot Color was just a wrapper around the built-in Mac OS X color picker, and had no features of its own. It allowed you to use the color...
April 2011
2 posts
3 tags
The Little Things
In any sort of design, it’s the little things that make the biggest difference. All those tiny details are what make up a great experience for the user. Here’s an example from pinboard. When bookmarking a site I’ve already bookmarked, it lets me know I’ve previously saved it and when:
I may be forgetful, but I’m glad to know pinboard isn’t. I don’t...
On Kickstarter
I really like kickstarter. I’m not exactly sure why, but I just want to back every project on there. Of course, the product is a big part of it. The projects I’ve backed are the ones I get a product I want and can use, but I’d probably be less inclined if it was already for sale. They’re a plenty of iPad styluses (styli?) out there, and I’ve bought zero, yet...
March 2011
1 post
2 tags
Think about it deeply, and forget it
Just think about it deeply, then forget it…then an idea will jump up in your face. - Don Draper
I’ve always liked this approach to creativity. At some point you need to let your unconscious mind do the work. You can’t just sit there and force an original and inspired idea to happen. You have to think about it, dream about it, let it take root, and then let it go. When you come...
February 2011
1 post
2 tags
Fixing Twitter for Mac's Spaces bug
Twitter for Mac (2.0.2) has a bug where it remains on every space when you change spaces. Even worse, it remains on every space even if you have it set to always stay on a particular space. The only fix I found was to go into the Spaces preferences, and change it’s space to a random space, then back to the one you actually want it on after it’s running. It only takes a few seconds, but...
January 2011
1 post
2 tags
Polishing vs. Sanding
A lot of people talk about polishing their site/app/product. Usually referred to in the sense of working on the little details and improving the overall user experience. I think that’s great, and something everyone should spend a lot of time doing, but I want to propose that people spend more time “sanding”. Sure, it’s not quite as sexy of a term, and both polishing and...
December 2010
1 post
2 tags
Is Fitts's Law still relevant?
I just came across an interesting article by Daniel Kennett about the problems with Reeder for Mac’s UI. He uses Fitts’s Law as the basis for describing why the app’s interface doesn’t work. I agree with his assessment in theory. But in practice, I’ve been using Reeder for Mac since it came out, and I haven’t had any problems or frustrations at all (as it...
November 2010
1 post
4 tags
The difference between Apple and everyone else
Every time Apple releases a new product, it becomes more and more clear that no other company really gets it. The next war for winning consumers’ hearts - in both hardware and software - will not be based on tech specs, but on usability and user experience. Computers are already way faster than the majority of people need. Things like the iPhone and iPad don’t even mention specs like...
August 2010
1 post
3 tags
My Notes Workflow
I live in plain text. I keep all my thoughts and notes in simple text files. I know there are plenty of apps out there like Yojimbo, VoodooPad, and Evernote that provide advanced features, like storing images and video, but I like the simplicity of plain text. It’s small, it’s efficient, cross-platform, and I don’t have to worry about being locked into some proprietary format. I...
July 2010
2 posts
2 tags
Marching Ants
Yesterday, Apple donated the source code for MacPaint into the Computer History Museum. MacPaint was a bit before my time, but learning more about it, it’s amazing the influence it’s had on every graphics program since.
When Bill Atkinson was writing MacPaint, he had to figure out how to do rectangular selection. The solution he came up1 with was the—now standard—animating dashed...
2 tags
Speed is a feature
For the next version of Gmail, one of Google’s goals is to get it to load in under a second. They stated that for them, “Speed is a feature”. I couldn’t agree more. It’s something that Google seems to take seriously in most of their applications. Their user interfaces are pretty minimal, but they’re fast. Sure, they could focus on adding other features,...
May 2010
1 post
1 tag
Extract 1.1 and bookmarklet
I just released version 1.1 of Extract1. This update adds one big feature, support for a bookmarklet to simplify the usage of Extract. Currently, to view something in Extract, you have to find the embed code, copy it, and then paste it into the app. This is pretty quick to do, but can be a bit tedious. Also, in many cases, the embed code isn’t easily found or made available at all. The...
April 2010
1 post
2 tags
Meter Maid Sales & Stats
I created Meter Maid to scratch an itch. Living in the city, I’m often parking at meters and forgetting when it expires. I wanted an easy way to be reminded before the meter expired so I didn’t get a ticket. I had a need for the app, didn’t like the existing solutions, and really just wanted a challenge, so I decided to build it. I have a full-time job as a web developer,...
February 2010
2 posts
2 tags
Introducing Extract
Often while I’m working, I’ll watch a video of a talk or presentation. Usually, this involves jumping through a number of hoops to try to get a window that only shows the video. I’ll open it in a new browser window, resize it, hide all the toolbars and status bars, and adjust the scroll bars until it’s just right, and only the video is showing. Then I try to position the...
2 tags
System Status Pages
I’ve been really digging the status pages for various web apps/services lately. As these services grow larger, and we grow more dependent on them, it’s critical that we know how they’re operating. They’re typically one page sites with a single purpose - to report the status of the system. Usually, that is broken down into current status and recent status history, in which...
January 2010
3 posts
2 tags
Some thoughts on the Apple iPad
After many months of rumors and speculation, Apple finally unveiled the iPad. Almost all the questions have now been answered, but a lot of people are asking, what do I use it for? If I have an iPhone and a Macbook Pro, where does this fit in? I can’t answer that for everyone, but I can tell you why I’m planning on getting one.
I’ve been thinking about this device for a...
1 tag
Fixing tumblr's white flash
After my recent switch to tumblr, I noticed something odd. Tumblr loads their controls into an iframe in the top right corner of the page. If you’re logged in, it will give you some options to follow, like, or reblog. If you’re not logged in, it will prompt you to join tumblr. It’s not very obtrusive, and I don’t mind promoting a product I like and I hope to see succeed....
2 tags
Switching from Wordpress to Tumblr
I had some free time today, so I decided to switch my self-hosted Wordpress blog to Tumblr. I’ve been thinking about doing it for a while and since I want to try to post more in 2010, it seemed like the perfect time.
My main motivation behind switching is that I’ve always liked Tumblr, and have never really been a fan of Wordpress. Wordpress is a great product, but for some...
October 2009
1 post
2 tags
NSTextView and NSString differences in text...
If you’re drawing a string in Cocoa, you may notice discrepancies between how the text is rendered in a NSTextView and how it’s rendered when using the NSString (or NSAttributedString) AppKit drawing methods. This is because of they each use a different default NSTypesetterBehavior, which results in slightly different line spacings. When you draw a string using the drawing convenience...
September 2009
1 post
3 tags
Debugging API requests with HTTP Client
I received quite a few comments on my How to use JSON in Cocoa/Objective-C post with some confusion related to the response from API calls. I thought it might help to show an example of the steps you’d take if you wanted to integrate the Twitter public timeline (or any other API) into your app or site. For doing any sort of HTTP/API request analysis, I first turn to HTTP Client.
HTTP...
May 2009
1 post
1 tag
Creating an archives page with WordPress
I don’t really see the usefulness in viewing blog archives by month or year. I’m not particulary interested in what someone wrote in November 2008. If I’m looking at your blog, I care what you write about, not when1. I’m not sure why so many blogging systems make a monthly display the default for archives, when a list of the posts is much more usable.
Fortunately,...
April 2009
2 posts
3 tags
Using Dropbox to sync TextMate
I use TextMate at both home and work for doing all my development and for dealing with pretty much anything text related. I got tired of having inconsistent environments between work and home. I wanted to be able to create a new snippet at work and be able to use it at home (and vice versa) without having to recreate it. Turns out you can do this easily with Dropbox.
Dropbox1 is a service to...
3 tags
Opening links in background with Cocoa
One of my biggest annoyances with mac software is how it handles opening links. This is usually a disruptive process that requires you to switch from your current task and application to another. Since I use spaces to partition apps (more info), it often results in not only switching apps, but also spaces, which makes it all the more annoying. Now, it makes sense if you click a link, that you want...
March 2009
1 post
3 tags
Programmatically retrieving IP Address of iPhone
For my app, QuickPic, I needed to show the user the IP address of their iPhone so they could type in the URL to the browser. The iPhone SDK provided no simple way to get the IP Address for the wifi connection. There are some undocumented methods that work ([NSHost addresses]), but I didn’t want to risk them pulling that out of there and my app breaking. So I wrote some C code (cobbled...