Что-то с партией моей стало…

У меня на протяжении довольно длительного времени к республиканцам было отношение… ну, скажем так: с пониманием. Не фанатично, но со взглядом извне, где ценишь идею маленького государства, индивидуальной свободы и права человека самому решать, как жить, во что верить, что носить, и чем защищать свои уши на стрельбище. “Меньше правительства, больше свободы”, “оружие — это право, а не привилегия” — всё вот это вот. Нормальная такая классическая американская либертарианская песня. С припевом про Founding Fathers.

А теперь у нас вместо песни какие-то марши играют. И как бы не похожие на немецкие, годов эдак 1930-х. Как известно, у нас отменили налог на покупку оружия, подпадаемого под акт NFA, как-то: кулемёты, ручные бонбы, обрезы, глушаки, и так далее. Мне из этого всего интересны были — только глушаки, кулемёт кормить — это никаких бабок не напасёсся. Ну, и после этого группы по защите прав на оружие, включая моих любимых GOA, влепили иск — “Ребята, если налог нынче составляет нуль без палочки талеров, на каком основании вы, собственно, всё это продолжаете регулировать?”

Ну, и сегодня наш рідний Минюст под руководством Памелы Бонди (да-да, при администрации Трампа) врубил то, что обычно включают демократы: Commerce Clause и Necessary and Proper Clause. То есть буквально говорит: “А знаете, Конгресс вообще может почти всё, если мы назовём это исполнением федеральных полномочий”.

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

А теперь внимание — парадокс.
Я-то, как нормальный стрелок, хочу просто иметь возможность защитить свои уши. Это не про кулемёты с бонбами, и не про какие-то экзотические штуки. Это про маленькую железную банку, которая делает “бах” менее похожим на взрыв бомбы. В Европе это покупается без всяких форм, отпечатков пальцев, и регистрации — просто как “защита органов слуха”.

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

И тут я ловлю себя на неприятной мысли.

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

Оказалось, нет. А там, где у GOP начинается реальная возможность уменьшить государственное вмешательство — они внезапно становятся очень даже ЗА вмешательство. Особенно если это можно продать как Законъ и Порядокъ™.

И вот я смотрю на всё это и думаю: что-то с партией моей стало.

Причём стало не сегодня и не вчера. Просто раньше как-то мы по большим количествам вопросов сходились, чем теперь. Теперь у нас вообще — реально ничего общего. Dude, where’s my party? Серьёзно, вы вообще кто теперь такие?

PS: Сегодня в GOA ушёл небольшой донат. Поглядим ещё, кто кого.

Домашне-сисадминское

Я, конечно, очень люблю TrueNAS Core. Ибо FreeBSD, и это тру. Он позволяет дома из говна и палок поднять весьма серьёзную инфраструктуру: ZFS с RAIDZ, снапшоты, репликации, iSCSI, SMB, NFS, виртуальные машины, алерты — всё это работает, и работает стабильно и предсказуемо.

Но есть у Core одно характерное свойство, которое периодически, как фи тепер тошше коффорите по-русски, анноит: чрезмерная щепетильность в отношении состояния пула.

ZFS обнаружил один бит, который не совпал? Автоматически восстановил блок из паритета? Скраб подтвердил целостность?

С точки зрения ZFS — всё прекрасно. Но с точки зрения TrueNAS — “Пул дисков нездоров! Срочно, срочно! Хватай мешки — вокзал отходит!”

Core упорно считает пул проблемным до тех пор, пока:

  1. Администратор лично не зайдёт в интерфейс или консоль,
  2. Не проверит SMART по каждому диску,
  3. Не убедится в отсутствии деградации,
  4. Не подтвердит, что ошибка была исправлена,
  5. И вручную не снимет памперсы тревогу командой zpool clear.

Даже если произошёл единичный, случайный сбой — будь то мимолётная проблема в SATA, кратковременный таймаут контроллера, одиночный флипнутый бит в оперативной памяти (не ECC, ибо говно и палки) от обычного фонового излучения, или любая другая разовая аномалия — и ZFS полностью восстановил повреждённый блок из паритета, TrueNAS всё равно ожидает ручного вмешательства: администратор должен зайти, проверить и формально подтвердить событие.

