LINUX.ORG.RU

Избранные сообщения Bfgeshka

WoWee: открытый клиент WoW 1-3 с нативной поддержкой Linux

 , , , wowee

Некоторое время слежу за развитием открытого клиента WoW под названием WoWee. У него есть нативная поддержка Linux, а сам проект активно развивается — судя по количеству коммитов на GitHub. Каких-то громких заявлений и планов от разработчиков я не видел: проект позиционируется как эксперимент.

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

( читать дальше... )

nuxster
()

Бегство с GTK продолжается

 , ,

Привет, чят!

Тут пару часов назад вышла новая версия Audacity 4.0 (новость писать не буду, не вижу смысла), основная фича в которой – переписанный с wxWidgets (почти GTK лол) на Qt6 интерфейс. У меня всё больше и больше складывается ощущение, что из-за повёрнутости авторов GTK на гнуме и почти полном покладании болта на работу в других средах, на GTK скоро софта вообще не останется.

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

Такие дела, чят. Продолжаю наблюдения.

yorshka
()

Форк Midnight Commander c поддержкой панельных плагинов

 , , , ,

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

Выпущен консольный файловый менеджер Midnight Commander 6.0.3 (mc6), представляющий собой форк GNU Midnight Commander 4.8.33, расширенный поддержкой панельных плагинов и поставляемый со встроенным PTY-терминалом mcterm. Интегрированный в mc6 фреймворк панельных плагинов позволяет отображать в панелях не только файловые системы, но и контейнеры, Git-репозитории, базы данных и объекты удалённых хранилищ. Код проекта написан на языке Си и распространяется под лицензией GPLv3+. Готовые пакеты подготовлены для Debian и Ubuntu, Fedora и RHEL, а также Arch Linux в форматах DEB, RPM и pkg.tar.zst. Для Gentoo дополнительно предоставлен ebuild для установки через локальный overlay.

В состав выпуска вошли плагины для работы с архивами, FTP/SFTP/FTPS, Samba, Git, Docker, Kubernetes, MongoDB и S3-совместимыми хранилищами. Плагины поддерживают стандартные файловые операции, а переработанная поддержка архивов на базе libarchive заметно (в десятки или сотни раз) ускоряет обработку больших архивов.

Во встроенный текстовый редактор mcedit добавлены возможность сворачивания блоков кода, браузер истории Undo/Redo, средства управление макросами и поддержка сохранения файлов через sudo. В разы улучшена производительность при работе с очень длинными строками.

Просмотрщик mcview получил древовидное представление JSON, YAML и XML, интерактивную фильтрацию содержимого, базовую поддержку отображения разметки Markdown и режим воспроизведения файлов с ANSI-последовательностями.

В состав включён встроенный PTY-терминал mcterm с собственным эмулятором терминала, предназначенный для замены традиционного subshell-механизма.

dataman
()

Новый фундамент интерфейса, всплывающие окна, тонущие двери, мастерская идей

 граф интерфейс,

Инновационный интерфейс, новая корневая идея, всплывающие окна, тонущие двери, убегающие стенки, конкурирующие звёзды, толкающие шары

Приглашаю в творческю мастерскую идей интерфейса

Есть обширное рабочее пространство. Одни окна лежат поверх других. Есть обычные координаты xгоризонталь и yвертикаль. Также есть zглубина. Слишком глубокие окна тонут и сворачиваются в иконку нижнего моря панели. Слишком близкие окна конкурируют с другими близкими окнами, конкуренты представляются как звёзды в верхней панели небе.

Например я пишу в чате, рисую картину, и играю в сапёра. Все эти окна топовые, они в самом вершу, поэтому это звёзды, звёзды конкурируют, это разные задачи как разные рабочие столы.

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

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

Я листаю каталоги информация загружается и стенки убегают. Ограниченность оперативки не позволяет мне разогнать все стенки, я какбы в пузыре стенок.

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

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

Но я до этого ясно видел последствия трогания шара в этом векторе, потому что я представлял дальнейшие касания. Это как всё равно как нажать на кнопку.

Прошу не придираться к фантастичности и другому. А приглашаю в мастерскую перлов во имя новых идей !!

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

masloed
()

мой рабочий стол дома

Enlightenment 0.16.3, eMac, October Gnome, Eterm, BitchX
maxcom
()

Какую систему управления проектами вы используете?

 , ,

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

Для участия в опросе войдите или зарегистрируйтесь.

