LINUX.ORG.RU

204
Всего сообщений: 454

Lemmy 0.7.0

Группа Open Source

Состоялся выпуск очередной мажорной версии Lemmy — в будущем федеративной, а сейчас централизованной реализации Reddit-like (или Hacker News, Lobsters) сервера — агрегатора ссылок. На этот раз было закрыто 100 отчётов о проблемах, добавлена новая функциональность, улучшена производительность и безопасность.

Сервер реализует типичную для такого рода сайтов функциональность:

  • создаваемые и модерируемые пользователями сообщества по интересам — сабреддиты, если выражаться терминологией Reddit;
    • да, у каждого сообщества свой собственный модераторский состав и задаваемые правила;
  • создание постов как в виде простых ссылок с превью метаданных, так и полноценные статьи в Markdown длиной в несколько тысяч символов;
  • кросспостинг — дублирование одного и того же поста в разные сообщества с соответствующим индикатором, отображающим это;
  • возможность подписаться на сообщества, посты из которых будут составлять личную ленту пользователя;
  • комментирование постов в древовидном стиле, опять же, с возможностью форматирования текста в Markdown и вставкой изображений;
  • оценивание постов и комментариев посредством кнопок «лайк» и «дизлайк», в сумме составляющие рейтинг, влияющий на отображение и сортировку;
  • система уведомлений в реальном времени со всплывающими сообщениями о непрочитанных сообщениях и постах.

Отличительной чертой реализации является минималистичность и адаптируемость интерфейса: кодовая база написана на Rust и TypeScript, используя технологию WebSocket, мгновенно вживую обновляя содержимое страницы, при этом занимая считанные килобайты в памяти клиента. В будущем планируется клиентское API.

Конечно же, нельзя не отметить практически готовую реализацию федерации серверов Lemmy по общепринятому протоколу ActivityPub, используемого во множестве других проектов сообщества Fediverse. С помощью федерации пользователи разных серверов Lemmy и, более того, пользователи других участников ActivityPub-сети, вроде Mastodon и Pleroma, смогут подписываться на сообщества, комментировать и оценивать посты не только в пределах их собственного сервера регистрации, но и остальных. Также планируется реализация подписки на пользователей и добавление глобальной федеративной ленты, как в упомянутых микроблогах.


Изменения в этом выпуске:

  • на главной странице теперь отображается лента с последними комментариями;
  • множество новых тем оформления, включая новую стандартную светлую (до этого была тёмная);
  • раскрываемые превью контента, сгенерированные iframely, прямо в ленте и на странице поста;
  • улучшенные пиктограммы;
  • автодополнение эмодзи при вводе, и появление интерфейса для их выбора;
  • упрощение кросспостинга;
  • и самое главное, замена pictshare, написанного на PHP, на pict-rs, реализацию на Rust, для управления медиафайлами;
    • pictshare комментируется как проект с серьёзными проблемами безопасности и производительности.

Также разработчики сообщают, что получили финансирование в размере €45,000 от организации NLnet.

Полученные средства планируют потратить на:

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

Для простого ознакомления со стабильной версией можно использовать крупнейший англоязычный сервер — dev.lemmy.ml. На скриншоте запечатлён derpy.email.

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

 , , , ,

commagray ()

Deno 1.0

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

Состоялся мажорный релиз Deno – открытой, безопасной среды выполнения программ на языке TypeScript, обладающей следующими особенностями:

  • Исключительно явный доступ к файловой системе, сети и окружению через установку соответствующих разрешений пользователем;
  • Исполнение TypeScript без Node.JS и tsc;
  • Обратная совместимость с Javascript: любое подмножество программ для Deno, не ссылающееся на глобальное пространство имён Deno и являющееся валидным Javascript кодом можно исполнять в браузере;
  • Поставка в виде единственного исполняемого файла, также содержащего в себе дополнительные инструменты, такие как
    • deno run --inspect-brk: дебаг-сервер, взаимодействующий с Visual Studio Code и инструментами удалённой отладки в Google Chrome;
    • deno install: установщик программ для Deno из удалённых ресурсов. Производит загрузку вместе с зависимостями и добавляет в $HOME/.deno/bin cкрипт для запуска программы;
    • deno fmt: производит форматирование кода;
    • deno bundle: бандлер программ на Deno. Производит js-файл, содержащий в себе программу для Deno и её зависимости;
    • WIP: генератор документации и инструмент аудита зависимостей;
  • Отсутствие зависимости от npm и package.json: внешние модули подгружаются и используются (загрузка по сети происходит только во время первого выполнения, в дальнейшем модуль кэшируется вплоть до вызова с флагом --reload) после указания их URL прямо в программе:
    import * as log from "https://deno.land/std/log/mod.ts";
    
  • Абсолютно все асинхронные операции возвращают Promise, в отличие от Node.JS;
  • Выполнение программы всегда останавливается при возникновении необработанных ошибок.

