понедельник, 24 сентября 2018 г.

Go Meetup в Mail.ru

      Вчера рассказал на Go Meetup в Mail.ru о том как мы в Ozon.Travel переходим с C# на Golang, о некоторых типовых ошибках и возникающих сложностях.
      Доклад опубликован на Github: https://github.com/yvasiyarov/meetup-23-09-2018
Его можно посмотреть прямо тут - https://go-talks.appspot.com/github.com/yvasiyarov/meetup-23-09-2018/index.slide#1

воскресенье, 26 августа 2018 г.

Яндекс

       В свое время после прочтения Яндекс. Книга я стал горячим адептом продуктов яндекса. Даже поставил себе яндекс браузер и сделал Яндекс поиском по умолчанию.  Но сейчас могу сказать что я весьма разочаровался в том как Яндекс ведет дела на своем рынке. Зачастую Яндекс пользуется своим доминирующим положением на рынке российского интернета и ведет себя по хамски. Из последнего что меня взбесило - это Яндекс Советник. По сути эта штука крадет пользователей у магазинов. Когда ты приходишь в свой любимый магазин и хочешь купить XXX, а тебе тут всплывает окно и говорит - а вот там-то ты можешь купить XXX на 100 рублей дешевле. В такой ситуации даже самый лояльный пользователь может уйти в другое место.
        На первый взгляд это может показаться благородным делом - Яндекс помогает несмышленым пользователям с экономить деньги. Прям таки рыцарь на белом коне. Но тут важно понимать что Яндекс получает совсем не маленькую денежку за каждый такой переход. Ну и хрен бы с ним подумаете вы. Но тут есть важный момент -  предлагая более низкую цену Яндекс Советник абсолютно игнорирует другой важный фактор - качество сервиса. Если ты предоставляешь качественный сервис, пост продажно обслуживание и тд - ты не можешь демпинговать. Тебе нужно с чего-то платить зарплату сотрудникам службы поддержки пользователей, сотрудникам службы контроля качества и тд. Но если ты будешь всю свою маржу отдавать(сначала скинуть цену чтобы оказаться самым дешевым а потом еще заплатить за переход Яндексу) то ты будешь вынужден снижать качество обслуживания. Либо работать в убыток. А по другому никак.
         Получается что преследую на первый взгляд благородную цель Яндекс попросту набивает себе карманы и способствует к тому чтобы на рынке остались только компании типа плеер.ру - которые всегда на сто рублей дешевле но предоставляют не самый качественный сервис.  В общем для себя я решил - пора обратно переходить на гугл. И сносить яндекс браузер. 

Zappos.Доставляя счастье

       В своем списке для чтения я стараюсь чередовать техническую и не техническую литературу.  Одной из последних не технических книг которую я прочитал была книга "Zappos. Доставляя счастье" от Тони Шея. Книга очень легко читается, можно сказать взахлеб. Временами эта книга даже ощущается не как деловая литература а как приключенческий роман. Но при этом я могу сказать что я также почерпнул из нее много нового. https://docs.google.com/document/d/1-9odADCVK6uBR2eCXvm7v-IdT_t3fljTM0GvoE8zvkY/edit?usp=sharing  - пометки которые я сделал сам для себя. расшарил их со всеми на тот случай если они кому-то покажутся полезными. 
        В общем и целом книга стоящая, возможно через некоторое время я даже захочу ее перечитать (со мной такое бывает).




Java Performance: The Definitive Guide by Scott Oaks

       На днях дочитал книгу - Java Performance: The Definitive Guide by Scott Oaks.  Могу сказать что мне очень понравилось тот уровень детализации с которым описана работа GC(Garbage Collector).  Все что я читал до этого про сборщики мусора в Java было недостаточно глубоким и не отвечало на все мои вопросы. Автор весьма обстоятельно подошел к разбору всех возможных сценариев в работе сборщика мусора.   Неплохо было рассказано про компилятор, этапы компиляции и перекомпиляции. Много времени было уделено обзору инструментов. А вот главы посвященные производительности энтерпрайзных приложений мне показались довольно поверхностными и скучными. 
        Чего мне не хватило в этой книге - это описание memory layout. Я считаю что используемые алгоритмы во многом предопределены используемыми структурами данных. И если подробно рассказать о внутренних структурах данных используемых JVM то гораздо проще будет понять особенности ее поведения в той или иной ситуации.
     В последнее время я взял за правило выписывать по ходу чтения отдельные моменты которые мне казались заслуживающими внимания. Туда же я включил ссылки на инструменты или флаги JVM которые мне показались полезными. Эти записки сделаны на гремучей смеси безграмотного английского и русского языков, но возможно сама информация окажется кому-то полезной - https://docs.google.com/document/d/1-GapN42d-zcPuYYWI-iqIZJtb8KJWKpd1b8S-rX_qZ8/edit?usp=sharing 
         В общем и целом могу сказать что эта книга заслуживает прочтения.

вторник, 24 июля 2018 г.

GraphQL and DataLoader by Facebook

      Открыл для себя GraphQL и DataLoader by Facebook. Идея очень нравится. Особенно подписки.  Единственный вопрос который не дает мне покоя -  а насколько быстро это работает ?

вторник, 10 июля 2018 г.

