LINUX.ORG.RU

Сообщения wandrien

 

Моё видение важных фич, в настоящее время отсутствующих в экосистеме СПО

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

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

Реализация полной поддержки ext4 для ядер FreeBSD, NetBSD и ReactOS/NT.

Реализация полной поддержки UFS/FFS для ядер Linux и ReactOS/NT.

Реорганизация исходного кода glibc и вынос оттуда логики сервисов в демоны

Известная особенность, что glibc не может быть собрана полностью статически, поскольку завязана на модульный механизм, связанный с загрузкой произвольного набора *.so, предоставленных другими компонентами ОС.

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

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

Это позволит также использовать полный набор фич, предоставленных механизм Name Service Switch, для приложений, которые вообще не используют glibc.

Универсальный формат бинарника для запуска на разных ОС и универсальное ABI, отвязанное от конкретного ядра

То, что универсальный формат бинарника, запускающийся на самых разных ядрах, в принципе возможен – доказал проект cosmopolitan libc.

Однако этот проект имеет недостатки:

  • Для главной разработчицы всё это какая-то игрушка, разработка ведётся без конкретных целей и задач. Иными словами, я такой разработчице не доверяю. Нужен кто-то более серьёзный, если закладываться на проект как на важный инфраструктурный элемент.
  • Проект ставит целью сборку только полностью статических бинарников, таким образом ABI в них отсутствует. Хотелось бы видеть ОС-независимую реализацию модульной экосистемы, с возможностью грузить *.so точно так же, как это делается в обычных ОС.

В идеале хотелось бы видеть тулчейн, который способен собрать стек библиотек начиная от базовых и вплоть до графических тулкитов, и при этом получившийся набор библиотек способен работать поверх Linux, FreeBSD, NetBSD – как минимум.

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

Применение pacman и makepkg для дистрибутивов с фиксированным релиз-циклом

Из всего зоопарка пакетных менеджеров, по моему опыту самым беспроблемным в эксплуатации является pacman и лёгким для создания пакетов. Хотелось бы видеть на нём действительно разные ОС с разным подходом к релиз циклу, а не просто респины Арча.

Было бы интересно увидеть мета-дистрибутив, который объединяет все перечисленные наработки, предоставляя возможность использовать ядра Linux/FreeBSD/NetBSD и при этом имея прикладное ABI, отвязанное от ABI ядра.

 , , ,

wandrien
()

Нужен совет по придумыванию синтаксиса

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

ПЕРВЫЙ:

// циклы с предусловием:

while condition do
    statements
end:while

until condition do
    statements
end:until

// циклы с постусловием:

do
    statements
repeat while condition;

do
    statements
repeat until condition;

// вечный цикл:

do
    statements
repeat forever;

// простой блок кода:

block
    statements
end:block

ВТОРОЙ:


// циклы с предусловием:

while condition loop
    statements
end:while

until condition loop
    statements
end:until

// циклы с постусловием:

loop
    statements
repeat while condition;

loop
    statements
repeat until condition;

// вечный цикл:

loop
    statements
repeat forever;

// простой блок кода:

do
    statements
end:do

 ,

wandrien
()

«Перспективные» и малоизвестные проекты ЯП

А накидайте, какие есть малоизвестные проекты языков программирования, которые пилятся или пилились энтузиастами в последние годы? Интересуют компилируемые ЯП, ориентированные на компиляцию в нативный код. (Еще лучше, если у реализации есть собственный бэк, а не просто фронт для LLVM.)

Из того, что я мог вспомнить:

  • Nim
  • Zig
  • Seed7
  • VLang
  • Crystal
  • OOC

 , , ,

wandrien
()

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

Топик не имеет конкретного вопроса или проблемы. Мысли вслух, которые, возможно, спровоцируют какую-нибудь интересную беседу в комментах.

Заметил несколько дней назад, что ноут стал перегреваться - доходит до порога 95 градусов и сбрасывает частоты. Надо почистить СО и поменять термопасту. Но так как мне было лень доехать до магазина за термопастой (и до сих пор лень), я пока временно сделал так:

cpupower frequency-set --min 800MHz --max 1900MHz

Так и сижу уже пять дней на сниженных частотах)

