Проекты на C
-
TIC-80
Эмулятор и движок ретро-игр. TIC-80 работает на Windows, Linux, macOS и других популярных платформах. Он не только запускает множество небольших ретро-игр, но и позволяет создавать собственные: поддерживает несколько языков программирования и включает редакторы карт и звука. Настоящий «волшебный мини-компьютер» из прошлого.

Проекты на C#
-
tilt-brush
Открытый VR-инструмент для рисования от Google. Позволяет создавать всевозможные работы в виртуальном трёхмерном пространстве и поддерживает популярные VR-устройства.

Проекты на C++
-
winmerge
Инструмент для сравнения и слияния файлов в Windows, написанный на C++. Сравнивает файлы и папки, наглядно показывает различия между двумя и даже тремя версиями и прост в использовании.

Проекты на Go
-
bild
Библиотека алгоритмов обработки изображений, целиком написанная на Go. Пример кода:
package main import ( "github.com/anthonynsimon/bild/effect" "github.com/anthonynsimon/bild/imgio" "github.com/anthonynsimon/bild/transform" ) func main() { img, err := imgio.Open("input.jpg") if err != nil { fmt.Println(err) return } inverted := effect.Invert(img) resized := transform.Resize(inverted, 800, 800, transform.Linear) rotated := transform.Rotate(resized, 45, nil) if err := imgio.Save("output.png", rotated, imgio.PNGEncoder()); err != nil { fmt.Println(err) return } } -
darwinkit
Go-библиотека с обёртками для API Apple и macOS. С ней приложение «Помодоро» для строки меню macOS можно написать менее чем в 80 строках кода — посмотреть исходный код.

-
gin-vue-admin
Панель администрирования на Gin и Vue. Название сразу объясняет назначение проекта. Автор также подготовил бесплатные обучающие видео — хороший вариант для тех, кто ищет практический проект на Go.

-
pyroscope
Открытая платформа непрерывного профилирования в реальном времени на Go. Достаточно добавить в исходный код несколько строк, чтобы pyroscope помог найти проблемы с производительностью и причины высокой загрузки CPU, а затем показал результаты на множестве графиков и в деревьях вызовов. Поддерживает Go, Python и Ruby; есть описание на китайском.

Проекты на Java
-
dbeaver
Настольный инструмент для управления популярными базами данных. Написан на Java и работает с любой БД, для которой существует JDBC-драйвер. У проекта есть бесплатная Community Edition и платная Enterprise Edition, но возможностей бесплатной версии большинству пользователей вполне достаточно.

-
fizz-gateway-node
Шлюз микросервисов на Java. Поддерживает динамическую оркестрацию сервисов, автоматический выбор авторизации, онлайн-тестирование, мониторинг и панель управления. Помогает компаниям управлять API, уменьшать дублирование кода и повышать стабильность сервисов.

-
jsoup
Java-библиотека для загрузки и разбора HTML. Она уже хорошо известна, а разобраться с ней настолько просто, что достаточно взглянуть на пример кода.
Document doc = Jsoup.connect("https://en.wikipedia.org/").get(); log(doc.title()); Elements newsHeadlines = doc.select("#mp-itn b a"); for (Element headline : newsHeadlines) { log("%s\n\t%s", headline.attr("title"), headline.absUrl("href")); } -
Recaf
Редактор байт-кода Java. Позволяет работать с байт-кодом почти как с обычным исходным кодом. Если тема вам незнакома, сначала стоит изучить материалы по байт-коду, а уже затем экспериментировать с проектом.

-
Sa-Token
Лёгкий Java-фреймворк для аутентификации и управления правами. Прост в освоении и расширении, быстро решает задачи входа в систему, проверки прав, управления сессиями и другие связанные с доступом вопросы. Пример кода:
// 在登录时写入当前会话的账号 ID StpUtil.setLoginId(10001); // 然后在任意需要校验登录处调用以下 API:如果当前会话未登录 // 这句代码会抛出 `NotLoginException` 异常 StpUtil.checkLogin(); // 还有以下功能 StpUtil.logoutByLoginId(10001); // 让账号为 10001 的会话注销登录(踢人下线) StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回 true 或 false StpUtil.setLoginId(10001, "PC"); // 指定设备标识登录 StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响) StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
Проекты на JavaScript
-
folio-2019
Открытый проект трёхмерного портфолио. Пользователь выбирает статьи, управляя маленькой машиной; поездку сопровождают звуки автомобиля, столкновения с кирпичами и другие эффекты. Выглядит впечатляюще — попробовать в браузере.