GDS

        Не так давно мне пришлось окунуться в мир авиаперевозок и с тех пор я пребываю в постоянном шоке. Тут царствуют технологии из 70х. И все терпят. Почему ? я не знаю. Наверное главный критерий здесь - "просто чтоб работало".  Операторы выписывающие билеты работают в абсолютно убогих консолях набирая команды по памяти. Составляют в ручную маски бронирования состоящие из бесчисленных кодов.  Структуры данных ограничены бумажными носителями на которых они когда-то давно печатались. Например в одном билете не может быть больше 4 сегментов.  Потому что раньше в этой книжечке было 4 листочка. Сейчас давно уже никто ничего не печатает, но все ограничения свято соблюдаются. В общем это просто какая-то жесть. 
          При этом в этой индустрии крутятся миллиарды долларов. В ней есть деньги на инновации. Но самих инноваций нет. Потому что люди управляющей всей этой инфраструктурой закостенели и не способны меняться. В общем я все больше и больше убеждаюсь что люди - это главный тормоз прогресса.

пятница, 8 июня 2018 г.

Джакарта

             Перед тем как попасть в Джакарту я прочитал много отзывов в интернете. Они разнятся от "о какой ужас" до "очень интересный и разнообразный город". Скажу так - мое мнение где-то по середине. Возможно потому что я не первый день в Юго-Восточной Азии, возможно потому что по самым трэшовым кварталам я не ходил. Нужды в этом не было. Трэшака мне в жизни и так хватает, зачем его специально искать.  Практически в любом городе можно сделать пару тройку трэшовых фоток при желании, даже в Сингапуре. 
              Скажем так - Джакарта гораздо менее комфортный город для проживания чем Бангкок или даже Сайгон.  Почему: Город огромный и пробки в нем пиздец какие. Да в Сайгоне сейчас тоже пробки, но центр Сайгона гораздо более компактный. Возможно если бы мне пришлось в час пик пробираться из одной окраины Сайгона в другую, я бы изменил свое мнение. Но мне никогда не приходилось этого делать. Второй район, где в основном проживают экспаты  Сайгона соединены с центром хорошими дорогами, на которых обычно не бывает больших пробок. В отношении 7-го района это не так справедливо, но все равно ситуация сильно лучше чем в Джакарте. 
          Второе что мне не понравилось - это смог. Не смотря на то что Джакарта стоит на берегу моря и должна хорошо продуваться, над ней стоит смог. Да, и в Сайгоне в последнее время появилась эта беда, но все же. В Джакарте эта проблема гораздо серьезнее. 
          Третье - я нигде не видел парков.  В Сайгоне их тоже не слишком много, но есть. Причем даже в самом центре. В Джакарте я не видел ни одного. 
       Четвертое - освещение даже в центре города так себе. Иногда вечером бывает ходить жутковато. 
         В общем по совокупности всех факторов я определил для себя что я не хотел бы там жить. В моем рейтинге мест проживания хуже Джакарты только Ханчжоу. Из позитивного можно отметить - дешевые такси и местную еду.  Местная еда - не могу сказать что прям очень вкусная, но есть можно. Возможно кому-то она даже может понравится. Не местная еда - дорогая. Поужинал в турецком ресторане на одного на 50 долларов. По сравнению с остальными ценами - этот ценник выглядит очень негуманно.  Что еще поразило - очень много курят. Практически все курят, включая женщин.  Дымят как паровозы не смотря на свои хиджабы. 

                

вторник, 22 мая 2018 г.

Еще немного об оптимизации

      С одной стороны я понимаю что все эти знания скорее всего останутся невостребованными и что я никогда не применю их в своей практике, но все равно это интересно. Прочитал недавно статью https://code.facebook.com/posts/206591859504673/three-optimization-tips-for-c-/ помимо отменного юмора она содержит и классики (вроде - измеряй прежде чем оптимизировать!) статья содержит много практических советов:
  • Помнить о стоимости различных операций. Кстати то что деление целых чисел дороже чем операции с float стало для меня открытием
  • Элегантные примеры замены операций деления на операции сравнения
  • Доступ к элементам массива по индексу  быстрее чем по указателю
  • Компилятор умеет автоматически заменять операции деления на операции умножения - https://gmplib.org/~tege/divcnst-pldi94.pdf  

пятница, 18 мая 2018 г.

Amazon Aurora

    Сегодня открыл для себя Amazon Aurora - несгибаемый вариант MySQL от Amazon. Очень интересная штука,  особенно в плане дизайна. Нашел немного информаци  про его внутреннее устройство:
В общем выглядит ка серебряная пуля. Особенно если добавить сюда возможность шифрования на лету
https://aws.amazon.com/blogs/database/encrypting-amazon-aurora-using-aws-kms-and-your-own-cmk/  и поддержку PostgreSQL.  Причем в https://en.wikipedia.org/wiki/Amazon_Aurora написано что сделали Amazon Aurora на базе MySQL.  В общем интересно было бы посмореть на опыт реального использования этого чуда техники. 

понедельник, 14 мая 2018 г.