После этого я вдруг вспомнил, что у нас в семье есть ноут, который уже около 10 лет работает без обслуживания и признаков перегрева не имеет. Это Lenovo B590 с процессором Celeron 1005M. Техпроцесс 22 нм. Решил посмотреть, что у него с тепловыделением CPU.

В простое температура 45-50 градусов и мощность - около 4 Вт.

Под нагрузкой в тесте OCCT мощность увеличивается до 9 Вт, а температура сначала резко растёт до 57 градусов, а затем по мере прогрева корпуса плавно увеличивается до 67 за 10 минут. Напряжение ядра 0.78 В - постоянное. Максимальная частота 1.9 ГГц держится стабильно.

В общем, этот Celeron довольно экономичный. Не удивительно, что он работает и обслуживаться не просит.

В моём ноуте процессор Core i5-2450M. Техпроцесс 32 нм. На свободный раздел подкинул винду, чтобы тоже погонять OCCT. Результаты получились такие.

В простое температура 45-50 градусов и мощность - около 4 Вт.

В тесте OCCT процессор бустится до своих максимальных 3.1 ГГц. Краткое время удерживает удерживает эту частоту, потом падает до базового порога 2.5 ГГц. Еще через несколько секунд процессор разогревается до 95 градусов - порога срабатывания теплового троттлинга, и частота начинает проседать сначала до 2.2 ГГц, а затем до 1.8 ГГц, и плавает между этими двумя значениями. В среднем около 2.0 ГГц.

Мощность в начале теста составляет 29 Вт и затем постепенно снижается до 22 Вт в установившемся режиме теплового троттлинга.

В отличие от Celeron, напряжение ядер меняется вместе с частотой. В простое 0.77 В. При бусте - вплоть до 1.22 В. В установившемся режиме теплового троттлинга - около 1.0 В.

Также я обнаружил, что у этих поцессоров разный порог нижних частот. У Celeron 1005M - 1.2 ГГц. У Core i5-2450M - 0.8 ГГц. Таким образом у Celeron вилка частот составляет всего 1.2..1.9 ГГц, всего лишь 700 МГц разницы. Видимо, вся эта вилка покрывается минимальным значением напряжения питания без необходимости поднимать напряжение. Чем и обеспечивается его экономичность.

Короче, в текущем виде необслуженная система охлаждения может отвести максимум 22 Вт тепла, что недостаточно для выхода на максимальную производительность для Core i5-2450M. Ноут у меня Samsung NP300E5Z. Надо сказать, я помню, у этого ноута даже свежеобслуженная СО работает на пределе, с трудом справляясь с удержанием процессора от перегрева под полной нагрузкой.

Я пытался нагуглить аналог команды cpupower frequency-set для винды, но не смог найти подходящей программы. Нашел, что в программе ThrottleStop должна быть соответствующая настройка, но на моём CPU она отображается неактивной. Удивительно.

Также я вчера не смог нагуглить, как непосредственно от ядра Linux посмотреть напряжение питания ядер и потребляемую мощность CPU (либо их ток). Хотя утилита powertop откуда-то отображает мощность CPU. Но я не очень ей верю, значения выглядят заниженными.

Я размышлял об апгрейде CPU до Core i7-2860QM, но для этого нужно как-то качественно улучшить систему охлаждения, что я не представляю, как сделать в рамках ноута. Одна тепловая трубка, слабая турбинка. Да и VRM на материнской плате вряд ли способен выдать 45 Вт на нагрузку. Возможность управлять напряжением, чтобы сделать андервольт, в BIOS не завезли.

В общем, такие вот мысли. Расскажите мне чего-нибудь, чего я не знаю, и поделитесь своим опытом. =)

 , vrm, , ,

wandrien
()

Arch Linux на Acer Extensa 4220 (Core 2 Duo T6570)

По просьбе @alex0x08 публикую видео работы современного Linux на старом железе:

https://youtu.be/HY88XhYoJr8

 , , , ,

wandrien
()

Проверьте баг в poedit

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

У кого более-менее чистый Арч установлен, можете проверить у себя этот баг?

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

Если у вас не Арч, но версия wxwidgets именно 3.2.x, тоже дайте знать, есть ли баг.

 ,

wandrien
()

Китайцы делают ноутбуки со съемными процессорами