-
instant.page
JavaScript-библиотека, ускоряющая загрузку страниц с помощью предварительной загрузки. Работает на компьютерах и мобильных устройствах: начинает загружать страницу при наведении указателя на ссылку на компьютере или при появлении ссылки на экране смартфона. Благодаря этому после нажатия страница открывается быстрее. Для подключения достаточно добавить на сайт фрагмент HTML-кода.
<script src="//instant.page/5.1.0" type="module" integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
-
majestic
Удобный и красивый графический интерфейс для JavaScript-фреймворка тестирования Jest. Тесты писать необходимо, а приятный интерфейс запуска хотя бы немного облегчает работу над модульными тестами.

-
monitor
Лёгкая фронтенд-библиотека для сбора действий пользователей и ошибок на странице. По словам сопровождающего проекта, платформа для просмотра данных и серверная часть пока не открыты: компания ещё выбирает лицензию. Возможности клиентской части:
- Отправка ошибок запросов и кода.
- Сбор данных о нажатиях и переходах пользователей.
- Поддержка React, Vue и мини-приложений WeChat.

-
node-jvm
Реализация JVM на Node.js. Код проекта прост и понятен, а в каталоге examples есть примеры запуска Java-кода и все необходимые файлы.

Проекты на PHP
-
actionview
Открытая платформа для отслеживания задач и требований, похожая на Jira. Фронтенд построен на React и Redux, а серверная часть — на PHP-фреймворке Laravel.

