Редактор в тысячу строк и изображения от DragGAN

Выпуск № 87 ·

Проекты на C

  1. kilo

    Миниатюрный текстовый редактор менее чем в тысячу строк. Автор Redis написал его на C: редактор умеет подсвечивать синтаксис и искать текст. Он не зависит от сторонних библиотек, состоит из одного файла и без комментариев и пустых строк занимает меньше 1 000 строк — удобно изучать исходный код.

  2. Logan

    Единая служба журналирования для клиентских устройств. Команда Meituan открыла комплексную систему из клиентского SDK, обработки журналов и панели управления. Она собирает журналы в реальном времени из мобильных приложений, сайтов, мини-приложений и устройств IoT.

    Logan

Проекты на C#

  1. winsw

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

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

  1. geometrize

    Перерисовка изображений геометрическими фигурами. Программа воспроизводит картинку кругами, треугольниками, прямоугольниками и другими формами, а результат экспортирует в SVG, PNG, JPG или GIF.

    geometrize
  2. primihub

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

    # 第一步:下载
    git clone https://github.com/primihub/primihub.git
    # 第二步:启动容器
    cd primihub && docker-compose up -d
    # 第三步:进入容器
    docker exec -it primihub-node0 bash
    # 第四步:执行隐私求交计算
    ./primihub-cli --task_config_file="example/psi_ecdh_task_conf.json"
    I20230616 13:40:10.683375    28 cli.cc:524] all node has finished
    I20230616 13:40:10.683745    28 cli.cc:598] SubmitTask time cost(ms): 1419
    # 查看结果
    cat data/result/psi_result.csv
    "intersection_row"
    X3
    ...
    primihub
  3. redpanda

    Платформа потоковых данных, полностью совместимая с API Kafka. Её можно считать реализацией Kafka на C++: легче, быстрее и дешевле, с простой установкой и использованием, без зависимости от JVM и ZooKeeper.

    redpanda
  4. shotcut

    Мощный бесплатный видеоредактор. По возможностям сопоставим с платными программами и может служить открытой альтернативой Adobe Premiere Pro. У него понятный интерфейс, в том числе на китайском, поддержка сотен форматов аудио и видео, монтаж исходных файлов без предварительного преобразования и работа с несколькими временными шкалами. Доступен для Windows, Linux и macOS.

    shotcut
  5. sqlitebrowser

    Графический инструмент управления SQLite. Позволяет создавать и редактировать файлы баз данных SQLite, управлять таблицами и индексами, выполнять SQL-запросы и экспортировать данные через интерфейс рабочего стола.

    sqlitebrowser

Проекты на Go

  1. gotenberg

    Сервис создания PDF в Docker. Через API взаимодействует с Chromium и LibreOffice, преобразуя веб-страницы, HTML, Markdown, документы Word и Excel и другие материалы в PDF.

    curl \
    --request POST 'https://demo.gotenberg.dev/forms/chromium/convert/url' \
    --form 'url="https://sparksuite.github.io/simple-html-invoice-template/"' \
    -o my.pdf
  2. httprouter

    Быстрый HTTP-маршрутизатор для Go. Его ядро состоит всего из трёх файлов и использует префиксное дерево Radix для эффективной маршрутизации. Этот маршрутизатор применяется и во фреймворке Gin.

    package main
    
    import (
        "fmt"
        "net/http"
        "log"
    
        "github.com/julienschmidt/httprouter"
    )
    
    func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
        fmt.Fprint(w, "Welcome!\n")
    }
    
    func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
        fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name"))
    }
    
    func main() {
        router := httprouter.New()
        router.GET("/", Index)
        router.GET("/hello/:name", Hello)
    
        log.Fatal(http.ListenAndServe(":8080", router))
    }
  3. slides

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

    slides
  4. sourcegraph-public-snapshot

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

    sourcegraph-public-snapshot
  5. tinygo

    Компилятор Go для небольших устройств. Основан на LLVM и собирает программы на Go для плат разработки, устройств интернета вещей и WebAssembly.

