MicroPython для устройств и музыка на своём сервере

Выпуск № 75 ·

Проекты на C

  1. fontforge

    Бесплатный редактор шрифтов с открытым кодом. Настольная программа для Windows, macOS и Linux позволяет создавать и редактировать шрифты разных форматов, в том числе разрабатывать собственные.

    fontforge
  2. micropython

    Python для микроконтроллеров. Python известен простым синтаксисом, а этот проект переносит его на микроконтроллеры: с помощью «миниатюрного» Python можно разрабатывать устройства на Python 3, что заметно снижает порог входа в аппаратную разработку.

    micropython
  3. TobudOS

    Операционная система Tencent с открытым кодом для конечных устройств интернета вещей. Компактное ядро операционной системы реального времени (RTOS) переносится на многие распространённые микроконтроллеры и включает несколько стеков протоколов IoT. Система потребляет мало ресурсов и энергии, имеет модульную архитектуру, легко переносится и уделяет внимание безопасности.

    TobudOS

Проекты на C#

  1. lively

    Живые обои для Windows. Программа позволяет устанавливать различные анимации в качестве обоев рабочего стола, легко устанавливается, эффектно выглядит и распространяется бесплатно.

    lively

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

  1. async_simple

    Лёгкий асинхронный фреймворк C++ с открытым кодом от Alibaba. В него входят компоненты для асинхронной разработки: бесстековые корутины C++20 (Lazy), стековые корутины (Uthread), Future/Promise и другие инструменты. Фреймворк широко применяется в графовых вычислительных движках, базах временных рядов, поисковых системах и других системах Alibaba.

    template <class T>
    using Lazy = async_simple::coro::Lazy<T>;
    
    Lazy<int> bar() {
      // ...
      int r = co_await read_some();
      // ...
      co_return r;
    }
    
    Lazy<int> read_some() {
      // ...
      int r = co_await read_coro();
      // ...
      co_return r;
    }
  2. folly

    Набор утилит C++ с открытым кодом от Facebook. Он объединяет множество удобных и производительных компонентов C++, которые широко используются внутри компании. Проект отличается аккуратным кодом, полным набором тестов и подробными комментариями в исходниках: хороший способ разобраться, как создавать быстрые и надёжные реализации знакомых функций.

    AtomicHashMap.h:高性能原子数据结构
    Bits.h:处理各种位操作的工具
    Conv.h:处理各种数据类型的转换
    dynamic.h:动态类型的对象,可用来处理 json-> map
    ...

Проекты на CSS

  1. NES.css

    CSS-фреймворк в стиле NES. Если вам нравится пиксельная графика знакомых с детства восьмибитных игр, проект поможет без труда оформить веб-страницу в таком ретростиле.

    <head>
        <link href="fonts_url" rel="stylesheet">
        <link href="nes.css_url" rel="stylesheet" />
    
        <style>
          html, body, pre, code, kbd, samp {
              font-family: "font-family you want to use";
          }
        </style>
    </head>
    NES.css

Проекты на Go

  1. go-best-practice

    Рекомендации по написанию сопровождаемого кода на Go. Китайский перевод статьи «Лучшие практики Go».

  2. natpass

    Многофункциональная платформа управления хостами. Веб-платформа написана на Go и позволяет администрировать машины с Linux, Windows и macOS через shell и удалённый рабочий стол.

    natpass
  3. navidrome

    Музыкальный сервер с открытым кодом на Go. Проект позволяет запустить собственный музыкальный сайт и поддерживает китайский интерфейс, обложки альбомов, несколько пользователей, разные форматы аудио, плейлисты и другие функции. Требования к оборудованию невысоки: сервер без проблем работает даже на Raspberry Pi.

    navidrome
  4. paopao-ce

    Лёгкая платформа сообщества на Go. Микросообщество на Gin и Vue предлагает лаконичный интерфейс, темы, короткие публикации, комментарии и другие возможности.

    paopao-ce
  5. server

    Сервис демонстрации экрана для нескольких пользователей. Он позволяет быстро запустить онлайн-сервис, в котором участники делятся экраном прямо из браузера без установки программ. Решение основано на WebRTC, а протоколы STUN/TURN обеспечивают обход NAT и прямое соединение между браузерами. Проект пригодится и как готовый инструмент, и как исходный код для изучения.

    server

