Here at Macoscope, Community is inscribed among our Core Values. Seeing that we don’t have either a receptionist or a front desk, and our office is basically a big house, opening the front gate for visitors and deliveries quickly grew into a problem. To open it, we needed to press a button near the main doors, and the inconvenience of having to step away from our work to walk up to the door multiple times a day terribly annoyed us. What else could we have done but put our heads together, like a true Community would, and try to solve it with a little bit of technology that we’re so good at!
There is a tool that I have been using for years now without giving it much thought. It does a simple tasks of picking and applying of color. This illusory simplicity seems to have blinded me to the whole concept hidden behind it. I’m sorry Color Panel, let me redeem myself by telling people how to extend you.
Every Mac user is more or less familiar with the Color Panel, the small “Colors” window pops up in many applications when the user has to select a color. From text formatting in Mail, through shape editing in Preview, to storyboards or XIB customization in Xcode − most system apps make use of OS X Color Panel, and it’s even supported by a range of third-party apps, including Pixelmator or Photoshop.
Programmers are lazy. They really are, but in a good way. According to Larry Wall (you know, the Perl guy), laziness is one of the virtues of great programmers. Programmers do not like to repeat themselves, implement the same stuff over and over again, or waste time solving the same problems. But above all, they hate fixing the same bugs.
In theory, all that can be avoided by creating reusable code, and programmers do that a lot.
Today we’re making Code Pilot open source. It’s been an amazing ride with this product for us as a company and me personally, so I wanted to take this chance and tell you its story.
Tip 1: Limit Your Possibilities
Based on our experience with our newest project, Bubble Browser, a visual browser for Evernote notes, we wanted to present our approach to implementing innovative solutions in applications. The assumptions we held throughout the development process allowed us, a group of five, to create a stable, and in our opinion, conceptually revolutionary, product in a little over six months.