LINUX.ORG.RU

Избранные сообщения be_nt_all

Вышла CinelerraGG 2020-08

Новости — Open Source
Группа Open Source

CinelerraGG — форк нелинейного видеоредактора Cinelerra с наиболее частыми релизами (раз в месяц). Из полезного в этом выпуске:

  • Добавлены горячие клавиши для сохранения сессии (CTRL-S) и отмены (CTRL-Z), в добавление к уже существующим s и z.
  • Новый тип ключевых кадров — bump keyframes. Позволяют создавать резко изменяющиеся параметры, например затухания или скорости.
  • При использовании кривой скорости (перемещение ключевого кадра мышкой с зажатой левой кнопкой) наглядно отрисовывается будущая длина дорожки
  • Языки можно переключать через настройки, а не только через переменные окружения.
  • Улучшения в функции выравнивания по таймкоду.
  • Новые плагины из ffmpeg: minterpolate (смена fps, медленный), allrgb (все цвета из возможных в RGB), allyuv (все цвета из возможных в YUV), cellauto, pullup (обратный telecine), selectivecolor (делает то же, что одноимённый фильтр в Фотошопе), tonemap

Известные баги:

  • Если выделить на таймлайне область, где есть несколько ключевых кадров (например, затухания), но оставить ещё несколько вне зоны выделения — то при выборе пункта «Удалить ключевые кадры» и включённой опции «Ключевые кадры сопровождают правку» ключевые кадры съедут. Временное решение: отключить опцию «Ключевые кадры сопровождают правку» на время удаления ключевых кадров в выделенной области.

    Update: баг оперативно исправили в git.


Bugzilla проекта

Мой Слакбилд с патчами

RPM для Rosa 64-bit

Мануал на англ, 659 стр, сделано в LaTex

PS: исходники в git, но можно и в архиве найти тут

>>> Подробности

 ,

Andrew-R
()

Выпуск редактора CudaText 1.110.3

Новости — Open Source
Выпуск редактора CudaText 1.110.3
Группа Open Source

CudaText — это свободный, кросс-платформенный редактор кода, написанный на Lazarus. Редактор поддерживает расширения на Python, и имеет несколько особенностей, позаимствованных из Sublime Text. На Wiki-странице проекта https://wiki.freepascal.org/CudaText#Advantages_over_Sublime_Text_3 автор перечисляет преимущества над Sublime Text.

Редактор подойдет продвинутым пользователям и программистам (доступно больше 200 синтаксических лексеров). Некоторые возможности IDE доступны в виде плагинов. Репозитории проекта находятся на GitHub. Для запуска в Linux есть сборки на GTK2 и Qt5. CudaText отличается относительно быстрым запуском (около 0.3 секунды на CPU Core i3).

Изменения, сделанные за последние 2 месяца:

  • Улучшен движок регулярных выражений TRegExpr. Добавлены атомарные группы, именованные группы, lookahead+lookbehind assertions, поиск юникодных групп по \p \P, поддержка символов юникода больших U+FFFF. Это тот же движок, который входит в Free Pascal, но версия из upstream. Есть надежда, что изменения из upstream войдут и в Free Pascal.

  • Доработаны лексеры. Например, JSON теперь подчеркивает все неверные JSON конструкции, Bash подчеркивает неверные «числа», PHP сильно доработан для прохождения тестов из другого редактора.

  • Добавлены опции:

    • Шрифт статус-бара.
    • Элемент UI-темы для цвета статус-бара.
    • Разрешение показа полосы вкладок.
    • Разрешение показа нижней и боковой панелей при запуске.
  • Команда «Проверить обновления» работает во всех ОС.

  • Новый лексер RegEx, для раскраски ввода диалога Поиск в режиме «регулярных выражений».

  • Вертикальные блоки для режима «перенос строк» теперь работают примерно так же, как и в Sublime Text и VS Code. Подробнее описано в Вики, https://wiki.freepascal.org/CudaText#Behaviour_of_column_selection

  • Для пользователей ST3 сделан раздел в Вики, показывающий, как многие действия ST3 выполнять в CudaText: https://wiki.freepascal.org/CudaText#CudaText_vs_Sublime_Text.2C_different_answers_to_questions

>>> Сайт программы

 ,

Alexey_Tor
()

Emacs 27.1

Новости — GNU's Not Unix
Группа GNU's Not Unix

