Сжатие Docker-образов и движок ретро-игр

Выпуск № 37 ·

Проекты на C#

  1. RemoteDesktopManage

    Утилита для управления удалёнными рабочими столами Windows через MSTSC. Объединяет несколько конфигураций в одном приложении: позволяет распределять подключения по группам, добавлять метки, одновременно подключаться к нескольким компьютерам и переключаться между ними.

    RemoteDesktopManage

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

  1. tinytetris

    «Тетрис» для терминала на C++. Исходный код доступен в двух вариантах — с подробными комментариями и в виде библиотеки; обилие пояснений помогает разобраться в устройстве игры.

    tinytetris

Проекты на Go

  1. akutan

    Распределённая графовая база данных с открытым кодом от eBay. Одна из немногих графовых БД, которые по-прежнему поддерживают SPARQL.

  2. kratos

    Набор инструментов для микросервисов на Go от Bilibili (китайского видеохостинга). Включает фреймворк и связанные с микросервисами утилиты, решает проблемы адаптации Gin к микросервисной архитектуре и дополняет её экосистему. Быстрый старт.

    kratos
  3. overlord

    Прокси и платформа управления кластерами Memcache и Redis Cluster на Go. Помогает автоматизировать работу отказоустойчивого кеша и включает графический интерфейс для управления кластерами. Инструкция по установке.

    overlord
  4. slim

    Утилита для автоматического уменьшения Docker-образов. Значительно сокращает их размер и облегчает распространение. Команда: docker-slim build --http-probe your-name/your-app. Пример сокращения образов Node.js:

    from ubuntu:14.04 - 432MB => 14MB (缩减了 30.85 倍)
    
    from debian:jessie - 406MB => 25.1MB (缩减了 16.21 倍)
    
    from node:alpine - 66.7MB => 34.7MB (缩减了 1.92 倍)

Проекты на Java

  1. cim

    Система мгновенного обмена сообщениями для разработчиков. Общаться можно через консольную утилиту, а набор компонентов позволяет расширять и настраивать функции. Ниже — схема архитектуры:

    cim
  2. giffun

    Android-приложение с открытым кодом для просмотра и обмена GIF. Интерфейс выполнен в стиле Material Design, а вокруг GIF построена небольшая социальная сеть. Возможности:

    • Просматривать популярные забавные GIF.
    • Подписываться на людей и следить за их публикациями.
    • Публиковать собственные GIF одним нажатием.
    • Ставить отметки «Нравится» и комментировать.
    • Пересылать понравившиеся материалы в популярные социальные сети.
    giffun
  3. incubator-seata

    Комплексное решение для распределённых транзакций. Делает работу с ними столь же простой и эффективной, как с локальными транзакциями, и постепенно решает связанные с ними трудности. Проблема известна давно, но удобных решений было мало, а некоторые стоили дорого. Открытый код Seata от Ant Financial делает технологию доступной всем, кому она нужна; проект стоит изучить и попробовать. Ниже — схема работы:

    incubator-seata
  4. SpringAll

    Руководство по исходному коду семейства Spring, включая Spring Boot и Spring Cloud. Spring — один из самых востребованных фреймворков Java; сочетание материалов с разбором кода облегчает обучение.

Проекты на JavaScript

  1. emoji-minesweeper

    «Сапёр» с эмодзи. Идея игры необычна, а код занимает чуть больше 300 строк, поэтому проект подойдёт начинающим для изучения.

    emoji-minesweeper
  2. leetcode

    Библиотека структур данных и алгоритмов с уклоном в задачи фронтенда. На примере задач LeetCode подробно объясняет структуры данных и решения на JavaScript. В дальнейшем автор планирует добавить темы, ещё ближе связанные с фронтендом: например, связь реализации react fiber со списками и react hooks с массивами.

    • Первая часть: разбор классических задач LeetCode с идеями, ключевыми моментами и кодом решений.
    • Вторая часть: обобщение материалов по структурам данных и алгоритмам.
    • Третья часть: карточки Anki с задачами LeetCode для запоминания.
  3. squoosh

    Инструмент с открытым кодом от Google для сжатия изображений. Быстро уменьшает файлы разных форматов, сохраняя качество: в примере изображение размером 6,63 МБ сократилось до 2,92 МБ. Пользоваться им просто.

    squoosh
  4. xgplayer

    HTML5-видеоплеер с парсером от Xigua Video компании ByteDance, способный экономить трафик. Его можно использовать отдельно или как компонент H5, Vue либо React. Интерфейс построен из независимых компонентов, которые легко отделять и настраивать. Плеер берёт на себя загрузку и буферизацию видео, поддержку форматов и преобразование на стороне клиента. Он динамически добавляет воспроизведение MP4 по частям даже там, где оно изначально не поддерживается. Исходное видео преобразовывать не нужно, дополнительной нагрузки на сервер нет. Официальный сайт. Пример кода:

    //  安装:$ npm install xgplayer
    // 第一步:<div id="vs"></div>
    // 第二步:
    import Player from 'xgplayer';
    
    const player = new Player({
        id: 'vs',
        url: 'http://s2.pstatp.com/cdn/expire-1-M/byted-player-videos/1.0.0/xgplayer-demo.mp4'
    })
  5. zhui

    Библиотека компонентов в традиционном китайском стиле. Удобных библиотек много, но оригинальная идея выделяет эту среди них.

    zhui

