commit -m "better"
3.16K subscribers
1.04K photos
149 videos
3 files
2.41K links
just random thoughts
Download Telegram
Forwarded from Блог*
#prog #game #article

В 2010 году Sam Hughes (программист, фантаст и просто хороший человек автор SCP-055) представил миру HATETRIS — тетрис, созданный таким образом, чтобы выдавать наиболее неудобные фигуры для продолжения. В частности, здесь нет превью следующей фигуры — она выбирается только после того, как игрок сделал свой ход. Надо отметить, что алгоритм для выбора фигуры абсолютно детерминированный, а потому возможно записывать реплеи в виде последовательности совершённых ходов.

Сам автор не шибко преуспел в том, чтобы обыграть собственное творение — на момент первой публикации он установил рекорд в 5 убранных строк. Первые рекорды были установлены людьми и последовательно были 11, 17, 20, 22, 28 и 30. Последний рекорд был побит лишь спустя 7 (!) лет, на 1 больше. А вот дальше пошло-поехало — после подключения программных методов поиска решения потолок рекордов сильно вырос. Человек под ником knewjade в одиночку на протяжении пары месяцев выдал новые рекорды в 32, 34, 41, 45 и 66 убранных линий. Автору даже пришлось в какой-то момент заблаговременно модифицировать HATETRIS так, чтобы он предотвращал зацикливание позиции (ибо в противном случае было бы тривиально набирать сколь угодно много очков).

К делу подключились новые люди. В посте Getting the World Record in HATETRIS они рассказали, как они добились прорыва, преодолев в итоге (с большим отрывом) планку в 100 очков — причём упомянув тупики и ошибки, допущенные по пути. А в выпущенном годом позже Losing the World Record in HATETRIS (кстати, не так уж и давно, всего месяц назад) они рассказали, как объединённые идеи нескольких вовлечённых людей помогли в итоге поднять рекорд до аж 302 очков и потом ещё выше — с, по видимому, потенциалом добиться произвольно большого количества очков. Всё это, кстати, без использования каких-то безумно дорогих вычислительных мощностей.

Оба поста достаточно объёмны, насыщены идеями и местами низкоуровневыми деталями (внезапно пригодились битовые маски), так что настоятельно рекомендую к прочтению.

(а ещё авторы постов выше написали свои солверы на Rust)
👍238🆒3
r/ретранслятор
Глава Nvidia Дженсен Хуанг вновь заявил, что сантехники, электрики, строители и другие квалифицированные рабочие уже в ближайшее время станут главными и самыми высокооплачиваемыми специалистами на рынке труда, тогда как множество других профессий будет неумолимо…
Чуваки, вы понимаете, что этот чувак 25 лет делал видюхи (20 из них не самые лучшие), потом ему подфартило в AI (он лично для этого ничего не сделал), и теперь он нам гоняет такую хуету? Шлите его в хуй, как и прочий скам, который вам рассказывает, как надо жить, вот и все.
👍43🐳17💯17😁123👎3🆒2😢1
https://x.com/filpizlo/status/1970665207086350783

