Посты с тэгом разработка под linux


angelspie — управление окнами в X11, глобальные и не только горячии клавиши

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

С помощью библиотеки wnck можно делать куда больше, а ещё больше если задействовать gdk.

Для глобальный горячих клавиш я использовал libkeybinder, раньше я делал такое на "голой" xlib, но так удобней(и переносимей). Впрочем xlib/xtest тоже используется - чтобы эмулировать нажание кнопок. Но эти функции опциональны.

В качестве формата конфига я выбрал yaml. Более старые версии использовали конфиг на питоне, но я решил что yaml удобней конечным пользователям. Тем более в него можно встраивать код на python и sh.

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

Лучше покажу пример конфига, который использует часть возможностей. Кстати, новые правила можно генерировать из командной строки, оно воз



Создание Python Telegram бота и его deploy на виртуальную машину

В 2021 г. ожидается рост числа запросов на чат-боты на 15-20% от ор­га­низа­ций из госсектора, об­ра­зова­ния, медицины, ло­гис­ти­ки, ре­тей­ла и e-commerce, промышленных и добывающих компаний.

Всвязи с этим остро встает вопрос: как запустить своего первого телеграммной-бота и заставить работать его 24/7 на удаленной виртуальной машине.

Читать далее


C и Python: мост между мирами

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

Приготовления завершены


Трепещущий Kivy. Обзор возможностей фреймворка Kivy и библиотеки KivyMD


Kivy и Flutter — два фреймворка с открытым исходным кодом для кроссплатформенной разработки.

Flutter:


  • создан компанией Google и выпущенный в 2017 году;

  • в качестве языка программирования использует Dart;

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

Kivy:


  • создан сообществом Kivy в 2010 году;

  • в качестве языка программирования использует Python и собственный декларативный язык для разметки UI элементов — KV Language;

  • не использует нативные компоненты, рисуя весь интерфейс с помощью OpenGL ES 2.0 и SDL2;


Недавно на просторах Ютуба наткнулся на видео демо


Клиент-серверный IPC на Python multiprocessing

Статья отражает личный опыт разработки CLI приложения для Linux.

В ней рассмотрен способ выполнения привилегированных системных вызовов процессом суперпользователя по запросам управляющей программы через строго описанный API.

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

Читать далее


Клиент-серверный IPC при помощи Python multiprocessing

Статья отражает личный опыт разработки CLI приложения для Linux.

В ней рассмотрен способ выполнения привилегированных системных вызовов процессом суперпользователя по запросам управляющей программы через строго описанный API.

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

Читать далее


Разработка механизма распараллеливания кода на языке python с использованием docker-контейнеров

Современный этап развития технологий, в том числе и вычислительной техники, показывает нам рост объёмов данных и потребностей во все более мощных вычислителях. В основе развития центральных процессоров всегда лежала технология увеличения числа транзисторов на кристалле микропроцессора. Известный закон Мура гласит: «при сохранении этой тенденции мощность вычислительных устройств за относительно короткий промежуток времени (24 месяца) может вырасти экспоненциально»

Однако, тот же Мур в 2003 году опубликовал работу «No Exponential is Forever: But „Forever“ Can Be Delayed!», в которой признал, что экспоненциальный рост физических величин в течение длительного времени невозможен. Лишь эволюция транзисторов и технологий их изготовления позволяла продлить действие закона ещё на несколько поколений.

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



Дополнительные компоненты для кроссплатформеннной библиотеки материального дизайна KivyMD


Приветствую, уважаемые любители и знатоки Python!

Если вы используете в своих приложениях Python и такие кроссплатформенные инструменты как фреймворк Kivy и библиотеку материального дизайна KivyMD, тогда вам точно будет интересно эта статья, в которой я расскажу о дополнительных компонентах для расширения набора материальных виджетов библиотеки для KivyMD Читать дальше →


Запускаем Jupyter на орбиту LXD

Приходилось ли вам эксперементировать с кодом или системными утилитами в Linux так, чтобы не трястись за базовую систему и не снести всё с потрохами в случае ошибки кода который должен запустится с root-привилегиями?


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


С виртуальными машинами управляемые гипервизором такие задачи решить может и получится, но какой ценой? Например, контейнер в LXD на базе дистрибутива Alpine Linux минимально потребляет всего 7.60MB ОЗУ, и где корневой раздел после запуска занимает 9.5MB! Как тебе такое, Илон Маск? Рекомендую ознакомиться с базовыми возможностями LXD — системы контейнеров в Linux


После того, как в целом стало ясно, что такое контейнеры LXD, пойдем дальше и подумаем, а что, если бы была такая платформа-комб



Краткий гайд по использованию GDB


В этом коротком туториале мы рассмотрим базовые приёмы работы с GDB, а также посмотрим как можно (и нужно) подготавливать файлы к отладке для GDB.
GDB — переносимый отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет производить отладку многих языков программирования, включая Си, C++, Free Pascal, FreeBASIC, Ada, Фортран, Python3, Swift, NASM и Rust.

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