Узнал об этом из видео на канале Ремонтяша: https://www.youtube.com/watch?v=CVUtBWiPcCY

Может кому будет полезна данная информация при выборе ноутбука.

 , ,

wandrien
()

«Фонарик» с плавным гашением

Пока читал обсуждение в теме KDE гасит экран постепенно , вспомнил, чего давно искал.

Хотелось бы такое приложение на Андроид, которое делает псевдо-фонарик в виде светящегося экрана со следующими возможностями:

  • Можно задать цвет заливки экрана.
  • Можно задать время свечения экрана.
  • По прошествии заданного времени экран ПЛАВНО гаснет.

Никто не встречал? Я пытался гуглить, но что пробовал, всё не то.

 , фонарик

wandrien
()

Блоатварь - неизбежное будущее линуксового народа. Таков путь.

Запустил отладку своей программы в gdb. Нажал Y на предложение скачать отладочную информацию для системных библиотек. В результате имел возможность наблюдать, СКОЛЬКО всего там этих самых библиотек:

(gdb) run
Starting program: /media/stuff/vadim/builds/stuurman/bin/stuurman 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading separate debug info for /lib64/ld-linux-x86-64.so.2
Downloading separate debug info for system-supplied DSO at 0x7ffff7fc8000
Downloading separate debug info for /usr/lib/libX11.so.6
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libX11.so.6.
Downloading separate debug info for /usr/lib/libgtk-x11-2.0.so.0
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libgtk-x11-2.0.so.0.
Downloading separate debug info for /usr/lib/libgdk-x11-2.0.so.0
Downloading separate debug info for /usr/lib/libpangocairo-1.0.so.0
Downloading separate debug info for /usr/lib/libatk-1.0.so.0
Downloading separate debug info for /usr/lib/libcairo.so.2
Downloading separate debug info for /usr/lib/libgdk_pixbuf-2.0.so.0
Downloading separate debug info for /usr/lib/libpangoft2-1.0.so.0
Downloading separate debug info for /usr/lib/libfontconfig.so.1
Downloading separate debug info for /usr/lib/libfreetype.so.6
Downloading separate debug info for /usr/lib/libpango-1.0.so.0
Downloading separate debug info for /usr/lib/libharfbuzz.so.0
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libharfbuzz.so.0.
Downloading separate debug info for /usr/lib/libmenu-cache.so.3
Downloading separate debug info for /usr/lib/libexif.so.12
Downloading separate debug info for /usr/lib/libgthread-2.0.so.0
Downloading separate debug info for /usr/lib/libgio-2.0.so.0
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libgio-2.0.so.0.
Downloading separate debug info for /usr/lib/libgobject-2.0.so.0
Downloading separate debug info for /usr/lib/libglib-2.0.so.0
Downloading separate debug info for /usr/lib/libm.so.6
Downloading separate debug info for /usr/lib/libc.so.6
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libc.so.6.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Downloading separate debug info for /usr/lib/libxcb.so.1
Downloading separate debug info for /usr/lib/libgmodule-2.0.so.0
Downloading separate debug info for /usr/lib/libXfixes.so.3
Downloading separate debug info for /usr/lib/libXrender.so.1
Downloading separate debug info for /usr/lib/libXinerama.so.1
Downloading separate debug info for /usr/lib/libXi.so.6
Downloading separate debug info for /usr/lib/libXrandr.so.2
Downloading separate debug info for /usr/lib/libXcursor.so.1
Downloading separate debug info for /usr/lib/libXcomposite.so.1
Downloading separate debug info for /usr/lib/libXdamage.so.1
Downloading separate debug info for /usr/lib/libXext.so.6
Downloading separate debug info for /usr/lib/libz.so.1
Downloading separate debug info for /usr/lib/libpng16.so.16
Downloading separate debug info for /usr/lib/libxcb-render.so.0
Downloading separate debug info for /usr/lib/libxcb-shm.so.0
Downloading separate debug info for /usr/lib/libpixman-1.so.0
Downloading separate debug info for /usr/lib/libjpeg.so.8
Downloading separate debug info for /usr/lib/libtiff.so.6
Downloading separate debug info for /usr/lib/libexpat.so.1
Downloading separate debug info for /usr/lib/libbz2.so.1.0
Downloading separate debug info for /usr/lib/libbrotlidec.so.1
Downloading separate debug info for /usr/lib/libfribidi.so.0
Downloading separate debug info for /usr/lib/libthai.so.0
Downloading separate debug info for /usr/lib/libgraphite2.so.3
Downloading separate debug info for /usr/lib/libmount.so.1
Downloading separate debug info for /usr/lib/libffi.so.8
Downloading separate debug info for /usr/lib/libpcre2-8.so.0
Downloading separate debug info for /usr/lib/libXau.so.6
Downloading separate debug info for /usr/lib/libXdmcp.so.6
Downloading separate debug info for /usr/lib/libzstd.so.1
Downloading separate debug info for /usr/lib/liblzma.so.5
Downloading separate debug info for /usr/lib/libjbig.so.2.1
Downloading separate debug info for /usr/lib/libbrotlicommon.so.1
Downloading separate debug info for /usr/lib/libdatrie.so.1
Downloading separate debug info for /usr/lib/libblkid.so.1
Downloading separate debug info for /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
Downloading separate debug info for /usr/lib/libcanberra-gtk.so.0
Downloading separate debug info for /usr/lib/libcanberra.so.0
Downloading separate debug info for /usr/lib/libvorbisfile.so.3
Downloading separate debug info for /usr/lib/libtdb.so.1
Downloading separate debug info for /usr/lib/libltdl.so.7
Downloading separate debug info for /usr/lib/libvorbis.so.0
Downloading separate debug info for /usr/lib/libogg.so.0
Downloading separate debug info for /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so
Downloading separate debug info for /usr/lib/gtk-2.0/2.10.0/engines/libadwaita.so
Downloading separate debug info for /usr/lib/gio/modules/libgioremote-volume-monitor.so
Downloading separate debug info for /usr/lib/gvfs/libgvfscommon.so
Downloading separate debug info for /usr/lib/gio/modules/libgvfsdbus.so
Downloading separate debug info for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
Downloading separate debug info for /usr/lib/librsvg-2.so.2
Downloading separate debug info for /usr/lib/libcairo-gobject.so.2
Downloading separate debug info for /usr/lib/libxml2.so.2
Downloading separate debug info for /usr/lib/libicuuc.so.73
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libicuuc.so.73.
Downloading separate debug info for /usr/lib/libicudata.so.73
Downloading separate debug info for /usr/lib/libcanberra-0.30/libcanberra-multi.so
Downloading separate debug info for /usr/lib/libcanberra-0.30/libcanberra-pulse.so
Downloading separate debug info for /usr/lib/libpulse.so.0
Downloading separate debug info for /usr/lib/pulseaudio/libpulsecommon-16.1.so
Downloading separate debug info for /usr/lib/libdbus-1.so.3
Downloading separate debug info for /usr/lib/libsndfile.so.1
Downloading separate debug info for /usr/lib/libsystemd.so.0
Downloading separate debug info for /usr/lib/libasyncns.so.0
Downloading separate debug info for /usr/lib/libvorbisenc.so.2
Downloading separate debug info for /usr/lib/libFLAC.so.12
Downloading separate debug info for /usr/lib/libopus.so.0
Downloading separate debug info for /usr/lib/libmpg123.so.0
Downloading separate debug info for /usr/lib/libmp3lame.so.0
Downloading separate debug info for /usr/lib/libcap.so.2
Downloading separate debug info for /usr/lib/libgcrypt.so.20
Downloading separate debug info for /usr/lib/liblz4.so.1
Downloading separate debug info for /usr/lib/libgpg-error.so.0
Downloading separate debug info for /usr/lib/libcanberra-0.30/libcanberra-alsa.so
Downloading separate debug info for /usr/lib/libasound.so.2

