Плата для Casio F-91W и Docker-образ как программа

Выпуск № 103 ·

Проекты на C

  1. rawdrawandroid

    Разработка Android-приложений только на C. Лёгкий кроссплатформенный фреймворк позволяет обходиться без Java, используя C и Make. Поддерживает OpenGL ES, гироскоп, мультитач, клавиатуру Android и прямой доступ к USB-устройствам.

    rawdrawandroid
  2. taisei

    Бесплатный открытый шутер во вселенной Touhou Project. В игре с плотным потоком снарядов свои сюжет, музыка и механики. Taisei написана на C11 с SDL2 и OpenGL и запускается на Windows, Linux, macOS и в браузерах вроде Chrome.

    taisei

Проекты на C#

  1. Bulk-Crap-Uninstaller

    Бесплатное массовое удаление программ Windows. Утилита на C# быстро избавляет от ненужных приложений, в том числе пакетно или принудительно, очищает остаточные файлы и находит скрытые либо защищённые записи об установке. Создана для ИТ-специалистов, но простые настройки по умолчанию делают её доступной всем.

    Bulk-Crap-Uninstaller
  2. Macro-Deck

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

    Macro-Deck

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

  1. aria2

    Очень быстрый консольный загрузчик. Кроссплатформенная утилита на C++ работает с HTTP(S), FTP, SFTP и BitTorrent. Она небольшая и простая, умеет загружать в фоне, ограничивать скорость, скачивать по частям и использовать расширения BitTorrent.

  2. fast_float

    Быстрый и точный парсер чисел на C++. Библиотека из одних заголовочных файлов выполняет задачу, похожую на from_chars, в несколько раз быстрее стандартной библиотеки. Разбирает строки с float, double и целыми числами; используется в Chromium, Redis и LLVM.

    #include "fast_float/fast_float.h"
    #include <iostream>
    
    int main() {
        const std::string input =  "3.1416 xyz ";
        double result;
        auto answer = fast_float::from_chars(input.data(), input.data()+input.size(), result);
        if(answer.ec != std::errc()) { std::cerr << "parsing failure\n"; return EXIT_FAILURE; }
        std::cout << "parsed the number " << result << std::endl;
        return EXIT_SUCCESS;
    }
    fast_float
  3. mame

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

    mame

Проекты на Go

  1. beszel

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

    beszel
  2. envd

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

    envd
  3. gophish

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

    gophish
  4. opentofu

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

    opentofu
  5. photoview

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

    photoview

Проекты на Java

  1. GoGoGo

    Открытая подмена геолокации на Android. Приложение использует отладочный API Android и карты Baidu; права root не нужны. Можно найти место, ввести координаты вручную и имитировать движение виртуальным джойстиком.

    GoGoGo
  2. karate

    Открытый фреймворк автоматизации тестов API. Java-инструмент интегрируется со Spring Boot и Maven, сочетает тестирование API, имитацию сервисов, нагрузочные тесты и автоматизацию UI. Сценарии пишутся синтаксисом наподобие Cucumber, а кроссплатформенный исполняемый файл позволяет пользоваться им даже без глубокого знания Java.

    karate

Проекты на JavaScript

  1. icones

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

    icones
  2. media-chrome

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

    <media-controller audio>
      <audio
        slot="media"
        src="xxxxxx"
      ></audio>
      <media-control-bar>
        <media-play-button></media-play-button>
        <media-time-display showduration></media-time-display>
        <media-time-range></media-time-range>
        <media-playback-rate-button></media-playback-rate-button>
        <media-mute-button></media-mute-button>
        <media-volume-range></media-volume-range>
      </media-control-bar>
    </media-controller>
    media-chrome
  3. Moe-Counter

    Счётчик посещений сайта с милыми темами. Простой инструмент показывает число посетителей страницы и предлагает несколько оформлений на выбор.

    Moe-Counter
  4. piscina

    Быстрый гибкий пул потоков Node.js. Написанный на TypeScript пул Worker-потоков упрощает многопоточное программирование. Простой API поддерживает обмен сообщениями между потоками, динамический размер пула, отмену задач, ограничение памяти и отслеживание асинхронных задач.

    const path = require('path');
    const Piscina = require('piscina');
    
    const piscina = new Piscina({
      filename: path.resolve(__dirname, 'worker.js')
    });
    
    (async function() {
      const result = await piscina.run({ a: 4, b: 6 });
      console.log(result);  // Prints 10
    })();
  5. swapy

    Перестановка элементов перетаскиванием за несколько строк кода. Библиотека превращает любой макет в интерактивный, позволяет настраивать анимацию и работает с React, Vue и Svelte.

    import { createSwapy } from 'swapy'
    
    const container = document.querySelector('.container')
    
    const swapy = createSwapy(container, {
      animation: 'dynamic' // or spring or none
    })
    
    // You can disable and enable it anytime you want
    swapy.enable(true)
    swapy

