LINUX.ORG.RU

Сообщения dataman

 

improg — Immediate-mode terminal progress bars in C

 , improg, progressbar, ,

Понадобился хороший прогрессбар для Си, делюсь.
https://github.com/charlesnicholson/improg:

Immediate-mode terminal progress bars in C
Zero memory allocations, no state.

LICENSE:

Improg is dual-licensed under both the «Unlicense» and the «Zero-Clause BSD» (0BSD) licenses. The intent of this dual-licensing structure is to make improg as consumable as possible in as many environments / countries / companies as possible without encumbering users.

This license applies to all of the improg source code, build code, and tests, with the explicit exception of doctest.h, which exists under its own license and is included in this repository.


Кусочек improg-demo.c (gif-анимация):

#define VERIFY_IMP(CALLABLE) \
  do { if ((CALLABLE) != IMP_RET_SUCCESS) { printf("error\n"); exit(1); } } while (0)

static void test_label(imp_ctx_t *ctx) {
  imp_widget_def_t const w = IMP_WIDGET_COMPOSITE(-1, 3, IMP_ARRAY(
    IMP_WIDGET_LABEL("Label   : "),
    IMP_WIDGET_LABEL("[simple] "),
    IMP_WIDGET_LABEL("[complex 🐛🐛🐛🐛🐛 ∅🍺🍻🍷🍹💯]")));

  imp_value_t const v =
    IMP_VALUE_COMPOSITE(3, IMP_ARRAY(IMP_VALUE_NULL(), IMP_VALUE_NULL(), IMP_VALUE_NULL()));

  VERIFY_IMP(imp_draw_line(ctx, NULL, NULL, &w, &v));
}

static void test_scalar(imp_ctx_t *ctx) {
  imp_widget_def_t const w = IMP_WIDGET_COMPOSITE(-1, 9, IMP_ARRAY(
    IMP_WIDGET_LABEL("Scalar  : int=["),
    IMP_WIDGET_SCALAR(-1, -1),
    IMP_WIDGET_LABEL("] imax=["),
    IMP_WIDGET_SCALAR(-1, -1),
    IMP_WIDGET_LABEL("] fpos=["),
    IMP_WIDGET_SCALAR(-1, 9),
    IMP_WIDGET_LABEL("] fneg=["),
    IMP_WIDGET_SCALAR(-1, -1),
    IMP_WIDGET_LABEL("]")));

  imp_value_t const v = IMP_VALUE_COMPOSITE(9, IMP_ARRAY(
    IMP_VALUE_NULL(),
    IMP_VALUE_INT(12345678),
    IMP_VALUE_NULL(),
    IMP_VALUE_INT(9223372036854775807LL),
    IMP_VALUE_NULL(),
    IMP_VALUE_DOUBLE(1234.567891011),
    IMP_VALUE_NULL(),
    IMP_VALUE_DOUBLE(-1234.567891),
    IMP_VALUE_NULL()));

  VERIFY_IMP(imp_draw_line(ctx, NULL, NULL, &w, &v));
}
dataman
()

При помощи AI-модели Mythos выявлены 23 тысячи уязвимостей в открытом ПО

 mythos, , ,

https://www.opennet.ru/opennews/art.shtml?num=65515:

Компания Anthropic подвела первые итоги тестирование предварительного варианта AI-модели Mythos, в которой были существенно расширены возможности по поиску ошибок, выявлению уязвимостей и написанию готовых эксплоитов. Компания Anthropic при помощи AI-модели Mythos провела сканирование более тысячи важных открытых проектов, в ходе которого было выявлено 23019 уязвимостей. 6202 уязвимостям был назначен высокий или критический уровень опасности.

