Рыбалка в Genshin Impact и эмулятор Xbox

Выпуск № 66 ·

Проекты на C

  1. HEX-LINK

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

    .
    ├─firmware # 软件(根据自己使用的工具选择如下一种工程即可)
    │  ├─ArduinoIDE_Proj # Arduino IDE版工程 
    │  │  ├─Additional_Libraries # 里面的文件夹需要复制到Arduino IDE安装目录下的libraries文件夹
    │  │  ├─Hex_Link_Leonardo # 需要下载至接收端的程序
    │  │  └─Hex_Link_Nano # 需要下载至发送端的程序
    │  ├─Bootloaders # 需要下载至芯片的arduino bootloader 
    │  └─Vscode_PlatformIO_Proj # VScode PlatformIO版工程 
    │      ├─Hex_Link_Leonardo # 需要下载至接收端的程序
    │      └─Hex_Link_Nano # 需要下载至发送端的程序
    ├─hardware # 硬件(PCB工程)
    │  ├─BOM   # PCB的物料清单,包含参考的购买链接(链接仅作参考,在其他任何店铺购买相同型号即可)
    │  ├─Hex_Link_Rec # 接收端PCB工程
    │  ├─Hex_Link_Trans # 发送端PCB工程
    │  └─Nano_Jtag_Pin # 转接板:用来烧录Nano bootloader的Jtag口转接板
    ├─model # 接收端外壳3维模型
    │  ├─Solidworks_Project # 2018版本Solidworks工程
    │  └─STL_TAP # STL文件,可直接用于3D打印.TAP文件是顶层亚克力板的CNC加工文件
    ├─references # 参考文档
    └─tools # 额外的脚本工具
    HEX-LINK

Проекты на C#

  1. BBDown

    Консольная утилита для скачивания видео с Bilibili (китайского видеохостинга).

    BBDown
  2. SteamTools

    Набор инструментов для клиента Steam. Работает на Windows, Linux, macOS и Android: помогает управлять библиотекой игр и инвентарём, открывать достижения, отслеживать исторические минимумы цен и продавать предметы. Возможности расширяют плагины.

    SteamTools
  3. xLua

    Библиотека для встраивания Lua в приложения на C#, Unity и .NET. Позволяет коду Lua и C# вызывать друг друга.

    XLua.LuaEnv luaenv = new XLua.LuaEnv();
    luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
    luaenv.Dispose();
    xLua

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

  1. btop

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

    btop
  2. libqalculate

    Многофункциональный калькулятор на C++ в виде настольного приложения, библиотеки и консольной утилиты. Он поддерживает большую настраиваемую библиотеку функций, вычисления и преобразование единиц, символьные вычисления, включая интегралы и уравнения. Калькулятором можно пользоваться из терминала, а библиотеку — подключать к своим проектам. Авторы также выпустили графические версии на Qt и GTK.

    libqalculate
  3. TinyWebServer

    Лёгкий веб-сервер на C++ для Linux. Подходит как для развёртывания веб-сервисов, так и для практики сетевого программирования начинающими разработчиками C++. Автор написал статьи с разбором кода и принципов работы.

Проекты на CSS

  1. css_tricks

    Подборка примеров распространённых стилей CSS.

    css_tricks

Проекты на Go

  1. go-daily-lib

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

    go-daily-lib
  2. goflylivechat

    Система онлайн-поддержки клиентов на Go. Построена с использованием Gin, MySQL, JWT и WebSocket.

    goflylivechat
  3. open-im-server

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

    open-im-server
  4. video-srt-windows

    Утилита для автоматического распознавания речи в видео и создания файла субтитров. Написана на Go с использованием walk, поэтому работает только в Windows. Обращается к онлайн-сервису распознавания речи; после исчерпания бесплатного лимита потребуется оплата. Также умеет экспортировать и переводить субтитры.

    video-srt-windows
  5. viper

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

    viper.SetConfigName("config") // 配置文件名,不包括后缀
    viper.SetConfigType("yaml") // 配置文件的后缀
    viper.AddConfigPath("/etc/appname/")   // 查找配置文件的目录
    viper.AddConfigPath("$HOME/.appname")  // 支持查找多个目录
    // 异常处理
    if err := viper.ReadInConfig(); err != nil {
        if _, ok := err.(viper.ConfigFileNotFoundError); ok {
            // 如果没有找到配置文件
        } else {
            // 找到了配置文件,但出现了其他错误
        }
    }
    viper

Проекты на Java

  1. IJPay

    Java-библиотека для разработки платёжных модулей. Объединяет распространённые интерфейсы оплаты через WeChat, QQ, Alipay, UnionPay и PayPal. Не зависит от MVC-фреймворка и легко подключается к Java-проекту.

  2. o2oa

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

    o2oa
  3. VirtualApp

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

    VirtualApp

