Все потоки
Поиск
Написать публикацию
Обновить
242.99

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга
Уровень сложности

Дизайнер не нужен. Правила создания красивых UI

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров20K


Чем проще система — тем она эффективнее. Здесь не нужен художественный вкус или особая одарённость. Красота появляется сама собой, если система спроектирована без лишних деталей. Хороший пример таких интерфейсов дают рабочие инструменты. Молоток, ножовка, электропила. Всё это создано не для красоты, а чтобы идеально ложиться в руку и эффективно выполнять свою функцию. О красоте думают в последнюю очередь, но в итоге дизайн профессиональных инструментов зачастую вызывает искреннее восхищение. Ничего лишнего.

Такие же правила действуют в компьютерных интерфейсах. Чем проще — тем лучше. В этом смысле интересно посмотреть на новое поколение Linux-приложений в современном стиле с адаптацией под смартфоны (на КДПВ некоторые примеры), а также на свежие UI-фреймворки, которые продвигают современный стиль разработки.
Читать дальше →

Итак, вы установили fzf. Что дальше?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров25K

Разработчики ПО — если не единственные, то практически единственные, кому очень просто создавать инструменты для улучшения своей профессиональной работы; однако со временем это усложняет жизнь людям, постоянно переключающимся между разными инструментами и не вкладывающим время в глубокое изучение своего инструментария. Имея глубокое уважение к негласным знаниям людей лучше меня, я всё же считаю, что отличная эвристика 80/20 заключается в том, чтобы изучать старые добрые инструменты Unix cat, ls, cd, grep и cut. (а если вам повезло устроиться на должность настоящего современного сисадмина, то ещё и sed с awk.)

Однако существуют инструменты, выгода от использования которых настолько мгновенна и ценность от применения настолько уникальна, что эвристика 80/20 полностью к ним неприменима. Один из них — это fzf. И меня очень печалит то, что многие скачивают его, запускают в командной строке «как есть», а потом просто мотают головой и произносят: «Я не понимаю».

Мне хотелось бы изменить ситуацию. Предположим, что вы работаете на более-менее стандартной машине с Ubuntu. Вы только что установили fzf при помощи стандартного скрипта установки. Что же дальше?
Читать дальше →

Как делается OpenSource: личный опыт

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров40K

Я - автор двух пакетов, входящих более-менее во все дистрибутивы Linux: sane-airscan и ipp-usb.

Кроме того, sane-airscan входит во все основные дистрибутивы BSD (FreeBSD, NetBSD и OpenBSD) и в ChromeOS. ipp-usb в ChromeOS не взяли потому, что он написан на Go, а у них там очень жестко с размером исполняемых файлов, вместо этого они написали свое на Rust, но предпочли бы взять моё изделие, если бы могли. Совсем недавно появился порт ipp-usb на FreeBSD, вероятно, другие BSD тоже скоро подтянутся.

Вместе эти два пакета образуют стек "бездрайверного" сканирования документов для Linux и *BSD, а в перспективе нескольких лет, когда старые сканеры, наконец, вымрут, вероятно других драйверов и не останется.

Кроме того, ipp-usb делает возможным "бездрайверную" печать на USB-устройствах.

Здесь я хочу рассказать, каково оно, быть автором популярных OpenSource пакетов. Хоть эта работа и не принесла мне особых денег (на что я, впрочем, особо и не рассчитывал), она принесла мне бесценный опыт.

В целом, я полагаю, продвижение OpenSource пакетов структурно близко к продвижению на рынок программных продуктов. Занимаясь этой деятельностью, очень хорошо начинаешь понимать разницу между (1) написать программу, которая работает для меня (2) написать программу, которую можно назвать продуктом (3) вывести продукт на рынок.

Первое занимает гораздо меньше времени, чем второе. Второе - гораздо меньше времени, чем третье.

Читать далее

Прошло полгода и даже больше: релиз Linux Mint 21.2 Victoria. Возможности и характеристики дистрибутива

Время на прочтение4 мин
Количество просмотров14K
image