Kubernetes(K8s) + Docker

      Я долгое время вынашивал идею доклада который бы обобщил накопленный мною и моими коллегами опыт. К сожалению с докладом не срослось в силу разных причин, поэтому напишу хотя бы небольшую заметку. 
       Сейчас про Docker и Kubernetes не пишет разве что ленивый, но в большинстве своем это либо рекламные проспекты,  либо статьи из разряда - как запустить сделать свой нахер никому не нужный блог безмерно масштабируемым. В этой статье не будет никаких сверхъестественных технологий и запатентованных магических технологий. Просто рецепт как МОЖНО эксплуатировать связку докер + кубернейтс в production среде. В действительно высоко нагруженной production среде, обрабатывающей десятки тысяч запросов в секунду, состоящей из нескольких сотен серверов.  Обратите внимание на слово - МОЖНО. То есть я не претендую на истину в последней инстанции. Наверняка что-то можно было сделать и лучше. Но мы сделали так как написано и у нас это не плохо работало.
          1. При эксплуатации докера очень много зависит от совместимости версии самого докера + версии ядра + версии кубера. Поэтому кратенько приведу то что мы использовали: Docker 1.13.1,  Linux version 3.10.0-327.el7.x86_64, CentOS Linux release 7.2.1511, Kubernetes v1.5.5. Время идет и даже на момент публикации поста эта информация уже порядком устарела, но я все же оставлю ее здесь.  Скорее всего вы будете использовать другие версии, но нужно подходить к этому очень осторожно. Docker печально известен своей нестабильностью, поэтому прежде чем деплоить новую комбинацию версий в продакшен - ей нужно дать "отстоятся" на паре-тройке серверов в течении 2-3х недель.  
    2. Сеть.  Мы использовали стандартную сеть на основе linux bridge + BGP для маршрутизации трафика между серверами. То есть на каждый сервер выделялась /24 подсеть(к примеру 10.216.0.1/24), первый адрес подсети выделялся самому серверу(10.216.0.1) а остальные выделялись kubernetes подам запущенных на этой машине. Для всех подов 10.216.0.1  прописывался как default gateway. 
Также на каждом хосте стояла quagga которая анонсировала 10.216.0.1/24 сеть по BGP протоколу. 
        3. Сторадж: STORAGE_DRIVER=overlay,  файловая система xfs. Когда мы начинали свой поход в продакшен мы перепробовали много вариантов, но сейчас это уже стало стандартом de-facto. 
       4. Мониторинг - Prometheus + Grafana + telegraf для сбора метрик с хостов. Прометей стоял отдельно, без всяких новомодных Prometheus Operator.  
      5. Логгирование тоже было сделано крайне просто - на каждом хосте стоял rsyslog, который слушал unix domain сокет. Директория с этим сокетом пробрасывалась в каждый контейнер. Обращаю внимание что пробрасывался не сам сокет а только директория в которой он находился. Так сделано потому что контейнеры должны иметь возможность переоткрыть его если к примеру rsyslog перезапускали.  Весь софт только и знал что писал в этот сокет. rsyslog вычитывал это, аггрегировал, при необходимости буфферизировал на диск и отправлял по сети на центральный лог сервер.
       6. Load balancing + DNS - мы не использовали возможности предоставляемые кубером для балансировки нагрузки. У нас все было через ServiceDiscovery, поэтому компоненты сами друг сдругом общались. Peer to peer. Не буду говорить о том хорошо это или плохо. Вообще про балансировку можно отдельно рассказать. 

вторник, 8 мая 2018 г.

Get right things done

      Дочитал наконец-то до конца книгу Питера Друкера(Peter Drucker) - The effective executive.  Что я вам скажу - это одна из тех книг которые полностью переворачивают твое понимание вещей. После ее прочтения на многие вещи начинаешь смотреть по другому. Я очень жалею что не открыл ее для себя раньше. Это помогло бы мне избежать стольких ошибок!!
Когда я ее читал я испытывал смешанные чувства. Иногда я находил подтверждение правильности некоторых решений/принципов к которым я приходил интуитивно. Иногда я хватался за голову и думал - ах вот почему тогда-то у нас ничего не получилось. Причем вторая ситуация случалась сильно чаще чем первая.
     В общем я категорически рекомендую эту книгу всем кто так или иначе называет себя менеджером либо хочет им стать. На очереди The Practice of Management написанная им же. 
Do first things first and second not at all!!  

суббота, 21 апреля 2018 г.

Привет из Калифорнии

       Сегодня оплатил штраф который нам выписали во время нашего путешествия по Калифорнии. Превышение скорости на 19 миль в час. Разрешено 55, мы ехали 74. Итог - минус 368 долларов. В общем не гуманно как-то это все. 
              Отдельно хочу сказать про сайт на котором этот штраф нужно было оплачивать. Во первых сайт - уебищьный. Такой привет из поздних девяностых ранних двухтысячных. Во вторых комиссию взяли 17 баксов.  Да наши госуслуги - это просто космос по сравнению с этим калифорнийским говном. Не говоря уже о том что штрафы можно  практически в каждом интернет банке совсем без комиссии оплатить.

пятница, 20 апреля 2018 г.

Что нам стоит умный дом построить

        Решил капнуть по глубже тему умного дома. Не то чтобы я прям завтра хотел запилить это у себя - просто интересовался до чего нынче дошел прогресс в этой области. Как оказалось прогресса в этой области немного. По сути есть два лагеря - компании которые смотрят на эту проблему со стороны софта и "аппаратчики".  
          "Аппаратчики" (компании в основном занимающиеся производством оборудования) - эти компании предлагают решения эффективные с аппаратной точки зрения (минимальное энергопотребление, минимальные задержки при передачи сигнала), но при этом программная сторона стека убога. Данные решения предполагает полное погружение в аппаратные протоколы, программирование на низком уровне(биты, задержки и все такое),  и специализированные протоколы связи и тд. В общем эти решения работают, но они все vendor specific, и очень не дешевые. По сути ты становишься заложником вендора которого ты выбрал. И не редко бывает что платформа умирает и ее поддержка по сути прекращается.
          С другой стороны компании с программным бэкграундом предлагают решения с очень красивой программной  обвязкой,  как например Apple HomeKit но основанные на Wi-fi и Bluetooth протоколах связи. В качестве транспорта используется TCP/IP стэк. Это очень соблазнительно для программного инженера, так как разработку под эту платформу можно вести в привычном и знакомом окружении. Поверх TCP/IP стека можно вообще все что угодно навесить. Но это будет очень неэффективно с аппаратной точки зрения - огромное энергопотребление, ограничение на количество поддерживаемых устройств, медленный отклик (wi-fi активируется не мгноовенно, да и проблему медленного старта TCP соединений никто не отменял). Да и вообще навешивать wi-fi модуль на каждый выключатель - это по-моему через чур. 
        В общем проблема построения умного дома пока не решена и ждет эффективного аппаратного протокола, поверх которого можно запустить TCP/IP стэк, и что наверное самое трудное - этот протокол должен быть поддержан как производителями оборудования, так и производителями программного обеспечения. 

