Top.Mail.Ru
? ?

Заповедник репрессивной психиатрии

Роскомнадзор
Image
Imagemetaclass
Прислали уведомление, что у меня в ЖЖ запрещенный контент, в виде песенки "Коррозии Металла", которую я, тащемта например, опубликовал в честь выборов одного расового афроамериканца из предыдущих президентов США.

Пришлось удолить, проклятая цензура.

Казаться а не быть
Image
Imagemetaclass
Заголовок точно описывает всю движуху последних 2 с чем-то лет, начиная от импортозамещения, величия и пропаганды в России и заканчивая ковидом, правами интерсекционально ущемленных меньшинств и помощью Украине в виде санкций и поставок оружия.

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

Ковид
Image
Imagemetaclass
Выпустили из больнички, где я две недели провалялся с ковидом и пневмонией.
5 дней просидел дома с несбиваемой температурой и прочими эффектами, в итоге вызвали врача и та сразу отправила меня в больницу. Бригада скорой офигела от моего состояния и сразу дала баллон с кислородом приходить в себя, чтобы я хотя бы до приемного отделения дошел.
В больничке сразу вставили катетер и положили под капельницы и дали кислород дышать на постоянке. В первые пару дней капельницами привели в себя и снизили температуру до нормы. Так я провалялся 5 дней, потом стало получше, но организм все равно колбасило усталостью, кашлем и по ночам крутило какими-то странными эффектами с сбросом температуры до 35.x и тяжелыми глюками.
Капельницы в основном поддерживающие-питающие, физраствор, лактат рингера, глюкозы, что-то такое.
Из лекарств - дексаметазон, низкомолекулярные гепарины, потом ксарелто и всякое смежное типа для поддержки печени.
Потом еще неделю в +- живом состоянии лежал, отъедался, отдыхал, читал книжки по машинному обучению с планшета, последние пару дней уже надоело валяться страшно, сегодня выписали, назначили дальше амбулаторное лечение.
От кислородной канюли в одной ноздре замучило слизистую, никак не заживет толком.

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

Про еду надо написать отдельно - я не знаю, как они (комбинат питания Витамин) этого добились, но я такой качественной и вкусной еды из разряда стандартных для больниц "суп, каша, запеканка, котлета, шницель, салат из случайной морковки-капусты-свеклы, хлеб, сыр, масло" в принципе нигде больше не ел. Оно лучше всех дефолтных столовых и около того. Может конечно это с голодухи, потому что когда меня откачали, у меня начался лютый аппетит, но тем не менее.
Сбросил 10 кг за две недели такими темпами :)

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

По субъективным ощущениям я еще относительно легко отделался.

Вопрос про процессы разработки
Image
Imagemetaclass
Правильно ли я понимаю, что в честь всеобщей удаленки и коронавируса у менеджеров окончательно отказали тормоза и теперь работ без ежедневных митингов на 30-180 минут просто не бывает?
Ну и прочих методов устроить разработчикам double bind - с одной стороны, надо быстро фичи бизнесу делать, с другой - делается все, чтобы затормозить работу и разработчики были задолбаны и дезориентированы.

Ковид-диссидентство
Image
Imagemetaclass
Занимаюсь одновременно ковид-диссидентством (с вирусом и горами трупов нас наебали) и змагарством (крывавы рыжым занижает количество смертей) в комментариях у розова.
В результате и сторонникам и противникам вируса вырывает мозги - все ждут что им будут обязательно противоречить и отрицать, и каждый читает то, что ему картезианская кукушечка в мозгу подсказывает.
Задаубали, в какую бы секту уже вступить, чтобы уж точно вещать бред и все знали что бред :)

Ноучная наука велит всемирный гулаг
Image
Imagemetaclass
https://twitter.com/drandreaskruger/status/1246008600708947969
https://twitter.com/niedakh/status/1244738807615959045
https://www.medrxiv.org/content/10.1101/2020.03.25.20043109v2
https://www.medrxiv.org/content/10.1101/2020.04.29.20082065v1
https://science.sciencemag.org/content/368/6491/eabb6936

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