В декабре прошлого года вышел Linux Mint 21.1 “Vera” Cinnamon Edition. Сейчас, несколько месяцев спустя, появился и Linux Mint 21.2. Он продолжает «традицию» ветки, которая основана на пакетной базе Ubuntu 22.04 LTS. Сейчас уже доступны сборки на базе MATE 1.26, Cinnamon 5.8 и Xfce 4.18. Еще один положительный момент в том, что Linux Mint 21 будут поддерживать вплоть до 2027 года, это «долгоиграющий» релиз. Ну а подробности о новинке — под катом.
Читать дальше →

Изучаем Kirigami от KDE: примеры разработки приложений

Время на прочтение9 мин
Количество просмотров4.3K

Для создания пользовательского интерфейса приложений придумано множество инструментов. Фреймворк Kirigami – как раз один из таких. Хотя он не отличается какой-то особой оригинальностью, Kirigami призван сделать создание приложений более простым и быстрым. С помощью этого инструмента можно создавать адаптивные и кроссплатформенные программы.

Читать далее

Микросервисы Rust в серверном WebAssembly

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров6.2K
image

Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Читать дальше →

Как выбрать российскую операционную систему?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров18K

По состоянию на июнь 2023 года в Единый реестр российского программного обеспечения включена 31 операционная система (ОС) общего назначения!

Как выбрать санкционно независимую защищенную российскую ОС?

Проблематика

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

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

В корпоративных программах импортозамещения рекомендуется использовать только операционные системы, включенные в Единый реестр российского ПО. Для госсектора обязательные требования закреплены в Постановлении Правительства Российской Федерации № 1236 от 16 ноября 2015 «Об установлении запрета на допуск программного обеспечения, происходящего из иностранных государств, для целей осуществления закупок для обеспечения государственных и муниципальных нужд».

Построение ИТ-инфраструктуры предприятий КИИ с госучастием и бизнеса регулирует Указ Президента Российской Федерации №166 от 30 марта 2022 г. «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации». Он предписывает согласовывать закупки иностранного ПО по 223-ФЗ для использования на значимых объектах КИИ, а также вводит полный запрет на использование таких продуктов с 2025 года.

Читать далее

Как с помощью Rust FFI превратить ori-файл в jpeg-панораму

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2K

Всем привет, на днях возникла необходимость использования камеры Xphase без официального приложения, и я столкнулся с тем, что в интернете особо-то этим никто не занимался. О том, что делать с файлами типа ori и о FFI на Rust читайте под катом.

Читать далее

Дальняя радиосвязь с LoRa на одноплатных микрокомпьютерах Repka Pi

Время на прочтение20 мин
Количество просмотров43K

Если вы занимаетесь сбором данных на обширной территории, да еще не охваченной интернетом, возникает задача передачи данных на расстояния, исчисляемые километрами без использования WiFi и сети Ethernet.

В решении этой задачи вам помогут радиомодули, передающие данные с использованием технологии связи на большие расстояния (Long Range, LoRa). Эта технология запатентована компанией Semtech и реализована в микросхемах приемо‑передатчиков (трансиверов), таких как SX1268, SX1276, SX1278.

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

К сожалению, скорость передачи данных LoRa невелика, порядка 2400–19 200 бит/c. Однако этого достаточно, например, для систем телеметрии и удаленного контроля, систем умного дома или других подобных систем.

Читать далее

Почему linux должен быть единственной системой в образовательном процессе

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров31K

Использование проприетарных программ плохо влияет на образовательный процесс, Linux должен быть единственной операционной системой в школах и университетах.

Читать далее

Как Linux-умельцы превращают ROG Ally и другие портативные консоли в клоны Steam Deck

Время на прочтение8 мин
Количество просмотров23K

Недавно, 13 июня, стартовали продажи новой консоли Asus ROG Ally. По характеристикам она намного сильнее продуктов от Steam и Nintendo. Базовая версия имеет 4-нм игровой процессор AMD Ryzen Z1, 16 Гб оперативной и 256 Гб постоянной памяти (у Nintendo — 4 и 32 Гб, у Steam Deck — 16 и 64 Гб). Гаджет справляется с играми уровня Cyberpunk даже в 4K (хотя разрешение экрана тут 720p).

В общем, девайс выглядит очень круто. И даже качество сборки, судя по отзывам, является более качественным, чем у Steam Deck. Правда, есть одна проблема: пользовательский интерфейс. Windows 11 просто не предназначена для игровых консолей, тем более портативных. Нет даже функции паузы, ожидания и возобновления игры в любой момент — которая присутствует и у Steam Deck, и у Switch, и у PS4. Вот если бы можно было получить характеристики ROG Ally, но интерфейс удобного Steam OS…

