Проекты на C#
-
FreeSql
Мощный ORM для C#, готовый к работе с .NET Core 2.1+ и .NET Framework 4.5+. Подходит и для простых, и для сложных сценариев. Поддерживает миграции CodeFirst, множество функций для выражений и разные базы данных; активно использует ExpressionTree для повышения производительности. Пример:
var t0 = fsql.Select<Tag>() .Where(a => a.Parent.Parent.Name == "粤语") .IncludeMany(a => a.Tags, then => then.Where(sub => sub.Name == "xxx")) .ToList(); var t3 = fsql.Select<Xxx>() .Where(a => a.IsDelete == 0) .WhereIf(keyword != null, a => a.UserName.Contains(keyword)) .WhereIf(role_id > 0, a => a.RoleId == role_id) .Where(a => a.Nodes.AsSelect().Any(t => t.Parent.Id == t.UserId)) .Count(out var total) .Page(page, size) .OrderByDescending(a => a.Id) .ToList()
Проекты на C++
-
marksentence
Инструмент для внимательной тренировки аудирования TOEFL. Позволяет сверять запись с текстом, отмечать непонятные фрагменты аудио и причины затруднений, чтобы потом возвращаться к ним при повторении.

-
pprint
Библиотека для красивого вывода данных в C++. По аналогии с pprint в Python улучшает форматирование базовых типов, строк, комплексных чисел, enum и контейнеров STL. Отступы и переносы строк делают структуру данных нагляднее. Пример:
#include <pprint.hpp> printer.print(std::map<std::string, std::set<int>>{{"foo", {1, 2, 3, 3, 2, 1}}, {"bar", {7, 6, 5, 4}}}); // 输出结果如下 { "bar" : {4, 5, 6, 7}, "foo" : {1, 2, 3} }
Проекты на CSS
-
RemixIcon
Бесплатная библиотека аккуратно нарисованных иконок, разрешённая для коммерческого использования. Разработчики и дизайнеры могут быстро найти иконки для сайта или приложения. В отличие от разнородных подборок, все иконки здесь разработаны специально для набора, причём у каждой есть сплошной и контурный варианты.

