LINUX.ORG.RU

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

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


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

Перемещено 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
()

На Core Ultra 5 125h дропы с 300 до 0 фпс в майнкрафте

 ,

После самоуничтожения Windows установил Ubuntu 25.10 на Honor Magicbook art 14 (Intel Arc 7 xe graphics) Установил майн через Prism launcher

ФПС ~300 с просадками до нуля

Как пофиксить?

Lagnugg
()

Кто в какие игры играет в 2026?

 

Кто в какие игры играет в 2026? не обязательно новые, но интересно, в какие вообще?

rasonatention1
()

Выделяй память как Линус: инструкция

 , ,

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

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

Lrrr
()

Froggy-BLC 1.0 (Книжная Система Сайта, CMS)

 , , , ,

Группа Интернет

Состоялся стабильный выпуск (1.0) Книжной Системы Сайта (Book-Like CMS) «Froggy-BLC», работающей на файлах без БД.

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

>>> Подробности на GitHub (github.com)

Set440
()

gtk2 сам себя не форкнет

 , , ,

Что ж, этот день настал. Будем делать gtk 2.26.

Минимальный план работ такой:

  • Обеспечить масштабирование заданных в настройках тулкита размеров иконок в соответствии с DPI.
  • Обеспечить масштабирование заданных темой пиксельных размеров в соответствии с DPI.
  • Предоставить для приложения API для масштабирования размеров из условных пикселей (под 96 DPI) в реальные в соответствии с DPI.
  • Исправить мелкие косяки в теме Redmond, которые остались с тех пор, как отрисовка темы была переведена на cairo.
  • Дополнить дефолтный пакет тем стилями для gtk3, максимально приближенно имитирующими классические темы.
  • Бэкпортировать из gtk3 некоторые улучшения в диалогах открытия/сохранения файлов.

Приглашаются все желающие. Пишите ваши соображения.

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

P.S. @hobbit, верни тэг gtk2 в БД сайта!!!

wandrien
()

Откуда взять погоду?

 

  1. yandex - апи стоит конских денег. Сразу нет
  2. wttr.in - из-за блокировок работает через раз
  3. openweather - из-за блокировок работает через раз
  4. международных аэропортов рядом нет, чтобы тянуть погоду оттуда

Из данных интересует текущая температура и давление в гПа

bryak
()