Проекты на Python

  1. ffmpeg-python

    Библиотека Python для FFmpeg. С её помощью можно управлять обработкой аудио и видео через FFmpeg — программу с открытым кодом для записи, преобразования и потоковой передачи цифрового звука и видео. Пример кода:

    # 水平翻转视频
    import ffmpeg
    stream = ffmpeg.input('input.mp4')
    stream = ffmpeg.hflip(stream)
    stream = ffmpeg.output(stream, 'output.mp4')
    ffmpeg.run(stream)
    ffmpeg-python
  2. pyright

    Быстрый инструмент статической проверки типов Python от Microsoft. Подходит для крупных проектов. Как замечает автор, динамические языки удобны, пока не приходится перерабатывать код.

  3. pyxel

    Движок ретро-игр на Python. Пример кода:

    # 代码中导入 Pyxel 模块后
    import pyxel
    # 首先使用 init 函数指定窗口大小
    pyxel.init(160, 120)
    
    def update():
        if pyxel.btnp(pyxel.KEY_Q):
            pyxel.quit()
    
    def draw():
        pyxel.cls(0)
        pyxel.rect(10, 10, 20, 20, 11)
    # 最后然后使用 run 函数启动 Pyxel 应用程序
    pyxel.run(update, draw)
    pyxel

Проекты на Ruby

  1. githubchart-api

    Генератор изображения графика активности по истории вкладов в GitHub. Одной строкой кода можно показать свою активность на любом сайте. Пример:

    <img src="http://ghchart.rshah.org/用户名" alt="Github commit chart" />
    githubchart-api
  2. guides

    Руководство по стилю Ruby. Единые правила оформления облегчают поддержку и развитие кода и полезны разработчикам на Ruby.

Проекты на Swift

  1. GodEye

    Мониторинг приложения одной строкой кода. Показывает логи, сбои, сетевую активность, ANR, утечки, загрузку CPU, сведения о папках и другую информацию — словно за приложением наблюдает всевидящее око.

    GodEye

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

  1. FaceDetection-DSFD

    Новый алгоритм двухветвевого детектора лиц DSFD от Tencent Youtu, принятый на конференцию по компьютерному зрению CVPR 2019. В нём три основных новшества:

    1. Новый модуль улучшения признаков FEM (Feature Enhance Module).
    2. Постепенное обучение с функцией потерь для иерархических якорей PLA (Progressive Anchor Loss).
    3. Улучшенная стратегия сопоставления якорей (Improved Anchor Matching Strategy).
    FaceDetection-DSFD
  2. ICCV2019-LearningToPaint

    Исследовательский проект по глубокому обучению с подкреплением: учит машину рисовать кистью. Можно попробовать создать собственный рисунок или получить весь процесс рисования по готовому изображению.

    ICCV2019-LearningToPaint
  3. openpose

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

    openpose
  4. SPADE

    Новый инструмент для рисования с открытым кодом от NVIDIA. С помощью генеративно-состязательной сети создаёт реалистичные изображения по нескольким простым линиям.

    SPADE

Прочее

  1. awesome-scalability

    Систематизированный список материалов о том, как устроены масштабируемые, отказоустойчивые и высокопроизводительные крупные системы. Каждый раздел основан на реальных примерах систем, проверенных миллионами и даже миллиардами пользователей. Полезное чтение для инженеров.

  2. libpku

    Собранные сторонними авторами учебные материалы Пекинского университета. Охватывают профильные, факультативные и общеобразовательные курсы.

  3. nginx-admins-handbook

    Руководство по повышению производительности и безопасности Nginx. Содержит шаги, которые помогут добиться оценки A+ для сайта в SSL Labs.

  4. REKCARC-TSC-UHT

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

  5. SJTU-Courses

    Подборка учебных материалов Шанхайского университета Цзяотун.

  6. wechat-miniapp-radar

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

  7. zju-icicles

    Подборка материалов по курсам Чжэцзянского университета: занятия, задания, ответы, материалы для повторения и советы по выбору курсов. Полезна студентам университета и тем, кто готовится туда поступать в магистратуру.

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

  1. prometheus-book

    «Руководство по работе с Prometheus» («Prometheus caozuo zhinan»). Читать онлайн.

  2. the-craft-of-selfteaching

    «Самообучение — это ремесло» («Zixue shi men shouyi») — опыт самостоятельного освоения программирования для начинающих. Учебных материалов много, но новичку особенно трудно научиться учиться самому. Книга помогает сделать первый шаг.