Проблема нахального новичка

В компаниях и коллективах, которые существуют продолжительное время, всегда вольно или невольно возникает проблема взаимоотношений с поколениями. В своем «Курсе молодого CEO» я рассказываю, что в компании, с моей точки зрения, существует три стадии развития — и люди, начинающие работать в компании на каждой из этих стадий, сильно отличаются по роли в компании, взаимоотношения и так далее. Если совсем упрощать — человек, пришедший в стартап, когда все сидели в небольшом офисе со скромным бытом, где все друг друга регулярно видели, ощущает себя не совсем работником, а скорее — членом большой семьи, а тот, кто пришел в большой офис с сотнями сотрудников и красивыми кофепойнтами, все же пришел работать на работе за деньги. При этом этот второй сотрудник воспринимает предыдущее поколение по-разному — как отцов-основателей, как старперов, которым просто повезло придти раньше, как брюзжащих и не очень профессиональных людей. Впрочем, предыдущее поколение часто отвечает взаимностью.

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

Рутина как цена репутации

В моем «Курсе молодого CEO» я несколько раз стараюсь упомянуть, что есть всякая неприятная сердцу стартапера рутина, которую многие обозначают словом «операционка», которую CEO всё же надо научиться любить и понимать её смысл.

Я как-то попросил участников курса написать, какая часть рутины им наиболее неприятна и подавляющее большинство ответили предсказуемо — юридические и финансово-бухгалтерские вопросы. И это вполне репрезентативный результат — по крайней мере, если судить по количеству реальных ситуаций, когда основатели нанимают номинальным директором юриста или финансиста и считают, что избавились от «операционки».

Более того, мне совершенно всерьёз в своё время Елена Колмановская, на тот момент директор департамента маркетинга в «Яндексе», объясняла, что позиция генерального директора «Яндекс.Украина», которую я тогда занимал, вообще чисто техническая и я не должен считать это своей работой, а заниматься чем-то другим (просилась аналогия то ли «О душе бы подумал…» то ли «Вам, сударь, к материализации идеала надо готовиться, а не верхом скакать…» из кинофильма).

И такая идиллия с пренебрежением рутиной, особенно юридической, может продолжаться довольно долго — пока не взрывается в лицо основателям самым неожиданным образом.
В курсе есть даже отдельная лекция, где описывается несколько живых примеров — причем далеко не все они имеют отношение к стартапам или IT. Но вот тут прямо в реальном времени можно наблюдать новый кейс, который, возможно, еще и не закончен, хотя ущерб уже заметен.

О роли личности в истории

Пользуясь расхожим штампом, ничто не предвещало… Как вы, вероятно, знаете, вчера компания SpaceX совершила очень важный тестовый запуск в рамках проекта Starship — в ходе запуска удалось после отделения первой ступени вернуть её на стартовую площадку и поймать на крепления в верхней части ступени. Кроме того, вторая ступень — сам Starship, — выполнил всю программу полета и успешно приводнился в Индийском океане.

Это важно для всего проекта, поскольку первая ступень (Booster) очень дорогая, она снабжена 33 ракетными двигателями и успешное приземление означает возможность использовать её часто и дешево. Причем, если ловить её таким образом, снижается вероятность повреждения ракеты при касании земли, повреждения посадочной площадки, можно сэкономить на посадочных ногах и сопутствующих системах (причем сэкономить и вес, что важно), и в идеале инженеры ориентируются на то, чтобы ступень была готова к повторному использованию через час после старта.

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

Сериал про Wordpress продолжается

Сериал “Мэтт Мюлленвег против WP Engine” продолжает развиваться. Примерно в то же время, когда мы в Радио-Т обсуждали историю с дополнительной галочкой (теперь при логине на Wordpress.org вы должны подтвердить, что не аффилированы с WP Engine), Wordpress.org приняли решение и форкнули плагин Advanced Custom Fields.

