Подключение от Linux к приборам «ОВЕН» по протоколу ModBUS с помощью утилиты modbus_cli
Решил поделиться своим опытом подключения приборов по ModBUS к Linux, так как сбор всей информации занял продолжительное время.
( читать дальше... )
Решил поделиться своим опытом подключения приборов по ModBUS к Linux, так как сбор всей информации занял продолжительное время.
( читать дальше... )
В этой статье я хотел бы рассказать о том, как управляю конфигурацией системных папок (/etc
, /usr
, etc) на своих машинах.
Для таких целей часто советуют применять инструменты вроде stow, ansible или разнообразных Docker Swarm с Kubernetes (для этих не хочу даже ссылки давать), но я их не использую.
Я создаю свои пакеты (для пакетного менеджера дистрибутива) и публикую их в своих репозиториях. Можно конечно заливать все нужные файлы руками по ssh (раньше я так и делал), но у пакетов есть важное преимущество: с их помощью легко не только добавлять или обновлять файлы, но и удалять их, и в целом контролировать, что есть в системе. Это предотвращает её захламление. В статье описано, как это делается для Alpine Linux (которым я пользуюсь на домашнем ПК) и, кратко, для Debian/Ubuntu.
( читать дальше... )
Neovim или просто Nvim — это современный редактор, возникший как замена Vim.
Vim — это текстовый редактор для терминала, уникальный прежде всего наличием различных режимов работы (нормальный, редактирования, выделения, замены, командный), которые позволяют выполнять абсолютно все действия с клавиатуры без использования мыши, что заметно увеличивает скорость работы с текстом. Так же он является программируемым, что, наверное, и является его самым большим плюсом.
Да, вы можете взять VS Code, поставить кучу плагинов чтобы получить необходимый функционал, но сам редактор, плагины настраиваются через JSON, что не позволяет добавить какую-нибудь пользовательскую функцию для сортировки файлов в проводнике или навесить сочетание на вызов функции… Там такое можно сделать через написание расширений, что намного сложнее и трудозатратнее чем в том же виме + в последнем меньше ограничений со стороны API (в VS Code нельзя радикально переделать интерфейс, заменить проводник на другой и т.п.).
( читать дальше... )
Нельзя не заметить, что небольшое, но очень дружное сообщество LORa феноменально мало пишет о достижениях и возможностях «народного хозяйства» с очень плодородных полей открытых LLM (large language model), и всего опенсорсного с этим связанного. Сегодня я расскажу вам о LibreChat.
LibreChat – это платформа с открытым исходным кодом, во многом копирующая интерфейс ChatGPT, и взаимодействующая с различными LLM (как открытими локальными, так и большими коммерческими, через api). По сути, это клиентское приложение, которое позволяет общаться с LLM, предоставляя при этом множество дополнительных функций.
( читать дальше... )
Alacritty — быстрый и минималистичный терминальный эмулятор с поддержкой ускорения через GPU. Я попробовал много разных терминалов. Меня в принципе устраивал и Konsole, но он объективно подтормаживает и трудно кастомизируется. Из современных я пробовал Ghostty, Kitty, Wezterm, но у них всех недостатки. Они тянут слишком много зависимостей, а также запускают скрипты на Python или Lua. В Alacritty же нет ничего лишнего. И отдельно напишу, что он поддерживает более стабильный (как покосившийся сарай, который, тем не менее, падать не спешит) X.Org. Единственным его недостатком является отсутствие лигатур.
( читать дальше... )
FreeDOS — свободная операционная система, совместимая с MS-DOS.
Приведу пару примеров использования. Компании Dell, HP и Lenovo производили и поставляли персональные компьютеры с предустановленной операционной системой FreeDOS, так как это снижает общую стоимость компьютера по сравнению с предустановленной ОС Windows. Также FreeDOS устанавливается на современные ноутбуки ASUS и Samsung.
Этот метод установки использует загрузку Freedos 1.4 Legacycd.
( читать дальше... )
Уже больше 5 лет как использую разные GPU от AMD и сталкиваюсь с разнообразными проблемами, приводящими к его зависанию. К сожалению, в современном линуксовом десктопе, особенно на AMD зависание GPU зачастую не получается обработать прозрачно для софта. В лучшем случае могут попортиться данные, связанные с активными задачами, в худшем - gpu вообще становится неработоспособен до снятия питания (этим грешили некоторые APU на gfx9)
Если в случае с неработоспособным GPU другого выхода, кроме как отказ от него нет, дискретные GPU обычно могут успешно пройти сброс.
На моём опыте, с rx580 это приводило к превращению всего содержимого VRAM в шум, на котором слегка можно было различить контуры ранее находившихся там текстур.
На rdna2 же обычно содержимое vram остаётся целым, однако не всегда. С некоторой вероятностью обнаруживается периодический мусор после сброса, обычно в этом случае попытка использовать работающие с GPU приложениями приведёт к повторному зависанию. В общем, никаких гарантий нет и по хорошему все GPU клиенты должны пересоздать все контексты с нуля
( читать дальше... )
Как я уже писал раньше, в систему инициализации OpenRC недавно добавлена возможность запускать сервисы в пользовательской сессии. В этой статье я покажу, как этим пользоваться, на примере pipewire
в Alpine Linux.
Раньше в пакете с pipewire поставлялся (и до сих пор поставляется) скрипт /usr/libexec/pipewire-launcher
, который предлагалось прописывать в конфиге sway. Особенность этого сетапа в том, что после остановки Sway все запущенные им в background процессы оставались висеть в памяти, и перед последующим запуском их предлагалось прибивать с помощью pkill
. Не говоря уже про полное отсутствие логов, их не было.
( читать дальше... )
Рассмотрим сначала базовую задачу — как играть, при использовании преимущественно СПО. Про запись гитары, и про коммерческое ПО - возможно, будет отдельно.
Итак, у вас есть гитара, и вы хотите использовать компьютер как гитарный процессор для нее, вместо гитарного комбика. Что надо знать, актуальный список пунктов на 2025 год:
( читать дальше... )
Данная статья написана с целью концентрации знаний о сжатии данных оперативной памяти.
Я использую gentoo, поэтому имена пакетов будут приводиться в формате этого дистрибутива.
Подразумевается, что читающий имеет желание и возможность (одно из):
( читать дальше... )
Протокол QUIC, в отличие от UDP поддерживает шифрование и работает быстрее чем TCP, который часто используется для шифрованных DNS-запросов. Данная инструкция актуальная, так как Google все-таки начал удаление поддержки блокировщиков рекламы из своего браузера. Кроме того, она пригодится тем, кто хочет скрыть свое пребывание в Интернете от тотальной слежки.
( читать дальше... )
Прежде чем перейти к рассмотрению svg-файлов, хотелось бы остановиться на самом интерпретаторе tcl/tk. Отвечая на один из вопросов, заданных после публикации первой части, я написал, что рассматриваемый проект успешно работает и на tcl/tk версии 9.0.1.
Мне захотелось, чтобы вместе с публикацией второй части статьи был выложен и дистрибутив графического интерпретатора tclexecomp на базе девятой версии tcl/tk. Однако выпуск версии tclexecomp для tcl/tk-9 задерживается и было решено собрать дистрибутив самостоятельно. Уже имея опыт сборки проекта Bawt для tcl/tk-9.0.1, удалось после нескольких дней работы собрать и дистрибутив tclexecomp с tcl/tk-9.0.1, с включёнными в него пакетами проекта svgwidgets. И всё было замечательно, все тестовые примеры работали. Но тут случайно мною была на клавиатуре нажата клавиша Backspace и произошел крах интерпретатора. После проверки остальных клавиш выяснилось, что аналогичный эффект происходит при нажатии клавиш Left и Right. Сначала я подумал, что это мои косяки, но решил проверить работу этих клавиш на виджетах text
, entry
и ttk::entry
, в которых для редактирования текста используются эти клавиши. И тут выяснялось, что нажатие на эти клавиши приводит к краху интерпретатора wish9.0, т. е. собранная версия графического интерпретатора tclexecomp здесь ни при чём.
( читать дальше... )
Fish — это современный командный интерпретатор, недавно переписанный на Rust, который не требует особой настройки, поддерживая из коробки автодополнение и подсветку синтаксиса. Является лучшим Unix SHELL по версии Slant.
( читать дальше... )
TOTP (Time-Based One-Time Password) или просто OTP — это алгоритм для генерации одноразовых паролей, который не требует сторонних сервисов. Он работает локально на основе общего секретного ключа и текущего времени. Например, GitHub с 2024 года использует двухфакторную авторизацию (ввод пароля + ввод какого-то кода) только через OTP (в России авторизация через SMS недоступна).
( читать дальше... )
Как выяснилось, очень неудобно когда включив на компьютере VPN оказывается, что половина сайтов отказываются работать там, куда он ведёт. В голову пришла идея, что если бы в каждой вкладке браузера были свои уникальные параметры соединения, это был бы идеальный вариант.
Дело в том, что мне нравятся Google Chrome и Microsoft Edge, но вот беда, нормально работать с прокси они не умеют. Поэтому, проведя некоторые изыскания, я смог создать рабочий конфиг на основе privoxy и плагина для упомянутых браузеров Proxy SwitchyOmega.
privoxy обеспечивает socks5-соединение, а Proxy SwitchyOmega даёт возможность менять параметры подключения в любой момент, в том числе – автоматически по выбранному шаблону, при этом может работать с несколькими внешними прокси.
( читать дальше... )
Хочу представить свой пет-проект . Создан он в недрах tсl/tk, который, по моему мнению, многие недооценивают. В статье речь пойдет не столько о tcl (хотя все примеры и сам проект написаны именно на нем), а сколько о tk.
( читать дальше... )
Предлагаю вашему вниманию две бесплатные электронные книги. Первая написана мной: «Вредные советы для C++ программистов» (PDF-формат). Это переработанный под печать вариант «60 антипаттернов для С++ программиста». Если вы уже читали 60 антипаттернов, то, пожалуй, читать новый вариант смысла нет. А если нет, то рекомендую — это и возможность местами улыбнуться, и польза.
Теперь про вторую книгу: «Путеводитель C++ программиста по неопределённому поведению». Здесь я был редактором, автор: Дмитрий Свиридкин. Книга опубликована частями, ссылки на которые приведены ниже. Сейчас Дмитрий перерабатывает материал под книжное издание, но это отдельная история.
И последнее: если пропустили, в конце 2024 года, как всегда, вышла подборка про самые интересные из найденных нами багов: Топ-10 ошибок в C и C++ проектах за 2024 год.
← предыдущие | следующие → |