Deno – встраиваемая среда, и может быть использована для расширения существующих программ на Rust с помощью крейта deno_core.

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

Deno подходит для использования в качестве выполнения скриптов – поддерживается вызов через shebang.
Есть REPL.
Написано на языке программирования Rust.

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

 ,

Princesska ()

Buttplug: набор открытого ПО для теледильдоники

Группа Open Source

Buttplug — открытый стандарт и набор ПО для управления интимными устройствами, такими как фаллоимитаторы, сексмашины, электростимуляторы и прочее.

Особенности:

  • Набор библиотек для Rust, C#, Javascript/Typescript и других популярных языков программирования;

  • Поддержка устройств Kiiroo, Lovense, Erostek и других. Полный список здесь;

  • Поддерживает управление по Bluetooth, USB, HID, Serial интерфейсам, а также звуковое управление;

  • Исходный код открыт по лицензии (BSD 3-Clause).

Среди ПО доступны:

  • Intiface Desktop — контрольный сервер управления устройствами;

  • LaunchControl — плагин для Kodi и VLC для синхронизации с фильмами;

  • Virtual Romance Club — игра с поддержкой устройств виртуальной реальности;

  • Intiface Game Haptics Router — программа для управления устройствами с геймпадов и ВР-контроллеров.

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

 , , , ,

cocucka ()

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

Группа 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 ()

«All the Music, LLC» сгенерировали все возможные мелодии и освободили их

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

Дэмиэн Рил, юрист, программист и бакалавр музыки, и Ноа Рубин, музыкант, (Damien Riehl, Noah Rubin) написали программу, которая сгенерировала все возможные короткие 12-тактные мелодии, использующие 8 нот в пределах октавы (около 69 миллиардов комбинаций), зарегистрировали их от имени своей компании All the Music, LLC и передали в общественное достояние. Выложили на archive.org 1200 Gb в архивах tar.gz по несколько сотен мелодий. (Проблема в архивах: сняты все биты разрешений, может понадобиться chmod -R a+rw.)

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

Сама программа, перебирающая сочетания нот, выложена на GitHub под лицензией Creative Commons-Share Alike 4.0. Язык — Rust. Авторы сравнивают её работу с брутфорсом паролей, 300 000 комбинаций в секунду.

Новость на vice.com

Рил объясняет, что число мелодий конечно, YouTube

>>> Новость на opennet.ru

 , , , ,

question4 ()

Проблемы свободы проекта Rust

Группа Open Source

Опубликована статья на wiki проекта Hyperbola, в которой рассматриваются проблемы языка Rust в контексте свободы программного обеспечения, а также необходимость развития в независимом от политик торговых марок Mozilla Corporation (субсидиар Mozilla Foundation, годовой доход порядка 0.5 миллиарда долларов).

Одной из рассматриваемых в статье проблем является тот факт, что в отличии от C, Go, Haskell и прочих языков программирования, Rust ― является торговой маркой, а не названием языка программирования, разрешенным к употреблению без согласия Mozilla Corporation.

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

 ,

anonymous ()

Релиз языка программирования Rust 1.39

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

Rust — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla, сочетающий парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах, и с управлением памятью через понятие «владения».

Что нового в версии 1.39:

  • стабилизирован новый синтаксис асинхронного программирования, основанный на функции «async», блоке async move { … } и операторе «.await»;
  • разрешено указание атрибутов при определении параметров функций, замыканий и указателей на функции. Поддерживаются атрибуты условной компиляции (cfg, cfg_attr), управляющие диагностикой через lint и вспомогательные атрибуты вызова макросов;
  • стабилизирован «#feature(bind_by_move_pattern_guards)», который позволяет использовать переменные с типом привязки «by-move» в шаблонах;
  • предупреждения о проблемах при проверке заимствования переменных c использованием NLL переведены в разряд фатальных ошибок;
  • в пакетный менеджер cargo добавлена возможность использования расширения «.toml» для файлов конфигурации.

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

>>> Источник

 ,

Satori ()

Lemmy — федеративный социальный новостной агрегатор

Группа Open Source

Lemmy создан как альтернатива сайтам вроде Reddit, Lobste.rs, Raddle или Hacker News: можно подписываться на интересующие вас темы, публиковать ссылки и обсуждения, а затем голосовать и комментировать.

