OrgaDoc предназначен для простого сопровождения и копирования набора документов между компьютерами. Набор документов можно синхронизировать с помощью rsync или unison. Не нужно устанавливать СУБД типа MySQL или PostgreSQL, HTTP-сервер, скриптовый язык типа PHP или Perl — достаточно установить OrgaDoc и генерировать им документы в HTML или других форматах.
Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm и lemonbar (также есть экспериментальная поддержка dzen/dzen2, xmobar, wmii и других). Программа написана на C и распространяется под лицензией GNU LGPL v3.
Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.
luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.
Нововведения релиза:
Поддержка так называемых “derived plugins” — плагинов, написанных на Lua.
Новые плагины:
dbus;
udev;
backlight-linux;
battery-linux;
cpu-usage-linux;
file-contents-linux;
imap;
mem-usage-linux;
pipe.
При ошибке в виджете теперь печатается стек-трейс.
nEMU — это ncurses-интерфейс к QEMU, упрощающий создание, настройку и управление виртуальными машинами. Код написан на языке C и распространяется под лицензией BSD-2.
В этом релизе был полностью переписан пользовательский интерфейс, т.к. старый был изначально странен и неудобен.
Вышла новая версия библиотеки plibsys 0.0.4. plibsys - это системная библиотека, написанная на С, и портированная на большое количество систем и компиляторов. Библиотека обеспечивает работу с потоками, межпроцессное взаимодействие, сокеты и много чего полезного. Так как ранее она уже была представлена здесь сообществу, то подробное описание можно прочитать из соответствующей новости.
Во-первых, хочется выразить благодарность ЛОРу за конструктивную критику и пожелания. Это помогает переосмысливать некоторые вещи. Во-вторых, спасибо тем, кто создал пакеты под разные системы и дистрибутивы, помог с распространением. И спасибо тем, кто помогал в некоторых моментах с тестированием (особенно на ПК «Эльбрус»).
Теперь к изменениям в новой версии. Возможно, некоторые из изменений уже были отражены в прошлой новости частично, но я дам полный список для простоты.
Simple DirectMedia Layer (SDL) — это свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ. Она активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).
Nuklear+ (читается как «Nuklear cross», значит «кроссплатформенный Nuklear») — это надстройка над GUI библиотекой Nuklear, которая позволяет абстрагироваться от драйвера вывода и взаимодействия с операционной системой. Нужно написать один простой код, а он потом уже сможет скомпилироваться под все поддерживаемые платформы:
SDL: OpenGL 3, OpenGL 2, OpenGL ES 2.0, Emscripten
GLFW: OpenGL 3, OpenGL 2, Emscripten
X11: OpenGL 3, OpenGL 2, чистый Х11 без OpenGL
GDI+
На хабрахабре есть статья про использование Nuklear+. Она же доступна на английском. Пример игры, написанной на Nuklear+ и портированной через Emscripten, можно увидеть тут. Так же имеется веб демо возможностей самого Nuklear.
Недавно ко мне обратились с вопросом, не хочу ли я написать новость об одной из разрабатываемых библиотек (plibsys). В принципе, я не против, поэтому эксклюзивно для LOR.
Что такое plibsys?
plibsys — это кросс-платформенная системная библиотека, написанная на чистом C. Основной упор был изначально сделан на портируемость и поддержку широкого спектра компиляторов. Для достижения этих целей у библиотеки отсутствуют (небольшим исключением является SCO OpenServer 5 ввиду отсутствия на ней потоков) какие-либо зависимости — используются только те вызовы, которые доступны в целевой ОС. Также никакого ассемблера и использования прочих недокументированных возможностей. Для сборки нужен только рабочий компилятор и CMake.
Изначально библиотека писалась для запуска потоков и работы с сокетами, но постепенно функционал расширялся по мере необходимости. На данный момент есть следующий функционал:
Платформо-независимые типы данных
Потоки и средства синхронизации: мьютексы, условные переменные, блокировки чтения-записи, спинлоки, атомарные операции
Вышла первая версия luastatus — универсального генератора данных для панелей состояния, поддерживающего i3bar и dwm. Программа написана на C и распространяется под лицензией GNU LGPL v3.
Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status).
Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.
Разработчики PVS-Studio хотели бы помочь миру программного обеспечения лучше познакомиться с инструментами статического анализа кода и повысить его качество. Теперь PVS-Studio предоставляется бесплатного студентам в учебных целях, индивидуальным разработчикам и коллективам энтузиастов.
Джеймс Шарп (James Sharp), отметившийся ранее в проекте X.org, в начале мая 2016 начал разработку проекта Corrode, целью которого является трансляция программ, написанных на C, в исходный код на Rust. Corrode написан на Haskell и распространяется под GNU GPLv2.
Появилась версия анализатора PVS-Studio, работающая в GNU/Linux. До этого программа работала только в Windows.
PVS-Studio — это инструмент для выявления ошибок в исходном коде программ, написанных на С и C++. В случае интеграции с Visual Studio также возможна проверка проектов на C#.
PVS-Studio выполняет широкий спектр проверок кода, но наиболее удачно справляется с поиском опечаток и последствий неудачного Copy-Paste. Показательные примеры таких ошибок: V501, V517, V522, V523, V3001.
12 июня было объявлено о выходе новой стабильной версии Small Device C Compiler (компилятор языка C для встраиваемых устройств). Он поддерживает архитектуры 8051, DS390, Z80, Z180, Rabbit 2000, HC08, STM8 и PIC (работа в процессе). Основные изменения:
Компания Ланет Нетворк сделала общедоступным код демона для балансировки UDP-трафика рекурсивного DNS — dnsbalancer. Демон используется для распределения клиентских DNS-запросов между многочисленными рекурсивными DNS-серверами с целью балансировки нагрузки и повышения отказоустойчивости кластера рекурсивного DNS.
поддержка множества фронтендов и бекендов одновременно;
слежение за доступностью бекендов, игнорирование недоступных бекендов;
работа в многопоточном режиме;
поддержка правил обработки DNS-запросов с использованием регулярных выражений и выполнением различных действий над клиентскими запросами;
ведение статистики по фронтендам, бекендам, типам запросов и задержкам ответов.
Демон способен обрабатывать десятки тысяч запросов в секунду на виртуальной машине с несколькими ядрами. Код демона работает только под управлением ядра Linux версии 3.9 и выше.
11 апреля 2016 года состоялся релиз Nuklear — небольшой библиотеки для построения GUI, написанной на ANSI C.
Это минималистичный тулкит, построенный на принципах immediate mode и переданный в общественное достояние. Библиотека была спроектирована как простой встраиваемый интерфейс и не имеет никаких дополнительных зависимостей. Для рендеринга и обработки пользовательского ввода используются платформозависимые бэкенды, поверх которых построена модульная система, позволяющая спроектировать интерфейс основываясь на концепциях ввода/вывода.
Особенности
immediate mode
header only (можно использовать и как обычную библиотеку, с разделением на реализацию и заголовки)
написан на C89 (ANSI C)
небольшая кодовая база (~15kLOC)
ориентирован на портабельность, эффективность и простоту
нет зависимостей (не требуется даже стандартная библиотека)
настраиваемый внешний вид
занимает мало места в памяти, предоставляет полный контроль за потребляемыми ресурсами
поддержка UTF-8
не имеет глобального или скрытого состояния
модульность: вы можете скомпилировать и использовать только ту часть библиотеки, которую собираетесь использовать
Несколько примеров пользовательского интерфейса, реализованного с помощью nuklear: раз, два, три.
Здравствуйте. Меня зовут Андрей Карпов. Сфера моих интересов - язык C/C++ и продвижение методологии статического анализа кода. На протяжении пяти лет я являюсь Microsoft MVP в номинации Visual C++. Основная цель моих статей и работы, сделать код программ немножко безопасней и качественней. Буду рад, если эта мини-книга научит вас писать более надежный код и предостережет от некоторых типовых ошибок. Немало полезного здесь можно будет почерпнуть и тем, кто занимается написанием стандартов кодирования для своих компаний.
Немного истории. Не так давно я создал ресурс, на котором делился различными полезными советами по программированию на языке С++. Ресурс не собрал ожидаемое количество подписчиков, поэтому я не вижу смысла приводить здесь на него ссылку. Сайт просуществует какое-то время, после чего уйдет в небытие. А вот советы достойны сохранения. Поэтому я доработал, пополнил эти советы и объединил их в единый текст. Желаю приятного чтения.
Святослав Размыслов из команды PVS-Studio опубликовал статью о проверке ядра FreeBSD. Разработчики PVS-Studio славятся тем, что в целях рекламы своего продукта регулярно проверяют различные открытые проекты. Пожалуй, это один из самых приемлемых и полезных способов продвижения проприетарного приложения. На данный момент они проверили более 200 проектов и выявили в них 9355 ошибок. По крайней мере именно столько ошибок содержится в базе описания дефектов на сайте компании.
Теперь очередь дошла и до ядра FreeBSD. Исходный код для проверки был взят с GitHub из ветки 'master'. По заявлению Святослава, анализатор PVS-Studio выявил около 1000 подозрительных фрагментов в коде, которые с большой вероятностью являются ошибками или неаккуратным кодом. 40 наиболее интересных фрагментов кода он описал в статье. Список предупреждений был заранее передан команде FreeBSD, и она уже начала вносить правки.
Пара слов для программистов, ещё не знакомых с PVS-Studio. Это инструмент для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. PVS-Studio выполняет статический анализ кода и генерирует отчёт, помогающий программисту находить и устранять ошибки. На сайте компании можно увидеть более подробное описание и скачать демонстрационную версию.