From Novosibirsk, Russia? Our tiny company is looking for current or future rock-star developers.

July 17, 2011

Ruby and Python guys, and Google does not get art

Python appeals to a very different kind of person than Ruby does. The names do not matter, might also call them “math guys” (Python) and “art guys” (Ruby). What matters is the description of their profiles.

Ruby/art guys equally value the content (utility) and form (syntax, appearance). They treat the code as a beautiful novel and make every line fit into the overall story functionally AND visually. They want elegant tools and languages that provide the freedom of speech that fiction writers would enjoy. They experience their code emotionally, and the biggest decision maker is their vision and gut.

Python/math guys value objectiveness, and the logic behind their decisions rarely focuses on the emotional side. Their sense of elegance and beauty is based on rational concepts like conciseness and readability, and thus on the objective utility. They also have a higher tolerance for pain, feeling ok with messy code, sucking tools and corporate environments.

Ruby and Python guys talk in the same terms of elegance, perfection, power and freedom, but have a hard time understanding each other because these concepts mean different things to them. The Django framework says it’s for perfectionists, but boy are those perfectionists different from the Ruby ones. (Hint: no Ruby guy would ever call him self “a perfectionist with deadlines”.)

Ruby and Python guys might dig the same things, for different reasons. CoffeeScript both adds a great utility and allows writing beautiful programs. Git has immense power, but also is the only version control system that gives a freedom of expression.

Now, the Ruby guys are the first to dig things like Mac, Git, CoffeeScript, Stylus and LESS, because the elegance is clear from the first look, while the utility may be something where you’d be weighting pros and cons.

Deciding who you are is very easy. If you pick something by weighting pros and cons, you are a Python guy. If you pick things you fall in love with, you’re a Ruby guy.

I’m not saying that Ruby/art point of view is the ultimate one. I certainly encourage adopting it, however the winning technologies must appeal to both kinds of people. That requires especially bright visionaiers who do artful and clearly useful things.

(I love Git as an example of this. There are recorded cases on the Git mailing list when Linus has been telling ’fuck you’ to people studying the version control math for their whole life.)

What does Google have to do with all of this? Google is tightly packed with Python guys, and that’s a sure way to make some sucking products and choices.

1. Google loudly picked Mercurial instead of Git, back when the hg vs. git debate was still open but the winner was already clear to anyone with minimal vision skills.

2. Google missed the whole Ruby thing.

3. Google is now actively missing Node.js. Google App Engine does not support Node, and is also years behind the elegance of Redis and Mongo.

4. Go is the ultimate language designed by Python guys. Seriously, what kind of person would even think about using something that ugly? (Well you kind of know how to call them now.)

5. Android is “tolerable” at best to the Ruby guys, while is (probably) loved by the Python ones. Compare it to iOS, which generally appeals to both ways of thinking.

6. Pretty much everything Google does sucks visually. Gmail used to be nice, now opening it makes me cringe. Google Docs and Google Sites are the ultimate suckers, probably held an ulgiest-CSS-contest to style them.

7. There is a great post by an ex-googler about what’s wrong inside of Google. You can see what a high pain tolerance and a lack of constant push for elegance lead to.

Google Code has added Git support last week. This basically admits something that every Ruby guy has known for several years — you have to be stupid to not use Git.

I’d finish this with: listen to the Ruby guys, they know what to bet on. However that does not make sense, because Mercurial still works pretty well, and Android still runs your apps kinda fine, and those Python guys will be happy with their objective choices anyway.

July 02, 2011

News Weekly: Zynga

Два события прошедшей недели заслуживают внимания: Google+, про который вы уже знаете лучше меня, и IPO Zynga. Разведение онлайн-ферм нынче стоит $1B (B = миллиард).

Возможно, доходы Zynga не столь велики, как хотелось бы, но удивления масштабов LinkedIn и Groupon их акции, похоже, не вызовут. Как написали в Business Insider, «the most stunning thing about Zynga's IPO filing is... nothing».

Будем следить за реакцией DHH, который никогда не упускает случая посмеяться над IPO.

June 26, 2011

Node.js is bigger than Rails

Most of the real world companies will skip Rails and go straight to Node, like they skipped all the DVCS debate and went straight to Git.

One might expect Rails to be a clear winner for the foreseeable future, now that it is seeing a widespread adoption and we are no longer discussing whether it's ready for the enterprise.

However, what everyone is talking about instead is Node.js. One of the reasons Node is big is that JavaScript itself is big, and a completely JS-based web stack amplifies the effect. Besides, geeks are loving it, and JavaScript is now the cool kids' language the way Ruby had been before. Lean MVC in JavaScript? Backbone. Cocoa in JavaScript? SproutCore. Lean JS minifier? Check, and they're laughing at the “gazillion lines of code” of Google Closure Compiler. VMware in JavaScript? That's sort of possible, too.

