LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , ,

Там ИИ-шечка решила, пусть и со скандалом одну из семи задачек тысячелетия с пруфцами

 ,

Кратко 2 кожаных, которые решали эту задачку с ИИ, второй ещё у конкурентов в ИИ из антропиков работает (Тристан Бакмастер и Левент Альпёге) обвиняют что ИИ их решение использовало, однако у кожаных решения так и нет, а у ИИ есть, так что я думаю всё нормально (кожаных тоже можно обвинять в том что они теорему Пифагора юзают без разрешения самого Пифагора). В целом хорошо что задачу решили, она важная.

https://openai.com/index/navier-stokes-solution/

Короче, критики ИИ, которые говорили что ИИ не может делать новое в фундаментальной науке, приветствуются.

Да будет срач.

Да, экономически премия в 1 000 000$ за эту задачу не годится, ИИ сожгла токенов на 15 000 000$, но это всё ерунда, люди за 90 лет куда больше усилий вбухали, просто никто не смог решить её.

Перемещено dataman из talks

peregrine
()

Гайд по запуску Team Fortress 2 на Android

 , , , ,

Гайд здесь

Хочу узнать Ваше мнение

Mishahack
()

Баг в LOR

 , ,

У меня на мобильном интернете белые списки и весь зарубежный трафик просто не пропускается. Как пример - Reddit не открывается. LOR прекрасно открывается, но из-за привязки к twemoji все реакции по мобильному интернету просто выглядят пустым местом. Прошу пофиксить.

Mishahack
()

Моделирование конечных автоматов-2

 ,

Предыдущая ветка закончилась тем, что ничего нет, надо делать самому.

В связи с этим, думаю стоит двигаться дальше в этом направлении.

И тут первая задача состоит в том, чтобы как-то буковками описывать эти КА. Чтобы из текста было понятно, что происходит и почему.

И вот тут похоже всё совсем плохо. Все что на сегодня придумано, либо в графическом виде (граф переходов) и соответственно язык для описания этого графа (dot и т. д.) либо просто таблицы состояний. Ну и еще просто исходник на языке программирования, который реализует конкретный КА (где вообще кто в лес кто по дрова).

Хочется какой-то формальный язык заточенный именно под КА. Чтобы его можно было конвертить в графическое представление, или там в таблицу состояний и т.д. чтобы можно было его прогнать через какой-то верификатор. Чтобы тесты можно было писать. Что-то похожее на HDL, только для КА. Есть что-то такое? Может где-то есть локальное изобретение для обучения студентов?

Еще можно накидать идей как бы мог выглядеть такой язык.

yax123
()

openwrt с FXS портом

 , ,

Есть ли девайс, на который можно поставить openwrt и чтоб работал FXS?
Это важно. Матушке нужен домашний телефон.

hbars
()

vmware horizon client in linux mint

 

Есть ли возможность сею программу как-то завести на минте?

sexhex
()

ripgrep + preprocessor + gpg

 , gpg-agent,

Есть такая необходимость искать в зашифрованных файлах. Количество их около 0.5к и потихонечку растёт. Я сделал препроцессор. Начинаю искать и у меня через несколько секунд начинает всплывать в выхлопе «введите пароль» от gpg. При этом gpg-agent поднят, пароль закеширован. ripgrep этот закешированный пароль использует т.к в выхлопе появляются найденный текст в файлах, но по какой-то причине gpg-agent начинает требовать ввести пароль. Как это вообще пофиксить?

Не запрашивает

rg -j8 'aaa'

Запрашивает

rg -j10 'aaa'
bryak
()

Что у гугла, где java android?

 , ,

Сейчас можно скачать только Котлин версию android studio, где взять java android?

doomer
()

Промежуточный язык для ИИ

 

Пока я стою под укрытием и жду когда пройдет дождь, решил написать теоретическое предложение.

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

Так вот. Есть gap между планированием и коданием. В котором и плавают нейросетки. И глючат

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


Я таки пришел домой и могу писать нормально, ну почти. Тут кошка атакует.

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

ckotctvo
()

Хочу скачать много торрентов

 ,

Всем привет! Вопрос, возможно, что не совсем про линукс, но в целом у меня есть порядка 60тб свободного места на своем сервере. Хочу накачать книг на все случаи жизни и прочего контента. Проблема в том что тыкать каждый торрент по одному очень долго. Есть ли снифферы для торрент сайтов? Или какие-то варианты качать по целым разделам?