Свершилось, братие и сестрие!

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

В данном выпуске:

  • встроенная поддержка чисел целых чисел произвольного размера (в Emacs встроен великолепный калькулятор с поддержкой RPN и алгебраических вычислений)
  • встроенная поддержка JSON
  • для рендеринга шрифтов теперь используется библиотека HarfBuzz
  • добавлена поддержка табов
  • работа с изображениями без использования ImageMagick
  • Lexical-binding используется по-умолчанию (если вы не писали на Lisp данный пункт можно смело игнорировать)
  • поддержка дополнительного конфига для ранней инициализации (это может быть интересно пользователям spacemacs)
  • поддержка спецификаций XDG на размещение файлов в домашней директории (наконец-то!)

Лично меня особенно радует последний пункт, хотя изменения и не ограничиваются перечисленным.

Ценители архи-боянов приглашаются в комментарии - делать ставки кто первый «пошутит» про отсутствие в GNU/Emacs текстового редактора: когда ещё доведётся услышать шутку, которая старше большинства посетителей ЛОРа?

>>> Подробности

 , , ,

zabbal
()

Анонсирован выход Perl 7

Новости — Разработка
Группа Разработка

Вчера вечером на «Perl and Raku Conference in the Cloud», Sawyer X анонсировал смену основной версии Perl с 5 на 7. Работы уже ведутся, новая версия выйдет в течение года. Большого количества изменений ждать не стоит, если коротко: Perl 7 это всё тот же Perl 5.32 с современными настройками по умолчанию. Вам больше не надо явно подключать возможности которые вы и так используете, их включат для вас!

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

Perl 5.32 переходит в режим долгой поддержки на срок от 5 лет.

Развёрнутый анонс от Брайана Д Фоя: https://www.perl.com/article/announcing-perl-7/
TL;DR версия от него же: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html

>>> Подробности

 , perl7

perl5_guy
()

Большой релиз LanguageTool 5.0!

Новости — Офисные приложения
Группа Офисные приложения

LanguageTool — это свободная система для проверки грамматики, стиля, орфографии и пунктуации. LanguageTool может использоваться как приложение для рабочего стола, командной строки или как расширение LibreOffice/Apache OpenOffice. Для работы требуется Java 8+ от Oracle или Amazon Corretto 8+. В рамках отдельного проекта созданы расширения для браузеров Mozilla Firefox, Google Chrome, Opera, Edge. И отдельное расширение для Google Docs.

В новой версии:

  • Обновлены модули проверки для русского, английского, украинского, французского, немецкого, арабского, каталанского, нидерландского, эсперанто, словацкого, испанского и португальского языков.
  • Расширены возможности интеграции с LibreOffice.
  • Для расширения LibreOffice (LT 4.8 и 5.0) обеспечена возможность подключения к внешнему LT-серверу. Можно использовать либо локальный сервер, либо подключиться к центральному серверу аналогично браузерным расширениям. Но для обеспечения стандартной работы расширения не требуется подключение к серверу. Подключение может быть использовано, если на сервере реализована расширенная функциональность, например, правила, использующие n-граммы или word2vec. По умолчанию в расширении используется встроенный движок LanguageTool.
  • Для LibreOffice 6.3+ реализована возможность кастомизации различных вариантов подчёркивания ошибок: волнистое, жирное, полужирное, пунктирное подчёркивание. Возможен выбор цвета подчёркивания для каждой категории ошибок. По умолчанию используется зелёный и синий цвет для выделения ошибок.

Изменения для русскоязычного модуля включают:

  • Создано 65 новых и улучшены существующие правила для проверки пунктуации и грамматики (Java и xml).
  • Расширен и исправлен словарь частей речи.
  • Добавлены новые слова в словарь для орфографической проверки.
  • В состав версии для рабочего стола включено два варианта словаря для проверки орфографии. Основной вариант словаря не делает различий между буквами «Е» и «Ё», а в дополнительном они различаются.

Анонс LT-5.0

>>> Подробности

 , , ,

Yakov
()

GnuCash 4.0

Новости — Open Source
Группа Open Source

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

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

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

>>> Подробности

 ,

cocucka
()

NetSurf 3.10

Новости — Интернет
NetSurf 3.10
Группа Интернет

