commit -m "better"
3.24K subscribers
1.02K photos
149 videos
3 files
2.38K links
just random thoughts
Download Telegram
#lab #homelab

https://github.com/francoismichel/ssh3 - прикольная штука, типа, "а давайте запилим ssh поверх стандартных web технологий", типа x509 сертификатов, http/3, quic, и так далее.

На Go, что приятно. В то, что openssh/dropbear написаны "аккуратно", я не верю, потому что на С нельзя писать сложные системы без проездов по памяти.

С точки зрения клиента оно пока довольно harsh, поэтому запилил несколько разных там улучшений:

https://github.com/francoismichel/ssh3/pull/139/files

Посмотрим, что скажут мейнтейнеры.

(особую гордость у меня вызывает способ, которым я зачинил то, что после добавления хоста в known_hosts клиента нужно было перезапустить - https://github.com/francoismichel/ssh3/pull/139/files#diff-8939e1ce1317af19fdceab3a5d7aabbac4949389802b082e926ed37b442fb4f7R203)
12👍7🔥3🤔2
Forwarded from hirakawa shitposting
🥰21😁113🔥2👍1
Forwarded from на хуторе please Dick Аньки (Anna PYYALA)
😁25
Forwarded from /dev/memes
This media is not supported in your browser
VIEW IN TELEGRAM
Томми знает, что, если через несколько минут микросервис «Роскошный Джордж» не придет в себя, то его — Томми — похоронят вместе с ним. Зачем бизнесу обьяснять, почему и отчего в их Проде умер важный сервис? Проще похоронить обоих и мигрировать в облако. Бэкапов у них ведь нет, так? И сейчас Томми, по кличке «Сиська», молится. А если не молится, то ему, следовало бы этим заняться.
😁20🔥7💯5🐳1
commit -m "better"
Рубрика #делай_без_изъебов, #нормально_делай_нормально_будет Кстати, в качестве edge proxy хочу посоветовать https://github.com/umputun/reproxy (не на правах рекламы! #lab) Прелесть этой тулзы в том, что в ней есть примерно все, чтобы сделать проксирование…
Продолжаю рубрику #делай_без_изъебов, #нормально_делай_нормально_будет.

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

Буду иногда писать про такой софт, по мере того, как он мне встречается.

https://github.com/slackhq/nebula

Очень приятная overlay network. Нужно это (мне) для того, чтобы с ноутбука ходить в свою home #lab откуда угодно. Ну и чтобы это было удобно, поэтому модель "bastion" мне не очень.

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

Узел определяется сертификатом, который ты подписываешь из CA, которое есть только на твоей машинке. В подписанные данные ты пишешь IP, сеть, и группы, к которым принадлежит этот хост.

Все максимально просто и понятно, в отличие от того же tailscale, при чтении документации на который хочется спрость "а нахуя вы тут нахуевертили столько???"

У меня nebula сейчас работает на всех хостах #homelab, но я пока не перевесил ssh daemon с настоящих IP на оверлейные, немного страшновато.
👍16🤔32
В соотечественниках меня дико бесит одна черта.

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

Да кто тебя вообще про это спрашивает???

Не знаешь - так и скажи, "Нет у нас туалетной бумаги", а не "А вам туалетная бумага зачем нужна? Жопу подтирать?"

Вот, есть у меня простой вопрос - какая температура воздуха должна быть в датацентре?

Любой здравомыслящий человек (https://ru.wikipedia.org/wiki/%D0%9D%D0%B8_%D0%BE%D0%B4%D0%B8%D0%BD_%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D1%8B%D0%B9_%D1%88%D0%BE%D1%82%D0%BB%D0%B0%D0%BD%D0%B4%D0%B5%D1%86, но тем не менее) сразу поймет, что речь идет про какую-то устоявшуюся нагрузку, в которой температура компонент сервера есть чистая функция нагрузки и температуры снаружи, и что надо сказать, что, вот, если ты гоняешь сервера под такими-то парами, и у тебя вокруг 40 градусов, то уже плохо, а 35 - может еще и норм.

Но, блядь, нет, сука, "а какой у тебя cpu freq driver/governor", а, как вам такое???

Так вот - какая температура воздуха должна быть в датацентре?

UPD: тредик в комментариях, конечно, захватывающий. Зачем-то куча людей, которые не знают ответа, начали мне рассказывать про "тебе надо другое" (хотя я совершенно точно знаю, что мне надо), и только один человек (https://t.iss.one/c/1469934025/25337), который знает ответ, просто его озвучил.
👍11👎7😁7🤡63🤷‍♀2🦄2🐳1💯1
Про логические уловки.

Люди довольно часто, осознано, или нет, оставим это на их совести, пользуются логическими уловками.

3 моих любимых:

https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D1%81%D1%83%D0%BF%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F

https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BC%D0%B5%D0%BD%D0%B0_%D1%82%D0%B5%D0%B7%D0%B8%D1%81%D0%B0

https://cyclowiki.org/wiki/%D0%9E%D1%86%D0%B5%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5

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

Горячился, махал руками, пытался что-то объяснять.

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

Что это значит?

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

Например, если ваш оппонент говорит, что "А - хорошо, Б - плохо" (оценочное суждение), то вам не стоит начинать обсуждать, действительно ли A - хорошо, а Б - плохо. Если вы начали это обсуждать, то вы попались - вы приняли право вашего оппонента навязывать вам определения "хорошо" и "плохо". И на этом поле оппонент вас обязательно выиграет, потому что выигрывает тот, кто определяет, что хорошо, а что - плохо.

Поэтому, когда я вижу, что собеседник пользуется одной из таких логических уловок, у меня в диалоге случается "full stop".

Я говорю собеседнику, что он воспользовался подобным приемом (*), и предлагаю ему либо согласиться, и переформулировать мысль, или не согласиться, и доказать мне, что я ошибся, или закончить наш диалог. Потому что не надо садиться играть в карты с шулером! Не надо пытаться договориться с шулером в рамках правил, которые он вам навязывает, потому что вы автоматически проиграли. Сначала договоритесь про устраивающие вас правила.

Ну а дальше либо диалог переходит в более конструктивное русло (в случае оценочного суждения, например, вам стоит на берегу договориться о том, какие объективные критерии вы измеряете, без "хорошо" и "плохо"), либо заканчивается.

(*): да, прямо так и говорю - "это пресуппозиция", или "это оценочное суждение", или "это подмена тезиса".
👍28🤡147🔥4🤔1
💯11👍54🤔1
Forwarded from Мост на Жепи (qplazm3r)
😁29😭6🔥3
Q: Как правильно писать логи?

A: Надо писать в виде \n-delimited json, одна строка - одна запись в логе. В этом json должно быть поле "type", а все остальное - по желанию. Лог надо писать в stdout программы, чтобы можно было декомпозировать запись логов, доставку, и ротацию. Не дело, когда каждая программа содержит в себе код по ротации своих логов.

Я тут подумал, что смог обмануть систему, и подсунул одной там программе, которая очень не хотела писать лог в stdout, "/dev/stdout", в качестве пути файла для логгирования.

Все было хорошо, до тех пор, пока эта программа:

* Не запустилась от рута

* Решила ротировать свой лог

Directed by Robert B. Weide
😁74🔥8🐳6😱3
commit -m "better"
Будни #bootstrap Как же я задолбался с 18-ым кленгом. Попробовал выкатить 18.1.3, так там все точно так же плохо, или хуже: * Мой компрессор, про который я писал выше, начал генерить битые файлы. Я сумел это даже воспроизвести, zstd, собранный последним…
Вышел 18.1.4, и, вроде как, он норм.

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

Напомню, что ранее у меня падал busybox в некоторых своих апплетах, и падал epiphany, прямо на старте.

Сейчас, уже целых 5 минут, все нормально.
🎉18😁10👍4🤔2
commit -m "better"
У меня nebula сейчас работает на всех хостах #homelab, но я пока не перевесил ssh daemon с настоящих IP на оверлейные, немного страшновато.
Кстати, таки перевесил.

Теперь dropbear у меня слушает только на оверлейных адресах, но я, на всякий случай, поднял ssh3 на все остальное.

Почему так?

Потому что, как вы знаете, я не верю, что на C можно написать софт без проездов, но верю, что на Go - можно.

Поэтому dropbear висит на адресах, активность на которых может быть только от доверенных источников, как-то так.
🤔7👍3🔥3
https://www.opennet.ru/opennews/art.shtml?num=61021

Линус - мелкий пакостник.

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

Но вот насыпать табов в рандомные места, чтобы они там "просто были" - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?bid=CFD0C5CECEC5D4&id=d5cf50dafc9dd5faa1e61e7021e3496ddf7fd61e
👍9😁8🗿7🤯2
commit -m "better"
https://www.opennet.ru/opennews/art.shtml?num=61021 Линус - мелкий пакостник. Иначе я не знаю, как еще объяснить его странную реакцию на просьбу удалить табуляцию из Kbuild. Ну, то есть, господа кернелкакеры в своем праве, хотят чтобы там можно было табы…
https://www.phoronix.com/news/Autodafe-0.2-Released

И вторая (на сегодня) новость про системы сборки.

Некто Эрик Рэймонд запилил скрипт, который позволяет поменять шило на мыло одно неподдерживаемое говно на другое нподдерживаемое говно autoconf сборку на обычные Makefile.

Зачем это может быть кому-то нужно, я не понимаю.
😁7👍5😱4🔥32🐳1
commit -m "better"
Вышел 18.1.4, и, вроде как, он норм. Норм в том смысле, что я загрузился в систему, собранную им, и ничего не падает. Напомню, что ранее у меня падал busybox в некоторых своих апплетах, и падал epiphany, прямо на старте. Сейчас, уже целых 5 минут, все нормально.
В общем, что-то починилось, а что-то - нет.

Например, ICE из https://gist.github.com/pg83/e138892353aed9d76b47f85109a1ea05 не починился.

Поэтому вчера я пошел, и завел два багрепорта в clang github, вот сюда https://github.com/llvm/llvm-project/issues.

Утром пошел проверть, что там с иоими репортами, и был очень удилвен, не увидев их в списке. Даже было подумал, что неправильно зашел к ним "в хату".

Но, как оказалось, коллеги просто очень быстро разобрали и закрыли мои репорты:

https://github.com/llvm/llvm-project/issues/89158
https://github.com/llvm/llvm-project/issues/89157

Что интересно, оба багрепорта уже были им известны, и один даже пофикшен в trunk.

Что еще более интересно, тот, что пофикшен в trunk, сам по себе в багфикс релиз не выезжает. Фиксы в транке - фиксами в транке, а вот если тебе что-то нужно, то ты сам создавай PR в стабильную ветку, и оно, возможно, доедет.

https://github.com/llvm/llvm-project/issues/89158#issuecomment-2063377604

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

Этот подход, конечно, приводит к странному.

Вот я себе соорудил патч - https://github.com/pg83/ix/commit/4b466b7c6b8261fb9e2f3d023ccf8c1fdf20504d#diff-cedd7b3dceaaa717e4a4056a6360bb64d017de7119ca809bf799462248836876

И какой у меня теперь стимул заводить PR в последнюю стабильную ветку 18.1.X, если я точно знаю, что в транке оно пофикшено, и у меня оно тоже пофикшено? С моей колокольни это просто "лишняя работа", которую можно не делать.

Ну, у "нищих слуг нет", поэтому если кому-то надо, то вот пусть он и мержит.

А проекту LLVM, конечно, желаю хорошего релиз-инженера.
👍8🤔52
😁34💯10😢4
Forwarded from The After Times
😁3112🤷‍♀6👍3🤡3
Будни #bootstrap

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

TL;DR - перенес /home в другое место (не спрашивайте, понадобилось побольше места, делать хорошо было лень, все там были), и /home стала симлинкой на какую-то другую папку, /home -> /new/home.

В итоге, сломался вызов protoc в сборке телеге.

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

Так вышло, что путь к .proto файлу прошел через нормализацию симлинок, и стал начинаться с /new/home, а вот -I нормализацию не прошли, и продолжили начинаться с /home (там, на самом деле, схема получилась чуть более запутанная, но для рассказа это значения не имеет).

Собственно, protoc стал отказываться генерировать нужные файлы, потому что посчитал, что .proto файл лежит в неверном месте.

Такие дела.
🐳63🔥3🤷‍♂1🤔1