>>> Результаты

soomrack
()

MyCompany 6.2

 , , ,

Группа Open Source

Объявлен выпуск MyCompany 6.2 — свободной и открытой ERP-системы для малого и среднего бизнеса, построенной на платформе lsFusion. Решение покрывает задачи складского и финансового учёта, управления закупками и продажами, производством, розничной торговлей и услугами, проектами, кадрами и автопарком.

Типовое решение MyCompany распространяется под лицензией Apache 2.0 и развивается как открытый проект на GitHub. Для начала работы доступны демо-стенд и документация по установке и настройке. Бесплатная поддержка оказывается в открытом телеграмм-канале.

( читать дальше... )

>>> Полный список изменений на GitHub (github.com)

CrushBy
()

Зависимость скорости работы циклов от выравнивания кода

 , ,

Обнаружил сильную зависимость скорости работы одной вычислительной функции от того, на каком адресе она начинается. Локализовал проблему с помощью вставки NOP-ов в разные её места, выяснилось что корень всех странностей находится в этом цикле (подозреваю, что различие в скорости работы тоже локализовано в нём, хотя как это точно проверить не знаю):

00000000000016b9 <.bL11>:
    16b9:       48 8b 04 ce             mov    rax,QWORD PTR [rsi+rcx*8]
    16bd:       48 19 04 cf             sbb    QWORD PTR [rdi+rcx*8],rax
    16c1:       48 ff c1                inc    rcx
    16c4:       75 f3                   jne    16b9 <.bL11>
    16c6:       48 83 1f 00             sbb    QWORD PTR [rdi],0x0
^ вот так всё работает с «обычной» скоростью. А так (всё сдвинуто на 1 байт вниз) - на 30-35% медленнее:
00000000000016ba <.bL11>:
    16ba:       48 8b 04 ce             mov    rax,QWORD PTR [rsi+rcx*8]
    16be:       48 19 04 cf             sbb    QWORD PTR [rdi+rcx*8],rax
    16c2:       48 ff c1                inc    rcx
    16c5:       75 f3                   jne    16ba <.bL11>
    16c7:       48 83 1f 00             sbb    QWORD PTR [rdi],0x0
двигаем дальше, всё медленно, вплоть до сюда:
00000000000016c5 <.bL11>:
    16c5:       48 8b 04 ce             mov    rax,QWORD PTR [rsi+rcx*8]
    16c9:       48 19 04 cf             sbb    QWORD PTR [rdi+rcx*8],rax
    16cd:       48 ff c1                inc    rcx
    16d0:       75 f3                   jne    16c5 <.bL11>
    16d2:       48 83 1f 00             sbb    QWORD PTR [rdi],0x0
Если сдвинуть ещё на 1 байт вниз - лаги исчезают.

Собственно, если отметить первый лагающий вариант (где .bL11=0x16BA) за точку отсчёта, то итоги такие:

-7..-1 - хорошая скорость
0..11 - замедление на 30-35%
12..15 - хорошая скорость
16..23 - замедление на 15-20%
24..31 - хорошая скорость
32..32+11 - замедление на 30-35%
32+12..32+31 - хорошая скорость
Именно так, 30-35% замедление циклично повторяется через 32 байта (и дальше тоже повторяется), а вот второе замедление, сдвинутое на 16 байт от первого, и меньше по величине, и короче по байтам, и отсутствует во втором цикле. Более того, оно отсутствует и при сдвиге на 64+16, и 96+16, и 128+16, но опять появляется на 256+16 (на 512+16 его опять нет, промежуточные уже не проверял) - странно. А ещё оно появляется/исчезает в зависимости от изменений в других линкуемых модулей. Например, простое дописывание к линкеру -lm (без изменений исходников) может на него повлиять. 30-35% же замедление присутствует стабильно на своём месте.

Ещё я проверил что будет если вставлять NOP-ы внутрь цикла. Так вот, добавление например 2 NOP-ов приводит к тому, что лаги начинаются на 2 байта раньше (т.е. при той же позиции JNE как и раньше начинались), а вот заканчиваются на том же месте как раньше, т.е. при той же позиции метки (т.е. лаги от -2 до 11). Вторая зона лагов стала какой-то размазанной с усилившимся пиком в самом начале, а так же она появилась таки во втором цикле на 32+16-2.

