Умные часы своими руками и схемы из текста

Выпуск № 82 ·

Проекты на C

  1. bare-metal-programming-guide

    Руководство по программированию микроконтроллеров без IDE. Материал знакомит с регистрами, таблицей векторов прерываний, кодом запуска и скриптами компоновщика. В конце автор создаёт веб-сервер с панелью показателей устройства.

    bare-metal-programming-guide
  2. sumatrapdf

    Бесплатная компактная программа для чтения PDF с открытым кодом. Приложение для Windows занимает мало места и памяти, быстро запускается, содержит все повседневные функции и отличается простым интерфейсом.

    sumatrapdf
  3. ZSWatch

    Самодельные умные часы с открытым кодом. Проект основан на Zephyr: устройство оснащено круглым IPS TFT-экраном 240 × 240 пикселей и тремя кнопками для перехода назад, вперёд и выбора. Поддерживаются подсчёт шагов, измерение уровня кислорода в крови и пульса, а также Bluetooth.

    ZSWatch

Проекты на C#

  1. carnac

    Утилита для показа нажатий клавиш. В реальном времени отображает действия с клавиатурой на рабочем столе — удобно для демонстраций и записи обучающих видео. Работает в Windows 7 и более новых версиях.

    carnac
  2. downkyi

    Многофункциональная программа для загрузки видео с Bilibili (китайского видеохостинга). У неё простой интерфейс; поддерживаются пакетная загрузка, извлечение аудио и видео, а также удаление водяных знаков.

    downkyi
  3. SeeSharpSnake

    «Змейка» на C# размером менее 8 КБ. Проект посвящён не созданию самой игры, а уменьшению скомпилированного приложения с первоначальных 65 МБ до 8 КБ при сохранении автономной работы.

    # To build the 4.7 MB version of the game
    dotnet publish -r win-x64 -c Release /p:Mode=CoreRT
    # To build the 4.3 MB version of the game
    dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-Moderate
    # To build the 3.0 MB version of the game
    dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-High
    # To build the 1.2 MB version of the game
    dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-ReflectionFree
    # To build the 10 kB version of the game
    dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-NoRuntime
    SeeSharpSnake

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

  1. cpp-httplib

    Библиотека HTTP/HTTPS для C++ в одном файле. Кроссплатформенная клиентская и серверная библиотека на C++11 состоит только из заголовочного файла: для работы достаточно подключить httplib.h.

    #define CPPHTTPLIB_OPENSSL_SUPPORT
    #include "path/to/httplib.h"
    
    // HTTPS
    httplib::Client cli("https://hellogithub.com");
    
    auto res = cli.Get("/periodical");
    res->status;
    res->body;
  2. Ripes

    Симулятор RISC-V и редактор ассемблера. Наглядно показывает выполнение машинного кода на различных микроархитектурах и позволяет, в частности, исследовать влияние разных конфигураций кеша на производительность.

    Ripes
  3. SFML

    Простая и эффективная мультимедийная библиотека для C++. Упрощает разработку игр и мультимедийных приложений. Благодаря низкому порогу входа и развитой экосистеме многие новички выбирают её для знакомства с графическим программированием на C++.

    SFML

Проекты на CSS

  1. css

    Система дизайна GitHub с открытым кодом. Команда дизайнеров GitHub публикует и поддерживает принципы оформления интерфейса, руководство по использованию и готовые UI-компоненты.

    css

Проекты на Go

  1. d2

    Язык для создания диаграмм из текста. Достаточно описать нужную схему, и D2 построит соответствующее изображение.

    echo 'x -> y' > input.d2
    d2 -w input.d2 out.svg
    d2
  2. grpcurl

    Консольная утилита для gRPC, похожая на cURL. Позволяет легко отправлять запросы к gRPC-сервисам и взаимодействовать с сервером.

    # 安装
    brew install grpcurl
    # 使用
    grpcurl grpc.server.com:443 my.custom.server.Service/Method
  3. shifu

    Облачный фреймворк для разработки решений интернета вещей. Платформа промышленного уровня упаковывает IoT-устройства в минимальные развёртываемые единицы Kubernetes — поды — и открывает их возможности и данные через API. Так создавать приложения для интернета вещей проще.

    cd shifu
    # 在集群中安装 Shifu
    kubectl apply -f pkg/k8s/crd/install/shifu_install.yml
    shifu
  4. writefreely

    Платформа для совместного ведения блогов и создания сообщества. Написана на Go: позволяет завести минималистичный личный блог с Markdown или создать целое блогерское сообщество наподобие китайской площадки Blog Garden.

    writefreely
  5. yao

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

    yao

