Навигация по каналу.
Всем привет, с вами разработчик из Петербурга, а здесь мой личный блог. Многие люди говорят мне, что им нравится, как я пишу, и это поддерживает существование данного канала. Тут совершенно точно не будет примитивного агрегатора новостей, очередной подборки мемов или филиала твиттера с короткими эмоциональными высказываниями. Данный блог — вдумчивый и авторский, содержит мои размышления и пережитый опыт. Подписывайтесь, если вам действительно интересно читать. Буду рад также вашему участию в обсуждениях.
Вот основные теги:
#dev — программирование
#gadgets — гаджеты
#games — видеоигры и настолки
#fiction — книги, фильмы
#hobby — DIY и другие хобби
#web — интернет, соцсети
#life — просто о жизни
Навигация по каналу.
Всем привет, с вами разработчик из Петербурга, а здесь мой личный блог. Многие люди говорят мне, что им нравится, как я пишу, и это поддерживает существование данного канала. Тут совершенно точно не будет примитивного агрегатора новостей, очередной подборки мемов или филиала твиттера с короткими эмоциональными высказываниями. Данный блог — вдумчивый и авторский, содержит мои размышления и пережитый опыт. Подписывайтесь, если вам действительно интересно читать. Буду рад также вашему участию в обсуждениях.
Вот основные теги:
#dev — программирование
#gadgets — гаджеты
#games — видеоигры и настолки
#fiction — книги, фильмы
#hobby — DIY и другие хобби
#web — интернет, соцсети
#life — просто о жизни
Некоторые жанры игр очень хорошо демонстрируют поведение сложных систем: стратегии с симуляцией, градострой, игры-фабрики и так далее. И конкретно фабрики мне в этом образовательном отношении кажутся идеальными, потому что всю систему строишь ты сам, у тебя даже ограничений на ресурсы особо нет. При этом системы получаются инертные и склонные к каскадному усилению проблем, то есть как и в реальной жизни.
Всего каких-то лет десять назад я всерьёз не понимал, почему в какой-то большой компании или, например, в государстве существуют совершенно очевидные и серьёзные проблемы, которые руководство или правительство годами не решает. Варианта было только два: «все дураки» (то есть, глупые, не знают, как решить) и «все мудаки» (то есть, знают, но им плевать). Рекомендую всем, кто так думает, попробовать наладить производство плутониевых стержней в Satisfactory (научных колб в Factorio, деталей для сферы в Dyson Sphere Program и так далее).
Смотрите: я полностью контролировал весь процесс, буквально каждую его деталь. И я был заинтересован в том, чтобы все узлы работали правильно. Я всё, что мог, посчитал заранее в экселе, был очень аккуратен при проектировании, и все равно в какой-то момент в отдельных цехах не работали машины по сборке модульных каркасов, потому что при протяжке конвейера туда попала руда вместо деталей. Я знал о проблеме с рудой ещё раньше и устранил её, проверил в первых трёх цехах из десяти, проверил что сумма каркасов увеличивается и оставил. А через несколько недель (!) игры буфер опустел и каркасов стало не хватать.
То есть да, проблема не видна сразу в пространстве из-за масштабов системы и не видна сразу во времени из-за инерции системы.
А теперь представьте, что исполнители в системе это не идеально запрограммированные машины с предсказуемым поведением, а люди, которые могут творить практически что угодно, и над ними нужен постоянный контроль, который тоже обеспечивают люди. Даже самый компетентный и заинтересованный управленец может годами не знать о чём-то, что для находящихся в конкретном месте кажется очевидной и серьёзной проблемой.
Мне особенно запомнился случай с недавней линии президента, когда жительница пожаловалась на то, что застройщик забрал деньги за квартиру и свалил в закат. В ответ ей было искреннее удивление: «А разве деньги были не на эскроу-счёте?». Потому что внезапно у государства уже есть хороший механизм для предотвращения таких проблем, но в системе такого масштаба невозможно учитывать все до единого случаи вроде «Даже в такой важной операции, как покупка жилья, люди будут вести себя глупо и игнорировать рекомендованные механизмы». И там же ещё была другая жалоба: пенсионерка заявила, что банк обманом оформил на неё кредит с выплатой, превышающей пенсию. Тут уже проявляется инертность: проблема на самом деле старая, но только сейчас шестерёнки докрутились до введения функции «Самозапрет кредитов» в Госуслугах с марта 2025 года. То есть на самом деле решение придумано и запущено на введение, и решение хорошее, но конкретные люди всё ещё сталкиваются с проблемами. И будут сталкиваться дальше, потому что не все узнают про функцию, не все сумеют ей воспользоваться и так далее.
Конечно, понимание работы сложных систем приходило ко мне не из-за игры, а просто по мере взросления и получения жизненного опыта. В 25 лет нормально думать, что все чиновники/начальники идиоты, а я бы вот всё это сделал лучше. Но в 35 это плохая модель, особенно после того, как сам попробовал управлять командой пусть даже из трёх-пяти человек. Однако, интерактивные симуляции помогают кристаллизовать это понимание. Увидеть на личном опыте, как сильно падает внимание к отдельным узлам системы при увеличении её размеров. И в какой-то момент ты обнаруживаешь полное отсутствие алюминиевых корпусов, хотя ведь всё продумал очень внимательно! А оказывается, из-за дефицита боксита цикл обратной связи воды при производстве глинозёма вызывает переполнение и блокирует отвод избытка.
#games#life
3. Комбо стратегия (One Turn Kill). Стратегия со ставкой всего, что имеешь, основанная на постепенном накоплении некоторого преимущества в один основной атакующий инструмент, и разыгрывании этого инструмента в конце партии. Такие колоды активно защищали себя, но в течение партии на поле развивались слабо, зато копили силу в каком-нибудь особо смертоносном заклинании, чтобы просто разыграть его в конце и сразу уничтожить противника.
Смотреть за этими матчами тоже было интересно, хотя зависимость от случайности была относительно высокая. Если комбо-игроку не приходила та самая карта с Очень Мощным Заклинанием, ему просто нечего было делать, никаких других инструментов для сражения особо не было.
В реальности бывают люди, которые ставят много на какое-то одно направление. Они, как правило, вполне компетентны в том, что делают, но сильно проседают буквально во всём остальном. А ещё если вдруг что-то случается с основным направлением, то их может ждать крах (например, много лет занимался бизнесом, но потом бизнес рухнул из-за внешних обстоятельств).
#games#life
Долгое время у меня в кабинете на столе жил "Куб управления Aqara" — специальный беспроводной пульт умного дома, который разными жестами позволял совершать разные действия. Но по-настоящему различимых работоспособных жеста было всего 4: поворот на 90, поворот на 180, горизонтальное вращение, встряхнуть. Не хватало еще парочки.
И вот Aqara выпустила новую версию. Хотя на самом деле конечно добавить такую функциональность можно было обновлением прошивки, но маркетинг диктует необходимость продать людям тот же продукт ещё раз. В любом случае, "новая версия" умеет понимать, какой гранью вверх она находится, и отстраивать функцию от этого. В оригинале там на каждой грани нарисованы точки, как на игральной кости. Но я использовал этикеточный принтер (на удивление удачная и полезная покупка для дома) и сделал наклейки. Теперь достаточно повернуть куб нужной картинкой вверх и потрясти, тогда будет включена/выключена, например, люстра, открыты/закрыты шторы, включен рабочий компьютер и так далее. Занял все слоты, удобно.
#gadgets#life
Apple всё-таки отключает русские карты от Apple Pay, в том числе "Мир". Когда я несколько дней назад писал о смене платёжного приложения, я думал, что они уже отключили, и поиронизировал тогда над пользователями яблок. Но вы меня поправили, "Мир" действительно работали в Apple Pay внутри страны. А теперь вот, получается, и правда отключили.
Конкретно это решение компании Apple такое же истерически-конформистское, как и решения других западных компаний. Google вон вообще сразу русские карты в Google Pay выключил.
Но я хочу всё-таки заострить внимание на запрете со стороны Apple использовать на айфонах любые другие платёжные приложения, кроме Apple Pay. Этот запрет не распространялся конкретно на Россию и не введён недавно, это просто часть общей идеологии компании: мы лучше знаем, как причинить тебе добро. Это всё ради твоей же безопасности (знакомая риторика, кстати?). Закрытость проявляется и в других вещах: не так то просто поставить на айфоне стороннее приложение не из магазина, не так то просто получить доступ к файловой системе. Именно эту привязку к своей экосистеме, а значит и возможность диктовать свои условия, я отмечал в своём давнем выпуске подкаста с рассказом о том, почему перешёл с iPhone на Android ещё в прошлом году.
Глобально, конечно, мы от монополий никуда не уйдём, а у компаний всегда будет возможность навязывать свою идеологию под угрозой отключения каких-то услуг или сервисов. Sony даже нарушили собственную Terms Of Service, чтобы отключить русскоязычные аккаунты от PS Store (в том числе в Армении, Грузии, Казахстане, Сингапуре и т.д.). Власть монополий это, пожалуй, одна из главных проблем капитализма, и антимонопольные меры, принятые в большинстве стран, по факту с этим справляются очень плохо.
Но там, где есть выбор, стоит всё-таки стараться выбирать максимально независимые решения. Конечно, у них будут проблемы. Как правило независимые решения сложнее в настройке и обращении, чем предварительно разжёванные корпорацией. А ещё вы можете думать, что совершенно точно всю жизнь собираетесь разделять идеологию и решения вашей любимой корпорации (такая религиозность, кстати, нередко свойственна как раз фанатам Apple). Тут мне вспоминается сюжет из 1984, когда у главного героя коллега, совершенно преданный системе, всё равно попал в тюрьму, потому что был слишком умён, а, значит, представлял для системы угрозу.
Фантасты, кстати, нередко пророчат корпорациям превращение в государства в будущем. По мне так очень вероятный сценарий. Граница между политикой и крупнейшим бизнесом уже сейчас максимально размыта.
#life#gadgets
У меня тут три дня скачет давление, и я пользуюсь новым электронным тонометром. Это прибор размером чуть больше пачки сигарет, крепится на запястье и питается от пары ААА батареек. Он полностью автоматический: надел, нажал одну кнопку, всё.
Моё поколение застало, как измеряли давление наши родители: манжета на плечо, которую не всегда легко затянуть одной рукой. Необходимость вручную накачать её грушей, а усилие для этого требуется немаленькое — удивительно, как бабушки справлялись. Затем нужно правильно закрепить головку стетоскопа на сгибе локтя. И слушать, параллельно следя за аналоговой стрелкой и стравливая воздух в нужном темпе.
Технологии в этом отношении сделали гигантский шаг в плане удобства. Хотя ничего принципиально магического в современном тонометре нет: и электрический компрессор и возможность прибором определить сердцебиение были и раньше. Но развитие вот таких бытовых вещей в целом идёт по пути автоматизации и уменьшения размеров. Можно попредставлять, какая техника сейчас не слишком удобна, и куда её будут улучшать. Хотя, конечно, где-нибудь в пределе ТРИЗ намекает нам о том, что решать задачу нужно совсем иначе — например, собрать человеку новое тело, вообще не нуждающееся в измерении давления. Но это уже другая история.
#gadgets#life
На рынке удивительная ситуация с этим кризисом чипов: у людей есть деньги и желание купить товар, а у компаний есть производство и желание продать. Но товар не могут сделать и поставить. Кстати, что странно, компании даже в условиях дефицита не повышают официальную цену, хотя именно так капитализм должен был бы в норме решать эту проблему. В итоге, мы получаем паразитическую сторону капитализма — появляются перекупщики, которые делают наценку 50-100% и даже более.
С автомобилями (да, новые автомобили тоже внезапно в кризисе) такая перепродажа, вероятно, не очень прокатывает. Но приставки и видеокарты попали под ситуацию очень заметно. В идеале и производителям и легальным магазинам нужно продать товар по возможности сразу целевому пользователю. Как это сделать? Магазины в России в конце прошлого года попробовали анализировать аккаунты покупателей и вручную звонить людям, попавшим под некий профиль (например, если человек купил много геймерских товаров), предлагая им PlayStation 5. Кажется, сработало это не очень хорошо. Во-первых, многие, кто очень хочет, так и остались без приставки. Люди буквально днями и неделями мониторят все возможные сайты в надежде поймать заветную «плойку». Иногда удается, но чаще нет. Во-вторых, магазины всё равно попадают на тех, кто в итоге продаст товар с наценкой. Например, два разных магазина могут продать одному и тому же человеку. Или — так было в моём случае — магазин предложил мне только дисковую версию, я её купил и продал ровно так, чтобы компенсировать наценку на бездисковую, которую на самом деле хотел. Впрочем, я купил бездисковую не у таких потерявших берега перекупщиков, какие обитают в России, а за границей, и наценка была небольшая относительно состояния рынка.
И вот здесь привязка устройств к человеку по каким-нибудь идентификационным данным на самом деле могла бы сыграть в плюс. В магазине, кстати, приставку продали только при личной явке и только при предъявлении паспорта, и это после их же звонка с предложением. Но можно пойти дальше: прямо при покупке привязывать аккаунт к конкретной персоне, и так, чтобы его нельзя было отвязать, например, в течение года. Это конечно упрощённая и идеализированная модель, но суть ясна: сделать скорую перепродажу невыгодной или даже невозможной.
Год назад казалось, что через год то уж точно приставки для всех будут. Я поэтому тогда и не купил. А в действительности через год стало только сложнее достать. Посмотрим, что будет ещё через год.
#life#gadgets
Некоторые области удивительным образом игнорируют прогресс в других областях. Для меня самым характерным примером являются, пожалуй, бортовые компьютеры автомобилей.
Вчера я ехал на такси Комфорт+, это была вполне приличная и не старая Kia Optima. Водитель параллельно со своим телефоном включил встроенный навигатор, и он ожидаемо оказался очень плох. Мало того, что даже близко не адаптирован под Россию, с убогой не детализированной картой, так ещё и жутко тормозил: FPS анимаций в районе 1-2.
Потом я вспомнил, как мы с друзьями в Москве брали в каршеринге Genesis G70 — Южно-Корейский автомобиль премиум-класса с ценой от 2.5 млн рублей. И там стоял адаптированный бортовой компьютер под управлением Android. Надо ли говорить, что скорость его работы была настолько необъяснимо отстойной, что даже самый дешманский ноунейм китайфон справился бы с задачей навигации лучше?
Каждый раз, когда я вижу экран бортового компьютера автомобиля, я будто смотрю через маленькое окошко в прошлое 20-летней давности. И по скорости работы и по функциональным возможностям всё поразительно плохо. Можно оправдывать это якобы безопасностью (сторонний софт нельзя ставить, чтобы он не мог повлиять на движение автомобиля), но на деле эти цепи легко разделяются: двигатель и важные узлы в одном месте, а навигатор, информация с датчиков, климат-контроль — в другом, на другом процессоре с другой областью памяти.
Автомобильная промышленность в целом довольно консервативна. Поэтому большинство серийных моделей выглядят одинаково скучно, о каких-то крутых новых функциональных фишках мы слышим раз в десятилетие, а какие-то изобретенные полвека назад вещи до сих пор есть далеко не в каждой модели (например, парктроники). Но иногда до абсурда доходит: в тачке за пару лямов компьютер хуже, чем китайский планшет за десятку.
#gadgets#life
Внезапно сменил работу
Кажется, буквально только что прогремела моя статья о собеседованиях, феерично завершившаяся попаданием в 2ГИС. Восемь месяцев — чертовски маленький срок. Никогда не занимался «джобхоппингом», так что и сейчас не открывал резюме, не искал работу, готовился к аттестации. Встроился в процессы, накупил корпоративного мерча, подружился с коллегами и стал регулярно ездить в офис (который при мне перенесли в другое здание и расширили). Уже прям ассоциировал себя с 2ГИС.
Но внезапно мне сделали очень заманчивое предложение. Такое, от которого невозможно отказаться. Позвали в расширяющуюся финтех-компанию архитектором на новые продукты. Очень грустно уходить из 2ГИС, но я бы себя не простил, если бы не воспользовался открывшейся возможностью.
Сегодня на теперь уже старом месте работы было exit-интервью. Кстати, хорошая практика — компания обращает внимание на особенности в статистике увольнений. Задавали вопросы о том, что было хорошо, а что можно улучшить.
Вообще впечатления от 2ГИС самые тёплые. Из плюсов я бы выделил развитую корпоративную культуру и приятную атмосферу работы (не в последнюю очередь благодаря коллегам). Я с удовольствием читал внутренний новостной портал, ходил на презентации фич и самопрезентации новичков, участвовал в местных квизах. Прям сильный косяк вышел только с хакатоном, я вам об этом писал, но там скорее всего просто конкретные организаторы лажанули.
Одна из самых крутых киллер-фич 2ГИС, как работодателя — упрощённое взятие выходных и отпусков. По большей части не нужно никаких специальных согласований, если ты внезапно повёз ребёнка к врачу, или сам устал и хочешь денёк отоспаться.
Однако, в других местах отсутствие формализма порождает сложности. В Росатоме, например, процессы движения задач по жизненному циклу были зарегламентированы сильнее: нельзя передать что-то в разработку без аналитики, постановщик задачи сам следит за её статусами, задача целиком переназначается всегда на текущего одного ответственного человека (на стадии разработки на программиста, на стадии тестирования на тестировщика и т.д.). В 2ГИС иногда задачи приходили от бизнеса с необходимостью самостоятельно ходить по людям и уточнять, что на самом деле хотели. Делалось это как бы для экономии на аналитиках, что лично мне кажется большим заблуждением: бизнес таким образом платил за время более дорогого программиста, который ещё и выполнял работу аналитика дольше, потому что специализируется на другом. В итоге то, что казалось экономией, в моём понимании было скорее увеличением расходов и сроков. То же самое касалось, например, архитектуры и техдолга (но это типичная проблема подавляющего большинства бизнесов — техдолг вообще никто не умеет считать и оценивать).
Я бы сказал так: 2ГИС как бы вырос из стартапа и стал практически бигтехом, особенно после покупки Сбером. Если не бигтехом, то энтерпрайзом точно. Но в итоге оставил часть недостатков стартапа (экономия на «второстепенных» вещах, отсутствие регламентов) и получил часть недостатков энтерпрайза (слабое влияние сотрудников на конечный продукт, очень затянутое планирование и согласование новых задач, заметное количество легаси).
С другой стороны в той же мере присутствуют одновременно плюсы стартапа (простые организационные процессы, неформальная атмосфера) и плюсы энтерпрайза (стабильная компания с офисами, конкурентными зарплатами, рыночным белым оформлением, айти брендом и корпоративной культурой).
Если вы дисциплинированы, компетентны и не боитесь некоторых трудностей, то я однозначно готов советовать работу в 2ГИС. Сейчас идёт набор разработчиков на C#, Go, дата-саентистов, присоединяйтесь :) Уровни мидл и сеньор.
#dev@clockstackwheels#life@clockstackwheels
Самое удивительное в энтерпрайз-разработке — необходимость специально доказывать и аргументировать объективно правильные решения. Представь, приходишь на автомобильный завод, а там выпускают бензобаки с дыркой в центре одной из стенок. Причём, это не особенность конкретного рынка или потребителя, просто исторически так процессы сложились. Ты такой: «Эээ, зачем с дыркой, давайте делать без дырки». Но тебе отвечают, что нужно аргументировать, защитить эту позицию перед бизнесом, ещё и с цифрами. Показать, что затраты ниже, чем профит. А начальник производства тебе ещё и раскладывает: на бензобаки без дырки будет уходить больше металла, так что твоё предложение приведёт к росту расходов. Ещё и у клиентов баки начнут заполняться дольше, негативный опыт.
Ты находишь инженерные книжки с описанием физики сплошных сред: «Вот гляньте что пишут, вот аргументы, вот схемы и формулы». А в ответ слышишь, что книги это идеализация, и в жизни оно всё иначе, нужно реалистично смотреть. Но самое главное: перестраивать линию на отсутствие дырки это прям очень дорого: станки переконфигурировать, персонал обучать, да и наверняка первое время будут косяки, поставки снизятся. Короче если прям не докажешь, что профит от твоего предложения принесёт миллиард за день, то иди нафиг.
Почему в разработке такого много, а на реальных автомобильных заводах всё-таки делают без дырок? Я вижу две причины:
1. Во-первых, когда бензобак еб**ёт, или там самолёт упадёт, это очень заметно. Аварии происходят с шумом, нередко с травмами. А падение какого-нибудь входящего интеграционного потока из-за отсутствия контроля состояния модели — это тихо, без фейерверков. Ну насыпется в лог ошибок, пошёл, руками поправил пару записей в БД, запустил снова.
2. Во-вторых, всё-таки у разработки низкая степень разнообразной конкуренции из-за склонности этой сферы к монополизации (которая обусловлена простотой доставки потребителю). В мире порядка тысячи автопроизводителей, а вот софт одного типа обычно выпускает едва ли десяток компаний. Сколько фирм делают, например, САПР для твердотельного моделирования? Нейросетка мне привела девять. Сколько настоящих конкурентов у какого-нибудь Майкрософт Офиса? Один: гугл документы.
И вроде всё понятно, как оно работает, но не перестаю удивляться. Нужно прям реально убеждать людей, не на инженерном языке, а на языке бизнеса и маркетинга, что дырка в бензобаке это плохо. #dev#life