commit -m "better"
3.24K subscribers
1.03K photos
149 videos
3 files
2.39K links
just random thoughts
Download Telegram
В процессе бутстрапа есть момент, когда нужно с помощью системного gcc собрать промежуточный clang, котрый уже соберет настоящий clang, которым можно собирать все остальное.

Знаете, если бы этого просто не могло бы быть, то я бы подумал, что авторы clang троллируют gcc, потому что для каждой версии clang находится такой gcc, который ее не собирает.

Причем, знаете, по какой-нибудь пустяковой ошибке, по которой даже сложно понять, кто тут не прав.

https://github.com/pg83/ix/blob/main/pkgs/bin/clang/14/gcc/ix.sh#L9 - вот, например, список исправлений, который нужен для clang-14, для gcc 7-12.

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

Лечится указанием auto вместо конкретного типа.

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

Как будто кто-то аккуратно тюкнул, чтобы потроллить коллег знанием стандарта.

Вряд ли это так, но с каждым новым clang у меня такое мнение растет и крепнет.
😁20👍1🤯1
commit -m "better"
В процессе бутстрапа есть момент, когда нужно с помощью системного gcc собрать промежуточный clang, котрый уже соберет настоящий clang, которым можно собирать все остальное. Знаете, если бы этого просто не могло бы быть, то я бы подумал, что авторы clang…
Собственно, мой вчерашний пост был, в том числе, про то, что я теперь умею инсталлироваться с любого "обыкновенного" дистрибутива, в котором есть хотя бы gcc >= 7, ну и python >= 3.9

Кстати, факт про версию питона был для меня довольно неожиданным, я, наверное, хочу поддержать и более ранние версии, чтобы уметь ставиться (хотя бы) с ubuntu 20. В ней, как ни странно, 3.8.

Вот это вот все мелочи, но каждой из них нужно уделить внимание, потому что в них лежит тонкая граница между "что это за говно, оно у меня даже не запустилось" и "какая классная вещь, дам ей шанс!"ю
👍19😁1
TIL что case/esac if/fi в shell - это не оригинальное изобретение авторов shell, а пришло к нам из Algol 68.
🤔7🤯7👍6
Все же любят фоточки?

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

Вообще, в этой фотографии много истории и смысла.

Например, сервер я купил 3 года назад, и, по тем временам, это был очень крутой сервер(64 гига памяти, какой-то самый крутой не серверный Intel на тот момент, 36 весьма быстрых ядер, 3 nvme накопителя).

