We're hiring!

We're actively seeking designers and developers for all three of our locations.

Developer Tools

Git-SVN Gotcha with Empty Directories

This short post is intended to serve as a warning about a potential gotcha with git-svn, and how to prevent it.

An Anecdote

First, a sort of “postmortem” of my run-in with this issue:

I was working to migrate an old SVN repository full of documents to Git. We had decided that we didn’t need to maintain a complete history going forward, that we would just take what was currently there and put it in a new Git repository. We would keep the old SVN repository around for reference in case we ever did need to go back through that older history. We wanted to preserve the old history in SVN, but make a clean break from it for a fresh start with a new Git repo.

I used SVN to check out a fresh copy of the repo, removed .svn, turned the directory into a Git repo, and pushed it out to the new remote. All good there. Read more on Git-SVN Gotcha with Empty Directories…

Posted in Developer Tools | Tagged , | Leave a comment

Customizing IntelliJ for Emacs Compatibility

xkcd.comAtomic Object has a great tradition of making and customizing tools. It’s a habit I’ve gained and lost several times over my career — keeping tools sharp requires time and effort. Fortunately, one of the best things about becoming an Atom is that all of my colleagues care deeply about software, so it’s easy to find inspiration to start making tools again.

Recently, I’ve been working on a modern Java web app, and I ended up going all-in on IntelliJ 13. It’s a great development environment for mixed language web development (and Android!). The biggest down-side for me is its poor Emacs compatibility out of the box. The pain of hitting keys that don’t work or do something unexpected sent me looking for a cure. As a life-long Emacs user, I just wasn’t willing to down-grade to the Vim plugin, so what started out as key binding tweaks became full-blown plugin development to customize IntelliJ.

My fingers are happy with what IntelliJ can do now, and there’s a clear elisp-style path to add features that I miss. Read more on Customizing IntelliJ for Emacs Compatibility…

Posted in Developer Tools | Tagged , , , | 5 Comments

Why I Prefer AppCode over Xcode

For a long time, the only IDE that iOS and OSX developers had was Xcode, and life was okay. Then JetBrains released AppCode. For the last 6 month, I’ve had the opportunity to use AppCode as my primary IDE, and it is head and shoulders above Xcode.

Read more on Why I Prefer AppCode over Xcode…

Posted in Developer Tools | Tagged , , , , , | 1 Comment

Taking a Screenshot on Mac OS X

Screen shotThere are many ways you can take a screenshot on your Mac.  The best method often depends on the portion of the screen you need to capture and how you intend to use the captured image.

The tools and tricks themselves are not complicated, but pausing to look something up while in the middle of a work session with a client can be distracting. This blog post, therefore, is a little self serving; I simply collected my favorite options in one place as a quick reference. Hopefully it will be useful to others as well. Read more on Taking a Screenshot on Mac OS X…

Posted in Developer Tools | Tagged | 2 Comments

Develop Smoothly with the Right MacBook CPU

If you’re a developer shopping for a new MacBook, choosing a CPU can be confusing. Apple always gives you a handful of different CPUs options, all with different specs and prices, but it’s very difficult to understand how your development experience will be affected by this choice.

You can put thought into the other options that Apple lets you customize. For hard drive capacity, it’s easy to check the amount of space you’re using on your current machine and decide on a hard drive size for your new machine. If you’re comparing two different screen sizes, you can decide if you’d rather have a cheaper and lighter machine or a larger screen.

You can’t do that with CPUs. For instance, the latest round of 15″ Pro Retinas (released in late 2013) gives you three CPU options: Read more on Develop Smoothly with the Right MacBook CPU…

Posted in Developer Tools | 3 Comments

5 Awesome Lesser-Known Chrome DevTools Features

Your development tools are important: good tools allow you to write and debug code effectively and quickly. For web development, I am constantly finding new things to love about the Chrome DevTools, which is available in every Google Chrome browser. It supports inline HTML and CSS editing, JavaScript breakpoints, viewing network calls, and many other things.

Here are some of my favorite lesser-know features of DevTools. Read more on 5 Awesome Lesser-Known Chrome DevTools Features…

Posted in Developer Tools | Tagged | Leave a comment

A Month with the Atom Editor

atom editor

atom editor

Vim is a good friend of mine. When we met during my freshman year of college at MTU, we quickly hit it off. I never looked back with any regret at my tiny TI-85 screen, Notepad, or QBasic where I first tinkered with bending computing devices to my whims. Since then I have tried other editors, and even used a few for extended periods for a variety of reasons (e.g., Kate because of its SSHFS and KDE tie-ins, Visual Studio for its strength with all things Microsoft). Still, through it all, Vim has been my go-to editor for nearly 15 years.

I have been using Atom almost exclusively for the past month — without vim-mode. This was an intentional decision on my part. I didn’t have any complaints about how Vim had been working for me prior to picking up Atom. It, along with our built-to-Atomic-tastes configuration, did great navigating the mixed mobile & web project environment I was working in. I was just feeling ready to try something different when Atom came on the scene — something that wasn’t vim and didn’t work like vim. Plus, I dig the name and logo. ;) I figured, at the worst, I’d return to Vim after a while with a renewed appreciation for everything that makes it, well, Vim.

So, how has it gone? Read more on A Month with the Atom Editor…

Posted in Developer Tools | Tagged | 1 Comment

My Favorite Emacs Add-Ons

I love Emacs. I’ll take it hands down over vim, Sublime, Atom, and company any day. I thought I would take some time to list some of my favorite bits of Emacs and how I use them in my daily workflow.

1. Magit

Magit is an Emacs interface for git. Beyond that, it’s the best interface for git I have ever used — better than the git CLI or third-party apps like SourceTree. Magit reduces most git commands (and all of their cryptic flags) to a series of one-character shortcuts. It also introduces interactive status and log buffers that are comparable to any other git gui out there (and better than many). The best part is that version control becomes part of my editing workflow and requires no context switching. Overall I find that it massively speeds up and simplifies my git workflow and encourages me to use my VCS to its fullest extent. Read more on My Favorite Emacs Add-Ons…

Posted in Developer Tools | Tagged , | Leave a comment

Expanding User-Defined Runtime Attributes in Xcode with Objective-C

When building a user interface, I appreciate an IDE that allows me to easily change visual elements without having to write code. Writing code for simple things like colors, borders, fonts, or shadows clutters my project. Fortunately, I work with talented designers at Atomic Object who can already use Xcode to make some of these aesthetic changes in the UI without needing to write extra code.

However, while these designers can currently make selective changes to some controls, not all of what they want to do is possible in the IDE. For instance, I cannot set a border or shadow on a UIView without writing code or change the font of a UISegmentedControl. I wish Xcode’s interface builder was more capable of changing simple properties as these.  

Fortunately, there is a feature of Xcode’s interface builder that will allow you to manually add user defined runtime attributes. You tell it the name of the property you want to change then specify the type of the property and finally the value. Read more on Expanding User-Defined Runtime Attributes in Xcode with Objective-C…

Posted in Developer Tools | Tagged , , | Leave a comment

A Tiny Toolbox for Spelunking through JSON

I rely heavily on local instances of a web or mobile application’s API during development. Since I also need to speak fluently with my data on live instances of the API, including both test and production, I’ve found that I often need to work with structured JSON data at the terminal rather than a Javascript-native environment like node.js or browsers. I’ve discovered how important the tools curl, bash, jq, and json-diff can be for this sort of work, so I’d like to share some ways they’ve been useful to me when wrangling JSON at the command-line. Read more on A Tiny Toolbox for Spelunking through JSON…

Posted in Developer Tools | Tagged , | Leave a comment