понедельник, 19 марта 2018 г.

Снова Лос Анджелес

    Последние два дня отпуска я провел в Лос Анджелесе. На этот раз погода была гораздо лучше чем вначале нашего путешествия. Да, было по прежнему свежо но солнечно. И это не может не радовать. Мы посетили обсерваторию Гриффита, полюбовались на вид города лежащего у подножья холма на котором расположена обсерватория. Погуляли по пляжу Венеция, прошлись по Родео драйв. В общем валяли дурака. 
     На следующий день мы поехали в долину Темекула, дегустировать вино в местных винодельнях. Надо сказать что это был непередаваемый опыт. Общение с людьми которые непосредственно делают вино - бесценно. Да и сама атмосфера - бескрайнее синее небо, виноградники, свежий ветерок... в общем это дорогого стоит.

воскресенье, 18 марта 2018 г.

Сан-Диего

        Путь из Аризоны(от города призрака Ruby про который я рассказывал в предыдущем посте) до Сан Диего занял у нас около 8 часов. С учетом того что значительная часть пути проходила  по приграничным извилистым дорогам(где нас трижды останавливал пограничный контроль) это весьма неплохой результат. И этим результатом мы главным образом обязаны автодорогам штатов.  Надо отдать должное - они превосходно спроектированы. Дороги - это одна из лучших вещей которые есть в штатах. Не в плане качества самих дорог - ибо качество иногда пиздец как хромает(не сравнится с Европой), а именно в плане дизайна... продуманности.  В общем за время нашего кочевья дороги и все что с ними связано я очень полюбил. Знаки на дорогах не стандартные, но очень понятные.  Элементарных знаний английского + знание российских знаком позволяет с ходу в них разобраться. Я бы даже сказал что американские дорожные знаки сильно проще российских.
        Еще одна национальная особенность - это американские завтраки. Американский завтрак - это тысяча и один способ приготовить яичницу. Как правило с мясом в разных его вариациях (бекон, сосиски и даже стейк). Ну либо американские блины(pancake) - скорее напоминающие коржи от торта. В общем эти два варианта покрывают 95% меню завтраков в  американских ресторанах. Причем порции и блинов и яичницы огромные. Порции вообще везде огромные. Я вообще не представляю как можно в одного вточить порцию панкейков.
       Вернемся к Сан Диего.  Этот город мне показался очень солнечным и каким-то испанским что-ли. Небольшие домики в мексиканском стиле... Плюс явное преобладание мексиканской кухни в общепите - все это создает впечатление что ты находишься в мексике. Самое интересное что есть в Сан Диего - это военно-морской музей сделанный из пришвартованного авианосца. Для детей там рай. Им разрешают лазить по всяким внутренним командным пунктам, посидеть в кресле командира боевой смены и даже полетать на эмуляторе самолета.
      Из Сан-Диего мы направились в сторону Лос Анджелеса по уже знакомому нам первому шоссе проходящему вдоль океана. Но характер побережья здесь сильно отличается от того что мы видели между LA и SF. Там побережье было в основном пустынным. Было мало застройки, в основном ранчо или просто зоны для кэмпинга. Напротив, все побережье между Сан Диего и LA застроено мелкими куррортными городками:
В общем очень приятные места, идеально подходящие для пляжного отдыха и занятия серфингом.

пятница, 16 марта 2018 г.

Аризона

    В Аризоне мы провели 3 дня.  Сейчас могу честно сказать что для меня Аризона - это олицетворение "настоящей", "типичной америки".  Я не говорю  что примеру Калифорния - это не настоящая америка, да это тоже америка, но немного другая. Довольно сильно отличающаяся от ее основной части. Все-таки Калифорния - это либо латинский Лос-Анджелес, либо Сан Франциско с его бомжами (я извиняюсь но это моя главная ассоциация с этим городом), либо идиллическая Силиконовая долина. Все остальное как правило находится между этими тремя крайностями. 
      Аризона же у меня ассоциируется с бескрайними просторами, огромными ранчо,  ковбоями которые разъезжают на своих пикапах. Природа этого штата очень разнообразна. От хвойных лесов на севере в районе Grand Canyon, до пустынь и кактусов высотой с телеграфный  столб на юге. 

Отдельно хочется сказать про Grand Canyon. Это такая красота, которую не передать фотографией. 

Его величие нужно просто ощутить. Его масштабы просто поражают. Его виды завораживают.
       Первую ночь мы провели в городке Flagstaff, находящимся в 120 километрах от Grand Canyon. Почему так ? Потому что мы отели бронируем по ходу, и в городке находящимся рядом с каньеном  во всех гостиницах не осталось свободного места. В общем если вы туда соберетесь я  рекомендую вам озаботится ночлегом заранее. Вторую ночь провели в Финиксе (столица штата Аризона), а третью с городе Тусон (рядом с мексиканской границей). 
           В последний день нашего пребывания в Аризоне мы поехали в заброшенный город Ruby Ghost Town, находящийся в 20 километрах от границы с Мексикой. В этом городе когда-то добывали золото, серебро и другие драгоценные металлы. Сейчас там живет только полоумный мужик с собакой. Туда ведет грунтовая дорога, там нет электричества и сотовой связи. Мои впечатления от посещения этого города двояки - с одной стороны это самый настоящий вымерший город, а не гигантская сувенирная лавка (как например Goldfield Ghost Town находящийся рядом с Финиксом). С другой стороны - ничего интересного там не осталось, за исключением может быть ржавого грузовчика форд стоящего на входе и пары механизмов которых нам удалось найти в развалинах домиков. Судя по отзывам в интернете раньше там была гораздо более богатая экспозиция. Но сейчас ее уже нет. Возможно растащили. В общем не могу однозначно советовать этот городок для посещения.