Companies from hosting providers to traditional PHP-centric shops are now looking into Node. The clients of mine that haven't adopted Rails yet seem to already be more interested in Node than in Rails. And as we've learned recently, even Microsoft is sponsoring the Windows port of Node.

Node seems to be getting the kind of traction Git has: first noone knows about it, then one day everyone is talking about it, and then everyone is using it. We're not there yet, but Node.js looks like the best bet in the coming years.

June 24, 2011

News Weekly: WWDC2011, GitHub for Mac, SocketStream, iA Writer

1. Apple выложила видеозаписи WWDC 2011. Если вы iOS-разработчик, их необходимо посмотреть: половина всей нетривиальной информации про iOS и Mac обычно бывает только в видео с WWDC. http://developer.apple.com/videos/wwdc/2011/ — 109 сессий, 90 часов видео, из них лично мне можно не смотреть всего 4, и то лишь потому, что я не интересуюсь OpenGL.

2. GitHub выпустил Git-клиент для мака — первый клиент для системы контроля версий с достойным интерфейсом уровня Tweetie/Reeder. https://github.com/blog/878-announcing-github-for-mac. Также интересно то, что он написан на Chameleon — реализации iOS API для Mac.

3. https://github.com/socketstream/socketstream, «a phenomenally fast real-time web framework for Node.js». Первый full-stack framework а-ля Rails для single-page client-side приложений. Покрывает все от структуры директорий и упаковки asset'ов до namespacing'а серверных API.

Взаимодействует с сервером через веб-сокеты, упраздняет медлительные HTTP-запросы, имеет pub/sub.

Включает любимые нами CoffeeScript и Jade. Что закономерно, из коробки предлагается Stylus вместо привычного LESS. Сможет ли Stylus вытеснить LESS/SASS так же уверенно и окончательно, как Jade вытеснил HAML, еще не ясно, но стоящие за ним ребята из learnboost — сильный аргумент.

Текущая версия 0.1.01. Разработка выглядит столь же серьзно, как у Node.js; прошлые версии имели номера с 0.0.1 по 0.0.58.

4. “I’m pleased to announce that Microsoft is partnering with Joyent in formally contributing resources towards porting Node to Windows.” (Node.js blog)

5. iA Writer — классный текстовый редактор в стиле WriteRoom, только в 10 раз более polished. Помимо великолепного дизайна и UX, чего стоит одна только поддержка Markdown. $18, покупать не раздумывая. Я мечтаю, чтобы мой блог выглядел как экран iA Writer (скриншот).

6. http://blog.documentcloud.org/blog/2011/06/code-drop-visualsearch-js/ — очередная прикольная штука от DocumentCloud. Едва ли требуется еще реклама; все, что делают авторы CoffeeScript и Backbone.js, заслуживает не меньшего внимания, чем новые операционки Apple.

7. Optimizely Open-Sources Guiders.js, a Library to Help You Guide New Users.

Несколько интересных статей:

* Why is JSON so popular? Developers want out of the syntax business

* Nevada Passes Law Authorizing Driverless Cars

* My Life as an Undocumented Immigrant

April 22, 2011

Работа для (настоящих или будущих) клевых суперпрограммистов

Умные люди из Новосибирска, которые живут и дышат программированием, у меня для вас есть работа.

Кто вы: действующий или будущий Rock Star Developer

Не важно, какой у вас опыт, где вы уже работали или что писали. Важно, чтобы вы не боялись вечером услышать про новый язык, а на следующий день его уже знать; чтобы стремление к красивому и правильному было у вас в крови, а желание узнавать новое превышало все остальное.

Примерно сколько мы готовы платить:

15 тыс. совсем junior intern'у;
20-30 тыс. тем, кто успешно двигает проекты вперед;
40-60 тем, кому можно отдать проект и забыть;
70-120 тем, кто может делать самые сложные проекты, жонглировать несколькими заказами, быть источником инновации и успешно вести компанию вперед.

Если вы делаете работу с любовью и качеством, все остальное (график, занятость, возраст) не важно. Офис находится на Демакова, 27. Разумеется, вы можете работать из дома, если получается.

Для верхнего уровня зарплат с удовольствием рассмотрим варианты сотрудничества с совместным владением бизнесом (т.е. процентами от руководимой вами команды).

Кто мы

Миниатюрная новосибирская компания, всего несколько человек под моим руководством. Нам остро нужны люди, обладающие указанными свойствами. Разумеется, такие люди нужны всем, всегда и везде, но нам в особенности.

Когда собрались публиковать вакансию, поняли, что компании не хватает названия. Решили называться the Octomonkey Group. Разумеется, сайта тоже пока не придумали — и без этого работы выше крыши.

Мы занимаемся всем современным, что попадается под руку. В данный момент это:

* iOS (конечно же)
* немного Android'а
* немного разработки под Mac
* Web (разный — от jQuery + Node.js до нормального удобоваримого PHP; есть один заказчик на PHP/Drupal, но о нем мы предпочитаем не упоминать)

Что делать дальше

1. Хотите продолжить общение? Пишите мне на andreyvit@gmail.com.

