2014-04-20

О Droidcon Moscow 2014

Оказалось, что я все же Андроид разработчик и мне есть, что сказать. Так я оказался на Droidcon Moscow 2014. Первой в России международной конференции Андроид разработчиков, по заверению организаторов.


Международность конференции заключалась в том, что главный её организатор — Дэн Ромеску, таки из Германии. А большая половина жюри случившегося хакатона — тоже из Польши.

Есть удивительное отличие между конференциями в Москве и в Замкадье (за Омск, Новосибирск и Екатеринбург точно ручаюсь). Здесь у нас все спонсоры конференций приходят на неё за кадрами. Хэдхантят, переманивают и соблазняют по полной. А в Москве соблазняют не на работу, а на продукт. Они пытаются привлечь пользователей. Технологии (даже языка), библиотеки или SDK, конкретных товаров. Но именно пользователей, а не работников.

Первым делом я, пройдя через регистрацию на конференцию, перетер с диджеем красоту звучания и удобство использования винила. Потом я пошел щупать ЙотаФон. Это тот самый телефон со вторым электроннобумажным экраном на спине. Концепция интересная. И даже, пожалуй, удобна в некоторых случаях. Например, мне было бы неплохо вывести на задний экран карту текущего маршрута до точки назначения, а на главном экране запустить Ingress. Или удобно было бы открыть на энергосберегательном экране заметочку/рецепт из приложения заметок. Не понравилось мне, что на ЙотаФоне нет ни аппаратных кнопок (кроме вкл и громкости), ни сенсорных, ни наэкранных. Все эти «Домой» и «Назад» делаются жестами на панельке под экраном. А задний экран управляется вообще десятком труднозапоминаемых жестов. Не нравится мне, что девайсом невозможно пользоваться без прочтения инструкции.


Я так интенсивно щупал ЙотаФон, что мне предолжили адаптировать какое-нибудь мое приложение под него. Через час раздумий я решил попытаться вывести погоду из всепогодного приложения на задний экран. Записался на хакатон.

Были там еще телефоны Nokia X, телефоны Alcatel, очки тридэшной дополненной реальности от Epson, тридэ принтер и что-то еще. Про Nokia X даже были доклады. Довольно удручающе. Мало нам всяких оболочек от изготовителей, Киндла, Яндекс.Кита и MIUI. Теперь еще есть и Андроид от Нокии. И лишь 75% приложений совместимы с ним без переделки. Привет, фрагментация!

Виталий Засадный чудесно рассказал про игры для гуглоочков. Игры делать там весьма специфично. Пока получается делать лишь простенькие. Кстати, на хакатоне запилили Арканоид для Очков. А я бы, пожалуй, не отказался от Ingress для них же. Ok, Glass, hack the portal!

Матеуш Герич выдал лучший технический доклад всей конференции. Оказывается, еще с самых первых Андроидов, SQLite в них — это не просто SQLite, а SQLite с включенным расширением полнотекстового поиска FTS3. Не нужно делать медленные и глупые запросы с LIKE, нужно делать нормальный, хоть и простенький, полнотекстовый поиск. Для локальных данных на телефоне. Круто же!


Напоследок Перт Козневский продемонстрировал без единого слайда, зато вживую, рекламно-развлекательное применение дополненной реальности. Возможно, дополненно реальный каталог Икеи чуть более полезен, но это тоже развлечение. Жаль, но дополненная реальность нынче только такова.

Потом начался хакатон. Я решил, что сидеть всю ночь в Digital October — это слишком тяжелое испытание для моего организма. Поэтому, вместе с омскими GDGшниками я прогулялся по вечерней Москве, посетил Макдональдс и Третьяковку, попил пива до полуночи.

А таки несколько часов ночью и пару часов поутру я похакатонил. Повоевал с ЙотаФонным SDK. Оказалось, что у них слегка модифицированный эмулятор, и нужно перезаписать исполняемые файлы оригинального эмулятора. Иначе на заднем экране будет красивый черный фон. Сама SDK подключается к проекту как обычный JARник. Однако все методы в этом JARнике выбрасывают RuntimeException с сообщением «Stub!». JARник, оказывается, нужен только для компиляции, а актуальная реализация находится где-то в девайсе/эмуляторе. SDK — это лишь три с половиной класса. BSActivity для рисования на заднем экране (причем на самом деле это не активность, а сервис). Можно отрисовывать обычные лейауты, превратив их предварительно в картинку. Можно прорисовывать только часть заднего экрана. Можно выдавать уведомления на задний экран. Вот только BSNotification сильно беднее стандартного андроидного уведомления. А вызов BSNotificationManager содержит внутри себя bind к какому-то сервису, из-за чего его нельзя использовать в BroadcastReceiver. С андроидным NotificationManager нет такого ограничения. Ну а набор жестов для управления этими уведомлениями я так и не осилил. Как-то все грустновато. И вообще, мне вдруг захотелось отображать на заднем экране «карточки» с контентом от разных приложений, а этого в SDK нет. Кстати, на хакатоне запилили набор аннотаций для работы с этим задним экраном, йотовцы приз за это дали.