24 мая вышла новая версия NetSurf — быстрого и легковесного веб-браузера, ориентированного на слабые устройства и работающего, помимо собственно GNU/Linux и других *nix, на RISC OS, Haiku, Atari, AmigaOS, Windows, а также имеющего неофициальный порт на KolibriOS. Браузер использует собственный движок и поддерживает HTML4 и CSS2 (HTML5 и CSS3 на ранней стадии разработки), а также JavaScript (ES2015+; DOM API реализован частично).

Основные изменения:

  • Переработан интерфейс GTK.

  • Улучшена обработка таймаутов, аутентификации и сертификатов.

  • JS-движок Duktape обновлён до версии 2.4.0; также добавлено много новых JS-биндингов.

  • Добавлена базовая поддержка HTML5-элемента canvas (пока доступна только работа с ImageData).

  • Улучшена обработка юникода, в частности исправлено отображение многобайтовых (в т.ч. русских) символов в Windows.

  • Множество других мелких изменений.

Полный список изменений

>>> Подробности

 ,

andreymal
()

Падает Gimp

Форум — General

Ситуёвина такая. Понадобился Gimp 2.10. Слака 14.2, но за несколько лет половину либ обновлял с каррента. Гимп работал точно, правда, где-то месяцев 7 не запускал. И тут при запуске стал падать. Говорит что:

GEGL-Message: Ошибка загрузки модуля '/usr/lib64/gegl-0.4/ff-load.so': /usr/lib64/libswscale.so.4: version `LIBSWSCALE_4' not found (required by /usr/lib64/gegl-0.4/ff-load.so)
GEGL-Message: Ошибка загрузки модуля '/usr/lib64/gegl-0.4/ff-save.so': /usr/lib64/libswscale.so.4: version `LIBSWSCALE_4' not found (required by /usr/lib64/gegl-0.4/ff-save.so)
gimp: fatal error: Ошибка сегментирования
Что за LIBSWSCALE_4, можно ли оживить?

 , ,

gnu_linux
()

Cor - алтернативная ООП система для Perl

Новости — Разработка
Группа Разработка

По ссылке сравнение Cor и Moose. Пример кода:

class Point {
    has ( $x, $y ) :reader :writer :new :isa(Int);

    method clear () {
        ( $x, $y ) = ( 0, 0 );
    }
}

class Point3D isa Point {
    has $z :reader :writer :new :isa(Int);

    method clear () {
        $self->next::method;
        $z = 0;
    }
}

>>> Подробности

 ,

perl5_guy
()

Как убрать httpd из автозапуска slackware?

Форум — General

Надоело постоянно выключать apache, чтобы потом включить nginx.

 , ,

Nikidze
()

Почему возникает ошибка при компиляции php? - решено

Форум — General

Добрый день! Я пытаюсь установить php-7.4.6 на Slackware 14.2 При компиляции получаю ошибку:

/tmp/php-7.4.6/ext/imap/php_imap.c:5084:22: ошибка: несовместимые типы для «mm_login»
PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char **pwd, long trial)
                      ^
In file included from /usr/local/lib64/c-client/include/c-client.h:41:0,
                 from /tmp/php-7.4.6/ext/imap/php_imap.h:52,
                 from /tmp/php-7.4.6/ext/imap/php_imap.c:48:

 , ,

Nikidze
()

Tcl/Tk. Альтернативный диалог выбора файлов для платформ Linux и Android

Новости — Разработка
Группа Разработка

Сегодня скриптовый язык Tcl/Tk используется не только на компьютерах, но и с успехом портирован на платформу Android. Но именно на этой платформе стали особенно видны все недостатки диалога выбора файлов tcl/tk (tk_getSaveFile, tk_getOpenFile или tk_chooseDirectory).

Что не устраивает в этом диалоге? Отсутствие в нем элементарных операций с папками/файлами: создать, уничтожить, переименовать. Нет, не подумайте, в самом tcl все эти механизмы, естественно, реализованы, их просто нет в GUI диалога. В Linux это не так заметно, а вот на платформе Android этот диалог вызывает массу неудобств.

В итоге была создана балалайка (так еще называют пакеты/package для tcl) tkfe (tk file explorer).

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

В проекте имеется комплексный пример по использованию пакета. Естественно, этот диалог можно также использовать и на других платформах. Не составляет также труда перенести его на Python/TkInter.

>>> Подробности

 , , tcltk, ,

TclTk
()

VisOpSys 0.9

