Проекты на C#
-
csredis
Клиентская библиотека Redis для C#, рекомендованная Redis.io. Поддерживает все команды Redis версий 2.8–5.0, а также Sentinel и кластеры. Проект развивается с 2016 года, сочетая простой вход, высокую производительность и возможности разделения данных. Автор 2881099 опубликовал на GitHub и другие полезные проекты на C#; к ним можно присоединиться и помочь сообществу открытого кода. Пример:
var csredis = new CSRedis.CSRedisClient("127.0.0.1:6379,password=123"); RedisHelper.Initialization(csredis); RedisHelper.Set("test1", "123123", 60); RedisHelper.Get("test1"); //...函数名与 redis-cli 的命令相同 //普通订阅 RedisHelper.Subscribe( ("chan1", msg => Console.WriteLine(msg.Body)), ("chan2", msg => Console.WriteLine(msg.Body))); //管道操作 RedisHelper.StartPipe().Set("a", "1").Get("a").EndPipe();
Проекты на C++
-
awesome-modern-cpp
Подборка материалов для освоения современного C++: лучшие практики, книги, конференции, доклады, подкасты, блоги, сайты, библиотеки и инструменты.
-
fmt
Библиотека форматирования C++ с открытым кодом. Быстрая и безопасная замена (s)printf и iostreams, а также реализация std::format из C++20. Синтаксис строк форматирования напоминает Python
str.format; поддерживаются пользовательские типы. По сравнению с распространёнными реализациями printf и iostreams работает быстрее, выявляет ошибки формата при компиляции и защищает от переполнения буфера. Пример:fmt::print("Hello, {}!", "world"); // 类 Python 的语法风格 fmt::printf("Hello, %s!", "world");
Проекты на Go
-
go-github
Клиент GitHub API на Go от Google. Поможет сэкономить время при создании серверной части сервиса на основе GitHub, а его код полезен как пример устройства Go-проекта и проектирования интерфейсов. Пример:
import "github.com/google/go-github/v27/github" // 启用的 go module (GO111MODULE=on 或者不在 GOPATH 里) import "github.com/google/go-github/github" // 没启用 go module 时 client := github.NewClient(nil) // 获取用户 "willnorris" 所在的所有组织 orgs, _, err := client.Organizations.List(context.Background(), "willnorris", nil) -
gridstudio
Веб-приложение электронных таблиц с серверной частью на Go. Позволяет обрабатывать данные на Python и сразу видеть результат. Объединяет загрузку, очистку, преобразование и визуализацию данных; доступно и онлайн. Особенно полезно тем, кто работает с данными на Python. Исходники дают возможность изучить устройство сложного приложения для таблиц. Установка:
git clone https://github.com/ricklamers/gridstudio # clone 项目 cd gridstudio && ./run.sh # 直接运行 # 然后访问 http://127.0.0.1:8080 用户名:admin 密码:admin
-
simple-computer
Симулятор простого компьютера и CPU на Go. Аппаратных компонентов в проекте нет: всё реализовано функциями Go, от логического элемента И-НЕ до небольшой виртуальной машины, которая складывает, вычитает и выводит результат. Модель наглядно показывает базовое устройство компьютера и принципы его работы. Новички смогут изучить CPU и увидеть необычное применение языка программирования. Команды запуска:
make # 构建项目 make test # 测试 ./bin/simulator -bin _programs/brush.bin # 运行虚拟机
Проекты на Java
-
SmartSwipe
Фреймворк для обработки боковых жестов, а не один готовый эффект. Внутри — более десяти вариантов, включая возврат жестом, удаление, «жалюзи» и «дверь». Пример:
//为控件添加仿MIUI的弹性拉伸效果: // 当纵向不能滚动(或滚动到顶/底)时,若继续拖动,则 UI 呈现弹性拉伸效果,释放后平滑恢复 SmartSwipe.wrap(view) .addConsumer(new StretchConsumer()) .enableVertical(); SmartSwipe.wrap(view) .addConsumer(new StretchConsumer()) .enableVertical() //仿 MIUI 拉伸效果的方向为:上下 2 个方向 .addConsumer(new SpaceConsumer()) .enableHorizontal() //仿 iOS 弹性留白效果的方向为:左右 2 个方向 ; SmartSwipeBack.activityBezierBack(application, null); //仿小米 MIUI 系统的贝塞尔曲线返回效果 SmartSwipeBack.activityStayBack(application, null); //仿手机 QQ 的手势滑动返回 SmartSwipeBack.activitySlidingBack(application, null); //仿微信带联动效果的透明侧滑返回 SmartSwipeBack.activityDoorBack(application, null); //侧滑开门样式关闭 activity SmartSwipeBack.activityShuttersBack(application, null); //侧滑百叶窗样式关闭 activity //xxxMode 第二个参数为 false,表示工作方向为纵向:下拉刷新&上拉加载更多 //如果第二个参数设置为 true,则表示工作方向为横向:右拉刷新&左拉加载更多 SmartSwipeRefresh.drawerMode(view, false).setDataLoader(loader); SmartSwipeRefresh.behindMode(view, false).setDataLoader(loader); SmartSwipeRefresh.scaleMode(view, false).setDataLoader(loader); SmartSwipeRefresh.translateMode(view, false).setDataLoader(loader);
-
SoloPi
Не требующий компьютера и изменений в приложении инструмент автоматизации Android. В публичной бета-версии есть запись и повтор действий, проверка производительности и управление несколькими устройствами с одного. У Android много версий и моделей устройств, поэтому выпуск зрелого приложения требует множества проверок. Инструмент сокращает время на повторяющиеся действия тестировщиков.

