Новый терминал Windows и города на автобусных маршрутах

Выпуск № 38 ·

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

  1. terminal

    Новый терминал Microsoft для Windows с открытым кодом: современный, быстрый и функциональный. Поддерживает привычные команды, вкладки, форматированный текст, локализацию и настройку тем и оформления. Неудобный терминал долго отпугивал разработчиков от Windows; теперь система выглядит куда привлекательнее.

    terminal

Проекты на Go

  1. CovenantSQL

    Децентрализованная реляционная SQL-база с возможностями блокчейна. Позволяет предоставлять базу как услугу (DBaaS), а распределённое хранение помогает защитить данные пользователей. Есть документация на китайском; на macOS можно установить командой brew install cql.

    CovenantSQL
  2. diving

    Графический интерфейс для анализа Docker-образов на основе dive. Показывает изменения на каждом слое — добавленные, изменённые и удалённые файлы — и размер данных пользовательских слоёв. Позволяет просматривать сведения об образе и дерево файлов каждого слоя; пригодится для уменьшения размера образа.

    diving
  3. gameboy.live

    Эмулятор Game Boy с возможностью играть удалённо через сокет.

    # 下载
    git clone https://github.com/HFO4/gameboy.live.git
    # 运行
    cd gameboy.live
    go build -o gbdotlive main.go
    
    # 命令说明
    Usage of gbdotlive:
      -G    Play specific game in Fyne GUI mode  # 用 Fyne GUI 模式玩游戏,会弹出一个窗口
      -c config # 配置文件路径
            Set the game option list config file path
      -d    Use Debugger in GUI mode # GUI 的 debug 模式
      -f FPS
            Set the FPS in GUI mode (default 60) # FPS 设定
      -g    Play specific game in GUI mode (default true) # 是否默认启动 GUI
      -h    This help # 显示帮助
      -m    Turn on sound in GUI mode (default true) # GUI 模式下是否有声音
      -p port
            Set the port for the cloud-gaming server (default 1989) # 默认监听端口,可以用 Telnet 玩
      -r ROM # 游戏 ROM 的路径
            Set ROM file path to be played in GUI mode
      -s    Start a cloud-gaming server # 启动服务器,用 Telnet 玩
    gameboy.live
  4. golang-developer-roadmap

    План обучения для будущих Go-разработчиков. Есть версия на китайском.

  5. nic

    Удобная библиотека для HTTP-запросов. Оборачивает стандартную библиотеку Go в простой API: отправлять запросы и работать с заголовками и cookies становится легче. Для Go это примерно то же упрощение, которое Python Requests даёт по сравнению с urllib. Пример:

    resp, err := nic.Get("http://example.com", nil)
    if err != nil {
        log.Fatal(err.Error())
    }
    fmt.Println(resp.Text)
  6. redis-tui

    Красочный текстовый интерфейс для работы с Redis в терминале.

    redis-tui
  7. scheduler

    Библиотека для планирования задач на Go. Подходит для запуска заданий по расписанию, а новичкам помогает освоить стандартные пакеты time и reflect. Есть документация на китайском.