Проекты на Kotlin

  1. etchdroid

    Создание загрузочной флешки с телефона. Открытое Android-приложение записывает образы ОС на USB-носитель без прав root. Поддерживает Ubuntu, Raspberry Pi и другие системы; выручит, когда под рукой нет компьютера.

    etchdroid
  2. KeyMapper

    Переназначение кнопок на Android. Бесплатное открытое приложение позволяет настроить клавиши, сканер отпечатка и жесты без прав root. Работает с Bluetooth- и проводными клавиатурами.

    KeyMapper

Проекты на Python

  1. backtrader

    Фреймворк проверки торговых стратегий на исторических данных. Библиотека на Python загружает данные из CSV, онлайн-источников и pandas, параллельно проверяет несколько стратегий и строит графики результатов. Внутри более 100 индикаторов, включая тренд, объём торгов и волатильность.

    from datetime import datetime
    import backtrader as bt
    
    class SmaCross(bt.SignalStrategy):
        def __init__(self):
            sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
            crossover = bt.ind.CrossOver(sma1, sma2)
            self.signal_add(bt.SIGNAL_LONG, crossover)
    
    cerebro = bt.Cerebro()
    cerebro.addstrategy(SmaCross)
    
    data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),
                                      todate=datetime(2012, 12, 31))
    cerebro.adddata(data0)
    
    cerebro.run()
    cerebro.plot()
    backtrader
  2. core

    Открытая платформа умного дома. Python-проект объединяет устройства разных марок и позволяет настраивать домашнюю автоматизацию. В одной системе можно управлять и связывать Apple HomeKit, Mi Home, Aqara и Tuya, обходя ограничения совместимости отдельных платформ. Особенно полезна любителям самостоятельно собирать недорогой умный дом.

    core
  3. paperless-ngx

    Цифровой архив бумажных документов. Система на Django превращает отсканированные бумаги в доступное для поиска онлайн-хранилище. В отличие от обычного сканирования в картинку или PDF, после которого текст трудно найти, документы обрабатываются для удобного поиска.

    paperless-ngx
  4. pipreqs

    Быстрое создание файла зависимостей Python-проекта. По импортам в исходном коде инструмент определяет используемые библиотеки и генерирует requirements.txt. Список зависимостей можно получить без их установки.

  5. pokeapi

    API с данными о покемонах. REST-сервис на Django предоставляет разработчикам обширную базу: движения, характеристики, способности и сведения об эволюции персонажей.

Проекты на Rust

  1. insta

    Библиотека снапшот-тестов для Rust. Особенно полезна, когда эталонные данные велики или часто меняются. С плагином VS Code и консольной утилитой можно командой review изучить расхождение после сбоя теста и одним действием обновить снимок, чтобы снова пройти проверку.

    fn split_words(s: &str) -> Vec<&str> {
        s.split_whitespace().collect()
    }
    
    #[test]
    fn test_split_words() {
        let words = split_words("hello from the other side");
        insta::assert_yaml_snapshot!(words);
    }
    insta
  2. oha

    Инструмент нагрузочного тестирования HTTP на Rust. Прост в использовании и показывает анимированный терминальный интерфейс. Строит отчёты о задержке запросов и пропускной способности, поддерживает динамические URL и гибкие интервалы отправки запросов (burst-delay).

    oha
  3. steel

    Встраиваемый интерпретатор Scheme на Rust. Даёт небольшим приложениям и встроенным системам быстрый, лёгкий и гибкий движок сценариев.

    steel