День десятый, Лас-Вегас

       Я не могу сказать что я ожидал чего-то сверх естественного от Лас-Вегаса, но он если честно оказался еще ниже моих ожиданий.  Этот город такой же искусственный как еда в макдаке. Все время которое я был там меня не покидало ощущение фальши... все происходящее вокруг было фальшиво... пожалуй кроме денег.  Днем этот город довольно заурядный... я бы даже сказал серый... красивые гостиничные комплексы, квадратные торговые центры, куча каких-то ангароподобных зданий между ними. Оставшееся место заполнено просто пустырями. В этом городе нет органической застройки... потому что он никогда не развивался органически. 
          Ночью центральная его часть(The Strip) расцветает всеми цветами радуги... И копия эйфелевой башни, и огромные фантаны... и огни казино на каждом шагу... тут вообще в каждом большом отеле - казино. Даже в барах обязательно стоят игровые автоматы. И банкоматы около них. Если в обычных банкоматах максимальный размер снятия за одну транзакцию - 120-200usd, то в казино банкомантах можно по 3000usd за раз снимать.
              Стрип клубы с молоденькими и не очень девочками, мнящими себя королевами.. хотя на самом деле они всего лишь шлюхи. Шлюхи вынужденные обслуживать всех кто платит. И гору жира весом в 150 кило и какого-то занюханного торчка транжирящего неизвестно как добытую наличность.  Да и сами они судя по постоянному шмыганью носом нормально сидят на кокаине. Хотя может это у них просто насморк. Униформа то у них так себе...  продуло может :-)
        В общем я искренне не понимаю людей восхищающихся Лас-Вегасом. Это место куда одни приезжают гнуть дешевые понты (типа раскидывания одно долларовых купюр в стриптиз клубах) а другие продают себя за эти понты. В общем Лас-Вегас это место для иллюзий и бестолкового прожигания жизни. 

понедельник, 12 марта 2018 г.

Калифорния и Невада, день девятый

     Утром мы выехали из нашего отеля в Сакраменто и отправились к берегам озера Тахо.  Это озеро расположено в горах Сьерра-Невада, на границе Калифорнии с Невадой. 

Так как озеро расположено на высокогорье, там было довольно прохладно (в районе нуля градусов), мы не стали на долго оставаться в этом месте. Хотя надо признаться - это места редкой красоты.  Если бы мы были одеты по погоде, я бы там с удовольствием на денек задержался.
        После этого мы взяли курс на Bodie Ghost Town.  С этого момента начались наши неприятности. Началось все с того что я разогнался на пустынной трассе и встретил местных полицаев. Выписали штраф. Едем дальше.  Все бы ничего, но к городу призраку ведет дорога призрак. То есть грунтовка. А в горах к слову еще ранняя весна, снег везде лежит. А мы на заднеприводной машине, на летних шинах совсем не предназначенных для бездорожья. В общем встряли мы на этой дороге по полной. Вымазалась в грязи как следует, но вытащить машину так и не смогли. Пошли за подмогой в ближайший населенный пункт, который оказался индейской резервацией. Нашли там двух накуренных индейцев на старом кадилаке, которые согласились нам помочь.  Приехали с ними обратно к нашему мустангу, так они сами там чуть не застряли.  С горем пополам они вытащили нас, попутно оторвав нашей машине задний подкрылок (ума не приложу как). 
          В общем после этого проишествия у нас появились странных хрипы и вибрации в подвеске. Но спасибо верному мустангу - он честно донес нас до Лас Вегаса. А это ни много ни мало 600 километров по весьма пустынным местам. К слову сказать эта местность очень пустынная. Плоская пустынная равнина, покрытая какими-то колючками. Там до ближайшего макдональдса 100 километров. 
Дорога стелиться вдаль серпантином, и конца и края ей не видно. 
Отдельно хотел рассказать о индейской резервации. Это пустынная, каменистая равнина, ограниченная со всех сторон горами.  Не удивительно что индейцы тут все померли. Тут даже деревья нормальные не растут. Только какие-то каряги.

суббота, 10 марта 2018 г.

Калифорния, день восьмой

        Сегодняшний день мы посвятили осмотру крепости Fort Ross.  Эта достопримечательность находится на побережь, к северу от Сан Франциско. Путь к ней пролегал по моему любимому Pacific Coast Highway. Надо сказать что эта местность - редкостная глушь.  Там даже сотовая связь не ловит совершенно. Но и красота этого места завораживает. Такая суровая, северная красота. 
Сама крепость представляет собой по большей части восстановленное деревянное сооружение. Но восстановленное на очень хорошем уровне... со всеми деталями быта так сказать:


Единственное здание оставшееся с тех времен это дом коменданта:

Также на территории находится восстановленная часовня, с настоящими русскими иконами:

