Пришло время для нашей ежемесячной охоты на новые библиотеки с открытым исходным кодом, чтобы использовать и вносить свой вклад !
Если вы новичок в Sourcehunt, это наш ежемесячный пост, посвященный продвижению проектов с открытым исходным кодом, которые кажутся интересными или многообещающими и могут использовать помощь с точки зрения звезд Github или запросов запросов.
Это наш способ дать отпор — продвигать проекты, которые мы используем (или могли бы использовать), чтобы они получили достаточно информации, чтобы привлечь более широкую аудиторию, мощное сообщество и, возможно, новых спонсоров или спонсоров.
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.
Удачного кодирования!