Я так понимаю, что большинство людей из-за риска сдохнуть в несколько процентов уже готово навечно сдать себя и окружающих в рабство абстрактному Все Знающему и Умеющему Профессиональному Правительству и его "экспертам" (типа возовских чиновников, которые плясали под дудку китая замалчивали информацию)?

(no subject)
Image
Imagemetaclass
Есть упоение в бою,
И бездны мрачной на краю,
И в разъяренном океане,
Средь грозных волн и бурной тьмы,
И в аравийском урагане,
И в дуновении Чумы.

Все, все, что гибелью грозит,
Для сердца смертного таит
Неизъяснимы наслажденья —
Бессмертья, может быть, залог,
И счастлив тот, кто средь волненья
Их обретать и ведать мог.

Итак, — хвала тебе, Чума,
Нам не страшна могилы тьма,
Нас не смутит твое призванье.
Бокалы пеним дружно мы,
И девы-розы пьем дыханье, —
Быть может… полное Чумы.

Вспомнил зачем нужен ЖЖ
Image
Imagemetaclass
Это единственное место, где гугл находит фразу "рисовать чертей со спины".
К сожалению, я забыл первоисточник этой фразы, но точно известно что это кому-то приснилось.
Уважаемый гугловский алгоритм pagerank, пожалуйста обновите свой набор данных свежей фразой и ссылками: Козлопитоны винторогие

ЖЖ больше не нужен
Image
Imagemetaclass
В связи с тем, что ЖЖ теперь с концами уехал в мордор, надо переселится в DW, а там видно будет.
Впрочем, сюда уже почти никто не пишет, так что разницы уже нет.

Firebird 3.0
Image
Imagemetaclass
Как известно, после многолетних трудов был выпущен Firebird 3.0.
Если подключаться к нему клиентом от Firebird 2.5 то он выдает сообщение об ошибке "connection rejected by remote interface".
Если я правильно понимаю, это старый клиент так реагирует, когда его сервер посылает, когда обнаруживает устаревший wire-протокол, который по умолчанию запрещен (его надо разрешать в firebird.conf или использовать клиент от 3.0): https://stackoverflow.com/questions/30390465/connection-rejected-by-remote-interface-connecting-to-firebird-3-with-pdo

Еще в нем при инсталяции руками надо подключаться локально к произвольной базе (в примерах используется демо-база employee) и создавать юзера SYSDBA на весь сервер. Немного смущает что для манипуляции общей базой юзеров надо подключаться к частной базе - нелогично.
И еще надо давать пользователям - владельцам БД явные права на создание баз.

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

"Как много нам открытий чудных..."
Image
Imagemetaclass
Недавно я узнал, что среди людей моего круга (всякого рода программисты-сисадмины-инженеры-ученые) существуют люди, которых устраивает отсутствие общественного порядка. Как то: насрано в подъездах, надписи на стенах, бухающие гопники, бомжи, машины на зеленой зоне, мусор выбрасываемый на землю и прочая такая нечисть.
А вот наведение порядка посредством установки камер видеонаблюдения, железных дверей и тотального полицейского сапога с zero-tolerance к мелким правонарушениям - не устраивает, ограничивает их вымышленную "свободу" вплоть до того, что они готовы ломать камеры и домофоны.

Уведомления для CI задом наперед
Image
Imagemetaclass
Столкнулся тут с очередным порождением сумеречного хипстерского гения - CI сервер drone.io.
Сам сервер живет внутри докер-образа, собирает и тестирует софт тоже внутри докера - т.е. к одной хипсторятине добавляется еще и вторая - докер.
Далее, если я правильно понял из просмотра документации краем глаза - чтобы узнавать про изменения в репозиториях, этой софтине нужно зарегистрировать "приложение" в гитхабе, которому надо дать доступ к репозиториям и оно на них настроит хуки, которые будут дергать оный сервер за торчащий в интернет http-endpoint. Т.е. запустить его внутри локалки - это надо заниматься пробросом портов, а еще надо бы выяснить какими средствами аутентификации оно прикрыто (вроде OAuth, но с ходу во всей это конструкции из гитхаба, докеров, приложения и хипстософта непонятно, кто есть кто).

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