сдвиг   время выполнения бенчмарка
-6       511.9 +- 14.8
-5       515.2 +- 12.3
-4       511.6 +- 8.9
-3       507.3 +- 7.2
-2       683.0 +- 9.2    <-- первый круг
-1       672.1 +- 12.3
0        670.5 +- 8.6
1        674.8 +- 17.1
2        669.4 +- 7.4
3        672.5 +- 11.0
4        675.0 +- 9.1
5        669.9 +- 8.9
6        675.5 +- 8.8
7        679.1 +- 7.6
8        696.9 +- 23.6
9        691.6 +- 14.8
10       680.5 +- 9.5
11       684.0 +- 9.0
12       516.5 +- 7.9
13       517.2 +- 11.6
14       792.3 +- 36.8   <--
15       605.4 +- 37.5
16       575.8 +- 24.2
17       566.0 +- 16.0
18       555.8 +- 21.6
19       562.0 +- 14.5
20       555.7 +- 8.7
21       537.2 +- 10.7
22       534.4 +- 11.2
23       549.9 +- 14.6
24       522.1 +- 10.6
25       517.8 +- 9.5
26       515.5 +- 8.4
27       517.0 +- 4.2
28       512.2 +- 7.4
29       516.8 +- 8.6
30       680.3 +- 9.2  <-- второй круг
31       675.0 +- 19.7
32       671.7 +- 8.9
33       669.2 +- 9.1
34       668.3 +- 10.8
35       667.0 +- 9.6
36       669.0 +- 8.9
37       671.0 +- 9.5
38       670.6 +- 10.8
39       676.5 +- 10.1
40       681.0 +- 10.5
41       682.1 +- 12.7
42       693.5 +- 16.7
43       689.8 +- 13.5
44       512.5 +- 4.9
45       516.9 +- 7.1
46       685.5 +- 12.3   <--
47       515.2 +- 7.6
48       519.0 +- 8.7
49       513.2 +- 7.9
50       512.4 +- 6.2
51       510.8 +- 4.7
52       510.3 +- 7.3
53       507.4 +- 7.0
54       509.2 +- 6.9

Вообще мне казалось что для более быстрой работы кода надо выравнивать начала циклов по 16-байтным границам, но тут ничего подобного незаметно, все адреса не пойми какие. Есть замеченная закономерность: когда JNE доползает до адреса 0x16c5 - лаги начинаются, когда до него доползает и начало цикла - заканчиваются. Но JNE двухбайтовый, т.е. когда он на 0x16c4 то второй его байт на 0x16c5 и лагов ещё нет.

Есть ли шанс объяснить почему так? А то мне совсем не нравится что код рандомно теряет треть скорости на ровном месте, тут я заметил, где-то не замечу, да и на разных процах это может быть по-разному, что делать?

---------------

Почти итог: адреса в дампах выше считал от начала объектного модуля, оказывается модуль автоматически (если явно не указать) по 16-байт границе не выравнивается, и адреса в бинарнике уплыли. Реальное замедление получается если тело цикла пересекает 32-байт границу (кроме случая когда за неё вылезает только один байт последней инструкции, почему-то), выглядит логично.

firkax
()

XMPP-клиент на Tcl/Tk, который заводится даже на Android

 , ,

Делаю десктопный XMPP-клиент на Tcl/Tk 9.

Что уже есть

  • Современный стек XMPP: OMEMO, звонки (совместимые с dino/conversations), отправка файлов, MAM (история на сервере, ленивая подгрузка), MUC, аватары
  • Статичная сборка в один бинарь без внешних зависимостей: всё перечисленное умещается в ~15 МБ, под Linux и под Windows

Чем отличается

Бизнес-логика жёстко отделена от гуя — в отличие от Dino/Gajim/etc, и по аналогии с телеграмным tdlib. Бэкенд может разговаривать по JSON, поэтому к нему можно прикручивать альтернативные фронтенды: в качестве proof of concept я накидал GTK-шный GUI и даже версию на Android.

По охвату даже шире, чем tdlib: в той же либе лежат и звонки с простым API уровня «начать/завершить звонок», так что любой порт получает функционал звонков почти бесплатно.

Как потыкать

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

wusspuss
()

Запретить в development реакции с клоуном

 

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

Lusine
()

Написание простой SDL-программы на Pascal

 , , , ,

В топике про новое издание учебника программирования от Столярова появился @bloody_enterprise и сказал, что ему сложно было осваивать паскаль по книге «Паскаль для школьников» Д. М. Ушакова.