На второй день случились «баркампы». Которые баркампами не являлись, ибо были короткими заранее подготовленными докладами с презентацией. Тут выступил Леша Зиновьев и я. Вроде неплохо получилось.

Ребята из моего любимого Whisper Arts рассказали о том, как они пришли к платформе для создания, публикации и показа интерактивного контента под разные мобильные ОС. И о том, какими должны быть мобильные приложения для детей. Приложения для детей должны быть интересны и полезны и для взрослых. Потому что взрослые денюжку платят.

Вадим Митякин поделился опытом успешного взаимодействия дизайнеров и разработчиков. Вообще, со сцены несколько раз говорили о важности дизайнера в мобильной разработке. А вот самих дизайнеров что-то не хватает, даже на хакатоне.

Потом началось и сильно затянулось закрытие хакатона. И я ничего не выиграл. На этом конференция для меня закончилась.


Ссылки:

2014-04-19

О Mail.ru, Одноклассниках и Яндексе

По странному стечению обстоятельств я оказался в Москве, и на целый день у меня не было конкретных планов. В результате я запланировал посетить офисы Одноклассников, Mail.ru и Яндекса (по-знакомству, конечно). И посетил.


За два дня до дня Х внезапно оказалось, что Одноклассники являются подмножеством Mail.ru Group. Т.е. посещать пришлось на один офис меньше.

Mail.ru Group расположились в одном из двух чуть-менее-чем-тридцатиэтажных офисных небоскребов на Ленинградском проспекте возле метро «Аэропорт». Если кому-то это что-то говорит… Ленинградский проспект — это адовая улица шириной в восемь полос в каждую сторону. И все шестнадцать полос едут. Впрочем, по утрам понедельника и вечерам пятницы, говорят, восемь из них стоят.

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


Итак, в Mail.ru. Спортзал есть. Зона отдыха с баблами и большущим экраном есть. Тренажерные и прочие спортивные залы есть. Бассейна нет, он есть в соседнем здании. Столовка есть. Супер-дупер-скоростные лифты в количестве шести штук есть. Светлые офисы с кондиционированием есть. Застекленные переговорки с супер-дупер оборудованием для видеоконференций есть. Розетки в полу есть. Две кухоньки, набитые печеньками и кофем на каждом этаже есть. Туалеты есть.

Столы соорганизованы не в стандартные «кубиклы», а в «звездочки». Круглый стол шиворот навыворот. Сидят внутри круга, спиной-плечом друг к другу. Не понимаю необходимость именно такой организации пространства. Но допускаю, что производитель этих столов имеет нехилую отмазку их необходимости и дерет за это кучу денег.


Порадовало, что на большинстве белых вертикальных поверхностей, включая колонны и двери шкафов, можно и нужно писать маркерами. Стены — гораздо удобнее досок.

В общем-то, почти ничем не отличается от того офиса, где я сейчас работаю :) Ну ладно, не двадцать четвертый этаж, а двенадцатый. Не панорамные окна, а обычные. Но кухня, печеньки и удобный стул — на месте :)

Этот небоскреб напомнил мне здание Нью Йорк Таймс. В этой газете есть весьма серьезный свой отдел разработки. И я там был.

Тоже небоскреб. Соответственно тоже в центре шахты лифта, а рабочие места — по кругу вдоль остекления. Вот только спортзалов и здоровенных зон для отдыха у Нью Йорк Таймс нет. Зато столовка расположена не на первом этаже без окон, а наоборот повыше и с прекрасным видом. Ну и кормят там разнообразнее, но это скорее болезнь особенность Нью Йорка вообще (там едят все и в совершенно разных сочетаниях). А кухоньки на этажах, наоборот, в Америке темненькие и засунутые подальше с глаз.


У меня складывается впечатление, что в Америке люди ходят на работу работать. Сугубо с девяти утра до пяти вечера. А потом спешат домой. А в России хотят, чтобы человек жил на работе. Круглосуточно. Вон, в одинадцать утра я видел людей, занимающихся утренним фитнесом. Им еще день работать. Когда они домой пойдут?