Минут 20 ждал, между прочим. Как видно, скачивание некоторых файлов даже оборвалось по тайм-ауту.

Невольно возникает вопрос: а точно ли весь этот хлам необходим для программы, которая по функциям не далеко ушла от какого-нибудь виндового Проводника из 90-х? Парсер XML и всякий ICU - это всё понятно, но… все подряд аудиокодеки, компрессоры и libsystemd?…

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

Иногда так и подмывает запустить какую-нибудь Haiku, а то и вовсе kolibriOS, и познать дзен.

 , ,

wandrien
()

Dependency hell

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

Вот нужно нам поставить драйвер для rtl8188eu. Смотрим в репах:

ester / # dnf search 8188
dkms-rtl8188eu.x86_64 : The standalone RTL8188EU driver
dkms-rtl8188eu.i686 : The standalone RTL8188EU driver
dkms-rtl8188gu.noarch : The standalone RTL8188gu driver
kernel-module-8188gu-5.15-generic.x86_64 : Binary module 8188gu for kernel-5.15-generic
kernel-module-8188gu-5.15-generic.i686 : Binary module 8188gu for kernel-5.15-generic
kernel-module-8188gu-6.1-generic.x86_64 : Binary module 8188gu for kernel-6.1-generic
kernel-module-8188gu-6.1-generic.i686 : Binary module 8188gu for kernel-6.1-generic
kernel-source-rtl8188gu.noarch : Source code of RTL8188gu kernel driver
ester / # dnf info dkms-rtl8188eu.x86_64
Имеющиеся пакеты
Имя          : dkms-rtl8188eu
Версия       : 4.1.8
Выпуск       : 0.775137f.1
Архитектура  : x86_64
Размер       : 436 k
Источник     : rtl8188eu-4.1.8-0.775137f.1.src.rpm
Репозиторий  : mirror-rosa-x86_64-contrib
Краткое опис : The standalone RTL8188EU driver
URL          : https://github.com/lwfinger/rtl8188eu
Лицензия     : GPLv2
Описание     : This package contains the driver for Realtek 8188 802.11n USB wireless
             : adapters (RTL8188EU).