Новости — Open Source
VisOpSys 0.9
Группа Open Source

Тихо и незаметно увидела свет версия 0.9 любительской системы Visopsys (Visual Operating System) которая пишется одним человеком (Andy McLaughlin).

Из нововведений:

  • Обновленный внешний вид
  • Расширенные сетевые возможности и связанные с ними программы
  • Инфраструктуру упаковки / загрузки / установки / удаления программного обеспечения с онлайн репозиторием
  • Поддержка HTTP, Библиотеки XML и HTML, поддержка некоторых потоков C ++ и POSIX (pthreads), pipes для межпроцессного взаимодействия и дополнительные алгоритмы хеширования.
  • Добавлена ​​сеть TCP
  • Добавлен DNS-клиент
  • Сеть теперь включена по умолчанию во время загрузки
  • Добавлена ​​программа Packet Sniffer («netsniff») для проверки входящих и исходящих сетевых пакетов
  • Добавлена ​​программа «Сетевые подключения» («netstat») для отображения текущих сетевых подключений и состояния TCP, если применимо
  • Добавлена ​​базовая клиентская программа Telnet и библиотека протокола; в основном для тестирования и валидации TCP, хотя протокол имеет и другое применение
  • Добавлена ​​поддержка широких и многобайтовых символов (UTF-8) во всей ОС
  • Добавлена ​​программа «Программное обеспечение» для подключения к репозиторию программного обеспечения по адресу visopsys.org, который может отображать списки доступных и установленных пакетов, а также устанавливать и удалять их.
  • Существующая оконная оболочка преобразована в программу пользовательского пространства, при этом сохранена оболочка в ядре. В будущем планируется создать совершенно новую оконную оболочку и предоставить пользователю выбор между оболочкой в юзерспейсе и оболочкой встроенной в ядро.
  • Добавлена ​​интеграция с мышью VMware, так что гость Visopsys координирует свою работу с хостом, чтобы автоматически захватывать или убирать курсор мыши, когда он входит или выходит из окна. Требует, чтобы опция была включена в VMware.
  • Добавлена начальная поддержка POSIX Threads (pthreads) (libpthread) для переносимости программного обеспечения.
  • В ядро ​​добавлена ​​реализация хеширования SHA1 и программы командной строки sha1pass (хэширует строковые параметры) и sha1sum (хэширует файлы), которые его используют.
  • В ядро ​​добавлена ​​реализация хеширования SHA256 и обновлено хеширование паролей пользователей с MD5 до SHA256. Также добавлены программы командной строки sha256pass (хэширует строковые параметры) и sha256sum (хэширует файлы), которые его используют.

>>> Подробности

 ,

liss21
()

Вышел Crystal 0.34.0

Новости — Разработка
Группа Разработка

Вышла новая версия Crystal, компилируемого языка программирования с синтаксисом Ruby, главные особенности которого — рантайм с «вмонтированным» event loop’ом, в котором все операции ввода-вывода асинхронны, поддержка многопоточности (пока включается флагом при компиляции) и исключительно простая и удобная работа с библиотеками на Си.

Начиная с версии 0.34.0, язык официально начинает твёрдой поступью двигаться в сторону первого настоящего релиза (т.е. версии 1.0).

В новой версии Crystal можно отметить следующие изменения и улучшения в порядке их важности:

  • В API добавлена новая библиотека журналирования Log, которая, в отличие от старой, умеет направлять сообщения в разные бекенды и по-разному эти сообщения фильтровать в зависимости от «источника».

  • Рудименты из мира разработки на Си, Errno и WinError, использовавшиеся для примитивов ввода-вывода, уходят в прошлое благодаря иерархии исключений IO::Error (впрочем, использовать Errno никто пока не запрещает).

  • Убрана автоматическая подстановка else nil из оператора case/when/else. Это сделано для того, чтобы исключить случайный пропуск разработчиком одной из веток when при матчинге по детерминированным случаям наподобие enum’ов и прохода по типам из Union’а. Т.е., проще говоря, вот такой код больше работать не будет без указания ещё одного when (when Char) или задания else-ветки:

a = 1 || 'x' || "foo"
case a
when Int32
  # ...
when String
  # ...