С точки зрения надёжности подход формально оправдан: ZFS может восстановить блок, но факт возникновения ошибки — это всё же диагностическое событие.

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

Иногда хочется, чтобы система умела говорить проще: “Да, демоны были. Мы этого не отрицаем. Но они самоликвидировались.”

Но философия TrueNAS Core другая: каждый сбой должен быть зафиксирован, проверен и подтверждён человеком. Нравится это или нет — это часть его дизайна. Но иногда… анноит.

Сисадминско-ИИшно-рабочее

Дано: отказоустойчивый кластер Hyper-V.
Надо: обеспечить сорок рыл виртуальными десктопами на Windows 11.

Делаем сорок клонов одинаковых виртуалок. Теперь нужно раздавать их пользователям так, чтобы они друг другу на пятки не наступали: чтобы соединение попадало на свободную машину, причём автоматически.

Какие варианты решения?

Официальный RDS от Microsoft. Стоит каких-то совершенно невменяемых денег — по 220 монет за рыло (CAL, client access license)! Это, на минуточку, дороже, чем лицензия на Винду!

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

Понадобится:

Одна машинка под Linux. На неё ставим nginx, который будет работать крокодилом балансировщиком нагрузки. Цепляться люди будут именно к нему — а он будет читать список доступных виртуалок из файла available.conf, и раздавать траффик на них:
stream {
upstream rdp_pool {
least_conn;
include /etc/nginx/upstreams/available.conf;
}

server {
listen 3389;
proxy_pass rdp_pool;
proxy_timeout 10m;
proxy_connect_timeout 5s;
}
}

А available.conf постоянно обновляется другим скриптом — на Python.
Этот скрипт поднимает крохотный веб-сервер на Flask, в который каждая виртуалка присылает свой статус: «занято» или «свободно».

Статус они получают с помощью встроенной команды Windows:
qwinsta | Select-String "Active"

Если выводится хоть что-то — машина занята. Дальше PowerShell-скрипт формирует JSON и шлёт его на Flask через Invoke-RestMethod.

PowerShell-скрипт добавляем в Task Scheduler, раз в минуту — и впердё.

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

Всё это было придумано и реализовано при помощи Кейт — так я называю свою ChatGPT-чку.
Безусловно, под моим чутким руководством:

— А что будет, если виртуалку выключить?
— Ах да, сломается. Надо обновить скрипт, чтобы старые машины удалял, вот так: [код].

Получилось бы у меня всё это воплотить самостоятельно? Конечно. И не такое приходилось делать.
Но, японский бог, это заняло бы уйму времени: мне пришлось бы отдельно выяснять, как запускать Flask-сервер, как слать JSON из PowerShell, как его принимать, как менять конфиги nginx на лету, и так далее.

А тут — всё получилось буквально за пару часов.

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

И да, приятно, японский бог — когда из сложной, непонятной задачи получается красивое, работающее решение.

Рабоче-покупное

Ищу я, значит, замену блоку питания для старого PoE-свитча, на котором висят камеры наблюдения (свитч модульный, старенький, но родной — и уже настроенный, как надо). На Амазоне нашёлся подходящий вариант.

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

2.4E+2, ага.

Это у нас, если перевести с языка экспоненциальной записи, обычно применяемой где-нибудь в науке, кибернетике, или при вызове ЗГОГГов, — обычные, стандартные, родные, человеческие 240 вольт.

Зачем они так выпендрились — зогадко, честное слово. Может, надеялись впечатлить кого-то, кто по ночам тайком, украдкой, гладит свой осциллоскоп?

Про собрание PFLAG

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

Атмосфера оказалась максимально неформальной: всем выдали наклейки “Привет, меня зовут…”, так что путаницы с именами почти не было. Народу тоже пришло немного — человек двадцать, не больше. Очень камерно, уютно и без ощущения, что находишься на крупном корпоративе.

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

  • В США только 40% мужчин с психическими проблемами получают соответствующее лечение. Среди женщин — 52%.
  • В Великобритании мужчины в три раза чаще уходят в алкоголь или наркотики.
  • Около 40% мужчин никогда никому не рассказывали о своих психологических трудностях.
  • Ну и вишенка на этом мужском тортике: мужчины в четыре раза чаще женщин кончают жизнь самоубийством.