TL;DR - чувак запилил memory safe диалект C/C++ (https://github.com/pizlonator/fil-c), а теперь собрал с ним простенький дистрибутив Linux - Pizlix. У меня есть ощущение, что про fil-c я уже писал, но, почему-то, не грепается. https://xn--r1a.website/itpgchannel/2422

Rust теперь, очевидно, не нужен!

#filc
14😁10🔥4🤡4💯2🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
На китайской выставке показали передовой геймерский сетап

Будущее наступило, старик
😁29🔥9💊6🍌53😢2🤩1
Четверг, а значит время проектов от подписчиков! 🌝

Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://xn--r1a.website/tech_b0lt_Genona/4983

Слово автору @viqxq

---

Всем привет.

Меня зовут Ви, и я делаю свою операционную систему — Amadeus (https://xn--r1a.website/amadeus_eco_tg). Я активно пишу про это в своём канале.

Моя ОС — это не очередной дистрибутив Linux. Это попытка сделать нечто принципиально новое, чего раньше никто не делал в рамках проекта одного человека:

* Своя архитектура с нуля. Ядро Amadeus — это не монолит и не микроядро в классическом понимании. Это гибридная система, где все компоненты (включая драйверы) общаются через сверхбыстрый IPC на общей памяти, что сводит к минимуму накладные расходы и переключения контекста. Системные вызовы как устаревшая концепция — отправлены в отставку.

* Бинарная совместимость без компромиссов. Я не хочу заставлять мир переписывать софт под себя. Поэтому в Amadeus можно будет запускать нативные приложения Linux и Windows через механизм «вложенных ядер» (nested kernels). Ядро эмулирует API чужой ОС, но преобразует его в свой высокопроизводительный IPC. Цель — работать быстрее, чем Wine и быстрее нативного Linux в некоторых сценариях.

* Написана полностью на Rust. Это не просто модно. Это даёт беспрецедентную надежность для системы такого уровня. Безопасность памяти на уровне компилятора + полный контроль над железом — вот наш девиз.

* Драйверы? Не проблема. Я разработал инструмент для автоматического портирования драйверов из ядра Linux в нативную среду Amadeus. Это решает главную проблему всех новых ОС — поддержку железа.

* Безопасность и изоляция. Падение любого драйвера или сервиса не уронит всю систему. Они работают в изолированных пространствах пользователя. Никаких SUID-бинарей. Современная модель прав доступа, а не устаревшая UNIX-модель.

* Производительность как религия. Вся архитектура заточена под скорость: zero-copy IPC, акцент на асинхронность, собственные легковесные реализации libc и системных библиотек.

Зачем мне это всё?

* Хочется иметь «правильно» устроенную ОС. Без груза обратной совместимости, с современными решениями под капотом.
* Это вызов. Доказать, что один человек с упорством и правильным подходом может бросить вызов индустриальным гигантам.
* Создать платформу для будущего. Amadeus — это не просто ядро. Это мета-платформа, на основе которой можно будет создавать другие ОС с совместимостью нужной вам экосистемы.

Зачем мне этот анонс?

Мне не хватает сообщества. Я ищу единомышленников — низкоуровневых программистов, энтузиастов Rust, специалистов по виртуализации и просто тех, кому интересно заглянуть под капот современной операционки и возможно, принять участие в её создании.

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

Присоединяйтесь! Ваша помощь в портировании софта, тестировании, документации или просто распространении информации бесценна.

Канал с новостями: https://xn--r1a.website/amadeus_eco_tg

Давайте вместе строить ОС будущего.

---
🔥35❤‍🔥139👎6👍4💩4🤮2🤡2
⚡️Microsoft отключает военную разведку Израиля АМАН (подразделение электронной разведки 8200) от облачного сервера в Нидерландах после того, как выяснилось, что там собраны данные прослушки по Газе — The Guardian
🤷‍♂24🔥15👍6👎6🤬5💊4🎉3😁1🤯1
"нам не нужна зависимость от Фортрана"
29🔥12😁10👍2💯1
У вас есть идефикс?

У меня есть.

Я, сколько себя помню, хотел разобраться, как летают ракеты.

Базово это очень понятно, и просто - что-то горит, сгоревшие остатки толкают ракету вперед.

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

Короче, меня всегда волновал вопрос устойчивости.

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

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

Rocket Propulsion
and Spaceflight Dynamics
J. W. Cornelisse
H. F. R. Schoyer
K. F. Wakker

https://www.scribd.com/document/366672675/Cornelisse-Rocket-Propulsion-and-Spaceflight

И https://djvu.online/file/nKdcpf2T6Z3gL

Совершенно потрясающие книги. Однажды я их дочитаю.
51🔥22👍3
Павел Дуров заявил о давлении французских спецслужб перед выборами в Молдове

Сооснователь Telegram раскрыл детали о попытке французских силовиков использовать его задержание в Париже для цензуры общественно-политических телеграм-каналов в Молдове.

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


Павел Дуров назвал это неприемлемым: если обращение к судье действительно имело место, то это вмешательство в судебный процесс, а если нет — то это было использованием правового положения Дурова во Франции для влияния на политические события в Восточной Европе (в том числе в Румынии).

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


Дуров заявил, что Telegram привержен свободе слова и не будет удалять контент по политическим причинам. В будущем руководство Telegram будет раскрывать каждую попытку оказать давление на сервис с целью цензуры, в том числе — политической.
🤡31😁107🤬2💊1
https://www.opennet.ru/opennews/art.shtml?num=63957

"Расширена возможность отправки содержимого core-дампов через сокет AF_UNIX, позволяющая создавать в пространстве пользователя более безопасные обработчики core-дампов, не завязанные на вызов ядром привилегированных процессов. В новой версии добавлен протокол для создания серверов, способных управлять обработкой core-дампов на уровне отдельных задач. Например, для одних процессов можно игнорировать core-дампы, а для других передавать их через сокет. Отдельно подготовлен прототип сервера для управления core-дампами (*)"

Джвадцать лет этого ждал!

(*) На "#almost_memory_safe", а как же.
👍154😁3🤷2🆒1
commit -m "better"
Я так понимаю, некоторые штуки надо загружать или только из initrd
Будни #bootstrap

Кстати, запилил поддержку initrd, потому что купил новую игрушку, а в ней два слота под nvme, ну мне и захотелось сделать из них какой-то raid для корневого раздела (пока пробую btrfs).

Cделал все максимально по рабоче-крестьянски - упаковываю в initrd все содержимое bin/ из system #realm, то есть, чтобы в initrd были доступны тулзы для btrfs, надо сделать ix mut system bin/btrfs/progs. Вроде как лишнее дублирование, но зато все максимально прозрачно. Так же в system realm требуется наличие исполняемого файла bin/initrd, который и должен сделать весь heavy lifting - https://github.com/pg83/ix/blob/main/pkgs/set/pg/system/initrd/ix.sh. Никакой помощи от меня, в данный момент, для написания этого файла, нет.

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

Например:

* кто-то пишет, что ядро загружает /sbin/init из initrd, кто-то - что /bin/init, а на самом деле - просто /init

* я долго не мог понять, почему не работает pivot_root для подмены корневой fs, пока не прочел вот этот текст - https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt:

"When switching another root device, initrd would pivot_root and then umount the ramdisk. But initramfs is rootfs: you can neither pivot_root rootfs, nor unmount it. Instead delete everything out of rootfs to free up the space (find -xdev / -exec rm '{}' ';'), overmount rootfs with the new root (cd /newmount; mount --move . /; chroot .), attach stdin/stdout/stderr to the new /dev/console, and exec the new init.

Since this is a remarkably persnickety process (and involves deleting commands before you can run them), the klibc package introduced a helper program (utils/run_init.c) to do all this for you. Most other packages (such as busybox) have named this command "switch_root""

Ну да, ну да, кто бы мог подумать?!?
🤯14🔥54🤮3👎1
🤩22💩17😁134🤡4
commit -m "better"
В #nix community продолжается бурление странного. #nixgate
https://www.opennet.ru/opennews/art.shtml?num=63967

Кажется, в сообществе #nix снова начинается какое-то бурление #nixgate

На этот раз команда модераторов ушла в отставку, потому что считает, что управляющий совет слишком лезет в их дела, а управляющий совет считает, что модераторы делают свою работу абы как, исходя из личных предпочтений, а не из CoC.

Ну и новость немного сбоку, раз речь зашла про CoC.

Эрик Реймонд призывает отказаться от CoC, потому что вреда больше, чем пользы - https://www.opennet.ru/opennews/art.shtml?num=63968

Не могу с этим не согласиться.
👍163😁3🤷1