Обновить
346.92

Linux *

Пишем под *nix

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

Полезного пост: Поставь OpenShift, выучи Kafka, используй Ansible в Google Cloud Platform

Время на прочтение2 мин
Количество просмотров5K
Продолжаем втягивать вас во внутреннюю кухню разработки Red Hat и заманивать на DevNation.



У нас есть разработчики – и это хорошие разработчики, увлеченные своим делом. А еще они проводят live streaming, и все вместе это называется DevNation. Ниже просто полезные ссылки на живые мероприятия, видео, митапы и техтолки.
Читать дальше: Поставь OpenShift, выучи Kafka, используй Ansible в Google Cloud Platform

Avalonia Tutorial: Реализация MVVM по шагам с примерами

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

Avalonia — это?


Avalonia – это кроссплатформенный XAML фреймворк для платформы .NET. Для многих разработчиков на WPF/UWP/Xamarin данный фреймворк будет интуитивно понятен и прост в освоении. Avalonia поддерживает Windows, Linux, macOS, также заявлена экспериментальная поддержка Android и iOS. Развивается проект при поддержке сообщества и является open-source.

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

Изоляция сред разработки с помощью контейнеров LXD

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

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


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

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


Конфигурация на примере Ubuntu 20.04.


Размышления о вариантах и причинах приведены в конце статьи.

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

Полезного пост: Все самые актуальные курсы, трансляции и техтоки

Время на прочтение3 мин
Количество просмотров3.3K
Окей, мы инновационная ИТ-компания, а значит у нас есть разработчики – и это хорошие разработчики, увлеченные своим делом. А еще они проводят live streaming, и все вместе это называется DevNation.



Ниже просто полезные ссылки на живые мероприятия, видео, митапы и техтолки.
Все самые актуальные курсы, трансляции и техтоки

Код в одну строку или проверка Nethermind с помощью PVS-Studio C# для Linux

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

Рисунок 1

Данная статья приурочена к старту бета-теста PVS-Studio C# для Linux, а также плагина для Rider. По такому прекрасному поводу с помощью данных инструментов была проведена проверка исходного кода продукта Nethermind и в данной статье мы посмотрим на интересные, а иногда и забавные ошибки.
Читать дальше →

Облачно-ориентированный обмен сообщениями на платформе Red Hat OpenShift с использованием Quarkus и AMQ Online

Время на прочтение7 мин
Количество просмотров1.6K
Всем привет! Вот и он – наш заключительный пост из серии про Quarkus! (Кстати, смотрите наш вебинар «Это Quarkus – Kubernetes native Java фреймворк». Покажем, как начать «с нуля» или перенести готовые решения)



В предыдущем посте мы рассмотрели соответствующие инструменты, с помощью которых можно количественно оценить улучшения, полученные в результате модернизации Java-приложений.
Читать дальше: Облачно-ориентированный обмен сообщениями...

Как Linux'овский sort сортирует строки

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

Введение


Всё началось с короткого скрипта, который должен был объединить информацию об адресах e-mail сотрудников, полученных из списка пользователей почтовой рассылки, с должностями сотрудников, полученными из базы отдела кадров. Оба списка были экспортированы в текстовые файлы в кодировке Юникод UTF-8 и сохранены с юниксовскими концами строк.


Содержимое mail.txt


Иванов Андрей;ia@example.com

Содержимое buhg.txt


Иванова Алла;маляр
Ёлкина Элла;крановщица
Иванов Андрей;слесарь
Абаканов Михаил;маляр

Для объединения файлы были отсортированы юниксовской командой sort и поданы на вход юниксовской программе join, которая неожиданно завершилась с ошибкой:


$> sort buhg.txt > buhg.srt
$> sort mail.txt > mail.srt
$> join buhg.srt mail.srt > result
join: buhg.srt:4: is not sorted: Иванов Андрей;слесарь

Просмотр результата сортировки глазами показал, что в целом сортировка правильная, но в случае совпадений мужских и женских фамилий, женские идут перед мужскими:


$> sort buhg.txt
Абаканов Михаил;маляр
Ёлкина Элла;крановщица
Иванова Алла;маляр
Иванов Андрей;слесарь