Проекты на Java

  1. FXGL

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

    public class BasicGameApp extends GameApplication {
    
        @Override
        protected void initSettings(GameSettings settings) {
            settings.setWidth(800);
            settings.setHeight(600);
            settings.setTitle("Basic Game App");
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    FXGL
  2. SurveyKing

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

    SurveyKing

Проекты на JavaScript

  1. AFFiNE

    Совместная база знаний в духе Notion. У системы чистый интерфейс и поддержка работы без сети. Заметки, база знаний и таблицы данных гибко сочетаются друг с другом.

    AFFiNE
  2. giscus

    Система комментариев на GitHub Discussions. Использует API GitHub Discussions, бесплатна, не показывает рекламу и не требует собственной базы данных. Поддерживает оформление темы и несколько языков.

    giscus
  3. NextChat

    Личное веб-приложение для ChatGPT с бесплатным развёртыванием. Предлагает более удобный чат и установку на Vercel в один шаг. Для собственного сервиса нужен ключ OpenAI API.

    NextChat
  4. Painter

    Библиотека генерации изображений для мини-приложений. Разработчик описывает рисунок в JSON: поддерживаются текст, изображения, QR-коды, разные схемы размещения, собственные шрифты и скруглённые углы.

    Painter
  5. patch-package

    Патчи для npm-зависимостей. Если ошибка в сторонней библиотеке требует локальной правки, утилита сохраняет её как патч и применяет при установке. Поддерживает npm, yarn и pnpm.

    patch-package

Проекты на Kotlin

  1. legado

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

    legado

Проекты на Python

  1. Auto_Bangumi

    Автоматическое отслеживание аниме-сериалов. Инструмент на Python следит за обновлениями и скачивает серии: достаточно подписаться на сериал в Mikan Project и выполнить простую настройку.

    Auto_Bangumi
  2. openedx-platform

    Открытая платформа массовых онлайн-курсов на Django. Совместный проект MIT и Гарварда предлагает управление учебными материалами и обучением: онлайн-лекции, создание курсов, предварительный просмотр, библиотеку материалов, отзывы студентов и экзамены. Возможностей много, но интерфейс довольно простой.

    openedx-platform
  3. PyQt-Fluent-Widgets

    Библиотека компонентов PyQt в стиле Fluent Design. Основана на PyQt/PySide и содержит красивые практичные элементы интерфейса; поддерживает светлую и тёмную темы и настройку основного цвета.

    PyQt-Fluent-Widgets
  4. stitching

    Библиотека Python для быстрой сшивки изображений. Построена на модуле OpenCV; работает как из сценариев Python, так и из консоли.

    import stitching
    
    stitcher = stitching.Stitcher()
    # 多个文件
    panorama = stitcher.stitch(["img1.jpg", "img2.jpg", "img3.jpg"])
    # 通配符
    panorama = stitcher.stitch(["img?.jpg"])
    stitching
  5. sympy

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

    >>> from sympy import Symbol, cos
    >>> x = Symbol('x')
    >>> e = 1/cos(x)
    >>> print(e.series(x, 0, 10))
    1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)
    sympy

Проекты на Rust

  1. hexyl

    Консольный просмотрщик шестнадцатеричных данных. Простая утилита на Rust с приятной цветной подсветкой вывода.

    hexyl
  2. ruffle

    Альтернатива Adobe Flash Player на Rust. Эмулятор можно встроить в сайт через WebAssembly, использовать как расширение браузера или запускать Flash-файлы локально из консоли.

    ruffle

Проекты на Swift

  1. LocationSimulator

    Симулятор местоположения устройств iOS. Приложение для macOS меняет координаты iPhone или iPad без джейлбрейка и установки программы на устройство: достаточно подключить его к компьютеру по USB или Wi-Fi.

    LocationSimulator
  2. SwiftUI-Cheat-Sheet

    Шпаргалка по SwiftUI. Краткий справочник по SwiftUI 2.0 с готовыми фрагментами кода и снимками результата их работы.

    SwiftUI-Cheat-Sheet

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

  1. AI-For-Beginners

    Вводный курс по искусственному интеллекту от Microsoft. Бесплатная программа для начинающих рассчитана на 12 недель и 24 занятия. Охватывает историю и основы ИИ, популярные фреймворки, компьютерное зрение и обработку естественного языка.

    AI-For-Beginners
  2. DragGAN

    Редактирование изображений перетаскиванием с помощью GAN. Официальный код DragGAN позволяет мышью точно менять положение пикселей и тем самым позу, выражение, форму или расположение объекта. Например, стоящую на фото собаку можно «усадить».

    DragGAN
  3. mediapipe

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

    mediapipe

Прочее

  1. awesome-macos-screensavers

    Подборка эффектных заставок для macOS. Здесь собраны экранные заставки разных стилей и с разными забавными идеями — можно выбрать подходящую.

    awesome-macos-screensavers
  2. personal-security-checklist

    Контрольный список цифровой безопасности и приватности. Подсказывает, как защитить личные данные при работе с паролями, сайтами, электронной почтой, соцсетями, телефоном и компьютером.

  3. radian

    Улучшенная консоль для языка R. Заменяет стандартную консоль R и предлагает автодополнение, редактирование нескольких строк и подсветку синтаксиса.

    radian
  4. web-vitals

    Ключевые показатели качества веб-страниц от Google. Помогают владельцам сайтов улучшать пользовательский опыт и охватывают LCP — скорость загрузки, FID — отклик на взаимодействие и CLS — визуальную стабильность.

    web-vitals
  5. XiangShan

    Открытый процессор RISC-V из Китая. Проект «Сяншань» (XiangShan) был начат под руководством Института вычислительной техники Китайской академии наук.

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

  1. Clean-Code-Notes

    Книга о написании чистого кода. Начиная с понятия Clean Code, она шаг за шагом учит писать лаконичные, понятные и удобные в сопровождении программы и вырабатывать хорошие привычки разработки.