1752 из 6202 уязвимостей, отнесённых AI-моделью Mythos к категории опасных, были проверены независимыми компаниями, специализирующимися на компьютерной безопасности. В 1587 случаях (90.6%) наличие уязвимости было подтверждено, а в 1094 (62.4%) - сохранился высокий или критический уровень опасности. При текущих показателях ложных срабатываний предполагается, что из 6202 заявленных AI-моделью опасных уязвимостей примерно 3900 (62.4%) сохранят выбранный моделью высокий уровень опасности, не считая опасных уязвимостей найденных отдельно при проверке 50 участниками проекта Glasswing.

Сведения об 467 верифицированных уязвимостях переданы сопровождающим открытые проекты представителями компаний, проводивших рецензирование. По отдельным запросам сотрудники Anthropic напрямую передали сопровождающим информацию о 1129 непроверенных проблемах. Всего сопровождающие 281 открытого проекта получили сведения о 1596 проблемах и подтвердили наличие 1451 уязвимостей. При этом в кодовых базах пока исправлено только 97 проблем и выпущено 88 публичных отчётов об уязвимостях.

Кроме того, сообщается, что 50 участников проекта Glasswing, которым был предоставлен ранний доступ к модели Mythos, выявили в своих кодовых базах более 10 тысяч опасных уязвимостей. Например, компания Cloudflare нашла при помощи Mythos более 2000 ошибок, из которых 400 отмечены как уязвимости с высоким и критическим уровнем опасности. Уровень ложных срабатываний по оценке Cloudflare оказался ниже, чем при тестировании людьми. Компания Mozilla при проверке кода Firefox 150 нашла при помощи Mythos 271 уязвимостей, что в 10 раз больше, чем было найдено при проверке Firefox 148 моделью Claude Opus 4.6.

dataman
()

Nordstjernen 0.6.0

 , , nordstjernen, ,

Группа Интернет

19 мая состоялся первый публичный выпуск 0.6.0 очень минималистичного кроссплатформенного браузера Nordstjernen (норв. «Полярная звезда»).

Проект написан на языке С и распространяется по лицензии Nordstjernen Source v1.0, с переходом каждого выпуска на лицензию MIT через десять лет после публикации.

В браузере используется GTK4 и ряд сторонних библиотек:

  • Lexbor – для разбора HTML, CSS и URL;
  • QuickJS-NG – для выполнения JavaScript;
  • libcurl – для работы с сетью;
  • Wuffs – для декодирования PNG, GIF, BMP и JPEG;
  • другие библиотеки.

>>> План разработки
>>> Исходный код

>>> Подробности на GitHub (github.com)

dataman
()

Как вы относитесь к эмодзи в заглавиях тем?

 , ,

Для участия в опросе войдите или зарегистрируйтесь.

>>> Результаты

dataman
()

Ratty — трёхмерный эмулятор терминала

 , , , ,

Orhun Parmaksız (сайт заслуживает отдельных слов) настолько впечатлился TempleOS, что написал на Расте Ratty — трёхмерный эмулятор терминала. О чём подробно написал в блоге (видео на youtube).

Для новости он сыроват, а для пятницы в самый раз. :)

dataman
()

leaf 1.21.0

 , mermaid, , ,

Группа Open Source

9-го мая состоялся выпуск 1.21.0 кроссплатформенной консольной утилиты leaf, предназначенной для просмотра файлов в формате Markdown.

Основные возможности:

  • подсветка синтаксиса;
  • поддержка математических формул LaTeX;
  • поддержка диаграмм Mermaid;
  • TUI c возможностью полного переопределения оформления;
  • полнотекстовый поиск текста в TUI;
  • 4 встроенные темы оформления с возможностью использования пользовательских тем;
  • интеграция с редактором;
  • слежение за изменениями редактируемого файла.

( читать дальше... )

>>> Подробности на GitHub (github.com)

dataman
()

OpenZL 0.2.0

 , , , ,

Группа Open Source

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

Фреймворк состоит из базовой библиотеки и инструментов для создания специализированных компрессоров, описанных на языке SDDL.
Для создания хорошего специализированного компрессора есть два этапа:

  1. Анализ данных для извлечения структуры.
  2. Использование хороших бэкенд-компрессоров, которые используют полученную структуру для достижения хорошего сжатия.

