Будни технического директора новостного стартапа. «Закрытие Parse и куда с него переехать», очередной лонгрид «как программируют в NASA» и прочие ссылки с hackernews. Ну и истории, конечно.
В новом эпизоде подкаста разобрались, как устроены умные дома и как делают железо Алисы — умные колонки.
Во время записи этого эпизода, мы с редактором подкаста Юлей Яковлевой писали друг-другу РОССИЯ и посылали патриотические стикеры. Это у нас такой внутренний мем, когда гости рассказывают о вещах, за которые мы чувствуем настоящую гордость за наших ребят. В этом эпизоде этого было очень много.
А ещё гости на примере объяснили, как именно коронавирус повлиял на цену электроники в мире. Прям заглянул за кулисы, очень интересно.
Слушайте и подписывайтесь: Apple, Google, Яндекс, Spotify, Castbox, Overcast, веб-версия.
Ещё похвастаюсь нашим нерабочим чатиком коллег. Чатик тематический — в нем мы регулярно постим фотки котов (основной флудер — Федя), а я вчера записал ASMR, как мой кот мурчит. А какие у вас нерабочие чаты? Делитесь в @ctodailychat
Завалил себя работой. Скоро выкатим перезапуск магазина курсов ЕГЭ Вебиума, ведем аудит одной крупной конторы, плюс продолжаем пилить одно секретное медиа и развивать Сноб — вот и не пишу в канал.
Хочу рассказать, как мы сделали админку для нового медиа, но всё руки не доходят дописать красивую статью. Вообще, пытаться сделать круто — это лучший способ не сделать ничего.
Вместо этого, в рамках прокрастинации, похвастаюсь новым офисом. Это комната в квартире рядом с домом, чтобы дети не мешали работать. Из мебели только стол и стул. Зато толстый ковер, можно отсыпаться в перерывах между встречами. Очень рекомендую, если работаете из дома и есть возможность.
Рейксмюсеум продолжает угорать по сканированию «Ночного дозора» Рембранта (без Джона Сноу).
Теперь выложили скан в 13 раз больше предыдущего — 717 гигапикселей, это самая большая фотография произведения искусства на планете весом 5,6 терабайт, отдельный пиксель меньше клетки крови человека.
По ссылке не только скан, но и подробный рассказ про сам процесс и открытия, которые совершили в процессе, можно надолго залипнуть.
Мне нравится вот этот просмотрщик финальной картинки, обратите внимание на скорость приближения/удаления и то, как можно рассмотреть, как Рембрант рисовал кружева.
Я не люблю делать покупки в интернете. Раньше я спокойно относился к формочкам, где просят в стотысячный раз ввести домашний адрес, данные банковской карты, пройти на следующий шаг и выбрать метод доставки и тд и тп (не забыть отжать галочку «получать новости»!). Теперь мне жалко на это время и мозга. Амазон (подставьте любой крупный марктеплейс) делает великое дело — один раз зарегистрировался и при нажатии «купить», все данные автоматом подсасываются из личного профиля.
При этом идеологически, централизация интернет-покупок мне нравится не больше, чем любая другая централизация.
Какой же приятный шок я сегодня испытал, когда воспользовался кнопкой «🍎Pay» в небольшом интернет-магазине. Нажимаешь одну кнопку и поднимается системный интерфейс iOS с 4 пунктами: 1) банковская карта 2) контакт (электронная почта или телефон), 3) адрес доставки и 4) метод доставки. Все поля предзаполнены моими данными, внизу — полная стоимость и предложение подтвердить покупку одним нажатием. Магия! И никакой централизации!
Так я думал, пока не полез читать документацию. Для интернет-магазинов, Apple Pay или аналогичный Google Pay — ещё один посредник, вдобавок в банкам и международной платежной системе типа MasterCard. У этого посредника свои правила, ограничения (пожертвования, например, нельзя собирать без специального разрешения господ из Apple, а уж издеваться над продуктами эпла и вовсе запрещено) и своя комиссия. Без дополнительной централизации не обошлось :(
Интересно, что технически существует общее API, которое позволяет веб-браузерам и магазинам реализовать такую же удобную оплату одним кликом с обычными банковскими картами, без всяких Apple и Google. Это API точно поддерживается в Google Chrome (demo) но я не видел его нигде в работе. Интересно, есть ли интернет-магазины, которые его реализовали? Повлияло ли это на конверсии?
Помните «проблему 2000»? Оказывается, есть и «проблема 2022». В почтовых серверах MS Exchange (один из крупнейших движков для корпораций) сегодня перестала ходить почта из-за «ошибки 2022 года» или Y2K22.
Дело в том, что для обозначения версий антиспам-списков в этом почтовом сервере разработчики использовали формат 220101002. 22 — это 22-ой год, 0101 — день и месяц, 002 — внутренняя версия обновления в этот день. Проблема в том, что они хранили это длинное обозначение в формате «число», которое вмещает в себя числа не больше 2^31, то есть не больше 2 147 483 648. 21-й год в такой формат влезает, 22-й — уже нет.
Выросло поколение программистов, которое не знает, что такое «проблема 2000», Y2K, когда в конце 1999 люди закупались продовольствием и оружием в ожидании компьютерного апокалипсиса, а решением этой (компьютерной) проблемы на полном серьезе несколько лет занимались правительства всего мира. Вот душевные статьи на русской (там и про Россию есть) и английской википедиях.
На фото президент США Билл Клинтон объясняет сложные технические штукипростым человеческим языком.
С новым 2022 годом!
Хочу подвести итоги года. Пост личный и длинный, можно спокойно скипать, no-FOMO.
В этом году я работал на трёх работах и жил две жизни:
1. Строил бизнес по IT-разработке с Федей Борщевым. Уже больше десятка клиентов: куча аудитов и пара запущенных MVP, перезапустили блоги Сноба и почти перепрограммировали публичную часть онлайн-школы ЕГЭ Вебиум. Главное — собрали команду из программистов, для которых программирование — это способ решения бизнес-задач, а не просто кодинг. Денег у нас в этом пока не очень много, цель на 2022 — запустить стартап и начать наконец зарабатывать бизнес-прибыль, а не только зарплату себе, Феде и ребятам-программистам.
2. Осваивал профессию психотерапевта. Прошёл курс молодого бойца у Димы Лицова и отучился для работы с группами в СИФЭП (тоже под руководством Димы). Группа соучеников, с которой мы больше года учились работе с группами — это, наверное, одни из самых близких мне людей теперь. Вообще, группы — это такая ультимативная встреча с собой. Начал небольшую практику с десятком клиентов. Группы пока не начинаю, провел пару учебных, заглянул в бездну и пока обхожу стороной, времени и сил пока не хватает. В 2022 планирую обучение в HEPI, цель — получить признаваемый в мире диплом психотерапевта и набраться опыта у мэтров.
3. Продолжал вести подкаст «запуск завтра». Это самый популярный подкаст про технологии на русском языке. Уже привычная работа, становлюсь профессиональным ведущим. Есть идеи новых форматов и новые темы на 2022, будем пробовать. Как бонус — провел несколько дней открытых дверей и был соведущим открытия чемпионата мира по программированию.
Зачем так много работы? Позитивный ответ — мне интересно. Негативный — пытаюсь заполнить жизнь под завязку, убегаю от чего-то.
Теперь про жизнь:
1. —
2. —
3. У нас с женой растут две дочки и сын. Сын — это для меня новое, отличное от дочек и очень классное. Юсуф.
4. Окончательно отказался от идеи, что я вегетарианец (даже это я пытался использовать как способ «быть лучше других»), готовлю дома мясо. Отказался от идеи, что я «правильный мусульманин»: капаю иногда в воду белое вино, мне очень нравится вкус.
5. Открыл для себя чудо массажа, читай нашёл своего массажиста.
6. Перестал грызть ногти, но так и продолжаю не спать по ночам, зависаю в интернете. Разобраться, зачем мне это — цель на 2022.
7. —
8. Пошёл на личную психотерапию, помогает.
В целом — доволен; в новом году хочется меньше убегать в пустое и больше жизни, больше быть с друзьями и семьей.
С новым годом вас, дорогие! Пусть в нем у нас всё получится.
Телеграм запустил функцию перевода — пункт меню появится, если зажать и держать палец на сообщении. Эта функция работает на разных телефонах по-разному и даже список доступных для перевода языков отличается в зависимости от модели.
В версии для айфонов, телеграм использует функционал операционной системы iOS 15, которая переводит тексты с помощью алгоритмов машинного обучения прямо на устройствах, без интернета, на 13 языках.
В андроиде аналогичного метода перевода нет. Есть очень крутой облачный сервис от Google, но он стоит 20$ за миллион символов. Перевод Войны и Мира (700 тысяч знаков) обойдется в 15$, на объемах телеграма разорится даже Дуров. Команда телеграма обманывает Google и пользуется их API бесплатно — это видно по исходному коду телеграма, которое доступно на гитхабе. Ох и любят ребята ходить по грани! Интересно, как гугл отреагирует.
Как вызвать у зрителя страх и ненависть к компьютерной программе, почему образ хакера — это почти то же самое, что и образ Бабы-Яги, и чем Нео из «Матрицы» похож на Иисуса Христа? Праздничный эпизод подкаста: обсуждаем фильм «Матрица» с киносценаристами Николаем Куликовым и Константином Майером, ведущими подкаста «Поэпизодный клан». 🎬🍿
Список фильмов, обсуждаемых в эпизоде, книжка по сценарному делу, а также рекомендации фильмов и ютуб-шоу на Новый год от гостей заслуживают отдельного внимания. Все в описании к эпизоду.
Слушайте и подписывайтесь: Apple, Google, Яндекс, Spotify, Castbox, Overcast, веб-версия.
Помните историю, как израильская компания NSO Group продавала услуги взлома телефонов, когда среди жертв были министры, правозащитники и личные враги арабских шейхов? Там фигурировал взлом айфонов через уязвимость в сообщениях.
Достаточно знать номер жертвы и все — получаешь полный удаленный контроль над телефоном.
Google project zero опубликовал технический анализ этого взлома.
Процитирую резюме из вот этого краткого пересказа: вам приходит гифка, которая на самом деле пдфка, и ее по ошибке не копируют, а пытаются прочитать; в ней доисторическая картинка в формате ксероксов, которая в результате [ошибки] целочисленного переполнения может писать в память, и внутри этой "картинки" семьдесят тысяч блоков логических операций, которые эмулируют небольшой компьютер, который уже находит то место в памяти, которое нужно изменить, чтобы убежать из песочницы [получить полный контроль над телефоном].
Автор вспоминает корабли в бутылке, а у меня в ушах звучит вот эта ирландская песня.
Как замечает Project zero, раньше мы думали, что такое умеют делать только спецслужбы некоторых государств (Россия, Америка, Израиль, Китай), теперь видим, что подобное оружие создают и частные компании, которые торгуют им на рынке.
Технически это шедевр, а использовали его для слежки, пыток и убийств.
В облаке Amazon AWS опять проблемы и это задело Slack — популярный рабочий мессенджер, так что если он у вас глючит — «дело не в офисном интернете».
У всех крупных онлайн платформ есть так называемый Status page, в котором инженеры отражают «здоровье сервиса». Ходят слухи, что в Amazon инженеров наказывают за то, что их сервис отметился на этой странице. К чему это приводит — довольно очевидно. Вот ребята сделали юмористический и чуть более удобный «правдивый статус Амазона».
Кстати, вот инструкция Apple о том, как делать компьютерные интерфейсы для людей. Прям буквально, начиная от общего поведения приложения и заканчивая оптимальным размером отдельных кнопок: Apple Human Interface Guidelines.
Аналогичные гайдлайны от Microsoft для Windows-программ и от Google — про Android.
Увлекательное чтиво, даже если ты не дизайнер.
Совершенно космическая стилизация современных программ вроде зума и слека в интерфейсе macOS 9 Classic 1999 года. Не просто скриншоты, а целое видео, где автор ведет свою ежедневную работу в «интерфейсах прошлого», UI-кит (набор строительных блоков) для дизайн-инструмента фигмы и супер классный лендос. Современное искусство! Должен признаться, что часть старых интерфейсов выглядит удобнее, чем современные ;)
(mac)OStalgia is exploring my 2021 work-from-home routine from a nostalgic perspective. How would have the same workflow looked like with the tools of today and the limitations of yesterday. macOS 9 meets modern software with unreliable internet, little disk storage and many more tech hiccups.
Разработчики Unreal engine хвастаются тем, что умеет их новейший игровой движок. Это основа, на которой работает больша́я часть современных видеоигр. Для примера они сделали интерактивное демо про Матрицу — воссоздали некоторые культовые сцены, то, как Нео уклоняется от пуль, например. В создании демо участвовали Киану Ривз, Кэрри-Анна Мосс (Тринити) и Лана Вачовски.
Конечный продукт — это не видеоролик (хотя видео и можно посмотреть на ютубе), а интерактивная «игра»-демо, которая рисуется обычной современной видеоприставкой «на лету». Фотореализм главных персонажей, реалистичность огромного города, поведения тысяч людей и машин в городе, точность освещения, взаимодействие машин с дорогой, свет, тени и взрывы — всё это в качестве, которое раньше было только в кино. В фильмах спецэффекты готовятся целыми командами, работа над минутой видео может занять месяцы и целые суперкомпьютеры. Здесь же всё происходит «на лету», на обычной домашней приставке 🤯
Бонус для тех, кому пофиг на компьютерную графику: интервью Киану Ривз и Кэрри-Анны Мосс изданию The Verge по поводу этого проекта. Интервью очень душевное. Момент, когда Киану Ривз вполне разумно рассуждает о будущем порно, а Кэрри-Анна Мосс закатывает глаза «надеюсь, я до этого не доживу» ❤️
Поисковых систем в мире меньше, чем компаний, которые запускают ракеты. Нам легко получить любую информацию в интернете одним кликом, а инженерам надо поддерживать базу данных с миллиардами веб-страниц и находить среди них нужные за доли секунды. О том, как компьютер понимает наши запросы и выбирает для них ответы говорим с руководителем Яндекс.Поиска Максимом Загребиным.
Слушайте и подписывайтесь: Apple, Google, Яндекс, Spotify, Castbox, Overcast, веб-версия.
Это — первый выпуск нашего специального сезона, который мы делаем вместе с Яндексом. Эпизоды будут по вторникам, раз в две недели. Обычные эпизоды будут выходить как и раньше, каждый четверг, новый основной сезон начнем через пару недель. 🌟
Жутко разозлился сегодня на гостя во время интервью для подкаста. Я спросил о деньгах, и от того, что и как ответил гость, меня просто вынесло. В самом начале 2-часового интервью. Конечно, гостю я это прямо не высказал (это всё-таки не психотерапия, да?!) и весь первый час терял время.
Формально я задавал вопросы, гость типа отвечал, слова говорились, но гость не раскрывался, истории не рассказывал.
Через час я зафантазировал, а как бы он вёл себя у Дудя, типа «гость хреновый, даже Дудь бы не справился» и вдруг представил лицо Дудя, с каким интересом и принятием он смотрит на своих гостей (ну, обычно).
Тут у меня что-то кликнуло, я понял, что дело не в плохости гостя, а в том, что я не принимаю его. Более технически — что-то из того, что он сказал, так сильно срезонировало во мне, мне стало так больно, что я защитился от этого, от него, отгородился.
И произошло чудо. Я слова не сказал (думаю, я изменился в лице), как гость ожил — у него изменилось лицо, он начал говорить с интересом, рассказывать истории. Интервью заработало!
Про чувства может показаться очень абстрактной, даже эзотерической материей, но «работает или не работает интервью» — штука объективная, четко видная.
Выводов у меня куча, но оставлю их при себе, хочу просто поделиться историей. Уж очень она меня впечатлила.
На прошлой неделе я встретился с инвестором Кириллом Беловым и узнал, как работают венчурные фонды, что и как нужно питчить инвестору, как оценить стоимость стартапа и какие IT-тренды ждут нас в ближайшем будущем.
Любимые редакторы сделали из 2 часового разговора 65 минутный эпизод. Слушайте на всех платформах: Apple, Google, Яндекс, Spotify, Castbox, Overcast, веб-версия. Открытая запись целиком доступна на ютубе.
—
Это — финальный эпизод 5 сезона. Сейчас мы уйдем на небольшой перерыв и вернемся с новыми выпусками. То, что начиналось как эксперимент, за эти два года стало важной частью моей жизни. Спасибо Лике Кремер, что предложила 2 года назад начать подкаст, Юле Яковлевой — за гениальную редактуру, Паше Боровкову — за то, что у нас всегда всё по плану, Нине Мамотиной — за идеальное качество звука. Андрею Борзенко, что редактировал подкаст в первом сезоне, когда мы придумали формат. Вы — команда мечты. Полтора месяца назад к нам присоединилась младший редактор Ира Хант — добро пожаловать!
Всего этого не было бы без вас, дорогие слушатели. Спасибо вам! Мы командой подкаста хотим узнать о вас побольше, что вам нравится и не нравится, что вы хотите изменить, кого пригласить в гости. «Финальный вопрос» в конце каждого эпизода появился именно после ваших отзывов, что подкаст обрывается слишком внезапно. Ждем новых комментариев и ваших ответов вот в этом опросе. Ну и ещё раз СПАСИБО!
Закончил на днях технический аудит очередного клиента. Хочу поделиться историей, которую вижу буквально в каждом втором случае.
Начинается новый бизнес, сильно завязанный на софте. Первое время, все классно: один программист — хорошо, два — почти в два раза лучше. 10 программистов — можно делать вещи, о которых раньше и помыслить было нельзя.
Через 3-6 лет в компании уже 50 разработчиков. Продукт при этом практически не развивается, фичи доставляются разработкой в продакшен со скорость улитки. Добавьте к этому зарплаты разработчиков в 100-400 тысяч в месяц и вы можете представить, что чувствует бизнес. Почему так?
А происходило вот что: все эти годы, каждый раз, когда нужно было выбрать между «сделать фичу побыстрее прямо сейчас» и «сделать так, чтобы это можно было потом поддерживать, пусть и подольше прямо сейчас» — бизнес с разработкой вместе выбирали первый вариант. Логично, что рано или поздно гора неподдерживабельного кода становится слишком высокой и уже никто не может докинуть ещё что-то сверху.
Сложно винить в этом бизнес: они не обладают компетенцией, чтобы ясно увидеть, как копают себе яму. Сложно винить разработку: спорить с бизнесом очень трудно, они профессиональные переговорщики, а объяснять разработку не-технарям — редкий скилл, отличный от умения писать крутой софт. Вообще, этот процесс требует взаимного доверия и открытости, когда бизнес пытается вникнуть в разработку, а разработка — подумать о бизнесе, с помощью друг-друга.
В общем, искать виноватого смысла нет, а варианты решений следующие:
1. Если это допустимо, то перевести проект в режим поддержки, пусть зарабатывает сколько может, большую часть команды уволить или перекинуть на новый бизнес-проект. Этот вариант выглядит радикальным, но по сути — самый простой, не требующий изменений подходов к работе. Вариант со звездочкой — с помощью той же команды написать с нуля новое решение — конкурента старому, учтя уроки прошлого.
2. Если же вам нужно развивать то, что есть — то впереди вас ждут пот и слёзы.
Во первых, признайте, что это не случайность и не временные трудности, а капитальная жопа, выбираться из которой месяцы, если не годы. Быстрых и дешевых решений, к сожалению, нет. И нет, применение нового фреймворка типа эджайла или канбана — не поможет.
Нужно отдавать технические долги и приводить код в порядок. Технически, есть несколько основных подходов и обычно используется их комбинация. Подход первый: выделить изолированный кусочек проекта и переписать его «начисто», минимально затрагивая остальные части. Подход второй: начать писать тесты поверх функциональности, которая есть. И тд и тп. Это — исключительно сложная инженерная работа. В несколько раз сложнее, чем написать аналогичный проект с нуля. Плюс в том, что вы так потеряете меньше знаний, который вложили в продукт за эти годы.
Организационно, вам придётся выделять на это адское количество времени и сил. Речь о 30-50% времени ваших инженеров. Результаты, в плане увеличения скорости разработки, вы увидите через месяцы в лучшем случае. Другого пути я не знаю.
Также, имеет смысл добавить в команду новых опытных бойцов. Дело тут не только в технической компетентности, но и в отсутствии психологических «долгов», свежести и незамутненности взгляда, в четком мандате на перемены. Желательно, чтобы человек уже имел опыт подобного рефакторинга.
В общем, это — путь смелых.
—
Добавлю, что обычно, ко всем этим техническим проблемам добавляется ещё и нежелание признать реальность, когда бизнес требует, а команды регулярно обещают больше, чем могут реализовать. В результате, разработка постоянно существует в режиме пожара (какая уж тут инженерная культура, когда ничего не успеваешь!), а бизнес постоянно не доволен и не верит обещаниям программистов.
Приведение этого процесса в порядок — отдельная работа, но об этом — в следующий раз.