Статьи

Sourcehunt: идея месяца и 6 интересных репо!

Пришло время для нашей ежемесячной охоты на новые библиотеки с открытым исходным кодом, чтобы использовать и вносить свой вклад !

Если вы новичок в Sourcehunt, это наш ежемесячный пост, посвященный продвижению проектов с открытым исходным кодом, которые кажутся интересными или многообещающими и могут использовать помощь с точки зрения звезд Github или запросов запросов.

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

Sourcehunt логотип


genkgo / archive-stream [5 ★]

Мы наткнулись на этот пакет после очень интересного прочтения о потоковом архивировании и загрузке файлов в PHP.

Этот пакет предоставляет API с эффективным использованием памяти для потоковой передачи ZIP-файлов в виде сообщений PSR 7. Он имеет определенные ограничения, а именно то, что поддерживается только формат Zip64 (версия 4.5 спецификации Zip), и файлы не могут быть возобновлены, если загрузка завершается неудачно до завершения, но, кроме этого, использовать его невероятно просто, если вы уже пробираться через воды PSR-7:

$archive = (new Archive())
    ->withContent(new CallbackStringContent('callback.txt', function () {
        return 'data';
    }))
    ->withContent(new StringContent('string.txt', 'data'))
    ->withContent(new FileContent('file.txt', 'local/file/name.txt'))
    ->withContent(new EmptyDirectory('directory'));

$response = $response->withBody(
    new Psr7Stream(new ZipReader($archive))
);

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

Как вы обычно отправляете ZIP, если вообще? Почему бы не попробовать?


patrickschur / определение языка [270 ★]

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

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

Эта библиотека может определять язык заданной текстовой строки. Он может анализировать данный обучающий текст во многих различных идиомах в последовательность N-грамм и создает файл базы данных в формате JSON для использования на этапе обнаружения. Затем он может взять заданный текст и определить его язык, используя базу данных, ранее созданную на этапе обучения. Библиотека поставляется с текстовыми образцами, используемыми для обучения и обнаружения текста на 106 языках.

Библиотека хорошо документирована, хорошо протестирована и хорошо построена — она ​​очень проста в использовании и очень проста, чтобы добавить к ней больше обучающих данных.

Пакет может использовать некоторые углубленные учебники и сопровождающие, так что если вы готовы к низкому уровню обслуживания, зарегистрируйтесь!


https://github.com/JWHennessey/phpInsight [195 ★]

Используется для извлечения настроения из текста. Это может быть положительным, нейтральным или отрицательным. Это как очень простая, бесплатная версия Semantria с открытым исходным кодом.

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

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


Исфонзар / Настроение-термометр [42 ★]

Используя вышеупомянутую библиотеку PhpInsight, она идет в Twitter, ищет предоставленную фразу или термин и измеряет отношение Twitter к нему. Это означает, что он будет собирать твиты, которые говорят об этом, анализировать их на предмет настроения и возвращать общий результат.

Теперь вы можете возразить, что в демоверсии поисковый запрос Дональда Трампа, дающий 40% положительных и только 20% отрицательных настроений, не имеет особого смысла, и автор сказал, что настроения меняются в зависимости от времени суток и тому подобного (возможно, он тестировал, когда в России был полдень?), но, очевидно, библиотека могла бы использовать некоторые настройки и тонкую настройку, так что давай вперёд и прыгаем прямо туда. Она также может использовать возможность поиска в других социальных сетях — публичные публикации Facebook может быть интересным, например.


Paragonie / PHP-Cookie [7 ★]

В городе появился новый убийца CSRF , и пакет PHP-Cookie от paragonIE первым по-настоящему его использует.

Если вы пропустили это, Cookies теперь поддерживают директиву SameSite в новых браузерах, эффективно убивая CSRF во всех современных клиентах. Это по-прежнему оставляет старые браузеры уязвимыми, так что вам определенно пока не следует полагаться на JUST только на SameSite, но это шаг в правильном направлении, и все, что нам нужно сделать, — это ждать принятия.

PHP-Cookie делает следующий шаг и добавляет функциональность в виде пакета PHP — теперь вы можете легко устанавливать файлы cookie SameSite из PHP. В этой библиотеке:

  • Secure установлен на TRUE, если вы не переопределите его.
  • Только для HTTP установлено значение TRUE, если вы не переопределите его.
  • Same-Site имеет значение Strict, если вы не переопределите его.

Обратите внимание, что PHP 7+ является обязательным требованием.

Если вам интересно, есть также предложение внедрить это в нативный PHP: https://bugs.php.net/bug.php?id=72230


камранахмедсе / шаблоны дизайна для людей [7718 ★]

И последнее, но не менее важное, репо без кода. Эта удивительная подборка понятных человеку объяснений шаблонов дизайна взорвалась в Reddit и Hacker News за выходные и с тех пор продолжает расти.

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


Вот и все за февраль. Нашли что-нибудь, во что вы могли бы погрузить зубы?

Как всегда, пожалуйста, напишите нам свои ссылки с хэштегом #sourcehunt ! Если вы создаете что-то с помощью проектов, о которых мы упоминали, или если вы отправляете сложный запрос на извлечение, о котором хотите поговорить, напишите нам, и мы позаботимся о том, чтобы об этом знал весь мир!

Приложение + Учебное пособие месяца: добавьте общедоступные посты Facebook в термометр настроений, добавьте определение языка в микс, используйте Google Translate для перевода неанглоязычных постов, а затем соберите все эти настроения. Постройте график настроений для термина каждый час в день в течение нескольких дней / недель подряд, и найдите тенденции симпатии и антипатии фразы. Добавьте этот микс на панель инструментов, где все, что нужно сделать пользователю, это определить термин, и виджет генерируется с графиками трендов. Бонусные баллы, если термины и их значения сохраняются на более поздний срок, поэтому, если другой пользователь запрашивает, например, Дональда Трампа, данные уже есть и используются повторно, сохраняя пропускную способность и вызовы API.

Удачного кодирования!