Other Developer Tools Location in Xcode 4.3
Incase anyone else was wondering Instruments, FileMerge and the rest went in Xcode 4.3:
Incase anyone else was wondering Instruments, FileMerge and the rest went in Xcode 4.3:
Snap views from last month's field trip up to PDX.
The Archival Clothing folks took a trip to Portland and snapped some great photos while they were here. They even stopped by the coffee shop I used to live near.
Across all the various OEMs that make Android tablets, 12 million have been sold in total. Ever. For context, Apple sold 15 million iPads last quarter.
Manton Reece, on sandboxing for Mac apps:
I'll admit I have some regret leaving the Mac App Store. It's just so convenient for purchasing and installation. If I'm going to make this work, I'll have to redesign my own rather clunky purchase and activation experience. And I'll have to do a much better job of marketing, something that has not been easy with Clipstart.
I don't envy anyone who's facing this problem. I feel like Apple needs to rethink what they're trying to do with Sandboxing; giving developers more time is not the answer. The problem is that to many useful apps just aren't going to work with sandboxing, and others are going to need to compromise their users experience in order to accommodate it. I think of Apple has a company who puts the experience of their users first. Forcing apps to fit into a mold this restrictive is forcing them to implement work arounds for things that were never a design problem to begin with, or be left out of the biggest venue to get their app in front of the majority of users.
Since Git doesn’t create numeric build numbers, I haven’t known exactly what to do with my app’s bundle version (CFBundleVersion
) since switching to it. According to Apple CFBundleVersion
needs to be “a monotonically increased string, comprised of one or more period-separated integers.” My previous (bad) solution was to sort of ignore this and just update when I release a new version. Now that I’ve started using Hockey for beta relases, it requires a unique number for every build, so I need to start paying more attention to it. It’s for the best since it’s better to give this number some significance.
I didn’t want to have to update this manually every time I send a beta build, so I started looking for an Xcode build script that could generate something like this for my ad hoc and App Store builds. Since I didn’t really like any of the code I saw, I decided to write my own using Python, and while I was at it set it to also commit and tag the build in Git.
You can add this as a “Run Script” build phase in Xcode (make sure you set the shell to /usr/bin/python
). The only line you should need to update is configurations_list = [‘Beta’, ‘App Store’]
to be the names of the configurations you want this to run under. You’ll also need to set your CFBundleVersion to a start point that’s a whole number (0 for example). If you want this to work with a different SCM, just update the os.system
lines to run the right commands for your system (or take them out all together if you don’t want that feature at all). For a configuration called App Store, I have the commit message set to be “Automated Commit For Build 25. Configuration: App Store.”, and the tag to be “AppStore_25”. You can change that if you like.
Of course, I take no responsibility if anything bad happens to your project, but it seems to be working great for mine.
Update: There’s a bug where this will cause simulator builds to fail if you don’t set your “Mac OS X Deployment Target” to 10.7 in your build settings.
https://gist.github.com/1867148.js?file=ALBUpdateBundleVersion.py
This post by Christa Mrgan on the evolution of Rogue Amoeba’s Piezo is awesome. Also love that it started life out as “Simple Audio Hijack”.
It was worth the investment. I don’t mean just monetarily. I invested many hours into BBEdit and I’m sure there are many more to come. But it was worth it. I have an environment that I feel productive in.
It’s been my default editor for a couple of months now, and I thought this was a really good in-depth post about the pros and cons of BBEdit.
Marco Arment responding to Boris at The Next Web on Siri
But I still use Siri. My wife still uses Siri. Last night at dinner, my friend used Siri. I don’t think Boris and his friends are a representative sample.
Count me in as well. I use Siri all the time for setting timers, sending text messages and looking things up. A lot of times it’s just faster for me to talk than type. I’ve also seen nowhere near the 50% failure rate Marco reported. If I did, I’d probably use it a lot less.
Apogee Symphony 64 Thunderbolt:
The latest addition to the Symphony I/O module line-up, the 16x16 Analog I/O Module allows you to pack 32 channels of premium Apogee conversion into one Symphony I/O (two module spaces per chassis). No other audio interface delivers this much quality input and output or value in a single 2U rack space interface.
Apogee is well known in audio recording, so this is really exciting if you’re into that. Universal Audio also announced a new Thunderbolt audio interface called Apollo that looks awesome for project studios. Even if you have no interest in high-end audio gear, if you’re a Mac user, it’s exciting to see device makers of this caliber start using Thunderbolt.
(via The Loop)
I’ve used xScope whenever I’ve done user interface work for the past couple of years, and it’s indispensable. My favorite new part of xScope 3 is that it shows more of the info I want for iOS and Mac development (colors especially), without any conversion. The new iOS-centric templates in the Screens view look really useful also. If buy now you can get xScope on the Mac App Store for only $19.99.
My friend Kyle Richter has released his new app, Slender. It’s a simple and attractive way for iOS and Mac developers to figure out things like which images in your app are unused, or are missing their 1x or 2x sized counterpart. It’s only $4.99 on the Mac App Store, and I can already tell I’m going to use it on every app I write in the future.
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.
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 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?”
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.
I was still a pretty big nerd, and played around with programming on and off since I was young. ↩
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. ↩
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.
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.
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].
Thirty-three “New Years Rulin’s” from Woody Guthrie’s journal on January 31st 1942. It’s hard to pick my favorites (the entire list is great). I really like number one: “Work More And Better”, and number three: “Wash Teeth If Any.”
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:
- Light the gas stove with a match.
- Boil water in the Helvetica Kettle.
- 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.
- Realize you had the wrong grind size, dump those grounds, fix the grind setting, turn the UPS on again, and grind the coffee properly.
- 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:
Part of using GTD is falling off the wagon. Everyone gets overwhelmed and lets their system linger a bit sometimes. If you keep up on some of the regular maintenance though, it’ll happen less often and when it does getting back on won’t be so hard. Just like a sink of dirty dishes tends to stay full, too many inbox items, or stalled projects, and you don’t even want to look at it. Unfortunately, just like the dishes it only gets worse if you ignore it.
As soon as you start letting items sit for days or weeks in your inbox, you’re doing more harm than good. By capturing items into a system you’re letting rot, you might trick yourself into thinking you’re staying on top of things when you’re really just letting them fester in inbox purgatory. It’s like if you let the dishes sit until they molded. You already know the solution, and you’ve probably even made attempts to do in the past: process everyday.
I have a potentially unnatural love of coffee, and I never forget to make it, regardless of what’s going on. Processing my inbox, however, happens all the time. Force yourself to turn processing your inbox is as much a habit as morning coffee, and there’s no way for it to get out of hand so much you’re scared to look at it. That doesn’t mean it’s easy, but I think with work it can become easy.
The other time I get panic attacks when opening OmniFocus is when I’ve got stalled projects. Your GTD system is an evolving one, and it needs constant care and feeding. Letting projects sit with no path or intention for completion adds a lot of friction when looking for something to do. Reviewing your projects often (OmniFocus for iPad is great for this), getting rid of dead projects and redefining ones that are important to you is important for friction-free productivity, and I think one of the things people neglect doing the most.
Sometimes figuring out why a project has stalled can be pretty hard. There’s probably a lot of things I think I’d like to do that realistically I either don’t care enough about, or don’t have the time for. I think it takes honesty with yourself, practice to recognize what you will and won’t do, and ruthlessness to kill anything that’s just cluttering things up. I think deconstructing projects with no action steps to the point where you can work on it also takes a lot of progress. And – like most things worth doing – I think it takes doing it a lot to master.
The one thing your system needs to be is trustworthy. It’s okay to fall off the wagon, but you need to do your part to try and hold on if you’re going to build trust.
Samsung has just distributed the worst news of this Ice Cream Sandwich upgrade cycle: the popular Galaxy S smartphone that sold 10 million units last year and the 7-inch Galaxy Tab tablet won't be upgraded to Android 4.0.
The Galaxy S is a premier Android device that was released less than a year and a half ago, is still on sale and won’t even get an upgrade to the next major OS release because of the “experience enhancing” crapware that Samsung installs on their devices. This reminds me of the post that went around that detailed the terrible track record of Android upgrades.
One of the reasons I prefer iOS – and Apple products in general – is because Apple is the only device maker who doesn’t consider their relationship with you to be over once they have your money. I see no evidence from carriers, or from Android device makers to contradict that, and plenty that supports it.
I tell people who ask me about buying an Android device that if they do, they better hope the OS version they got was a good one because they’re probably never going to see another. I don’t know if Android is winning, but I’m certain that the people who buy these things are not.
I finally got to put my hands on a Kindle Fire today. I only used it in a store for a few minutes, but my immediate impression was that it wasn’t as awful as I’d expected, but that I couldn’t imagine buying one to use.
Immediate takeaways:
I also noticed some positive things:
This is the third installment of my must have must have list of tools and utilities as a Mac and iOS developer. A lot can change in twelve months when you work in the technology space. The biggest change for developers in the past twelve months is the completed transition from Xcode 3 to 4 and from iOS 4 to 5. Oh, there may have been a new version of Mac OS X thrown in there for good measure too.
Great list. I own and use almost all of the apps that Justin mentions.
I posted a couple of weeks ago about getting rid of my somewhat arbitrary RSS folder setup in favor of using no folders at all. As it turns out – for my needs – using no folders vs. organizing everything has made no difference all. I'm not missing anything I was getting to before, or annoyed by any difference in the order I read things in.
It makes me wonder what other systems I may have built up for myself that are really just me creating arbitrary labels instead of providing value. GTD contexts seem like low hanging fruit to look at next. For example, I'm starting to doubt the wisdom of dividing to-do items into categories like what app I'd be using, and tying them a bit more closely to physical opportunities and limitations.