Выглядит как глюк сортировки в Юникоде или как проявление феминизма в алгоритме сортировки. Первое, конечно, правдоподобнее.

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

STM32MP1: U-Boot, Buildroot, Arch Linux и немного Debian

Время на прочтение17 мин
Количество просмотров25K
Привет, Хабр!

Некоторое время назад компания STMicroelectronics выпустила интересные процессоры серии STM32MP1. Когда у меня наконец-то дошли руки до отладочной платы на основе этого процессора, я с некоторым удивлением обнаружил, что для нее отсутствуют какие-либо сборки на основе популярных дистрибутивов (Debian, Arch Linux и др). Оставалось только попробовать самому адаптировать какой-нибудь дистрибутив под данную плату. По результатам этого и появилась данная статья.


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

Кроссплатформенный многопоточный TCP/IP сервер на C++

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

Решил задаться целью написать простой в использовании и при этом быстрый многопоточного TCP/IP сервера на C++ и при этом кроссплатформенный — как минимум чтобы работал на платформах Windows и Linux без требования как-либо изменять код за пределами самописной библиотеки. Ранее, на чистом C++ без библиотек вроде Qt, сетевым программировнием не занимался, и предвещал себе долгое время мучений с платформо-зависимостью. Но как оказалось всё гораздо проще чем казалось на первый взгляд, ведь в основном интерфейсы сокетов обоих систем похожи как две капли воды и различаются лишь в мелких деталях.

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

9 главных анонсов конференции Microsoft Build 2020

Время на прочтение5 мин
Количество просмотров6.3K
Наша двухдневная конференция Microsoft Build 2020, трансляцию основного трека которой мы провели на Хабре, подошла к концу. В этой статье мы расскажем о самых масштабных и интересных анонсах прошедшего мероприятия. Заглядывайте под кат!

А какая новинка понравилась больше всего вам? Делитесь в комментариях.

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

Прокачиваем беговую дорожку

Время на прочтение11 мин
Количество просмотров27K
Недавно я решился на очень странную для себя покупку. Да, я купил себе беговую дорожку.



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

Так я решил сделать что-то подобное и с беговой дорожкой: подключить её к смартфону или планшету, чтобы собирать и отображать статистику.

Инфраструктура Открытых Ключей. Выпуск сертификатов в условиях самоизоляции

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

Как все начиналось


В самом начале периода самоизоляции мне на почту пришло письмо:



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


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

Полезного пост: 4 мероприятия по решению задач второго дня в OpenShift и созданию операторов

Время на прочтение2 мин
Количество просмотров817
Окей, мы инновационная ИТ компания, а значит у нас есть разработчики – и это хорошие разработчики, увлеченные своим делом. А еще они проводят live streaming, и все вместе это называется DevNation.



Ниже просто полезные ссылки на живые мероприятия, видео, митапы и техтолки. Они всячески полезны и помогут скоротать время в ожидании нашего следующего поста из серии про Quarkus.
4 мероприятия по решению задач второго дня в OpenShift и созданию операторов

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

Quarkus: модернизация приложений на примере helloworld из JBoss EAP Quickstart (продолжение)

Время на прочтение4 мин
Количество просмотров1K
Всем привет – с вами пятый пост из нашей серии про Quarkus! (Кстати, смотрите наш вебинар «Это Quarkus – Kubernetes native Java фреймворк». Покажем, как начать «с нуля» или перенести готовые решения)



В предыдущем посте мы рассмотрели модернизацию Java-приложений с помощью поддерживаемых Quarkus технологий (CDI и Servlet 3) на примере программы helloworld из репозитория Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart. Сегодня мы продолжим тему модернизации и обсудим вопрос потребления памяти.
Читать дальше: Модернизация приложений на примере helloworld из JBoss EAP Quickstart

Строим pipeline для доставки Graal Native Image конечным пользователям

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

В данной статье я хочу описать свой опыт по доставке Graal Native Image конечным пользователям Mac OS и Linux в одну команду при помощи Travis CI.


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


Пожалуй начнем.


У меня есть:


  • Java приложение со всеми конфигурациями для сборки native image.