Купил я этот сервер по весьма странной причине - я хотел на нем гонять сборку и отдавать с него кеш для моей второй инкарнации дистрибутива Linux(напомню, что #stal/ix - третья).

Я уже пару раз делал подход к снаряду, сегодня расскажу еще пару деталей про второй заход.

Я тогда очень, очень торопился - мне казалось, что я уже точно знаю, что и как хочу сделать, и мне хотелось как можно скорее:

* запустить это все на голом железе

* отдать наружу

Поэтому я срезал по дороге какое-то дичайшее количество острых углов:

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

* я "сэкономил" много усилий на сборке сборочных систем, типа cmake, meson, и потом у меня их производные адово глючили.

Поэтому, когда я добрался до голого железа, то посмотрел на все эти пиздострадания, сказал "свят, свят", и выкинул это все к херам.

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

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

Клавиатура, кстати, классная - клацает, как в детстве, и с подсветкой!

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

Ну и как еще одну тестовую площадку для #stal/ix, которая, кстати, встала на новую железку довольно буднично и просто(если не считать сборку ведра под новую конфигурацию).
👍15
Forwarded from Anton Samokhvalov
😢2
Уважаемые, я таки запилил https://github.com/pg83/ix/blob/main/docs/INSTALL.md !

Оно пока неполно, там есть известные мне баги, но я был бы рад, если бы это кто-то попробовал.

Пока инструкция не предполагает графического login, но в конце этого процесса у вас должен быть работающий setup, который можно хачить и дополнять далее.
👍16🏆8🔥1👏1
Forwarded from Дидлошная
Прибежали в избу дети,
Второпях зовут отца:
Тятя, тятя, нейросети
Оживили мертвеца.
👍5🔥4🤔1
А у вас бывают какие-нибудь идефиксы?

У меня, если говорить про #bootstrap, вполне бывают, сегодня расскажу про такой.

Я, например, считаю, что в этом процессе - "ни шагу назад"!

Что это значит на практике?

Ну, например, ставил я себе на свой сервак #stal/ix, чтобы отладить и описать процедуру установки.

Когда я собирал ядро, то забыл добавить в него firmware от wifi модуля. Перезагрузился в это ядро, уже в #stal/ix, и получил:

* Работающую систему, но без доступа в сеть.

* Для окончания этой процедуры нужно было еще несколько раз запустить пакетный менеджер, и доустановить нужные пакеты.

Казалось бы, рестартани назад в fedora, доустанови пакеты, и перезагрузись в ix.

Но нет, "ни шагу назад" же!

Я пораскинул мозгами, и увидел, что в сервере у меня есть еще и сетевая карта, не требующая firmware, и потому просто заработавшая.

Ну, притащил какой-то левый wifi router, соединил его патчкордом с сервером, сеть появилась.

Успех?

Какое там!

Оказалось, что, для запуска пакетного менеджера мне не хватает:

* модуля jinja2 для python

* и, что самое ужасное, python, который я добавил в инсталлятор, был собран без поддержки openssl, а, значит, не мог выполнить команду python3 -m pip install.

Это все легко бы чинилось работающим пакетным менеджером, но его я как раз и заводил.

Казалось бы, перезагрузись в fedora, и далее по тексту.

Но нет, "ни шагу назад" же!

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

Что я тут могу сказать?

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

* После этого приключения я таки завендорил в IX jinja2. https://github.com/pg83/ix/tree/main/deps Очень не хотелось, но так прямо сильно удобнее. Ну и довольно сильно расширил инструментарий, доступный процессу установки - git, более хороший python, и прочие инструменты для отладки, форматирования дисков, и так далее. https://github.com/pg83/ix/blob/main/pkgs/set/install/ix.sh

Да, это увеличивает время, необходимое для bootstrap realm'а c этими инструментами, но и жизнь облегчает сильно.

Резать его буду потом, когда процедура устоится.
👍18
#busybox, #GNU

Не очень важная тема, но, знаете, backlog копится, иногда надо разбирать.

10 лет назад я считал, что это какая-то интересная игрушка, в стиле "засунь дистрибутив Linux на floppy", и что там невозможно "жить" всерьез.

3 года назад я сделал его переоценку, и решил, что busybox вполне себе годится для #realm system, для загрузки системы, ну, и... всё.

Сейчас я уже где-то полгода использую busybox, как основную реализацию posix утилит, да и, в общем-то, как замену grep/sed/find/etc, coreutils, util-linux(!!, набор linux-специфичных системных утилит), и так далее. Даже awk я использую из busybox, он там куцый, но чтобы выбрать строку по значению поля - вполне подходит.

Я даже какое-то время использовал shell из busybox(ash), но, в конце-концов, вернулся на bash(причем 3-ий, в районе четвертого они что-то сильно для меня поломали). По довольно странной причине - у ash плохо работает интеграция с mc. Если бы не это, так бы и использовал.

Ну, ладно, less у них кривой, но кому нужен less в наше время?

Короче, я так скажу - в настоящее время я не вижу смысла строить Linux систему на основе утилит от GNU(косое, кривое, совместимое только с собой, да и то, не всегда, нечто), потому что а зачем? Вам, правда, нужна одна из 1000 этих опций, длиной от 20 символов, которые невозможно запомнить?

Да, тут еще, конечно, важно за это поблагодарить сообщество alpine linux, которое, насколько я понимаю, следит, чтобы всякие говноскрипты были с busybox совместимы. Может, еще openwrt, но это не точно.
🤔7👍4👎2
#glibc #ABI

Когда они сломали memcpy во flash player - я промолчал, потому что не смотрел ролики в youtube.

Когда они сломали setjmp/longjump для s390, я промолчал, потому что не программировал для big iron.

Когда они сломали ABI DT_HASH в EAC, я промолчал, потому что не играл в игры в Steam Deck.

Но когда они пришли за мной - не осталось никого, чтобы говорить за меня! оказалось, что они ничего не могут сломать!
😁24
commit -m "better"
Good news, everyone! Я прочел https://www.phoronix.com/scan.php?page=article&item=zink-sub-alloc&num=2, установил себе #Mesa посвежее, и у меня заработала связка Sway + #zink + Vulkan! Вообще, имею вам сказать, что аппаратные драйвера OpenGL, скорее всего…
Я, знаете ли, тот еще мастер предсказывать уже случившиеся события, но, кажется, в случае #zink попал в точку.

https://www.phoronix.com/news/Zink-2022-Refactor-Faster

Вот, пишут, что, на каких-то нагрузках, zink уже быстрее, чем родной opengl от mesa.

Это, конечно, очень хорошая тема, коллеги смогут:

* Выкинуть с кремния бюджет на opengl state tracker, и оставить один там Vulkan.

* Перестать дублировать кучу кода в #mesa, а, значит, теми же силами бежать быстрее.
🔥21
Так, раз уж сегодня так много интересных ссылок, то у меня продолжение ссылочной ленты.

https://www.opennet.ru/opennews/art.shtml?num=57662

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

Нравится мне эта #sjw-шная логика - "нам не нравится, что написано в mit/bsd/gpl лицензиях, поэтому мы просто не дадим вам делать то, что нам не нравится, хотя лицензия на код явно это разрешает".
2
commit -m "better"
Уважаемые, я таки запилил https://github.com/pg83/ix/blob/main/docs/INSTALL.md ! Оно пока неполно, там есть известные мне баги, но я был бы рад, если бы это кто-то попробовал. Пока инструкция не предполагает графического login, но в конце этого процесса…
https://github.com/pg83/ix/blob/main/docs/INSTALL.md

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

Нет причин не попробовать!

(мне кажется, я столько документации за всю жизнь не написал)

Кстати, был бы благодарен за стрипнутый конфиг линуксового ядра, без модулей, который бы легко и быстро загружался в qemu/virtualbox.
🔥5
http://new.ya.ru
https://yandex.ru/company/press_releases/2022/2022-08-23

Я пришел в Я, когда Я себя идентифицировал, в основном, как "поисковая компания".

Поэтому главной страницей Я я почти никогда не пользовался, потому что зачем мне этот банер рядом с поисковой строкой?

В разговорах с Сегаловичем я пару раз спрашивал-предлагал, а не удалить ли нам этот банер нахер, и вообще, не сделать ли ya.ru главной страницей? Лично для меня это всегда был один из selling point google, что меня ничего не отвлекает от ввода запроса.

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

А я как пользовался ya.ru, так и продолжал им пользоваться. Поэтому, как пользователю, мне нравится, что новая главная Я будет теперь выглядеть именно так. Но, если задуматься, то 80-90% моего взаимодействия с поисковой системой идет через строку ввода URL в браузере, поэтому, это, наверное, уже совсем неважно.
👍30💩2
Про прекрасный мир среднеотдаленного будущего.

Я так, очень тезисно накидаю.

Интерес для борьбы представляют из себя области, чувственно и интеллектуально интересные человеку.

Вот, например, поиск по web, или поиск по товарам, или доставку, или такси, можно "доделать до конца" - сделать так, чтобы они работали, и не доставляли дискомфорта человеку.

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

Человеки могут потребить фиксированный объем хлеба и зрелищ, во всех их разновидностях.

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

Поэтому, конечно, пора уже учиться печь вкусный хлеб, так, как никто не печет, ну и доставлять порно прямо в голову человеку.
👍9🐳3👎1🤔1
https://lwn.net/Articles/905663 #yeswecan #provider

Заметка про одну из моих любимых тем, про инфраструктурные площадки.

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

Насколько я понял, суд запретил деятельность этой компании, но сообщество не понимает, правомерно ли github удалил код, или нет.

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

https://github.com/tornado-repositories - вот новое место для этого кода, ждем, удалит это github, или нет.

Напомню, что я считаю, что инфраструктурная площадка, конечно, не может стереть этот код, без решения суда.
👍8
https://discourse.llvm.org/t/rfc-lldb-telemetry-metrics/64588

Предложение по добавлению телеметрии в LLDB.

TL;DR - Google(а кто бы сомневался) хочет оптимизировать разработку. Держать телеметрию в виде патчей, думаю, неудобно.

G-word, конечно, в тексте не упомянут, сказано про некую "company that ships LLDB in an internal toolchain could send usage to an internal server for usage aggregation, or a distro could send logs to somewhere in..."

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

Who cares.

Лично мне кажется, что внутрикорпоративная телеметрия - норм.

ЖЫРа пока нет, я ожидал большего.
👍5🤬2🤔1