Pull to refresh
-1
0
Send message

Прямое подключение диска в VirtualBox

Level of difficultyEasy
Reading time2 min
Views1.9K

Статья (и в целом проблема как таковая) уровня для-мамкиных-админов (или админов локалхоста, как зло и хлестко говорят на/в опеннете), поэтому “подкованным” можно проходить мимо! Написать эти 3 абзаца сподвигла злоба на горе-СЕОшников, которые завалили инет перепечатками статей 2005-2010г.г. Кроме того, Оракл задеприкэйтил определенную опцию командной строки, и скоро эти статьи протухнут окончательно.(напоследок будет пара фраз про KVM).


1. Проблема (которая, в общем-то, непроблема)

Она произрастает из параллельного (в нынешнем Линуксе) обнаружения устройств, поэтому дисковые устройства часто меняют имена между перезагрузками (что-то типа: было /dev/sda - стало /dev/sdb)

Поэтому, если тест нужет в моменте, и больше повторов не будет, можно опираться на /dev/sdX. Но если тесты/работа на большой период времени, нужно что-то универсальное и идентифицирующее нужное устройство однозначно. Здесь на помощь приходят синонимы, коих система плодит при загрузке в достатке (и слава богу!!!).

Взглянем на вывод команды "ls /dev/disk":

by-diskseq by-id by-loop-inode by-loop-ref by-partlabel by-partuuid by-path by-uuid

Во всех этих подкаталогах ссылки на устройства/разделы с использованием разных идентификаторов. Вот их и надо использовать!

2. Udev.

Сначала подсмотрите с помощью команды “udevadm info /dev/sdX” идентификатор, по которому будете отлавливать появление вашего устройства.

...........

E: ID_REVISION=01.01A01

E: ID_SERIAL=WDC_WD20NPVX-00EA4T0_WD-WX81A43A9823

E: ID_SERIAL_SHORT=WD-WX81A43A9823

Читать далее

Настройка форвардинга на UFW для Ubuntu Server

Reading time2 min
Views4.4K

UFW (Uncomplicated Firewall) - это утилита для управления пакетами брандмауэра в Linux, которая предоставляет удобный интерфейс для настройки iptables. Он создан для упрощения процесса управления сетевыми правилами и подходит как для новичков, так и для опытных администраторов.

NAT (Network Address Translation) — это метод, позволяющий изменять адреса IP в заголовках пакетов, проходящих через маршрутизатор или брандмауэр. Он часто используется для обеспечения доступа к ресурсам из локальной сети в Интернет, скрывая внутренние IP-адреса от внешней сети.

Читать далее

Linux-десктоп своими руками: подключаем bluetooth-наушники

Reading time8 min
Views4.5K

Немного шаманства и колдовства, чтобы заставить работать беспроводные наушники без помощи Desktop Environment, особенно когда вы его не устанавливали

Читать далее

ИИ-агент для управления компьютером: разработка умного помощника на Python

Level of difficultyMedium
Reading time6 min
Views13K

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

Читать далее

Как удалось сделать флешку в Linux-е с UEFI и UniversalAMDFormBrowser

Level of difficultyEasy
Reading time4 min
Views2.7K

Наверняка Вы знакомы с загрузочными флэшками usb. Тех самых, с которых устанавливали Windows, или же запускали UniversalAMDFormBrowser. Речь пойдет как раз о usb с типом EFI. Эти флэшки вставляются в выключенный компьютер. При включении, они загружаются через Boot Menu. На ноутбуках это меню может быть доступно по кнопкам «F12» ИЛИ «F10».

В Windows же есть программа Rufus для форматирования таких флэшек, а что насчёт Linux‑а? Для Linux‑а же, как всегда, придётся читать дольше, чтобы найти что‑то стоящее. Хотите узнать, что же это? Вам сюда.

Мануал

Внедряем формулы как в Эксель

Level of difficultyMedium
Reading time11 min
Views9K

Пользователи постоянно меняют логику подсчёта? Они не довольны скоростью с которой ты меняешь код? Тебя самого достало, так часто менять одно и тоже? Если да, то вот тебе решение: пускай пользователи сами пишут формулы на языке, который им более знаком: это формулы эксель. Тебе лишь надо научить своё приложение считать это. Как это сделать? С помощью чёрной магии конечно!

Читать далее

Установка и настройка принт-сервера CUPS на Ubuntu-сервере