Офис Яндекса расположен сильно ближе к центру Москвы. Возле метро «Парк Культуры». Теоретически достаточно перейти мост, и ты в парке Горького. Небоскребов нет. Но зато есть целый «кампус» размером с квартал, где все — офисы Яндекса. Ну за исключением пары столовок и открывающегося вскоре Старбакса. Этажей тоже гораздо меньше. Зато есть уютные крыши, где можно поиграть в шахматы.


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

Навигацию в Яндексе делал Татьяныч. Все колонны пронумерованы. Все переговорки имеют уникальные наименования, связанные с номером этажа («5. Колесо», например). Всюду встречаются неожиданные картинки и указатели.

Мои московские фоточки есть в гуглоплюсе. Но, конечно, не я один фотографировал интерьеры Mail.ru и Яндекса. В них вообще все любят ходить на экскурсии.

Спасибо Даниилу, Владимиру и Сергею. Привет Александру.

Буду в Питере, напрошусь на экскурсию в еще один известный офис.


З.Ы. Говорят, самое сложное в работе в Mail.ru — не работать в Яндексе. Что по этому поводу думают яндексовцы — мне неизвестно.

2014-04-06

О CodeFest 2014

Вот и прошел очередной (как оказалось, аж пятый) CodeFest. Снова поезд в Новосибирск (ура, купе!), снова хостел (FunKey, рекомендую), снова тонны кофе и борьба со сном, снова виски, пиво, местами коньяк, снова два дня в слушании докладов и хождении по стендам, снова поезд в Омск (ура, снова купе!), снова неделя отходняка.


Впрочем, в этот раз у меня была гармошка и Ingress. Гармошка пригодилась в очередях (больше прекрасных фей на регистрацию!), Ingress пригодился мало, но куча ключей от Новосибирска теперь у меня (спасибо зеленым коллегам).

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

СКБ Контур снова привез свою гигантскую дженгу. Но из-за сильно более низких потолков (чем на DUMP), было не так весело.

Покрутился вокруг стенда JetBrains, где рулил Филипп Торчинский. Выяснил, что распродажи тринадцатой IDEA не будет, ибо «и так хорошо покупают». В результате поучаствовал в розыгрыше лицензии, не выиграл и смирился с тем, что придется отдать $100 за апгрейд. Впрочем, мне достался маленький липкий мозг от JetBrains в коробочке. Но я его передарил в поезде более жаждущим коллегам.


Обеды были хороши и вкусны (если успеть на них). Туалеты почти справлялись с нагрузкой. Очереди в гардеробы были не столь велики. Автобусы доставляли. Еще порадовал человек-видеокамера в шлеме, с фотоаппаратом перед носом и гантелей-противовесом на затылке. Очень любопытно увидеть, что он наснимал за полных два дня.


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

О докладах.

Keynote от Джеймса Уиттейкера не впечатлил. О заявленном Интернете вещей не было сказано ни слова. Было высказано мнение о том, каким должен быть веб. Чтобы везде и всюду всплывали контекстные подсказки о том, что это. Чтобы разрешить проблему discoverability информации и приложений. (Вот вы не знали, что существует приложение для подсказок о том, когда во время киносеанса можно сходить пописать, потому что в этот момент не будет ничего интересного? А оно есть.)

Чисто технически желание Джеймса можно исполнить уже сейчас. Нужно взять ChromeOS (где браузер == ОС) и добавить к ней кучу расширений, которые будут анализировать видимый текст и предлагать подсказки. Загвоздка в том, как анализировать и где брать подсказки. Кажется, это легко может превратиться в персональный информационный ад. Когда вам будут предлагать носовой платок за две минуты до того, как вы захотите чихнуть.

Неужели нужно дофига проработать в Гугле и Микрософте, чтобы весело и уверенно нести со сцены отсебятину? Вот я знаю человека, который вчера только выпустился из вуза, и он вполне с той же уверенностью может двигать похожие идеи.


Почему-то многие докладчики думали, что у них будет полный час. А было только сорок минут. Вот Олег Бартунов лишь быстренько пробежался по грядущим новшествам PostgreSQL 9.4. Очень вкусные новшества. Ура Постгресу! Вот только не надо постоянно извиняться за то, что NoSQL популярны. А то складывается впечатление, что добавление JSON в Postgres — это победа маркетинга MongoDB. (Впрочем, я считаю, что так оно и есть.)

Иван Круглов из booking.com рассказал о событиях. Это была история создания своего велосипеда для хранения и анализа пользовательских событий, происходящих в системе.