Проекты на Python
-
alive-progress
Новая эффектная полоса прогресса для Python. Поддерживает Python 2.7–3.8. Пример кода:
# 安装:pip install alive-progress from alive_progress import alive_bar with alive_bar(total) as bar: # declare your expected total for item in items: # iterate as usual over your items ... # process each item bar() # call after consuming one item
-
blind_watermark
Python-библиотека для добавления скрытых водяных знаков на изображения. Такой знак незаметен глазу и извлекается программно: это невидимая «печать» для поиска источника утечек и защиты авторских прав. Библиотеку выпустила команда безопасности Alibaba. Её сильные стороны:
- Для извлечения знака не требуется исходное изображение.
- Обрезка и поворот изображения не уничтожают скрытый знак.
- Поддерживается шифрование паролем.
from blind_watermark import WaterMark bwm_obj = WaterMark(password_wm=1, password_img=1) # 原图 bwm_obj.read_img('pic/原图.jpg') # 水印图 bwm_obj.read_wm('pic/水印.png') # 打水印后的图 bwm_obj.embed('output/结果.png') # 注意需要设定水印的长宽 wm_shape bwm_objextract(filename='output/结果.png', wm_shape=(120, 120), out_wm_name='output/解出的水印.png', )
-
PyG2Plot
Библиотека визуализации для Python 3, оборачивающая G2Plot. G2Plot — открытая библиотека визуальной аналитики от Ant Group, основанная на классификации диаграмм и включающая более 25 распространённых типов. Python-обёртка проста и готова к работе сразу после установки.
from pyg2plot import Plot line = Plot("Line") line.set_options({ "height": 400, # set a default height in jupyter preview "data": [ { "year": "1991", "value": 3 }, { "year": "1992", "value": 4 }, { "year": "1993", "value": 3.5 }, { "year": "1994", "value": 5 }, { "year": "1995", "value": 4.9 }, { "year": "1996", "value": 6 }, { "year": "1997", "value": 7 }, { "year": "1998", "value": 9 }, { "year": "1999", "value": 13 }, ], "xField": "year", "yField": "value", }) line.render_notebook()
-
requests-html
Удобная Python-библиотека для разбора HTML. При создании парсеров обычно используют BeautifulSoup, lxml или селекторы Scrapy, но теперь есть ещё один вариант — requests-html. Она поддерживает XPath, CSS-селекторы, динамические страницы и фильтрацию содержимого, а освоить её очень легко. Автор HelloGitHub использовал библиотеку в своём парсере Hydra, и разбирать HTML стало гораздо проще. Примеры полезных функций:
# 找出元素下的所有链接 about.absolute_links {'http://brochure.getpython.info/', 'https://www.python.org/about/quotes/', 'https://www.python.org/about/help/'} # 匹配内容 >>> r.html.search('Python is a {} language')[0] programming # 直接提取属性的值 >>> about.attrs {'id': 'about', 'class': ('tier-1', 'element-1'), 'aria-haspopup': 'true'} # 呈现加载 JS 后的动态内容 r.html.render() -
vcrpy
Библиотека, которая перехватывает HTTP-запросы и возвращает заранее подготовленные локальные данные. Подобно вставленной кассете, декоратор перехватывает вызов функции и сразу подставляет данные из файла по указанному локальному пути. Это ускоряет тесты и делает их результат предсказуемым.
@vcr.use_cassette('fixtures/vcr_cassettes/synopsis.yaml') def test_iana(): response = urllib2.urlopen('http://www.iana.org/domains/reserved').read() assert 'Example domains' in response
Проекты на Swift
-
Maccy
Лёгкий менеджер буфера обмена для macOS. Хранит историю скопированных данных, поддерживает быстрый поиск и выбор записей горячими клавишами.

-
SQLite.swift
Лёгкий фреймворк для SQLite3, целиком написанный на Swift. Цепочки вызовов делают управление базой данных лаконичным и выразительным. Код легко понять, а выполнять запросы можно даже без знания SQL.
import SQLite let db = try Connection("path/to/db.sqlite3") let users = Table("users") let id = Expression<Int64>("id") let name = Expression<String?>("name") let email = Expression<String>("email") try db.run(users.create { t in t.column(id, primaryKey: true) t.column(name) t.column(email, unique: true) }) // CREATE TABLE "users" ( // "id" INTEGER PRIMARY KEY NOT NULL, // "name" TEXT, // "email" TEXT NOT NULL UNIQUE // )
Искусственный интеллект
-
avatarify-python
Инструмент для замены лица в реальном времени во время видеоконференций. Модель машинного обучения отслеживает движения лица, совмещает их с изображением и выводит результат без задержки. Поддерживает OBS, Zoom, Skype, Teams, Slack и другие программы для трансляций и конференций.

Прочее
-
AndroidSDK
Docker-образ с полноценным окружением Android SDK. Подходит для разных сценариев непрерывной интеграции Android: запуска приложений в эмуляторе, автоматизированного тестирования интерфейса и подключения к облачным сервисам тестирования. Это один из вариантов контейнеризации сборки Android, не нарушающий лицензионное соглашение; проект представляли на официальной конференции DockerCon EU 2017.

-
awesome-macos-command-line
Сборник shell-команд для необычных и полезных действий в macOS. Если задачу можно решить одной командой, незачем долго искать нужные пункты и нажимать кнопки.
-
coding-fonts
Минималистичный сайт с описаниями и демонстрацией шрифтов для программирования. Попробовать онлайн.

-
computer-science
Открытый онлайн-университет с бесплатными материалами для самостоятельного изучения информатики. В проект входят не только видео, но и учебный план с расписанием, а большинство курсов подготовлено известными университетами мира. Все материалы на английском, однако знание языка всё равно необходимо программисту.

-
data-engineer-roadmap
Карта обучения для инженера данных.

-
docker-curriculum
Учебник по Docker для начинающих. Читать онлайн.

-
github1s
Инструмент для быстрого чтения кода проектов GitHub в онлайн-версии VS Code. Если GitHub или клонирование репозитория работают медленно, добавьте 1s после github в адресе проекта — код откроется в браузере без ожидания.

-
qwerty-learner
Удобный и увлекательный сайт для запоминания слов во время тренировки печати. Многие интуитивно считают, что умеющий забивать сверху хорошо играет в баскетбол, а быстро печатающий силён в программировании. Если верить такой логике, проект поможет и выучить слова, и стать сильнее в программировании.