UPDATE: Все оказалось банально, можно стать хранителем и встать на раздачу любого раздела трекера. Например так

Скачиваются разделы с помощью расширения Tampermonkey для браузера и скрипта

AntonyRF
()

Движок godot тормоз или тупит моя конфигурация компьютера?

 

На движке сделал учебный проект https://github.com/godotengine/godot-demo-projects/tree/master/3d/squash_the_creeps, экспортировал. По идеи, игрушка довольно простая. Примерно через 2 минуты все 16 ядер процессора оказываются загружены на 100%.

Конфигурация моего железа:

  • 16GiB Системная память
  • AMD Ryzen 7 2700X Eight-Core Processor
  • Видеокарта GF430, установлены проприетарные драйвера версии 430.180

Godot версии 4.7.1 (последняя)

Понять не могу: это проблема конкретно движка Godot или я что-то не установил и вся обработка графики идет через процессор?

Сам экспортированный проект: https://disk.yandex.ru/d/ZIftX5fkJNKpMg . Скомпилирован для Linux архитектуры x86_64.

dicos
()

SQL-клиент не на ноутбуке, а на своём сервере: четыре проблемы, о которых не предупреждают

 , , , ,

Настольный клиент к БД предъявляет два требования, которые обычно нигде не записаны. Первое: с каждого ноутбука разработчика должна быть сетевая достижимость до продовой сети. Второе: на каждом ноутбуке должна лежать копия всех учётных данных. Оба требования несущие, и именно из-за них клиент к базе оказывается последним инструментом, который команда заводит за SSO.

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

Размен того стоит, но он не бесплатный. Появляются четыре проблемы, которых у настольного клиента не было, потому что клиент теперь многопользовательский сетевой сервис, держащий все подключения команды. Мы прошли через все четыре, пока делали LibreDB Studio, самостоятельно размещаемую IDE для баз данных, работающую в браузере. Ниже конкретная форма каждой проблемы, включая две, которые мы сначала решили неправильно.

Что это в терминах установки

Это обычный сервис на своём железе, без внешних зависимостей и без обращения куда-либо наружу:

  • .deb и .rpm со своим приватным Node внутри, юнит systemd, никаких требований к системному node;
  • AppImage и Snap, если нужно поднять на рабочей станции или на машине без пакетного репозитория;
  • tarball для linux amd64 и arm64;
  • образ ghcr.io/libredb/libredb-studio и Helm chart с оператором, если хозяйство уже в Kubernetes;
  • npm-пакет, если удобнее запускать своим рантаймом.

Состояние (подключения, вкладки, история запросов) хранится либо в файлах, либо в SQLite, либо в PostgreSQL, выбирается одной переменной окружения. Аутентификация: локальные пароли или OIDC через PKCE. Лицензия MIT, сборки воспроизводятся из тега, к релизу прикладывается SBOM.

Дальше про то, что ломается при переносе.


1. Граница доверия переезжает внутрь вашего же процесса

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

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

Middleware в src/proxy.ts действительно заворачивает неаутентифицированные запросы, но это оптимизация, а не граница авторизации. Дырка в матчере (матчер освобождает любой путь, в котором есть точка) или обход на уровне фреймворка открывают все маршруты, которые полагаются только на него.

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

Разница становится видна в первый же момент, когда легитимный вызов не может предъявить сессию. У нашего агентного рантайма есть колбэк, который просит сервер подхватить долгоиграющую сессию запроса. Вызывающая сторона это транспорт, а не человек, и cookie у неё нет по построению. Соблазнительное решение: добавить путь в список публичных. Оно неверно структурно, потому что исключение по пути имеет форму пути, а значит внутрь попадает всё, что смогло достучаться до порта.

Вместо этого вызывающая сторона предъявляет удостоверение, которое сервер выпустил сам: годное одну минуту, называющее ровно один запуск, не дающее ничего кроме продолжения этого запуска, и подписанное ключом, производным от JWT-секрета, а не самим JWT-секретом. Это не сессия, и превратить его в сессию нельзя. Middleware пускает такой путь только при валидном удостоверении, а маршрут всё равно проверяет его второй раз.


2. CSRF становится настоящим, а обратный прокси молча ломает защиту

