LINUX.ORG.RU

Новости «Разработка»

Активные теги:

 , , , ,

Microsoft в лице GitHub приобрела npm

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

GitHub, принадлежащий Microsoft, объявил о приобретении npm, популярного менеджера пакетов для приложений jаvascript. На платформе Node Package Manager размещено более 1,3 миллионов пакетов, а сам сервис обслуживает более 12 миллионов разработчиков.

GitHub заявляет, что npm останется бесплатным для разработчиков и GitHub планирует инвестировать в развитие npm в плане производительности, надёжности и масштабируемости.

В будущем планируется интегрировать GitHub и npm, чтобы ещё больше повысить безопасность и позволить разработчикам тщательно отслеживать npm-пакеты из своих Pull Request. Что же касается платных клиентов npm (Pro, Teams и Enterprise), то GitHub планирует разрешить пользователям перенести свои приватные пакеты npm в GitHub Packages.

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

 , ,

DrRulez
()
: Корректирующий релиз GCC 9.3 (43 комментария)

Memcached 1.6.0 - система кэширования данных в ОЗУ с возможностью сохранения на внешнем носителе

Memcached 1.6.0 - система кэширования данных в ОЗУ с возможностью сохранения на внешнем носителе
Группа Разработка

8 марта состоялось обновление системы кеширования данных в оперативной памяти Memcached до версии 1.6.0. Основное отличие от предыдущих релизов в том, что теперь для хранилища кэшированных данных стало возможно использовать внешнее устройство.


Memcached применяется для ускорения работы высоконагруженных сайтов или веб-приложений путём кэширования доступа к СУБД и промежуточным данным.


В новой версии при сборке по умолчанию включен параметр extstore, который и отвечает за использование внешнего носителя. Для отключения функции следует указать в ./configure параметр --disable-extstore. Однако несмотря на включенную по умолчанию сборку при запуске следует прямо указать использование этой функции.

Extstore позволяет использовать внешние Flash- или SSD-накопителя для увеличения размера кэша. Это позволит кешировать гораздо большие объемы данных, чем без использования этой функции.

Ещё одним важным нововведением стала переработка сетевого взаимодействия, которое теперь адаптировано для автоматической обработки пакетных обращений в рамках одного системного вызова. В предыдущих версий обработка каждого GET-запроса передавалась в отдельном пакете, тогда как в новой версии ответы на несколько запросов собираются в один метапакет и передаются за один раз. В результате такого нововведения была снижена нагрузка на CPU на 25%.

Также в результате этой модернизации сократилось потребление памяти на буферизацию - с 4.5 Кб до 400-500 байт на вызов, и сократилось использование функций malloc, realloc и free, что привело к меньшей фрагментации памяти. Каждый поток теперь обрабатывает свой пул буферов для чтения и записи для активных соединений. Для настройки размера этих буферов предусмотрены опции -o resp_obj_mem_limit=N и -o read_buf_mem_limt=N.

Также было объявлено о переводе в разряд «устаревших» бинарного протокола обмена с сервером. Ему на смену пришел протокол meta — текстовый вариант протокола с компактными meta-командами. В новом протоколе учтены все доступные ранее операции, использующие старые версии бинарного протокола.

>>> Официальный сайт

>>> Исходный код (лицензия BSD)

>>> Описание Extstore

>>> Описание meta-комманд

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

 

Zhbert
()

PostgreSQL Anonymizer 0.6 - инструмент для анонимизации запросов к базе данных

PostgreSQL Anonymizer 0.6 - инструмент для анонимизации запросов к базе данных
Группа Разработка

PostgreSQL Anonymizer - дополнение к СУБД PostgreSQL, позволяющее скрыть или изменить конфеденциальные данные или сведения, представляющие коммерческую тайну. Сокрытие данных происходит на лету, используя списки пользователей для анонимизации и настроенные шаблоны правил.

Инструмент можно использовать для предоставления доступа к БД третьим лицам (например, аналитическим сервисам), автоматически вырезая из запросов личные данные, такие как номера телефонов или кредитных карт, либо используя более сложные методы - подмену имен пользователей, наименований компаний и так далее на фиктивную информацию.