Артем Кудзев совершал подвиг на панели про технопиар. Он пытался свести воедино мнение зала и трех дам на сцене. Я дождался лишь окончания не вполне удавшейся попытки сформулировать определение технопиара. Имхо, технопиар, это разглашение внутренней технологической информации о деятельности компании с целью прямого и косвенного привлечения человеческих ресурсов. Косвенное привлечение — это самое интересное. Для этого нужны всякие свободные лицензии, открытые стандарты и API.


Ребята из Яндекса рассказали о том, как они делают из Хромиума свой Яндекс.Браузер.

Антон Турецкий из Badoo рассказал, как они используют Puppet. А используют они его везде и всюду. Даже для создания правил VPN доступа. Оказывается, идея хранить всякие права доступа и описание всех сервисов в нормальной SQL БД и рулить их через нормальную админку, а затем применять изменения где нужно через Puppet, — вполне работает.

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

В конце первого дня была большая панель про высоконагруженные интернет-проекты. В ответ на мой вопрос зубры со сцены облили грязью мой любимый ØMQ. Впрочем, со многими замечаниями я согласен. Посмотрим...

А я сбежал на незапланированный квартирник Светланы Фоминых о публичных выступлениях. Светлана рассказала историю о том, как надо рассказывать истории (во время выступления). В ходе рассказывания истории о том, как надо рассказывать истории, были рассказаны успешные истории о том, как рассказывание истории о том, как была придумана история, во время рассказывания истории может быть очень полезно. Ну а наглядный пример рассказывания историй (на американский манер) был продемонстрирован в начале этого же дня — keynote от Джеймса Уиттейкера. Организаторы, жажду слайдов и видео с квартирника!

Тихо и незаметно, после виски с колой (жуткая гадость, кстати), полутора литров пива и пяти часов сна, начался второй день конференции. (По слухам, чья-то печень в эту ночь получила гораздо более суровую нагрузку.)

Утро начал Асхат Уразбаев. Великолепный доклад про Scrum. Оказывается, тот самый Scrum, которому нас учили и который мы пытались внедрять, уже совсем не тот. И роли поменялись. И строгость оценки уменьшилась. И вообще все как-то идет в сторону того, чтобы процессы меньше мешали разработке. Налицо влияние методологии «Пиши код блин!».


Антон Волков из AlternativaPlatform очень грамотно, но несколько скучно рассказал про коммуникации в команде и командный дух.

Немного послушал квартирник про технический долг. Говорили правильные вещи. Но слишком затянуто получилось.

Потом зажигал Макс Дорофеев. Кто не знает, ослик целеполагания и человек-снежинка — это именно его мемы. Макс и Асхат, это такие докладчики, на которых нужно ходить просто ради них самих. Макс не сказал ничего принципиально нового (для меня), те же проблемы коммуникации и теория ограничений. Но, как на хорошем концерте, важно не содержание, а форма подачи материала. (Слово «жопа» прозвучало лишь два раза :)

Алексей Исаченко рассказал про Google Glass. Не успел рассказать про разработку под Glass. Но зато долго рассказывал, что Glass умеют и чем не являются. Мне кажется, в прошлом году в Омске его выступление было лучше.

Константин Осипов из Mail.ru рассказал про Tarantool. Все хорошо, конечно, но я не понял, зачем этот NoSQL велосипед, который перерос в сервер Lua приложений, вообще нужен. Мотивов не прозвучало. Интересно, насколько разработчики свободного и открытого ПО понимают мотивы тех тысяч пользователей, ради которых они стараются?

Доклад про Angry Birds разочаровал. Питер Вестербака не рассказал ничего такого, чего нельзя было бы прочитать в Википедии. Впрочем, он упомянул, что шоу, прошедшее на Красной Площади, будет повторено и в других городах России, что Злые Птицы имеют какое-то отношение к образованию, что начинает сниматься полнометражный фильм про Птиц.


Последний доклад Ивана Булатова про дополненную реальность изрядно повеселил. Похоже, я даже сэкономил на одной из вечерних чашечек кофе, так зажгло. В принципе, да, пока не появится новых технологий, вроде контактных линз с проектором, не видать дополненной реальности ничего, кроме интерактивных инсталляций. Гуглоочки — не дополненная реальность. Тот же Ingress — тоже не дополненная реальность. Каталог Икеи + соответствующее приложение — дополненная реальность, но практическая ценность, кроме рекламной, — сомнительна.

Кодефест удался. Хочу только больше русскоязычных сибирских докладчиков. Через год нужно повторить.