Advanced Custom Fields — это популярный плагин, с 2 млн установок, который широко используется разработчиками при разработке сайтов на Wordpress, он позволяет гибко конфигурировать дополнительные поля для существующих типов контента и задавать новые. И да, в свое время его купила компания WP Engine и достаточно давно ведет его разработку. Поскольку теперь у разработчиков компании нет возможности обновлять плагин, размещенный в репозитории Wordpress.org (в своем зеркале они это делают, а пользователи платной версии получают обновления отдельным образом, как и с любым другим платным плагином), то Wordpress.org на основании статьи 18 правил репозитория сделали форк плагина и переименовали его в Secure Custom Fields. Теперь, если у вас стоит исходный плагин и вы обновитесь, у вас появится новый плагин. На данный момент он полностью совместим с оригиналом, в нем просто закрыта уязвимость — собственно, необходимостью её закрыть в условиях отсутствия доступа оригинальных разработчиков этот форк и объяснен официально.

WP Engine в лице команды разработчиков ACF назвали это захватом (take over). С одной стороны, open source с учетом требований GPLv2 никак не ограничивает любого желающего в праве форкнуть любой проект и развивать его самостоятельно. С другой — если я или вы форкнем любой плагин, мы никак при этом не затронем существующую аудиторию оригинального плагина, а Wordpress фактически сделал именно это. Если внимательно почитать тот самый пункт 18, то, в целом, он оставляет за Wordpress, то есть за Automattic, то есть за Мэттом Мюлленвегом лично, право захватить таким образом любой другой плагин — например, уже высказываются предположения, что следующей жертвой станут разработчики конструкторов страниц типа Elementor, мол, и Мэтт про них высказывался нелицеприятно, да и они представляют собой явную конкуренцию любимому детищу Мэтта — блочному редактору Gutenberg, который далеко не всеми воспринимается как идеальный продукт.

В общем, чем дальше, тем печальнее воспринимается эта история.

Восстановление уставшего Mac mini

Век живи — век учись! Точнее, вот как дело было.

Есть у меня mac mini. Модель 2020 года, с M1, начального уровня. Машинка, честно говоря, не очень везучая — буквально через месяц после покупки довольно близко от дома ударила молния и как-то довольно избирательно пострадали устройства, в том числе и mini — перестал работать Ethernet порт. Впрочем, при этом сильно пострадал свитч, в который машина была включена, так что это вторичный эффект.

Тем не менее, машинка проработала несколько лет, но чем дальше, тем больше вылезали какие-то эффекты — терялся загрузочный диск, перезагрузка приводила к пляскам с бубном, чтобы оно все же загрузилось и в итоге, когда я уже переехал в качестве основной на Mac Studio, она облегченно вздохнула и перестала включаться вообще. Вы, кстати, знаете, что, когда устройство Apple категорически не может загрузиться, его светодиод (если он, конечно, есть) начинает оранжевым цветом мигать SOS?

Я долгое время не трогал компьютер — честно говоря, решил, что он больше не заведется. Но так получается, что мне очень нужен компьютер в студии и, после регулярного использования MacBook Pro, идея завести что-то другое нравилась всё больше. MacBook Pro у меня довольно старый — еще на Intel, причем на i9, — поэтому он, с одной стороны, мощный, но с другой — моментально нагревается и начинает шуметь вентиляторами. А это, в конце концов, студия и увеличивать уровень фонового шума не годится.

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

И оказалось удивительное — кстати, странно, что я раньше не натыкался на эту информацию. Оказывается, Маки на основе Apple Silicon имеют firmware, то есть прошивку, и эту прошивку можно починить. Маки даже можно для этого ввести в DFU (Device Firmware Update) и после этого подключить к другому Маку напрямую — и вторая машина поймет и предложит два варианта — Revive и Restore.

Description

Revive — это именно починить прошивку и налить новую операционную систему, а Restore — полностью очистить машину, прошить firmware и поставить новую операционную систему.

В общем, терять-то нечего, поэтому я попробовал. Первая опция загрузила 15 гигабайт софта, всё это было развернуто на mini, но не очень помогло. Тогда я вспомнил, что, вообще-то, я уже стирал всё с mini, так что сохранять нечего, и попробовал полный Restore. И в итоге, через пару десятков минут я получил полностью работающий mac mini с установленной Mac OS Sequoia.