2. Знаете кого-нибудь, кому могло бы быть интересно? Отправьте им ссылку!

См. также: эта вакансия на rabota.ngs.ru.

March 26, 2009

Софтовый шоппинг

Есть на свете серьёзные покупки. Например, автомобиль люди (чаще всего) покупают вдумчиво: изучают характеристики, ходят по салонам, сравнивают, изучают результаты тестов. Прямая противоположность им — рутинные покупки вроде молока и хлеба.

Посередине же существует шоппинг — получение удовольствия от спонтанных «удачных покупок». Что такое удачная покупка? Что-нибудь, что сразу понравилось. Или что-то потенциально полезное, но очень дешево. Или что-то, что давно хотел и случайно встретил. Кажется, будто люди ищут в магазине товары, но на самом деле они ищут удовольствие от самого факта покупки.

Эти три рынка совершенно различны. Важно понимать, на какой из них вы хотите попасть с вашим товаром (или мазагином).

Посмотрим на софт. Большинство разработчиков считает, что они продают автомобили: пользователь сначала обнаружит потребность, потом пойдет выбирать, проанализирует варианты и что-то одно купит.

Разумеется, часто так и бывает. Но не нужно забывать и про другие варианты. Например, возьмём MacUpdate Promo: большие (вроде 50%) скидки на программы, которые длятся один день (каждый день продают новую программу). Я подписан на их рассылку, и там регулярно пробегает софт, который очень хочется купить.

Или, например, по статистике подавляющее большинство купленных в App Store iPhone-приложений никогда не запускают второй раз. Когда Apple рекомендовали цены вроде $0,99 или $3,99, думаю, они прекрасно понимали, что делают: магазин, в котором люди будут наслаждаться покупкой, а не удовлетворять возникшие потребности.

Кто-то из блоггеров недавно сравнивал iPhone-приложения с шоколадными батончиками: люди считают нормальным потратить бакс на Snickers и съесть его за две минуты, точно так же нормально потратить бакс на игрушку и поиграться в неё пять минут.

Для шоппинга очень важен user experience, поскольку на самом-то деле у пользователя нет большой потребности. Он сбежит, если вы не будете его развлекать и удерживать. «Самое популярное», «еще часто покупают вот это», отзывы, заказ в один щелчок — всё это вводит пользователя в flow state, при котором он получает удовольствие, а вы — деньги.

В этом часть гениальности iTunes: он делает шоппинг до безобразия простым и неотделимым от прослушивания музыки. Apple успешно развивает рынок в направлении «шоппинг — часть нормального использования софта». В iPhone OS 3.0 можно покупать дополнения из самих приложений; на сцене мы видели демку Sims 3, где в процессе игры можно докупать коллекции вещей, и демку многопользовательской стрелялки, где перед боем можно купить rocket launcher и другой полезный арсенал (за реальные деньги! вы только подумайте!)

Не знаю, как вы, а я считаю это гениальным. Не пропустите возможность встроить шоппинг и в ваши программы. Может, маленькие милые плагинчики? Мелодии или темки? Что-то, что нафиг не нужно пользователю, но зацепит его с первого взгляда. И не забудьте делать некоторые товары более удачными покупками с помощью скидок, featured items, editor’s choice, рейтингов.

(Разумеется, товары не обязаны быть платными. Вы можете зарабатывать деньги за счет популярности или рекламы, или же предлагать смесь платного и бесплатного. Поэтому вас, разработчики open-source, данный метод тоже касается: ничего так не увеличивает популярность, как каталог почти никому не нужных фенечек, которые можно поставить одним кликом.)

March 09, 2009

Sneak Peak: YourSway Builder

Наша компания отличается еще и тем, что пользуется самописной системой сборки. Когда-нибудь мы доведем её до продукта и будем предлагать другим, как CrashKit, но пока что YourSway Builder — это приватное удовольствие.

Зачем писать своё, когда в мире есть BuildBot’ы и CruiseControl’ы? Чтобы не париться с их поддержкой. Каждая существующая система предполагает, что вы держите настроенный клиент и сервер, и готовы с ними возиться каждый раз, когда вам нужно изменить способ сборки или начать собирать новый проект.

Мы, напротив, хотим, чтобы для поднятия билдов нового проекта было достаточно браузера.

На любом компьютере можно запустить клиентское приложение, которое сможет собирать любые проекты, скачивая все нужные пререквизиты. У нас каждый член команды может запросто запустить сборку любых проектов на своем компьютере из своих репозиториев (ибо при использовании DVCS у каждого может быть свой репозиторий).

На страничке в Backpack есть несколько скриншотов, а также описание нашего vision’а. Повторюсь, что в YourSway Builder’е пока есть только то, что было нам совершенно необходимо. Мы им пользуемся во всех проектах, но для публики он еще не готов.

А что вы думаете по поводу билд-систем? Чего вам в них не хватает? В каком виде YourSway Builder был бы вам интересен?