Andrey Subbotin

He is really passionate about programming and does believe that good software would one day make the world a better place to live. All the Apple hardware, the Human Interface Guidelines, and the Web 2.0 standards make him do his best.
Twitter Facebook Flickr YouTube LinkedIn
Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends – commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours, but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see.

Larry O’Brien and Bruce Eckel

Accessing the Mac OS X Keychain from Ruby


This post on the TextMate blog describes how to access the keychain from the command-line. I recommend you read it. Now, let’s do it in Ruby:

>> KeyChain.find_internet_password '-s', '' => "weakpass" 


Apple has made some very subtle updates to the visual design for iOS 5.

via Design Archive

(Source: darrengeraghty)

Death is very likely the single best invention of life. It is life’s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.

Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

Steve Jobs, 1955 - 2011

This amazing printer is literally too good to be true

Git Is Simpler Than You Think


It was about one year ago that we switched to Git. Previously, we used Subversion, through the Mac app Versions, which (rightly) holds an Apple Design Award.

I made the executive decision to leave our comfy world of Versions because it seemed clear that Git was winning the Internet. There was much grumbling from my teammates, who were busy enough doing actual work thank you very much.

But I pressed forward. We signed up for accounts on Github. We learned how to type 'git push' and 'git pull'. We became more confident. Git is just like any other source control system! But it wasn’t long before one of our devs called me over to look at a…situation.

Read More


Busy day in Manhattan… but there’s always time for the paper.


Busy day in Manhattan… but there’s always time for the paper.

(Source: annstreetstudio)

Deployment and Iterating for Web vs. Mobile Apps

With a web application, deployment is entirely within your domain. Trying new things and iterating quickly are easy to do and processes like partial roll outs, A/B testing, and continuous deployment are well documented and battle tested. Users are not shocked if some part of a web application morphs subtly from time to time. For example, I’m willing to bet most people have been in Google Search experimental group at least once.

Contrast this to mobile application development. Application updates are explicit and user initiated. Review times are long. Partial roll outs, A/B testing, and continuous deployment are impossible or difficult (especially on iOS). Users do not have experience with half baked features popping up and being suddenly removed — they see the application as lacking polish and react negatively.

There is simply no room for half baked features in mobile application development. You need to think carefully about what segments of the feature are released in what order, and you must make sure what you do release is fully baked.