360|MacDev 2012

360|MacDev is in a few weeks, and if you write — or want to write — Mac software, you should be going. You may be more familiar with John’s other conference, 360iDev. These conferences are at the top of a short list of ones I never miss. John and Nicole work hard to get great speakers, make sure everything goes smoothly and create an amazing environment. I’m pretty sure they’re they’re the hardest working people in the conference business.

I’ll be giving a talk on making apps work better and be faster by using Core Data, GCD and using good app design. I’m also looking forward to the other talks: Brent Simmons is going to teach the secrets of creating successful Mac apps, Dave Wiskus will bring us inside the brain of a good designer, Kyle Richter will get all of the iOS developers up to speed and Mike Lee will once again do something amazing that I can never predict until it happens.

So join us in beautiful Denver Colorado, February 3rd & 4th — it’s a crazy amount of content for only $300. Register now if you haven’t already.

Why Brent is Trying Bing

It wasn’t the crap, it was losing trust:

Running a search at Google was starting to feel like walking through a minefield. I’ve trained myself to be careful where I click, because I might step on a +1 explosive or get blown to bits by surprise double-chevrons.

But I still used Google search, because I trusted the search. Now I don’t.

For any company, users trust is a hard thing to gain, and once lost nearly impossible to get back. I think if you’re a company who has it, you should do everything you can to keep it, and never assume your users have nowhere else to go.

Five Years Ago in San Francisco

Five years ago today, Apple announced the iPhone. I was living with my girlfriend at the time in Sacramento, and I was home from work before her. When she walked in, I already had the video ready on the Mac Mini I’d just bought her for Christmas.

I remember exactly what I said when she walked in the door:

“Do you want to see the most amazing fucking thing you’ve ever seen in your life?”

Learn and Work Hard

The Mac App Store turned one a couple of days ago, and it’s gotten me thinking about the past few years, where I am now, and where I want to be next. I’ve also been thinking about the path that led me to obsession with the Mac, later iOS, and eventually getting to make things for both.

The announcement of the iPhone SDK was, for me, what I imagine the original Macintosh was for people a generation older — huge. For me everything changed, because it let me start a career doing something I love. But before I could get a job making iOS apps — before there were iOS apps — I’d already been absorbing and obsessing over everything I could about Mac development. By 2008 I wanted nothing more than to be a Mac developer.

In high school (and a while after), I was more interested in practicing with my band than teaching myself C[1]. When the band broke up a few years later, I ended up the same place as many early twenties wannabe rockstars before me: Guitar Center. Even though I quickly learned to dislike the job[2], it’s lucky I was there, because it spurred my interest in Apple and the Mac. As part of the “Pro Audio” department, my work days were spent around other recording nerds — a generally Mac-oriented group. I started meeting people who loved their Macs, recorded using Logic, and were eager to talk about both. Within a few months I’d saved up and bought a used G5 tower.

Always a nerd, I started looking at what software was out there for my new Mac. I became enamored of apps like NetNewsWire, Delicious Library and Transmit. Maybe I’m coloring the past, but I feel like the sense came early of these not being just made, but crafted — the same way a great song or album was. Small groups of people — maybe one — had put time into thinking things through to make something great. It was the first time I knew software could be that way, that it could be made by one person who really cared — and that if I worked really hard, I could probably do it too.

As I got into learning Mac development, I found things like Late Night Cocoa (also just getting started), and got to hear indie developers talk about what they do. It didn’t seem to matter where someone came from if they could make cool things, and that was hugely inspiring to me. I didn’t know exactly what it would take, but I became progressively more driven to keep learning and eventually become an indie developer myself. No one could tell me “no,” I just had to learn and work hard.