Что хочу получить:


  • Собрать native image при помощи Travis
  • Собрать rpm и deb дистрибутивы, а также архив для mac версии
  • Залить полученные пакеты на Bintray
  • Дать пользователям возможность загрузить приложение через пакетный менеджер
  • Максимально автоматизировать процесс.
Поехали

Изучаем VoIP-движок Mediastreamer2. Часть 12

Время на прочтение6 мин
Количество просмотров817

Материал статьи взят с моего дзен-канала.



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


Отладка крафтовых фильтров


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

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

Quarkus: модернизация приложений на примере helloworld из JBoss EAP Quickstart

Время на прочтение13 мин
Количество просмотров2.3K
Привет всем в этом блоге, и с вами четвертый пост из серии про Quarkus! (Кстати, смотрите наш вебинар «Это Quarkus – Kubernetes native Java фреймворк». Покажем, как начать «с нуля» или перенести готовые решения)



Предыдущий пост был о том, как Quarkus объединяет MicroProfile и Spring. Напомним, что Quarkus позиционируется как «сверхбыстрая субатомная Java», он же «Kubernetes-ориентированный Java-стек, заточенный под GraalVM и OpenJDK HotSpot и собранный из лучших библиотек и стандартов». Сегодня мы покажем, как модернизировать уже имеющиеся Java-приложения, задействуя возможности Quarkus, на примере приложения helloworld из репозитория Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart, в котором используются поддерживаемые в Quarkus технологии CDI и Servlet 3.
Читать дальше: Модернизация приложений на примере helloworld из JBoss EAP Quickstart

Усложнение команд консоли, 1979−2020

Время на прочтение14 мин
Количество просмотров30K
Моё хобби — открыть «Философию UNIX» Макилроя на одном мониторе, одновременно читая маны на другом.

Первый из принципов Макилроя часто перефразируют как «Делайте что-то одно, но делайте хорошо». Это сокращение от его слов «Создавайте программы, которые делают одну вещь хорошо. Для новой работы создавайте новые программы, а не усложняйте старые добавлением новых "функций"».

Макилрой приводит пример:

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

Если вы откроете справку для ls, то она начинается с

ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]

То есть однобуквенные флаги для ls включают все строчные буквы, кроме {jvyz}, 14-ти прописных букв, @ и 1. Это 22 + 14 + 2 = 38 только односимвольных вариантов.
Читать дальше →

Как запускать cron чаще, чем раз в минуту при помощи PHP

Время на прочтение4 мин
Количество просмотров14K
Классический конфиг — файл с записями cron jobs в операционной системе Linux, выглядит следующим образом:

# ┌───────────── минуты (0 - 59)
# │ ┌───────────── часы (0 - 23)
# │ │ ┌───────────── день (1 - 31)
# │ │ │ ┌───────────── месяц (1 - 12)
# │ │ │ │ ┌───────────── день недели (0 - 6)
# │ │ │ │ │
# * * * * * <задача или команда>

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

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

Для многих задач выполнение команды нужно намного чаще, например раз в 10 секунд. Для некоторых задач по автоматизации бизнес процессов максимально допустимая задержка часто составляет не более чем 1-1.5 секунды.

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

Ниже представлена пошаговая реализация по созданию дополнительного функционала (на языке PHP) к классическому cron на Linux с применением дополнительной защиты от повторного запуска процессов.
Читать дальше →

Как Quarkus объединяет MicroProfile и Spring

Время на прочтение10 мин
Количество просмотров4.1K
Всем привет, и с вами третий пост из серии про Quarkus! (Кстати, смотрите наш вебинар «Это Quarkus – Kubernetes native Java фреймворк». Покажем, как начать «с нуля» или перенести готовые решения)



В предыдущем посте мы поговорили о нативной компиляции в Quarkus – и узнали, почему это важно.

При разработке Java-микросервисов часто считается, что Eclipse MicroProfile и Spring Boot – это отдельные и независимые друг от друга API. По умолчанию, программисты, как правило, используют те API, к которым они уже привыкли, поскольку изучение новых фреймворков и runtime-компонентов требует много времени. Сегодня мы попробуем упростить освоение некоторых популярных MicroProfile API для Spring-разработчиков и покажем, как одновременно задействовать Spring API и новые полезные возможности Quarkus.
Читать дальше: Как Quarkus объединяет MicroProfile и Spring

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