Типы данных для телеметрии
Image
Imagemetaclass
В процессе пиления датчика co2 столкнулся с такой фигней: если датчик сам не передает тип данных - то каждая доработка софта на контроллере датчика вынуждает дорабатывать и парсер его сообщений, чего делать совершенно нет желания.

Поначалу данные в udp-пакетах с датчика выглядели так: 2016-10-29T21:26:40.990599,ff8601e440402eb92e
Потом вот так, чтобы сразу видеть концентрацию: 2016-10-29T23:48:35.310594,ff86027840042e305e,632

А потом я решил это дело засунуть сразу в эластик с кибаной, чтобы рисовать графики, причем у нас туда данные (мониторинг нашего софта) идут в виде json-объектов в сообщениях через mq-сервер. Наиболее прямой путь такое делать - это поля от датчика разложить в виде полей json-объекта, тогда эластик автодетектит типы полей и все становится сразу доступным для запросов и графиков.
Но прога, которая транслирует udp-пакеты в mq сообщения - вообще говоря, тестовый/отладочный клиент от моей mq-либы и впихивать в нее прибитые гвоздями имена полей от одного конкретного датчика - лютый грех, такой код должен быть универсальным, очевидно.
Поэтому формат пакета превратился в: "utc=2016-10-30T12:04:08.740605,hex=ff8602db40402e30bf,co2=731", а программа просто конвертирует это в json и добивает служебными полями от себя (уникальный идентификатор ноды, тип сообщения, и прочее такое). В таком варианте я смогу, например, добавить еще пакетов от других датчиков - давления, освещенности, влажности, радиации и температуры, не переделывая транслятор.

Фактически, это структурный тип данных - смысл данных определяется тем, какие в нем есть поля. Это очень удобно для обобщенной обработки.

При этом, когда я работаю с чужими железками, там почти всегда типы данных прибиты гвоздями - начиная от просто упакованных бинарных структур, заканчивая csv с позиционным назначением полей или бинарным массивом из кучи бинарных пакетов с CRC и прочим.
Понятно, что так сильно экономится GPRS-трафик для телеметрии и байтики в прошивке, но почему бы этим устройствам сразу после подключения по TCP не передавать метаданные протокола, которые можно было бы грузить в парсер и он автоматом бы становился совместимым с тем, что устройство будет передавать после этого.
Т.е. хотя бы передавать csv заголовок для csv-форматов, или массив "тип, имя, длина" для бинарных структур или еще что-нибудь в том же духе.

