Графика для встраиваемых систем и рекомендации на Go

Выпуск № 73 ·

Проекты на C

  1. lvgl

    Красивая и удобная лёгкая графическая библиотека для встраиваемых систем.

    • Множество элементов интерфейса: кнопки, диаграммы, изображения и другие.
    • Разные устройства ввода: сенсорные экраны, клавиатуры и кнопки.
    • Минимальные требования: 64 КБ ROM и 16 КБ RAM.
    • Независимость от аппаратной платформы и работа с разными дисплеями.
    • Поддержка языков, включая китайский, корейский и арабский.
    • Подробные и разнообразные примеры.
    lvgl
  2. uthash

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

    #include "uthash.h"
    
    struct my_struct {
        int id;            /* we'll use this field as the key */
        char name[10];
        UT_hash_handle hh; /* makes this structure hashable */
    };
    
    struct my_struct *users = NULL;
    
    void add_user(struct my_struct *s) {
        HASH_ADD_INT( users, id, s );
    }
  3. warpd

    Инструмент для управления указателем мыши с клавиатуры. Поддерживает несколько режимов, включая перемещение клавишами со стрелками и выбор области. Работает только в Linux и macOS.

    warpd

Проекты на C#

  1. TradingSystem

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

    TradingSystem

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

  1. Cytopia

    Бесплатная игра о строительстве города с пиксельной графикой и открытым кодом.

    Cytopia
  2. FileCentipede

    Кроссплатформенный менеджер загрузок на C++ и Qt. С лаконичным интерфейсом, высокой скоростью и поддержкой нескольких протоколов. Расширение для браузера позволяет скачивать видео и аудио с веб-страниц.

    FileCentipede
  3. ydb

    Корпоративная распределённая SQL-база данных с открытым кодом от Yandex. Поддерживает высокую доступность, масштабирование, транзакции, строгую согласованность и автоматическое восстановление после аварии. Для запросов есть веб-платформа, а для Go, Java, Python, JavaScript и других языков — SDK.

    ydb

Проекты на CSS

  1. simple.css

    Сверхлёгкий CSS-фреймворк. Не вводит новых классов, а задаёт разумные стили HTML-элементам: адаптивные и аккуратные страницы можно создавать на одном HTML.

    simple.css

Проекты на Go

  1. casdoor

    Платформа управления доступом со страницей входа. Панель управления пользователями доступна на китайском языке. Поддерживает вход через разные сторонние сервисы, единый вход, коды подтверждения по SMS и электронной почте и восстановление пароля.

    casdoor
  2. gorse

    Рекомендательный движок на Go. Позволяет запустить систему рекомендаций без специальных знаний в этой области. Достаточно загрузить сведения о пользователях, объектах и действиях — например, отметках «нравится» и сохранениях. Gorse автоматически обучит модель и подготовит рекомендации для каждого пользователя.

    gorse
  3. lal

    Сервер потокового видео, полностью написанный на Go. Полноценное решение для прямых трансляций с поддержкой распространённых форматов кодирования и протоколов RTMP, RTSP и HLS.

    lal
  4. monitoror

    Панель мониторинга в виде «стены» показателей. Легко устанавливается и настраивается, показывает все метрики плитками: наглядно и аккуратно. Работает в Linux, macOS и Windows.

    monitoror
  5. yomo

    Фреймворк потоковых вычислений на периферии сети с низкой задержкой. Использует протокол QUIC для повышения скорости и стабильности передачи, позволяя быстро передавать и обрабатывать данные даже в сложных сетях. Поддерживает распределённое развёртывание в разных регионах, чтобы пользователи подключались к ближайшему узлу. Подходит для интерактивных приложений в реальном времени: совместной работы, виртуальных миров, AR/VR, облачных игр и интернета вещей.

    yomo

Проекты на Java

  1. databasir

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

    databasir
  2. guice

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

    import javax.inject.Inject;
    import com.google.inject.Guice;
    import com.google.inject.Injector;
    import com.google.inject.Module;
    
    public class Main {
        @Inject
        private HelloWorldService service;//hello service
    
        public static void main(String[] args) {
            Main main = new Main();
            Module module = new HelloWorldModule();
            Injector injector = Guice.createInjector(module);
            injector.injectMembers(main);//injects the implementation of the service
    
            main.testGuice();
        }
    
        public void testGuice()
        {
            service.sayHello();//usage of the service
        }
    }
  3. javamelody

    Инструмент мониторинга приложений Java и Java Web. Отслеживает HTTP-запросы, длительность SQL-запросов, число вызовов методов, долю ошибок, использование памяти Java и другие показатели. Позволяет выбирать временной диапазон и экспортировать отчёты.

    javamelody
  4. stendhal

    Бесплатная многопользовательская ролевая онлайн-игра (MMORPG) на Java с открытым кодом. За ретро-графикой в 2D скрывается большой мир с сотнями предметов, монстров, персонажей и заданий, а также свободной торговлей. Выполняя задания, игроки получают опыт и деньги, улучшают снаряжение и открывают новые области. Проект развивается с 2005 года. Сыграть онлайн.

    stendhal
  5. streampark

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

    streampark