Проекты на JavaScript

  1. 30-Days-Of-JavaScript

    Тридцатидневный курс программирования на JavaScript. Материал на английском, но хорошо иллюстрирован и написан доступно. Темы идут от простого к сложному и сопровождаются упражнениями, поэтому курс подойдёт начинающим с нуля.

    30-Days-Of-JavaScript
  2. javascript

    Руководство Airbnb по стилю JavaScript с открытым кодом. Доступен перевод на китайский.

    // 采用数组解构
    const arr = [1, 2, 3, 4];
    
    // bad
    const first = arr[0];
    const second = arr[1];
    
    // good
    const [first, second] = arr;
  3. sharedb

    База данных для совместной работы в реальном времени на основе алгоритма операционного преобразования (OT) для JSON. Она синхронизирует изменения, внесённые пользователем на странице, с экранами других пользователей. OT помогает разрешать конфликты при такой совместной работе. Подходит для синхронизации состояния между пользователями, совместного редактирования документов и переноса правок после работы без сети.

    sharedb
  4. spy-debugger

    Инструмент для удалённой отладки страниц на телефоне и перехвата сетевого трафика. Для отладки на реальном устройстве достаточно подключить телефон и компьютер к одной сети Wi-Fi.

    spy-debugger
  5. YesPlayMusic

    Сторонний проигрыватель для NetEase Cloud Music с привлекательным интерфейсом. Сочетает простой дизайн с широкими возможностями.

    • Windows, macOS и Linux.
    • Персональное FM-радио и ежедневные рекомендации.
    • Вход через учётную запись NetEase Cloud Music.
    • Показ текстов песен.
    • Настраиваемые сочетания клавиш, в том числе глобальные.
    • И другие функции.
    YesPlayMusic

Проекты на Kotlin

  1. Component

    Фреймворк для разделения Android-проектов на компоненты. Предлагает широкий набор возможностей, регулярно обновляется и поддерживает Kotlin, AndroidX, RxJava и корутины.

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

  1. iOSInterviewQuestions

    Сборник вопросов для собеседований по iOS с ответами.

Проекты на Python

  1. CPython-Internals

    Иллюстрированные заметки по чтению исходного кода Python. Разбирают сравнительно свежую на момент публикации версию CPython 3.8; проект продолжает обновляться.

    static void take_gil(PyThreadState *tstate)
    {
        /* 忽略 */
        while (_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked)) {
            /* 只要 gil 是锁住的状态, 进入这个循环 */
            int timed_out = 0;
            unsigned long saved_switchnum;
    
            saved_switchnum = _PyRuntime.ceval.gil.switch_number;
            /* 释放 gil.mutex, 并在以下两种条件下唤醒
               1. 等待 INTERVAL 微秒(默认 5000) 
               2. 还没有等待到 5000 微秒但是收到了 gil.cond 的信号
            */
            COND_TIMED_WAIT(_PyRuntime.ceval.gil.cond, _PyRuntime.ceval.gil.mutex,
                            INTERVAL, timed_out);
            /* 当前持有 gil.mutex 这把互斥锁 */
            if (timed_out &&
                _Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked) &&
                _PyRuntime.ceval.gil.switch_number == saved_switchnum) {
                /* 如果超过了等待时间, 并且这段等待时间里 gil 的持有者没有变更过, 则尝试让当前持有 gil 的线程进行释放gil
                把 gil_drop_request 值设为 1, 持有锁的线程看到这个值的时候, 会尝试放弃 gil */
                SET_GIL_DROP_REQUEST();
            }
            /* 继续回到 while 循环, 检查 gil 是否为锁住状态 */
        }
        /* 忽略 */
    }
  2. mypy

    Библиотека статической проверки типов Python. Хотя Python — динамический язык, проверка типов позволяет находить потенциальные ошибки без запуска программы. Её можно включить в git hook для автоматической проверки перед коммитом. Подробнее — в этой статье на китайском.

  3. Pokemon-Terminal

    Набор тем с покемонами для разных терминалов. Поддерживает iTerm2, ConEmu, Terminology и терминал Windows; в коллекции уже 719 персонажей.

    Pokemon-Terminal

Проекты на Rust

  1. nushell

    Новая оболочка shell с более удобным для человека интерфейсом.

    nushell

Проекты на Swift

  1. Clipy

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

    Clipy

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

  1. GameAISDK

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

    GameAISDK
  2. genshin_auto_fish

    Автоматическая рыбалка в мобильной версии Genshin Impact на основе глубокого обучения. YOLOX определяет местоположение и вид рыбы, а также точку падения удочки. DQN адаптивно управляет нажатиями во время ловли, удерживая усилие в оптимальной зоне.

  3. invoice

    Проект OCR-распознавания счетов-фактур по НДС. Включает обученную модель и микросервис: после запуска распознавание доступно через API.

    invoice

Прочее

  1. awesome-for-beginners

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

  2. chinese-dos-games

    Подборка DOS-игр на китайском языке. Можно поиграть онлайн.

    chinese-dos-games
  3. QWidgetDemo

    Коллекция примеров на Qt. Каждый пример запускается отдельно, а код короток и понятен — удобно для обучения начинающих.

    QWidgetDemo
  4. remake

    Текстовая онлайн-игра «Симулятор перезапуска жизни». В начале выбираете таланты и распределяете характеристики, затем наблюдаете, как быстро проходит жизнь. Если исход не понравился, можно начать заново. Игра получила хорошие отзывы за юмор и неожиданные концовки. Играть онлайн.

    remake
  5. xemu

    Бесплатный эмулятор Xbox с открытым кодом. Работает на Windows, Linux и macOS.

    xemu
  6. yabai

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

    • Control+Option+A/D: Переключить мозаичный и плавающий режимы.
    • Option+h/j/k/l: Сделать активным окно слева, снизу, сверху или справа.
    • Shift+Option+h/j/k/l: Переместить активное окно влево, вниз, вверх или вправо.
    • Command+Option+n: Создать новый рабочий стол и переместить туда активное окно.
    yabai

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

  1. introduction-to-front-end-engineering

    Небольшая книга «Введение во фронтенд-инженерию» (带你入门前端工程). Автор обобщил опыт и выводы за два года работы над инфраструктурой фронтенда. Читать онлайн.

  2. pumpkin-book

    Книга «Подробный разбор формул машинного обучения» (机器学习公式详解) с выводом и объяснением формул из «Арбузной книги». Читать онлайн.

    pumpkin-book