Reading time3 min
Views5.1K

Для начала необходимо установить пакет CUPS (Common UNIX Printing System), который служит для управления принтерами и заданиями на печать. Выполните следующие команды в терминале:

sudo apt update  - обновляем список доступных пакетов.
sudo apt install cups -y  - устанавливаем CUPS без запроса подтверждения.
sudo systemctl start cups - запускаем CUPS-сервис.
sudo systemctl enable cups - добавляем CUPS в автозагрузку.

Читать далее

Подключаем AI к LibreOffice: плагин localwriter

Level of difficultyEasy
Reading time7 min
Views7.8K

Прошло всего несколько лет с момента взрыва популярности нейросетей, и уже практически невозможно найти профессию, связанную с работой за компьютером, которая не использовала бы AI для ускорения работы или улучшения её качества. Эта революция повлияла на всех, включая самых маленьких детей. Но, наигравшись с надиктовыванием указаний телефону и написанием запросов в браузере, хочется большего. И мы начинаем искать способы внедрить AI в программы, в которых работаем ежедневно. Программисты дают указания для написания кода через GitHub Copilot прямо из родной среды программирования. Появились плагины для MS Office, которые позволяют подключить AI. Но есть некоторые нюансы. Основная проблема этих плагинов не в том, что они стоят денег, а в том, что они отправляют почти все данные, с которыми вы работаете, на серверы провайдеров AI-услуг. По условиям использования провайдеры AI-сервисов открыто заявляют «Не отправляйте нам приватные данные, мы будем делать с ними, что захотим, включая передачу третьим лицам». И это полностью закрывает путь к использованию подобных сервисов там, где данные хоть сколько-нибудь чувствительны к утечке.
Как запустить локально AI-модель и установить плагин в LibreOffice для работы с нейросетью

Цифровой архив с полнотекстовым поиском, в том числе по PDF и картинкам

Reading time3 min
Views7.7K


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

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

Paperless-ngx можно установить на домашний сервер и загружать документы через браузер с любого устройства.
Читать дальше →

Учимся Flask: как написать своё веб-приложение

Level of difficultyEasy
Reading time5 min
Views9.4K

Привет, будущий разработчик! Сегодня создадим первое полноценное веб-приложение на Flask с нуля.

Ты, наверное, слышал, что сайты и веб-приложения — это сложно. Что нужно знать кучу языков, писать километры кода и сидеть ночами над багами. Но на самом деле, всё гораздо проще, если у тебя есть правильный инструментарий.

Сегодня мы разберём Flask — лёгкий, но мощный фреймворк для Python, который позволит буквально за пару часов написать веб-приложение с формами, обработкой данных и HTML-шаблонами.

Читать далее

Создаём cloud-image ALT Linux для VMWare Cloud Director

Level of difficultyMedium
Reading time6 min
Views1.4K

TL;DR: у ALT Linux отсутствует ova для p11, а тот, что есть в p10 мало того, что здоровенный (1.5G? зачем столько?), так ещё и не работает.

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

Disclamer: я знаю про terraform и packer, они использованы не будут. Причины не технические и выходят за рамки заметки. Я понимаю, что по хорошему стоило бы оформить всё это в скрипт, к сожалению, я этого не сделал. Sad, but true.

Читать далее

Декораторы Python. Введение

Level of difficultyEasy
Reading time5 min
Views12K

Всем привет, меня зовут Аббакумов Валерий.

Я Python разработчик, в основном занимаюсь бэкэндом веб приложений. Хочу написать серию статей для начинающих разработчиков. Посты будут трех уровнях сложности (от меньшей к большей) на разные аспекты языка, с которыми сложно справиться обывателю.

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

Я прикреплю ссылки на смежные статьи (тоже хороший материал, но ИМХО в них либо странная подача либо некоторая неполнота), мне кажется, что мой материал в разрезе 3 статей на каждую тему будет лаконичней и полней, но тут уже решать только вам, дорогие читатели

Читать далее

GRUB и параметры ядра в Linux

Level of difficultyEasy
Reading time4 min
Views10K

Привет, Хабр!

Сегодня у нас на повестке тема GRUB в Linux. GRUB — это первый, кого видит твоя система после BIOS/UEFI. Он решает, какое ядро загружать, какие параметры передавать, и вообще, даст ли он тебе шанс на нормальный рабочий день или отправит в режим паники.