Я удивлен, если не сказать больше. Честно говоря, я считал, что компьютер просто физически сломался и спасти его, не вскрывая и не перепаивая что-то, просто не получится. А, оказывается, его можно просто подключить к другому компьютеру и всё починится.

И сэкономит мне несколько сотен долларов, как минимум.

Мечты Джорджа Вашингтона

Два совершенно прекрасных скетча из Saturday Night Live — один вышел год назад, второй — 5 октября этого года. Джорджа Вашингтона играет Нейт Баргадзе (нет, вроде бы без грузинских корней, пишут, что его предки из восточной Швейцарии).

Две редакции Тараса Бульбы

Не будем больше про Пушкина — тем более, что для города с историей в несколько сотен лет как-то странно цепляться за неполный год, какое бы солнце литературы его в нем не провело.

Меня серьезно впечатлила судьба Гоголя. То, что в русской Википедии названо “Трансформацией из украинского писателя в русского” скорее выглядит как результат воздействия идеологического имперского пресса, в итоге задавившего писателя. Вот сравните две редакции “Тараса Бульбы” — первые три скриншота это первая редакция 1835 года, а остальные — тот же отрывок из самого начала, но после правки издателем и писателем в 1842 году. И найдите на первых трех страницах слово “русский”.

Честное слово, правки выглядят так нарочито, что ничем не уступают истории советского времени, когда в “Воспоминания и размышления” Жукова воткнули абзац про то, как, будучи уже маршалом, он приехал в штаб Северо-Кавказского фронта с группой генералов из Ставки и хотел встретиться с начальником политотдела 18-й армии полковником Брежневым.

В общем, надо бы перечитать первую редакцию повести, вплоть до концовки, где Тарас последними словами призывает козаков следующим летом погулять опять и ни единым словом не упоминает ни православную русскую веру, ни царя Русской земли.

О Пушкине

Искал в интернете одно, а нашел прекрасный текст, который даже комментировать не надо:

Одно из самых тошнотворных стихотворений русской классики – пушкинский отрывок «Он между нами жил». Тошнотворный каким-то тартюфовским, елейно-лицемерным духом. История его такова. В 1833 году Пушкин получил собрание сочинений Мицкевича, а в нем стихотворение «Друзьям-москалям», звучащее так (в переводе Р.Якобсона):

Вы - помните ль меня? Когда о братьях кровных,
Тех, чей удел - погост, изгнанье и темница,
Скорблю - тогда в моих видениях укромных,
В родимой череде встают и ваши лица.
Где вы? Рылеев, ты? Тебя по приговоре
За шею не обнять, как до кромешных сроков, -
Она взята позорною пенькою. Горе
Народам, убивающим своих пророков!
Бестужев! Руку мне ты протянул когда-то.
Царь к тачке приковал кисть, что была открыта
Для шпаги и пера. И к ней, к ладони брата,
Пленённая рука поляка вплоть прибита.
А кто поруган злей? Кого из вас горчайший
Из жребиев постиг, карая неуклонно
И срамом орденов, и лаской высочайшей,
И сластью у крыльца царёва бить поклоны?
А может, кто триумф жестокости монаршей
В холопском рвении восславить ныне тщится?
Иль топчет польский край, умывшись кровью нашей,
И, будто похвалой, проклятьями кичится?
Из дальней стороны в полночный мир суровый
Пусть вольный голос мой предвестьем воскресенья -
Домчится и звучит. Да рухнут льда покровы!
Так трубы журавлей вещают пир весенний.
Мой голос вам знаком! Как все, дохнуть не смея,
Когда-то ползал я под царскою дубиной,
Обманывал его я наподобье змея -
Но вам распахнут был душою голубиной.
Когда же горечь слёз прожгла мою отчизну
И в речь мою влилась - что может быть нелепей
Молчанья моего? Я кубок весь разбрызну:
Пусть разъедает желчь - не вас, но ваши цепи.
А если кто-нибудь из вас ответит бранью -
Что ж, вспомню лишний раз холуйства образ жуткий:
Несчастный пёс цепной клыками руку ранит,
Решившую извлечь его из подлой будки.