У настольного клиента нет cookie и нет фоновых полномочий. У браузерного есть и то и другое, поэтому изменяющим состояние запросам нужен второй слой поверх сессионной cookie. Мы сравниваем Origin запроса с собственным хостом развёртывания.

Два решения внутри этой проверки стоит скопировать, и оба они не про атакующего, а про ложные срабатывания.

Сравнение только по хосту, схема игнорируется. Прокси, который терминирует TLS и передаёт дальше обычный HTTP, не выставив x-forwarded-proto, приводит к тому, что браузер шлёт Origin: https://db.example.com, а приложение вычисляет http://db.example.com. Сравнение схем в этом месте запирает администратора снаружи его собственной формы логина. Мы теряем защиту от страницы по http на том же хосте, постящей в приложение по https, а для этого нужен активный сетевой атакующий, который уже сломал транспорт. Это меньшая угроза, чем целый класс развёртываний, который иначе перестаёт работать.

Запрос без Origin и без Referer принимается, но только если content type равен application/json. Выглядит как выключатель, протащенный под чужим именем. Это не так, по двум независимым причинам. HTML-форма умеет отправляться только как x-www-form-urlencoded, multipart/form-data или text/plain, потому что четвёртого значения у enctype нет, то есть классический вектор CSRF структурно неспособен породить такую форму запроса. А межсайтовый fetch() такой content type выставить может, но application/json не входит в CORS-safelist, значит он вынуждает preflight, а развёртывание, которое нигде не отвечает заголовком Access-Control-Allow-*, никогда не отвечает на него утвердительно. Остаются curl и вызовы сервер-сервер, а это не CSRF: CSRF это именно ничего не подозревающий браузер, несущий полномочия, которые он не выбирал отправлять.

Теперь про ошибку, которую мы сначала выкатили. Матчер middleware исключал api/db/health, чтобы пробы балансировщика не проходили весь конвейер. По тому же пути живёт POST /api/db/health, детальная проверка конкретного подключения, закрытая сессией. Исключение пути исключило и метод, и единственным маршрутом без проверки origin оказался тот, который называется health. Исключения по пути слепы к методу, и это тот же урок, что и в первой проблеме, только в другом костюме.

Второе, чему научил этот слой: блокировка обязана уметь диагностировать сама себя. Прокси, который переписывает Host, не выставив x-forwarded-host, даёт несовпадение на каждом изменяющем состояние запросе, включая логин, и администратор видит работающую страницу, которая молча отказывает во всём. Поэтому тело ответа 403 называет починку: выставьте ALLOWED_ORIGINS в публичный origin развёртывания. Ошибка, объясняющая собственную причину, здесь ценнее короткой.


3. Логирование отказов превращается в поверхность отказа в обслуживании

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

Поэтому отказы лимитируются. Сам отказ не лимитируется никогда, лимитируется только его запись.

Что нас удивило: ограничение количества строк не ограничивает размер строки. В строку лога попадает путь запроса и наблюдаемый хост, оба под контролем атакующего и оба произвольной длины. Лимит на количество без лимита на размер это та же атака в другом масштабе, поэтому каждое поле ещё и обрезается.

Есть и тонкость с ключом. Для отказа вида «аутентифицированный пользователь постучался в административный маршрут» лимитировать по IP неправильно: наличие токена ограничивает количество личностей, дошедших до этой ветки, а не количество запросов от каждой, и одна сессия способна долбить в цикле. Эта корзина ключуется по имени пользователя, так что ротация X-Forwarded-For лишних строк не приносит.


4. Состояние тоже переезжает, и это самая честная часть

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

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


Чего это не даёт

Перенос клиента сужает радиус поражения. Он не создаёт модель авторизации, которую вы не написали. В Studio две роли, и пользователь с ролью user по-прежнему может подключиться к любому хосту и порту и выполнить любой оператор: списки разрешённых целей и покомандные ограничения по провайдерам это осмысленное направление, и оно не реализовано. Написать об этом в документации, рядом с тем, что реализовано, оказалось важнее любой отдельно взятой меры.

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

LibreDB Studio распространяется под лицензией MIT: https://github.com/libredb/libredb-studio

Перемещено dataman из development

cevheri
()

Происки ibus с fcitx на свежем Debian

 , , , ,

[Финалити от Rootlexx]: Не ставьте дебъянчик с live режима и вообще live образов, пользуйтесь классическими установочными образами

Ох и давно я не устанавливал десктопный Debian с нуля… Зайду из далека.