Читать далее

Использование PyGame для визуализации сигналов звукового диапазона с частотой дискретизации 44100 Гц в реальном времени

Level of difficultyEasy
Reading time3 min
Views2.4K

PyGame — это популярная библиотека для разработки 2D игр на Python. В данной статье рассмотрено необычное применение PyGame – это быстрый вывод графиков, например, потоков данных с частотой дискретизации 44100 Гц со звуковой карты, что может быть применимо для визуализации звуковых сигналов.

Читать далее

Как отслеживать состояние сетевых интерфейсов на Linux с помощью netlink

Level of difficultyMedium
Reading time29 min
Views15K

Всем привет! Меня зовут Тимур, в компании YADRO я разрабатываю ПО для коммутаторов KORNFELD. Однажды на работе мне потребовалось написать программу для включения прослушивания интерфейсов, которые удовлетворяют определенной конфигурации системы. Старшие коллеги сказали, что это можно сделать с помощью netlink. Я начал разбираться в этой технологии с нуля, потратил больше двух месяцев на изучение протокола, написание обработчика и хочу поделиться своим опытом. 

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

Читать далее

Как увеличить скорость python-скриптов: C-расширения и Python/C API

Reading time19 min
Views6.8K

Во время разработки ПО мы сталкиваемся с выбором между удобством языка и его производительностью. Python завоевал популярность благодаря простоте и изящности, но когда дело доходит до низкоуровневых действий или махинаций, требующие производительность и быстроту, на помощь приходит C.

Мы будем изучать именно интеграцию расширений во времени сборки, а не просто загрузка библиотек через ctypes.

В этой статье я хочу рассказать о том, как интегрировать C-расширения с использованием библиотеки Python.h. Я также расскажу как создать свою python-библиотеку с C-расширениями. Также мы исследуем, как устроен Python — например, вспомним, что все является объектами. Я буду использовать poetry как менеджер рабочего окружения.

Все будет создаваться на примере моей небольшой библиотеки для различных алгоритмов и вычислений. В конце я проведу анализ pure-python алгоритмов, нашей библиотеки и pure-c алгоритмов: скорость выполнения, распространяемость, минусы и плюсы, количество кода.

Не буду тянуть, начнем!

Читать далее

Lua-скриптинг в mpv-плеере

Level of difficultyEasy
Reading time4 min
Views2.4K

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

На Reddit-е я наткнулся на пост, где утверждалось, что для этого можно использовать скрипт mpv-cut, который работает без внешнего графического интерфейса и дополнительных программ.

При ближайшем рассмотрении mpv-cut оказался скриптом на lua, который позволял вырезать кусок из видео прямо в процессе просмотра в плеере mpv. Я как-то не предполагал, что mpv-плеер при всей своей минималистичности поддерживает скрипты, которые позволяют расширять его функциональность. И решил это дело тщательно разъяснить.

Читать далее

Операционная система в 1 000 строках кода (часть 5)

Level of difficultyMedium
Reading time21 min
Views7.7K

Это завершающая часть проекта по написанию собственно ОС. Здесь мы реализуем дисковый ввод/вывод и файловую систему, а также вкратце подведём итоги и наметим дальнейшие шаги на пути доработки системы.

▍ Навигация по частям


Читать дальше →

GIMP Script-Fu Первый Дан. Объектно-ориентрованное программирование в Scheme. Простая реализация

Level of difficultyEasy
Reading time9 min
Views473

На протяжении всей работы по реализации языка функциональной геометрии Эшера Хендерсона мы немного развивали tinyscheme, различными языковыми конструкциями и ни разу у меня не возникало необходимости использовать Объектно-Ориентированный подход, но вот реализовав абстракцию Фигуры, я понял, что языку tinyscheme очень не хватает объектов и полиморфных функций, потому что данная конструкция не позволяет развивать абстракцию фигуры, расширять различные их варианты. Нет расширять и изменять конечно можно, но придётся постоянно её дописывать и изменять.

С этим нужно было что-то делать. И в этой статье речь пойдёт о первой попытке решить проблему отсутствия нормального ООП в tinyscheme.

Читать далее

3D графика на форме в Lazarus IDE

Level of difficultyEasy
Reading time4 min
Views3.4K

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

Читать далее

Information

Rating
Does not participate
Registered
Activity