Избранные сообщения O02eg
Первый выпуск Peer-to-Peer клиента федеративной сети Matrix
Состоялся выпуск экспериментального клиента Riot P2P.
Riot — изначально клиент для федеративной сети Matrix. P2P-модификация добавляет в клиент реализацию сервера и федерацию без использования централизованного DNS посредством интеграции libp2p, которая также используется в IPFS. Это первая версия клиента, которая сохраняет сессию после перезагрузки страницы, но в следующих мажорных обновлениях (например, 0.2.0) данные всё равно будут удалены. Поэтому использовать клиент для чего-то важного не рекомендуется.
В клиенте реализована федерация, создание комнат и отображение глобального (бессерверного!) каталога комнат.
При этом основная сеть Matrix, использующая DNS, и сеть Matrix на libp2p пока что не могут федерироваться и взаимодействовать друг с другом.
Для использования клиента достаточно нажать кнопку входа, после чего вы получите сгенерированный ID в сети. Экспорт данных пока не поддерживается.
Так как это нестабильная презентация возможной концепции, вы можете столкнуться с неприятностями:
- Вы не сможете зайти в свой аккаунт или взаимодействовать с другими клиентами, если сервер, запущенный в виде Service Worker, будет убит браузером по истечении времени ожидания. Такая проблема замечена у Firefox, который делает это спустя 30 секунд бездействия].
- На уровне сети libp2p действуют ограничения на количество выполняемых действий по времени, что может вызвать проблемы с федерацией.
( читать дальше... )
Существует также вариант Riot P2P для Android, основанный на коде старого приложения. В будущем планируется перевести его на актуальный RiotX.
Кроме того
-
Представлен проект TARDIS (Time Agnostic Room DAG Inspection Service) — отладчик линейного графа событий (DAG) для Matrix-комнат на основе Riot P2P.
-
В проекте Conduit (разрабатываемом сообществом сервере на языке Rust) теперь реализованы шифрование и вложения.
-
Появился экспериментальный сервер на Scala — Mascarene.
>>> Подробности
PeerTube начал сбор средств на новую функциональность, включая живые трансляции
PeerTube — это свободный сервер для размещения видео, способный федерироваться с другими такими же платформами по протоколу ActivityPub. С клиентской стороны реализуется типичная для видеосервиса функциональность: каналы, плейлисты, комментарии, лайки/дизлайки, а воспроизведение видео работает с помощью технологии WebTorrent, снижая нагрузку на основной сервер, позволяя «встать на раздачу» как другим серверам, включив избыточность, так и простым пользователям во время просмотра. Проект разрабатывается под эгидой некоммерческой компании Framasoft, которая объявила об очередном сборе средств.
На этот раз полугодовая кампания сосредоточена на том, что попадёт в грядущий PeerTube 3.0 при сборе от:
- €10,000 — глобальный поиск (задача на июнь):
- сообщается, что на данный момент серверы PeerTube, как и остальная часть серверов ActivityPub, находятся в «федеративном пузыре»: поиск по видео работает только в пределах серверов, на которые подписан сервер пользователя, и не так эффективно, как мог бы. Это предполагается решить, создав централизованный индекс видео со всех серверов, присутствующих в официальном списке. Индексатор, конечно же, будет опционален и выпущен под свободной лицензией;
- будет добавлена настройка системных уведомления на главной странице (MOTD) от администрации;
- €20,000 — инструменты модерации (задача на июль):
- планируются улучшения в инструментах модерации, вроде добавления журнала действий администрации, панели управления жалобами, возможности дать ответ отправителю жалобы, экспортируемых чёрных списков, которыми можно поделиться с другими, работой над борьбой с вредительской активностью в целом;
- €40,000 — плагины и плейлисты (задача на август-сентябрь):
- на данный момент возможно встраивание на сайты только отдельных видео, эту функциональность расширят до плейлистов;
- появится возможность добавить в плейлист не только целое видео, но и отдельные его куски — клипы;
- планируются улучшения в системе расширений и новые официальные плагины, например, для добавления комментариев в строку прогресса видео;
- €60,000 — прямые трансляции (задача на октябрь-ноябрь):
- самая технически сложная задача всё-таки реализуема и стримы будут работать как поток HLS с задержкой 30-60 секунд, сохраняться как обычное видео и в конечном итоге федерироваться со всем остальным миром, но на первых порах не будет никаких социальных вещей, вроде чата, лайков и смешных картиночек.
>>> Подробности
Rust, 5-й год подряд, стал самым любимым языком по версии StackOverflow
И с большим отрывом.
https://stackoverflow.blog/2020/05/27/2020-stack-overflow-developer-survey-results/
Rust для Web-разработки
Существуют ли уже в экосистеме Rust’а такие аналоги Web-фреймворков, как, например:
- Spring Boot (Java, Kotlin, Groovy)
- Grails (Groovy)
- Django (Python)
- Ruby on Rails (Ruby)
- Play Framework (Scala)
- и т. д.
То бишь All-in-One решения, в составе которых помимо проброса контроллеров имеется ORM к какой-нибудь там PostgreSQL базе данных, шаблонизатор HTML/CSS/JavaScript по типу того же Thymeleaf из Spring или Apache FreeMarker, ну и встраиваемый Web server по типу Tomcat/Netty/Jetty опционально.
В идеале будет круто если на выходе сайт (или хотя бы его логика) будет завёрнута в компактный бинарь, который будет deamon’изирован тем же systemd а сверху будет Nginx с proxy_pass. Тот же Spring Boot удобно вкомпиливает всё в единый JAR-файл, который можно деплоить просто на машину с установленной JRE и базой данных.
Собственно, хочется попробовать чего-то нового из мира Rust. А то у всех вышеперечисленных решений есть типичные фатальные недостатки, например:
- Python/Django – убогая динамическая типизация со всеми её проблемами в виде кривого автодополнения абсолютно в любых IDE, ситуацию угрёбищный type-hinting, который даже не часть языка, а так просто нашлёпка сбоку, практически не спасает, ещё дрист километровыми traceback’ами на каждый чих.
- Java/Spring Boot – с типизацией всё ок, но NPE-проблемы, несколько отстающая от современных трендов стандартная библиотека, для которой нужно создавать Util-классы. Далее у Spring’а слишком много магии в чёрной коробке, ехала аннотация через аннотацию, тяжесть JVM-стека, да и сам Spring тяжёлый.
- Kotlin/Spring Boot – с типизацией всё ок, типы помогают избегать NPE в Kotlin-коде, но так как большинство библиотек это чистая Java, приходится всё рутинно обёртывать, стандартная библиотека вполне актуальная и удобная. Далее со Spring’ом не слишком хорошая интеграция, нужно там всё подпирать какими-то костылями-плагинами вроде all-open, тестирование тоже усложнено из-за совершенно других средств моккирования, несовместимых со Spring’овскими. Далее к проблемам JVM-стека и тяжести Spring’а добавляется ещё кучка зависимостей самого Kotlin’а и его плагинов интеграции.
- Groovy/Grails – динамическая типизация, тяжесть Spring Boot и платформы JVM. Слишком декларативненько для логики. Возможно это просто с непривычки так ощущается.
- Scala/Play Framework – Не слишком нравится синтаксис Scala, и Play Framework со сборщиком
sbt
мне показался тяжелее Spring Boot’овской связки с Gradle/Maven. Понятно, что можно выкинутьsbt
и т. д., но как-то хочется посмотреть в сторону от JVM-языков. - Ruby/RoR – тормоза, динамическая типизация, синтаксис на любителя (я приверженец C-like языков), ещё не понравился жирный начальный проект, который генерируется там через сборщик. Он изначально обмазан кучей JavaScript-библиотек вроде свистопердящей полоски прогресс-бара сверху страницы и т. д.
Ну не PHP же, прости-господи, брать для Web-разработки в 2020 году, верно?! Есть ещё вариант с Go/<чем-то>, но количество батареек у Rust’а, на мой взгляд, побольше.
В общем, посоветуйте популярные Web-фреймворки на Rust, с которыми можно поиграться для своих pet-проектов.
В чем нынче модно рисовать UML-диаграммы?
Собственно, сабж. В чем нынче на онтопе принято рисовать диаграммы?
Начались у меня курсы по джаве, и там препод вещает про UML, «юзерстори» и прочие вещи… И восхваляет мелкософт. Вангую, что задание на нарисовать диаграмму будет включать в себя какое-нибудь Visio, коего у меня, естественно, нет.
Изменилось ли что-нибудь со времен Ставь Windoze и клепай свои сраные диаграмки там.?
З.Ы. Желательно не в виде вебни.
Dia умеет это мышевозить, даже есть раздел UML. Все, вопрос решен. За намек на plantuml тоже спасибо.
Rust + GUI
RazrFalcon, по мотивам треда Ищу годную либу для 2D графики на чём ты остановился? Мне бы правда с GUI на поиграться с хелловорлдами на расте… QPainter брать и не париться? Хочу графы рисовать, как Graphviz, только мышкой. Хотя даже не графы, деревья.
Rust vs С++
Расскажите, пожалуйста, про Rust.
Если я правильно понял, то разработчики взяли C++ насмотревшись на его слово const, и всё сделали наоборот. Т.е. const теперь по-умолчанию, а то что раньше было без ключевого слова, теперь стало mut.
Вся крутизна синтаксиса rust в том, что mut на две буквы короче чем const.
Однако, в силу недостатка мыслительной мощности, разработчики rust не реализовали многие другие механизмы C++ (и поэтому решили, что будут свой язык сравнивать не с C++, а с C).
SMR: новая технология записи делает HDD непригодными для работы в RAID
Для увеличения плотности записи производители HDD перешли к технологии SMR (Shingled Magnetic Recording).
К сожалению, новая технология мешает использовать диски в составе RAID. И что ещё хуже, производители никак не отмечают использование SMR в спецификации на HDD.
Будьте внимательны при выборе жестких дисков.
источники:
>>> Подробности
Deno 1.0
![Deno 1.0](https://www.linux.org.ru/images/19141/500px.jpg)
Состоялся мажорный релиз 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.
>>> Подробности
Языку Rust 5 лет
Сегодня исполнилось 5 лет языку программирования Rust с начала выпуска версии 1.0 в 2015 году. С чем я и поздравляю комьюнити!
Достижения за эти 5 лет можно увидеть по ссылке: https://blog.rust-lang.org/2020/05/15/five-years-of-rust.html
Разыскивается сишка, но с юникодом из коробки
САБЖ. Ищется относительно простой (не C++), но быстрый язык с полноценным юникодом из коробки, хочу в питон батарейку клепать, так как готовая библиотека на ванильном питоне (не моего производства) на пару порядков по скорости проседает от того, что я бы хотел видеть и да, я точно знаю что это возможно, так как есть проприетарщина на крестах, которая могёт (но авторы бабосика уж очень много хотят). При этом не очень хочется заниматься любовью и лишней магией на указателях с utf-8, utf-16 и utf-32 посредством всяких костылей.
Интересно, как там у ржавого и го с юникодом и производительностью.
Firefox VA-API/X11 (заброшен; смержили другую реализацию)
Проект по добавлению VA-API/X11 в Firefox. Заброшен.
Текущее состояние на 3 июля 2020: (комментарий).
Текст от 25 марта 2020:
Атипичная простуда в очередной раз всех напугала и напомнила, что люди не вечные, причём часто внезапно. Было бы жаль совсем потерять результаты работы, поэтому выкладываю текущий вариант патча к Firefox с поддержкой VA-API под иксами.
Это ещё не готовый к мержу патч, всё держится на честном слове. Из текущих проблем:
если не подкрутить настройки, ест больше ватт, чем полностью программное декодирование;с WebRender видео не видно; возможно роняет контент-процесс;с layers-opengl нет видео, если не включить gfx.use-glx-texture-from-pixmap;истерично переаллоцирует X11-пиксмапы, если под layers-opengl переключиться на другую вкладку.
Чтобы под layers-basic экономия от декодирования вообще имела смысл, нужно включить gfx.xrender.enabled. Без XRender чтение картинки обратно в память CPU ест больше энергии, чем просто декодирование сразу на CPU.
До рабочего варианта ещё далеко. Но если кто-то захочет собрать и потестить, ссылка внизу. Патчсет базируется на 74.0. Оригинальный репозиторий был в Mercurial, и файлы .gitignore там где-то игнорят нужное для сборки, поэтому не факт, что код как есть соберётся. Если так оно и есть, должно помочь использование релизных исходников от 74.0 с последующим накладыванием патча.
Для VP9 Firefox предпочитает ffvpx, особую сборку ffmpeg, которую таскает с собой. Чтобы VP9 декодировать через системный ffmpeg с поддержкой VA-API, нужно выключить media.ffvpx.enabled.
Доказана эффективность Rust
… но на самом деле не совсем. Доказана типобезопасность подмножества Rust. Соответствующая статья опубликована аж целых два года назад. А доказательство верифицировано, просто афигенский рокетсайнс.
Считаю, что об этом полезно будет узнать жителям ЛОРа, особенно некоторым анонимам.
P.S. Сам с удивлением узнал сей факт, читая наброс humbug на хабре. Очень качественный наброс, кстати. Рекомендую.
Библиотека Pango отказалась от мягкого сглаживания шрифтов (hintfull)
Библиотека Pango перешла от использования FreeType для получения информации о шрифтах к HarfBuzz, а разработчики последнего приняли решение не поддерживать такой метод сглаживая шрифтов.
Пользователи, которые перешли с версии Pango 1.43 на 1.44 заметили, что отображение некоторых семейств шрифтов ухудшилось или полностью сломалось.
В ответ на критику разработчики HarfBuzz ответили: «Вы можете попытаться привыкнуть к «мыльному» рендерингу или попытаться найти что-то еще. Вы же используете Open Source, понимаете? И те кого не устраивает текущее состояние могут создать форк Pango.»
Upd: Подробный ответ автора: https://github.com/harfbuzz/harfbuzz/issues/2394#issuecomment-626254448
The challenge between the pixelated rendering vs scalable layout is nothing new. Here’s a treatise from almost 20 years ago: http://rastertragedy.com/ Here's my writeup about some of those same challenges I had to find solution to for Chrome back in 2012: http://goo.gl/yf3M7
LibreOffice switched to HarfBuzz to benefit from a single unified shaping-engine, same decision that Chrome and Firefox took as well. These are engineering decisions. It also meant LibreOffice dropped support for Type1 fonts. There were of course the vocal minority complaining and wanting old features back. I asked Adobe if they are willing to contribute support for Type1 to HarfBuzz, they said even Adobe products are dropping Type1 support next year. Same thing about bitmap fonts, people want their bitmap fonts back, we told them to wrap them in OpenType containers.
And same change arrived at Pango. Again, loud minority roars, throwing tantrums and unwilling to listen. The world moves forward. We do what we can with our limited resources. We cannot keep your 20-year old favorite feature working forever. It’s not on us. Find someone to maintain it and pay them to do for you if you cannot get over it.
Buttplug: набор открытого ПО для теледильдоники
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 — программа для управления устройствами с геймпадов и ВР-контроллеров.
>>> Подробности
Роскомнадзор VS DeltaChat
Delta Chat получил от Роскомнадзора требование о доступе к данным пользователей
Подробнее https://www.opennet.ru/opennews/art.shtml?num=52859
Как думаете РКН добьется своего?
Изменения в модераторском составе
Вышла Ubuntu 20.04 LTS
![Вышла Ubuntu 20.04 LTS](https://www.linux.org.ru/images/19097/500px.jpg)
23 апреля 2020 года, в 18:20 по Московскому времени, Canonical выпустила Ubuntu 20.04 LTS с кодовым названием «Focal Fossa». Слово «Focal» в названии следует связывать со словосочетанием «фокальная точка», а также нахождением чего-то в фокусе или на переднем плане. Fossa – кошачий хищник, обитающий на острове Мадагаскар.
Срок поддержки основных пакетов (секция main) составляет пять лет (до апреля 2025). Корпоративные пользователи могут получить поддержку расширенного технического обслуживания, срок которого составляет 10 лет.
( читать дальше... )
>>> Подробности
()
краудфандинг для опенсорса
Порекомендуйте ресурс для краудфандинга. Kickstarter и Indiegogo как ни странно не поддерживают мою страну (Польша).
А остальные, которые я встретил,— не поддерживают опенсорс.
Сферы вероятных проектов — солнечная энергетика и эргономика.
← назад |