The iPhone SDK was the opportunity I needed. I got a job shortly after it was announced, and became focused on iPhone apps. I still wanted to write for the Mac too, but since the places I was working were mostly interested in iOS apps, I didn’t know when that would happen. That interest came with the release of the Mac App Store, and this year I’ve gotten to work on awesome Mac apps in addition to ones for iOS. It makes me happy that the thing I got so excited about in the first place has continued to grow and thrive, and even more that I’ve had a chance to be a small part of it.


  1. I was still a pretty big nerd, and played around with programming on and off since I was young.  ↩

  2. At one Guitar Center staff meeting, our store manager told us about how he always wanted to be an artist or musician, but chose the less-risky life of retail management instead. He was very clear in saying that it’s better to not take chances, and that it was a lesson we should all remember. I’ve tried my best to remember to follow the exact opposite of that advice.  ↩

Coding Isn’t Necessary, But It’s Good to Know

I’ve been talking with friends and reading blog posts in the past few days over the idea of more people learning to code. The discussion was inspired by Code Year, a new online course created to help people learn programming. At the time of writing this, nearly a hundred and fifty-thousand people have signed up. Daniel Jalkut equated learning to code to literacy, as a basic skill that people will need in the future. Guy English disagreed with that, saying that coding is not the new literacy, but instead the new “tinkering with the engine, the new re-wiring the house.”

I agree and disagree with both for different reasons, I disagree primarily in that I think both positions are more extreme than I see it. On one side there’s an implication that everyone should learn to code, and that anyone who doesn’t may be left behind by society. On the other it seems that creating software is only for extreme tweakers, and that most people will find nothing of value. Both posts are well written and insightful, so please read both incase I’ve misrepresented either point of view in any way.

I think there’s a value in learning to code that does not equate to creating something as complex as web sites or apps. I also don’t think it’s as basic a skill as reading and writing, one that if you don’t learn will cripple your opportunities in life. Learning to write small scripts to automate tasks and control your computer can bring value — and possibly enjoyment – to a lot of peoples who are never going to write anything bigger than that.

So, instead, maybe learning to code is the new sewing your own buttons back on, or changing a tire on your car. Or, maybe it’s the new learning a musical instrument – there’s a lot of people who get a lot of enjoyment out of playing an instrument who are not artists, and will never develop mastery level skills. It still improves their lives.

In fact – maybe coding isn’t the new anything — maybe it’s just a good thing to know if you have time and interest to learn it.

Article On Portland Coffee Culture And Home Brewing

Willamette Weekly:

Why is Portland, of all places, the capital of American coffee culture? There’s no overt explanation why a city celebrated for its slacker attitude also devotes so much energy to the roasting and consumption of high-grade joe.

A pretty good article from last April that I just read. Talks a lot about coffee culture in Portland, and why the pour-over has taken over in good coffee shops where $10,000 machines that were the standard a few years ago. Towards the end it gets into a few methods for home brewing, although notably leaves out describing the Chemex, or any of the single-cup pour-over methods it spends the first part of the article talking about.

Essential Tools 2011

After reading Justin’s list of his favorite tools for power users and developers, I started to think about some of my own. Of course since Justin has great taste, and we use a lot of the same things, it’s going to make ripping him off directly and playing dumb later much easier[1].

Non-Software

  • 13" MacBook Air
    I was using a late 2008 MacBook Pro, and as soon as the current generation came out I bought one. It immediately became my main development machine. It feels crazy fast, light enough to take places and small enough to open on an airplane. It’s my favorite Mac I’ve had so far.
  • Archival Clothing Flap Musette (Laptop / iPad Bag)
    I don’t care if you call it a man purse[2], I take this thing everywhere. I use it as an iPad or laptop bag and it’s been perfect for that. It’s small and rugged, but big enough to stuff a power cable, Field Notes book, and a copy of the New Yorker in. Plus it’s made locally.
  • Chemex Coffee Maker
    Most developers I know enjoy coffee, and I think if you’re going to do anything you should do it the best you can. The Chemex is my daily driver for coffee making. It’s a pourover type that easily makes enough for two people, is extremely easy to clean and makes great tasting coffee.

