Поиск на панели задач и распределённая SQLite

Выпуск № 58 ·

Проекты на C#

  1. EverythingToolbar

    Поиск и запуск приложений прямо с панели задач Windows. Результат показан на иллюстрации:

    EverythingToolbar

Проекты на C++

  1. ChordNova

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

    ChordNova

Проекты на Go

  1. containers-the-hard-way

    Миниатюрный Docker на Go с основными возможностями контейнеризации. Проект реализует подобие контейнеров только через системные интерфейсы Linux и помогает разобраться в их работе. Если хотите изучить контейнеры глубже, попробуйте написать по этому образцу собственный мини-Docker.

    containers-the-hard-way
  2. delve

    Отладчик для Go. Если вы, как и автор, всё ещё отлаживаете программы через fmt.Println, попробуйте его: инструмент прост в освоении, запускается разными способами и помогает быстрее находить ошибки. У проекта больше десяти тысяч звёзд на GitHub.

    delve
  3. rqlite

    Лёгкая распределённая реляционная БД на Go с SQLite в качестве хранилища. Хороший первый проект для изучения устройства распределённых баз данных: знакомый движок позволяет сосредоточиться на распределённых механизмах. Начните с документации. Схема архитектуры:

    rqlite
  4. vegeta

    Инструмент нагрузочного тестирования HTTP на Go. Особенно впечатляет визуализация результатов команды ниже с vegeta, jaggr и jplot:

    echo 'GET http://localhost:8080' | \
        vegeta attack -rate 5000 -duration 10m | vegeta encode | \
        jaggr @count=rps \
              hist\[100,200,300,400,500\]:code \
              p25,p50,p95:latency \
              sum:bytes_in \
              sum:bytes_out | \
        jplot rps+code.hist.100+code.hist.200+code.hist.300+code.hist.400+code.hist.500 \
              latency.p95+latency.p50+latency.p25 \
              bytes_in.sum+bytes_out.sum
    vegeta

Проекты на Java

  1. Anki-Android

    Android-клиент Anki для эффективного запоминания. В Anki учебные карточки содержат вопрос с одной стороны и ответ с другой, а алгоритм интервальных повторений помогает закреплять материал. Скачать приложение. Автор обещает руководство для новичков, если материал наберёт больше 100 отметок «нравится».

    Anki-Android
  2. apollo

    Распределённый центр управления конфигурацией с открытым кодом от Ctrip. Готов к работе сразу после установки: серверная часть построена на Spring Boot и Spring Cloud и не требует отдельного контейнера Tomcat. Изменения конфигурации вступают в силу сразу; предусмотрены права доступа и регламентированные процессы управления. Подходит для конфигурации микросервисов.

    apollo
  3. java-design-patterns

    Практические примеры шаблонов проектирования на Java от участников сообщества открытого кода. Java-разработчику полезно знать хотя бы некоторые шаблоны. Материалы на английском, но код и схемы помогают понять смысл описаний: язык не должен мешать изучению шаблонов. Читать онлайн.

  4. JustAuth

    Java-компонент с открытым кодом для входа через сторонние сервисы. Просто подключается и позволяет добавить авторизацию через разные платформы: поддерживается уже больше десятка, список расширяется.

    JustAuth
  5. KnowStreaming

    Мощная платформа мониторинга и администрирования кластеров Kafka. Возможностей столько, что её легко принять за платный продукт. Если в компании используют Kafka, присмотритесь к ней для внутренней эксплуатации: автор считает, что её внедрение может стать заметным профессиональным достижением.

    KnowStreaming