Среди заданий там было

Задание 5.7. Ввести значение X и, используя график функции, определить значение Y. Требуется заполнить блок-схему алгоритма.

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

( читать дальше... )

Xenius
()

Обнаружен практически идеальный смартфон без гуглосервисов

 ,

Обнаружен практически идеальный смартфон без гуглосервисов

По мотивам темы Обнаружен практически идеальный ноут для линукса.

Привет, ЛОР! Хотел бы рассказать о смартфонах без гуглосервисов, которых кот наплакал, если хочется новое и недорогое устройство. Выбор тут невелик: Google Pixel и LineageOS/GrapheneOS, или CMF 1 и /e/OS(форк LineageOS). Список телефонов, которые прошиваются на LineageOS по годам выпуска - тут. Из списка примерно ясно, что кроме пикселей на рынке нет устройств, которые можно было бы купить новым и перешить на LineageOS.

( читать дальше... )

XMPP
()

kmscon 10.0

 , , ,

Группа Linux General

Состоялся выпуск kmscon 10.0 – эмулятора терминала, который создан в качестве замены ядерной консоли. Вместо подсистемы ядра vt kmscon использует KMS и реализует необходимую функциональность в юзерспейсе.

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

( читать дальше... )

>>> release notes (github.com)

Lrrr
()

Самый простой код

 

Снежинка в терминале. 1 штука.

#include <stdio.h>
#include <stdlib.h>
//Снежинка в консоли
void main ()
{
    system("clear");    
    system("sleep 1");
    printf("❄\n");
    system("sleep 2");
    system("clear"); 
    printf("\n\n\n ❄\n");
    system("sleep 2");
    system("clear"); 
    printf("\n\n\n\n❄ \n");
    system("sleep 2");
    system("clear"); 
    printf("\n\n\n\n\n\n ❄ \n");
}


AnonymUser
()

Небольшая панелька для LOR

 , , ,

Так как мне надоело вручную жонглировать десятками вкладок ЛОРа и запоминать, где я что читал, вручную перематывать вверх-вниз - пришлось сделать такую панельку.

https://ns.fiber-gate.ru/uploads/images/img_1778830448139_d366e4cd.png

Вот она, справа. Подстраивается автоматически под выбранную тему:

https://ns.fiber-gate.ru/uploads/images/img_1778830555340_a770df86.png

https://ns.fiber-gate.ru/uploads/images/img_1778830658445_22500337.png

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

Все возможности подробно описаны в настройках, во вкладке «Справка»:

https://ns.fiber-gate.ru/uploads/images/img_1778926219370_df3bc737.png

Что умеет панель

Навигация:

▲ и ▼ - перемотка в начало и в конец страницы

💬 - переход к своему последнему комментарию

📢 - переход к последнему комментарию, где вас упомянули

Быстрый доступ к разделам:

📋 Форум и ☰ Трекер: левый клик открывает раздел, правый клик показывает текущие темы с подсветкой изменений и количеством новых комментариев

🔔 Уведомления: левый клик - страница уведомлений, правый клик - модальное окно со списком, на кнопке отображается счётчик непрочитанных

Новые кнопки:

🚫 Чёрный список - добавьте ники авторов, чьи новости больше не хотите видеть. Мини-новости тоже проверяются через загрузку полной страницы

💾 Сохранённые - правый клик сохраняет текущую тему (запоминается позиция скролла и количество комментариев), левый клик открывает список сохранённого с проверкой новых сообщений. Повторный правый клик по кнопке в сохранённой теме обновляет информацию о ней. Автоматически ничего не сбрасывается - всё под вашим контролем. При первом заходе на сохранённую страницу позиция скролла восстанавливается автоматически

Прочее:

Бесконечная лента новостей с авто-подгрузкой при прокрутке

Все данные хранятся в localStorage вашего браузера

Настройки панели (открываются при ПКМ на кнопку профиля): масштаб, видимость рамки, выборочное отключение кнопок

Код буду дорабатывать, обновления здесь: https://github.com/Vladgobelen/NSLorPanel/

Это скрипт для расширения Violentmonkey (или аналогичных - Greasemonkey, Tampermonkey (но не тестировал)).

Основная панель: NSLorPanel.user.js

Дополнение для обработки черного списка авторов: NSLorNewsFilter.user.js

Так же есть настройки: можно выбрать что игнорировать от ника - новости, его сообщения или овтеты на его сообщения.

