Будни технического директора новостного стартапа. «Закрытие Parse и куда с него переехать», очередной лонгрид «как программируют в NASA» и прочие ссылки с hackernews. Ну и истории, конечно.
У канала 9000 подписчиков, ловите праздничный пост!
В моей жизни важную роль занимает психотерапия. Расскажу об этом публично. Для многих душевные сложности и помощь психотерапевта — запретные темы. Давайте исправлять это вместе. Вот три истории из моей жизни:
1. Мы с прекрасной Настей вместе уже 11 лет. Наша старшая дочь пойдет в этом году в первый класс, а младшей скоро исполнится три. Семь лет назад я был близок к тому, чтобы уйти от жены на девятом месяце. Я не был готов обсудить свою ситуацию с кем-либо; случайно мы оказались на занятии с психотерапевтом на курсах для беременных. Анна задала пару вопросов и меня прорвало. Её поддержка помогла мне выбраться из той ямы, в которую я себя загнал.
2. В начале моей карьеры технического директора я стеснялся, что у меня нет опыта промышленного программирования. Я боялся выглядеть глупым из-за недостатка знаний. Вряд ли я стал бы тем, кто я сейчас, без помощи Леши Гусева. Леша знал Букмейт, как свои пять пальцев; был опытнее, мудрее и помог мне вырасти. Сомневаюсь, что я смог бы принять эту помощь и совладать со своими страхами (набивший уже оскомину в IT-мире страх самозванца в их числе) без помощи Ани. Мы работали с ней по часу раз в неделю почти три года с перерывами, пока я не переехал в Ригу.
3. Через четыре года в Риге мне стало совсем нехорошо. Я жил не в ладу с самим собой, напряжение копилось, и примерно год назад всё сошлось вместе: отношения в семье, ситуация на работе, деньги; казалось, вообще всё идет не так (красить всё одной краской и не замечать оттенков — черта моего характера). Я позвонил Анне, она порекомендовала психотерапевта в Риге, я начал ходить на групповую психотерапию и закрутилось. Буквально за месяц я уволился из Медузы и начал строить новую жизнь.
Раньше мне было проще раскрыть душу случайному попутчику в поезде. Теперь я учусь делать это с самыми близкими для меня людьми.
Учусь я этому в психотерапевтической группе. Мы собираемся с 18 до 21:15 каждый вторник и разговариваем. Делимся тем, что нам важно, просим поддержки. Боремся, плачем, живем. Учимся жить. Учимся замечать свои чувства, выражать их, замечать чувства людей рядом, договариваться. Помогает нам в этом профессионал и человечище — Дмитрий Лицов.
Мой основной страх теперь — не жить, не выражать себя, не чувствовать людей рядом. Безумно страшно провести годы впустую, ведь времени не так уж и много.
☙
Так, меня понесло.Пост про то, что если вы чувствуете, что что-то в жизни идет не так и вам трудно разобраться одному (или одной) — то я рекомендую попросить помощи у профессионала. Это настолько очевидная фраза, что хочется её мгновенно стереть. Никому и в голову не приходит поступать иначе. Когда у нас прорывает унитаз — зовем сантехника, болит зуб — бежим к стоматологу, всерьез ломается PostgreSQL в продакшене — пишем Бартунову и т.д.
А вот когда речь заходит о душе (трудностях в жизни, отношениях, работе), то мне кажется, что моя ситуация уникальна и никто не сможет помочь. Это не так.
☙
Я не знаю более мастерского описания сути психотерапии, чем рассказы Ирвина Ялома. Он описывает реальные случаи из своей практики с такой легкостью, элегантностью и самоиронией, что зависть берет. В конце концов, это просто очень хорошие книги, рекомендую.
☙
То, что я выше рассказываю о себе — «вариант нормы». С точки зрения медицины (справочники DSM-5 и ICD-10), я здоров. К психотерапевтам ходят здоровые люди, которые хотят жить лучше.
Последние месяцы, мою жизнь отравляло плохое качество видеосвязи — одного из основных рабочих инструментов (и не шутите, что это должен быть мозг).
Каждую минуту, на пару секунд, latency (задержка) беспроводной сети вырастал до 200-300 мс, появлялись потери пакетов. Сетевое взаимодействие компьютеров и видеосвязь устроена так, что даже временное повышение latency роняет качество связи надолго. Я не слышал собеседника, коллеги не слышали меня.
Я грешил на беспроводные сети, на фазу луны и, конечно же, на Госдеп США. Купил за 30 долларов программу PingPlotter, чтобы убедиться, что меня не глючит и проблема на самом деле регулярная. Задумывался уже поменять роутер, когда догадался поступить как нормальный инженер и почитать логи (бортовой журнал системы). Виноват оказался locationd.
Оказывается, ровно раз в минуту macOS пытался определить физическое местоположение ноутбука и собирал для этого список близлежащих беспроводных сетей. Это «тяжелая» операция, вот всё и затупляло.
Решение оказалось простым — выключить сервис определения местоположения (Location services) в настройках системы. Я уверен, что переустановка системы с нуля (классическое решение любых проблем с компьютерами) тоже бы помогла (и Location services остался бы включенным); но то, что приносило радость в 15 лет, не кажется таким же заманчивым в 30.
Как можно было отладить проблему, не имея опыта сисадминства — не представляю. А ведь эта же проблема может мучить учителя или врача, он сидит и думает «сраный скайп», в то время как проблема совсем в другом :(
Commento, классный движок для добавления комментариев на сайт, запустил hosted-версию. Раньше нужно было держать его на своем сервере, теперь достаточно добавить строчку подключения на страничку. Стоит от 5 долларов в месяц, можно платить сколько посчитаешь правильным. Хороший лендинг.
Основной конкурент — Disqus имеет бесплатный режим, но при этом использует накопленные данные для продажи рекламы.
Люблю, когда плачу явно; это вносит ясность в отношения.
Splunk — ведущее решение на рынке инструментов обработки логов и мониторинга.
Вчера они объявили, что не будут больше работать в России и с дочками русских компаний. Ну не будут и не будут. Уверен, что они также не работают в Северной Корее, Иране, Кубе и Беларуси, можно понять ребят. Но вместо заголовка «мы не будем больше работать в России» статья называется «смена приоритетов в нашей глобальной стратегии».
👽
P.S. На Splunk плотно сидят государственные ситуационные центры и некоторые крупные банки. Всё, что вы хотели знать об импортозамещении и изоляции. Думаю, успею ли посмотреть эпизод под названием «Россия оккупировала Даугавпилс и ей за это отрубили Oracle». Всё это звучит как глава из SNUFF Пелевина.
Классный рассказ, как гугл сделал ненавистную всем кнопку «я не робот» и почему роботы не могут её нажать.
Краткий пересказ: люди ведут себя непредсказуемо (даже в самых маленьких мелочах вроде движения мышью и задержки перед нажатием на галочку), гугл собирает всю эту непредсказуемость в серую массу и находит роботов, выбивающихся из неё. Ну и всякие классные трюки вроде того, чтобы заставить браузер нарисовать трехмерную картинку с безумными пропорциями и невалидными шрифтами и отловить ботов по уникальным особенностям рендеринга виртуальных браузеров (каждый браузер и операционная система рисуют чуть разную безумную картинку).
Раз уж в тему капчи, недавно была хорошая статья на The Verge, как развивается гонка вооружений между капчами («выберите изображения, на которых есть пешеходные переходы») и теми, кто эти капчи взламывает. Краткий пересказ: капчи уже сейчас могут быть очень сложными, но скоро будет капчапокалипсис, когда они станут слишком трудными для людей.
Делюсь золотой шкатулочкой с инструментами для оптимизации веб-страниц:
1. Самый крутой, о котором мало кто знает: Webpagetest. Огненная функция в нем — filmstrip view, где можно по-кадрово отсмотреть, как загружается страница и разглядеть, какой скрипт или стиль виноват в долгой загрузке. Медитируем на него без остановки.
2. Самый простой: PageSpeed Insights, довольно жесткий инструмент от гугла, где быстрая главная медузы набирает 6/100. Мы с командой RAWG последние 2 недели приносили человеческие жертвоприношения на страницу игры и подняли её мобильный рейтинг с 6 до 46, а десктопный — с 40 до 92. Главная польза PSI — простые и понятные советы, часть из которых очень дорого реализовать, но всё по делу. Вообще, его отчеты — отличный учебник по современной оптимизации для веб-разработчика. Дополнительный бонус — исходный код движка PSI, Lighthose открытый, можно посмотреть, за что именно дают или снимают баллы.
3. Google Chrome. Нам нужны две функции — первая, это Lighthouse (движок PSI из предыдущего пункта). Вторая — возможность затормозить сеть (вкладка Network) и затормозить процессор (вкладка Timeline). Позволяет отследить проблемы, которые на быстром интернете и мощном процессоре не заметны.
4. GTMetrix, многофукциональный комбайн, вдобавок к стандартным метрикам оценивает использование CDN, SSL и много других мелочей.
5. sitespeed.io: крутой инструмент для автоматизированного тестирования (докер образ, легкая интеграция в дэшборд графаны), внутри комбинирует множество опенсорс-утилит.
Самое главное, что нужно при оптимизации веб-страниц — пытливый ум и настойчивость. Не стесняйтесь просить помощи у знакомых, они могут сходу заметить то, что вы замыленным взглядом уже не увидите.
Если я забыл что-то важное — маякните в личку @samatg или в чатик @ctodailychat, пожалуйста.
Чтобы у вас не было сомнений, насколько хорошо компьютеры умеют распознавать людей на фотографиях: создателя самого крупного нелегального онлайн-казино России нашли по трем размытым фоткам киевской полиции.
Систему машинного обучения (ML), которая проанализировала все публичные фотографии в ВК, сделала не супер-корпорация и не ЦРУ, а какие-то анонимусы.
Теперь представьте, что аналогичную систему подключат к видео-записям, которые делают ФСБшники на митингах (уверен, что они разрабатывают её прямо сейчас). Сходил три раза на несанкционированный митинг — получи повесточку.
P.S. ВК обещает подать на анонимов в суд. Лучше бы перестали отдавать фотки анонимным пользователям (как фб). Тогда все свежие (старые уже скачаны скопом по 10 раз) фотки России будут не у всех желающих, а только у вас и у ФСБ 👌
На прошлой неделе я разбирал свою адресную книгу и перечитал часть переписки, которую вел 5, 10, 15 лет назад. Это помогло мне ярко вспомнить давно прожитые, но важные для меня события и людей.
Первое письмо в моем ящике отправлено 1 мая 2003, импортировано из почты mail.ru на gmail и позже перенесено на fastmail. Смогу ли я перенести телеграм-переписку в другой месссенджер или посмотреть её в стороннем приложении управления адресной книгой? Не думаю, что наша текущая переписка в телеграме выдержит даже такой тест временем. Я говорю не о «секретных, шифрованных чатах» — в их случае отсутствие архива — фича, а не баг.
Имейл (электронная почта) — великая технология. Практически любой программист может запрограммировать почтовый клиент и даже сервер стандарта POP3/SMTP за разумное время. Как говорил Столяров — «хороший протокол — тот, который может запрограммировать один человек за неделю». На таких вот простых стандартах держится большая часть ключевой интернет-переписки. Просто задумайтесь об этом на секунду. ICQ уже умер (интересно было бы перечитать переписку, которую вел по ночам в классе информатики), фб-мессенджер и телеграм вполне вероятно умрут в ближайшие 10 лет, а письма родом из 1982, надеюсь, так и будут продолжать ходить. Потому что электронные письма — они про техническую свободу и разнообразие.
Жаль, что SMS не повторила историю электронной почты. Думаю, проблема в том, что стать провайдером SMSок можно только будучи провайдером телефонной связи, а это чуть сложнее, чем запустить почтовый сервер на системнике под столом.
Так выпьем же за то, чтобы стандарты было по-настоящему открытыми, а конкуренции и свободы выбора - больше!
Открыл для себя Google Ads Keyword Planner. Он позволяет посмотреть, как часто люди ищут заданные фразы в гугле и сколько будет стоить контекстная реклама по указанным ключевым словам (Яндекс Вордстат на стероидах).
Это — хороший рабочий инструмент, есть даже quick switcher клавиатурный для быстрой навигации между экранами. Интересно залипать, сравнивая ключевики и категории ключевиков между собой. В сравнении с классическим Google Trends — как Lego Duplo рядом с РД-180 (про историю этого двигателя хочется отдельный длинный пост).
Ну и странное ощущение, что ты в этот момент являешься клиентом гугла, а не пользователем.
Вообще, герой дня, я думаю, не только МТС, но и https://platformalp.ru (какая-то система для быстрой сборки лендосов), на которой припаркован этот прекрасный поддомен.
Вот про эту ситуацию точно был бы бомбический доклад на конференцию, жаль никто не расскажет :((
Я бы на месте безопасников МТС вырубил домен по-быстрому (но у них такой возможности нет, TTL большой). Это, кстати, одна из причин, почему стандартным TTL доменов нужно устанавливать 5 минут.
Все мы были в ситуации, когда тест идет совсем не так, как мы планировали.
Надеюсь, что руководство МТС не будет никого наказывать, а разработает правила, которые предотвратят возможность такой ошибки в будущем. Вот было бы круто послушать разбор этой ситуации от кого-то из МТС.
Поделюсь, как я тестировал пуши в Медузе. В какой-то момент я придумал отправлять в тестовом пуше ровно то же содержимое, которое было в предыдущем продакшен пуше. Если такой тест протечет на продакшен — большинство людей подумают, что это глюк телефона (или их самих глючит), но в любом случае — такая проблема мало кого удивит. «тест» или того хуже «111 zaebalo» — гораздо хуже. Признаюсь, что порой я тестировал пуши «путин умер», но повторять такое я не рекомендую.
Интересно, это сообщение пришло всем миллионам клиентов МТС или только какой-то небольшой группе? В любом случае: 8 вечера по Москве - не лучшее время для тестов на продакшене. Привет, МТС!
Спотифай купил лучший сервис для создания подкастов - Anchor и это не первая его подкаст-покупка в этом году.
Anchor интересен тем, что они не ограничиваются записью mp3 для Apple podcasts, но экспериментируют с форматом аудио, добавляя интерактивные возможности, доступные только внутри приложения (привет, нетфликс).
Максим Балабин, наверное, поспорит, что все наши западные потуги с подкастами - жалкая тень того, что происходит в Китае. Я ещё не нашёл в себе сил изучить китайские приложения, так что уверенно заявляю: если вам есть о чем интересно рассказать - скачивайте Anchor и записывайте (я сам все не поборю стеснение).
Давно я не рассказывал истории из профессиональной жизни.
Вчера мы поменяли кнопки логина через соцсети. Раньше показывали белые круглые, в которых угадать соцсеть можно было только по форме логотипа. В новом дизайне явно написано название соцсети и вся кнопка фирменного цвета.
Из-за этой кнопки с аватаркой всё и закрутилось. Для начала, пришлось выкинуть старый механизм аутентификации с oauth-редиректом и подключить библиотеку фб, которая делает всю работу сама. Потом я заметил (уже на продакшене), что страница логина крешится. Оказалось, что фейсбук хитро инициализирует свою js-библиотеку и при определенной последовательности загрузки скриптов она ломается. Воспроизводится это у нас не каждый раз и только на продакшене. В сафари ломается чаще, чем в хроме, так что любовь нашего фронтендера Ромы к Linux отладку не упрощала. Чтобы не ломать страницу целиком, мы срочно вставили try-catch, а потом сделали хитрую схему.
Теперь мы сначала показываем все три кнопки соцсети как обычно (oauth-редирект для фб вернулся в код обратно), при этом в фоне грузим библиотеку фб. После успешной загрузки красивой кнопки фб, мы заменяем нашу кнопку логина на родную фб, так что это практически незаметно.
В отношении этой разработки у меня два разных чувства:
- жалость, что зря потеряли время, потому что у большинства пользователей, которым нужен логин через Facebook, уже загружена js-библиотека фейсбука, так что можно было не извращаться + кажется, что тупо недоразобрались с js-ошибками; - чувство удовлетворения, что сделали качественно «заднюю стенку шкафа», все три кнопки логина покажутся мгновенно, без задержки в любом случае.