https://tass.ru/ekonomika/15055267 #wot
Развитие событий по делу читов для World Of Tanks.
Что я могу сказать? Я не эксперт в юридических словах, но считал, и продолжаю считать, что тут нет "состава преступления".
Есть "unfair" эксплуатация дыр, это когда ты крадешь номер кредитки в чате игры, и есть "fair":
* автоматизация фарминга
* высокочастотный трейдинг(не про игры, но так-то тоже эксплуатация уязвимости, только уважаемая)
* AI для прицеливания(не могу найти ссылку на девайс, который прямо в hdmi потоке рисует рамочки для прицеливания в наборе игр)
Чем отличается официальный донат в играх от вот этого? Только тем, кому идут деньги. И в том, и в том случае игрок получает преимущество в игре за деньги.
Турниры? Ну come on, это мелкая и решаемая проблема, начиная от очных турниров, до полной записи на камеру действий игрока, монитора, и так далее.
UPD: в комментах мне пишут, что это нарушение ToS. Это классическая дилемма - отвечает ли производитель ножей за противоправное их применение. Я считаю, что не отвечает.
Развитие событий по делу читов для World Of Tanks.
Что я могу сказать? Я не эксперт в юридических словах, но считал, и продолжаю считать, что тут нет "состава преступления".
Есть "unfair" эксплуатация дыр, это когда ты крадешь номер кредитки в чате игры, и есть "fair":
* автоматизация фарминга
* высокочастотный трейдинг(не про игры, но так-то тоже эксплуатация уязвимости, только уважаемая)
* AI для прицеливания(не могу найти ссылку на девайс, который прямо в hdmi потоке рисует рамочки для прицеливания в наборе игр)
Чем отличается официальный донат в играх от вот этого? Только тем, кому идут деньги. И в том, и в том случае игрок получает преимущество в игре за деньги.
Турниры? Ну come on, это мелкая и решаемая проблема, начиная от очных турниров, до полной записи на камеру действий игрока, монитора, и так далее.
UPD: в комментах мне пишут, что это нарушение ToS. Это классическая дилемма - отвечает ли производитель ножей за противоправное их применение. Я считаю, что не отвечает.
TACC
Первый в России обвиняемый в продаже читов для World of Tanks признал вину
Ущерб разработчику игр от действий обвиняемого следствие оценило в 670 млн рублей
👍6😱1
Список зависимостей у библиотеки или программы - очень мощная вещь, по ним, например, можно понять, что cmake через curl лезет в сеть, а это очевидные ай-ай-ай.
Вот так, анализируя кольцевые зависимости freetype + harfbuzz + cairo + pango, я начал понимать, что мои представления о рендеринге шрифтов в Linux очень далеки от реальности.
#freetype #harfbuzz #fontconfig
Раньше я думал, что все очень просто: freetype загружает файл со шрифтом, рендерит его в буффер по заданным размерам, а дальше приложение битблитит эти буфера на канву, почем зря.
Потом в эту модель добавился harfbuzz, как загрузчик opentype шрифтов. Модель изменилась так - или freetype, или harfbuzz рендерят в буффер глифы, дальше приложение битблитает их на канву.
(битблитать недостаточно, https://github.com/revery-ui/revery/issues/108)
Эта стройная модель разбивается о:
* Настройки антиалиасинга живут во freetype. Всем известны infinality freetype, и патченый freetype в arch. Как это все соединяетсяс предыдущей моделью? Как антиалиасятся глифы от harfbuzz?
* subpixel rendering в freetype/harfbuzz? Один и тот же код, или разный, с разными настройками?
* Как мы рендерим цветные шрифты и шрифты под углом? Вряд ли мы поворачиваем глифы, кажется гораздо более естественным поворачивать outlines. Тогда пайплайн такой - freetype/harfbuzz готовят outlines, кто-то отдельный их рендерит. Но, если так, то конечным рендерингом должна заниматься какая-то отдельно стоящая векторная библиотека, типа cairo? А откуда она берет настройки антиалиасинга из freetype, и по каким алгоритмам вообще их имплементирует? А как мы рендерим/поворачиваем subhinted glyphs?
А как в обе этих модели вписываются хинты для взаиморасположения символов? В модель с outlines довольно понятно, а вот в bitmap модель не очень.
Причем, достаточно понятно, что есть приложения, которые берут готовые глифы от freetype, и есть те, которые используют outlines.
А если cairo для рисования outlines, то что в QT?
(Я попрошу заметить, что я еще даже не начал писать про подобные неоднозначности в text shape/layout, которыми занимаются harfbuzz и pango, и невесть кто еще)
Да, да, все это я начал понимать, раскапывая списки зависимостей разных там библиотек :) До этого мне правильные вопросы не приходили в голову.
Коллеги, помогите девочке Даше не сойти с ума, и скажите, как оно все на самом деле.
Ну и главный вопрос - чо круче-то, open type или true type шрифты? Как убедиться, что используется ot вариант, и что рендеринг идет правильным путем?
Вот так, анализируя кольцевые зависимости freetype + harfbuzz + cairo + pango, я начал понимать, что мои представления о рендеринге шрифтов в Linux очень далеки от реальности.
#freetype #harfbuzz #fontconfig
Раньше я думал, что все очень просто: freetype загружает файл со шрифтом, рендерит его в буффер по заданным размерам, а дальше приложение битблитит эти буфера на канву, почем зря.
Потом в эту модель добавился harfbuzz, как загрузчик opentype шрифтов. Модель изменилась так - или freetype, или harfbuzz рендерят в буффер глифы, дальше приложение битблитает их на канву.
(битблитать недостаточно, https://github.com/revery-ui/revery/issues/108)
Эта стройная модель разбивается о:
* Настройки антиалиасинга живут во freetype. Всем известны infinality freetype, и патченый freetype в arch. Как это все соединяетсяс предыдущей моделью? Как антиалиасятся глифы от harfbuzz?
* subpixel rendering в freetype/harfbuzz? Один и тот же код, или разный, с разными настройками?
* Как мы рендерим цветные шрифты и шрифты под углом? Вряд ли мы поворачиваем глифы, кажется гораздо более естественным поворачивать outlines. Тогда пайплайн такой - freetype/harfbuzz готовят outlines, кто-то отдельный их рендерит. Но, если так, то конечным рендерингом должна заниматься какая-то отдельно стоящая векторная библиотека, типа cairo? А откуда она берет настройки антиалиасинга из freetype, и по каким алгоритмам вообще их имплементирует? А как мы рендерим/поворачиваем subhinted glyphs?
А как в обе этих модели вписываются хинты для взаиморасположения символов? В модель с outlines довольно понятно, а вот в bitmap модель не очень.
Причем, достаточно понятно, что есть приложения, которые берут готовые глифы от freetype, и есть те, которые используют outlines.
А если cairo для рисования outlines, то что в QT?
(Я попрошу заметить, что я еще даже не начал писать про подобные неоднозначности в text shape/layout, которыми занимаются harfbuzz и pango, и невесть кто еще)
Да, да, все это я начал понимать, раскапывая списки зависимостей разных там библиотек :) До этого мне правильные вопросы не приходили в голову.
Коллеги, помогите девочке Даше не сойти с ума, и скажите, как оно все на самом деле.
Ну и главный вопрос - чо круче-то, open type или true type шрифты? Как убедиться, что используется ot вариант, и что рендеринг идет правильным путем?
GitHub
Text Rendering / Clarity: Implement correct gamma correction · Issue #108 · revery-ui/revery
Issue: The font rendering is not as clear as it could be on low-dpi displays. One contributing factor is that we are not appropriately handling gamma color space. When we render a glyph, freetype g...
🤯6👍2
Как вы уже поняли, я умею себе находить друзей в интернете. #vkquake
Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId,567237/
Пришел с багой, что у меня его программа с новой версией начала падать.
Один из коммитеров(не оунер проекта) подсказали мне, что дело может быть в размере стека.
И, да, действительно, автор кода не очень бережно обращался со стеком, и ему перестало хватать дефолтного стека в musl.
Я посоветовал ему, "как perf инженер perf инженеру", чтобы он выделил пертредный буфер нужного размера, и использовал его вместо стека.
Автор кода:
* сообщил мне, что я stupid fool(потерто)
* что он 7 лет оттрубил в id Software, и что он-то уж точно знает, как надо. Я, конечно, сообщил ему в ответ, что 20 лет занимаюсь перфом сложного многопоточного софта, что разозлило его еще больше.
* Параллельно он попытался втюхать мне, что выделение в куче time unbounded, а на стеке - нет. Я, конечно, не преминул рассказать ему про то, что стек выделен в virtual memory, и page fault в нем так же time unbounded. И что предложенный memory pool так же решает эту проблему.
На все на это он ответил мне, что он не идиот, потер все мои сообщения, анально огородил тред, и вкоммитил какой-то недофикс, который будет падать на краевых случаях.
Всем новоприбывшим, если вам кажется все это странным - я повторю, что не имею задачи подружиться с каждым долбоебом из upstream, у них там много интересных фантазий про разработку софта, но я-то при чем?
Если автор upstream вменяемый, я с удовольствием рассказываю и помогаю в решении возникших проблем, а если вот такой невменоз - ну так он обойдется и без моих патчей, а я у себя их подержу.
Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId,567237/
Пришел с багой, что у меня его программа с новой версией начала падать.
Один из коммитеров(не оунер проекта) подсказали мне, что дело может быть в размере стека.
И, да, действительно, автор кода не очень бережно обращался со стеком, и ему перестало хватать дефолтного стека в musl.
Я посоветовал ему, "как perf инженер perf инженеру", чтобы он выделил пертредный буфер нужного размера, и использовал его вместо стека.
Автор кода:
* сообщил мне, что я stupid fool(потерто)
* что он 7 лет оттрубил в id Software, и что он-то уж точно знает, как надо. Я, конечно, сообщил ему в ответ, что 20 лет занимаюсь перфом сложного многопоточного софта, что разозлило его еще больше.
* Параллельно он попытался втюхать мне, что выделение в куче time unbounded, а на стеке - нет. Я, конечно, не преминул рассказать ему про то, что стек выделен в virtual memory, и page fault в нем так же time unbounded. И что предложенный memory pool так же решает эту проблему.
На все на это он ответил мне, что он не идиот, потер все мои сообщения, анально огородил тред, и вкоммитил какой-то недофикс, который будет падать на краевых случаях.
Всем новоприбывшим, если вам кажется все это странным - я повторю, что не имею задачи подружиться с каждым долбоебом из upstream, у них там много интересных фантазий про разработку софта, но я-то при чем?
Если автор upstream вменяемый, я с удовольствием рассказываю и помогаю в решении возникших проблем, а если вот такой невменоз - ну так он обойдется и без моих патчей, а я у себя их подержу.
GitHub
1.20.0 segfaults on start · Issue #500 · Novum/vkQuake
1.13.1 works as expected Starting program: /ix/store/OGQOZKexFOqVYUB9-bin-quake-1-vk-20/bin/vkquake Command line: /ix/store/OGQOZKexFOqVYUB9-bin-quake-1-vk-20/bin/vkquake Found SDL version 2.0.22 D...
🔥24👍11😁10💩1
commit -m "better"
Как вы уже поняли, я умею себе находить друзей в интернете. #vkquake Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId…
Очень мило, у меня появился персональный фанклуб(кстати, далеко не первый, но про остальные как-нить в другой раз), пока там 1 какой-то странный чувак, который хочет предать меня публичному позору:
Я тут пару раз писал, что придерживаюсь очень правых взглядов, и любая модерация мне как кость в горле.
Модерировать я ничего не собираюсь, разве что, конкретную уголовщину, чувака забанил на сутки(уже вернул).
Так как я не публичная инфраструктурная площадка, забанить человека на сутки мне чем-то особо плохим не кажется.
Это ещё одно, что я хочу показать.В целом, пофиг, мало ли сумасшедших, вопрос исключительно в модерации.
Как ты поплывёшь и пойдёшь меня
тереть после своего позора
Я тут пару раз писал, что придерживаюсь очень правых взглядов, и любая модерация мне как кость в горле.
Модерировать я ничего не собираюсь, разве что, конкретную уголовщину, чувака забанил на сутки(уже вернул).
Так как я не публичная инфраструктурная площадка, забанить человека на сутки мне чем-то особо плохим не кажется.
👍14
У меня случилось продолжение историй про #googlesource и про #gitlab
Напомню, что речь идет про 2 следующих факта:
* системы контроля версий отдают нестабильные tgz с кодом, если речь идет про снепшот, который готовит сама система контроля версий, а не про файл, который зааплоадил, в виде релиза, мейнтейнер проекта.
* freedesktop пролюбили свою инсталляцию gitlab, и поднимали ее из праха.
Короче, я вчера сделал ix gc - это команда удалила все ненужное из системы, в том числе, все скачанные исходники.
И тут началось.
* из-за того, что freedesktop пролюбили кеш артефактов, и из-за проблемы нестабильности генерации tgz, у меня поехали хеши исходников, указанные в сборочных файлах
* пока я прописывал новые хеши, gitlab снова сломался, и начала вместо исходников присылать html с 502, который и закешировался вместо исходников. К такому меня не готовили, и я снова сделал ix gc
* После этого я нашел зеркала нужных мне исходников на github, и прописал их.
Лично меня бесят эти красноглазые пенсионеры, которые, в своей ненависти к MS(а как еще объяснить желание своей инфры в этом месте?) делают больно дистростроителям на пустом месте.
Не надо, не надо, не надо держать свою инфраструктуру там, где это возможно. Особенно если у вас один админ на 10 минут в неделю на этот проект.
github собаку съел на хранении исходников, у него девяток больше, чем букв в слове freedesktop.
Напомню, что речь идет про 2 следующих факта:
* системы контроля версий отдают нестабильные tgz с кодом, если речь идет про снепшот, который готовит сама система контроля версий, а не про файл, который зааплоадил, в виде релиза, мейнтейнер проекта.
* freedesktop пролюбили свою инсталляцию gitlab, и поднимали ее из праха.
Короче, я вчера сделал ix gc - это команда удалила все ненужное из системы, в том числе, все скачанные исходники.
И тут началось.
* из-за того, что freedesktop пролюбили кеш артефактов, и из-за проблемы нестабильности генерации tgz, у меня поехали хеши исходников, указанные в сборочных файлах
* пока я прописывал новые хеши, gitlab снова сломался, и начала вместо исходников присылать html с 502, который и закешировался вместо исходников. К такому меня не готовили, и я снова сделал ix gc
* После этого я нашел зеркала нужных мне исходников на github, и прописал их.
Лично меня бесят эти красноглазые пенсионеры, которые, в своей ненависти к MS(а как еще объяснить желание своей инфры в этом месте?) делают больно дистростроителям на пустом месте.
Не надо, не надо, не надо держать свою инфраструктуру там, где это возможно. Особенно если у вас один админ на 10 минут в неделю на этот проект.
github собаку съел на хранении исходников, у него девяток больше, чем букв в слове freedesktop.
😁13👍1👎1😱1
#gstreamer #plugins #gold
OSS, построенный на консалтинге - зло, так же как и OSS, основанный на продаже вендорам закрытых версий своего же OSS кода.
Пока за фичу кто-то не заплатит, хрен она появится в публичной репе, даже если будут желающие ее запилить просто так.
Вот, например, авторы gstreamer последние 15 лет всем рассказывают, как же динамически загружаемые плагины - это круто.
Но стоило появиться Хуавею, который покрутил пальцем у виска, сказал, что хочет все, как у белых людей, и дал денег, так gstreamer сразу переехал в монорепу, и запилил "почти" статическую сборку.
https://www.collabora.com/news-and-blog/news-and-events/generate-mininal-gstreamer-build-tailored-to-your-needs.html
Конечно, все это сделано максимально говенным способом, накрутили каких-то скриптов поверх meson https://github.com/GStreamer/gst-build/blob/master/scripts/generate_init_static_plugins.py, накостылили прокидывание настроек из основного meson файла в вспомогательные, и, самая мякотка - сказали, "а мы будем собирать все, что найдем, как обычно, а вы потом в отдельном файлике имплементируйте функцию, которая зарегистрирует все нужные вам плагины".
Понять по названию кодека, чо там за плагин ему нужен, я не знаю, как, поэтому у меня в epiphany до сих пор видосы не смотрятся, потому что это адовый итерационный процесс - пересобирать браузер, смотреть, чо ему дальше не хватает, и добавлять в эту фабрику.
Написал однажды, и напишу еще раз.
Самый лучший опенсорс - это опенсорс от больших компаний, который:
* решает побочную для этих компаний задачу, поэтому им нет смысла вот так вот мелко гадить, типа chromium, protobuf, tensorflow, llvm, catboost, etc
* который делается по нормальным корпоративным лекалам, с тестами и KPI
OSS, построенный на консалтинге - зло, так же как и OSS, основанный на продаже вендорам закрытых версий своего же OSS кода.
Пока за фичу кто-то не заплатит, хрен она появится в публичной репе, даже если будут желающие ее запилить просто так.
Вот, например, авторы gstreamer последние 15 лет всем рассказывают, как же динамически загружаемые плагины - это круто.
Но стоило появиться Хуавею, который покрутил пальцем у виска, сказал, что хочет все, как у белых людей, и дал денег, так gstreamer сразу переехал в монорепу, и запилил "почти" статическую сборку.
https://www.collabora.com/news-and-blog/news-and-events/generate-mininal-gstreamer-build-tailored-to-your-needs.html
Конечно, все это сделано максимально говенным способом, накрутили каких-то скриптов поверх meson https://github.com/GStreamer/gst-build/blob/master/scripts/generate_init_static_plugins.py, накостылили прокидывание настроек из основного meson файла в вспомогательные, и, самая мякотка - сказали, "а мы будем собирать все, что найдем, как обычно, а вы потом в отдельном файлике имплементируйте функцию, которая зарегистрирует все нужные вам плагины".
Понять по названию кодека, чо там за плагин ему нужен, я не знаю, как, поэтому у меня в epiphany до сих пор видосы не смотрятся, потому что это адовый итерационный процесс - пересобирать браузер, смотреть, чо ему дальше не хватает, и добавлять в эту фабрику.
Написал однажды, и напишу еще раз.
Самый лучший опенсорс - это опенсорс от больших компаний, который:
* решает побочную для этих компаний задачу, поэтому им нет смысла вот так вот мелко гадить, типа chromium, protobuf, tensorflow, llvm, catboost, etc
* который делается по нормальным корпоративным лекалам, с тестами и KPI
Collabora | Open Source Consulting
Generate a minimal GStreamer build, tailored to your needs
Thanks to a partnership with Huawei, you can now use gst-build to generate a minimal GStreamer build, tailored to a specific application, or set of applications. Here's how.
🔥7👍3👎1🤔1
commit -m "better"
Как вы уже поняли, я умею себе находить друзей в интернете. #vkquake Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId…
Вышел новый релиз yaQuake, с фиксом падения под musl, как написано в changelog: #vkquake
https://github.com/Novum/vkQuake/releases/tag/1.20.1
Видимо, коллегу в idSoftware магии про стек научили, а вот тестировать код - нет.
Завел issue - https://github.com/Novum/vkQuake/issues/508
https://github.com/Novum/vkQuake/releases/tag/1.20.1
========= Quake Initialized =========Оно, конечно, продолжает падать, всегда, а не как я ранее думал(в некоторых частных случаях).
execing quake.rc
execing default.cfg
execing config.cfg
couldn't exec autoexec.cfg
3 demo(s) in loop
Playing demo from demo1.dem.
the Necropolis
Using protocol 15
Segmentation fault
Видимо, коллегу в idSoftware магии про стек научили, а вот тестировать код - нет.
Завел issue - https://github.com/Novum/vkQuake/issues/508
GitHub
Release vkQuake 1.20.1 Binaries · Novum/vkQuake
Fix a bug that could cause random lockups with 1.20.0
Fix screenshot crash
Fix corruption if new vkquake.pak is missing or old one is still in place
Windows binaries require the Microsoft Visual C...
Fix screenshot crash
Fix corruption if new vkquake.pak is missing or old one is still in place
Windows binaries require the Microsoft Visual C...
😁17👏1
commit -m "better"
У меня случилось продолжение историй про #googlesource и про #gitlab Напомню, что речь идет про 2 следующих факта: * системы контроля версий отдают нестабильные tgz с кодом, если речь идет про снепшот, который готовит сама система контроля версий, а не про…
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 начало всех призывать с гитхаба съехать. #sfc
Говорят, что не будут принимать под свое крыло проекты, которые живут на githab, или не собираются с него мигрировать(что они делают - я не понимаю, и делают что-то вообще, кроме судов - неизвестно).
Они - левые упыри.
https://sfconservancy.org/GiveUpGitHub/
Вы мне можете сколько угодно рассказывать, что мелким шрифтом потом все более развернуто, но первая фраза БОЛДОМ из списка аргументов - "Copilot is a for-profit product".
Жадные MS денег заработали, а в SFC не занесли.
Обычная левацкая подмена понятий - они защищают не мою свободу, и не свободу оунеров проектов на github, они нападают на MS. Как обычно для леваков, их аргументация более эмоциональная, чем техническая, почитайте:
"GitHub differs from most of its peers in the FOSS project hosting industry, as GitHub does not even offer any self-hosting FOSS option. Their entire codebase is secret." - ну и чо? В git content addressable storage, там хеши поедут, если они что-нить сделают не так. А в остальном - что такого в проприетарности? Это, в конце-концов, сервис, а не программа.
"GitHub is wholly owned by Microsoft, a company whose executives have historically repeatedly attacked copyleft licensing" - этот аргумент, на мой взгляд, вообще леденящий душу пиздец. Смотреть надо на то, что происходит сейчас.
Ну и такое у меня соображение - SFC, когда чует запах денег, судится. Если не судится - значит, шансов нет.
Еще я не понял, что там с правом на цитирование - типа, совсем небольшой блок кода не считается derived work. Это разве не подходит под copilot?
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 начало всех призывать с гитхаба съехать. #sfc
Говорят, что не будут принимать под свое крыло проекты, которые живут на githab, или не собираются с него мигрировать(что они делают - я не понимаю, и делают что-то вообще, кроме судов - неизвестно).
Они - левые упыри.
https://sfconservancy.org/GiveUpGitHub/
Вы мне можете сколько угодно рассказывать, что мелким шрифтом потом все более развернуто, но первая фраза БОЛДОМ из списка аргументов - "Copilot is a for-profit product".
Жадные MS денег заработали, а в SFC не занесли.
Обычная левацкая подмена понятий - они защищают не мою свободу, и не свободу оунеров проектов на github, они нападают на MS. Как обычно для леваков, их аргументация более эмоциональная, чем техническая, почитайте:
"GitHub differs from most of its peers in the FOSS project hosting industry, as GitHub does not even offer any self-hosting FOSS option. Their entire codebase is secret." - ну и чо? В git content addressable storage, там хеши поедут, если они что-нить сделают не так. А в остальном - что такого в проприетарности? Это, в конце-концов, сервис, а не программа.
"GitHub is wholly owned by Microsoft, a company whose executives have historically repeatedly attacked copyleft licensing" - этот аргумент, на мой взгляд, вообще леденящий душу пиздец. Смотреть надо на то, что происходит сейчас.
Ну и такое у меня соображение - SFC, когда чует запах денег, судится. Если не судится - значит, шансов нет.
Еще я не понял, что там с правом на цитирование - типа, совсем небольшой блок кода не считается derived work. Это разве не подходит под copilot?
sfconservancy.org
Give Up GitHub - Software Freedom Conservancy
The Software Freedom Conservancy provides a non-profit home and services to Free, Libre and Open Source Software (FLOSS) projects.
🔥5👍2🤔2👎1
#xiaomi
https://www.ixbt.com/news/2022/07/01/oled-4k-dolby-vision-xiaomi.html
Кто-то ждет выставок от Apple, а я вот теперь жду Xiaomi. Через 2 дня они представят свои "прошки", и, если доставка будет работать, это будет мой следующий ноутбук.
Знаете, я из этого бложика вынес всю политику, но вот тут не удержусь.
Я родом из славного города Арзамас-16, родины советской атомной бомбы. Родители полжизни проработали на военку, деды вообще были известными в своих областях учеными.
Поэтому я довольно хорошо помню, как, начиная с некоторого возраста, на тусовках, куда я попадал с родителями, взрослые довольно регулярно обсуждали Китай, сотрудничество с ним, и так далее. "Конверсия" в оборонке, если вспомните такие процессы.
Лейтмотивом этих обсуждений было "как бы этот хитрющий Китай не спиздил все наши ценные секретные разработки". Общий консенсус был, что они далеко позади, и им нужны наши технологии.
Прошло 30 лет, у меня и у моих родителей большинство техники - из Китая. Xiaomi, Honor, Huawei, куча ноунейма, продаваемого известными брендами, etc.
Высокие технологии, скоростные поезда - это все не про Рогозина, который хвастается цацками 30-летней давности, а Китай.
Сетевое оборудование, теперь и легковые машины - это все теперь Китай.
Забавно, что все это произошло на глазах одного поколения, и горько от того, что старшему поколению все божья роса - они почему-то никак не могут увязать эти свои разговоры 30-летней давности и текущее состояние, но зато "Россия встает с колен".
https://www.ixbt.com/news/2022/07/01/oled-4k-dolby-vision-xiaomi.html
Кто-то ждет выставок от Apple, а я вот теперь жду Xiaomi. Через 2 дня они представят свои "прошки", и, если доставка будет работать, это будет мой следующий ноутбук.
Знаете, я из этого бложика вынес всю политику, но вот тут не удержусь.
Я родом из славного города Арзамас-16, родины советской атомной бомбы. Родители полжизни проработали на военку, деды вообще были известными в своих областях учеными.
Поэтому я довольно хорошо помню, как, начиная с некоторого возраста, на тусовках, куда я попадал с родителями, взрослые довольно регулярно обсуждали Китай, сотрудничество с ним, и так далее. "Конверсия" в оборонке, если вспомните такие процессы.
Лейтмотивом этих обсуждений было "как бы этот хитрющий Китай не спиздил все наши ценные секретные разработки". Общий консенсус был, что они далеко позади, и им нужны наши технологии.
Прошло 30 лет, у меня и у моих родителей большинство техники - из Китая. Xiaomi, Honor, Huawei, куча ноунейма, продаваемого известными брендами, etc.
Высокие технологии, скоростные поезда - это все не про Рогозина, который хвастается цацками 30-летней давности, а Китай.
Сетевое оборудование, теперь и легковые машины - это все теперь Китай.
Забавно, что все это произошло на глазах одного поколения, и горько от того, что старшему поколению все божья роса - они почему-то никак не могут увязать эти свои разговоры 30-летней давности и текущее состояние, но зато "Россия встает с колен".
iXBT.com
Тонкий металлический корпус, экран OLED 4K и поддержка Dolby Vision. Через три дня Xiaomi представит свой лучший ноутбук
4 июля Xiaomi представит не только смартфоны Xiaomi 12S, которые уже вызвали нешуточный ажиотаж в Китае, но и ноутбук Mi Notebook Pro 2022. Его особенностью станет экран.
😢11👍9🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
https://github.com/Novum/vkQuake/issues/508
https://github.com/Novum/vkQuake/commit/1af0e6ae56c09a14589a9990e9574bd195a3cd06
Автор #vkquake, судя по всему, родил нечто, что более-менее решает проблему переполнения стека.
Собственно, проблема прошлого "решения" была в том, что он брал за размер стека треда размер стека main, который сильно больше.
Почему я считаю, что это, все еще, не совсем годное решение?
Потому что:
* Он делит стек на 2 части - static, размером 128к, и dynamic- все остальное. static - это под заранее рассчитанные вызовы рекурсивных функций, dynamic - под выделение данных неизвестного заранее размера.
* Отсюда сразу вытекает баг - если, вдруг, static часть станет > 128к, то на маленьких картах все продолжит работать, а на больших - будет падать.
Ладно, на это пофиг, по крайней мере, не хуже, чем было до этого.
Самая мякотка вот в чем -
Поэтому вот тут - https://github.com/Novum/vkQuake/blob/master/Quake/mem.h#L48 мы всегда попадаем в "slow" path.
7 лет в idSoftware, my ass.
Я возражать не стал, я считаю, что это ненужная, premature, оптимизация. Пусть будет вызов аллокатора всегда, оно и надежнее.
UPD: воспользовался своим "правом первой ночи", сделал malloc() всегда - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/1/vk/ix.sh#L36.
https://github.com/Novum/vkQuake/commit/1af0e6ae56c09a14589a9990e9574bd195a3cd06
Автор #vkquake, судя по всему, родил нечто, что более-менее решает проблему переполнения стека.
Собственно, проблема прошлого "решения" была в том, что он брал за размер стека треда размер стека main, который сильно больше.
Почему я считаю, что это, все еще, не совсем годное решение?
Потому что:
* Он делит стек на 2 части - static, размером 128к, и dynamic- все остальное. static - это под заранее рассчитанные вызовы рекурсивных функций, dynamic - под выделение данных неизвестного заранее размера.
* Отсюда сразу вытекает баг - если, вдруг, static часть станет > 128к, то на маленьких картах все продолжит работать, а на больших - будет падать.
Ладно, на это пофиг, по крайней мере, не хуже, чем было до этого.
Самая мякотка вот в чем -
max_thread_stack_alloc_size = (size_t)CLAMP (0ll, (int64_t)stacksize - THREAD_STACK_RESERVATION, MAX_STACK_ALLOC_SIZE);Короче, у него размер static части 128k, и размер стека под musl - 128k, то есть, размер dynamic части - 0.
Поэтому вот тут - https://github.com/Novum/vkQuake/blob/master/Quake/mem.h#L48 мы всегда попадаем в "slow" path.
7 лет в idSoftware, my ass.
Я возражать не стал, я считаю, что это ненужная, premature, оптимизация. Пусть будет вызов аллокатора всегда, оно и надежнее.
UPD: воспользовался своим "правом первой ночи", сделал malloc() всегда - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/1/vk/ix.sh#L36.
😁13👍3
Будни #bootstrap
Собирал себе какую-то программулю, обнаружил в выхлопе cmake, что она не может найти libavif, хотя зависимость от нее я поставил.
Уже наученный горьким опытом, я обнаружил, что в libavif нет ${out}/lib/cmake.
(кстати, отвлекусь на другую тему - это, конечно, жесть, что разработчики cmake решили сделать свою систему package discovery. Весь unix пользуется pkg-config(*.pc файлы). И жесть в квадрате - нельзя просто попросить найти libXXX, ее надо попросить или через pkg-config, или через встроенный механизм cmake)
https://github.com/AOMediaCodec/libavif/blob/main/CMakeLists.txt#L528
cmake - это херовый интерпретатор языка, похожего на Basic + M4, и зачем-то люди пишут на нем свои сборочные скрипты. Слишком много дурацкой вариативности.
Я выставил в ON вторую переменную, которая нигде больше не используется - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/lib/avif/ix.sh#L11
А еще я теперь на такие штуки пишу тест, который выполняется прямо в момент сборки - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/lib/avif/ix.sh#L15
После этого шаманства все собралось, как надо.
Собирал себе какую-то программулю, обнаружил в выхлопе cmake, что она не может найти libavif, хотя зависимость от нее я поставил.
Уже наученный горьким опытом, я обнаружил, что в libavif нет ${out}/lib/cmake.
(кстати, отвлекусь на другую тему - это, конечно, жесть, что разработчики cmake решили сделать свою систему package discovery. Весь unix пользуется pkg-config(*.pc файлы). И жесть в квадрате - нельзя просто попросить найти libXXX, ее надо попросить или через pkg-config, или через встроенный механизм cmake)
https://github.com/AOMediaCodec/libavif/blob/main/CMakeLists.txt#L528
if(BUILD_SHARED_LIBS OR VCPKG_TARGET_TRIPLET)Охренеть, да? Ну любому же программисту очевидно, что discovery нам нужен только для .so, а для статических библиотек не нужен.
cmake - это херовый интерпретатор языка, похожего на Basic + M4, и зачем-то люди пишут на нем свои сборочные скрипты. Слишком много дурацкой вариативности.
Я выставил в ON вторую переменную, которая нигде больше не используется - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/lib/avif/ix.sh#L11
А еще я теперь на такие штуки пишу тест, который выполняется прямо в момент сборки - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/lib/avif/ix.sh#L15
После этого шаманства все собралось, как надо.
GitHub
libavif/CMakeLists.txt at main · AOMediaCodec/libavif
libavif - Library for encoding and decoding .avif files - AOMediaCodec/libavif
👍7
TIL об https://github.com/posva/catimg
IMHO самая удобная из известных мне программ для просмотра картинок прямо в терминале, не отходя от кассы:
* Не использует богомерзкие sixel
* Использует символы unicode для увеличения разрешения
* Не пытается открыть графическое окно поверх терминала
* Очень компактная. Не пытается реализовать очередную никому не нужную фабрику по загрузке картинок, использует convert из ImageMagick.
* Написана не на перле и баше, а вовсе даже на С.
IMHO самая удобная из известных мне программ для просмотра картинок прямо в терминале, не отходя от кассы:
* Не использует богомерзкие sixel
* Использует символы unicode для увеличения разрешения
* Не пытается открыть графическое окно поверх терминала
* Очень компактная. Не пытается реализовать очередную никому не нужную фабрику по загрузке картинок, использует convert из ImageMagick.
* Написана не на перле и баше, а вовсе даже на С.
GitHub
GitHub - posva/catimg: 🦦 Insanely fast image printing in your terminal
🦦 Insanely fast image printing in your terminal. Contribute to posva/catimg development by creating an account on GitHub.
🔥12👍4
https://gitlab.gnome.org/GNOME/gtk/-/issues/5004
https://www.phoronix.com/scan.php?page=news_item&px=GTK5-Might-Drop-X11
#gnome
Коллеги рассматривают возможность убрать поддержку X11 из GTK5.
Тикет находится в замороженном состоянии, потому что ссылка на него попала в новости. Поэтому прямо сейчас там ЖЫРА нет, но обязательно будет.
Как ни странно, я тут поддерживаю коллег. X11 никто не пилит, бекенд для него в gtk-gdk уже давно не первого класса.
Поэтому довольно логично в новом коде не поддерживать "загнивающую" технологию. Желающим гонять X11 завсегда остаются более старые версии софта, а если хотите продолжать быть луддитами - ну так, пожалуйста, позиция мейнтейнера Xorg, вроде, открыта.
Гномовцы, конечно, в своем стиле:
"If the "handful of environments" cover 90% of the user base, I would not talk about "massive narrowing" as much as a reallocation of the efforts of a volunteer-driven project."
А ничо, что главный разработчик GTK, Matthias Clasen, он делает примерно 40% коммитов в GTK, работает full time на Red Hat?
https://www.phoronix.com/scan.php?page=news_item&px=GTK5-Might-Drop-X11
#gnome
Коллеги рассматривают возможность убрать поддержку X11 из GTK5.
Тикет находится в замороженном состоянии, потому что ссылка на него попала в новости. Поэтому прямо сейчас там ЖЫРА нет, но обязательно будет.
Как ни странно, я тут поддерживаю коллег. X11 никто не пилит, бекенд для него в gtk-gdk уже давно не первого класса.
Поэтому довольно логично в новом коде не поддерживать "загнивающую" технологию. Желающим гонять X11 завсегда остаются более старые версии софта, а если хотите продолжать быть луддитами - ну так, пожалуйста, позиция мейнтейнера Xorg, вроде, открыта.
Гномовцы, конечно, в своем стиле:
"If the "handful of environments" cover 90% of the user base, I would not talk about "massive narrowing" as much as a reallocation of the efforts of a volunteer-driven project."
А ничо, что главный разработчик GTK, Matthias Clasen, он делает примерно 40% коммитов в GTK, работает full time на Red Hat?
GitLab
Consider dropping the X11 backend (#5004) · Issues · GNOME / gtk · GitLab
It is not getting any better, and Wayland is widely available.
👍2👎1
Будни #bootstrap
Я тут решил, что, раз уж у меня есть q1, q2, то к ним нужно добавить и q3.
Мой выбор пал на https://github.com/ec-/Quake3e - написано, что оно умеет в vulkan, а я, как вы знаете, строю vulkan first систему. Даже в качестве реализации OpenGL у меня используется Zink.
Сначала мне это показалось нерешаемой задачей - в коде было слишком много завязок на X11, патч получился бы очень большой, а я не люблю большие патчи. Большие патчи потом сложнее накладывать, то есть, мне, как maintainer, придется тратить сильно больше труда.
Но, приглядевшись, я понял, что весь нужный мне патч - это две регулярки на sed - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/3/e/ix.sh#L20
Одной я убираю "плохие" заголовки, второй - регистрацию каких-то функций из glx, которые далее не используются.
Я уже как-то писал свою идеологию патчинга - минимальные процедурные патчи, потому что их сильно проще мержить, и они потом не ломаются, потому что зависят от меньшего объема окружающего контекста.
Вот, хороший пример такого патча.
Если делать его по классике, там несколько сотен строк содержательного кода.
В третий раз в жизни "хачил" компьютерную игру. Причем как-то очень странно - они, зачем-то, оставили в коде проверку на "чистоту" используемых pak файлов, а в инете можно скачать рипнутые. https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/3/e/ix.sh#L25 Убрал ее тоже.
Бонус!
Пока разбирался, чо там и как в quak-остроении, обнаружил, что Lord Havoc(автор DarkPlaces), ВНЕЗАПНО, стал Lady Havoc, и вообще, так всегда и было. https://icculus.org/twilight/darkplaces/
Я тут решил, что, раз уж у меня есть q1, q2, то к ним нужно добавить и q3.
Мой выбор пал на https://github.com/ec-/Quake3e - написано, что оно умеет в vulkan, а я, как вы знаете, строю vulkan first систему. Даже в качестве реализации OpenGL у меня используется Zink.
Сначала мне это показалось нерешаемой задачей - в коде было слишком много завязок на X11, патч получился бы очень большой, а я не люблю большие патчи. Большие патчи потом сложнее накладывать, то есть, мне, как maintainer, придется тратить сильно больше труда.
Но, приглядевшись, я понял, что весь нужный мне патч - это две регулярки на sed - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/3/e/ix.sh#L20
Одной я убираю "плохие" заголовки, второй - регистрацию каких-то функций из glx, которые далее не используются.
Я уже как-то писал свою идеологию патчинга - минимальные процедурные патчи, потому что их сильно проще мержить, и они потом не ломаются, потому что зависят от меньшего объема окружающего контекста.
Вот, хороший пример такого патча.
Если делать его по классике, там несколько сотен строк содержательного кода.
В третий раз в жизни "хачил" компьютерную игру. Причем как-то очень странно - они, зачем-то, оставили в коде проверку на "чистоту" используемых pak файлов, а в инете можно скачать рипнутые. https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/3/e/ix.sh#L25 Убрал ее тоже.
Бонус!
Пока разбирался, чо там и как в quak-остроении, обнаружил, что Lord Havoc(автор DarkPlaces), ВНЕЗАПНО, стал Lady Havoc, и вообще, так всегда и было. https://icculus.org/twilight/darkplaces/
GitHub
GitHub - ec-/Quake3e: Improved Quake III Arena engine
Improved Quake III Arena engine. Contribute to ec-/Quake3e development by creating an account on GitHub.
🔥7👍2
commit -m "better"
https://github.com/Novum/vkQuake/issues/508 https://github.com/Novum/vkQuake/commit/1af0e6ae56c09a14589a9990e9574bd195a3cd06 Автор #vkquake, судя по всему, родил нечто, что более-менее решает проблему переполнения стека. Собственно, проблема прошлого "решения"…
#vkquake
Извините, в последний раз, больше не буду, но разъебывать - так разъебывать.
Мне стало интересно, чем занимается программа от коллеги из idSoftware.
Я снял perf record, посмотрел perf report, и увидел:
* В аллокаторе, даже после моих патчей, она проводит 0.2% времени.
* Зато 25% времени программа проводит в https://github.com/Novum/vkQuake/blob/master/Quake/tasks.c#L129 Знающие люди сразу тут увидят наивную попытку реализовать spin wait semaphore, функция называется очень даже правильно.
Ладно, не будем придираться, обычный такой spin wait. 3000 итераций sem_trylock - ну такое, кажется, многовато.
В любом случае, опытные собаководы заявляют, что spin lock в user space - ну такое. https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723 Я на эту заметку уже кидал ссылку, но, все равно, почитайте, красивое.
Если позаменять вызов этой функции на SDL_SemWait, то программа начинает жрать существенно меньше CPU, процентов на 10 - 15, ухудшений в latency я не заметил.
Поэтому, конечно, свою версию я запатчил. https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/1/vk/ix.sh#L14
UPD: по просьбам трудящихся - https://github.com/Novum/vkQuake/pull/514
Извините, в последний раз, больше не буду, но разъебывать - так разъебывать.
Мне стало интересно, чем занимается программа от коллеги из idSoftware.
Я снял perf record, посмотрел perf report, и увидел:
* В аллокаторе, даже после моих патчей, она проводит 0.2% времени.
* Зато 25% времени программа проводит в https://github.com/Novum/vkQuake/blob/master/Quake/tasks.c#L129 Знающие люди сразу тут увидят наивную попытку реализовать spin wait semaphore, функция называется очень даже правильно.
Ладно, не будем придираться, обычный такой spin wait. 3000 итераций sem_trylock - ну такое, кажется, многовато.
В любом случае, опытные собаководы заявляют, что spin lock в user space - ну такое. https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723 Я на эту заметку уже кидал ссылку, но, все равно, почитайте, красивое.
Если позаменять вызов этой функции на SDL_SemWait, то программа начинает жрать существенно меньше CPU, процентов на 10 - 15, ухудшений в latency я не заметил.
Поэтому, конечно, свою версию я запатчил. https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/quake/1/vk/ix.sh#L14
UPD: по просьбам трудящихся - https://github.com/Novum/vkQuake/pull/514
GitHub
vkQuake/Quake/tasks.c at master · Novum/vkQuake
Vulkan Quake port based on QuakeSpasm. Contribute to Novum/vkQuake development by creating an account on GitHub.
🔥17👍8❤1
commit -m "better"
#vkquake Извините, в последний раз, больше не буду, но разъебывать - так разъебывать. Мне стало интересно, чем занимается программа от коллеги из idSoftware. Я снял perf record, посмотрел perf report, и увидел: * В аллокаторе, даже после моих патчей,…
This media is not supported in your browser
VIEW IN TELEGRAM
#vkquake
Сперва коллега, конечно, поступил как на КДПВ - сообщил, что под винду так работать не будет(доля правды в его словах вполне есть), и закрыл тикет. https://github.com/Novum/vkQuake/pull/514
Но потом, видимо, выдохнул, и решил, что перф на дороге не валяется. Сошлись мы на том, что он сократил количество попыток trywait в 30(!!) раз. https://github.com/Novum/vkQuake/commit/5cf860d1be6d12a3f269ea8355818ab17e586390
(Я, на самом деле, не понимаю, зачем ему там динамическая выполнялка графа - все, что он разложил в этот граф, занимает 10% потребляемого CPU. Может, ему просто нравится писать динамические graph execution engine, как вот мне, или Ленарту, имеет право)
Ладно, и так сойдет.
Сперва коллега, конечно, поступил как на КДПВ - сообщил, что под винду так работать не будет(доля правды в его словах вполне есть), и закрыл тикет. https://github.com/Novum/vkQuake/pull/514
Но потом, видимо, выдохнул, и решил, что перф на дороге не валяется. Сошлись мы на том, что он сократил количество попыток trywait в 30(!!) раз. https://github.com/Novum/vkQuake/commit/5cf860d1be6d12a3f269ea8355818ab17e586390
(Я, на самом деле, не понимаю, зачем ему там динамическая выполнялка графа - все, что он разложил в этот граф, занимает 10% потребляемого CPU. Может, ему просто нравится писать динамические graph execution engine, как вот мне, или Ленарту, имеет право)
Ладно, и так сойдет.
❤11👍5😁4
https://www.phoronix.com/scan.php?page=news_item&px=KernelMemorySanitizer-v4 #asan
Уже писал, и напишу еще раз.
Самый большой, практически, тектонический, сдвиг в разработке софта за последние 20 лет - это внедрение address sanitizer от Google, Кости Серебряного, и его команды.
До его внедрения в pipeline тестирования мне было страшно катать прод, после - уже совсем нет.
Экспертное мнение - Rust даже рядом не стоит по масштабу улучшений. Ну, то есть, если бы не было санитайзеров, Rust был бы очень крутой штукой, а так - ну, на 20% еще меньше ошибок. Это не на порядок даже.
Собственно, отрадно видеть, как Google, вопреки вольнице кернел хакеров(почему вопреки? А почему санитайзеры гоняет google, и почему они не встроены в CI?), постепенно превращает ядро Linux из месива, в котором ты боишься обновить минорную версию ядра и/или компилятора, в нечто, что хотя бы не упадет на старте.
Уже писал, и напишу еще раз.
Самый большой, практически, тектонический, сдвиг в разработке софта за последние 20 лет - это внедрение address sanitizer от Google, Кости Серебряного, и его команды.
До его внедрения в pipeline тестирования мне было страшно катать прод, после - уже совсем нет.
Экспертное мнение - Rust даже рядом не стоит по масштабу улучшений. Ну, то есть, если бы не было санитайзеров, Rust был бы очень крутой штукой, а так - ну, на 20% еще меньше ошибок. Это не на порядок даже.
Собственно, отрадно видеть, как Google, вопреки вольнице кернел хакеров(почему вопреки? А почему санитайзеры гоняет google, и почему они не встроены в CI?), постепенно превращает ядро Linux из месива, в котором ты боишься обновить минорную версию ядра и/или компилятора, в нечто, что хотя бы не упадет на старте.
Phoronix
KernelMemorySanitizer v4 Published While Already Having Found 300+ Kernel Bugs
Being worked on the past several years by Google engineers and others has been the KernelMemorySanitizer (KMSAN) that has already found more than 300 kernel bugs even prior to being mainlined
👍14🔥9🤬2❤1
Будни #bootstrap
Я слежу за списком обновлений софта, чтобы периодически ловить какие-то общеполезные вещи, которыми не собираюсь пользоваться сам, но которые, скорее всего, нужны.
Недавеча увидел в этом списке exim. Это самый популярный MTA, и я подумал, что "нужно"!
Вчитался в то, как люди его собирают, и, если честно, в первый раз был близок к "это говно не будет у меня в репах никогда, просто потому что".
Авторы предлагают пользователю взять один из шаблонов Makefile, отредактировать его вручную, положить в правильное место, возможно, потрогать еще несколько файлов рядом, и тогда, возможно, оно соберется.
Вот этот сборочный файл из arch - https://github.com/archlinux/svntogit-community/blob/packages/exim/trunk/exim.Makefile
Я попрошу отметить, что это файл из репозитория Arch.
В комментариях дали ссылку на gentoo - https://gitweb.gentoo.org/repo/gentoo.git/tree/mail-mta/exim/exim-4.96-r1.ebuild#n170
КМК, это какое-то лютое пренебрежение к пользователю.
Или я чего-то недопонял, и есть путь проще?
Я слежу за списком обновлений софта, чтобы периодически ловить какие-то общеполезные вещи, которыми не собираюсь пользоваться сам, но которые, скорее всего, нужны.
Недавеча увидел в этом списке exim. Это самый популярный MTA, и я подумал, что "нужно"!
Вчитался в то, как люди его собирают, и, если честно, в первый раз был близок к "это говно не будет у меня в репах никогда, просто потому что".
Авторы предлагают пользователю взять один из шаблонов Makefile, отредактировать его вручную, положить в правильное место, возможно, потрогать еще несколько файлов рядом, и тогда, возможно, оно соберется.
Вот этот сборочный файл из arch - https://github.com/archlinux/svntogit-community/blob/packages/exim/trunk/exim.Makefile
Я попрошу отметить, что это файл из репозитория Arch.
В комментариях дали ссылку на gentoo - https://gitweb.gentoo.org/repo/gentoo.git/tree/mail-mta/exim/exim-4.96-r1.ebuild#n170
КМК, это какое-то лютое пренебрежение к пользователю.
Или я чего-то недопонял, и есть путь проще?
GitHub
svntogit-community/trunk/exim.Makefile at packages/exim · archlinux/svntogit-community
Automatic import of svn 'community' repo (read-only mirror) - archlinux/svntogit-community
👍3
https://habr.com/ru/amp/post/675036/
тут вот пишут, что Blizzard потребовала удалить с гитхаба альтернативный движок для третьего Warcraft.
С одной стороны, конечно, хочется что-нить сказать про жадных капиталистов, но у меня не сходится факт чекинг:
* На lobsters/HN про это ничего нет. Я прошерстил пару раз, не нашел ничего.
* поиск в интернетах выдает, в основном, русскоязычные сайты, из иностранных - какая-то дичь, которую я раньше никогда не видел.
* Сам движок всратый, ничего не умеет.
* Коллега заявил об этом прямо день в день юбилея игры, зачем такой PR Blizzard'у?
Фейк? Не фейк?
тут вот пишут, что Blizzard потребовала удалить с гитхаба альтернативный движок для третьего Warcraft.
С одной стороны, конечно, хочется что-нить сказать про жадных капиталистов, но у меня не сходится факт чекинг:
* На lobsters/HN про это ничего нет. Я прошерстил пару раз, не нашел ничего.
* поиск в интернетах выдает, в основном, русскоязычные сайты, из иностранных - какая-то дичь, которую я раньше никогда не видел.
* Сам движок всратый, ничего не умеет.
* Коллега заявил об этом прямо день в день юбилея игры, зачем такой PR Blizzard'у?
Фейк? Не фейк?
Хабр
Blizzard потребовала у разработчика удалить созданный им альтернативный движок для Warcraft III
Произошёл очередной скандал, связанный с компанией Blizzard. На это раз он не касается домогательств и дискриминации сотрудников. Игровой разработчик потребовал от моддера с ником Retera удалить...
👍2
https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft
Вчера стало известно, что Леннарт ушел из RH. Ну ушел и ушел, я не стал про это писать.
Но, знаете ли, удержаться от того, чтобы сообщить, что ушел он в Microsoft, я не могу.
Ну, что же, пожелаем им всем удачи. Звука всем виндоводам хорошего, и скорости загрузки!
Вчера стало известно, что Леннарт ушел из RH. Ну ушел и ушел, я не стал про это писать.
Но, знаете ли, удержаться от того, чтобы сообщить, что ушел он в Microsoft, я не могу.
Ну, что же, пожелаем им всем удачи. Звука всем виндоводам хорошего, и скорости загрузки!
Phoronix
Systemd Creator Lands At Microsoft
Yesterday's surprise was that Lennart Poettering quietly had left Red Hat following a decade and a half there leading PulseAudio among other projects and ultimately going on to start systemd that has fundamentally reshaped modern Linux distributions
😁17🔥2
Утв. 1: время сборки и обновления source-based distro определяется временем сборки используемого браузера. Все остальное - o-малое.
Это, в целом, практический факт, и он довольно понятен:
* Браузер собирается очень долго
* Браузер зависит от кучи всего, поэтому пересобирается на любой чих
Ладно, я чуть-чуть утрирую, на самом деле, в этом списке 2 - 3 самых тяжелых конечных приложения. Чаще всего это браузер, и еще что-нибудь, в моем случае, telegram.
Поэтому моя задача - делать граф как можно площе, и выпиливать все несущественные зависимости от этих 2 - 3 конечных приложений.
Не для того, чтобы они собирались быстрее, а для того, чтобы они собирались сильно реже.
Вот, расскажу про пример такой паразитной цепочки.
Обновлял nettle, это такая криптобиблиотека, и у меня пересобрался телеграм. Казалось бы, где телега, а где nettle,
1) gnutls -> nettle.
2) microhttp(гнутая библиотека для разработки http client-server) -> gnutls
3) elfutils(tool) -> microhttp
4) x264/vpx(кодеки) -> elfutils(tool)
5) -> ffmpeg
6) -> telegram
Все зависимости довольно понятны, и логичны, кроме 3)
В составе elfutils идет debuginfod, которому нужно уметь ходить по http, а всем остальным, нужным мне в сборке, тулзам, из elfutils, http не нужен.
Поэтому я теперь собираю elfutils 2 раза - 1 раз целиком, для пользователя, и второй, в урезанном виде, как сборочный инструмент. Казалось бы, лишняя нагрузка на CPU, но нет, от браузера оторвалось большое поддерево, и, наоборот, ресурсов мы тратим сильно меньше.
Кстати, браузер тоже зависел от gnutls, но эту зависимость я оторвал немного раньше, и заменил ее на openssl.
Во всем этом мне помогает мой подход с тем, что один и тот же код можно собирать для разных использований много раз. Посмотрите на ту же цепочку в любом дистрибутиве, который сразу пытается все собрать, "как надо", и ужаснитесь.
Это, в целом, практический факт, и он довольно понятен:
* Браузер собирается очень долго
* Браузер зависит от кучи всего, поэтому пересобирается на любой чих
Ладно, я чуть-чуть утрирую, на самом деле, в этом списке 2 - 3 самых тяжелых конечных приложения. Чаще всего это браузер, и еще что-нибудь, в моем случае, telegram.
Поэтому моя задача - делать граф как можно площе, и выпиливать все несущественные зависимости от этих 2 - 3 конечных приложений.
Не для того, чтобы они собирались быстрее, а для того, чтобы они собирались сильно реже.
Вот, расскажу про пример такой паразитной цепочки.
Обновлял nettle, это такая криптобиблиотека, и у меня пересобрался телеграм. Казалось бы, где телега, а где nettle,
1) gnutls -> nettle.
2) microhttp(гнутая библиотека для разработки http client-server) -> gnutls
3) elfutils(tool) -> microhttp
4) x264/vpx(кодеки) -> elfutils(tool)
5) -> ffmpeg
6) -> telegram
Все зависимости довольно понятны, и логичны, кроме 3)
В составе elfutils идет debuginfod, которому нужно уметь ходить по http, а всем остальным, нужным мне в сборке, тулзам, из elfutils, http не нужен.
Поэтому я теперь собираю elfutils 2 раза - 1 раз целиком, для пользователя, и второй, в урезанном виде, как сборочный инструмент. Казалось бы, лишняя нагрузка на CPU, но нет, от браузера оторвалось большое поддерево, и, наоборот, ресурсов мы тратим сильно меньше.
Кстати, браузер тоже зависел от gnutls, но эту зависимость я оторвал немного раньше, и заменил ее на openssl.
Во всем этом мне помогает мой подход с тем, что один и тот же код можно собирать для разных использований много раз. Посмотрите на ту же цепочку в любом дистрибутиве, который сразу пытается все собрать, "как надо", и ужаснитесь.
👍16❤🔥1🤯1