OpenZL предоставляет инструменты для обоих этапов.

Проект написан на языках C и C++ и распространяется по лицензии BSD.

( читать дальше... )

>>> Подробности на GitHub и в первой редакции новости (github.com)

dataman
()

libgit2 1.9.3

 , , , ,

Группа Разработка

5-го мая, после пяти месяцев разработки, состоялся выпуск 1.9.3 кроссплатформенной библиотеки libgit2, реализующей основные методы Git. Библиотека написана на языке C и распространяется по лицензии GNU GPL 2 со специальным исключением для линковки, позволяющим не раскрывать исходный код.

В качестве примеров проектом также предоставляются консольные утилиты lg2 и git2-experimental.

Существует большое количество биндингов к libgit2 для других языков программирования и библиотек: Rust, Objective-C, Python, Perl, Node.js, Go (github.com), Erlang, GObject, Ruby, .Net & Mono, Lua (github.com), Parrot VM, C++ Qt, PHP (github.com), Chicken Scheme, D (github.com) и других.

В этой версии исправлен ряд ошибок и улучшена совместимость. В частности – в поддержке алгоритма SHA256.

>>> Подробности на GitHub (и в первой редакции новости) (github.com)

dataman
()

Автор платформы Bun проводит эксперимент по переписыванию с Zig на Rust

 , , , ,

https://www.opennet.ru/opennews/art.shtml?num=65379:

Джарред Самнер (Jarred Sumner), создатель и основной разработчик серверной JavaScript-платформы Bun (bun.sh), создал Git-ветку, в которой приступил к переписыванию Bun с языка Zig на Rust. Переписывание ведётся с использование AI-ассистента Claude, для которого сформировано отдельное руководство по портированию. По словам Джарреда пока это лишь эксперимент, а не официальный порт, и высока вероятность, что дальше эксперимента дело не зайдёт и переписанный код не будет использован.

Портирование ещё не завершено, и на текущем этапе весь интерес к проекту сосредоточен на том, чтобы оценить насколько работоспособным получится порт, будет ли он проходить набор тестов основного проекта и сложно ли будет сопровождать новый код. В конечном счёте планируется провести сравнительное тестирование вариантов Bun на Zig и Rust.

В декабре прошлого года проект Bun поглотила компания Anthropic, поэтому у Джарреда есть ресурсы для вовлечения в портирование передовых AI-моделей Claude. Платформа Bun применяется в продуктах Claude Code и Claude Agent SDK, и компания Anthropic заинтересована в повышении её качества и развитии. Bun является одним из самых успешных проектов на языке Zig, при этом у разработчиков Zig и Bun расходятся мнения в отношении применения AI в процессе разработки. В проекте Zig утверждён жёсткий запрет применения больших языковых моделей при подготовке pull-запросов, issue и комментариев (запрещён даже перевод через AI неанглоязычных комментариев).

Введение подобных ограничений объясняется разработчиками Zig негативным опытом в рецензировании созданных через AI pull-запросов, которые отнимают ресурсы и время (например, отмечаются бессмысленные изменения, AI-галлюцинации и раздутые коммиты в 10 тысяч строк). Кроме того, проект Zig позиционирует себя как ориентированный на участников, а не вносимый ими вклад в разработку - главной целью принятия pull-запросов называется не добавление нового кода, а помощь в развитии новых участников.

Автор Bun не согласен с запретом AI в Zig и полагает, что AI-слоп останется ностальгическим пережитком 2025 и 2026 годов, а разработка открытого ПО эволюционирует до запрета приёма кода от людей. Люди будут обсуждать проблемы, ставить задачи и расставлять приоритеты, а написание кода и отправка изменений в репозитории станет уделом AI. В качестве причины экспериментов с переписыванием на Rust также отмечается желание устранить проблемы в Bun, вызванные утечками памяти, и неприемлемая для крупных проектов политика Zig в отношении принятия в язык изменений, нарушающих совместимость.