Короче по истории с ноутом MBR конечно топ, но и UEFI может быть полезен так уж получилось был установлен Mint Zena, управления мышкой/клавой и ПК и ноутом управлялось через связку Deskflow на Debian ПК и Barrier на ноуте Mint, всё ладно, но достало что зажимание клавиши на ПК не повторяло символ, а сбрасывало фокус клавиатуры с ноута на ПК и мышку тоже, поглядел что там по Deskflow в минте, оказалось что оно в flatpak который я сразу же после установки снёс, ну думаю, ну хоть погляжу. Итого оно скачало 1,5 гигабайта ради 827 килобайт… кекнул, добавил в автозагрузку, ребут и подключение к ноуту идёт через минуту, а то и две пока там этот флатпак всё запустит, скопировал на ПК ssh и gpg ключи с ноута, а ноут вырубил чтобы ужаса такого больше не видеть и накатить Debian для нормальной установки Deskflow из deb пакета, как и всего остального софта.

Так как ноут слаб на нём работал XFCE4, скачал Debian Stable в редакции крысы. Накатил, закинул ключи обратно, скриптом установил базовые для меня приложения, и тут! Раскладка переключается с лагом в 2 секунды, гляжу, ну конечно ibus ой ты мой родимый, иди скорее сюда

  • apt purge ibus*

Фух подумал я, забыл что первым делом надо его удалять. Жму переключение и… А и ничего. Чё за хрень думаю я. Тыкаю в переключалку, тут мне позор я не узнал родную от XFCE4, думал её переделали. Запускается хрень инопланетная с именем fcitx, первый (вроде) раз это чудо-юдо вижу, и всё бы ладно, на вкладке добавления языка, но на другой вкладке, там где задание комбинаций клавиш какая то откровенно дурка. Захожу в настройки клавиатуры XFCE4 там всё своё, всё настроено. Но ничего не работает…

Из принципа начал пытаться настроить fcitx и так и не смог переключить раскладку после минут 15 пыток поисковика, ожидаемо что дальше

  • apt purge fcitx*

И всё работает.
И посему у меня вопрос, зачем, а главное нахрена, при обычной рабочей переключалке раскладок DE в данном случае XFCE4, которая сходу имеет настройки и раскладок и комбинаций клавиш переключения, заданных на этапе установки. Добавлять в систему ещё и ibus и fcitx? При этом всё сразу? Первое вносит лютый лаг в переключение, а второе при удалении первого просто ломает родную переключалку.

Да может я просто дурак, но едрить её в коромысло. Если вам не надо вводить что-то эдакое, вы не лингвист и не полиглот с 10 языками и 20 типами раскладок и так далее, то удаляйте этих двух друзей сходу прям. Может конечно редакция именно эта такая кривая, качал живой образ, чтобы сначала потыкать и поглядеть какой там сейчас установщик графический.


Сейчас всё хорошо. Досвиданья

LINUX-ORG-RU
()

MSP430. Вопрос к тем кто работал с PDP-11. Программирование машинными кодами. Поделитесь опытом.

 , ,

В руки попал микроконтроллер MSP430 с платой LaunchPad. Искал какие есть инструменты для программирования и прошивки. В составе MSPFlasher попался файл Firmware.txt следующего содержания:

@e000
21 83 B2 40 80 5A 20 01 F2 D3 22 00 F2 E3 21 00 
B1 40 10 27 00 00 91 83 00 00 81 93 00 00 FB 23 
F5 3F 31 40 00 04 B2 40 48 E0 00 02 B2 40 48 E0 
02 02 B0 12 40 E0 0C 43 B0 12 00 E0 B0 12 44 E0 
1C 43 30 41 03 43 FF 3F 30 41 
@fffe
22 E0 
q

С помощью другой программы mspdebug у меня получилось зашить этот Firmware.txt:

$ ./mspdebug rf2500
(mspdebug) erase
Erasing...
(mspdebug) load ../MSPFlasher_1.3.20/Firmware.txt 
Done, 76 bytes total
(mspdebug) exit

После этого светодиодики бодро заморгали на плате.

Мне захотелось тоже попробовать хоть что-нибудь написать таким образом, просто чтобы был такой опыт. Если верить википедии, у MSP430 схожая система команд с PDP-11. Я относительно молодой, PDP-11 совсем не застал.