Но есть важное отличие: любой пользователь может запустить свой сервер, который, как и все другие, будет подключен к одной и той же «вселенной», называемой Fediverse. Пользователь, зарегистрированный на одном сервере, может подписаться на темы на любом другом сервере и может вести обсуждения с пользователями, зарегистрированными в других местах.

На каждом из lemmy-серверов может быть установлена собственная политика модерации и назначены модераторы для борьбы с токсичными троллями.

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

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

 , ,

anonymous ()

Вышел Rust 1.37.0

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

Среди нововедений:

  • Разрешено ссылаться на варианты enum через псевдонимы типов (type aliases), например через Self.
  • cargo vendor теперь входит в стандартную поставку.
    • С помощью cargo vendor можно явно скачивать и использовать полную копию всех исходных кодов всех зависимостей. Это полезно для компаний с монорепозиториями, которые хотели бы хранить и анализировать весь исходный код, используемый в их ПО.
  • Поддержка const _:.
  • Поддержка Profile Guided Optimization.
  • Поддержка #[repr(align(N))] для лучшего контроля над выравниванием в Enum.
  • Изменения в стандартной библиотеке.
  • Изменения в Clippy
  • Microsoft и Amazon стали спонсорами Rust, предоставив облачную инфраструктуру для сборки и тестирования Rust.

>>> Анонс

 ,

vertexua ()

Опубликован способ обхода borrow checker в Rust

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

Jakub Kądziołka опубликовал proof-of-concept, показывающий непосредственные проблемы, связанные с ошибкой в проекте компилятора Rust, которую разработчики безуспешно пытаются решить уже на протяжение четырех лет.

Пример, разработанный Jakub, позволяет обойти Borrow Checker посредством очень простого трюка:

fn main() {
    let boom = fake_static::make_static(&vec![0; 1<<20]);
    println!("{:?}", boom);
}

Разработчик просит не использовать этот обход в Production, так как его целью было только привлечь внимание к проблеме, игнорируемой разработчиками Rust.

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

 

anonymous ()

Vector 0.3.0

Группа Open Source

На этой неделе вышла версия 0.3.0 свободной утилиты Vector, предназначенной для сбора, преобразования и сохранения данных логов, метрик и событий.

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

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

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

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

 ,

euZ3meep ()

Rust 1.36

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

Команда разработчиков с радостью представляет вам Rust 1.36!

Что нового в Rust 1.36? Стабилизирован трейт Future, из нового: крейт alloc, MaybeUninit<T>, NLL для Rust 2015, новая реализация HashMap<K, V> и новый флаг --offline для Cargo.

( За подробностями )

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

 

snake266 ()

resvg 0.7 — библиотека отрисовки SVG

Группа Open Source

Вышел новый, значительный релиз библиотеки для растеризации SVG - resvg.

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

>>> Репозиторий

 , ,

RazrFalcon ()

Rust 1.35

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

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

Если у вас уже установлен Rust через rustup,то можно обновиться командой: $ rustup update stable

Главное в обновлении - это реализиция трейтов замыкания Fn, FnOnce, FnMut, для Box<dyn Fn>, Box<dyn FnOnce>, Box<dyn FnMut>, соответственно. Добавление возможности приводить замыкания к указателям на небезопасные функции, вызов макроса dbg!() теперь возможен без аргументов, была проведена стабилизация стандартной библиотеки.

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

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

 

snake266 ()

Rust 1.34

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

Вышел релиз 1.34 языка системного программирования Rust, развиваемого проектом Mozilla.

Ключевое-долгожданное:

  • Начиная с этого выпуска, Cargo может поддерживать альтернативные реестры. (Эти реестры сосуществуют с crates.io, так что вы можете писать программы, которые зависят и от crates.io и от вашего реестра.)
  • Трейты TryFrom и TryInto были стабилизированы для поддержки ошибок при преобразовании типов.

>>> Полный анонс

 ,

DAGAZ ()

resvg 0.5 — библиотека отрисовки SVG

Группа Open Source

resvg — это библиотека для отрисовки SVG, прямыми аналогами которой являются librsvg и QtSvg. Но в отличие от них, resvg поддерживает отрисовку с помощью нескольких бэкендов (Qt и cairo) и обеспечивает более полную поддержку стандарта. Также resvg является модульным, что позволяет использовать лишь нужные функции.

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

  • Это bugfix релиз, поэтому в нём множество исправлений.
  • Добавлена поддержка marker.
  • Добавлена частичная поддержка baseline-shift, letter-spacing и word-spacing.
  • Добавлены плагины для использования resvg в качестве генератора превью в Dolphin и в Windows Explorer.
  • Добавлено 143 новых теста. Общее количество достигло 958-и.