Проекты на JavaScript

  1. cnchar

    Небольшая библиотека JavaScript для работы с китайскими иероглифами. Определяет пиньинь, варианты произношения и число черт.

    let spell = cnchar.spell('你好');
    let stroke = cnchar.stroke('你好');
    console.log(spell, stroke);
    cnchar
  2. nanoid

    Библиотека JavaScript для генерации случайных идентификаторов.

    • Компактная: без зависимостей, всего 130 байт.
    • Быстрая: на 60 % быстрее UUID.
    • Безопасная: использует криптографический генератор случайных чисел и подходит для кластеров.
    • Экономная: использует более широкий алфавит символов, чем UUID.
    • Удобная: перенесена более чем на 20 языков программирования.
    const { nanoid } = require('nanoid');
    nanoid(); //=> "U9HDHNW3BkWMEd6GV_QPa"
  3. nexe

    Консольная утилита для упаковки Node.js-приложения в один исполняемый файл.

    nexe
  4. rough

    Библиотека для рисования графики в стиле набросков от руки.

    const rc = rough.canvas(document.getElementById('canvas'));
    rc.rectangle(10, 10, 200, 200); // x, y, width, height
    rough
  5. rubiks-cube

    Трёхмерный кубик Рубика на Three.js. Можно менять число слоёв. Попробовать онлайн.

    rubiks-cube

Проекты на Kotlin

  1. architecture-samples

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

    architecture-samples

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

  1. hammerspoon

    Мощный инструмент автоматизации macOS. Сценарии на Lua взаимодействуют с системными API и могут управлять окнами, мышью, файловой системой, экраном и другими возможностями. На этой основе удобно создавать собственные утилиты для macOS.

    hs.hotkey.bind({"cmd", "alt", "ctrl"}, "W", function()
      hs.notify.new({title="Hammerspoon", informativeText="Hello World"}):send()
    end)
    hammerspoon

Проекты на Python

  1. docker-py

    Официальная библиотека Docker для Python. Позволяет программно и массово управлять образами Docker.

    import docker
    client = docker.from_env()
    client.images.pull('nginx')
    # <Image 'nginx'>
    client.containers.run("ubuntu:latest", "echo hello world")
    # 'hello world\n'
    client.containers.list()
    # [<Container '45e6d2de7c54'>, <Container 'db18e4f20eaa'>, ...]
  2. memray

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

    • Табличный отчёт: memray table [options] <results>.
    • Отчёт в реальном времени: memray run --live application.py.
    • Статистика: memray stats [options] <results>.
    memray
  3. modin

    Более быстрая библиотека обработки и анализа данных с интерфейсом, похожим на pandas. Для ускорения вычислений использует Ray или Dask и совместима с большей частью API pandas. Чтобы перейти на Modin и ускорить обработку данных, достаточно изменить одну строку импорта.

    # import pandas as pd
    import modin.pandas as pd
    import numpy as np
    
    frame_data = np.random.randint(0, 100, size=(2**10, 2**8))
    df = pd.DataFrame(frame_data)
    modin
  4. pikepdf

    Библиотека Python для чтения и записи PDF-файлов.

    import pikepdf
    
    with pikepdf.open('input.pdf') as pdf:
        num_pages = len(pdf.pages)
        del pdf.pages[-1]
        pdf.save('output.pdf')
    pikepdf
  5. pinry

    Сайт с открытым кодом для обмена изображениями. Фронтенд и серверная часть разделены и построены на Vue.js и Django. Изображения показаны плитками; есть просмотр, загрузка, поиск, панель администрирования, личные страницы и метки.

    pinry

Проекты на Ruby

  1. lobsters

    Исходный код сайта lobste.rs на Rails. Как и Hacker News, он предназначен для обмена ссылками и обсуждений. Может послужить основой для похожего сайта.

    lobsters

Проекты на Rust

  1. dnsguide

    Руководство по созданию DNS-сервера с нуля на Rust.

  2. gitv

    Консольная утилита на Rust для анализа репозиториев Git и визуализации данных.

    gitv

Проекты на Swift

  1. WordPress-iOS

    Официальный клиент WordPress для iOS с открытым кодом.

    WordPress-iOS

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

  1. instant-ngp

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

    instant-ngp

Прочее

  1. getwidget

    Бесплатная библиотека элементов интерфейса Flutter с открытым кодом. Содержит более 1 000 распространённых компонентов, помогающих быстро создавать приложения.

    getwidget
  2. iRedMail

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

  3. RedisInsight

    Официальная настольная программа для управления Redis с открытым кодом. Предлагает визуальный интерфейс, мониторинг, анализ памяти и управление кластерами Redis.

    RedisInsight
  4. SmartIDE

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

    SmartIDE
  5. vcard-personal-portfolio

    Сайт для представления личной информации и портфолио.

    vcard-personal-portfolio
  6. WechatMomentScreenshot

    Генератор скриншотов ленты «Моменты» в WeChat.

    WechatMomentScreenshot

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

  1. awk

    Китайский перевод книги «Язык программирования AWK» (The AWK Programming Language).

  2. rCore-Tutorial-Book-v3

    Руководство на китайском языке от Университета Цинхуа по созданию Unix-подобного ядра для RISC-V с нуля на Rust. Начинается с истории вычислительной техники, объясняет, почему появились операционные системы и какими свойствами должна обладать современная ОС. Практическая часть постепенно ведёт от пустой папки к ядру системы, словно сборка из конструктора. Автор описывает чтение руководства как захватывающее занятие. Читать онлайн.

    rCore-Tutorial-Book-v3
  3. tensorflow-internals

    «Внутреннее устройство TensorFlow» — разбор исходного кода, архитектуры, модели предметной области и принципов работы фреймворка. Книга посвящена уже устаревшей версии 1.2, но всё ещё помогает понять устройство известного инструмента машинного обучения.