Заночевали мы в Сакраменто, завтра отсюда же поедем на остров Тахо.
В сегодня американцы в очередной раз меня удивили культурой вождения. Когда машина видит что я хочу ехать быстрее чем она может - она съезжает на обочину и пропускает меня. И это произошло не один раз. Три раза за сегодняшний день. То есть это уже нельзя списать на случайность.
       Еще меня сегодня удивил билборд с надписью: California, smile! Weed is legal!. И надо признаться что улыбаются все, от мала до велика. Травой пахнет отовсюду.  Этот запах становится таким же естественным как запах кофе например. И курят от мала до велика. Вчера мы наблюдали пару совсем молодых парней, лет по 18 забивающих косяк на Sierra Vista Point, сегодня пара девушек постарше дымила на побережье. Причем в обоих случаях они были на машине, то есть сразу после этого садились за руль. В общем меня это начинает напрягать уже.

пятница, 9 марта 2018 г.

Калифорния, день седьмой

       Сегодня был последний день конференции Strata в San Jose. Доклады были уже не такие интересные, все больше маркетингового буллшита. Из того что запомнилось:
  • Lessons in Google Search data by Seth Stephens-Davidowitz. Обычно я не хожу на не технические доклады, но он был во время keynotes session, поэтому пропустить его было нельзя. Мастерство докладчика было на высоте, интересный материал.  Суть доклада в том что все мы врём,  и только гуглу доверяем самое сокровенное (через поисковые запросы).  Ну и автор показал что популярность Трампа коррелирует с популярностью националистских настроений в штатах. Возможно в этом и правда есть доля истины. Никто в штатах сейчас не может назвать себя националистом, это все равно что у нас в России прилюдно объявить себя педофилом. Тебя сразу втопчут в грязь. А вот тайно проголосовать за Трампа - можно. Никто же не узнает.
  • Еще один явно политизированный доклад - Graph analysis of 200,000 tweets from Russian Twitter trolls. Не ходил, ничего больше сказать не могу. В общем видно что в Калифорнии Трампа явно не любят.
  • Data science at Slack. Суть этого доклада - не надо пытаться копировать практики Гугла если вы не являетесь гуглом, если перед вами не стоят проблемы стоящие перед гуглом и у вас нет ресурсов гугла. Не надо решать проблему обновления моделей/наследования моделей если у вас все data scientists сидят в одной комнате. Они просто могут голосм друг с другом поговорить. Да, это не автоматизировано, да это не технически совершенное решение, да об этом не расскажешь на конференции - но это работает. Просто и эффективно.
  • Playing well together: Big data beyond the JVM with Spark and friends. В общем доклад про PySpark. Если коротко то: они пытаются сделать чтобы запуск питонячьего кода на Spark был не таким отстойным в плане производительности. Хотя всем ясно что сравняться по уровню производительности с Java/Scala он никогда не сможет. В общем ежик плакал но жрал кактус. Но этот доклад натолкнул меня на размышления: исторически все что связано с обработкой больших объемов данных писалось на Java (Hadoop/Spark предоставляют только java и нтерфейс, apache mahout - это опять таки Java). Но очень многие библиотеки для AI и мат статистики написаны на Python. Взять тот же самый TensorFlow который стал стандартом дефакто в deep learning - это тоже Python.

четверг, 8 марта 2018 г.

Калифорния, день шестой

       Второй день конференции Strata в San Jose. Приятно удивил доклад Никиты Шамгунова(Nikita Shamgunov) во время opening keynotes. Это очень престижно. Без относительно того как я отношусь к его детищу(MemSQL), Никита большой молодец. Будь как Никита.
                Из других понравившихся докладов: 
  1. Baron Schwartz, Why nobody cares about your anomaly detection. Не смотря на провокационное название, доклад был очень толковый. Он по полочкам объяснил почему все обещание построить real time anomaly detection - это булшит. И что вообще построить универсальное решение по anomaly detection - невозможно. Но можно успешно строить anomaly detection для каких-то узких областей. Но и здесь тебе нужен чувак с PhD который построит модель нормального функционирования системы, и соответственно все что в нее не вписывается - это аномалия.
  2. Eugene Kirpichov (Google), Radically modular data ingestion APIs in Apache Beam. Чувак сразу признался что он на всю голову функциональный(что в общем-то не плохо), что собственно и доказывал по ходу доклада решительно отметая все то что не вписывалось в парадигму функционального программирования.  И знаете, убедил. В общем если я когда-то займусь написанием ETL пайплайнов, я буду это делать так как он рекомендует.
  3. Ну и тройку замыкает доклад Spark on Kubernetes: A case study from JD.com. Бестолковый с познавательной точки зрения, но интересный с практической. К сожалению слайдов он не выложили. 

Вечером съездили в Mountain View, посмотрели как живут гуглеры. В общем не плохо живут. Удивило что довольно много русскоговорящих. Прям идешь по дорожке и отовсюду русская речь слышна.

среда, 7 марта 2018 г.

