A Laptop for Writers – and Developers →

Matt Gemmell:

I used to be a software developer, and my computer use was split between my desktop machine (a big iMac with the maximum amount of RAM, upgraded processor, extra display, and all kinds of attached gadgets), and my “evening or travel” machine. I didn’t code, or design, on the evening machine if I could possibly help it – and since I work from home, the big desktop was always within reach.

I’ve been using the new MacBook for the better part of a month and haven’t had much time to write a review just yet, but it’s coming. Matt’s post pretty much reflects my experience with the new laptop. It’s great and the new keyboard and trackpad are fantastic. The keyboard worked for me almost instantly. I had gone into it with the idea I wasn’t going to like it. Marco Arment’s post about the MacBook came out while my MacBook was on order so I had some doubts.

I have a different use-case with the MacBook. I am a developer, unlike Matt. I use Xcode and Sublime Text for Ruby development. I have no problems using the little MacBook for the projects I build. I use both Xcode 6 and 7. I don’t baby the laptop, often have PostgreSQL running alongside an instance or two of Sublime Text and an Xcode IDE up and running. Works great.

No, it’s not as fast as my main machine, an iMac 5K, but I didn’t expect it to be either.



iOS 7 and Seizing an Opportunity


The past few days have been filled with all things Apple and I have been drinking from the firehose all things iOS 7.  Apple announced an anticipated upgrade to iOS on Monday but not just any upgrade.  The new operating system changes the way users will interact with their iOS devices and will change the way developers approach developing applications for these devices.

I started a post yesterday with my thoughts on how this new update would greatly affect developers and designers as they created new applications and how existing applications would be facing a difficult path.  I felt good about my thoughts until Marco Arment posted an eerily similar post as mine.   

iOS 7 is very different and I’m very skeptical the upgrade path for applications will be smooth.  As Marco says:

iOS 7 is different. It isn’t just a new skin: it introduces entirely new navigational and structural standards far beyond the extent of any previous UI changes. Existing apps can support iOS 7 fairly easily without looking broken, but they’ll look and feel ancient. 

Developers who created complex applications will be faced with a fork in the road; attempt a transition or start over:

I don’t think most developers of mature, non-trivial apps are going to have an easy time migrating them well to iOS 7. Even if they overcome the technical barriers, the resulting apps just won’t look and feel right. They won’t fool anyone.

A new paradigm means a chance to start from zero and build great things.

Apple has set fire to iOS. Everything’s in flux. Those with the least to lose have the most to gain, because this fall, hundreds of millions of people will start demanding apps for a platform with thousands of old, stale players and not many new, nimble alternatives. If you want to enter a category that’s crowded on iOS 6, and you’re one of the few that exclusively targets iOS 7, your app can look better, work better, and be faster and cheaper to develop than most competing apps.

Developers will be tasked with porting their applications to iOS 7 but it will be a difficult task.  Design is completely different so not only will developers have to ramp up but so will designers. 

iOS 7 is a great opportunity to create new applications, taking advantage of the new way of doing things. Maybe this is the opportunity and *not* upgrade applications but start all over and build new experiences in iOS 7.  Can we convince clients this is different enough that apps are worthy of rethinking the user experience, leveraging what’s new and building great experiences?  Some will fight the idea.   Some will refuse.  Those looking not where the puck is but where it’s going to be, will embrace a rebuild.

I for one, am devouring all the material I can get my hands on for iOS7 include the new Human Interface Guidelines and the Transition Guide.  I also have Xcode 5 running and installed iOS 7 beta on an old device.   If you’re interested in a really detailed article on iO7 user interface differences, go read Matt Gemmell’s article.

I will be ready to help clients move forward from older versions of iOS as well as ready to guide them on new applications.  As far as my applications, I will see how the transition goes.  This could be an opportune time to redesign, retool and rebuild for the paradigm shift to iOS 7.  

The design changes to iOS 7 are brilliant, very exciting times ahead.

Is JetBrains appCode a Solution Looking for a Problem?


Sometimes when a company releases a new product I sit back and think if I would use it.  If not, I try to understand who the customer might be and the reasons they use it.  When I first saw the announcement for the new Objective-C IDE from JetBrains, appCode, I asked myself those questions.