Вторую часть стихотворения автор «Бородинской годовщины» и «Клеветников России», камер-юнкер и придворный историограф Пушкин резонно принял на свой счет. В октябре 1833 года в Болдине он выписывает стихотворение Мицкевича в свою тетрадь. Цявловский думает, что первые наброски стихотворения «Он между нами жил» (в тетради помечено 10 августа 1834 г.) возникли тогда же, но непосредственным толчком для его написания послужила заметка во «Франкфуртском журнале» за 11 апреля 1834 г. о речи, произнесенной на банкете в Брюсселе известным деятелем польского восстания и историком Лелевелем. В ней Лелевель говорил о Пушкине как о свободолюбивом поэте, сосланном за выступления против самодержавия «в самые отдаленные края государства» - в общем было ясно, что поляки продолжают считать Пушкина своим союзником и единомышленником. Пушкин был шокирован. Он писал приславшему журнал графу Строганову: «Мне приходится очень печально расплачиваться за химеры своей юности. Объятия Лелевеля кажутся мне тяжелее ссылки в Сибирь. Впрочем, очень благодарен вам за то, что вам угодно было сообщить мне эту статью: она послужит материалом для отповеди».
Отповеди он не написал, зато набросал вот такие строфы:

Он между нами жил
Средь племени ему чужого; злобы
В душе своей к нам не питал, и мы
Его любили. Мирный, благосклонный,
Он посещал беседы наши. С ним
Делились мы и чистыми мечтами
И песнями (он вдохновен был свыше
И свысока взирал на жизнь). Нередко
Он говорил о временах грядущих,
Когда народы, распри позабыв,
В великую семью соединятся.
Мы жадно слушали поэта. Он
Ушел на запад — и благословеньем
Его мы проводили. Но теперь
Наш мирный гость нам стал врагом — и ядом
Стихи свои, в угоду черни буйной,
Он напояет. Издали до нас
Доходит голос злобного поэта,
Знакомый голос!.. боже! освяти
В нем сердце правдою твоей и миром,
И возврати ему…

Нельзя не согласиться, что эти упреки звучат особенно убедительно в устах автора строки: «Уж Польша вас не поведет – через ее шагнете кости!» И откуда в Мицкевиче взялось столько злобы? – удивляется добрый Пушкин, откладывая на минуту лиру, с которой он, очевидно, сам витал в надмирных эмпиреях. В самом деле, а нас-то за что? Но, очевидно, у Пушкина есть своя своеобразная логика. За что вы нас так ненавидите – ведь мы-то не испытываем к вам никакой ненависти? Это правда что мы вас душим, казним и ссылаем партиями. Ну так не по злобе же, а из чисто политических соображений. Потому что если не мы – вас, то вы – нас. А так-то мы никакой ненависти не питаем, в отличие от вас. С ума вы там все посходили, что ли? Именно эта позиция придавала Пушкину, в его глазах, моральную высоту, с которой он обличал «злобного» Мицкевича.

Скандал в Wordpress семействе

Интересный скандал, кажется, разгорается вокруг Wordpress. На прошедшей на этой неделе в Портленде регулярной конференции WordCamp US основатель Wordpress Мэтт Мюлленвег рассказал, что он думает про экосистему open-source проектов и, в частности, что открытость такой экосистемы привлекает ряд бизнесов, которые предпочитают паразитировать на бесплатном проекте, не участвуя в его создании.

Основным примером такого бизнеса стала компания WPEngine, которую Мэтт обвинил в итоге в использовании не только самого продукта, но и торговых марок и стилистике, принадлежащих Automattic. По утверждению Мэтта, WPEngine, построив свой бизнес на Wordpress (компания продаёт хостинг для Wordpress), меньше контрибутит в проект, чем даже Google, создавая при этом впечатление, что они-то и есть Wordpress. Скандальность ситуации придало и то обстоятельство, что WPEngine являлся одним из спонсоров WordCamp US, но Мэтт сразу пообещал, что это последний случай такого спонсорства.