-
vhr
Система управления персоналом с раздельными клиентской и серверной частями на Spring Boot и Vue. Охватывает много рабочих сценариев и подходит как учебный проект для будущего фулстек-разработчика.

-
XUI
Простой и элегантный UI-фреймворк для нативных Android-приложений. Даёт разработчикам удобную библиотеку интерфейсных компонентов, похожую по роли на веб-библиотеки. Рассчитан на тех, кто уже знаком с Android-разработкой.

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

-
fullPage.js
Библиотека для быстрого создания сайтов с прокруткой между полноэкранными секциями, которые также называют одностраничными. Поддерживает и горизонтальную прокрутку. Подойдёт для полноэкранных страниц и эффектов параллакса, когда важно выразительное визуальное оформление. Пример:
<div id="fullpage"> <div class="section">Some section</div> <div class="section">Some section</div> <div class="section">Some section</div> <div class="section">Some section</div> </div>
-
PicGo
Настольный инструмент загрузки изображений на основе electron-vue. Поддерживает фотохостинги Weibo, Qiniu, Tencent Cloud COS, UpYun, GitHub, SM.MS, Alibaba Cloud OSS и Imgur. Загрузку можно начать горячей клавишей или перетаскиванием, после чего ссылка автоматически копируется в буфер обмена. Работает на macOS, Windows и Linux.

-
Valine
Быстрый и небольшой плагин комментариев JavaScript без собственного сервера. Хранит данные через API LeanCloud, аккуратно оформлен, поддерживает Markdown и эмодзи. Владельцы статических блогов на Hexo или Hugo могут добавить комментарии за несколько шагов.

-
webtorrent
Клиент для потокового воспроизведения торрентов на JavaScript. Позволяет смотреть видео, не дожидаясь полной загрузки, просто вставив ссылку на торрент. Есть настольные приложения для Windows, macOS и Linux.

Проекты на Python
-
bullet
Библиотека Python для ввода и меню в терминале. Поддерживает перемещение стрелками, выбор одного или нескольких пунктов, ввод пароля, настройку цветов и оформления. Ниже показано, как это выглядит.

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