Калифорния, день пятый.

         Сегодняшний день, ровно как и следующие 2 дня будет посвящено конференции Strata, проходящей в San Jose. Итак, что я узнал интересного:
     KSQL - предоставляет SQL-подобный интерфейс для работы с данными в Kafka. То есть ты можешь создать "таблицу" из Kafka топика и получать данные через SQL подобный интерфейс. Ты можешь сделать join из нескольких таких табличек и получить новый поток данных. В общем такой приятный обвесок, но не более того. Никакого rocket science.
         Вторая training session была посвящена TensorFlow и его использования для построения поисковых и рекомендательных систем: https://github.com/meabhishekkumar/strata-conference-ca-2018/blob/master/deep_learning_based_search_and_recommender_system.pdf
         Этот тренинг помог мне сполна ощутить свою тупость и некомпетентность. Очень много чего нужно прочитать и понять прежде чем ты сможешь понять что ты делал на этом тренинге. И подтянуть математический аппарат. На этом тренинге я отчетливо понял что он у меня мягко говоря хромает.  Спасибо ребятам за то что они поделились всем материалом: https://github.com/meabhishekkumar/strata-conference-ca-2018
        Из того что сразу было добавлено в список "на почитать":

  1.  Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville, the MIT Press, Cambridge.
  2. Recommender Systems by Charu. C. Aggrwal, Springer International Publishing.
  3. http://news.mit.edu/2017/better-recommendation-algorithm-1206
  4. Paul Covington, Jay Adams, and Emre Sargin. 2016. Deep Neural Networks for YouTube Recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems(RecSys ’16). ACM, New York, NY, USA, 191-198.
  5. Restricted Boltzmann Machines for Collaborative Filtering by Ruslan Salakhutdinov. Source: http://www.machinelearning.org/proceedings/icml2007/papers/407.pdf 
  6. Wide & Deep Learning for Recommender Systems by Heng-Tze Cheng. Source: https://arxiv.org/abs/1606.07792
  7. A Survey and Critique of Deep Learning on Recommender Systems by Lei Zheng. Source: http://bdsc.lab.uic.edu/docs/survey-critique-deep.pdf
  8. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction. IJCAI2017 Source:https://arxiv.org/abs/1703.04247
  9. Deep Neural Networks for YouTube Recommendations by Paul Covington. Source: https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf

Калифорния, день четвертый

      Четвертый день нашего путешествия начался в Сан Франциско. Этот город у меня ассоциируется с солнцем и ветром. Всегда когда я тут бываю в нем бывает очень солнечно, но ветренно.  После этой поездки появилась еще одна ассоциация - с коноплей. Тут реально из-за каждого угла косяком пахнет. Еще когда мы по 101 шоссе ехали мы видели огромные плантации конопли. Так что теперь Калифорнию можно называть новой Голландией :-))
           Для начала мы решили прогуляться по парку рядом с знаменитым мостом Золотые Ворота:
Кроме золотых ворот там было много еще на что посмотреть:
От туда можно зайти прямо на мост, откуда открываются восхитительные виды:

После этого мы поехали по знаменитым холмам Сан Франциско: Russian Hill, Nob Hill, Twin Peaks:
Знаменитые трамвайчики на канатной тяге:
Потом прокатились по даунтауну:
В общем этот залитый солнцем город остался в моей памяти как город бомжей и одиноких людей с собачками. Бомжей там реально очень много. 
         После этого мы поехали посмотреть на Stanford University и Palo Alto.  Точнее мы поехали смотреть университет и случайно оказались в  Palo Alto. Оказалось что этот городок расположен буквально через дорогу от Стенфорда. По сути это небольшой академ городок при Стенфорде. Вообще что больше всего меня поразило в этом месте это атмосфера. Атмосфера уюта,  начитанности, интеллектуальности. Такой очень домашний, милый городок. С преподавателями которые ходят отрешенные от всего, чем то очень увлеченные. Я один раз взглянул на человека и сразу понял что он препод. Он не может не быть преподом! Студент, который едет на велосипеде и одновременно играют на каком-то подобии балалайки. Это все показатели незаурядности человека. Тут пол города в хорошем смысле чокнутые. 
Собственно фотографии Стенфорда:
Ну и пару фотографий Пало Альто на последок:

До приезда в Пало Альто этот город у меня ассоциировался с недобитыми стартаперамии попивающими смузи и рассказывающих сказки про блок чейн и всем пантеоном ИТ богов. Сейчас он у меня ассоциируется больше с наукой, домашний городок для интеллигентных и талантливых людей.

понедельник, 5 марта 2018 г.

Калифорния, день третий

       Сегодня мы продолжили свое путешествие по Pacific Coast Highway, рано утром стартанув из Санта Барбары. Позавтракали в Pismo Beach. Pismo Beach - типичный провинциальный городок, ничего особенного.  Доехали до San Simeon, посмотрели на лежбище тюленей:
Доехали до Hearst Castle, но оказалось что прямо к нему подъехать нельзя - нужно покупать экскурсию. Ну и хрен с этим замком подумали мы и поехали дальше на север.  Чуть за Ragged Point нас ожидал сюрприз дорога полностью перекрыта из-за оползня. Нам пришлось сделать огромный крюк в 200 километров чтобы обогнуть перекрытый участок Pacific Coast Highway и вернуться на него за чуть южнее New Camaldoli Hermitage. Сначала мы не особо обрадовались такому повороту событий, но потом оказалось что мы зря переживали. Большая часть объездного пути пролегала по очень живописным местам - горы, виноградники, леса. Причем мы совершенно не подозревали о существовании этой красоты. Во всех туристических путеводителях внимание сосредоточено на Big Sur, и побережье. Но по другую строну прибрежных гор тоже очень замечательная природа. И в отличии от Big Sur, она гораздо меньше обезображена человеком. 



Ну и в заключении мы поняли что мы начали смотреть Pacific Coast Highway не с того конца. Эту дорогу нужно было проезжать с севера на юг(SF => LA).
  1. Все смотровые площадки будут находится на вашей стороне проезжей части (не надо пересекать двойную сплошную чтобы остановится у смотровой площадки)
  2. На многих участках 101 шоссе, полоса идущая с севера на юг представляет собой старое  Pacific Coast Highway, а полоса идущая с юга на север - новая, и проложена на значительном расстоянии от кромки берега. То есть ты мало что видишь когда едешь по ней. 