Собственно, список претензий к WPEngine не ограничивается низким уровнем отдачи компании в проект — в отдельном посте в блоге Wordpress Мэтт приводит пример того, что Wordpress, предлагаемый WPEngine, выглядит не совсем Wordpress, например, там отключено версионирование записей и включить его можно только через саппорт. Мэтт это считает серьезной проблемой — честно говоря, да, это выглядит как если бы Github хранил историю только на пару коммитов, а для большего предлагал бы писать в поддержку.

Основной проблемой с WPEngine Мэтт счел их инвесторов — компанию Silverlake, — он считает, что WPEngine полностью принадлежит Silverlake, но, скорее всего, у них просто большой, возможно, контрольный пакет акций. Но воспрепятствовать использовать Wordpress в бизнесе WPEngine, конечно, он не может — это открытый продукт и использовать, модифицировать и ничего не контрибутить может любой желающий. Возможно, определенную перспективу имеет юридическая претензия по поводу использования торговых марок.

WPEngine ответили предельно нейтральным текстом в блоге про то, как они больше 10 лет поддерживают, спонсируют и вдохновляют комьюнити и вообще способствуют развитию Wordpress.

Комьюнити при этом скорее поддерживает Мэтта. Я это вполне понимаю — выглядит действительно не очень справедливо, особенно на фоне большого количества компаний, делающих бизнес на Wordpress, но и делающих свои наработки доступным для комьюнити.

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

Фишинг на уровне аэропорта

Вот про доменных сквоттеров и фишинг мы как-то в курсе, а с аэропортами как поступать?

В мае этого года аэропорт калифорнийского Окленда — города, расположенного через залив от Сан-Франциско, — сменил официальное название с Metropolitan Oakland International Airport на San Francisco Bay Oakland International Airport. Как утверждало соответствующее транспортное ведомство города, переименование имело своей целью дать понять пассажирам, что город фактически находится буквально напротив Сан-Франциско и вообще является частью Bay Area, кроме того, пассажиры, особенно китайские, регулярно путали город с Оклендом в Новой Зеландии (в английском названия хоть немного отличаются, а вот в китайском, как, впрочем, и в кириллических языках, пишутся совершенно идентично).

Аэропорт Окленда, Калифорния

Но теперь путаница приобрела другой характер — с мая месяца есть уже много жалоб от пассажиров, которые, глядя на название аэропорта, особенно на начало, уверены, что должны прилететь непосредственно в Сан-Франциско. А собственно аэропорт Сан-Франциско (SFO) подал в суд по торговым маркам, поскольку San Francisco International Airport является торговой маркой и город не намерен давать соседям пользоваться результатом своих усилий по её развитию.

Чего возмущаются пассажиры, правда, не очень понятно — аэропорт самого Сан-Франциско тоже, мягко говоря, не в городе находится, и разница в дороге составляет ну минут 10, если ехать в сам город. Другое дело, что, прилетая в Долину, вам удобнее приземлиться прямо в ней. Да, и даже если ехать в Сан-Франциско, лучше не плестись по Bay Bridge.

Интересно, как защитится Окленд — они уверяют, что имеют полное право использовать географическое название San Francisco Bay, на берегу которого находится город, тем более, что на берегах залива расположено 9 графств. Хорошо хоть, что аэропортов заметно меньше.

Догоним и перегоним

Интересный опус.

Description

При прочтении возникла довольно очевидная мысль — либо человек тотально некомпетентен (и, значит, невозможно ко всей остальной его “аналитике” относиться серьезно), либо он полностью отдаёт себе отчёт в том сравнении, которое сам и приводит.

Потому что “отказники”, как должно быть известно любому мыслящему человеку, это не просто название для людей, которые от чего-то отказываются. Это конкретное название, которое впервые использовали в отношении вполне конкретной группы людей.

Отказниками называли советских граждан, которЫМ отказывали в выдаче выездной визы для эмиграции из СССР. Нетрудно провести первую аналогию — когда представитель якобы патриотической общественности употребляет это название в адрес граждан Украины, он тем самым положительно оценивает эмиграционную политику СССР, таким нехитрым образом препятствовавшего реализации прав человека.