Здесь на форуме от разных людей видел комментарии в духе «дайте мне в руки PDP-11 и я вспомню как это делается». В руки, увы, ни PDP-11, ни MSP430 не дам. Но если поделитесь опытом, буду очень рад!

Вот, что, к примеру, делает программа описанная в файле Firmware.txt? Я, например, пока не могу расшифровать. :^)

Jullyfish
()

Моделирование конечных автоматов

 ,

Всех приветствую.

Появилась у меня блаж. Хочу какую-нидь красивую (причем не обязательно гуи) программулину, в которой я смогу упражняться в составлении конечных автоматов. Чтобы можно было задавать всякие параметры, условия, состояние. А оно бы рисовала кругляши со стрелками. Показывала бы всякие диаграммы. Прогоняло бы входные воздействия и т.д. чтобы было красиво, понятно и наглядно. Чтобы можно было делать вложенные КА или комбинации КА. Может даже какую-то аналитику делала, упрощала бы условия и т.д. Чтобы можно было задать входную последовательность и она бы сама ее прогнала через КА и показала результат. Идеально если комбинация КА могла работать каждый со своим алфавитом.

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

Понятно, что я пришел сюда после получаса гугления и разглядывания результатов. В основном все предлагают рисования диаграмм.

yax123
()

Посоветуйте гайды для love2d по классам, пожалуйста

 

Изучал https://www.sheepolution.com/learn/book/11, там пример последний не работает

Cast LINUX-ORG-RU

vbcnthfkmnth123
()

Кто-нибудь пользуется электронной почтой через curl?

 , ,

Я электронной почтой пользуюсь крайне редко, и 99% моих использований почты это получение одноразовых кодов и ссылок. Поэтому держать почтовый клиент на своём компьютере для меня смысла ровно 0.

При использовании почтовых сервисов, у них всегда есть веб-интерфейс, поэтому, в принципе, этого хватает.

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

Если бы почту слали текстом, мне бы, честно говоря, хватило telnet (ну или openssl s_client). Я как-то пробовал IMAP команды таким макаром вбивать, никаких проблем, всё понятно и user-friendly. Но HTML-письма читать невозможно, там адский суп из тегов. Но ИИшника подсказала мне интересный вариант - оказывается curl умеет в IMAP, т.е. можно посмотреть список писем и скачать письмо в .eml формате.

Остаётся только преобразовать .eml в .html (там есть нюансы с вложенными файлами). Готовых инструментов я не нашёл, но в целом ладно, разобраться с этим можно.

Кто-нибудь таким пользуется? Какой у вас workflow?

vbr
()

Помогите решить проблему с openh264 на opensuse tumbleweed

 , ,

Захотелось вернуться с CachyOS на openSUSE Tumbleweed и вот пошли третьи сутки пердолинга с openh264, так бы нафиг его, но хочется смотреть фильмы с lordfilm, без него не воспроизводятся. Конечно, проблема решается с подключением репозитория packman, но когда-то я ушёл с opensuse как раз из-за того, что в какой-то момент, спустя примерно полгода стабильной работы, обновления из packman сломали всю систему. Есть ли здесь кто сидит на opensuse сейчас, в конце 2026 года на территории РФ, как вы решили проблему с openh264, какие репозитории у вас подключены? Помогите

pckot
()

Bochs 3.1

 

https://github.com/bochs-emu/Bochs/releases/tag/REL_3_1_FINAL

Тихо и незаметно вышел эмулятор ia32/amd64 Bochs 3.1

В новом выпуске багфиксы, больше памяти гостевым системам (было ограничение на 2 гб, сейчас 8), экспериментальная эмуляция Geforce (медленно), UEFI для новых windows 2025/Linux, обновления vgabios/seabios.

Компиляется и работает в Termux/aarch64, MacOS X 10.5.8/PPC, Slackware 15.0 i586

Andrew-R
()

Давайте придумаем более лаконичную альтернативу WTFCoC.

 ,

А то WTFPL прекрасна в своей лаконичности:

0. You just DO WHAT THE FUCK YOU WANT TO.

а WTFCoC на её фоне – неприлично громоздкий.

Мне приходит в голову:

  • «Go ban yourself.» – рифма с «go fuck yourself» из WTFCoC. Идеально если понятно (в чём я не уверен).
  • «If you are really interested in the contents of this file then go ban yourself before I did it for you.» – понятно, но обратно слишком громоздко.
dimgel
()

RSS подписка на новые темы