Лазерная сигнализация и объектное хранилище

Выпуск № 70 ·

Проекты на C

  1. daytripper

    Лазерная сигнализация для тех, кто отвлекается на работе. Состоит из передатчика и приёмника: когда кто-то пересекает луч, она автоматически скрывает рабочий стол, переключает приложение и выполняет другие заданные действия.

    daytripper
  2. tinyssh

    Минималистичный SSH-сервер. Ради простоты изучения в нём оставлены только базовые функции и исключены устаревшие алгоритмы шифрования. Проект интереснее как учебный пример, чем как практический инструмент: подойдёт тем, кто изучает SSH и криптографию.

Проекты на C#

  1. .NET-Backend-Developer-Roadmap

    План изучения серверной разработки на .NET.

    .NET-Backend-Developer-Roadmap
  2. LiveCharts2

    Простая, гибкая и мощная библиотека диаграмм для .NET. Поддерживает WPF, WinForms, WinUI и UWP.

    LiveCharts2
  3. PDFPatcher

    Многофункциональный набор инструментов для изменения PDF-файлов. Возможности:

    • Редактирование и объединение PDF-документов.
    • Автоматическое создание закладок.
    • Редактор закладок.
    • Быстрый экспорт изображений без потери качества.
    • И многое другое.
    PDFPatcher
  4. PowerRemoteDesktop

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

    PowerRemoteDesktop

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

  1. CGraph

    Фреймворк для выполнения направленных ациклических графов (DAG) без сторонних зависимостей. Узлы с зависимостями выполняются по порядку, а независимые — параллельно. У проекта понятная структура и полная документация: комментарии к ключевым частям кода, примеры и статьи с объяснениями. На его примере начинающие разработчики могут изучить планирование графов, модульную разработку, шаблоны, многопоточность, паттерны проектирования и общие алгоритмы.

    void tutorial_simple() {
        /* 创建一个流水线,用于设定和执行流图信息 */
        GPipelinePtr pipeline = GPipelineFactory::create();
        GElementPtr a, b, c, d = nullptr;
    
        /**
         * 其中,MyNode1算子的执行内容为sleep(1s)
         * MyNode2算子的执行内容为sleep(2s)
         * 以下几行代码,相当于是设定了一个[b/c]依赖[a],[d]依赖[b/c]的dag流图
         */
        pipeline->registerGElement<MyNode1>(&a, {}, "nodeA");
        pipeline->registerGElement<MyNode2>(&b, {a}, "nodeB");
        pipeline->registerGElement<MyNode1>(&c, {a}, "nodeC");
        pipeline->registerGElement<MyNode2>(&d, {b, c}, "nodeD");
    
        /* 执行流图框架 */
        pipeline->process();
        GPipelineFactory::destroy(pipeline);
    }
    CGraph
  2. oclint

    Мощный инструмент статического анализа кода. Проверяет программы на C, C++ и Objective-C, помогает находить потенциальные ошибки и улучшать качество кода.

  3. timg

    Консольная утилита для просмотра изображений, анимаций и видео прямо в терминале.

    timg some-image.jpg # 展示图片
    timg --loops=3 some-animated.gif # 循环展示三次动图
    timg some-video.mp4 # 播放视频
    timg

Проекты на Go

  1. go-pry

    Интерактивная консольная REPL для Go.

    # 安装
    go get github.com/d4l3k/go-pry
    go install -i github.com/d4l3k/go-pry
    # 运行
    go-pry -i="fmt,math,strconv"
    go-pry
  2. gotests

    Инструмент для автоматической генерации тестов на Go. Создаёт тестовый код на основе табличного подхода: в каждой строке таблицы задаются входные данные и ожидаемый результат, затем по этим строкам проверяется программа.

    gotests
  3. gotop

    Консольная утилита для мониторинга системы на Go. Показывает графики в реальном времени.

    gotop
  4. minio

    Сервис объектного хранения с открытым кодом, написанный на Go. Хранит изображения, видео, журналы и другие файлы; для управления есть удобный веб-интерфейс. При небольшом размере он обеспечивает высокую производительность, а кодирование Рида — Соломона позволяет восстановить данные даже при потере половины дисков. Подходит для больших данных и машинного обучения.

    • Высокая производительность: файлы до 5 ТБ, скорость чтения до 55 Гбит/с и записи до 35 Гбит/с.
    • Масштабирование: объединение кластеров, в том числе в разных дата-центрах.
    • Облачная архитектура: контейнеризация, оркестрация через Kubernetes, мультитенантность.
    • Разные системы хранения: S3, DAS, NAS, Google и другие облачные хранилища.
    minio
  5. octosql

    Консольная утилита для запросов к нескольким источникам данных через SQL. Позволяет обращаться к CSV, JSON и разным базам данных, а также свободно объединять данные из них с помощью JOIN.

    octosql "SELECT * FROM ./myfile.json"
    octosql "SELECT * FROM ./myfile.json" --describe  # Show the schema of the file.
    octosql "SELECT invoices.id, address, amount
             FROM invoices.csv JOIN db.customers ON invoices.customer_id = customers.id
             ORDER BY amount DESC"
    octosql "SELECT customer_id, SUM(amount)
             FROM invoices.csv
             GROUP BY customer_id"
    octosql