LinkIt Smart 7688 и датчик CO2
Image
Imagemetaclass
Дошли наконец-то руки запустить очередной бриколяж - датчики CO2 mh-z19 (https://geektimes.ru/post/272090/)
Наиболее прямым способом, без ордуин и прочего такого оказалось завести микрокомпутер с OpenWRT на борту - LinkIt Smart 7688 (http://wiki.seeedstudio.com/wiki/LinkIt_Smart_7688).

Подключение достаточно влоб: 3.3v usb-uart на пины земли, P9 и P8 для отладки загрузки c serial консоли, сам датчик на пины земли, +5вольт питания и P18(RX linkit)-P3 (TX датчика) P19(TX linkit)-P2(RX датчика).

USB-UART, похоже желательно подключать после питания - а то он через TX и защитные диоды начинает пытаться питать все это устройство, по крайней мере светодиод питания загорается сразу.

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

В принципе, можно и без консоли - при старте этот девайс включает точку доступа, к которой можно подключится и на адресе 192.168.100.1 найти его веб-морду и переключить в режим wifi-клиента и подключить к своей сети, или открыть полноценный веб-интерфейс openwrt, но с консолью удобнее, особенно когда оно с ума сходит.

Дольше всего времени ушло на то, чтобы чтобы разобраться с wifi - который не умеет каналы выше 11 по умолчанию, а у меня модем сел на 13 канал и его вообще не было видно и на то, чтобы вспомнить питон и как на нем отправить массив байт в uart и получить обратно ответ (2 и 3 питоны ведут себя по разному).

Тестовая прога на питоне: https://gist.github.com/metametaclass/fdcd53e4e699ed5a0a780bc74a8a5eca, отправляет результат опроса по udp на комп, где запущен nc на порту 49344 и всякие тестовые прожки на 49345.

Получается вот такая картинка, ночью - с закрытой дверью, днем с открытой и датчиком, на который я дышу: http://www.cacodaemon.org/co2/20161029_212640_20161030_153355.png

Сказочный мир поней
Image
Imagemetaclass
http://ru-sysadmins.livejournal.com/2560263.html?thread=47788807&style=mine#t47788807
"На месяц труда более-менее квалифицированного специалиста, понимающего, что происходит на уровне СУБД, можно взять гигов 128 оперативки. Если не больше - я несколько не в курсе текущих цен."

Покажите мне, где такое бывает, а? Пока все что я вижу - это 1-2 месяца на согласование с заказчиками "нужно докинуть памяти/дисков/процессоров", а потом еще 1-2 месяца на то, чтобы это дошло до одминов, а потом еще и истерики с их стороны "почему у вас память на 100% не используется и почему у вас бэкапы на СТРАШНО ДОРОГОМ И БЫСТРОМ диске, а не на внешнем говносторадже". И это у тех заказчиков, где есть деньги на "докинуть еще памяти", а то у большинства белорусских госконтор истерика начинается уже на этапе "надо купить нормальный сервер".

PS: Расходимся, нас наебали: "Серьезно - вы знаете, проблемы SMB мне не интересны. Пусть идут в SAAS".

Майндфак стал нормой жизни
Image
Imagemetaclass
Для разнообразия вместо того чтобы работать круглые сутки дома, хожу на работу и с работы.
За то время, пока я не был на улице, оказалось, что майндфак стал нормой жизни.
Во-первых, 99% людей в транспорте долбятся в смартфоны нечеловеческих размеров, кто в игрушки, кто в соцсети.

Во-вторых, вот висит афиша, на ней безумные надписи вроде "Арт-пикник в парке Дримленд" из которых сложно понять, что рекламируется, а внизу нарисована либо двухголовая девушка, по которой видно, что Богатый Внутренний Мир ей проел все мозги, либо двухголовый негр с гитарой на одной голове и выпученными глазами на другой.

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

И хэштеги, хэштеги, хэштеги на всех рекламах и афишах, типа кто-то пойдет этот хештэг вбивать в поиск.

Я понял, почему мирные люди не используют электронную почту
Image
Imagemetaclass
Мне понадобилось отправить письмо на адрес, который мне продиктовали по телефону.
Получилось это сугубо только с третьего раза - первый раз не так назвали букву, второй раз оказалось, что адрес изменился и в нем теперь нет имени, только фамилия.
Т.е. протокол, обмен по которому инициировать возможно, только если уже есть цифровое соединение, по которому можно передать адрес точно.
Требовать от людей знания английского алфавита - это программизм 99-левела, а потом удивляемся, что народ использует всякие телеграмы с привязкой к номерам телефона.

Тул или пару строчек на баше?
Image
Imagemetaclass
https://github.com/ahmetalpbalkan/govvv
Софтина на голанге, вызывающая go build с параметрами, устанавливающими переменные с версией, датой сборки, идентификатором ревизии гита и прочим таким.
Я бы в жизни не додумался искать такую софтину, сделал бы в скрипте вызов $(git rev-parse HEAD) и впихнул ее вывод в -ldflags, а вот однако ж - бывает. Хрен знает, насколько хорошо тащить все червей из всех закоулков гитхаба ради условного "взять готовое решение".

"Асинхронный" http api
Image
Imagemetaclass
Вчера был на тусовке junolab, где их главные гуру рассказывали, как у них бекенд устроен.
В частности, на входе у них стоят гейтвеи с обычным http протоколом и минимальным набором фич - валидация, проверка авторизации по токенам и прочее такое, которые перекидывают запрос в MQ (nats.io).

При этом, насколько я понял, асинхронность там реализована поверх обычного http, без всяких http2, веб-сокетов и прочих не везде работающих протоколов - т.е. клиент api сначала делает запрос к гейтвею, ему сразу говорят - 200 ок, а потом он должен, по идее, дальше опрашивать гейтвей, пока для него из MQ придет ответ от микросервисов. Или у них там ответы от сервера бесконечно идут, я сходу не понял (т.е. ответ без content-length и соединение просто ждет пока придет что-нибудь, не помню, как эта техника называется).

В принципе, если keep-alive и соединение не обрывается - то реализация дуплексного протокола поверх синхронного http вроде приемлемая. Единственное, что в случае бесконечного ответа - если сервер и клиент долго ничего друг другу не говорят - промежуточные NAT и прочая сетевая муть могут соединение забыть, причем пока TCP keep-alive не проснется (а это два часа по умолчанию, вроде) - это обнаружено той стороной, которая молчит и ждет, не будет. Но теоретически это какие-то heart-beat слать можно со стороны сервера и запросы со стороны клиента.

Все правильно написано
Image
Imagemetaclass
https://www.facebook.com/apazhe/posts/10155034492578102

"Фэйсбук в той или иной степени ненавидят все, кого я знаю. И при этом все, кого я знаю, имеют аккаунты в фэйсбуке. Потому что у всех, кого они знают, есть аккаунты в фэйсбуке. Ну да, ну да.

Как так вышло? Каким образом мы стали заложниками этого вороватого дегенерата, Марка Цукерберга? Как мы оказались в этой вонючей политкорректной левацкой помойке, модерируемой азиатскими тараканами за полрубля в час?"

Postgresql в убере
Image
Imagemetaclass
https://eng.uber.com/mysql-migration/
http://postgresql.nabble.com/Why-we-lost-Uber-as-a-user-td5913417.html

Занятное чтиво про заморочки MVCC и реализации индексов в postgresql.
Все бы это хорошо, но я не понимаю один момент - почему они сравнивают только физическую репликацию (передачу изменений в страницах БД) и репликацию передачей исполняемых запросов?
Есть же вариант "передавать логические изменения в во всех измененных записях в порядке их коммита". Т.е. в таком варианте проблемы с недетерминированным выполнением запросов отсутствуют, но размер передаваемых данных заметно меньше, чем в случае "передавать весь WAL".

C, магия макросов и отладка
Image
Imagemetaclass
Судя по тому, что я наблюдаю в либах на Си (например, libuv), магия из макросов весьма популярна, в том числе и для реализации разного рода структур данных вроде списков, хэшей (https://troydhanson.github.io/uthash/) и прочего такого.

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

фейсбук-rape, продолжение
Image
Imagemetaclass
http://jolaf.livejournal.com/768247.html
Успешный ебарь через N лет, прочитав хэштег #янебоюсьсказать, вспомнил, что когда-то уломал девушку на поебаться, не расслышав условное "нет".
Как по мне - так ситуация, в которой влюбленная девушка отказывает в сексе из соображений "не хочу быть еще одной победой успешного ебаря" - возможна только в вывернутой наизнанку культуре, пропитанной насквозь христианской моралью.
Вот спрашивается, что эта девушка объективно потеряла, переспав с автором поста? Психологический вред проистекает не из того, что ее условное "нет" проигнорили, а из того, что в голову вбиты тыщи тупых стереотипов на тему секса, девственности и прочего такого.

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

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

Общество потребления
Image
Imagemetaclass
Каждый раз, когда я хожу по торговым центрам или торговым кварталам, меня очень сильно напрягают несколько вещей. Во-первых, то, что 99% магазинов торгуют едой или одеждой, во-вторых, то, что все, там продающееся, практически не нужно, а то что нужно - можно задолбаться искать среди ненужного.
Особенно вымораживают магазины ненужных сувениров в туристических городках. Все такое блестящее, разноцветное и интересное, но нахрен не нужное.
Одновременно свихнуться на почве минималистичного образа жизни и страдать от детских психических травм жизни в СССР, в котором ничего не было и любая прикольная или сложноустроенная вещица была поводом для радости - это жесть.
А еще практически нигде нет магазинов для DIY. В Варне единственный магазин, отличный от общепринятого - specrc, занятный гибрид жданов и авиамодельного кружка, в котором, при этом, выбор в 10 раз больше чем в алекс-весте, например. В среднем городе найти что-нибудь интересное и отличающееся от "магазин для ремонта бетонных хат белорусиками", практически нереально. Похоже, все переключились на прямой заказ из китайпосылторга.

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

Image