Проекты на JavaScript

  1. cloudbase-framework

    Универсальный инструмент Tencent с открытым кодом для развёртывания облачных приложений. Размещает проект в облаке одной командой и не ограничивает выбор фреймворка или языка.

    cloudbase-framework
  2. hearthstone-battlegrounds-tools

    Плагин для отслеживания карт в игре Hearthstone от Blizzard. Обычным игрокам достаточно установить его на Windows или macOS. Разработчикам пригодится как пример полного цикла работы с Electron: управление несколькими процессами рендеринга, учёт различий платформ, контроль версий и публикация. Возможности:

    • Статистика матчей за день и история результатов.
    • Статистика сыгранных героев с автоматическим расчётом среднего места и частоты выбора.
    • Данные о частоте выбора и среднем месте доступных героев на экране выбора.
    • Запись сведений о матче, включая составы противников.
    • Отключение от игры одним нажатием.
    • И другие возможности.
    hearthstone-battlegrounds-tools
  3. Multiavatar

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

    Multiavatar
  4. newbee-mall-vue3-app

    Фронтенд интернет-магазина с открытым кодом на Vue 3.0. При небольшом размере в нём есть главная страница, категории, поиск, управление адресами, вход и регистрация и другие основные разделы. Подойдёт начинающим и тем, кто уже знаком с Vue 3.x.

    newbee-mall-vue3-app
  5. X6

    Движок интерактивных графов от AntV. Готовые компоненты взаимодействия и удобная настройка узлов помогают быстро создавать редакторы блок-схем, DAG и ER-диаграмм. Пример кода:

    import { Graph } from '@antv/x6';
    
    const graph = new Graph({
      container: document.getElementById('container'),
      width: 800,
      height: 600,
      background: {
        color: '#fffbe6', // 设置画布背景颜色
      },
      grid: {
        size: 10,      // 网格大小 10px
        visible: true, // 渲染网格背景
      },
    });
    X6

Проекты на PHP

  1. easy-sms

    PHP-компонент для отправки SMS. Возможности:

    • Работа со многими операторами и сервисами отправки.
    • Единый интерфейс для всех платформ.
    • Добавление и удаление провайдеров через конфигурацию.
    • Несколько встроенных стратегий выбора провайдера и поддержка собственных стратегий.
    • И другие возможности.
    use Overtrue\EasySms\EasySms;
    
    $config = [
        // HTTP 请求的超时时间(秒)
        'timeout' => 5.0,
    
        // 默认发送配置
        'default' => [
            // 网关调用策略,默认:顺序调用
            'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
    
            // 默认可用的发送网关
            'gateways' => [
                'yunpian', 'aliyun',
            ],
        ],
        // 可用的网关配置
        'gateways' => [
            'errorlog' => [
                'file' => '/tmp/easy-sms.log',
            ],
            'yunpian' => [
                'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
            ],
            'aliyun' => [
                'access_key_id' => '',
                'access_key_secret' => '',
                'sign_name' => '',
            ],
            //...
        ],
    ];
    
    $easySms = new EasySms($config);
    
    $easySms->send(13188888888, [
        'content'  => '您的验证码为: 6379',
        'template' => 'SMS_001',
        'data' => [
            'code' => 6379
        ],
    ]);
  2. mochat

    Фреймворк и система управления корпоративным WeChat с открытым кодом. Мощная платформа на PHP с раздельными фронтендом и бэкендом для разработки решений на базе корпоративного WeChat.

    mochat

Проекты на Python

  1. lastversion

    Инструмент на Python для поиска свежих версий библиотек и программ. Учитывает разные форматы номеров версий у авторов проектов, находит последнюю версию и позволяет скачать или установить её. Пригодится в системах сборки, например для скриптов автоматического обновления. Ищет на GitHub, GitLab, PyPI и других площадках, обращая внимание на новизну и стабильность выпуска.

    # 获取最新的 Linux 版本号和最新的 Wordpress 版本号
    lastversion linux
    # 作者的版本标签:v5.10
    # 本项目提供的版本标签:5.10
    lastversion wordpress
    # 作者的版本标签:5.6
    # 本项目提供的版本标签:5.6
    lastversion
  2. streamlit

    Python-фреймворк для быстрого создания интерактивных страниц с визуализацией данных. Позволяет за минуты превратить данные в графики; бесплатная платформа публикации проекта облегчает обмен результатами и их обсуждение.

    streamlit
  3. xonsh

    Оболочка с поддержкой Python. Если вы знаете Python, но не умеете писать shell-скрипты, здесь можно сочетать команды оболочки с синтаксисом Python и быстрее решать свои задачи.

    xonsh
  4. Zappa

    Фреймворк для бессерверных приложений на Python. После разработки сервис можно упаковать и загрузить на облачную платформу несколькими командами. Такой подход также помогает сократить расходы на серверы.

    Zappa

