Диаграммы архитектуры и визуальный редактор regex

Выпуск № 76 ·

Проекты на C

  1. gb-studio

    Простой и увлекательный инструмент для создания игр под Game Boy. Визуальный конструктор позволяет без навыков программирования быстро собрать ретро-игру для Game Boy перетаскиванием элементов. Результат можно экспортировать как ROM или сразу собрать как браузерную игру.

    gb-studio
  2. jq

    Быстрый консольный JSON-процессор. JSON — один из самых распространённых форматов сериализации, который постоянно встречается в повседневной разработке. Утилита позволяет простыми командами форматировать и фильтровать JSON, а также напрямую разбирать JSON-ответы API.

    jq
  3. libvips

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

    libvips

Проекты на C#

  1. CrazyCar

    Сетевая гоночная игра на Unity. Полное решение для многопользовательской игры включает клиент, сервер, сетевой транспорт и панель администрирования. Поддерживаются заезды на время, многопользовательские гонки, личные достижения и горячее обновление ресурсов, а запустить игру можно на iOS, Android и Windows.

    CrazyCar
  2. Masuit.Tools

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

    double milliseconds = DateTime.Now.GetTotalMilliseconds();// 获取毫秒级时间戳
    double microseconds = DateTime.Now.GetTotalMicroseconds();// 获取微秒级时间戳
    double nanoseconds = DateTime.Now.GetTotalNanoseconds();// 获取纳秒级时间戳
    double seconds = DateTime.Now.GetTotalSeconds();// 获取秒级时间戳
    double minutes = DateTime.Now.GetTotalMinutes();// 获取分钟级时间戳

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

  1. CppCoreGuidelines

    Основные рекомендации по C++. Руководство по стилю под руководством создателя C++ Бьёрна Страуструпа помогает эффективнее использовать современный C++. В нём рассматриваются проектирование интерфейсов, управление памятью, многопоточность и другие темы. Материал подойдёт разработчикам, уже знакомым с основами C++ и желающим углубить знания.

  2. flatbuffers

    Высокопроизводительная библиотека сериализации с открытым кодом от Google. Формат похож на Protocol Buffers, но разбирается быстрее и требует меньше памяти, поэтому часто применяется в Android-приложениях и играх, чувствительных ко времени разбора данных.

    flatbuffers
  3. imgui

    Популярная в игровой индустрии лёгкая C++-библиотека для графических интерфейсов. GUI работает в непосредственном режиме, поэтому каждый элемент отрисовывается вручную. Такой подход даёт гибкость и компактность, позволяя быстро создавать небольшие приложения с простыми интерфейсами, но плохо подходит для сложной анимации. Чаще всего библиотеку используют для внутриигровых инструментов.

    ImGui::Text("Hello, world %d", 123);
    if (ImGui::Button("Save"))
        MySaveFunction();
    ImGui::InputText("string", buf, IM_ARRAYSIZE(buf));
    ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
    imgui

Проекты на CSS

  1. css-protips

    Профессиональные приёмы CSS. Коллекция советов, которая поможет улучшить навыки работы с CSS.

  2. ui-buttons

    Коллекция стилей кнопок на CSS. Проект содержит 100 вариантов оформления кнопок.

    ui-buttons

Проекты на Go

  1. gitleaks

    Инструмент статического тестирования безопасности приложений (SAST). Он находит в проектах пароли, API-ключи, токены и другие секреты. Интеграция с Git hooks и GitHub Actions позволяет автоматически проверять каждый коммит, предупреждать об утечках и блокировать push.

    gitleaks
  2. mercure

    Открытый протокол для обмена данными в реальном времени. Проект определяет протокол на основе HTTP и SSE и реализует на Go сервис push-уведомлений. Он проще WebSocket: клиент оформляет подписку как обычный HTTP-запрос, а в HTTP/2 доступен двусторонний обмен данными.

    mercure
  3. ptg

    GUI-клиент gRPC на Go. Автору не хватало удобного аналога Postman для отладки gRPC-интерфейсов, поэтому он написал собственный клиент и открыл его исходный код.

    ptg
  4. wild-workouts-go-ddd-example

    Пример DDD-проекта на Go. На примере системы бронирования показано, как реализовать в Go предметно-ориентированное проектирование (DDD) и архитектуру с разделением команд и запросов (CQRS).

    wild-workouts-go-ddd-example