Модификация для редактора теста. Вставляется отдельным скриптом. Требует для настроек основную панель, но может работать и без нее: NSLorPanel-MarkdownToolbar.user.js

Модификация для подсветки модераторов. Вставляется отдельным скриптом, ищет основную панель, если находит - подхватывает настроки, если основной панели нет - работает без нее безусловно: NSLorModHighlighter.user.js

Поиск по теме в комментариях, плюс изменение кнопок «Мои сообщения» и «Упоминания» - при ПКМ можно искать по другим юзерам (может работать без основной панели): NSLorNavPlus.user.js

ОТДЕЛЬНО сортировка таблиц вне панели, если не нужна панель. Если используеся панель, этот скрипт не нужен: lor-table-sorting.user.js


Исправление блэк темы для смартфонов: lor-black-mobile-fix.user.js


Звуки при уведомлениях: https://github.com/Vladgobelen/NSLorPanel/blob/main/NSLorSound.user.js

Если лениво искать звуки, есть готовые: https://github.com/Vladgobelen/NSLorPanel/raw/refs/heads/main/lorSounds.zip


Свайп галерении мышкой: https://github.com/Vladgobelen/NSLorPanel/blob/main/NSLorGallerySwipe.user.js

С этим скриптом перетягивание картинки влево вправо листает галерею. Даблклик по картинке откроет ее.


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

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

LightDiver
()

Нужна литература по алгоритмам БЕЗ(!!!) нейронок и ML для сопоставления ч/б векторных картинок с образцами

 

Что-то в духе распознавания рукописных символов в УЖЕ очищенном от шума векторном виде. Такое, чтобы после прочтения я мог сам состряпать нужные алгоритмы.

Требование «БЕЗ нейронок и ML» ключевое – чтобы я мог руками впилить в эти алгоритмы свои знания и быть на 100% уверенным в логике их работы, а не пердолиться с придумыванием обучающих данных и получить потом на выходе чёрный ящик, выдающий непредсказуемые результаты.

Т.е. нужны некие базовые до-ML-ные идеи. Например, попалось на глаза словечко «кластерный анализ» – похоже в тему, но где б найти с подходящей (но не избыточной) детализацией идеи и с примерами. И вот всё такое похожее надо.

Те книги, которые рекомендует гугл, – про сильно более навороченные вещи (e.g. мне не нужны цветные пиксельные картинки и построение 3D из 2D), и с непременным ML в том или ином виде. Разве что 1е издание Фукунага «Введение в статистическую теорию распознавания образов» – 1979 год, это по ощущениям ещё до-нейроночная эпоха, там может быть что-то подходящее.

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

dimgel
()

Reticulum: Сложными словами о простом

 , reticulum,

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

Reticulum — радиопротокол для mesh-сети, по словам автора — попытка создать альтернативный протокол базового уровня для сетей передачи данных.

( читать дальше... )

Leupold_cat
()

Какой нелинейный видеоредактор вы используете?

 ,

Последний опрос такого типа был в 2017-ом что ли.

Я подумал, а почему бы и нет? Практика -критерий истины.

Для участия в опросе войдите или зарегистрируйтесь.

>>> Результаты

Andrew-R
()

Ищу игры с механикой или сюжетом путешествия во времени

 

Сабж.

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

Список что нашел:

5D Chess With Multiverse Time Travel
Timeshift
Chrono Trigger
Braid
Ultima 2
Singularity
Pathologic 3
Skyrim
PoP: Warrior Within
Day of Tentacle
Hat in Time
The Legend of Zelda: Majora’s Mask
Outer Wilds
No Time to Explain
Life is Strange
Steins;Gate,
Millennia: Altered Destinies
Old Skies
Higurashi When They Cry
Original War
Ultima
The Mystery of Time and Space
Evolend 2
Back to the Future: The Game
Red alert 2
Legacy of Kain: Soul Reaver 1/2
Ecco: The Dolphin
Lost in Time
No Time
Time Command
YOU and ME and HER: A Love Story
Timespinner

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

vbcnthfkmnth123
()

MIDI в Linux: диагностируем отсутствие звука

 , , ,

Руководство затрагивает проблему с отсутствующим звуком в музыкальных программах типа Power Tab Editor в linux. Подходит для систем с PipeWire или PulseAudio. Ниже описана настройка MIDI и звука для Power Tab Editor.

( читать дальше... )

imagorty
()