end
  • Опция компилятора disable_overflow больше недоступна. Для операций с переполнением используйте методы &+, &-, &*.

  • Array#fill теперь летает быстрее пули, благодаря замене туповатого цикла на один простой memset;

  • Менеджер шардов (пакетов), называющихся, как это ни парадоксально, shards, теперь использует более быстрый и эффективный алгоритм удовлетворения зависимостей Molinillo, подсмотренный в CocoaPods (Swift) и Builder (Ruby).

  • Добавлена поддержка LLVM 10, что по идее даст нам некий рост производительности, стабильности, etc.

… и множество других, на мой субъективный взгляд, менее существенных улучшений.

Хотелось бы отметить, что Crystal — это построенный на LLVM язык, позволяющий писать приложения порой быстрее, проще и лаконичнее, чем на его интерпретируемых «собратьях», и при этом получать на выходе довольно шустрый бинарник. На фоне Golang выделяется абсолютно полноценным ООП, поддержкой дженериков и очень простым и понятным синтаксисом. По своему назначению во многом аналогичен Nim, но при этом явным образом ориентирован на практическое применение «здесь и сейчас», благодаря чему имеет в своём API-арсенале множество нормально документированных удобных и качественных инструментов, поддерживаемых разработчиками языка и потому весьма стабильных.

>>> Анонс в блоге Crystal

 , ,

DRVTiny
()

Перегрузка методов с наследованием C++

Форум — Development

Допустим есть класс:

struct Base{
    void operator +=( int i ){}
};

И мы от него наследуемся с перегрузкой оператора:

struct Dirived : public Base{
    void operator +=( float f ){}
};

При создании объектов типа Dirived, опреатор из класса Base будет не доступен. Если его не перегружать, то все хорошо. Напомните плиз как сделать оба их видимыми. Вроде как-то через using можно было вытащить оператор из Base.

Такой код не работает:

struct Dirived : public Base{
    using void Base::operator +=( int i );
    void operator +=( float f ){}
};

 ,

SR_team
()

Вышел четвёртый том книги А.В.Столярова «Программирование: введение в профессию»

Новости — Документация
Группа Документация

На сайте А.В.Столярова объявлено о выходе четвёртого тома книги «Программирование: введение в профессию». Электронная версия книги размещена в открытом доступе.

Четырёхтомник «Введение в профессию» охватывает основные этапы обучения программированию от азов школьной информатики (в первом томе) до тонкостей устройства операционных систем (в третьем томе), объектно-ориентированного программирования и других парадигм (в четвёртом томе). Весь курс обучения рассчитан на применение свободного программного обеспечения, в том числе систем семейства Unix (включая Linux).

Четвёртый, заключительный том серии вышел под общим заголовком «Парадигмы». Он посвящён возможным стилям программистского мышления, отличным от императивного. Рассматриваются такие языки, как Си++ (для иллюстрации объектно-ориентированного программирования, абстрактных типов данных и обобщённого программирования), Лисп и Scheme, Пролог, Хоуп (Hope). В качестве примера командно-скриптового языка приведён Tcl. В части, посвящённые Си++ и Tcl, включены главы о графических интерфейсах пользователя (с помощью соответственно FLTK и Tcl/Tk). Книга заканчивается обсуждением интерпретации и компиляции как самостоятельных парадигм, отмечаются ограничения на применение интерпретируемого исполнения, а равно и ситуации, в которых оно уместно и желательно.

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

>>> Подробности

 , ,

anonymous
()

TDE/Trinity 14.0.7/14.0.8/14.0.9 for Slackware

Форум — Desktop

TDE/Trinity 14.0.7/14.0.8/14.0.9 for Slackware 14.2/14.2+ / сборка от русских физиков

Ноги, крылья… Главное — хвост!

- TDE 14.0.9 for Slackware      14.2/14.2+
- TDE 14.0.8 for Slackware 14.1/14.2/14.2+
- TDE 14.0.7 for Slackware      14.2/14+

описание сборки, установка, настройка в текстовом файле

tag: slackware tde trintiy desktop

TDE

Slackware pkg

 , , ,

sunjob
()

XDG_RUNTIME_DIR прибили гвоздями? ваши мысли?!

Форум — Admin

добрый день

до Slackware 14.2+ не было никаких проблем :о)

переопределял для себя «кастомные» каталоги XDG_xxx - на RAM-DISK типа:

export XDG_RUNTIME_DIR=$RAM_DISK/.var/run
export  XDG_CACHE_HOME=$RAM_DISK/.var/cache