Но есть же и другие аналогии. В 1972 году, формально разрешив эмиграцию, в СССР издали указ, согласно которому эмигрант, имеющий высшее образование, должен был перед отъездом компенсировать государству стоимость своего обучения, вплоть до аспирантуры с получением ученой степени. Так, например, выпускник МГУ должен был выплатить 12200 рублей.

Description

Поскольку “эксперт” к моменту крушения совка даже пионером стать не успел, то сообщаю — это чуть больше двух новых автомобилей “Жигули”, если не считать взяток директору автосалона.

Это решение Президиума Верховного Совета СССР стоило совку практически первых в современной истории санкций США — а именно, поправки Джексона-Вэника, которая запрещала предоставлять странам, осложняющим эмиграцию своим гражданам, режим наибольшего благоприятствования в торговле.

А как действовала эта поправка, мы все помним — потому что её, введя мораторий в 1991-м году после отмены вышеупомянутого Указа, отменяли полностью для каждого отдельного постсоветского государства на протяжении двух десятилетий. В отношении Украины её отменили в 2005-м году.

Очевидно, кому-то без этой поправки скучно и грустно. Причем до возникновения галлюцинаций, что страна, где общественность позволяет себе так относиться к правам своих же граждан, с какого-то перепугу станет инвестиционной Меккой.

На каковые фантазии можно только ответить крылатой фразой обокраденного Шпака — “Закусывать надо!”.

Работа мечты

Мне нравится упорство LinkedIn. Он всерьез хочет меня трудоустроить.

И, поскольку я не реагирую на странные вакансии типа Head of CEO Office или Chief of the Party в каком-нибудь USAID, он находит мне работу мечты.

Description

Как переборщить с нетоксичностью

Среди телеграм-каналов попался пост бывшего коллеги по Яндексу:

Description

Сразу вспомнил безумно раздражавшую меня привычку нашей другой коллеги — Елены Колмановской, — которая довольно регулярно в ходе вполне рабочего обсуждения деталей, например, запуска фичи или сервиса, вдруг задавала вопрос:
— Я не поняла, а мы что, приняли решение это запускать?

Если вам кажется, что замена «вы» на «мы» делает эту фразу менее токсичной и показывает желание говорящего разделить участие в решении и ответственности за него — вам это кажется.

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

Но вопрос очень часто задавался не про содержание решения, а про его факт. Кстати, именно так выглядит и вопрос в исходном примере у Кости — «Почему мы добавили задачу в бэклог?». И в таком виде, да в сочетании с определенной интонацией, это звучит намного более токсично прямого вопроса «Почему вы?».

«Почему, стоило мне отвлечься, вы принимаете решения?»
«Почему вы считаете решение принятым, хотя я его не одобрила?»
«Что вы тут за чушь обсуждаете, вы что, подставить меня решили?»

Я не могу придумать трактовку высказывания в стиле «Почему мы?», которая бы не подразумевала отрицательной коннотации, при которой задающий вопрос позиционирует себя как более мудрого, которого подвели неразумные коллеги. Или еще хуже — как ответственного за компанию/бренд/продукт, которым неразумно принятое решение сотрудников с пониженным чувством ответственности нанесло или могло нанести непоправимый ущерб.

Вопрос же «Почему вы?» никакой отрицательной коннотации не содержит — людей, принявших определенное решение, спрашивают о причинах его принятия. Если задающий вопрос имеет право это делать, а не просто потроллить из соседней команды пришел, то ничего токсичного в вопросе нет — люди приняли решение и несут за него ответственность. А ответственность — это в том числе необходимость отвечать на вопросы.

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

Но во втором случае вопрос звучит плохо вне зависимости от окружения — будь-то драконы с крокодилами или единороги с розовыми пони.

Практическое применение Raspberry Pi

Первый свой экземпляр Raspberry Pi я купил, кажется, лет 12 назад, но с тех пор он так и лежит практически без дела — как-то раз водрузил на него Plex, но при наличии нескольких Apple TV он конкуренции не выдержал, а, когда совсем недавно я все же нашел место Plex Server в своей сети, его оказалось гораздо удобнее запустить на Synology NAS, где весь контент как раз и находится. Разве что иногда запустить его, посмотреть на Linux и выключить :).