Из-за запрета применения AI разработчики Bun вынуждены поддерживать собственный форк инструментария Zig, в котором благодаря применению AI удалось в 4 раза ускорить компиляцию за счёт распараллеливания семантического анализа и генерации кода. При этом судя по комментарию одного из разработчиков Zig причина отклонения патчей не в AI, а в том, что распараллеливание семантического анализа затрагивает не только компилятор, но и сам язык - чтобы реализовать предложенную функциональность без ошибок и несовместимостей, требуется внесение изменений в язык Zig. Вместо распараллеливания, разработчики Zig развивают инкрементальную компиляцию, которая по их предположению позволит на порядок повысить скорость компиляции.

JavaScript-платформа Bun развивается как высокопроизводительный аналог платформ Node.js и Deno. Проект разрабатывается с оглядкой на обеспечение совместимости с серверными приложениями для Node.js и поддерживает большую часть API Node.js. В состав платформы входит набор инструментов для создания и выполнения приложений на языках JavaScript и TypeScript, а также runtime для выполнения JavaScript-приложений без браузера, пакетный менеджер (совместимый с NPM), инструментарий для выполнения тестов, система сборки самодостаточных пакетов и прослойка для встраивания обработчиков, написанных на языке Си. По производительности Bun заметно обгоняет Deno и Node.js (в тестах на базе фреймворка React платформа Bun в 2 раза опережает Deno и почти в 5 раз Node.js). Для выполнения JavaScript задействован JavaScript-движок JavaScriptCore и компоненты проекта WebKit с дополнительными патчами.

dataman
()

ToaruOS 2.3 и 2.3.1

 , kuroko,

Группа Open Source

28 апреля и 5 мая состоялись выпуски 2.3 и 2.3.1 Unix-подобной операционной системы ToaruOS, написанной с нуля и поставляемой со своим ядром, загрузчиком, стандартной Си-библиотекой, пакетным менеджером, компонентами пространства пользователя и графическим интерфейсом с композитным оконным менеджером.

Изначально проект развивался в Иллинойсском университете как исследовательская работа в области создания новых композитных графических интерфейсов, но затем трансформировался в отдельную операционную систему. Код проекта написан на языке Си и распространяется под лицензией BSD. Для загрузки подготовлен live-образ (2.3.1), размером 7.4 МБ, который можно протестировать в QEMU, VMware или VirtualBox.

В основе ToaruOS лежит ядро, использующее гибридную модульную архитектуру, сочетающую монолитную основу и средства для использования загружаемых модулей, в виде которых оформлено большинство имеющихся драйверов устройств, таких как драйверы диска (PATA и ATAPI), ФС Ext2 и ISO9660, framebuffer, клавиатуры, мыши, сетевых карт (AMD PCnet FAST, Realtek RTL8139 и Intel PRO/1000), звуковых чипов (Intel AC’97), а также дополнений VirtualBox для гостевых систем. Ядро поддерживает Unix-потоки, TTY, виртуальную ФС, псевдо-ФС /proc, многопоточность, IPC, ramdisk, ptrace, разделяемую память, многозадачность и другие типовые возможности.

( читать дальше... )

>>> Источники: OpenNET и GitHub (opennet.ru)

dataman
()

MyLibrary 5.0

 , , , ,

Группа Open Source

Состоялся релиз каталогизатора домашней библиотеки MyLibrary 5.0. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки Qt6. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен сценарий сборки готового пакета. Для пользователей Windows доступен экспериментальный инсталлятор.

MyLibrary каталогизирует файлы книг в формате fb2, epub, pdf, djvu, odt, txt, md, как доступные напрямую, так и упакованные в архивы (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), и создаёт собственную базу данных, не изменяя исходные файлы и не меняя их положения. Для каталогизации также доступен формат fbd (файл книги, упакованный в архив вместе с файлом с расширением fbd, содержащем тег description формата fb2). В формате fbd могут храниться любые файлы, не только книги. Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хеш-сумм файлов и архивов.

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

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