Из наблюдений: 
Первое: мне очень нравится как тут люди ездят за рулем. Очень вежливо, все друг другу уступают.  В общем чему-чему, а вот культуре вождения нам бы нужно у них поучится. Сегодня нас даже предупредили о стоящей в кустах полицейской машине ("подмигнула" встречная машина).  Я думал что такая взаимовыручка свойственна только странам бывшего советского союза. Ну и порадовали знаки - speed limits enforced byb aircraft. У нас все камеры/радары. А тут не мелочатся - с беспилотников секут. 

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

воскресенье, 4 марта 2018 г.

Калифорния, день второй

    Сегодня с утра мы попытались посмотреть несколько достопримечательностей в LA,  но погода вновь внесла свои коррективы. В итоге я стал обладателем довольно редкой фотографии "Голивуд в тумане":
Если приглядеться внимательно то на этой фотографии можно разглядеть те самые заветные буквы. Поняв что погода сегодня к нам не очень благосклонна, мы тронулись в путь - по шоссе номер один вдоль океана. 
      Второе разочарование - выяснилось что во многих местах тот самый знаменитый Pacific Coast Highway уже не существует. Это историческое шоссе начинается у пирса Santa Monica:

К слову сказать сам пирс Санта Моники также является довольно известным туристическим местом, но на меня он не произвел никакого впечатления. Пирс как пирс:
Зато пляж Санта Моники весьма живописен:
В общем стартанув от пирса, мы поехали в сторону SF. После вьезда в город Oxnard Pacific Coast Highway перестал существовать был заменен 101 шоссе. Есди быть точным, то после Oxnard есть еще небольшой обрубок Pacific Coast Highway который идет параллельно с 101 шоссе, но в районе Madranio Canyon он заканчивается тупиком. Собственно дальше других вариантов кроме как ехать по 101 шоссе нет. 101 шоссе представляет собой типичный скучный автобан, ничего особенного.
     На обед мы остановились в городе Carpinteria. Это типичный тихий провинциальный городок. К слову сказать я обожаю такие места:
       

Обедали мы в итальянском заведении - Nutbelly Pizzeria & Deli, и надо сказать что оно было великолепно:
Потом прогулялись до местного пляжа:
Хочу немного рассказать за что я люблю такие маленькие провинциальные городки. За людей. Люди здесь очень открытые и дружелюбные. Приведу пример: вышел из машины, и пиджак у меня сзади немного скомкался. Совершенно незнакомая женщина проходящая мимо взяла мне его и поправила, и сказала что-то с улыбкой (обычный "small talk", не помню уже точно). Мелочь, а приятно.  Такое бывает конечно и в крупных городах. К примеру когда мы парковались у Santa Monica Pier женщина отъезжающая парковки предложила нам встать на ее место так как у нее там еще час дватцать было оплачено.  Но все же по моему опыту такая доброжелательность больше свойственна жителям небольших городков.
      После этого мы прибыли прямиком в Santa Barbara. Тот самый город который все россияне знают по тому самому бесконечному сериалу. Городок действительно очень милый. Одной из главных его достопримечательностей является здание суда:
Это здание открыто для свободного посещения. С его колокольни открывается чудесный вид:
Двор здания суда также весьма живописен:
Так как сейчас в общем-то не сезон, то народу там практически не было. Кроме гостей свадьбы проходившей там в это время:
Второй достопримечательностью Санта Барбары является "Old mission", что-то вроде здания администрации:
"Те самые арки":
Надо сказать что все пейзажи в Санта Барбаре почему-то очень яркиие. Без всяких фильтров и уловок. Вроде бы просто лужайка, просто деревья. Но от красоты дух захватывает. Ты не можешь остановится и постоянно фотографируешь все подряд:


суббота, 3 марта 2018 г.

Калифорния, день первый

     Сегодня началось наше авто-путешествие по Калифорнии, Неваде и Аризоне.  Я постараюсь заставить себя записывать каждый день свои наблюдения/размышления. Так сказать пока не забылось.  
     Итак из того что сделано сегодня: долетели до LA, взяли тачку - белый форд мустанг:

Заселились в отель, доехали до аллеи звезд, поужинали и спать.
     Перелет 13 часов это жопа (а именно столько самолет летит из Москвы в LA). Летели аэрофлотом. Самолет не первой свежести, даже в бизнес классе кресла были подубитые. Но обслуживание на высоте. Девочки все как на подбор красавицы. Прям даже гордость за страну берет.
       Два часа убили на прохождение пограничного контроля. После Сингапура это какая-то дикость для меня. Пограничники смотрят на тебя как на последнюю мерзоту которая приехала выпрашивать у тебя кусок хлеба. Поставили автоматы для пограничного котроля, но эти автоматы только какую-то квитанцию с которой снова нужно в очередь вставать. Причем в ту ее часть которая длиннее. И также проходить пограничный контроль как и без этой бумажки. Лучше бы я изобразил тупого и сказал что не осилил этот автомат и пошел бы в короткую очередь. После этого такая же очередь на таможенном контроле. В общем в стране образцовой  демократии я разочаровался еще не попав в нее.
       Сразу бросается в глаза внешний вид машин. Очень много блестящих хромированных деталей, очень много пикапо-образного. Ну и обилие здоровых машин тоже бросается в глаза.
          LA встретил нас дождем, что в принципе для него не типично:
Прошлись по аллее звезд. Напомнило аллею победителей соц соревнований в поселке Верхнее Пупыркино. Ну реально, она вообще ничего из себя не представляет. Только ее начало более менее презентабельно. А дальше: 


 Если бы не эти звезды на тротуаре не в жизни бы не поверил что это и есть аллея звезд. Ну и на всем протяжении аллеи ее постоянные жители(корренные звезды так сказать):
В общем американцы гении маркетинга. Из пустого места сделать такой маркетинговый бренд. Заставить звезд кино драться из-за тратуарной плитки.