Проекты на Java

  1. forest

    Минималистичный декларативный HTTP-клиент для Java. Фреймворк с открытым кодом позволяет декларативно описать отправку HTTP-запросов, приём и разбор ответов, обработку ошибок и логирование буквально за несколько минут.

    public interface AmapClient {
        /**
         * @Get注解代表该方法专做GET请求
         * 在url中的{0}代表引用第一个参数,{1}引用第二个参数
         */
        @Get("http://ditu.amap.com/service/regeo?longitude={0}&latitude={1}")
        Map getLocation(String longitude, String latitude);
    }
    
    // 注入接口实例
    @Autowired
    private AmapClient amapClient;
    ...
    // 调用接口
    Map result = amapClient.getLocation("121.475078", "31.223577");
    System.out.println(result);
  2. liteflow

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

    liteflow
  3. picocli

    Фреймворк для создания консольных Java-приложений. Он прост в использовании и позволяет собрать приложение буквально в несколько строк. Хотя фреймворк написан на Java, его можно применять с Groovy, Kotlin и Scala. Поддерживаются автодополнение команд, цвета, подкоманды и справка.

    import picocli.CommandLine;
    import picocli.CommandLine.Option;
    import picocli.CommandLine.Parameters;
    import java.io.File;
    
    @Command(name = "example", mixinStandardHelpOptions = true, version = "Picocli example 4.0")
    public class Example implements Runnable {
    
        @Option(names = { "-v", "--verbose" },
          description = "Verbose mode. Helpful for troubleshooting. Multiple -v options increase the verbosity.")
        private boolean[] verbose = new boolean[0];
    
        @Parameters(arity = "1..*", paramLabel = "FILE", description = "File(s) to process.")
        private File[] inputFiles;
    
        public void run() {
            if (verbose.length > 0) {
                System.out.println(inputFiles.length + " files to process...");
            }
            if (verbose.length > 1) {
                for (File f : inputFiles) {
                    System.out.println(f.getAbsolutePath());
                }
            }
        }
    
        public static void main(String[] args) {
            // By implementing Runnable or Callable, parsing, error handling and handling user
            // requests for usage help or version help can be done with one line of code.
    
            int exitCode = new CommandLine(new Example()).execute(args);
            System.exit(exitCode);
        }
    }
    picocli

Проекты на JavaScript

  1. mjml

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

    mjml
  2. naive-ui

    Библиотека компонентов только для Vue 3. Она предлагает более 80 компонентов, полноценный вывод типов TypeScript и документацию на китайском языке. Подойдёт тем, кто хочет попробовать альтернативный набор компонентов.

    naive-ui
  3. regex-vis

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

    regex-vis
  4. vxe-table

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

    vxe-table
  5. wangEditor

    Веб-редактор форматированного текста с открытым кодом. Он построен на slate.js и snabbdom.js и работает с JS, Vue и React. Нескольких строк кода достаточно, чтобы получить готовый полнофункциональный редактор.

    import '@wangeditor/editor/dist/css/style.css'
    import { createEditor, createToolbar } from '@wangeditor/editor'
    
    // 创建编辑器
    const editor = createEditor({
      selector: '#editor-container'
    })
    // 创建工具栏
    const toolbar = createToolbar({
      editor,
      selector: '#toolbar-container'
    })
    wangEditor

Проекты на Kotlin

  1. typing-learner

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

    typing-learner

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

  1. lemon-cleaner

    Инструмент очистки для компьютеров Apple. Бесплатная macOS-утилита Lemon Cleaner с открытым кодом от Tencent глубоко очищает систему, удаляет дубликаты файлов и приложения, выводит состояние в строке меню и освобождает место одним нажатием.

    lemon-cleaner

Проекты на PHP

  1. course-tencent-cloud

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

    course-tencent-cloud