-
PyUnit
Коллекция примеров кода для изучения Python. Содержит более 20 простых полезных методов и математических функций; большинство реализаций занимает около 100 строк, а для каждого класса есть тесты. Подойдёт новичкам для обучения и опытным разработчикам как основа для отдельных задач. Пример:
# 这是一个阳历转化农历的程序 from jtyoui.plunar import SC if __name__ == '__main__': lun = SC(year=2018, month=1, day=2) #阳历转农历 print(lun.y) # 农历的年,中文字符 二零一九 print(lun.year) # 农历的年,阿拉伯数字 2019 ... print(lun) # 二零一九年 七月 十四 星期四 无
Проекты на Ruby
-
overcommit
Настраиваемый менеджер Git-хуков. Хуки запускают дополнительные действия при событиях Git — например, add, commit или push — и позволяют проверять качество кода и стиль сообщений коммитов. Overcommit даёт настроить такие действия без программирования, через конфигурацию. Прост в использовании, хорошо документирован, снабжён примерами и поддерживается активным сообществом.

-
rest-client
HTTP-клиент для Ruby. На момент публикации у него было около 100 тысяч пользователей. Отличается удобным API, поддерживает распространённые HTTP-методы, загрузку файлов и работу через прокси. Для большинства методов есть примеры:
require 'rest_client' RestClient.get 'http://example.com/resource' RestClient.get 'http://example.com/resource', {:params => {:id => 50, 'foo' => 'bar'}} RestClient.get 'https://user:password@example.com/private/resource', {:accept => :json} RestClient.post 'http://example.com/resource', :param1 => 'one', :nested => { :param2 => 'two' } RestClient.post "http://example.com/resource", { 'x' => 1 }.to_json, :content_type => :json, :accept => :json RestClient.delete 'http://example.com/resource' response = RestClient.get 'http://example.com/resource' response.code ➔ 200 response.cookies ➔ {"Foo"=>"BAR", "QUUX"=>"QUUUUX"} response.headers ➔ {:content_type=>"text/html; charset=utf-8", :cache_control=>"private" ... response.to_str ➔ \n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n \"http://www.w3.org/TR/html4/strict.dtd\">\n\n<html .... RestClient.post( url, { :transfer => { :path => '/foo/bar', :owner => 'that_guy', :group => 'those_guys' }, :upload => { :file => File.new(path, 'rb') } })
Проекты на Swift
-
AppearancesSwitcher
Небольшая утилита для быстрого переключения светлой и тёмной темы macOS из Центра уведомлений.

Искусственный интеллект
-
Awesome-Multimodal-Research
Регулярно обновляемая подборка исследований мультимодальных систем. В реальном мире информация часто сочетает разные формы: изображения сопровождаются метками и описаниями, а текст иллюстрируется картинками. Их статистические свойства различаются: изображение можно описать интенсивностью пикселей или признаками, текст — дискретными векторами слов. Поэтому для исследований важно находить связи между модальностями.
-
Non-local_pytorch
Сторонняя реализация Non-local Net на PyTorch. Код короткий и понятный, но производительность пока не проверялась на крупных открытых наборах данных; есть пример на MNIST. Архитектура восходит к статье группы Kaiming He, которая привнесла механизм внимания в обработку изображений и повлияла на дальнейшие исследования. Facebook также открыл реализацию для классификации видео, но она написана на поддерживаемом компанией Caffe2.
-
numpy-cn
Перевод документации NumPy на китайский. Подойдёт для изучения библиотеки и как справочник. Новичкам рекомендуются материалы о принципах NumPy, первые уроки и способы создания массивов. В разделе дополнительных статей появляются материалы из разных стран; для самостоятельной реализации нейросетей есть статьи о NumPy, DNC, RNN и LSTM.
-
rasa
Фреймворк для многоходовых диалогов человека с компьютером. Состоит прежде всего из Rasa Core и Rasa NLU; поддерживает сценарии бесед, определение намерения и извлечение сущностей. Достаточно подготовить корпус в формате платформы, чтобы обучить модели. Число пользователей Rasa растёт, поэтому помимо официальной документации в сети можно найти учебные проекты.

Прочее
-
awesome-adb
Подборка способов использования ADB (Android Debug Bridge).
-
git-tips
Подборка часто используемых команд Git.
Открытые книги
-
OnJava8
Перевод книги «On Java 8» на китайский; также известна как «Философия Java».