Читать далее

Как сделать Telegram-бота для проверки аптайма своего сервиса на Python (ч.2 алертинг)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.8K

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

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

Читать далее

Altera Quartus Prime и ModelSim под Linux. Вводное руководство

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров11K
В очередной раз, начав изучать что-то новое для себя, я столкнулся с типичной для меня проблемой: нет нигде быстро гуглящегося how-to и step-by-step руководства по быстрому созданию какой-либо простой конструкции на Verilog и описания способа эту конструкцию быстро симулировать без необходимости запуска кода в железе для проверки конечного результата. Я надеялся очень быстро найти готовый материал о том, как под Altera Quartus 20.1 и ModelSim 2020.1 под Linux всё по-быстрому сделать и идти дальше. В итоге не найдя ничего системно и последовательно описанного в одном месте я традиционно разобрался самостоятельно и решил это исправить своей очередной статьей на Хабре. 

Возможно, этот материал поможет таким же как я новичкам на самом старте и позволит не растерять энтузиазм во время танцев по граблям. Всем, кто заинтересовался — добро пожаловать под кат. 

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

Ближайшие события

Автоматический обход блокировок

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров56K

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

Читать далее

Linux 6.4: новые возможности ядра — что изменилось в релизе

Время на прочтение5 мин
Количество просмотров16K
image

Новая версия ядра Linux 6.4 появилась спустя всего два месяца после Linux 6.3. Несмотря на относительно небольшой временной интервал, изменений достаточно много. Всего принято 16012 исправлений от 2080 разработчиков, причем изменения затронули 14220 файлов, добавлено 1006924 строк кода, удалено 597615 строк. Размер патча составил 81 МБ.

Больше всего изменений, которые связаны с драйверами устройств. Это около 43% от общего объема. Еще около 14% изменений относятся к обновлению кода, актуального для аппаратных архитектур, 10% — сетевой стек, всего 4% — файловые системы и еще 3% — внутренние подсистемы ядра. Подробности под катом!
Читать дальше →

Заметка к примеру «procfs3.c» 7 главы книги «The Linux Kernel Module Programming Guide»

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.8K

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

Что там?

Настройка Flutter/Dart на Linux

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров11K

Простая пошаговая инструкция для начинающих в программистов Flutter/Dart.

Flutter прекрасный фреймворк для создания кроссплатформенных приложений. Тем не менее в нашем сегменте интернета всё ещё нет пошаговой инструкции его установки для Linux систем. Данная статья это исправляет. Она рассказывает как настроить Flutter/Dart на Linux легко, почему не стоить использовать некоторые сторонние пакетные менеджеры и чего избегать.

Читать далее

Разбор и обнаружение уязвимости OverlayFS (CVE-2023-0386)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.1K

Всем привет!
Совсем недавно в ядре линукс была обнаружена критичная уязвимость, позволяющая повышать привилегии до уровня root. Она получила идентификатор CVE-2023-0386 и затронула версии ядра до 6.2. В интернете уже есть несколько доступных PoC:
https://github.com/CKevens/CVE-2023-0386
https://github.com/xkaneiki/CVE-2023-0386
В этой статье я хотел рассмотреть принцип работы данной уязвимости и возможные варианты ее обнаружения.

Читать далее

Приложение BAI Chat на GTK4 и Python

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров19K

В последнее время все большей популярностью пользуются различные чаты на основе ChatGPT. Они доступны не только в формате веб-версий или telegram-ботов, но и в виде отдельных приложений для разных платформ.

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

Читать далее

Как я вникал в Linux с 4 класса? Все по полочкам

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров13K

Давно, когда мне было 4-5 лет, бабушка разрешила пользоваться ее компьютером (стааарым, очень). Я так был рад, ведь мог теперь в него играть. Ну и началось. Вирусняки, неподдерживаемые файлы и т. д., и т. п. После, в доме появился Mac Mini 2010 года (мы с отцом хотим из него NAS сделать). Меня за него посадил папа с такой фразой: «Вот тебе Scratch, делай».

Читать далее

Вклад авторов