Mac Apps

  • OmniFocus for Mac
    I live in OmniFocus, and keep as much of my life in it as I can. The reason I think it works for me where other apps haven’t, is that it doesn’t enforce a specific workflow so much as provide a foundation to create your own. I’m not sure everyone needs that much flexibility, but I choose to use it because I know it’ll scale to whatever my needs are.
  • NetNewsWire
    I’ve gone back and forth with RSS readers this year, but came back to NetNewsWire on the Mac because it shows me what I want to see so I can get through a backlog of feeds quickly.
  • Byword
    A simple and attractive text editor which makes writing in Markdown even easier by being aware of Markdown syntax, and providing key commands for the most common Markdown functions.
  • Marked
    The primary use of Marked is as a Markdown preview app to compliment whatever text editor you’re writing in. It didn’t sound like something I needed, until I started using it. Now I keep it open next to Byword or BBEdit whenever I’m writing anything of length.
  • 1Password for Mac
    Because I let 1Password generate and store all of my passwords, I never worry about password related security on the web. It’s the only app I feel like I need to have set up before I can start using a new Mac.
  • BBEdit
    I use it as a scratchpad for Objective-C, writing longer things in other languages, and for reformatting things like JSON to be more readable using text filters. I also use BBDiff a lot of the time when I have a complex merge of two source files to do.
  • Kaleidoscope
    It turns out that I do have a use for a really good file comparison app that doesn’t do merging (although I’d love to see that feature). It’s my favorite tool for checking what I’ve changed before making a commit.
  • Acorn
    I’ve been using it since 1.0 and it’s still the most Mac-like image editor.
  • GitHub for Mac
    The only Git client I’ve found to have any use for me, because it doesn’t try to replace the command line. Instead it just makes the things that suck the most on the command line easier.
  • Alfred
    I just started using this, after using Launchbar. The script launching and search filters are the two best features for me. I use search filters for things like only searching source code and related files.

iOS Apps

  • OmniFocus for iOS
    Having these apps is a really big part of what makes my whole task management system work. They give me the ability to review and capture tasks wherever I am.
  • Elements
    I use it to make all of the notes I take on my Mac accessible on the go. One cool use for me has been creating a big travel document using Markdown on my Mac that gets synced automatically to Elements. By doing it this way I have the document backed up in at least three (Mac, Dropbox, Elements) places, so it’s unlikely I’ll end up stranded.
  • 1Password for iOS
    Another great Mac app that would be useless to me without a mobile companion that works.

Services

  • Squarespace
    I host my company site, and this blog on Squarespace. I haven’t run into any show stopping drawbacks, and they make hosting a nice looking site really easy. It costs a little more than some other options, but I don’t worry about reliability and have to do a lot less tweaking to get things acceptable.
  • Dropbox
    Anything that I don’t want to lose goes in Dropbox. It also makes getting things done on the iPad feasable for me.
  • TestFlight
    Managing a beta for an iOS app before TestFlight was a nightmare. Now it’s easy.
  • Instapaper
    Using Instapaper lets me manage my time attention better than I could without it. I’m able to read a lot more longform articles than I was before by scheduling time for it.

  1. That was a joke.  ↩

  2. That’s a lie, I get crazy touchy about it.  ↩

Brewing Coffee With Zero Electricity

Marco Arment had a post earlier about making coffee when your house’s electricity is out. I wholeheartedly agree with his instructions for what a normal person should do in this situation (drive to to the nearest Starbucks and enjoy).

The other set of instructions were for what an “impatient, geeky, coffee snob” should do:

  1. Light the gas stove with a match.
  2. Boil water in the Helvetica Kettle.
  3. Plug the coffee grinder into the APC UPS that still has some power left, turn it on, grind the coffee, then turn it off to conserve its power.
  4. Realize you had the wrong grind size, dump those grounds, fix the grind setting, turn the UPS on again, and grind the coffee properly.
  5. Brew with AeroPress.

That’s fine for a normal coffee snob, but what if you’re a real asshole with more coffee equipment than sense? I’ve added my own instructions for just this use case:

  1. See Marco’s instructions.
  2. Boil water in your Hario Coffee Drip Kettle
  3. Get a work out while grinding coffee using your hand grinder. This implies you’ve considered the possibility of needing to grind coffee if the power goes out, and bought one of these for emergencies. But that’s just common sense.
  4. Brew coffee with Chemex.