Проекты на Java

  1. baritone

    Игровой бот для Minecraft. Он автоматически прокладывает маршрут, добывает руду и выполняет другие действия.

    baritone
  2. cat

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

    Cat-client:提供给业务以及中间层埋点的底层 SDK
    Cat-consumer:用于实时分析从客户端提供的数据
    Cat-home:作为用户给用户提供展示的控制端
    cat
  3. concurrency-limits

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

    // Create and configure a server builder
    ServerBuilder builder = ...;
    
    builder.addService(ServerInterceptor.intercept(service,
        ConcurrencyLimitServerInterceptor.newBuilder(
            new GrpcServerLimiterBuilder()
                .partitionByHeader(GROUP_HEADER)
                .partition("live", 0.9)
                .partition("batch", 0.1)
                .limit(WindowedLimit.newBuilder()
                        .build(Gradient2Limit.newBuilder()
                                .build()))
                .build();
    
        ));
    concurrency-limits
  4. DataX

    Эффективный инструмент офлайн-синхронизации данных. Фреймворк Alibaba решает задачи переноса данных между распространёнными реляционными базами, HDFS, HBase и другими источниками.

    DataX

Проекты на JavaScript

  1. dicebear

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

    // 安装:npm install --save @dicebear/avatars @dicebear/micah
    
    import { createAvatar } from '@dicebear/avatars';
    import * as style from '@dicebear/micah';
    
    let svg = createAvatar(style, {
      seed: 'custom-seed',
      // ... and other options
    });
    dicebear
  2. FFCreator

    Лёгкая библиотека обработки видео. Инструмент целиком реализован на Node.js и позволяет быстро создавать новые ролики из добавленных изображений, видео и музыки.

    FFCreator
  3. payload

    Headless CMS, полностью написанная на TypeScript. Проект построен на TypeScript, Node.js, React и MongoDB и предоставляет полноценные средства управления содержимым. В отличие от традиционных CMS наподобие Django, у него нет пользовательской части и шаблонизатора: данные передаются фронтенду только через API. Такой подход упрощает разделение фронтенда и бэкенда и позволяет разработчикам серверной части сосредоточиться на API.

    payload
  4. react-illustration-series

    Наглядный разбор исходного кода React. Автор начинает со структуры проекта и механизма его работы, затем объясняет общую архитектуру React, ядро выполнения, управление данными и часто используемые алгоритмы. Материал насыщен техническими подробностями и подойдёт тем, кто хочет глубже изучить исходники React.

    react-illustration-series
  5. type-challenges

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

    type-challenges
  6. visual-drag-demo

    Учебный проект по созданию low-code-платформы. Её ключевая функция — сборка страниц перетаскиванием компонентов. Проект реализует на Vue визуальную библиотеку таких компонентов и дополняет её статьями с разбором технических деталей и принципов работы.

    visual-drag-demo

Проекты на Kotlin

  1. SmsForwarder

    Приложение для пересылки сообщений на Android. Оно отслеживает SMS, входящие звонки и уведомления приложений, а затем автоматически пересылает их по заданным правилам на другие телефоны или в популярные корпоративные мессенджеры, включая DingTalk, Feishu (Lark) и WeCom (корпоративный WeChat).

    SmsForwarder

Проекты на PHP

  1. freenom

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

    freenom

Проекты на Python

  1. DearPyGui

    Мощная GUI-библиотека для Python. Рендеринг на GPU обеспечивает высокую производительность, в комплект входят готовые компоненты и гибкая настройка стилей, а подробная документация с множеством примеров помогает быстро начать работу.

    import dearpygui.dearpygui as dpg
    
    def save_callback():
        print("Save Clicked")
    
    dpg.create_context()
    dpg.create_viewport()
    dpg.setup_dearpygui()
    
    with dpg.window(label="Example Window"):
        dpg.add_text("Hello world")
        dpg.add_button(label="Save", callback=save_callback)
        dpg.add_input_text(label="string")
        dpg.add_slider_float(label="float")
    
    dpg.show_viewport()
    dpg.start_dearpygui()
    dpg.destroy_context()
    DearPyGui
  2. kopf

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

    import kopf
    
    @kopf.timer('kopfexamples', interval=1)
    def my_timer(spec, **kwargs):
        print(f"Object's spec: {spec}")
    kopf
  3. nonebot2

    Асинхронный фреймворк чат-ботов на Python. Благодаря асинхронным возможностям языка он легко обрабатывает большой поток сообщений. В комплект входят консольный генератор проекта и поддержка нескольких платформ мгновенных сообщений, что помогает быстро создавать чат-ботов, системы уведомлений и другие приложения.

    $ pip install nb-cli
    $ nb
    [?] What do you want to do?
    ❯ Create a New Project
      Run the Bot in Current Folder
      Driver ->
      Adapter ->
      Plugin ->
      ...
  4. sqlfluff

    Линтер SQL-кода. Проверки стиля есть почти для каждого языка программирования, но для SQL они встречаются реже. Проект проверяет и унифицирует оформление SQL и поддерживает диалекты MySQL, BigQuery, Hive и другие.

    $ pip install sqlfluff
    $ echo "  SELECT a  +  b FROM tbl;  " > test.sql
    $ sqlfluff lint test.sql --dialect ansi
    == [test.sql] FAIL
    L:   1 | P:   1 | L050 | Files must not begin with newlines or whitespace.
    L:   1 | P:   3 | L003 | First line has unexpected indent
    L:   1 | P:  11 | L039 | Unnecessary whitespace found.
    L:   1 | P:  14 | L039 | Unnecessary whitespace found.
    L:   1 | P:  27 | L001 | Unnecessary trailing whitespace.

Проекты на Ruby

  1. gollum

    Лёгкая wiki-система на базе Git. Серверная часть написана на Ruby, а Git используется как файловое хранилище. Возможностей достаточно для повседневной работы, развёртывание несложное, хотя интерфейс выглядит довольно скромно.

    gollum

Проекты на Rust

  1. lapce

    Редактор кода, полностью написанный на Rust. Быстрый и отзывчивый редактор построен на Druid и Xi-Editor, включает терминал, поддержку LSP, удалённую разработку и режим VIM и работает в Windows, Linux и macOS.

    lapce

Проекты на Swift

  1. Runestone

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

    Runestone
  2. SwiftFormat

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

    # macOS
    $ brew install swiftformat
    # Linux
    $ mint install nicklockwood/SwiftFormat
    SwiftFormat
  3. WhatsNewKit

    Swift-компонент для удобного показа новых функций приложения. После обновления он помогает рассказать пользователям о появившихся возможностях и содержимом. Компонент гибко настраивается, поддерживает SwiftUI и работает в iOS и macOS.

    import SwiftUI
    import WhatsNewKit
    
    struct ContentView: View {
    
        var body: some View {
            NavigationView {
                // ...
            }
            .whatsNewSheet()
        }
    
    }
    WhatsNewKit

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

  1. dalle-mini

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

    dalle-mini
  2. shap

    Библиотека для объяснения результатов моделей машинного обучения. Она основана на значениях Шепли из теории игр: рассматривает все признаки как участников и вычисляет вклад каждого признака в результат модели.

    shap

Прочее

  1. checkchan-dist

    Инструмент мониторинга веб-страниц. Он обнаруживает изменения содержимого и отправляет уведомления, поэтому подходит для отслеживания сайтов, новых серий и глав книг.

    checkchan-dist
  2. codi.vim

    Плагин Vim, показывающий результат каждой строки кода. Прямо в редакторе он интерактивно выполняет введённые строки и отображает результат, поддерживая Python, Ruby, PHP, JavaScript и другие языки.

    codi.vim
  3. IoT-For-Beginners

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

    IoT-For-Beginners
  4. jiffyreader-public-archive

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

    jiffyreader-public-archive
  5. live2d-widget

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

    live2d-widget
  6. Ventoy

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

    Ventoy

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

  1. cpp-game-engine-book

    «От простого к сложному: игровой движок». Книга объясняет, как с нуля создать полноценный игровой движок: от настройки среды до скелетной анимации, многопоточного рендеринга, реализации теней и других тем.

    cpp-game-engine-book