Пробуем поставить. Получаем говна на лопате вместо установки:

ester / # dnf install dkms-rtl8188eu.x86_64
Ошибка: 
 Проблема: package dkms-rtl8188eu-4.1.8-0.775137f.1.x86_64 requires dkms, but none of the providers can be installed
  - package kernel-6.1-generic-6.1.20-2.x86_64 requires (kernel-6.1-generic-devel(x86-64) = 6.1.20-2 if dkms), but none of the providers can be installed
  - conflicting requests
  - problem with installed package kernel-6.1-generic-6.1.20-2.x86_64
(попробуйте добавить «--skip-broken» для пропуска удаляемых пакетов или «--nobest», чтобы использовать не только наилучшие варианты пакетов)

Ладно, давайте выясним, чо ему не нравится.

Вот такие ядра установлены в системе:

ester / # dnf list installed | grep kernel-6.1-generic
kernel-6.1-generic.x86_64                           6.1.20-2                   @Main                       
kernel-6.1-generic.x86_64                           6.1.58-1                   @mirror-rosa-x86_64-main    
task-kernel-6.1-generic.x86_64                      0.4-2                      @Main                       

А вот для таких ядер есть заголовочные файлы в репозитории:

ester / # dnf repoquery --whatprovides kernel-devel
kernel-5.10-generic-devel-0:5.10.184-1.i686
kernel-5.10-generic-devel-0:5.10.184-1.x86_64
kernel-5.15-generic-devel-0:5.15.127-1.i686
kernel-5.15-generic-devel-0:5.15.127-1.x86_64
kernel-5.16-generic-devel-0:5.16.19-2.i686
kernel-5.16-generic-devel-0:5.16.19-2.x86_64
kernel-5.17-generic-devel-0:5.17.11-2.i686
kernel-5.17-generic-devel-0:5.17.11-2.x86_64
kernel-5.4-generic-devel-0:5.4.150-1.i686
kernel-5.4-generic-devel-0:5.4.150-1.x86_64
kernel-6.1-generic-devel-0:6.1.19-1.i686
kernel-6.1-generic-devel-0:6.1.19-1.x86_64
kernel-6.1-generic-devel-0:6.1.58-1.i686
kernel-6.1-generic-devel-0:6.1.58-1.x86_64

Ну вы поняли, да?

Вы берёте официальный установщик ROSA Desktop Fresh. Ставите с него систему. Получаете оттуда ядро 6.1.20-2. Обновляетесь из официального репозитория до самых свежих пакетов.

А ХИДЕРОВ К ЭТОМУ ЯДРУ В РЕПОЗИТОРИИ НЕТ.

Есть только хидеры для 6.1.19-1 и 6.1.58-1.