As a user of Apple’s XCode IDE for writing Objective-C, I tried to imagine the reasons why I might use it and none came to mind.  I also tried to imagine who might use it and I couldn’t think of anyone.  OK, maybe there are folks out there who use XCode and hate it, they may use it but I think the market is far too small to consider putting efforts into writing an IDE to target those people.

InfoQ has an interview with Maxim Shafirov of JetBrains about the project and after reading the article, I am still scratching my head.  From the article, appCode features include:

Main features of the IDE are:

  • Smart editor with code completion
  • Opening and creating Xcode projects (including Xcode 4)
  • Integration with the standard Interface Builder
  • Running applications in iOS Simulator
  • Debugger with breakpoints, variables, watches and evaluate expression
  • Refactorings, e.g. ‘Change Signature’ and ‘Extract Method’
  • On the fly code analysis and quick-fix suggestions
  • Tight version control systems integration (Subversion, Git, Perforce and CVS)

    I don’t see a feature here in the short list which Apple’s IDE doesn’t include.

    A question I asked myself..why develop appCode in the first place?

    InfoQ: What drove the decision to develop appCode?

    Maxim: We at JetBrains admire what Apple has done to desktop apps and more generally to a consumer targeted software. They’re setting new interaction design quality standards. But this is not the case when it comes to developers software, in our opinion. So we see a great opportunity for JetBrains to bring its development tools expertise to this emerging market of developers, who know how a great software should look, who care about their productivity and code quality.

    Developers even need to have XCode 3 or 4 installed to use appCode:

    InfoQ: Do I still need XCode / the Apple development infrastructure to develop applications?

    Maxim: Yes. You need to have Xcode 3 or Xcode 4 installed. At the very least we need a platform SDK that comes with Xcode, the Interface Builder and device simulator.

    I have used JetBrains’ RubyMine IDE in the past and it is not free.  I don’t think other JetBrains’ product are free, so one can only assume appCode will not be free.  Why would I pay for something Apple gives me free, as a registered developer or $5 in the App Store?

    I had thought that maybe appCode would be developed to be cross-platform, like their other products, and run on OS X as well as Windows and Linux.  This would make it a really nice proposition for non-Mac owners but the dependency on XCode makes it unrealistic.

    In summary, appCode:

    • Is an Objective-C IDE just like XCode
    • Needs XCode to Run
    • Only runs on OS X
    • Is likely not to be free

    To be fair, I downloaded appCode and it looks nice, opens my XCode projects but I ran into issues trying to actually run the project.   It built but the simulator never loaded and ran.  I will probably wait for a future EAP build to try again.

    I realize appCode is only an EAP and not even beta at this point.  I’m sure things will improve and new features will be added but I’m not sure JetBrains has a winner here.  The XCode environment is the gold standard for Objective-C development and I don’t see so many problems with that would drive me to use an alternative IDE at this point.  I will keep an open mind but it seems JetBrains is trying to solve a problem that doesn’t exist.


    Install Consolas Font for Use in Xcode

    Coming from the Microsoft development world I have gotten really accustomed to using their Consolas font in Visual Studio.  When moving over to the Mac I wanted to have the same font in Xcode.  A bit of searching around the web I found a great resource, Install Microsoft’s Consolas Font on Mac OS X.

    The gist of it is:

    1. Download the Open XML File Format Converter for Mac from the Microsoft Mactopia download page.

    2. Double click the disk image if it wasn’t automatically mounted. You will see an Open XML File Format Converter meta package (.mpkg). This is an installer package comprised of several sub-installer packages. One of which is the fonts I was after.

    3. Run the Open XML Fonts Installer package. Running the following in the Terminal will achieve this in a typical Mac OS X install: open “/Volumes/Open XML File Format Converter for Mac 1.1.5/Open XML File Format Converter for Mac 1.1.5.mpkg/Contents/Packages/OpenXML_all_fonts.pkg”

    4. Follow the prompts and you’re done. You can now configure you text editor and Terminal to use Consolas.

    The instructions were a bit dated but the only difference from the original source was moving the version from 1.0.2 to 1.1.5.

    Once this is installed you can go to Xcode->Preferences->Fonts & Colors and in the selected theme you select your font and can see Consolas and others added.

    UPDATE: The original post has been updated to include some screen shots to help with the setup – http://www.wezm.net/technical/2010/08/howto-install-consolas-font-mac.