MyLibrary может работать с коллекциями, находящимися на внешнем сервере (соответствующие папки и файлы должны быть доступны по протоколу SMB и смонтированы на локальном компьютере с помощью gvfs, kio-fuse или их аналогов).

( читать дальше... )

>>> Источник: OpenNET (opennet.ru)

dataman
()

Уязвимости в Nix и Lix, позволяющие поднять привилегии в системе

 lix, ,

Группа Безопасность

В пакетных менеджерах Nix (github.com) и Lix (lix.systems) выявлена уязвимость, позволяющая выполнить код с правами фонового процесса, который в NixOS и многопользовательских установках выполняется под пользователем root. Проблема (CVE не присвоен) проявляется в фоновом процессе nix-daemon, применяемом для организации доступа непривилегированных пользователей к сборочным операциям и хранилищу пакетов.

( читать дальше... )

>>> Источник: OpenNET (opennet.ru)

dataman
()

Нарушение прав на товарный знак: поддельный Notepad++ для Mac

 , , , ,

https://notepad-plus-plus.org/news/npp-trademark-infringement:

2026-05-01
В последнее время несколько пользователей сообщили о сайте, который якобы предлагает официальную версию Notepad++ для macOS: notepad-plus-plus-mac.org.

Скажу прямо: Этот сайт не имеет абсолютно никакого отношения к Notepad++. Он не является авторизованным, не поддерживается и никоим образом не связан с проектом.

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

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

Чтобы было абсолютно ясно: Notepad++ никогда не выпускал версию для macOS. Любой, кто утверждает обратное, просто пользуется известностью Notepad++.

Как я уже упоминал в своём посте на GitHub, я уже связался с владельцем поддельного «официального» сайта и до сих пор жду ответа.

А пока, если вы увидите, что кто-то публикует сообщение «Notepad++ наконец-то появился на Mac!» на Reddit, Twitter, Mastodon, Discord, StackOverflow или в каких-либо технических блогах/форумах, пожалуйста, ответьте следующим образом: «Это не официальный выпуск Notepad++. Это неавторизованный проект, незаконно использующий товарный знак Notepad++», и добавьте ссылку на это объявление.

Спасибо пользователям, которые сообщили об этом. Ваша бдительность помогает защитить проект от тех, кто считает, что может произвольно использовать бренд Notepad++.

Don Ho

dataman
()

Unexpected Keyboard 2.0.0 и 2.0.1

 , , unexpected keyboard, виртуальная клавиатура

Группа Android

Состоялся выпуск 2.0.0 Unexpected Keyboard – лёгкой виртуальной клавиатуры для Android, обеспечивающей конфиденциальность. Главной особенностью клавиатуры является возможность ввода большего количества символов свайпом, проводя пальцем по клавишам в направлении их углов.

Исходный код проекта распространяется по лицензии GNU GPL 3.0. Готовые сборки доступны на странице репозитория, F-Droid и Google Play.

( читать дальше... )

>>> Подробности на GitHub (github.com)

dataman
()

CodePointer 0.1.4

 , codepointer, , ,

Группа Разработка

1-го мая состоялся выпуск 0.1.4 CodePointer (ранее назывался qtedit4) — IDE для языков C++, Go, Rust и многих других.

Проект находится на ранней стадии разработки, и основное внимание уделяется локальной, а не веб-разработке.

( читать дальше... )

>>> Подробности на GitHub (github.com)

dataman
()

tev 2.11.0

 , , nanogui, tev,

Группа Мультимедиа

28-го апреля, после почти двух месяцев разработки, состоялся выпуск 2.11.0 «The EDR Viewer» — кроссплатформенной программы для просмотра изображений с высоким динамическим диапазоном (HDR) — для тех, кого заботят цвета.