Проекты на Java

  1. agrona

    Библиотека структур данных и вспомогательных функций для высокопроизводительных приложений. Она создаёт обёртки над структурами стандартной библиотеки Java, избегая автоматической упаковки примитивов в объекты. Например, в очередях дополнительные байты не дают началу и концу очереди попасть в одну строку кеша, что ускоряет добавление и извлечение элементов. Кодовая база небольшая, хорошо прокомментирована и аккуратно оформлена: её полезно изучать и вне практического применения библиотеки.

  2. maven-mvnd

    Более быстрый инструмент сборки от команды Apache Maven. Maven встроен в mvnd, поэтому перейти на него просто. По сравнению с Maven он быстрее запускается, потребляет меньше памяти и сокращает время компиляции.

    maven-mvnd
  3. momo-code-sec-inspector-java

    Инструмент статического анализа безопасности Java-кода. Находит потенциальные уязвимости прямо во время разработки и предлагает исправление одним нажатием. Доступен в каталоге плагинов IntelliJ IDEA.

    momo-code-sec-inspector-java
  4. thumbnailator

    Библиотека Java для создания миниатюр изображений.

    thumbnailator

Проекты на JavaScript

  1. js-sdsl

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

    <script src="https://zly201.github.io/js-sdsl/js-sdsl.min.js"></script>
    <script>
        const { Vector } = sdsl;
        const myVector = new Vector();
        // you code here...
    </script>
  2. lottery

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

    lottery
  3. mometa

    Визуальный редактор фронтенд-кода. Инструмент для разработки с малым объёмом ручного кода: страницы можно создавать и редактировать перетаскиванием элементов. Особенности:

    • Работает непосредственно с исходным кодом и поддерживает мобильную вёрстку.
    • Позволяет создавать собственную библиотеку компонентов для команды.
    • Встраивается в существующий проект без изменения привычного процесса разработки.
    mometa
  4. resume

    Онлайн-конструктор резюме. Позволяет создавать и редактировать резюме, просматривать его в браузере и скачивать в PDF. Попробовать онлайн.

    resume
  5. shepherd

    Библиотека JavaScript для пошагового знакомства пользователей с сайтом.

    shepherd

Проекты на Objective-C

  1. Stay

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

    Stay

Проекты на PHP

  1. dootask

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

    dootask
  2. esupdater

    Фреймворк для инкрементального обновления Elasticsearch через Canal. Передаёт новые и изменённые данные из MySQL в Elasticsearch в реальном времени, синхронизируя поисковый индекс.

    esupdater

Проекты на Python

  1. django-grappelli

    Библиотека для улучшения стандартного интерфейса администрирования Django.

    # 安装
    pip install django-grappelli
    # 设置 settings.py 文件
    INSTALLED_APPS = (
        'grappelli',
        'django.contrib.admin',
    )
    # 增加路径
    urlpatterns = [
        path('grappelli/', include('grappelli.urls')), # grappelli URLS
        path('admin/', admin.site.urls), # admin site
    ]
    # 增加请求处理器
    TEMPLATES = [
            ...
            'OPTIONS': {
                'context_processors': [
                    ...
                    'django.template.context_processors.request',
                    ...
    ]
    # 最后
    python manage.py collectstatic
    django-grappelli
  2. Hitomi-Downloader

    Настольный менеджер загрузок на Python. С простым интерфейсом, ограничением скорости, поддержкой BitTorrent и автоматическим извлечением видео с веб-страниц. Умеет скачивать контент с нескольких китайских видеосервисов.

    Hitomi-Downloader
  3. trzsz

    Простой инструмент передачи файлов. Работает с tmux и iTerm2, показывает ход загрузки и скачивания.

    trzsz

Проекты на Ruby

  1. fastlane

    Инструмент автоматизации сборки для разработчиков iOS и Android. Прост в освоении и использовании: автоматизирует сборку, подписание, тестирование и публикацию приложений, включая отправку в App Store и Google Play. Выпустить приложение можно одной командой.

    lane :beta do
      increment_build_number
      build_app
      upload_to_testflight
    end
    lane :release do
      capture_screenshots
      build_app
      upload_to_app_store       # 上传截图和应用到应用商店
      slack                     # 发布完成回调通知
    end
    fastlane

Проекты на Swift

  1. iGlance

    Монитор системных показателей в строке меню macOS.

    iGlance
  2. SwiftPamphletApp

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

    SwiftPamphletApp

Прочее

  1. JetBrainsMono

    Бесплатный шрифт для разработчиков от JetBrains с открытым кодом. Простые формы без лишних деталей облегчают чтение и делают мелкий текст более чётким.

    JetBrainsMono
  2. m-cli

    Консольная утилита для управления macOS короткими командами из терминала: Bluetooth, Wi-Fi, очисткой корзины, iTunes и другими функциями.

    m-cli
  3. one-html-page-challenge

    Конкурс сайтов из одного HTML-файла. В коллекции собраны оригинальные страницы, которые состоят из одного HTML-файла размером до 1 МБ, не обращаются к API и не используют внешние библиотеки. Посмотреть работы.

    one-html-page-challenge
  4. realworld

    Коллекция практических проектов на разных технологических стеках. Участники создают сайт с одинаковыми возможностями на разных языках и фреймворках. Например, версия на Vue.js и Django включает регистрацию, вход, публикацию статей, теги и комментарии. Небольшие, но законченные проекты помогают быстрее освоить новый стек. Посмотреть примеры.

    realworld
  5. WhiteSur-gtk-theme

    Тема GTK в стиле macOS Big Sur.

    WhiteSur-gtk-theme

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

  1. rust-course

    «Библия языка Rust» (Rust 语言圣经) — руководство от основ до продвинутых возможностей языка. На момент выпуска книга ещё не была закончена и активно обновлялась. Читать онлайн.

  2. safe-rules

    «Свод правил безопасности кода» (代码安全规则集合) от отдела качества компании 360. Подробное руководство по безопасному программированию на C/C++ для настольного, серверного и встраиваемого ПО.