Проекты на Ruby

  1. spree

    Полнофункциональный интернет-магазин с открытым кодом на Ruby on Rails. Проект хорошо структурирован и включает:

    • spree_api — REST API.
    • spree_frontend — адаптируемую витрину с приоритетом мобильных устройств.
    • spree_backend — панель администрирования с широкими возможностями.
    • spree_cmd — консольные инструменты для разработчиков.
    • spree_core — слой данных, сервисы, почту и базовые компоненты.
    spree

Проекты на Swift

  1. mas

    Консольная версия Mac App Store.

    mas
  2. Moya

    Лёгкий фреймворк сетевого слоя на Swift поверх Alamofire. Даёт простой абстрактный интерфейс для запросов, сочетается с RXSwift, PromiseKit и ObjectMapper и справляется как с типовыми, так и со сложными задачами. Активное сообщество выпустило множество полезных расширений.

    provider = MoyaProvider<GitHub>()
    provider.request(.zen) { result in
        switch result {
        case let .success(moyaResponse):
            let data = moyaResponse.data
            let statusCode = moyaResponse.statusCode
            // do something with the response data or statusCode
        case let .failure(error):
            // this means there was a network failure - either the request
            // wasn't sent (connectivity), or no response was received (server
            // timed out).  If the server responds with a 4xx or 5xx error, that
            // will be sent as a ".success"-ful response.
        }
    }
    Moya
  3. MTMR

    Приложение для настройки Touch Bar. Автор предлагает владельцам Mac с Touch Bar попробовать его и поделиться впечатлениями: у него самого такого компьютера нет.

    MTMR

Искусственный интеллект

  1. DeepMoji

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

    DeepMoji
  2. nanodet

    Лёгкая модель обнаружения объектов для мобильных устройств без привязки к опорным прямоугольникам. Небольшой размер (1,8 МБ), высокая скорость (10,23 мс), невысокие требования к оборудованию при обучении и простой запуск, в том числе пример для Android.

    nanodet

Прочее

  1. Ad-papers

    Подборка научных статей, учебных материалов и докладов специалистов по вычислительной рекламе.

  2. awesome-seo

    Материалы по поисковой оптимизации в Google и монетизации трафика. Автор собрал авторитетные источники во время изучения SEO; подборка пригодится владельцам собственных сайтов.

    awesome-seo
  3. free-font

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

  4. game-programmer

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

    game-programmer
  5. luarocks

    Менеджер пакетов Lua. Работает на трёх основных платформах. Пример установки и использования:

    $ wget https://luarocks.org/releases/luarocks-3.5.0.tar.gz
    $ tar zxpf luarocks-3.5.0.tar.gz
    $ cd luarocks-3.5.0
    $ ./configure && make && sudo make install
    $ sudo luarocks install luasocket
    $ lua
    Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
    > require "socket"
  6. makeaplan_public

    Приложение для составления планов на Flutter и Go. Помогает записывать планы, следить за их выполнением и достигать целей. Мобильный клиент написан на Flutter, сервер — на Go; они обмениваются данными через Protocol Buffers и gRPC. Подходит как практический проект для изучения обеих технологий.

    makeaplan_public
  7. theia

    IDE с открытым кодом от Eclipse. По описанию это открытая среда разработки с возможностями, похожими на VS Code. Автор привык к своей IDE, но любителям пробовать новые инструменты предлагает присмотреться.

    theia

Открытые книги

  1. DeepLearning-500-questions

    Книга «500 вопросов о глубоком обучении» (DeepLearning-500-questions) для подготовки ИИ-инженеров к собеседованиям. Охватывает ключевые понятия глубокого обучения и типичные письменные задания крупных компаний.