Возможности TEV:

  • Молниеносная скорость – мгновенный запуск, загрузка сотен изображений за секунды.
  • Точность – поддержка HDR и цветовых профилей (ICC, CICP и др.). Отображение HDR во всех поддерживаемых операционных системах.
  • Универсальность – поддержка множества форматов файлов и их специфических особенностей: карт усиления, вспомогательных каналов, анимации, а также метаданных, помимо EXIF и XMP.
  • Детальный анализ – гистограммы, тональные карты, показатели ошибок и т. д. в любом цветовом пространстве.

( читать дальше... )

>>> Подробности на GitHub (github.com)

dataman
()

ObjectTalk — объектно-ориентированный «швейцарский армейский нож»

 , , , objecttalk,

https://github.com/goossens/ObjectTalk:

Welcome to ObjectTalk, a object-oriented Swiss Army Knife providing a Scripting Language, 2D/3D Graphics Engine, Node Based Programming, Audio Engine, an Entity Component System and an Integrated Development Environment to learn and have some fun.

Late 2020, I retired after a 40+ year career in the software and system development business. Starting as a programmer/analyst and later moving up the ladder to management, international standardization and geopolitics, I was exposed to lots of technologies including operating systems design, computer language development, military command and control systems, web application design, data science and what we now call artificial intelligence. You can read my full bio on my website.

After retirement, I dusted off some old projects to improve mental health (applying the «use it or loss it» principle like we do for physical health) and that’s how this repository came about. I started by revisiting a scripting language I wrote decades ago, modernizing it and learning things along the way. Once the language was stable, it needed a few use cases and I dusted off some 2D/3D graphic projects that I had laying around. This then led to including a graphics engine, an Entity Component System (ECS), Node Based programming and a custom Integrated Development Environment (IDE). The latest addition is an audio engine that will help with my musical interests as it provides Digital Signal Processing (DSP) based circuits that can be quickly connected together to create «musical» instruments or create sounds.

So today, this project contains a lot of code, compiles into a single executable with no runtime dependencies and is functional on MacOS, Linux and Windows. It basically is a playground to learn and have fun. Think of it as a educational jack of all trades, master of none.

dataman
()

Lexilla 5.4.9, Scintilla 5.6.2, SciTE 5.6.2

 , , , ,

Группа Open Source

29-го апреля состоялись состоялись выпуски 5.4.9 и 5.6.2 кроссплатформенных библиотек для парсинга, редактирования и подсветки кода Lexilla и Scintilla соответственно, а также выпуск 5.6.2 основанного на них редактора текстов SciTE.

Проекты написаны на языке C++ (стандарт C++20).

( читать дальше... )

>>> Подробности на scintilla.org (scintilla.org)

dataman
()

Microsoft открыла код 86-DOS и PC-DOS под лицензией MIT

 , , , ,

https://www.opennet.ru/opennews/art.shtml?num=65332:

Компания Microsoft опубликовала под лицензией MIT исходный код операционных систем 86-DOS 1.00 и PC-DOS 1.00, а также runtime-библиотеки компилятора Microsoft BASIC-86, ассемблер SCP, утилиты CHKDSK и EDLIN. PC-DOS 1.00 примечателен тем, что был первым выпуском DOS для компьютеров IBM PC. Код был восстановлен в рамках проекта по реконструкции кода первых версий DOS для CPU 8086, путём сканирования и транскрибирования архивных бумажных распечаток, созданных в 1981 и 1982 годах.

dataman
()

GCC 16

 , , ,

GCC 16
Группа Разработка

После года разработки опубликован выпуск свободного набора компиляторов GCC 16.1, первый значительный выпуск в новой ветке GCC 16.x. В соответствии со схемой нумерации выпусков, версия 16.0 использовалась в процессе разработки, а незадолго до выхода GCC 16.1 уже ответвилась ветка GCC 17.0, на базе которой будет сформирован следующий значительный релиз GCC 17.1.

( читать дальше... )

>>> Источник: OpenNET (opennet.ru)

dataman
()