Такая вот стабильная платформа. Фантастично…

Чо-то я разочарован.

 , ,

wandrien
()

Странная проблема (?) с GIMP

В общем даже хз, как объяснить.

Вот смотрите, гимп, запущенный под оффтопиком: https://ibb.co/sPptFP4

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

Когда я использую гимп на онтопике, то я могу делать увеличение масштаба вплоть до 1000%, и эта шахматная сетка на всех масштабах рисуется.

Но когда я в версии под оффтопик пытаюсь сделать масштаб больше чем 200%, то сетка перестаёт рисоваться, и вместо неё отображается однотонный серый фон.

Как мне сделать, чтобы под виндой поведение было аналогично как под линем? Кто-нибудь сталкивался?

Версия: GIMP 2.10.34 (редакция 2)

P.S. И да, линукс тут при том, что GIMP- это СПО, а мы на http://opensource.ru/

 

wandrien
()

Есть возможность в gimp сделать кастомную панель с кнопками для нужных фильтров/трансформаций/пресетов инструментов?

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

 

wandrien
()

Вопрос по редакциям Альт Линукс

Есть как минимум:

  • Альт Рабочая станция (бесплатно для физлиц, платно для юрлиц; присутствует в реестре)
  • Альт Сервер (бесплатно для физлиц, платно для юрлиц; присутствует в реестре)
  • Альт Образование (бесплатно для физлиц, платно для юрлиц; присутствует в реестре)
  • Simply Linux (бесплатно как для физлиц, так и для юрлиц; нет в реестре)

(прочие вариации не перечисляю)

Понятно, что поставляемые образы будут отличаться набором пакетов и какими-нибудь дефолтными конфигами. Но интересует такой вопрос:

Принципиально разные функциональные отличия, связанные с проприетарным кодом, в этих редакциях есть? Что именно покрывается коммерческой лицензией - только лишь юридические вопросы, связанные с реестром отечественного ПО и тому подобного, или в том числе фактические различия в доступном ПО?

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

 ,

wandrien
()

Как мне добиться такого режима обрезки изображения?

Я в GIMP «сшиваю» сканы чертежей из нескольких фрагментов. Обычно после подгонки фрагментов остаются вот такие выступы по краям, как я схематически изобразил здесь:

https://ibb.co/qyq74zj

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

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

Есть готовый скрипт для GIMP, который реализует такую обрезку?

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

 ,

wandrien
()

Обработка сканированных документов

Занимаюсь сейчас следующим делом.

Есть несколько сотен изображений со сканами чертежей. Их нужно обработать таким образом:

  1. На большинстве сканов лист лежит под небольшим углом. Нужно довернуть изображение на этот угол, чтобы выровнять картинку.
  2. Некоторые листы сканировались в несколько приёмов. Например, лист формата A3x4 сканирован в 5 приёмов с перекрытиями. Нужно из таких фрагментов собрать одно цельное изображение.
  3. Результаты нужно собрать в PDF.

Гуглю автоматически средства, которыми можно решить задачи 1 и 2.

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

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

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

 , ,

wandrien
()

«Слишком умный» установщик ROSA DESKTOP FRESH

Тут вот @MoldAndLimeHoney жаловался на нефункциональный инсталлятор Убунты: Новый инсталлятор Убунту -- мусор

Так вот я про установщик ROSA хочу рассказать. Я так понимаю, там Anaconda используется.

Берём свежий релиз ROSA FRESH R12.4: http://mirror.rosalab.ru/rosa/rosa2021.1/iso/ROSA.FRESH.12/plasma5/. Запускаем. В качестве раздела для установки выбираем том LVM под корень и больше никаких разделов не добавляем.

Получаем ошибку:

Файловая система /boot не может иметь тип lvmlv

И невозможность продолжить установку.

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

Во-вторых. Берём установочный образ ROSA FRESH R3 на платформе 2012.1. Запускаем установку в точно таких же условиях. И внезапно всё устанавливается без проблем. Не только не жалуется на то, что /boot на LVM, но еще и устанавливает загрузчик, и он корректно работает и грузит ОС.

Такие дела.