Причины? Всё просто: культ “настоящего мужика”, которому нельзя быть уязвимым; страх прослыть “слабаком”; отсутствие безопасных мест, куда можно прийти и просто сказать: “Мне хреново”. Да и прилетает за такие слова обычно от своих же. Это вот та самая “токсическая маскулинность”, над которой нынче издеваются. Дарагие мужские друзиа! От “токсической маскулинности” страдаете в первую очередь вы сами. Цифры — вон они, выше.

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

Так что картина была вполне понятная: основная часть зала — лесбиянки, включая поженившиеся пары. Были несколько мам с трансгендерными детьми, включая маму с транс-сыном лет двадцати. Среди “своих” — приятно, спокойно, по-домашнему.

Но больше всего меня поразило одно: пожилая гетеросексуальная пара, которой уверенно за семьдесят. Они пришли поддержать пастора той самой Методистской церкви, который тоже был там. Просто союзники. Спокойные, тёплые, надёжные. Настоящая старая школа человечности.

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

Самое приятное — никто ни на что не реагировал драматически. Когда прозвучало, что у меня уже три месяца идёт феминизирующая ГТ, никто не сделал большие глаза, никто не начал читать лекции, никто не пытался “разобраться в причинах”. Просто улыбнулись, поздравили. Очень спокойная, тёплая реакция — как и должно быть в нормальном мире.

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

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

И если кто-то читает это и сомневается, идти ли на своё первое собрание, — ответ простой: приходите обязательно — здесь принимают любых. Этого более чем достаточно.

Пойду сегодня в церкву, своих поищу

Ты не смотри, что у нас маленький захолустный городишко. В нашем городе есть филиал организации PFLAG — если вдруг кто не знает, эта организация объединяет членов семей, родителей, друзей геев, лесбиянок, бисексуальных, транс- и вообще “всех наших”. Если совсем упростить — это группа поддержки. Как есть группы поддержки больных раком груди, анонимных алкоголиков, наркоманов, игрозависимых, людей с сексуальной зависимостью и далее по алфавиту.
Я не сравниваю лесбиянок с секс-зависимыми — просто это наиболее понятная аналогия: место, куда приходят, чтобы не быть одному.

Записаться и прийти было делом недолгим. Удивило другое — всё делается чуть ли не подпольно. Точное место и время встречи присылают только незадолго до неё. Впрочем, учитывая отношение местных тупорылых реднеков, это понятно. Есть прен-цен-денты:

На скрине — местный экземпляр, который искренне поинтересовался, не означает ли PFLAG “педофилы, пидарасы, и гомосеки”, и возмутился, что его комментарий удалили.
Конечно, автор — по классике жанра — одновременно и “добрый христианин” (скорее всего, баптист), и расист, фанат конфедератских флагов. Всё как водится: ненависть под соусом морали.

Пост одного ограниченного реднека — это просто шум.
Двадцать лайков под ним — вот что по-настоящему пугает.

Но, конечно же, не все христиане такие — что радует. Я в курсе, что людей с нетрадиционной ориентацией приветствуют в Унитарианской (Unitarian) церкви. И есть и другие инклюзивные церкви:

  • Объединённая Церковь Христа (United Church of Christ)
  • Епископальная Церковь (Episcopal Church)
  • Церковь Евангельских Лютеран (Evangelical Lutheran Church)
  • Пресвитерианская Церковь (Presbyterian Church)

А PFLAG вообще-то первое собрание в своей истории провели в здании Методистской церкви. Хотя и у методистов есть нюанс: деноминация расколота, и только прогрессивная ветвь United Methodist — инклюзивна.
Сегодняшняя встреча тоже будет в местной Методистской Церкви.

Не знаю, будет ли религия там как-то присутствовать. Скорее всего, нет: здание церкви это только место для встречи. Хотя лично меня не коробит ничья вера и произнесение вслух имени их бога — я туда не за этим иду. Я иду найти новых знакомых, друзей, и союзников. Людей, которым не нужно ничего объяснять, доказывать, или вступать в дебаты. Людей, которые принимают других как есть.