Я, конечно, в курсе многочисленных проектов с его использованием, но у меня таких задач не возникало.

А вот как раз возникло. Уже полтора года я пользуюсь системой с инвертором и набором батарей для обеспечения энергонезависимости — или, попросту говоря, чтобы при регулярных отключениях электричества замечать это как можно меньше. Инвертор вполне справляется с этой задачей, батареи прекрасно работают, но всё это время мне мешало отсутствие нормального решения для мониторинга системы — вроде бы всё в нем умное, но недостаточно, модель инвертора не имеет поддержки wi-fi, удаленно посмотреть невозможно, получилось только подключить к инвертору ноутбук, водрузить на него кросс-платформенное, то есть страшное и глючное, поделие под названием WatchPower. Соответственно, чтобы посмотреть состояние инвертора, приходилось ходить удаленно на ноутбук (или приходить к нему ногами), но это полбеды.

Description

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

Во-вторых, она вместе с самим инвертором понятия не имеет о емкости батарей и полагается исключительно на измерения напряжения. С реальным остатком заряда отображаемое значение Battery capacity связано очень условно — увеличение нагрузки приводит к падению напряжения (это естественный физический процесс), что немедленно изменяет capacity в меньшую сторону процентов на 5-7. Снятие нагрузки — например, водяной насос включился, поработал 30 секунд и выключился, — приводит к обратному результату. И бог бы с ним, но сам расчет capacity ведется по примитивной линейной шкале — если в конце цикла заряда напряжение составляло 54В при 100%, а напряжение отключения батарей установлено на 46В (это примерно 20-30% заряда, ниже разряжать мои батареи не рекомендуется), то 50В — это 45-50%, какие инвертор и покажет через минут 5 после начала разряда.

В общем, пока я с этим разобрался, я уже был готов покупать новые батареи, но потом все эти данные прогнал через AI, посчитал число циклов батарей, подобрал оптимальные параметры для настройки инвертора и почти успокоился — и пошел искать альтернативы WatchPower. Ну не может же быть, чтобы в современном мире, свихнувшемся на альтернативной энергии, было только одно вот такое массовое решение.

В общем, нашел. Оно называется SolarAssistant, оно, правда, платное, но на фоне всей системы эта цена не очень заметна. И это очень необычное решение — оно выглядит как дистрибутив Linux для Raspberry Pi. Вы покупаете (или используете имеющийся) Raspberry Pi, вставляете в него карту с дистрибутивом, который скачивается на сайте, и подключаете RPi к инвертору. Если есть рядом Ethernet — можно воткнуть сетевой кабель, если нет, но есть wi-fi, то при старте Raspberry Pi создаст свою сеть, к ней надо подключиться и указать параметры подключения к существующему wi-fi. Один раз при запуске системе нужен доступ в интернет — он идет за активацией на сервер, — потом можно без него, но при его наличии вы можете зарегистрировать систему в облаке и в дальнейшем ходить к интерфейсу через облачный прокси откуда угодно.

Description
Главный экран SolarAssistant

Это чистый веб-интерфейс, но шустрый и удобный, при этом его можно поставить в виде web-приложения в iOS, например.

И он делает главное, что я и искал — помимо доступа ко всем настройкам инвертора, он умеет эмулировать BMS (Battery Management System) — не полагаясь на апроксимацию по напряжению, а просто, зная емкость батареи, подсчитывает её потребление, ведь данные по потребляемой из батареи мощности ему постоянно доступны.

Результаты на скриншоте выше — вместо малопредсказуемой capacity показывается логичное и понятное значение State of Charge, на данный момент более часа система питает весь дом и израсходовано 12% емкости.

Теоретически SolarAssistant можно запустить на любой модели Raspberry Pi, но рекомендуется использовать модель не ниже Raspberry Pi 4. Впрочем, на первом у меня тоже заработало, проблема, однако, в том, что рядом с инвертором у меня нет ничего, кроме wi-fi, а как раз его в первой модели и нет.

Так что да, подтверждаю — Raspberry Pi девайс полезный, даже, если для его практического применения надо взять 12-летнюю паузу.