Кастану сюда пользвателя @irton чисто чтобы поныть ему, что нихрена не работает(

И что мне теперь, вручную из консоли её ставить как какой-нибудь Арч…

 ,

wandrien
()

Дизайнеры UI снова получают деньги за красивые глаза

У меня что, мало места на экране для оглавления? Это что за вертикальная щель?

https://youtu.be/0shDhqNq1ko

 , ,

wandrien
()

Bitrix24

Можно я тут немного разноюсь? Сил блин нет.

Итак, облако Bitrix.

Содержимое папки локально:

$ find 5.\ Раздел\ ПД\ №\ 12\ ч.3-ВОР/*ПЗУ*
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.2 кн. 1-ПЗУ
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.3 кн. 1-ПЗУ
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.3 кн. 1-ПЗУ/Изм_Нов.(12.01.2023)
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.3 кн. 1-ПЗУ/Изм_Нов.(12.01.2023)/01.1 Титульный лист А4_12.05.2023_СМ3.1.docx
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.3 кн. 1-ПЗУ/Изм_Нов.(12.01.2023)/03.Содержание тома СМ3.1.docx

Видите лишнюю пустую папку 1. Раздел ПД № 12 ч.2 кн. 1-ПЗУ, которой не должно быть внутри Раздел ПД № 12 ч.3-ВОР? Казалось бы, случайность. Кто-то создал лишнюю папку не в том разделе.

Но таких лишних папок создано 15 штук.

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

А теперь суть.

Содержимое указанных выше папок в облаке:

5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.2 кн. 1-ПЗУ
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.2 кн. 1-ПЗУ/Изм_Нов.(12.01.2023)
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.2 кн. 1-ПЗУ/Изм_Нов.(12.01.2023)/01.1 Титульный лист А4_12.05.2023_СМ3.1.docx
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.2 кн. 1-ПЗУ/Изм_Нов.(12.01.2023)/03.Содержание тома СМ3.1.docx
5. Раздел ПД № 12 ч.3-ВОР/1. Раздел ПД № 12 ч.3 кн. 1-ПЗУ

То есть файлы переехали в другую папку. И локально это не отображается. Локально они лежат где положено. А в облаке случился бардак.

И между собой они не синхронизируются. Так и лежат несогласованно.

Содержимое самих файлов совпадает.

Утро понедельника начинается не с кофе.

 , ,

wandrien
()

mtime у файлов сбросился на 0

Например:

[root@aquila ~]# ls -l /var/
drwxr-xr-x 21 root root   4096 мая 28 12:51 cache
drwxr-xr-x  4 root root   4096 мая 12 20:42 db
drwxr-xr-x  3 root root   4096 янв  1  1970 dpkg
drwxr-xr-x  5 bin  bin    4096 янв  1  1970 dt
drwxr-xr-x  2 root root   4096 янв  1  1970 empty
drwxrwxr-x  2 root    60  4096 янв  1  1970 games
drwxr-xr-x 67 root root   4096 мая 28 21:09 lib
drwxr-xr-x  2 root root   4096 янв  1  1970 local
lrwxrwxrwx  1 root root     11 фев  1 03:51 lock -> ../run/lock
drwxr-xr-x 17 root root   4096 мая 28 21:48 log
lrwxrwxrwx  1 root root     10 фев  1 03:51 mail -> spool/mail
drwxrwx---  2 root named  4096 мая 24 19:35 named
drwx------  3 root root   4096 янв  1  1970 net-snmp
drwxr-xr-x  2 root root   4096 янв  1  1970 opt
lrwxrwxrwx  1 root root      6 фев  1 03:51 run -> ../run
drwxr-xr-x  8 root root   4096 янв  1  1970 spool
drwxrwxrwt 10 root root  12288 мая 28 21:42 tmp

На самом деле там полный том ФС таких файлов. Как такое могло произойти вообще?

 , mtime

wandrien
()

Сгенерировать список файлов для каждого коммита

while read commit ; do
    while read path ; do
        echo "$commit:$path"
    done < <( git diff-tree --no-commit-id --name-only "$commit" -r )
done < <( git log --format=format:%H)

Возможно ли то же самое сделать быстрее? Не порождая отдельный git diff-tree на каждый коммит. Для репозитория на 25 тысяч коммитов операция выполняется достаточно долго. Минут 20-30, навскидку.

 ,

wandrien
()

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