Проекты на Java

  1. HummerRisk

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

    HummerRisk
  2. HydraLab

    Открытая облачная платформа для тестирования мобильных приложений. Сервис на Spring Boot и React легко развернуть и начать использовать. Он позволяет удалённо управлять тестовыми устройствами, запускать тесты и визуализировать результаты.

    HydraLab
  3. neo4j

    Одна из самых популярных графовых баз данных. Написана на Java и Scala; собственный язык запросов Cypher помогает наглядно и эффективно искать и обрабатывать связи между данными.

    neo4j

Проекты на JavaScript

  1. html2canvas

    JavaScript-библиотека для создания скриншотов в браузере. Снимает всю страницу или отдельный элемент: читает DOM и стили, а затем отрисовывает текущее состояние страницы на холсте.

    html2canvas(document.querySelector("#capture")).then(canvas => {
        document.body.appendChild(canvas)
    });
    html2canvas
  2. JavaScript-Algorithms

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

  3. pomotroid

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

    pomotroid
  4. satori

    Библиотека для преобразования HTML и CSS в SVG. Разработка команды Vercel генерирует SVG-изображения из кода HTML и CSS, поддерживает JSX и удобна в использовании.

    import satori from 'satori'
    
    const svg = await satori(
      <div style={{ color: 'black' }}>hello, world</div>,
      {
        width: 600,
        height: 400,
        fonts: [
          {
            name: 'Roboto',
            data: robotoArrayBuffer,
            weight: 400,
            style: 'normal',
          },
        ],
      },
    )
    satori
  5. underscore

    Библиотека полезных функций для JavaScript. Содержит более 100 функций: от знакомых map, filter, reduce и invoke до привязки функций, шаблонов JavaScript и быстрого индексирования. Упрощает функциональное программирование на JavaScript.

    // countBy
    _.countBy([1, 2, 3, 4, 5], function(num) {
      return num % 2 == 0 ? 'even': 'odd';
    });
    // 输出:{odd: 3, even: 2}
    underscore

Проекты на Python

  1. bandit

    Утилита для поиска распространённых проблем безопасности в коде Python. Её выпустила команда PyCQA, которая также разрабатывает известные инструменты isort и flake8.

    bandit
  2. devguide

    Руководство разработчика CPython. Официальный материал Python объясняет, как вносить вклад в CPython, и подходит участникам с любым уровнем подготовки.

  3. Django-Styleguide

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

    Django-Styleguide
  4. numpy-100

    Сборник упражнений по NumPy. Содержит 100 заданий и решений по работе с популярной библиотекой Python для обработки данных.

    # How to sum a small array faster than np.sum? (★★☆)
    
    Z = np.arange(10)
    np.add.reduce(Z)
  5. prefect

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

    from prefect import flow, task
    
    @task
    def say_hello():
        print("Hello, World! I'm HelloGitHub!")
    
    @flow("Prefect Flow"):
    def h_flow():
        say_hello()
    
    # run the flow!
    h_flow() # "Hello, World! I'm HelloGitHub!"
    prefect

Проекты на Ruby

  1. YouPlot

    Консольная утилита визуализации данных на Ruby. Строит в терминале цветные столбчатые диаграммы, гистограммы, ящики с усами и другие графики.

    YouPlot

Проекты на Rust

  1. ChatGPT

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

    ChatGPT
  2. gitui

    Git с интерфейсом в терминале. Интерактивные подсказки делают работу с Git удобнее и избавляют от необходимости запоминать множество команд.

    gitui