При помощи предоставляемой инструментом утилиты pg_dump_anon есть возможность сделать анонимизированный дамп базы данных для передачи его третьим лицам.

>>> Исходный код (лицензия PostgreSQL)

>>> Страница проекта с инструкцией по установке

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

 , ,

Zhbert
()

Hobbits 0.21 — визуализатор бинарных файлов для реверс-инжиниринга

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

4 марта увидел свет Hobbits 0.21 - инструмент для визуализации бинарных файлов в процессе реверс-инжиниринга. Инструмент написан на связке Qt и C++ и распространяется по лицензии MIT.

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

Для бинарных файлов доступные следующие виды представлений:

  • Классический шестнадцатиричный HEX-код
  • Двоичный код
  • ASCII
  • Побитная или побайтовая растеризация
  • Символьная растеризация

>>> Инструкция по работе с программой

>>> Репозиторий на GitHub

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

 hobbits,

Zhbert
()
: Опубликован исходный код компилятора Miranda (79 комментариев)
: QtProtobuf 0.2.0 (31 комментарий)

Новая книга Брайана Ди Фоя: «Mojolicious Web Clients»

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

Книга будет полезна программистам и системным администраторам. Для её чтения достаточно знать основы Perl. Освоив её, вы овладеете мощным и выразительным инструментом, который поможет упростить решение повседневных задач.

В книге освещены:

  • основы HTTP;
  • разбор JSON;
  • разбор XML и HTML;
  • селекторы CSS;
  • непосредственное выполнение HTTP-запросов, аутентификация и работа с cookie;
  • выполнение неблокирующих запросов;
  • обещания.
  • Написание однострочников и модуль ojo. Некоторые примеры:

    % perl -Mojo -E 'g(shift)->save_to("test.html")' mojolicious.org
    % mojo get https://www.mojolicious.org a attr href
    

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

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

>>> Оглавление

 ,

perl5_guy
()

Qt Creator 4.11

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

12 декабря увидел свет выпуск QtCreator с номером версии 4.11.

QtCreator имеет модульную архитектуру, вся функциональность предоставляется плагинами (плагин Core является неотключаемым). Ниже представлены нововведения в плагинах.

Projects

  • Тестовая поддержка Qt на WebAssembly и микроконтроллерах.
  • Множественные улучшения в подсистемах конфигурации и сборки проектов.
  • Использование файлового API из CMake 3.14 для конфигурирования и запуска проектов. Данное нововведение делает поведение более надежным и предсказуемым (в сравнении с предыдущим «серверным» режимом). Особенно, если CMake также используется извне (напр. из консоли).

Editing

  • Клиент Language Server Protocol теперь поддерживает расширение протокола для семантической подсветки
  • Явно заданные цвета из KSyntaxHighliting больше не игнорируются
  • Значительно упрощено конфигурирование language server для Python
  • Можно изменить стиль окончания строк также из панели инструментов компонента редактора
  • Редактирование «привязок» QML непосредственно из Qt Quick Designer

Более подробная информация находится в логе изменений.

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

 ,

KennyMinigun
()
: 9 лет Mojolicious! Праздничный релиз 8.28 с async/await! (29 комментариев)

Серия статей «По языку в день» от Андрея Шитова

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

Андрей Шитов, известый Perl-разработчик, решил в этом году попробовать как можно больше языков программирования и поделиться опытом с читателями.

Языки программирования восхитительны! Ты влюбляешься в какой-либо язык как только напишешь несколько тестовых программ. Чем больше изучаешь, тем лучше чувствуешь сам язык и идеи положенные в его фундамент.

В рождественском календаре этого года (с 1 по 24 декабря), я буду ежедневно публиковать статьи повествующие об основах различных языков программирования: один день - один язык. Чтобы сделать обзоры более полезными, я постараюсь придерживаться единого формата и разобрать аспекты языка, необходимые для написания следующих мини-проектов:

  • Hello, World!
  • Функция, вычисляющая факториал рекурсивно или в функциональном стиле
  • Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
  • Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности

Список языков:

  • День 1. TypeScript
  • День 2. Rust
  • День 3. Julia
  • День 4. Kotlin
  • День 5. Современный C++
  • День 6. Crystal
  • День 7. Scala
  • День 8. Dart
  • День 9. Hack
  • День 10. Lua
  • День 11. Raku
  • День 12. Elixir
  • День 13. OCaml
  • День 14. Clojure
  • День 15. Nim
  • День 16. V
  • День 17. Go
  • День 18. Hy
  • День 19. Red
  • День 20. Mercury
  • День 21. Elm

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

 ,

perl5_guy
()

Вышла новая версия CMake 3.16.0

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

Вышла новая версия популярной системы сборки CMake 3.16.0 и сопутствующих утилит CTest и CPack, облегчающих тестирование и сборку пакетов соответственно.

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

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

 , ,

a1batross
()

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

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

Julia — высокоуровневый высокопроизводительный свободный язык программирования с динамической типизацией, созданный для математических вычислений. Эффективен также и для написания программ общего назначения. Синтаксис Julia сходен с MATLAB с заимствованием элементов из Ruby и Lisp.

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

  • возможность добавления методов в абстрактные типы;
  • поддержка Unicode 12.1.0 и возможность использования специфичных начертаний цифровых символов Unicode в идентификаторах;
  • добавлен макрос Threads.@spawn и ключевое слово Channel(f::Function, spawn=true) для организации запуска задач в любом доступном потоке. Системные операции ввода/вывода с файлами и сокетами и генератор псевдослучайных чисел адаптированы для многопоточных приложений;
  • добавлены новые библиотечные функции.

Код проекта доступен под лицензией MIT.

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

 ,

Satori
()

Racket завершает переход с LGPL на двойное лицензирование MIT/Apache

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

Racket — язык, вдохновленный Scheme, а также экосистема для программирования других языков — начал переход на двойное лицензирование Apache 2.0 или MIT в 2017 году и теперь, к версии 7.5, практически все его компоненты завершают этот процесс.

Авторы отмечают две основные причины этого:

  1. Непонятно, как трактовать положения LGPL о динамической линковке к Racket, где макросы «копируют» код из библиотек в код приложения, а приложения зачастую комплектуются рантаймом и библиотеками Racket.
  2. Некоторые организации принципиально не хотят использовать программное обеспечение, лицензированное под любой вариацией GPL.

Всего несколько небольших компонентов осталось под LGPL из-за того, что их авторы неизвестны либо не ответили на запрос о перелицензировании. Двое разработчиков ответили отказом на подобный запрос, их код и документация уже были удалены или переписаны.

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

 , ,

filosofia
()

Проект Cppcheck собирает средства для реализации улучшений

Проект Cppcheck собирает средства для реализации улучшений
Группа Разработка

Разработчик Cppcheck (Daniel Marjamäki) собирается добавить возможность верификации ПО на C и C++ в свой статический анализатор.

Верификация ПО в Cppcheck

В режиме «верификации» Cppcheck будет выдавать предупреждение, если не удастся подтвердить, что код безопасный, однако это может приводить к шуму (множественным предупреждениям).

Планы реализации

Режим верификации будет реализован последовательно. На первом этапе работа будет сконцентрирована над проверкой «деление на ноль». Это относительно простая проверка. Каждая функция будет проверяться отдельно. При этом предполагается, что все входные данные могут иметь произвольное значение. Проверки других типов неопределённого поведения будут добавлены позже. Также планируется улучшить синтаксический анализ C и C++.

Ускорение разработки

Цель сбора средств на Kickstarter — ускорение разработки режима верификации. Планируется добавить данную возможность в любом случае, но работа может занять больше времени, если средства не будут собраны. Если же средства будут собраны то Даниель сможет взять отпуск на основной работе, чтобы полностью посвятить своё рабочее время проекту cppcheck.

Цели проекта

  • Устранение ложноотрицательных срабатываний тестов деления на ноль в Juliet и ITC.

  • Исправление ложноположительного срабатывания (см. BUG#9402).

  • Улучшение анализатора C++.

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

 ,

ob1
()

Релиз языка программирования 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
()
: Годовой отчет рабочей группы по Swift Server (34 комментария)
: Две бесплатные книги по Raku от Андрея Шитова (152 комментария)
: Код интерпретатора Perl официально перенесён на GitHub (85 комментариев)
: dhall-lang v11.0.0 (61 комментарий)