Проекты на Python

  1. diagrams

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

    with Diagram("Advanced Web Service with On-Premise", show=False):
        ingress = Nginx("ingress")
    
        metrics = Prometheus("metric")
        metrics << Grafana("monitoring")
    
        with Cluster("Service Cluster"):
            grpcsvc = [
                Server("grpc1"),
                Server("grpc2"),
                Server("grpc3")]
    
        with Cluster("Sessions HA"):
            primary = Redis("session")
            primary - Redis("replica") << metrics
            grpcsvc >> primary
    
        with Cluster("Database HA"):
            primary = PostgreSQL("users")
            primary - PostgreSQL("replica") << metrics
            grpcsvc >> primary
    
        aggregator = Fluentd("logging")
        aggregator >> Kafka("stream") >> Spark("analytics")
    
        ingress >> grpcsvc >> aggregator
    diagrams
  2. fg-data-profiling

    Библиотека для автоматического создания отчётов о pandas DataFrame. Встроенная функция df.describe быстро строит статистическую сводку, но содержит мало сведений. Проект формирует многомерный HTML-отчёт с типами столбцов, пропусками, распределением значений, долей повторяющихся строк, объёмом памяти и другими характеристиками, помогая лучше понять данные.

    fg-data-profiling
  3. labelImg

    Графический инструмент разметки изображений. Настольное приложение на Python и Qt легко установить и использовать в Windows, Linux и macOS. Разметку можно сохранять в XML-файлах формата PASCAL VOC и txt-файлах YOLO.

    labelImg
  4. MechanicalSoup

    Лёгкая Python-библиотека для автоматического взаимодействия с сайтами. Обычно веб-скрейпинг состоит из запроса и разбора ответа. Проект объединяет популярные библиотеки Requests для запросов и BeautifulSoup для разбора в одном объекте браузера StatefulBrowser. Через него можно загружать страницы, фильтровать содержимое, отправлять формы и переходить по адресам, сокращая и упрощая код. Библиотека легче Selenium, поскольку не запускает браузерный процесс, но не поддерживает страницы с динамическим рендерингом через JS.

    import re
    import mechanicalsoup
    
    # Connect to Google
    browser = mechanicalsoup.StatefulBrowser()
    browser.open("https://www.google.com/")
    
    # Fill-in the form
    browser.select_form('form[action="/search"]')
    browser["q"] = "MechanicalSoup"
    # Note: the button name is btnK in the content served to actual
    # browsers, but btnG for bots.
    browser.submit_selected(btnName="btnG")
    
    # Display links
    for link in browser.links():
        target = link.attrs['href']
        # Filter-out unrelated links and extract actual URL from Google's
        # click-tracking.
        if (target.startswith('/url?') and not
                target.startswith("/url?q=http://webcache.googleusercontent.com")):
            target = re.sub(r"^/url\?q=([^&]*)&.*", r"\1", target)
            print(target)
    MechanicalSoup
  5. orange3

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

    orange3

Проекты на Rust

  1. pueue

    Консольный диспетчер задач. Утилита управляет очередью shell-команд и поддерживает фоновый и отложенный запуск, параллельное выполнение, приостановку и восстановление после сбоя. Это именно консольный инструмент, а не полноценная очередь задач.

    pueue

Проекты на Swift

  1. MiaoYan

    Markdown-редактор для macOS. Нативное приложение MiaoYan написано на Swift 5, отличается чистым приятным интерфейсом и поддерживает режим презентации, подсветку синтаксиса и тёмную тему.

    MiaoYan

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

  1. flair

    Простой и удобный NLP-фреймворк. Решение на базе PyTorch поддерживает распознавание именованных сущностей (NER), разметку частей речи (PoS), разрешение лексической неоднозначности и классификацию. Подробные руководства объясняют, как размечать тексты, обучать языковые модели и решать другие задачи.

    from flair.data import Sentence
    from flair.models import SequenceTagger
    
    # make a sentence
    sentence = Sentence('I love Berlin .')
    
    # load the NER tagger
    tagger = SequenceTagger.load('ner')
    
    # run NER over sentence
    tagger.predict(sentence)
    flair
  2. paper-reading

    Коллекция подробных разборов статей по глубокому обучению. Му Ли собрал видеолекции о классических и новых работах в этой области.

    paper-reading
  3. paper2gui

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

    paper2gui

Прочее

  1. functional-programming-jargon

    Словарь терминов функционального программирования. Проект объясняет профессиональную лексику и тем самым упрощает изучение функционального подхода. Все примеры кода написаны на JavaScript.

    functional-programming-jargon
  2. LxgwWenKai

    Открытый китайский шрифт для основного текста. Он создан на основе Klee One от FONTWORKS, дополнен и оптимизирован для упрощённого китайского письма. Шрифт выразительно выглядит, распространяется бесплатно и разрешён для коммерческого использования.

    LxgwWenKai
  3. MaaAssistantArknights

    Помощник для игры Arknights. С помощью распознавания изображений он позволяет одним нажатием выполнить все ежедневные игровые задания.

    MaaAssistantArknights
  4. opensnitch

    Файрвол приложений для Linux. Он отслеживает и контролирует сетевую активность программ, выступая аналогом Little Snitch для Linux.

    opensnitch
  5. Publii

    Генератор статических сайтов с GUI. Локальная CMS позволяет без навыков программирования создавать через графический интерфейс личные блоги, сайты компаний и другие проекты. Готовый сайт можно одним нажатием опубликовать на GitHub Pages, GitLab, Netlify и других платформах.

    Publii

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

  1. interviews.ai

    «Собеседования по глубокому обучению» (Deep Learning Interviews). Книга содержит сотни вопросов (PRB) и ответов (SOL), которые встречаются на собеседованиях по искусственному интеллекту. Автор стремится помочь студентам магистратуры и соискателям подготовиться к интервью по машинному обучению.

    interviews.ai