Проекты на Java

  1. Android-BLE

    Библиотека для Bluetooth на Android: поиск устройств, подключение, подписка на уведомления, отправка, чтение и приём данных, обновление прошивки по воздуху (OTA). Подключается к проекту почти одной строкой кода, расширяется и настраивается. Подходит для Bluetooth LE 4.0; начать работу с ней за несколько минут сможет даже новичок.

    Android-BLE
  2. generator-jhipster

    Генератор приложений с открытым кодом: за считаные секунды создаёт проект на Spring Boot с Angular или React. Автоматически собирает полноценное веб-приложение или архитектуру микросервисов и ускоряет разработку. Возможности и стек:

    • Сервер на Spring Boot — производительный и надёжный стек Java.
    • Современный интерфейс на Angular, React и Bootstrap с приоритетом мобильных устройств.
    • Микросервисы на JHipster Registry, Netflix OSS, стеке ELK и Docker.
    • Процесс сборки на Yeoman, Webpack и Maven или Gradle.
  3. Gloading

    Компонент экранов загрузки для Android с глубокой развязкой частей приложения. Возможности:

    • Отделяет общие для приложения экраны загрузки, ошибки и отсутствия данных.
    • Разделяет реализацию представлений состояний и их использование.
    • Не требует добавлять представление состояния в разметку каждой страницы.
    • Показывает состояние загрузки как для Activity, так и для отдельного View.
    Gloading.initDefault(new GlobalAdapter());
    Gloading.Holder holder = Gloading.getDefault().wrap(activity).withRetry(retryTask);
    Gloading.Holder holder = Gloading.getDefault().wrap(view).withRetry(retryTask);
    
    //显示加载中的UI状态
    holder.showLoading() 
    
    //显示加载成功的UI状态
    holder.showLoadSuccess()
    
    //显示加载失败的UI状态
    holder.showFailed()
    
    //显示加载成功,但数据未空的UI状态
    holder.showEmpty()
    Gloading
  4. rhizobia_J

    Открытые компанией Momo правила безопасной разработки на Java и SDK.

Проекты на JavaScript

  1. ieaseMusic

    Сторонний клиент NetEase Cloud Music на основе API сервиса для Linux и macOS. Зрелое настольное приложение на JavaScript с привлекательным интерфейсом и большой музыкальной библиотекой.

    ieaseMusic
  2. practice

    Подробные руководства по созданию разных проектов на популярных фронтенд-стеках помогут быстро освоить технологии. Несмотря на название Practice, здесь собраны практические примеры работы с востребованными фреймворками и процессом разработки, близким к рабочему. Подойдёт для обучения.

  3. ts-utility-plugins

    Практические руководства по созданию эффектов, плагинов и прикладной логики на чистом TypeScript. Показывают, как обойтись без фреймворков.

Проекты на PHP

  1. PHP-Interview-QA

    «Вопросы и ответы для собеседования по PHP» — систематизированный сборник вопросов из реальных собеседований с краткими и точными ответами. Поможет подготовиться к поиску работы PHP-разработчиком. Темы: сетевые протоколы, структуры данных и алгоритмы, основы PHP, веб-разработка, MySQL, Redis, рассказ о себе, причины ухода с прошлой работы и карьерные планы.

  2. wizard

    Система управления документацией с открытым кодом на Laravel. Уже используется в нескольких компаниях. Поддерживает Markdown, документацию Swagger и корпоративную единую авторизацию через LDAP.

    wizard

Проекты на Python

  1. city-vein

    Визуализация структуры города по маршрутам общественного транспорта. Показывает устройство более 30 городов. В репозитории есть скрипты для получения и обработки данных; наглядный результат помогает увидеть пользу визуализации и может вдохновить на изучение программирования. Посмотреть в браузере.

    city-vein
  2. PySnooper

    Библиотека для отладки Python. Декоратор показывает результат выполнения каждой строки без ручной вставки print для вывода промежуточных данных. Пример:

    import pysnooper
    
    @pysnooper.snoop()
    def number_to_bits(number):
        if number:
            bits = []
            while number:
                number, remainder = divmod(number, 2)
                bits.insert(0, remainder)
            return bits
        else:
            return [0]
    
    number_to_bits(6)
    # 输出如下
    Starting var:.. number = 6
    15:29:11.327032 call         4 def number_to_bits(number):
    15:29:11.327032 line         5     if number:
    15:29:11.327032 line         6         bits = []
    New var:....... bits = []
    15:29:11.327032 line         7         while number:
    15:29:11.327032 line         8             number, remainder = divmod(number, 2)
    New var:....... remainder = 0
    Modified var:.. number = 3
    ....
  3. Python-100-Days

    «Python за 100 дней: от новичка до мастера» — доступный вводный курс с плавным ростом сложности. Подойдёт даже тем, кто раньше не занимался программированием.

  4. Zvm

    Простая JVM на Python. Реализованы разбор class-файлов, загрузка классов, область данных времени выполнения, интерпретатор инструкций, базовый набор команд, упрощённые сборщик мусора, потоки и библиотека JDK. Может выполнять простые Java class-файлы. Небольшой объём кода и ясная структура модулей помогают изучить устройство и реализацию JVM.