Проекты на Swift

  1. aural-player

    Музыкальный плеер для macOS в духе Winamp. Приложение на Swift содержит звуковые эффекты и эквалайзер, поддерживает разные аудиоформаты, повторное воспроизведение, показ текстов песен и настройку интерфейса.

    aural-player
  2. DockDoor

    Предпросмотр окон приложений в Dock на macOS. Достаточно навести указатель на значок, чтобы увидеть открытые окна. Утилита на Swift и SwiftUI также предлагает переключение в стиле Windows Alt+Tab и настраиваемые горячие клавиши.

    DockDoor

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

  1. moondream

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

    from transformers import AutoModelForCausalLM, AutoTokenizer
    from PIL import Image
    
    model_id = "vikhyatk/moondream2"
    revision = "2024-08-26"
    model = AutoModelForCausalLM.from_pretrained(
        model_id, trust_remote_code=True, revision=revision
    )
    tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision)
    
    image = Image.open('<IMAGE_PATH>')
    enc_image = model.encode_image(image)
    print(model.answer_question(enc_image, "Describe this image.", tokenizer))
    moondream
  2. Prompt_Engineering

    Практическое руководство по работе с промптами. Объясняет приёмы общения с большими языковыми моделями (LLM) от базовых до продвинутых, с подробными инструкциями и примерами кода.

  3. spaCy

    Мощная Python-библиотека обработки естественного языка. Инструмент промышленного уровня поддерживает токенизацию и обучение для более чем 70 языков, разметку, синтаксический анализ и классификацию текста, а также упаковку и развёртывание моделей.

    # pip install -U spacy
    # python -m spacy download en_core_web_sm
    import spacy
    
    # Load English tokenizer, tagger, parser and NER
    nlp = spacy.load("en_core_web_sm")
    
    # Process whole documents
    text = ("When Sebastian Thrun started working on self-driving cars at "
            "Google in 2007, few people outside of the company took him "
            "seriously. “I can tell you very senior CEOs of major American "
            "car companies would shake my hand and turn away because I wasn’t "
            "worth talking to,” said Thrun, in an interview with Recode earlier "
            "this week.")
    doc = nlp(text)
    
    # Analyze syntax
    print("Noun phrases:", [chunk.text for chunk in doc.noun_chunks])
    print("Verbs:", [token.lemma_ for token in doc if token.pos_ == "VERB"])
    
    # Find named entities, phrases and concepts
    for entity in doc.ents:
        print(entity.text, entity.label_)
  4. ultralytics

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

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo11n.pt")
    
    # Train the model
    train_results = model.train(
        data="coco8.yaml",  # path to dataset YAML
        epochs=100,  # number of training epochs
        imgsz=640,  # training image size
        device="cpu",  # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
    )
    
    # Evaluate model performance on the validation set
    metrics = model.val()
    
    # Perform object detection on an image
    results = model("path/to/image.jpg")
    results[0].show()
    
    # Export the model to ONNX format
    path = model.export(format="onnx")  # return path to exported model
    ultralytics

Прочее

  1. BilibiliSponsorBlock

    Автоматический пропуск вставок в видео Bilibili (китайского видеохостинга). Расширение для Chrome, Edge и Firefox пропускает рекламные фрагменты, заставки и концовки. Все отметки добавляют пользователи.

    BilibiliSponsorBlock
  2. cognitive-load

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

    cognitive-load
  3. dockerc

    Docker-образ как самостоятельный исполняемый файл. Инструмент компилирует образ в бинарный файл, который запускается без настройки Docker и установки зависимостей. Так проще распространять и запускать программы.

  4. kubernetes-goat

    Полигон для изучения безопасности Kubernetes. Создаёт кластер с многочисленными уязвимостями, на котором можно отрабатывать реальные приёмы атаки и защиты.

  5. pilipala

    Открытый сторонний клиент Bilibili (китайского видеохостинга). Приложение на Flutter для Android и iOS показывает рекомендации, популярные трансляции и сериалы, поддерживает офлайн-кеш, ответы на комментарии, экранные комментарии и поиск.

    pilipala
  6. Sensor-Watch

    Открытая плата для часов Casio F-91W. Самодельная плата на микроконтроллере ARM Cortex-M0+ (SAM L22) имеет десятиразрядный сегментный ЖК-дисплей, пять индикаторных сегментов, светодиодную подсветку и три кнопки. Через USB в часы можно загрузить собственную программу.

    Sensor-Watch
  7. themostdangerouswritingapp

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

    themostdangerouswritingapp

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

  1. udlbook

    Книга «Понимание глубокого обучения» (Understanding Deep Learning) Саймона Дж. Д. Принса. Охватывает теоретические основы, оценку качества, свёрточные сети, трансформеры, графовые нейросети, генеративно-состязательные сети, диффузионные модели и обучение с подкреплением; содержит множество упражнений.

    udlbook