Проекты на Go
-
geziyor
Фреймворк распределённого веб-скрейпинга на Go. Пример:
func main() { geziyor.NewGeziyor(&geziyor.Options{ StartURLs: []string{"http://quotes.toscrape.com/"}, ParseFunc: quotesParse, // exporter 可以用来把最终结果存成各种格式,例如 json Exporters: []geziyor.Exporter{exporter.JSONExporter{}}, }).Start() } // 请求的结果直接进了一个管道处理函数,这样的函数可以串联起来,爬虫和清洗二合一 // 这样拆分爬虫逻辑,某些逻辑也可以重用 func quotesParse(g *geziyor.Geziyor, r *geziyor.Response) { r.HTMLDoc.Find("div.quote").Each(func(i int, s *goquery.Selection) { g.Exports <- map[string]interface{}{ "text": s.Find("span.text").Text(), "author": s.Find("small.author").Text(), } }) if href, ok := r.HTMLDoc.Find("li.next > a").Attr("href"); ok { g.Get(r.JoinURL(href), quotesParse) } } -
goalert
Система оповещений и обработки тревог на Go. Сигнал можно создать HTTP-запросом или вручную; уведомления приходят по SMS, телефону или электронной почте. Есть встроенная панель управления, так что система почти готова к работе сразу после установки. Команда для запуска:
docker run -it --rm -p 8081:8081 goalert/all-in-one 访问本地 8081 端口,用户名 admin,密码 admin123
-
olivia
Голосовой помощник с открытым кодом, похожий на Siri. Пока понимает только английский. Открытых голосовых помощников немного, а задача сложная; этот проект может стать основой для небольших приложений.

-
script
Сторонняя библиотека, которая упрощает работу с возможностями ОС в Go и обработку ошибок стандартного пакета os. Чтобы открыть файл, найти слово и подсчитать строки, обычно приходится несколько раз проверять ошибки. С ней достаточно:
numErrors, err := script.File("test.txt").Match("Error").CountLines() // 等同于 grep Error test.txt | wc -l -
unioffice
Библиотека для создания и редактирования документов Word, Excel и PowerPoint на Go. Пример:
dox := document.New() doc.X().Background = wordprocessingml.NewCT_Background() doc.X().Background.ColorAttr = &wordprocessingml.ST_HexColor{} doc.X().Background.ColorAttr.ST_HexColorRGB = color.RGB(50, 50, 50).AsRGBString()
Проекты на Java
-
Java
Подборка алгоритмов с подробным разбором встроенных реализаций Java. Помогает понять, как применять стандартные алгоритмы языка в повседневных задачах. Пояснения сопровождаются иллюстрациями.

-
Linkage-RecyclerView
Компонент связанных списков с двумя уровнями на архитектуре MVP. Части слабо связаны, компонент легко настроить и использовать. Благодаря вынесенной конфигурации можно менять и расширять поведение, не зная внутренних деталей. Без собственной конфигурации для запуска достаточно одной строки кода.

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

Проекты на JavaScript
-
AutoPiano
«Свободное пианино» — онлайн-инструмент на HTML5. Можно играть в перерывах между работой и учёбой; есть автоматическое воспроизведение мелодий и подсказки клавиш, которые облегчают обучение. Попробовать в браузере.
-
fe-interview
По четыре базовых вопроса для собеседования по фронтенду каждое утро. Поможет регулярно готовиться к интервью.
-
filepond
Библиотека загрузки файлов на JavaScript. Принимает файлы перетаскиванием, занимает мало места, быстро загружает и позволяет удобно управлять файлами. Делает загрузку проще для пользователя.

-
HitUP
Расширение Chrome для поиска популярных проектов. Заменяет пустую страницу новой вкладки и помогает следить за технологическими тенденциями. Главная функция — показ недавних популярных проектов GitHub; новые возможности добавляются с оглядкой на тему «находить лучшее».
-
wechat-format
Редактор оформления статей для публичных каналов WeChat. Быстро преобразует Markdown в HTML, подходящий для редактора публикаций WeChat: остаётся вставить результат. Оформление довольно простое, зато экономит время. Попробовать онлайн.
Проекты на Objective-C
-
OpenEmu
Эмулятор ретро-консолей для macOS, с которым можно вернуться к играм детства.

Проекты на PHP
-
FreshRSS
Бесплатная RSS-читалка на PHP для размещения на своём сервере. По отзывам, справляется с десятками тысяч подписок без заметных задержек. Поддерживает несколько аккаунтов, сторонние клиенты для Android и iOS и API Fever. В паре с RSSHub подойдёт активным пользователям RSS.

Проекты на Python
-
arrow
Библиотека Python для работы с датами, временем, часовыми поясами и переходами на летнее время. Упрощает создание, изменение и форматирование дат и времени, сокращая объём кода. Пример:
>>> import arrow >>> utc = arrow.utcnow() >>> utc <Arrow [2013-05-11T21:23:58.970460+00:00]> >>> utc = utc.replace(hours=-1) >>> utc <Arrow [2013-05-11T20:23:58.970460+00:00]> >>> local = utc.to('US/Pacific') >>> local <Arrow [2013-05-11T13:23:58.970460-07:00]> >>> arrow.get('2013-05-11T21:23:58.970460+00:00') <Arrow [2013-05-11T21:23:58.970460+00:00]> >>> local.timestamp 1368303838 -
GithubMonitor
Инструмент для обнаружения утечек корпоративных данных через GitHub. Формирует поисковые запросы из заданных ключевых слов и имён хостов, отслеживает публикации через API GitHub и отправляет письмо при обнаружении чувствительной информации.
-
manim
Движок для создания учебных видео по математике. Позволяет программно строить выразительную анимацию, чтобы объяснять сложные идеи наглядно — как в роликах
3Blue1Brown. Чтобы освоить инструмент и получить хороший результат, придётся потратить время.

-
psutil
Кроссплатформенная библиотека для мониторинга процессов и системных ресурсов. Показывает сведения о запущенных процессах, загрузке CPU, памяти, дисков и сети. Реализует многие возможности утилит ps, top, lsof, netstat и ifconfig; работает на Linux, Windows и macOS. Позволяет автоматизировать такую диагностику скриптами Python. Пример просмотра памяти:
>>> psutil.virtual_memory() svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, active=4748992512, inactive=2758115328, buffers=790724608, cached=3500347392, shared=787554304) >>> psutil.swap_memory() sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944) -
you-get
Инструмент загрузки видео на Python. Помогает скачивать ролики даже с сайтов, где обычные способы не работают; подробности есть в описании проекта.
(env) ➜ ~ you-get 'https://v.ifeng.com/c/7msWmwppMPC' Site: ifeng.com Title: 完整版第五期:陈晓卿 中国有俩行当门槛极低——美食圈和摄影圈 Type: MPEG-4 video (video/mp4) Size: 0.01 MiB (8578 Bytes) Downloading 完整版第五期:陈晓卿 中国有俩行当门槛极低——美食圈和摄影圈.mp4 100% ( 0.0/ 0.0MB) ├████████████████████┤[1/1] 71 kB/s
Проекты на Ruby
-
pagy
Очень быстрая библиотека пагинации для Ruby. Производительная, простая в использовании и гибко настраиваемая; для разбивки на страницы нужно совсем немного кода. Подробная документация поможет добавить пагинацию в приложение без собственной реализации.
Проекты на Swift
-
timer-app
Простой таймер для macOS. Время задаётся перетаскиванием синей стрелки; по истечении срока появляется уведомление и звучит приятный сигнал.

Искусственный интеллект
-
awesome-bert
Подборка статей, приложений и ресурсов по BERT и обработке естественного языка (NLP). Помогает следить за развитием области и быстрее приступать к исследованиям.
-
deeplearning-models
Коллекция архитектур, моделей и приёмов глубокого обучения для TensorFlow и PyTorch в блокнотах Jupyter. Подойдёт для изучения темы на примерах.
-
ImageMiniLab
Мини-лаборатория для экспериментов, обработки и анализа изображений. Реализована на PyQt5 и opencv-python; код короткий и понятный. Позволяет быстро показать работу алгоритмов обработки изображений и помогает начать изучение компьютерного зрения.

-
PyTorch-NLP
Набор инструментов PyTorch-NLP, или torchnlp, для быстрого создания прототипов. Содержит готовые слои нейросетей, средства обработки текста и наборы данных, ускоряя исследования и практику в обработке естественного языка. Пример:
# Load a Dataset from torchnlp.datasets import imdb_dataset # Load the imdb training dataset train = imdb_dataset(train=True) train[0] # RETURNS: {'text': 'For a movie that gets..', 'sentiment': 'pos'} # Apply Neural Networks Layers import torch from torchnlp.nn import LockedDropout input_ = torch.randn(6, 3, 10) dropout = LockedDropout(0.5) # Apply a LockedDropout to `input_` dropout(input_) # RETURNS: torch.FloatTensor (6x3x10) -
xlnet
Новая предобученная модель XLNet от CMU и Google Brain. На момент публикации она превзошла BERT в 20 задачах и показала лучший результат в 18 из них. Авторы открыли код обучения и большую предобученную модель для экспериментов.
Прочее
-
ChineseBQB
Коллекция картинок и мемов для переписок.
-
fe-necessary-book
Подборка технических книг и других полезных разработчику ресурсов. Авторы время от времени добавляют программы, инструменты, сообщества и даже материалы о знакомствах. Можно заглянуть на досуге.
-
most-frequent-technology-english-words
Список распространённых английских технических слов, которые часто встречаются в книгах, документации и статьях по программированию. Помогает разработчикам с разным уровнем английского освоить нужную лексику и свободнее читать технические тексты.
-
papers-notebook
Заметки о научных работах по распределённым системам, виртуализации, контейнерам и машинному обучению. Подойдут для знакомства с исследованиями в этих областях.
Открытые книги
-
The-Hacker-Playbook-3-Translation
Перевод на китайский книги «The Hacker Playbook 3: Практическое руководство по тестированию на проникновение для красных команд».