Результаты тестирования. Сравнительная таблица. Список нереализованных возможностей.

Так как marker был успешно реализован, до полной поддержки static SVG осталось реализовать textPath, Unicode BIDI (left-to-right, top-to-bottom, glyph orientation и т.д.) и несколько фильтров.

>>> GitHub

 , ,

RazrFalcon ()

resvg 0.4 — библиотека отрисовки SVG

Группа Open Source

resvg — это библиотека для отрисовки SVG, прямыми аналогами которой являются librsvg и QtSvg. Но в отличие от них, resvg поддерживает отрисовку с помощью нескольких бэкендов (Qt и cairo) и обеспечивает более полную поддержку стандарта. Также resvg является модульным, что позволяет использовать лишь нужные функции.

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

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

 , ,

RazrFalcon ()

Rust 1.31.0 (2018)

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

Команда Rust объявила о выходе новой стабильной версии Rust 1.31.0, который ознаменует собой также выход новой редакции «Rust 2018». Rust — это язык программирования, который позволяет каждому создавать надежное и эффективное программное обеспечение.

Если у вас установлена предыдущая версия Rust, обновиться до Rust 1.31.0 проще всего следующим образом:

rustup update stable

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

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

 ,

dotcoder ()

Первая международная конференция по Rust в России - Москва, 15-16 декабря - RustRush 2018

Группа Конференции и встречи

15-16 декабря в отеле «Новотель Москва Сити» пройдёт международная конференция для разработчиков на Rust — RustRush 2018.

В программе 2 дня. В субботу, 15 декабря — доклады; в воскресенье, 16 декабря — воркшопы.

Заявлено 12 докладчиков из разных стран, среди них 4 докладчика из Rust Team: Стив Клабник, Эшли Уильямс, Паскаль Хертляйф и Катарина Фей. Список докладчиков.

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

Будет 2 воркшопа. Стив Клабник и Эшли Уильямс проведут воркшоп об использовании связки Rust и WebAssembly, а Артём Павлов (основатель проекта RustCrypto) — о криптографии на чистом Rust.

В стоимость билета входит набор сувениров с символикой Rust и конференции в пакете участника, а также кофе-брейки и фуршет.

Предусмотрена скидка для студентов — 50%. Используйте промокод «STUDENT». В случае использования этой скидки, на входе нужно будет показать действующий студенческий билет.

Также предусмотрена скидка для участников сообщества Linux.org.ru — 20%. Используйте промокод «LINUX».

Купить билет.

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

 , , ,

mkpankov ()

Pijul 0.11

Группа Open Source

Вышла новая версия Pijul — свободной системы управления версиями, основанной на теории патчей и написанной на языке Rust.

Pijul развивает идеи Darcs — Pijul быстрее, лучше, в нём решена проблема экспоненциальной сложности слияния и поддерживаются ветки (для всех, кто спросил и еще спросит «чем оно лучше Git» - ссылка на FAQ)

Слово «Pijul» (произносится «пихуль») — это мексиканское названия Бороздчатоклювого ани, вида птиц семейства кукушковых, чьи особи совместно работают над строительством гнёзд.

Улучшения в версии 0.11:

  • Добавлено частичное клонирование подкаталогов: pijul clone --path и pijul pull --path. При этом скачиваются только те патчи, которые затрагивают указанный подкаталог.
  • Добавлен парсер ~/.ssh/config — теперь Pijul будет автоматически использовать настройки псевдонимов хостов, SSH-прокси, ключей и т. д.
  • Внутренняя архитектура переведена на использование библиотеки Tokio — де-факто стандарта для асинхронного программирования на языке Rust. Минус велосипеды, новичкам будет проще разобраться в коде Pijul.
  • Исправлено много мелких и две крупные ошибки. Одна из них приводила к падению производительности при использовании pijul record, другая в некоторых случаях приводила к изменении содержимого патчей и файлов после клонирования.

Для нужд Pijul автором также развиваются вспомогательные библиотеки:

  • Thrussh — реализация клиента и сервера SSH на языке Rust.
  • Pleingres — клиентская библиотека, реализующая сетевой протокол PostgreSQL на языке Rust.
  • Sanakirja — хранилище «ключ-значение» на языке Rust, основанное на B-деревьях и поддерживающее транзации (аналог LMDB). «Sanakirja» по-фински означает «словарь».

Автор также разрабатывает Pijul Nest — аналог GitHub на основе Pijul и Rust. К сожалению, Nest пока не является свободным проектом.

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

 , , ,

Begpoug ()