Проекты на C
-
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 # 额外的脚本工具
Проекты на C#
-
BBDown
Консольная утилита для скачивания видео с Bilibili (китайского видеохостинга).

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

-
xLua
Библиотека для встраивания Lua в приложения на C#, Unity и .NET. Позволяет коду Lua и C# вызывать друг друга.
XLua.LuaEnv luaenv = new XLua.LuaEnv(); luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')"); luaenv.Dispose();
Проекты на C++
-
btop
Консольный монитор ресурсов с эффектным интерфейсом. Показывает загрузку процессора, памяти, дисков и сети, сведения о процессах и статистику; поддерживает управление мышью.

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

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

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

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

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

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

-
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 { // 找到了配置文件,但出现了其他错误 } }
Проекты на Java
-
IJPay
Java-библиотека для разработки платёжных модулей. Объединяет распространённые интерфейсы оплаты через WeChat, QQ, Alipay, UnionPay и PayPal. Не зависит от MVC-фреймворка и легко подключается к Java-проекту.
-
o2oa
Китайская система автоматизации офисной работы. Поддерживает учёт посещаемости, управление встречами, облачное хранилище и другие функции для совместной работы компаний.

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

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

-
javascript
Руководство Airbnb по стилю JavaScript с открытым кодом. Доступен перевод на китайский.
// 采用数组解构 const arr = [1, 2, 3, 4]; // bad const first = arr[0]; const second = arr[1]; // good const [first, second] = arr; -
sharedb
База данных для совместной работы в реальном времени на основе алгоритма операционного преобразования (OT) для JSON. Она синхронизирует изменения, внесённые пользователем на странице, с экранами других пользователей. OT помогает разрешать конфликты при такой совместной работе. Подходит для синхронизации состояния между пользователями, совместного редактирования документов и переноса правок после работы без сети.

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

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

Проекты на Kotlin
-
Component
Фреймворк для разделения Android-проектов на компоненты. Предлагает широкий набор возможностей, регулярно обновляется и поддерживает Kotlin, AndroidX, RxJava и корутины.
Проекты на Objective-C
-
iOSInterviewQuestions
Сборник вопросов для собеседований по iOS с ответами.
Проекты на Python
-
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 是否为锁住状态 */ } /* 忽略 */ } -
mypy
Библиотека статической проверки типов Python. Хотя Python — динамический язык, проверка типов позволяет находить потенциальные ошибки без запуска программы. Её можно включить в
git hookдля автоматической проверки перед коммитом. Подробнее — в этой статье на китайском. -
Pokemon-Terminal
Набор тем с покемонами для разных терминалов. Поддерживает iTerm2, ConEmu, Terminology и терминал Windows; в коллекции уже 719 персонажей.

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

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

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

-
genshin_auto_fish
Автоматическая рыбалка в мобильной версии Genshin Impact на основе глубокого обучения. YOLOX определяет местоположение и вид рыбы, а также точку падения удочки. DQN адаптивно управляет нажатиями во время ловли, удерживая усилие в оптимальной зоне.
-
invoice
Проект OCR-распознавания счетов-фактур по НДС. Включает обученную модель и микросервис: после запуска распознавание доступно через API.

Прочее
-
awesome-for-beginners
Подборка проектов с открытым кодом, дружелюбных к новичкам. Поможет найти проект для первого вклада в сообщество и отправить свой первый pull request.
-
chinese-dos-games
Подборка DOS-игр на китайском языке. Можно поиграть онлайн.

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

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

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

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

Открытые книги
-
introduction-to-front-end-engineering
Небольшая книга «Введение во фронтенд-инженерию» (带你入门前端工程). Автор обобщил опыт и выводы за два года работы над инфраструктурой фронтенда. Читать онлайн.
-
pumpkin-book
Книга «Подробный разбор формул машинного обучения» (机器学习公式详解) с выводом и объяснением формул из «Арбузной книги». Читать онлайн.
