Monthly Archives: December 2013

Потребление контента

Начал слушать в машине подкасты. Последний раз я так регулярно слушал что-то в транспорте, тогда еще в общественном, года 3 назад – 2010 или 2011 год. Я тогда в основном слушал записи передач радио Финам ФМ.

Сейчас у меня в плэйлисте 4 подкаста:

 

The Hansel Minutes

Радио Т

Умпутун

Янки после пьянки

 

Радио Т – это такое веселое обсуждение последних новостей. Что-то типа “ПрожекторПерисХилтон” для гиков.

Янки и Умпутуна я уже слушал когда-то очень давно (году этак в 2006).

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

 

Какие еще подкасты достойны внимания?

 

Потребление же блогов я в этом году перевел на совершенно новый технический уровень :)

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

Сначала я просто не читал блоги потому что их не было.

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

В районе 2007 года я собрал самодельный агрегатор на основе Yahoo Pipes (кажется этот сервис еще даже живой http://pipes.yahoo.com/pipes/). Yahoo Pipes позволял построить систему обработки данных: импортировать потоки данных из разных источников, и дальше что-то с ними делать – менять содержимое, фильтровать, сортировать, собирать несколько потоков в один, и в итоге выдавать результат в нужном формате. Что-то типа SQL Server Integration Services, но в очень простом исполнении и с веб-интерфейсом. Я собрал такую штуку которая собирала несколько RSS потоков, сливала в один, сортировала посты по дате, и выдавала наружу RSS. Этот RSS я скармливал сервису Yandex Lenta (вот этот сервис уже похоже помер), который уже отображал ленту в веб-интерфейсе.

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

Мне нужно было какое-то более гибкое решение. Когда-то я смотрел в сторону Google Reader, но видимо тогда он был еще слишком сырой. Позже в нём все нужные плюшки появились, но я об этом узнал уже когда Гугл объявил сервису смертный приговор.

Тогда я узнал о Feedly http://feedly.com/. И похоже он умеет все то что мне нужно, и даже немного больше. Сортирует по дате, можно помечать посты как непрочитанные, есть несколько разных представлений ленты, есть даже приложение для смартфонов. Все читаемые мной ЖЖ я перекинул туда, плюс накидал еще ряд интересных англоязычных источников.

Единственная проблема Feedly – он не слишком умен, чтобы сортировать контент по интересности. Хотя мог бы. Например, у меня в ленте есть несколько RSS источников, где новые посты появляются слишком часто (NextBigFuture, SFGate), а Hacker News я так и вовсе удалил из ленты, потому что его неприлично много. Если бы Feedly мог как-то по контенту или через алгоритмы recommendation system догадываться, что из этого мне более интересно, и поднимать в топ – я бы даже за этот сервис готов был заплатить. Они уже что-то пытаются делать в этом направлении (показывают TOP3 stories), может из этого и выйдет толк.

SF vs Techies

Судя по СМИ, тут в SF странные народные настроения – многие настроены против технарей. Hi-tech компании приходят из кремниевой долины в SF, да и вообще отрасль на подъеме, так что в город понаехали технари разного рода, с высокими доходами. Скупают недвигу, рентуют недвигу. Здания, которые десятилетиями использовались для сдачи апартаментов, оформляют для продажи, и старых жильцов выселяют. И соответственно недвига для покупки и для рента взлетает в цене. А если цена апартмента переваливает за миллион, и рент ниже $2000 в месяц найти почти нереально – люди с низкими доходами вынуждены уезжать в пригороды.

Статья от New Yorker об этом (они конечно левые товарищи, но пишут складно):

http://www.nytimes.com/2013/11/25/us/backlash-by-the-bay-tech-riches-alter-a-city.html?pagewanted=all&_r=0

 

Разные новости от SFGate (в т.ч. о том, как странные люди блокировали частные автобусы Google, которые ежедневно забирают работников в SF и везут их на работу в офис Google в долину):

http://www.sfgate.com/bayarea/williesworld/article/Techies-must-nip-growing-scorn-in-bud-5006404.php

http://www.sfgate.com/bayarea/article/Google-riders-under-siege-or-alien-5065290.php

http://www.sfgate.com/bayarea/article/S-F-tech-companies-civic-image-at-stake-as-5065669.php

http://www.sfgate.com/bayarea/nevius/article/Total-techie-takeover-of-Mid-Market-Won-t-happen-5076597.php

http://www.sfgate.com/bayarea/article/Listening-to-the-many-sides-in-the-great-tech-5085000.php

 

Мнение со стороны технарей:

http://valleywag.gawker.com/psa-please-stop-calling-nerds-the-t-word-1475784145/@sambiddle

 

Вроде бы и понятно, что люди ведут себя неправильно. Технари не виноваты в том, что все эти люди не могут купить или рентовать квартиры в SF, и что им приходится ездить на работу на общественном транспорте. Они не нарушают законов, не ущемляют прав других людей. Но при этом весь негатив направлен на них. Печально. Надо больше заниматься повышением грамотности населения.

Что было в 2013

Календарный год – это такая формальность. Год с 1 января по 31 декабря ничем не лучше и не хуже года с 1 апреля по 31 марта, или с 14 августа по 13 августа. Но уж так принято, что календарный год начинается с 1 января, все к этому привыкли, и это удобная дата для того чтобы остановиться и посмотреть, что же случилось за год.

Предыдущая заметка такого рода (2012 год): http://surmenok.ru/2012/12/31/itogi-2012-goda/

В 2013 году же я:

  • Побывал в Украине, и даже жил там и работал аж целых 8 месяцев. А ведь еще в ноябре 2012 я бы не мог предположить, что когда-либо там побываю, это было совершенно вне моих планов. Из того что запомнилось – очень дешевая еда в ресторанах, плохие горнолыжные курорты, и какое-то ощущение что вернулся в 90-е.
  • Перешел на работу в Pearl.com.
  • Переехал в San Francisco Bay Area. Живу в San Rafael (городок в 16 милях к северу от SF через Golden Gate Bridge), работаю в San Francisco. О процессе получения H1-B визы я уже писал: http://surmenok.ru/2013/08/18/kak-delaetsya-h1-b-viza/
  • Получил замечательный опыт работы в распределенных командах, причем в трех разных с совершенно разными комбинациями распределения труда между US, Ukraine, India.
  • Увидел, что legacy код 10-летней выдержки с ~4 млн строк кода может реально работать без критичных дефектов на продакшне. Amazing.
  • Купил машину: 2014 Toyota Camry Hybrid XLE.
  • Впервые увидел океан.
  • Попробовал на себе американскую медицину и медицинское страхование.
  • Из техники: купил, еще будучи в Украине, Sony Vaio Z-series японского производства. Ноутбук отличный: думаю, что по железной составляющей не уступает лучшим макбукам. Цена конечно соответствует.  В общем до сих пор на нем работаю, и его мобильность мне немало помогла во время частых переездов между Украиной и Москвой, путешествием в сибирь, и потом перелетом в SF. Уже в штатах решил, что дома мне совершенно необходимо несколько хороших мониторов, и для начала купил 27-дюймовый 2560×1440 Dell UltraSharp U2713HM. И напоролся на трудность: не могу нормально подключить его к вышеупомянутому ноуту из-за слишком высокого разрешения. Похоже придется мне купить десктоп для домашнего пользования, потому что Sony Vaio Z-series уже не производят, да и не хочется пока тратить несколько тысяч долларов на апгрэйд ноута. Десктоп как-то подешевле будет.

 

Пожалуй, если кратко, то это был год переезда в US. Это мой третий переезд за последние 8 лет (Тайшет – Красноярск – Москва – San Francisco), с заездом в Украину по дороге. Надеюсь, больше в ближайшее время менять дислокацию не придется.

Legacy

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

Я ценю знание, полученное из личного опыта, и поэтому стараюсь выжать побольше из того небольшого личного опыта, который у меня есть.

К примеру, на предыдущей работе в компании, занимающейся заказной разработкой решений интеграции софта контакт-центров, я проработал меньше года. В новой команде, на амбициозном проекте. Что-то с нуля проектировали, какие-то передовые практики внедряли. Я сам какие-то решения принимал, видел, как другие люди работают и какие решения принимают, и как их аргументируют. Но одного года мало чтобы увидеть к чему все эти решения ведут. По факту система, которую мы делали, даже не успела дойти до продакшна за этот срок. У меня были какие-то гипотезы, к чему идет проект, куда идет компания, что будет если сделать так или эдак. И теперь, хотя я и не могу больше видеть всё это изнутри, но по внешним эффектам могу что-то понять: какие мои гипотезы оказались верны, а какие были ошибочны.

Сегодня я увидел один из внешних эффектов – презентацию “Legacy vs Agile Team”, где Алексей (докладчик) рассказал о страшностях, случающихся, когда приходится бороться с legacy кодом, и как это влияет на процесс разработки.

Презентация по форме неплохая – рассказ складный, слайды ненапряжные. Пожалуй, сильно лучше чем предыдущие презентации Алексея.

Что касается содержания… Мне показалось, что под словом “legacy” кроются две совершенно независимые проблемы, которые и решать надо независимо, разными способами.

Первая проблема – это технический долг. На самом деле, технический долг – это проблема, не обязательно относящаяся к legacy коду. Та система о которой Алексей рассказывает как о рае для разработчиков тоже страдала от технического долга буквально с первого месяца разработки. И это нормально. Невозможно работать в agile проекте, не сталкиваясь с проблемой технического долга. Требования постоянно меняются, и какие-то кусочки системы перестают отвечать новым требованиям, что приводит к возникновению технических работ, напрямую не связанных с продуктовыми требованиями.

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

Вторая проблема – это внезапные критические баги, которые требуется разрешать в кратчайшие сроки. И тут я могу уверенно сказать, что это не атрибут legacy системы. Потому что мой опыт работы с более крупной и более старой системой (более 10 лет, более 3 млн строк кода) показывает, что даже самый ужасный внутри код может отлично работать на продакшне, вызывая в год не более 2-3 дефекта которые надо решать немедленно.

Эта проблема скорее должна решаться лучшим тестированием кода. Покройте критичные бизнес-сценарии тестами (лучше автоматизированными, хотя и не обязательно). Прогоняйте тесты перед релизом. И проблема решена.

Пожалуй, доклад стоило бы назвать «Переходный период адаптации некачественного кода Agile командой”, потому что озвученные проблемы – это проблемы именно переходного периода.