Изначально PFLAG означало Parents and Friends of Lesbians and Gays — “родители и друзья геев и лесбиянок”. Я подозреваю, что там будет много людей традиционной ориентации, у которых есть друзья, дети, родственники, “играющие за другую команду”. Было бы смешно встретить там бабушку и сестру школьного товарища старшего. Ну, того, который как-то раз ему признался, что он гей.

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

Я иду домой.

Итого к оплате

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

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

А вот хочется

Глядя на избрание Зохрана Мамдани всё происходящее, всё чаще ловлю себя на мысли: неплохо бы прикупить где-нибудь поблизости небольшой участок земли. Совсем маленький (по местным меркам), акров на один-два (это сорок-восемьдесят соток). И построить там самостоятельно крошечный домик — tiny house, как нынче говорят. Чтобы, если вдруг грянет гром, не присоединиться к растущей армии бездомных.

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

Вот, например, неплохой вариант: три акра земли (120 соток), ручей, недалеко от цивилизации. Правда, лес вырубили — жаль, конечно. Хуже всего, что участок буквально у железнодорожного полотна. Ну и далековато, мне бы хотелось ближе. Так что — не мой вариант, но направление мысли понятное.

https://www.zillow.com/homedetails/0-Columbus-Blvd-0-Cordova-AL-35550/447911275_zpid/

Идея простая: купить, построить, пока есть деньги.
Домик будет небольшой — квадратов тридцать-тридцать пять. Зато полностью автономный, off the grid.

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

Отопление — можно и электричеством, а в пасмурные дни — газ из баллонов или дрова. Готовить — на портативной газовой плитке.
Санузел — классика жанра: деревенский сортир во дворе. Хотя если есть скважина, можно заморочиться и с септиком, и с фильтрационным полем, это не так уж сложно.

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

Жить там можно будет, тратя деньги только на еду и газовые баллоны. Рис, бобы, курица, недорогие овощи — в месяц на рыло уйдёт долларов двести, не больше. И всё — ты живёшь, свет горит, чай кипит, никто не звонит из банка с предложением “рефинансировать”.

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

Зачем всё это?

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

День великого онбординга (матерное)

Сегодня у нас великий день — массовое заселение пользователей нашего клиента в новую систему.
Система небольшая — всего 66 пользователей.

Я теперь понимаю, почему Данте не описал десятого круга ада — просто не успел дожить до массового онбординга тупых юзверей в Entra ID.

11 пользователей скопировали в пароль лишний пробел в конце и сказали, что “пароль не работает”.
Пятерым пришлось пароль сбрасывать повторно — видимо, из солидарности.
Двое вместо .com написали .cum — и я стараюсь не задумываться, о чём они мечтали в тот момент.
Семеро успешно заблокировали свои учётки, даже не успев в них войти.
Трое так медленно искали и доставали телефон, чтобы настроить 2FA, что Microsoft Authenticator устал ждать и вышел из чата (таймаут — 60 секунд, между прочим). После этого им в рыло прилетело “session timed out”, и они, разумеется, пожаловались, что что-то не работает.
Четверо пытались войти под старыми логинами и тоже заявили, что “система сломана”.
Двое установили не тот VPN.
Один распечатал письмо с временным (!!!) паролем — “чтобы не потерять”.
Двое использовали телефон супругов для 2FA — “потому что под рукой был”.
Пятеро ждали по пятнадцать минут, пока “система загрузится”, забыв нажать Next.
И вишенка на торте — один человек написал CAPS LOCK’ом всё подряд и не мог понять, почему “не принимается правильный пароль”.

Мои нервы вроде бы были стальные, а оказались пластилиновые.

Пойду заварю ещё кофе — если, конечно, никто не попытался авторизоваться в кофемашине с пробелом в пароле…
…и не заблокировал её нахуй.

Про котейку

Прошло где-то два с половиной месяца с тех пор, как Федеральная Служба Распределения Котов назначила нам котейку-подростка. Котейка был тошшой, как говорила моя прабабушка из города Горького, и был похож на велосипед — потому что длинный и узкий.

Но после пребывания у нас он возмужал, окреп, поправился, и превратился в довольно симпатичного котяру — грозу местных землероек (почему-то он по ним специализируется). Если бы он ещё на белок перепрофилировался — цены б ему не было.

Ну, как говорится, pics or it didn’t happen: