LINUX.ORG.RU

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

EasyEffects не нужно, или PipeWire для продвинутых: часть 3

Статьи — Desktop

Во второй части мы разобрали вопрос, как управлять параметрами эффектов в реальном времени, без перезапуска PipeWire.

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

Модуль filter-chain, помимо встроенных (builtin) эффектов, поддерживает два самых распространенных в Linux стандарта DSP плагинов - LADSPA и LV2. Прежде всего, эти плагины предназначены для использования в DAW системе (цифровая звуковая рабочая станция, в которой «делают музыку»), такой как Ardour, Qtractor, LMMS. Они реализуют множество эффектов, таких как эквалайзер, компрессор, лимитер и тому подобное.

LADSPA это более простой и более старый стандарт, LV2 более развитый, но большинство популярных в Linux наборов LV2 плагинов поставляются и в LADSPA варианте. PipeWire может использовать плагины обоих стандартов, поэтому используем сразу LV2 вариант.

Реализуем очень нужный многим эффект – нормализацию громкости, или компрессию. То есть, нам нужно, чтобы тихие звуки стали громче, и были слышны в зашумлённой обстановке (на работе, к примеру) из плохих динамиков ноутбука. Также эта проблема очень актуальна при просмотре фильмов, часто есть огромная разница в громкости между диалогами и активными сценами (когда начинают бить морды). Надо эту разницу уменьшить.

Для этого мы используем замечательный набор плагинов LSP. Эти плагины доступны во всех основных форматах, мы же используем LV2 версию. В составе набора есть плагин Compressor Mono, который хорошо подходит для нашей задачи – там предусмотрен «обратный» режим работы, когда тихие звуки делаются более громкими (а не только громкие – более тихими, как в большинстве аналогичных плагинов). Это именно то, что нужно.

Добавим этот плагин в цепочку фильтров filter-chain. Для этого, сначала надо узнать такую вещь, как URI плагина. Это такая форма его названия, в виде веб-адреса. Но это не настоящая веб-ссылка, просто такая форма ))). В общем, это тяжело объяснить.

Чтобы узнать URI плагина, выполним команду lv2ls. Команда выдаст URI всех плагинов, которые установлены в системе. Среди них должен быть нужный нам плагин http://lsp-plug.in/plugins/lv2/compressor_mono. Если такого нет, надо установить набор плагинов LSP, при помощи пакетного менеджера дистрибутива.

Теперь добавим в конфиг-файл из предыдущих частей вот такой кусок, в массив nodes (полная версия конфига будет в конце статьи):

{
  type = lv2
  name = compressor
  label = compressor
  plugin = "http://lsp-plug.in/plugins/lv2/compressor_mono"
  control = { "cm" = 1 "cr" = 4.0}
}

Как видно, это очень похоже на добавление builtin эффекта. Только теперь тип будет lv2, plugin - указываем URI плагина. name, label – название, которое мы сами даём этому эффекту, может быть любое. По нему потом всё будет доступно через pw-cli для изменения параметров. Добавляем два параметра - "cm" = 1 это режим работы, который делает тихие звуки громче (а не громкие – тише). "cr" = 4.0 – это степень компрессии, во сколько раз. Чем больше это значение, тем больше будет выравниваться громкость.

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

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

Для этого используем утилиту lv2info. Выполним команду

lv2info http://lsp-plug.in/plugins/lv2/compressor_mono

В выводе команды видим всю информацию о плагине, нас интересуют блоки вида Port N:. Порты у плагина, упрощенно, есть двух видов - это входы/выходы, через которые передается звук, и параметры самого плагина, которые можно задавать и изменять. Находим среди портов те, которые соответствуют нужным нам параметрам. Ищем, ориентируясь на поле Name, оно говорящее, сразу понятно что это.

Port 17:
Type:
  http://lv2plug.in/ns/lv2core#ControlPort
  http://lv2plug.in/ns/lv2core#InputPort
  Scale Points:
    0 = "Down"
    1 = "Up"
    2 = "Boot"

  Symbol:      cm
  Name:        Compression mode
  Minimum:     0.000000
  Maximum:     2.000000
  Default:     0.000000
  Properties:  http://lv2plug.in/ns/ext/port-props#hasStrictBounds
  http://lv2plug.in/ns/lv2core#integer                           
  http://lv2plug.in/ns/lv2core#enumeration

Это описание параметра cm, который мы меняем в конфиг-файле. Из этого куска мы узнаем, что есть параметр Name: Compression mode, он имеет имя Symbol: cm, может принимать значения 0, 1 или 2.

  Scale Points:
    0 = "Down"
    1 = "Up"
    2 = "Boot"

Нам нужен режим Up (делать громче тихий звук), значит мы должны установить этот параметр в значение 1.

Далее, надо «залинковать» этот дополнительный эффект к уже добавленному ранее эквалайзеру. Для этого добавляем в конфиг-файле, в массив links:

{ output = "eq_band_15:Out" input = "compressor:in" }

то есть подключить вход компрессора к выходу 15 полосы эквалайзера. И последний штрих: надо сделать выходом всей цепочки эффектов – выход компрессора.

outputs = [ "compressor:out" ]

Теперь, помимо эквалайзера, у нас в цепочке обработки будет компрессор. Какими параметрами может потребоваться управлять? Можно включать/отключать компрессор

pw-cli s 36 Props '{params = ["compressor:enabled" 0]}'
pw-cli s 36 Props '{params = ["compressor:enabled" 1]}'

Не забываем, что 36 – это номер ноды Equalizer Sink, у вас он может быть совсем другим. Как его определить - см. Часть 2.

Ещё можно подрегулировать степень компрессии, параметр cr.

 pw-cli s 36 Props '{params = ["compressor:cr" 10.0]}'

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

context.modules = [
    { name = libpipewire-module-filter-chain
        args = {
            node.description = "Equalizer Sink"
            media.name       = "Equalizer Sink"
            filter.graph = {
                nodes = [
                    {
                        type  = builtin
                        name  = eq_preamp
                        label = bq_highshelf
                        control = { "Freq" = 0 "Q" = 1.0 "Gain" = 5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_1
                        label = bq_peaking
                        control = { "Freq" = 25.0 "Q" = 1.7 "Gain" = -10.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_2
                        label = bq_peaking
                        control = { "Freq" = 40.0 "Q" = 1.7 "Gain" = -10.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_3
                        label = bq_peaking
                        control = { "Freq" = 63.0 "Q" = 1.7 "Gain" = -9.0}
                    }
                    {
                        type  = builtin
                        name  = eq_band_4
                        label = bq_peaking
                        control = { "Freq" = 100.0 "Q" = 1.7 "Gain" = 3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_5
                        label = bq_peaking
                        control = { "Freq" = 160.0 "Q" = 1.7 "Gain" = 3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_6
                        label = bq_peaking
                        control = { "Freq" = 250.0 "Q" = 1.7 "Gain" = 3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_7
                        label = bq_peaking
                        control = { "Freq" = 400.0 "Q" = 1.7 "Gain" = -5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_8
                        label = bq_peaking
                        control = { "Freq" = 630.0 "Q" = 1.7 "Gain" = -5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_9
                        label = bq_peaking
                        control = { "Freq" = 1000.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_10
                        label = bq_peaking
                        control = { "Freq" = 1600.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_11
                        label = bq_peaking
                        control = { "Freq" = 2500.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_12
                        label = bq_peaking
                        control = { "Freq" = 4000.0 "Q" = 1.7 "Gain" = -5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_13
                        label = bq_peaking
                        control = { "Freq" = 6300.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_14
                        label = bq_peaking
                        control = { "Freq" = 10000.0 "Q" = 1.7 "Gain" = 0.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_15
                        label = bq_peaking
                        control = { "Freq" = 16000.0 "Q" = 1.7 "Gain" = 0.0 }
                    }
                    {
                        type = lv2
                        name = compressor
                        label = compressor
                        plugin = "http://lsp-plug.in/plugins/lv2/compressor_mono"
                        control = { "cm" = 1 "cr" = 4.0}
                    }
                ]
                links = [
                    { output = "eq_preamp:Out" input = "eq_band_1:In" }
                    { output = "eq_band_1:Out" input = "eq_band_2:In" }
                    { output = "eq_band_2:Out" input = "eq_band_3:In" }
                    { output = "eq_band_3:Out" input = "eq_band_4:In" }
                    { output = "eq_band_4:Out" input = "eq_band_5:In" }
                    { output = "eq_band_5:Out" input = "eq_band_6:In" }
                    { output = "eq_band_6:Out" input = "eq_band_7:In" }
                    { output = "eq_band_7:Out" input = "eq_band_8:In" }
                    { output = "eq_band_8:Out" input = "eq_band_9:In" }
                    { output = "eq_band_9:Out" input = "eq_band_10:In" }
                    { output = "eq_band_10:Out" input = "eq_band_11:In" }
                    { output = "eq_band_11:Out" input = "eq_band_12:In" }
                    { output = "eq_band_12:Out" input = "eq_band_13:In" }
                    { output = "eq_band_13:Out" input = "eq_band_14:In" }
                    { output = "eq_band_14:Out" input = "eq_band_15:In" }
                    { output = "eq_band_15:Out" input = "compressor:in" }
                ]
                inputs = [ "eq_preamp:In" ]
                outputs = [ "compressor:out" ]
            }
            capture.props = {
                node.name   = "effect_input.eq6"
                media.class = Audio/Sink
                audio.channels = 2
                audio.position=[FL FR]
            }
            playback.props = {
                node.name   = "effect_output.eq6"
                node.passive = true
                audio.channels = 2
                audio.position=[FL FR]
            }
        }
    }
]

 , ,

James_Holden
()

Debian ISO FastInstall — скрипт для ускорения установки Debian из ISO

Новости — Debian
Группа Debian

Стандартные ISO-образы Debian производят установку системы путём инсталляции всех необходимых пакетов через apt, вызывая fsync() на каждое действие с файлами (стандартное поведение apt/dpkg). Синхронизация состояния файлов значительно уменьшает скорость установки, особенно на медленных HDD.

Проблема с медленной установкой Debian не нова. Еще в 2014 году Petter Reinholdtsen представил eatmydata-udeb — скрипт, отключающий вызовы fsync() для установочного ПО. Однако его работа так и не была задействована по умолчанию в ISO-образах, а также не ускоряет небыстрый начальный этап установки базовых пакетов.

Debian ISO FastInstall ускоряет установку Debian из ISO путём корректной активации eatmydata на всех её этапах.
Скрипт добавляет недостающие файлы eatmydata, помещает скрипт-патчер и пересобирает классические и live ISO-файлы Debian, не изменяя содержимое deb-пакетов.

Пример установки Debian 10.6.0 amd64 из DVD-файла на виртуальной машине, на HDD, без кеширования записи.

  • Оригинальный файл: 1 час 44 минуты 20 секунд
  • Патченный файл: 10 минут 37 секунды

Совместимость скрипта проверена классических и live-файлах релизов Stretch, Buster и Bullseye, а также на образах non-free firmware.

>>> Подробности

 , , ,

ValdikSS
()

Проект GNOME ввёл в строй web-каталог приложений

Новости — GNOME
Проект GNOME ввёл в строй web-каталог приложений
Группа GNOME

Разработчики проекта GNOME представили новый каталог приложений apps.gnome.org, на котором предложена подборка лучших приложений, созданных в соответствии с философией сообщества GNOME и без проблем интегрируемых с рабочим столом. Предложены три раздела: основные приложения, дополнительные приложения от сообщества, развиваемые в рамках инициативы GNOME Circle, и приложения для разработчиков. В каталоге также предложены мобильные приложения, созданные с использованием технологий GNOME, которые помечены в списках специальным значком.

Из особенностей каталога отмечаются:

  • ориентация на привлечение пользователей к процессу разработки через отправку отзывов, участие в переводе интерфейса на разные языки и оказание финансовой поддержки;

  • наличие переводов описаний для большого числа языков, в том числе для русского, белорусского и украинского;

  • предоставление актуальной информации о версиях, основанной на метаданных, используемых в GNOME Software и Flathub;

  • возможность размещения приложений, отсутствующих в каталоге Flathub (например, приложений из базовой поставки).

Источник — opennet.ru.

>>> Подробности

 ,

b0tN3t
()

Чем пользуетесь из F-Droid?

Форум — Mobile

Собственно сабж. Третий андрофон. В первый раз ставил из него судоку. Во второй: блокнот. В этот раз: «Транзистор» для прослушивания радио.

А кто чем ещё пользуется?

 ,

AlexVR
()

Linux, лазерный гравер, wine - как заставить работать?

Форум — Linux-hardware

Всем доброго времени суток.

На днях обзавёлся простеньким лазерным гравером под неким наименованием «Jedi Desktop DIY Violet Laser Engraving Machine», версия на 5500mW (https://ru.aliexpress.com/item/JEDI-2500mW-Desktop-DIY-Violet-Laser-Engraving...). Ага, вероятно чей-то джедайский самопал, но была распродажа, поэтому со скидкой очень дёшево получилось. В общем не могу теперь завести его под дистрами Debian 9 и Xubuntu 16.04.3. Взял виндовый драйвер, виндовую софтину, накатил через wine. Всё как бы установилось, и само ПО даже пашет. Но гравер конектится к компам через USB, и вот тут что-то как-то прогой он не обнаруживается. Что делать? Есть ли линёвая альтернатива? Или есть способы бороться с wine?

Обидно, но под виндой пашет на ура, уже проверил. Чёт совсем не хочется держать целую тачку VMware для этого дела(. Подскажите иные варианты, может у кого есть опыт? Спасибо.

П.С. В VMware он тоже не работает(. Только на реальной винде(.

П.П.С. А нет, всё-таки только что завёлся на VMware 12.5.6 с MS Windows 10 x64! Надо было перевоткнуть в usb. Работает штатно. Осталось победить wine. Есть идеи?

 ,

cheshire_cat
()

Ищу CAM для домашнего ЧПУ станка

Форум — Desktop

Привет, ЛОР.

Мне скоро должна приехать новая игрушка: китайский конструктор ЧПУ станка под названием CNC3018. Управляющая плата от китайцев работает на Grbl. Вполне возможно, что я заменю плату на что-нибудь другое.

Собираюсь фрезеровать на нем печатные платы и резать лазером тонкую фанеру. Платы проектирую через kicad. Фанеру пока не раскраиваю ни в чем, но скорее всего буду делать это через inkscape и самописные скрипты для генерации svg, но вы можете посоветовать более подходящий для этого софт. Еще я умею делать трехмерные модели через freecad.

Собственно, буду рад, если кто-нибудь посоветует свободного CAM софта для генерации g-code под это дело. Я нагуглил такую ссылку http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Cam, но у меня же уйдет куча времени чтобы изучить и попробовать весь софт из этого списка. Нужны истории успеха и советы, основанные на личном опыте. Кто чем пользуется?

 , ,

Deleted
()

Maslow CNC 1.0

Новости — Open Source
Группа Open Source

Разработчики рады сообщить о выходе первой мажорной версии 1.0 набора программ для работы с Maslow CNC.

Maslow CNC — развиваемый сообществом проект с открытым исходным кодом, целью которого является предоставление возможности сборки и использования доступного крупноформатного станка с числовым программным управлением (ЧПУ).

На сайте проекта доступны руководство по сборке станка и магазин комплектующих, если они вам необходимы, где также можно приобрести весь набор Maslow за $350 готовый к сборке.

В репозитории проекта на GitHub вы можете скачать или форкнуть исходный код и дизайн-файлы всех компонентов Maslow CNC, а именно:

  • скачать прошивку, на которой работает станок;
  • скачать готовые пакеты Ground Control, программы управления и мониторинга станка с GUI для OS X и Windows, для дистрибутивов GNU/Linux установка возможна через менеджер пакетов для Python — pip;
  • скачать схемы печатных плат для электроники, используемой для управления станком;
  • скачать CAD-файлы корпуса станка и раскройки компонентов.

Ознакомиться с 3D-моделью готового станка и всех его частей можно в браузерной CAD-среде OnShape.

>>> Подробности

 ,

Bruce_Lee
()

Релиз Lector 0.5

Новости — Open Source
Релиз Lector 0.5
Группа Open Source

Lector — читалка книг и комиксов с qt5-интерфейсом, написанная на python.

В новой версии:

  • поиск;
  • поддержка fb2;
  • более подробный Table of Content;
  • запись в log-файл и уведомления об ошибках;
  • инверсия цветов и двухстраничный просмотр для comicbook и pdf;
  • исправления недочетов пользовательского интерфейса и некоторых других ошибок.

Поддерживаемые форматы файлов: pdf, epub, fb2, mobi, azw, cbr, cbz.

github

>>> Подробности

 , , ,

Deleted
()

Релиз читалки Foliate 2.2.0

Новости — Open Source
Группа Open Source

Вышла новая версия Foliate — читалки электронных книг на GTK.

В этой версии добавлена поддержка следующих форматов:

  • FictionBook (.fb2, .fb2.zip);
  • Comic book archive (.cbr, .cbz, .cbt, .cb7);
  • Plain text (.txt);
  • Unpacked EPUB files.

Кроме этого:

  • добавлена опция для установки максимальной ширины страницы;
  • при просмотре библиотеки показываются недавно открытые книги и прогресс чтения;
  • добавлен поиск книг по метаданным;
  • добавлена поддержка OPDS*;
  • улучшения в просмотрщике изображений, озвучке текста, аннотациях.

>>> Подробности

 , , , ,

anonymous
()

Ненавязчивое изучение английского языка

Форум — Talks

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

 

CryNet
()

Запущен проект Debian Social

Форум — Talks

Запущен проект Debian Social, совмещающий себе социальные сервисы для публикации фотографий, видеороликов, а также ведения блогов и микроблогов. Проект создавался для разработчиков Debian и сторонников проекта, и в будущем в его состав войдут новые сервисы, в том числе и мессенджер. Соцсервисы «для своих»

Разработчики Linux-дистрибутива Debian анонсировали набор социальных сервисов, созданных специально для других участников проекта Debian. Они объединены под одним названием Debian Social и доступны по адресу debian.social.

Авторы Debian Social стремились создать отдельное безопасное веб-пространство, направленное на общение как самих разработчиков Debian, так и всех сторонников проекта. В составе Debian Social есть аналоги Twitter, YouTube, Instagram и даже «Живого журнала». Разработка сервиса началась в январе 2020 г., но на момент публикации материала единый ресурс, объединяющий в себе все эти сервисы, не был запущен. При этом большинство из них было доступно по отдельности и исключительно в тестовом режиме. Также разработчики подготовили Wiki-страницу с кратким описанием возможностей каждого из них.

Слизано отсюда https://www.cnews.ru/news/top/2020-03-20_razrabotchiki_debian_sozdali

Надеюсь все пойдет хорошо

 

explorer
()

Столмана забанили, ESR-а забанили, куда мы катимся?

Форум — Talks

https://lunduke.com/posts/2020-03-9-b/

Last week, Eric S Raymond (often known as ESR, author of The Cathedral and the Bazaar, and co-founder of the Open Source Intiative) was banned from the Open Source Intiative (the “OSI”).

Это же отцы русской демократии^W^Wопенсорса. Как так-то? Что происходит?

 

Legioner
()

Arduino. Библиотека для шаговых двигателей.

Форум — Development

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

На удивление не нашёл ни одной библиотеки удовлетворяющей хотябы двум критериям.

  1. Чтобы работала не через Delay. Это не правильно описал конечно. Чтобы работало не останавливая процесс других вычислений.

  2. Чтобы работало точно. «Вот сказал один оборот точно» - и точно один оборот (первый пункт здесь причём).

«Железную багиню» для поржать приглашу позже.

 

HIS
()

Кто-то говорил, что ThinkPad X230 хуже X220.

Форум — Talks

Типа X220 наиболее оптимален из-за какого-то аппаратного вопроса. Из-за клавы что-ли? В X220 она ещё старорежимная, царская, а в x230 уже хипстерская.

Или там какой-то другой косяк в X230, типа там память припаяна или убунта не ставицца?

 

hlamotron
()

Делюсь опытом ускорения чтения файловой систем

Форум — General

Привет, друзья! С Праздником!

Интересуясь настройкой производительности своего ноута, натолкнулся на интересный тест в комментарии файла ioblksize.h (coreutils) от автора его кода Jim Meyering:

#!/bin/bash
for i in $(seq 0 10)
	do bs=$((1024*2**$i))
    printf "%7s=" $bs
    timeout --foreground -sINT 2 \
        dd bs=$bs if=/dev/zero of=/dev/null 2>&1 \
        | sed -n 's/.* \([0-9,.]* [GM]B\/s\)/\1/p'
done

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

                per-system transfer rate (GB/s)
   blksize   #1    #2    #3    #4    #5    #6    #7
   ------------------------------------------------
      1024  .73   1.7   2.6   .64   1.0   2.5   1.3
      2048  1.3   3.0   4.4   1.2   2.0   4.4   2.5
      4096  2.4   5.1   6.5   2.3   3.7   7.4   4.8
      8192  3.5   7.3   8.5   4.0   6.0  10.4   9.2
     16384  3.9   9.4  10.1   6.3   8.3  13.3  16.8
     32768  5.2   9.9  11.1   8.1  10.7  13.2  28.0
     65536  5.3  11.2  12.0  10.6  12.8  16.1  41.4
    131072  5.5  11.8  12.3  12.1  14.0  16.7  54.8
    262144  5.7  11.6  12.5  12.3  14.7  16.4  40.0
    524288  5.7  11.4  12.5  12.1  14.7  15.5  34.5
   1048576  5.8  11.4  12.6  12.2  14.9  15.7  36.5

Но на некоторых машинах чтение ФС очевидно быстрее с альтернативным размером блока. Так оказалось и в случае с моим N3540:

   1024=667 MB/s
   2048=1,2 GB/s
   4096=2,1 GB/s
   8192=3,2 GB/s
  16384=4,2 GB/s
  32768=5,1 GB/s
  65536=5,8 GB/s
 131072=6,2 GB/s
 262144=6,5 GB/s
 524288=6,6 GB/s
1048576=5,4 GB/s

Наблюдается очевидный пик при размере блока 512 Кб. Тем не менее, по умолчанию при подключении диска к системе параметр read_ahead_kb устанавливается в 128 Кб. Чтобы проверить, повлияет ли на скорость чтения ФС изменение размера блока по рекомендации теста Jim Meyering, я провёл ряд испытаний в максимально одинаковых условиях: сразу после загрузки, когда участвующие в тестах дирректории ещё не кэшированы. Засекал время на копирование файлов с жёсткого диска в /tmp. Использовал как системную cp, так и утилиту rsync. В тестах принимали участие процессор N3540 и SSD от одного производителя. Результат в секундах, ФС ext4.

Видео 2,4 ГбМелкие файлы (2110 шт.) 1,7 Гб
командаcp -rrsync -avhiscp -rrsync -avhis
размер блока128 Кб512 Кб128 Кб512 Кб128 Кб512 Кб128 Кб512 Кб
«холодный старт»10,6989,57921,78113,9308,6088,22716,89612,048
повторное копирование3,9052,80512,50812,4852,0482,0279,1418,990

Как видно из таблицы, с блоком 512 Кб наблюдается значительное ускорение при чтении незакэшированного содержимого диска (кэшированные файлы читаются примерно одинаково). Особенно это сказывается на работе rsync. Чтобы изменение сделать постоянным, добавил правило udev:

ACTION=="add|change", SUBSYSTEM=="block", RUN+="/bin/sh -c '/bin/echo 512 > /sys%p/queue/read_ahead_kb'"

Результатом очень доволен. Приятно узнать, что твой компьютер может больше, лучше, быстрее. А самое важное – на ожидание копирований/перемещений файлов тратится меньше драгоценного времени.

Интересно, с каким размером блока у вас файловая система работает быстрее? Поделитесь в комментариях!

 , ,

rmu
()

Умственные способности отрицательно коррелируют со склонностью к «правой» идеологии и предубеждениям

Форум — Science & Engineering

Оригинальная публикация (платный доступ)

Полный текст (Sci-Hub)

Резюме

Когнитивное функционирование индивидов, строго приверженных «правым» позициям и предубеждениям, привлекает значительный научный интерес. Несмотря на то, что исследованию когнитивных стилей посвящено множество работ, когнитивным способностям уделяется меньшее внимание. Работы, посвящённые этой теме, в целом показывают ассоциацию сниженных когнитивных способностей с более выраженной поддержкой «правых» идеологических установок и повышенным уровнем предубеждения. В то же время, эта взаимосвязь мало учитывается в литературе. Данный мета-анализ выявил среднюю величину эффекта r = −.20 [95% доверительный интервал [−0.23, −0.17] на основании 67 работ, N = 84017] для взаимосвязи между когнитивными способностями и «правыми» идеологическими установками, и r = −.19 (95% доверительный интервал [−0.23, −0.16]; на основании 23 работ, N = 27011) для взаимосвязи между когнитивными способностями и предубеждениями. Величина эффекта для различных когнитивных способностей и характеристик выборки значительно не варьировала. Эффект строго зависел от меры, по которой оценивались идеологические установки и предубеждения, и имел наибольшую величину для авторитарности и этноцентризма. Таким образом, когнитивные способности являются важным фактором, определяющим развитие идеологических установок и предубеждений, и им следует уделять больше внимания при построении теорий и моделей.

Авторы выделяют 4 основных вывода, которые позволяет сделать данная работа:

  1. Люди, располагающие бо́льшими когнитивными ресурсами, с большей вероятностью придерживаются «левых» взглядов и склонны к меньшей предубеждённости, тогда как люди с меньшими когнитивными способностями более склонны к «правым» взглядам и предубеждённости.
  2. Величина эффекта различалась для разных типов широких когнитивных способностей (по теории Каттелла — Хорна — Кэрролла). Самая сильная связь показана для постижения знаний (r = -.23), тогда как для подвижного логического хода мысли и кратковременной памяти корреляция оказалась слабее (r = -.13 и r = -.12 соответственно). Это указывает на то, что вербальные способности сильнее связаны с выбором идеологической позиции, чем численное и математическое мышление.
  3. Величина эффекта различалась для разных типов идеологических позиций и предубеждений. Связь когнитивных способностей с авторитарностью была выражена сильнее, чем с консерватизмом и догматизмом. Среди типов предубеждений величина эффекта для этноцентризма была больше, чем для предвзятости в отношении конкретных аутгрупп (например, этнических меньшинств или представителей ЛГБТ сообщества).
  4. Статистический анализ не выявил значимых признаков систематических ошибок, внесённых избирательностью публикаций или влиянием выбивающихся или непропорционально весомых исследований, что говорит о робастности полученных мета-аналитических выводов.

 journal club, консерватизм, , социальная психология

Axon
()

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

Форум — Desktop

Современный линукс повернулся к ssd лицом, к hdd задом. То что раньше называлось 12309 разраслось кустистыми ветвями. И раньше-то способов побороть небыло, у одних помогало, у других ухудшало. А теперь вообще непонятно, что делать?

У меня на лаптопе ssd и хард. При обращении к ssd есть фризы интерфейса, но он работает быстро и быстро отпускает. Но при обращении к харду всё хуже, жёстче и терпения уже не хватает. Но я смиренный, я живу так и терплю, потому что смена всяких там bfq, cfq ничего не даёт.

Лопнуло терпение вчера. Ковырялся в компах с хардом. Один стаааарый десктоп - семпрон с ide хардами замученными. Другой ляптоп - Асус из новых, дешёвых, на i3 каком-то, с терабайтным хардом. На старом запустил Slitaz и стал скидывать файлы с больного харда на здоровый. Работает. Достаточно быстро. При этом система не фризится. А при работе с хардом на лаптопе всё колом становится. Поставил копировать - иди кофе пить, мышь не шевелится, только изредка «размыкает» и начинает работать. Попробовал и Убунту и Манджару. Обе затыкаются. Подумал-подумал и попробовал Slitaz на лаптопе - при работе с хардом ничего не фризится. Ёрш твою мать!!!

Сегодня поеду продолжать копировать/переносить, хотелось бы попробовать разное. Накидайте идей.

Ну и конечно, расскажите мне о моей криворукости, неправильности дистра, лаптопа, переходе на винду и пр.

 , , ,

ChekPuk
()

В чем отличие процедурного программирования от функционального?

Форум — Development

Различия этих подходов.

 

KRex
()

wdidle + WD = ???

Форум — Linux-hardware

Прикупил себе вот такую вещицу:
http://catalog.onliner.by/westerndigital/wdbbuz0020bbk
Разумеется, некоторое время помониторил ситуацию, увидел растущий LCC (Load Cycle Count) и тут же загуглил проблему.

Всё оказалось сложнее, т.к.:

$ sudo idle3ctl -g /dev/sdd
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
и ещё вот:
$ sudo hdparm -J /dev/sdd
/dev/sdd:
SG_IO: bad/missing sense data, sb[]:  70 00 01 00 00 00 00 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: bad/missing sense data, sb[]:  70 00 01 00 00 00 00 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 wdidle3      = 8.0 secs
То есть по какой-то причине не может нормально зачитать данные с веника.

Куда копать?

 ,

dbzix
()

Hi-Res Audio и теорема Котельникова

Форум — Talks

192 kHz / 2 = 96 kHz

Зачем? Почему? Для чего?

Quasar-Napilnik_CPY
()