commit -m "better"
Занимался рутинным обновлением софта. #pkgconfig Контур CI - это очень круто и удобно, потому что как я еще бы заметил, что, с новым libpcap, начала падать сборка wireshark? Падать оно начало с очень странным сообщением об ошибке: "ninja: Entering directory…
Увожаемые, а дайте совет про лучшие практики CI на github?
Сейчас у меня есть процесс, который на каждый коммит умеет сказать OK/FAIL.
Самое простое, что мне приходит в голову - двигать какую-то метку "stable" в последний зеленый коммит, или мержить все изменения по последний зеленый в какую-то ветку "stable".
А как вообще принято?
Сейчас у меня есть процесс, который на каждый коммит умеет сказать OK/FAIL.
Самое простое, что мне приходит в голову - двигать какую-то метку "stable" в последний зеленый коммит, или мержить все изменения по последний зеленый в какую-то ветку "stable".
А как вообще принято?
commit -m "better"
#GNOME hate speech gtk4 - это FAIL. https://archlinux.org/packages/extra/x86_64/gtk4/ Почти все проекты, которые перешли на gtk4 - это либо составные части gnome, либо библиотеки, от которых эти составные части зависят. Почему независимые вендоры не спешат…
https://sourcehut.org/blog/2023-01-09-gomodulemirror/
Продолжение истории про ddos от Google.
Решение Дрю, конечно, спорное, потому что принципы - принципами, но вот go-шные проекты у него хостить будет сложнее.
Продолжение истории про ddos от Google.
Решение Дрю, конечно, спорное, потому что принципы - принципами, но вот go-шные проекты у него хостить будет сложнее.
sourcehut.org
SourceHut will (not) blacklist the Go module mirror
sourcehut is a network of useful open source tools for software project maintainers and collaborators, including git repos, bug tracking, continuous integration, and mailing lists.
🕊5🍌3👍2🤔1
https://quick-lint-js.com/blog/cpp-vs-rust-build-times/
Текст про сравнение скорости сборки Rust vs. C++.
От кучи подобных текстов отличает монументальность подхода - коллега переписал 17 тыщ строк с С++ на Rust, для корректности сравнения.
Измеряется вообще ВСЕ - инкрементальные vs полные сборки, различные трюки для ускорения сборки как С++, так и для Rust, в том числе, (за это отдельный респект и уважуха) - попытка собрать тулчейны с #BOLT.
Короче, автор явно одержим скоростью, почитайте.
Выводы? Все сложно!
Текст про сравнение скорости сборки Rust vs. C++.
От кучи подобных текстов отличает монументальность подхода - коллега переписал 17 тыщ строк с С++ на Rust, для корректности сравнения.
Измеряется вообще ВСЕ - инкрементальные vs полные сборки, различные трюки для ускорения сборки как С++, так и для Rust, в том числе, (за это отдельный респект и уважуха) - попытка собрать тулчейны с #BOLT.
Короче, автор явно одержим скоростью, почитайте.
Выводы? Все сложно!
Quick-Lint-Js
Is coding in Rust as bad as in C++?
A practical comparison of build and test speed between C++ and Rust.
🔥21🤔2👍1🤯1💩1
Коллеги принесли красивое.
Обсуждали внутренний патч во flakes8, вида
Конечно, возник вопрос - почему так в upstream, и можно ли это будет смержить в него.
https://github.com/PyCQA/flake8/pull/1782#issuecomment-1377346615
https://github.com/PyCQA/flake8/issues/1777
TL;DR -начнем с того, что ты пиздоглазое мудило "what part of "this is not changing" do you not understand?"
Насколько я понял, в трекере там довольно много подобных запросов на изменение этой чиселки, все - примерно с такими же ответами.
А, ну и вишенка на торте - договориться не могут проекты(pylint и flake8) из одной организации.
Вот в коммерческой организации пришел бы старший разраб в трекер, навалял бы обеим "высоким договаривающимся сторонам" люлей, и дело бы пошло, без всяких "тонких душевных организаций", и прочих ЧСВ.
Обсуждали внутренний патч во flakes8, вида
-VALID_CODE_PREFIX = re.compile(Ну, типа, не хватает ширины какого-то поля, давайте, мол, увеличим на 1.
"^[A-Z]{1,3}[0-9]
{0,3}$", re.ASCII)
+VALID_CODE_PREFIX = re.compile(
"^[A-Z]{1,3}[0-9]
{0,4}$", re.ASCII)
Конечно, возник вопрос - почему так в upstream, и можно ли это будет смержить в него.
https://github.com/PyCQA/flake8/pull/1782#issuecomment-1377346615
https://github.com/PyCQA/flake8/issues/1777
TL;DR -
Насколько я понял, в трекере там довольно много подобных запросов на изменение этой чиселки, все - примерно с такими же ответами.
А, ну и вишенка на торте - договориться не могут проекты(pylint и flake8) из одной организации.
Вот в коммерческой организации пришел бы старший разраб в трекер, навалял бы обеим "высоким договаривающимся сторонам" люлей, и дело бы пошло, без всяких "тонких душевных организаций", и прочих ЧСВ.
🤡19🤔2👍1👎1🔥1😈1
https://seclists.org/oss-sec/2023/q1/13
Просто оставлю это здесь.
На самом деле, из текста я не понял, где именно не случается нужная проверка. Я вот, например, при скачке исходников тоже не проверяю сертификаты, потому что важнО несовпадение чексуммы(SHA), которая получена по надежному каналу.
Если при скачке репозитория версий и зависимостей - то это, конечно, хорошо.
Просто оставлю это здесь.
На самом деле, из текста я не понял, где именно не случается нужная проверка. Я вот, например, при скачке исходников тоже не проверяю сертификаты, потому что важнО несовпадение чексуммы(SHA), которая получена по надежному каналу.
Если при скачке репозитория версий и зависимостей - то это, конечно, хорошо.
seclists.org
oss-sec: CVE-2022-46176: Cargo does not check SSH host keys
👍3😁3🔥1🤮1🐳1
Вчера разбирались с коллегой, почему у него странно работает ssh на машину с установленным #stal/ix.
Если совсем коротко, то это выглядело так:
Дело свелось вот к этой функции - https://github.com/mkj/dropbear/blob/master/dbutil.c#L371
Совсем коротко - для интерактивного режима оно запукает shell в login mode, и тогда shell читает содержимое /etc/profile, и далее все, как положено, а для запуска batch команды запускает шел в неинтерактивном режиме, через -c. Ну и этот shell, конечно, наследует env от parent process, и не зачитывает на старте /etc/profile.
Я тут не очень понимаю, как правильно (и кто это "правильно" вообще определяет).
Мне лично кажется, что и во втором случае нужно запускать login shell, но не в интерактивном режиме!
Я это у себя зачинил так - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/ix.sh#L7 https://github.com/mkj/dropbear/blob/master/dbutil.c#L388 - вот тут заменяем -c на -cl, указывая, что надо зачитать env из /etc/profile.
Вот теперь думаю, надо ли с этим стучаться в dropbear upstream, или меня там сразу нахер пошлют?
Если совсем коротко, то это выглядело так:
# ssh host envНу, то есть, натурально, сильно разный environment при запуске команды в batch режиме ssh, и такой же команды в интерактивном режиме.
...
A=B
...
# ssh host
> env
...
A=C
...
Дело свелось вот к этой функции - https://github.com/mkj/dropbear/blob/master/dbutil.c#L371
Совсем коротко - для интерактивного режима оно запукает shell в login mode, и тогда shell читает содержимое /etc/profile, и далее все, как положено, а для запуска batch команды запускает шел в неинтерактивном режиме, через -c. Ну и этот shell, конечно, наследует env от parent process, и не зачитывает на старте /etc/profile.
Я тут не очень понимаю, как правильно (и кто это "правильно" вообще определяет).
Мне лично кажется, что и во втором случае нужно запускать login shell, но не в интерактивном режиме!
Я это у себя зачинил так - https://github.com/pg83/ix/blob/main/pkgs/bin/dropbear/ix.sh#L7 https://github.com/mkj/dropbear/blob/master/dbutil.c#L388 - вот тут заменяем -c на -cl, указывая, что надо зачитать env из /etc/profile.
Вот теперь думаю, надо ли с этим стучаться в dropbear upstream, или меня там сразу нахер пошлют?
😁6👍2🔥1
commit -m "better"
Много раз обещал написать, зачем свой дистрибутив Linux, и почему он так устроен. #stal/IX #gold Часть первая, "зачем". Мне в современных OS очень много чего не нравится. * Мне не нравится шедулер Linux. #scheduler * Мне не нравится закрытые части в macos…
Мне кажется, надо бы апнуть этот замечательный пост, в котором я объяснял, зачем я затеял свой дистрибутив Linux.
Если коротко - то меня бесят многие вещи, сделанные в Unix/Linux, и самый простой способ их починить - это иметь контроль над всем окружением!
Вот, если говорить про предыдущий пост, где я написал про "странность" поведения ssh daemon в интерактивном vs. batch режиме.
На самом деле, эта странность очень просто объясняется - она вызвана путаницей между login shell, и interactive shell!
К сожалению, эти режимы довольно часто соседствуют, поэтому есть соблазн в настроечные файлы для login shell запихнуть свои настройки для interactive shell.
Но это в корне неверно!
Login shell, это, если очень грубо, первый shell в цепочке для вашего пользователя. Обычно его стартует какой-нибудь display manager, типа mingetty, agetty, emptty, greetd, sddm, да тысячи их. ssh, putty, telnet, mosh, и так далее - это тоже штука, которая spawn первую shell в цепочке!
Interactive shell - это то, куда вы вбиваете команды с клавиатуры.
Это, конечно, довольно разные штуки.
(Кстати, немного в сторону - если у вас бывают случаи, когда в PATH повторяются одни и те же элементы - это значит, что вы не понимаете разницу между этими сущностями, и у вас иногда два раза срабатывает конструкция добавления чего-то к PATH, потому что лежит не в том файле)
Проблема тут еще усугубляется тем, что разные shell читают разные startup файлы, в зависимости от режима.
Например, bash читает /etc/profile как и в interactive, так и в login mode. А большинство других shell так не делают!
Короче, тут явно видны треш, угар, и содомия, наслоение привычек, непонимания, и так далее. Оцените, например, только /etc/environment - https://superuser.com/questions/664169/what-is-the-difference-between-etc-environment-and-etc-profile - это упячка, родившаяся из того, что иногда надо сделать "login", но без "shell", а переменные откуда-то надо взять!
Поэтому, конечно, я тут намерен сделать все "правильно" (*), а не воспроизвести хак, к которому все привыкли!
Почему?
Потому что, если бы меня устраивал этот хак, я бы поставил Fedora! А мне нужно better!
(*) Правильно - конечно, ssh и прочие должны запускать первый shell в login mode. Еще лучше - для каждого shell пользователь должен разобраться, в какие файлы ему класть interactive настройки (типа completion), а куда - login.
Если коротко - то меня бесят многие вещи, сделанные в Unix/Linux, и самый простой способ их починить - это иметь контроль над всем окружением!
Вот, если говорить про предыдущий пост, где я написал про "странность" поведения ssh daemon в интерактивном vs. batch режиме.
На самом деле, эта странность очень просто объясняется - она вызвана путаницей между login shell, и interactive shell!
К сожалению, эти режимы довольно часто соседствуют, поэтому есть соблазн в настроечные файлы для login shell запихнуть свои настройки для interactive shell.
Но это в корне неверно!
Login shell, это, если очень грубо, первый shell в цепочке для вашего пользователя. Обычно его стартует какой-нибудь display manager, типа mingetty, agetty, emptty, greetd, sddm, да тысячи их. ssh, putty, telnet, mosh, и так далее - это тоже штука, которая spawn первую shell в цепочке!
Interactive shell - это то, куда вы вбиваете команды с клавиатуры.
Это, конечно, довольно разные штуки.
(Кстати, немного в сторону - если у вас бывают случаи, когда в PATH повторяются одни и те же элементы - это значит, что вы не понимаете разницу между этими сущностями, и у вас иногда два раза срабатывает конструкция добавления чего-то к PATH, потому что лежит не в том файле)
Проблема тут еще усугубляется тем, что разные shell читают разные startup файлы, в зависимости от режима.
Например, bash читает /etc/profile как и в interactive, так и в login mode. А большинство других shell так не делают!
Короче, тут явно видны треш, угар, и содомия, наслоение привычек, непонимания, и так далее. Оцените, например, только /etc/environment - https://superuser.com/questions/664169/what-is-the-difference-between-etc-environment-and-etc-profile - это упячка, родившаяся из того, что иногда надо сделать "login", но без "shell", а переменные откуда-то надо взять!
Поэтому, конечно, я тут намерен сделать все "правильно" (*), а не воспроизвести хак, к которому все привыкли!
Почему?
Потому что, если бы меня устраивал этот хак, я бы поставил Fedora! А мне нужно better!
(*) Правильно - конечно, ssh и прочие должны запускать первый shell в login mode. Еще лучше - для каждого shell пользователь должен разобраться, в какие файлы ему класть interactive настройки (типа completion), а куда - login.
Super User
What is the difference between `/etc/environment` and `/etc/profile`?
I understand that the former is loaded prior to the latter, but what is the difference in their purpose and otherwise? Are there any good reasons I should set some variables in one and not the other?
👍10🔥4❤2
commit -m "better"
Вчера разбирались с коллегой, почему у него странно работает ssh на машину с установленным #stal/ix. Если совсем коротко, то это выглядело так: # ssh host env ... A=B ... # ssh host > env ... A=C ... Ну, то есть, натурально, сильно разный environment при…
Telegram
Unexpected T_PAAMAYIM_NEKUDOTAYIM
😁18👍4🐳4
commit -m "better"
Интересных ссылок в последние дни нет. Разве что: * Новая Зеландия отменила контракт со штатным колдуном. https://boingboing.net/2021/10/13/official-city-wizard-fired-from-new-zealand-city-after-over-20-years-of-public-service.html Оригинальная ссылка недоступна…
Продолжается замечательная история про #gil в Питоне.
Прошлое обсуждение про полный отказ от #gil, предсказуемо, заглохло, и я уже было подумал, что "тушите свет", но коллега оказался упорным, и теперь пришел с PEP, где он предлагает сделать gil отключаемым во время сборки интерпретатора.
https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional/22606
Я настроен довольно пессимистично, потому что люди прекрасно понимают, что это сильно фрагментирует экосистему. Условно говоря, будешь ты приходить к автору third party модуля с просьбой починить в нем баг в многопотоке(или починить регрессию в однопотоке), а он будет посылать нахер, с "не использовали многопоток, и неча начинать". В итоге, все разделится по признаку "можно в многопоток/нельзя", и это не очень.
Прошлое обсуждение про полный отказ от #gil, предсказуемо, заглохло, и я уже было подумал, что "тушите свет", но коллега оказался упорным, и теперь пришел с PEP, где он предлагает сделать gil отключаемым во время сборки интерпретатора.
https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional/22606
Я настроен довольно пессимистично, потому что люди прекрасно понимают, что это сильно фрагментирует экосистему. Условно говоря, будешь ты приходить к автору third party модуля с просьбой починить в нем баг в многопотоке(или починить регрессию в однопотоке), а он будет посылать нахер, с "не использовали многопоток, и неча начинать". В итоге, все разделится по признаку "можно в многопоток/нельзя", и это не очень.
Discussions on Python.org
PEP 703: Making the Global Interpreter Lock Optional
Hi 👋 As the sponsor of @colesbury’s PEP, I’d like to invite you all to discuss the proposal to solve the biggest scalability limitation of CPython by making it possible to build a version of the interpreter which doesn’t use the Global Interpreter Lock.…
👍6🤔4❤2😐1
https://www.opennet.ru/opennews/art.shtml?num=58472
Пишут, что в Chromium можно в Rust.
Новость, конечно, не очень приятная!
Я люблю, когда на Rust переписывают какую-то кодину на C, но вот сочетание Rust + C++ мне не очень ОК. Потому что С++ достаточно безопасен, настолько, что проблемы от взаимодействия 2 языков перевешивают профит. Про такую попытку Гугла использовать Rust в С++ кодовой базе я уже писал - #cras.
"Для упрощения интеграции кода на Rust с существующим кодом на C++ и обхода связанных с интеграцией рисков и ограничений, в настоящее время решено ограничиться однонаправленным взаимодействием - обращением из С++ к Rust (т.е. код на Rust может лишь вызываться из кода C++ через функции API, но не смешиваться с кодом на C++), что также даст возможность держать под контролем дерево зависимостей. Вторым ограничением является поддержка только сторонних библиотек, поставляемых в форме отдельных компонентов, не привязанных к Chromium и имеющих API, ориентированный на выполнение конкретных задач"
Пока мне кажется, что это такой эксперимент, и что эти правила позволяют затащить какой-то кодек на Rust, или вот librsvg. Вполне возможно, что этим все и ограничится, как двумя файликами "для галочки" в #cras.
И еще такой вопрос - а что с #carbon?
Кажется, что Rust тут пытается откушать как раз нишу #carbon, и это довольно странно. Carbon все?
Пишут, что в Chromium можно в Rust.
Новость, конечно, не очень приятная!
Я люблю, когда на Rust переписывают какую-то кодину на C, но вот сочетание Rust + C++ мне не очень ОК. Потому что С++ достаточно безопасен, настолько, что проблемы от взаимодействия 2 языков перевешивают профит. Про такую попытку Гугла использовать Rust в С++ кодовой базе я уже писал - #cras.
"Для упрощения интеграции кода на Rust с существующим кодом на C++ и обхода связанных с интеграцией рисков и ограничений, в настоящее время решено ограничиться однонаправленным взаимодействием - обращением из С++ к Rust (т.е. код на Rust может лишь вызываться из кода C++ через функции API, но не смешиваться с кодом на C++), что также даст возможность держать под контролем дерево зависимостей. Вторым ограничением является поддержка только сторонних библиотек, поставляемых в форме отдельных компонентов, не привязанных к Chromium и имеющих API, ориентированный на выполнение конкретных задач"
Пока мне кажется, что это такой эксперимент, и что эти правила позволяют затащить какой-то кодек на Rust, или вот librsvg. Вполне возможно, что этим все и ограничится, как двумя файликами "для галочки" в #cras.
И еще такой вопрос - а что с #carbon?
Кажется, что Rust тут пытается откушать как раз нишу #carbon, и это довольно странно. Carbon все?
www.opennet.ru
В кодовой базе Chromium разрешено использование языка Rust
Компания Google объявила о включении языка программирования Rust в число языков, допустимых в коде проекта Chromium. Существующий код пока не планируют переписывать на Rust, но отныне будет разрешена интеграция в кодовую базу сторонних библиотек, написанных…
👍8💔3🤔2
commit -m "better"
https://sfconservancy.org/GiveUpGitHub/ https://news.ycombinator.com/item?id=31932250 https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/ https://lwn.net/Articles/899530 Стоило мне всех позвать на github, как SFC начало всех призывать с гитхаба…
https://www.opennet.ru/opennews/art.shtml?num=58465 #sfc
Слуште, я, когда прочитал текст этой новости, полез в календарь, и проверил, какое сегодня число. Но потом увидел, что, в списке подписантов, есть известные левые упыри под названием #sfc, и все встало на свои места.
Интересно, много ли народу съехало с github, после их прошлой инициативы?
Слуште, я, когда прочитал текст этой новости, полез в календарь, и проверил, какое сегодня число. Но потом увидел, что, в списке подписантов, есть известные левые упыри под названием #sfc, и все встало на свои места.
Интересно, много ли народу съехало с github, после их прошлой инициативы?
www.opennet.ru
Объединение индейцев добивается переименования проектов Apache
Некоммерческая организация Natives in Tech, занимающаяся развитием технологической экосистемы для коренных народов, призвала сообщество Apache Software Foundation прекратить использование слова "Apache" и индейской символики в логотипе, в том числе переименовать…
😁12🤡11👍1🐳1
Такие IT новости нам по душе! Хотя я бы, конечно, ожидал бы такого от blizzard!
🔥5😁2
Forwarded from 4chan +
Польская студия СD Project RED привлекла к созданию своей новой игры порноактрису Bunny Marthy – всё для того, чтобы секс-сцены стали ещё реалистичнее.
Пока ещё неизвестно, в какой именно игре она появится – это может быть либо новый «Ведьмак», либо дополнение Phantom Liberty для Cyberpunk 2077
4chan 18+
Пока ещё неизвестно, в какой именно игре она появится – это может быть либо новый «Ведьмак», либо дополнение Phantom Liberty для Cyberpunk 2077
4chan 18+
🍌15🔥6👍5👏1🌭1