в Slackware 14.2+ выяснилось то, что значение переменной XDG_RUNTIME_DIR игнорируется и системой под эти цели принудительно используется каталог:

/var/run/user/$ID

причем, если оставить «старое кастомное переопределение», то

KDE4/5 - будет игнорировать эту настройку и просто принципиально юзать «новый стандарт каталога»

/var/run/user/$ID

а вот TDE-14.0.7 будет честно пытаться использовать «кастомную настройку»

XDG_RUNTIME_DIR=$RAM_DISK/.var/run
а т.к. «вся система» использует «другой каталог» то рабочий стол TDE начинает тупить, глючить и выеживаться, причем, сообщения ошибок «неочевидны» и говорят, типа "... DCOP <blah-blash-blah> ..."

причем, по умолчанию каталог

/var/run
находится на HDD, а не на «подобной» /dev/shm, что ВООБЩЕ не есть гуд

...

понятное дело, бодаться в лоб я не стал, использую «так как есть», и то, что «я чё-та да не знаю, Ё!»

но, хотелось бы услышать ваши мнения, идеи, все что думаете по этому поводу и, особенно, по поводу «а нахрена так делать?!» :о)

короче, просто поболагурим на «тему»

спасибо

p.s. уточняю, мне непонятно (больше всего волнует) не то, что TDE глючит, а почему весь мир/все остальные принудительно, как по договоренности игнорируют XDG_RUNTIME_DIR :o)

 

sunjob
()

ttf-parser 0.5 — новая библиотека для работы с TrueType шрифтами

Новости — Open Source
Группа Open Source

ttf-parser — это библиотека для разбора TrueType/OpenType шрифтов. В новой версии появилась полноценная поддержка переменных шрифтов (variable fonts) и C API, вследствие чего я решил прорекламировать её на лоре.

До недавнего времени, если была необходимость работы с TrueType шрифтами, было ровно два варианта: FreeType и stb_truetype. Первый является огромным комбайном, второй поддерживает довольно небольшое количество функций.

ttf-parser находится где-то посредине. Он поддерживает все те же TrueType таблицы (формат TrueType состоит из множества отдельных бинарных таблиц) что и FreeType, но не занимается отрисовкой самих глифов.

При этом, ttf-parser содержит множество других значительных отличий:

  1. ttf-parser написан на Rust без использования unsafe. FreeType и stb_truetype написаны на C.
  2. ttf-parser является единственной безопасной (memory-safe) реализацией. Чтение произвольной памяти невозможно. Во FreeType постоянно исправляют уязвимости, а stb_truetype в принципе не предназначен для чтения произвольных шрифтов.
  3. ttf-parser является единственной thread-safe реализацией. Все методы парсинга константны. Единственным исключением является задание координат для переменных шрифтов, но эта функция reentrant. FreeType в принципе однопоточный. stb_truetype - reentrant (можно использовать отдельные копии в разных потоках, но не одну из множества).
  4. ttf-parser является единственной реализацией не использующей аллокации в «куче». Это позволяет ускорить разбор и избежать проблем при OOM.
  5. Также, почти все арифметические операции и приведение числовых типов проверяются (в том числе статически).
  6. В самом худшем случае библиотека может бросить исключение. При этом в C API исключения будут перехвачены и функция вернёт ошибку, но не упадёт.

И несмотря на все гарантии безопасности, ttf-parser также является и самой быстрой реализацией. Например разбор CFF2 в 3.5 раза быстрее чем в FreeType. Разбор glyf тем временем на 10% медленнее чем в stb_truetype, но это из-за того, что он не поддерживает переменные шрифты, для реализации которых требуется хранить доп. информацию. Больше подробностей в README.

>>> Подробности

 ,

RazrFalcon
()

Lazygit — псевдографический консольный клиент для Git

Новости — Open Source
Lazygit — псевдографический консольный клиент для Git
Группа Open Source

Если у вас есть проблемы с восприятием основных моментов в работе с Git-репозиторием из консоли, то вы всегда можете воспользоваться графическим клиентом. Один из них - Lazygit, псевдографический клиент, написанный на языке Go с использованием библиотеки gocui.

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

Просто посмотрите на картинку с примером работы и все вопросы отпадут сами собой.

>>> Библиотека gocui (BSD 3-Clause «New» or «Revised» License)

>>> Обучающее видео

>>> Подробности

 , lazygit

Zhbert
()