Проекты на Swift

  1. vimac

    Приложение для управления macOS с клавиатуры. Позволяет обходиться без мыши и предлагает два режима.

    • Режим активации: назначает клавиши доступным для нажатия элементам экрана.
    • Режим прокрутки: позволяет прокручивать области клавишами HJKL.
    vimac

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

  1. annotated_deep_learning_paper_implementations

    Подборка реализаций статей о глубоком обучении. Содержит реализации нейросетей и связанных алгоритмов на PyTorch с построчными комментариями в коде.

    annotated_deep_learning_paper_implementations
  2. Chinese-CLIP

    Предобученная на китайском версия модели OpenAI CLIP. Для обучения использовано около 200 миллионов пар «изображение — текст». Доступны предобученные модели разного размера и технический отчёт; извлекать признаки и искать изображения по тексту можно несколькими строками кода.

    import torch 
    from PIL import Image
    
    import cn_clip.clip as clip
    from cn_clip.clip import load_from_name, available_models
    print("Available models:", available_models())  
    # Available models: ['ViT-B-16', 'ViT-L-14', 'ViT-L-14-336', 'ViT-H-14', 'RN50']
    
    device = "cuda" if torch.cuda.is_available() else "cpu"
    model, preprocess = load_from_name("ViT-B-16", device=device, download_root='./')
    model.eval()
    image = preprocess(Image.open("examples/pokemon.jpeg")).unsqueeze(0).to(device)
    text = clip.tokenize(["杰尼龟", "妙蛙种子", "小火龙", "皮卡丘"]).to(device)
    
    with torch.no_grad():
        image_features = model.encode_image(image)
        text_features = model.encode_text(text)
        # 对特征进行归一化,请使用归一化后的图文特征用于下游任务
        image_features /= image_features.norm(dim=-1, keepdim=True) 
        text_features /= text_features.norm(dim=-1, keepdim=True)    
    
        logits_per_image, logits_per_text = model.get_similarity(image, text)
        probs = logits_per_image.softmax(dim=-1).cpu().numpy()
    
    print("Label probs:", probs)  # 图文匹配概率 [[1.268734e-03 5.436878e-02 6.795761e-04 9.436829e-01]]
    Chinese-CLIP
  3. KuiperInfer

    Пошаговое руководство по созданию фреймворка для инференса глубоких нейросетей на C++. Структура проекта вдохновлена Caffe. Новички узнают, как устроены подобные фреймворки, и научатся работать с проектом среднего размера на C++.

    KuiperInfer

Прочее

  1. cdn-up-and-running

    Руководство по созданию CDN с нуля. Чтобы изучить принципы работы на практике, автор начинает с одного серверного сервиса, а затем добавляет узлы, имитацию задержек, визуализацию и тестирование. Понадобятся базовые навыки программирования и знакомство с Nginx, Lua, Docker и Grafana.

    cdn-up-and-running
  2. fluentui-emoji

    Набор симпатичных эмодзи. Коллекция аккуратно нарисованных эмодзи, опубликованная Microsoft с открытым кодом.

    fluentui-emoji
  3. k8s_PaaS

    Руководство по развёртыванию полноценной платформы на Kubernetes. Показывает, как развернуть кластер и построить на его основе среду разработки и поставки ПО с Apollo, Jenkins, Prometheus и другими сервисами.

    k8s_PaaS
  4. pi-apps

    Популярный магазин приложений для Raspberry Pi. Бесплатный проект с открытым кодом легко установить и использовать; в каталоге более 200 приложений. Поддерживает 32- и 64-разрядные версии Raspberry Pi OS.

    # 下载
    git clone https://github.com/Botspot/pi-apps
    # 安装
    ~/pi-apps/install
    pi-apps
  5. smiley-sans

    Открытый китайский шрифт без засечек «Дэи Хэй» (Smiley Sans). Его узкие наклонные знаки включают детали, вдохновлённые рисованными надписями. Поддерживаются распространённые иероглифы упрощённого китайского, латиница, арабские цифры и знаки препинания.

    smiley-sans

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

  1. essential-netty-in-action

    Сокращённое китайское издание книги «Netty на практике» (Netty in Action). Помогает быстро освоить Netty.

  2. time-as-a-friend

    «Относись ко времени как к другу» (把时间当作朋友). Не всегда нужно стремиться сделать всё быстрее: лошадь бежит быстрее верблюда, но за жизнь верблюд проходит вдвое больший путь.

    time-as-a-friend