Проекты на Ruby

  1. huginn

    Инструмент автоматизации задач на Ruby. Следит за событиями и выполняет заданные действия по принципу IFTTT: например, проверяет погоду и напоминает в WeChat взять зонт, сообщает о новых главах романа или сериях аниме, собирает и отправляет подборки информации. У проекта стабильная основа и активное сообщество; он помогает автоматизировать повседневные дела.

    huginn

Проекты на Swift

  1. Brooklyn

    Эффектная заставка для компьютеров Apple.

    Brooklyn
  2. PopMenu

    Простой и красивый компонент всплывающего меню с гибкой настройкой. Подойдёт, если приложению нужно удобное меню, внешний вид которого можно менять.

    PopMenu

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

  1. BentoML

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

    %%writefile iris_classifier.py
    from bentoml import BentoService, api, env, artifacts
    from bentoml.artifact import PickleArtifact
    from bentoml.handlers import DataframeHandler
    
    # You can also import your own python module here and BentoML will automatically
    # figure out the dependency chain and package all those python modules
    
    @artifacts([PickleArtifact('model')])
    @env(conda_pip_dependencies=["scikit-learn"])
    class IrisClassifier(BentoService):
    
        @api(DataframeHandler)
        def predict(self, df):
            # arbitrary preprocessing or feature fetching code can be placed here 
            return self.artifacts.model.predict(df)
  2. lihang-code

    Слайды и код к классической книге по машинному обучению «Методы статистического обучения». Материал идёт от конкретных задач и примеров к более сложным идеям, содержит необходимые математические выкладки и помогает понять суть методов и научиться их применять.

  3. maskrcnn-benchmark

    Реализация Mask R-CNN на PyTorch с открытым кодом от Facebook. Исследователи могут воспроизвести её шаг за шагом по руководствам и примерам кода.

    maskrcnn-benchmark
  4. mlcourse.ai

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

  5. stanford-cs-229-machine-learning

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

Прочее

  1. 3d-game-shaders-for-beginners

    Руководство по реализации SSAO, глубины резкости, освещения, карт нормалей и других эффектов в 3D-играх. Есть примеры кода на C++ и демонстрации, которые помогают разобраться в теме.

    3d-game-shaders-for-beginners
  2. algo

    Решения основных задач по структурам данных и алгоритмам на нескольких языках программирования.

  3. commit-messages-guide

    Руководство по написанию сообщений коммитов Git. Есть версия на китайском.

  4. hacker-laws

    Разбор законов и принципов, которые пригодятся программистам в работе, особенно при разработке и проектировании. Полезное чтение.

    hacker-laws
  5. vim-bootstrap

    Простой генератор файла настроек .vimrc; параметры можно выбрать и на сайте. Поддерживает Vim, NeoVim, NeoVim-Qt, MacVim и GVim. Особенности:

    • Лёгкая конфигурация: только необходимые плагины.
    • Простота использования: подойдёт тем, кто только освоился в Vim.
    • Настройка под язык: выберите нужные языки и получите подходящую конфигурацию.
    • Vim-Plug для управления плагинами: простой и быстрый менеджер.
    • Поддержка многих языков программирования.
  6. vscode-extension-samples

    Официальная подборка примеров кода для разработки расширений VS Code.

  7. weekly

    «Еженедельник Aliyun о фронтенд-технологиях».