Нагрузочное тестирование и гибкая CMS для Django

Выпуск № 55 ·

Проекты на C

  1. htop

    Интерактивная утилита для просмотра процессов, заменяющая top. После знакомства с ней автор почти перестал пользоваться top.

    htop

Проекты на C#

  1. ToolGood.Words

    Высокопроизводительная библиотека для поиска запрещённых и нежелательных слов. Также преобразует упрощённые и традиционные иероглифы друг в друга, получает первые буквы пиньинь и полную транскрипцию, поддерживает нечёткий поиск по пиньинь.

    string s = "中国|国人|zg人";
    string test = "我是中国人";
    
    StringSearch iwords = new StringSearch();
    iwords.SetKeywords(s.Split('|'));
    
    var b = iwords.ContainsAny(test);
    Assert.AreEqual(true, b);
    
    var f = iwords.FindFirst(test);
    Assert.AreEqual("中国", f);
    
    var all = iwords.FindAll(test);
    Assert.AreEqual("中国", all[0]);
    Assert.AreEqual("国人", all[1]);
    Assert.AreEqual(2, all.Count);
    
    var str = iwords.Replace(test, '*');
    Assert.AreEqual("我是***", str);

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

  1. workflow

    Серверный движок на C++ с открытым кодом от Sogou. Обслуживает почти все серверные C++-сервисы компании, включая поиск, облачный метод ввода и рекламу, обрабатывая более десяти миллиардов запросов в день. Лёгкий и продуманный движок корпоративного уровня для большинства задач серверной разработки на C++.

Проекты на CSS

  1. flexboxfroggy

    Онлайн-игра для изучения CSS Flexbox. За 24 уровня она понятным языком объясняет гибкую раскладку. Подходит новичкам и поддерживает китайский язык, который можно выбрать в настройках. Играть онлайн.

    flexboxfroggy

Проекты на Go

  1. ali

    Инструмент нагрузочного тестирования с показом результатов в реальном времени. Его особенность — графики хода испытания прямо в терминале. Для запуска достаточно одной команды: ali 地址.

    ali
  2. ferry

    Система заявок с разделёнными клиентской и серверной частями на Gin, Vue и Element UI. В ней есть статистика заявок, хуки задач, управление правами, гибкая настройка процессов и шаблонов. Помогает наладить общение между отделами, повысить качество и скорость работы, сократить лишние действия и число ошибок.

    ferry
  3. go-diagrams

    Инструмент для построения архитектурных схем на Go. Если вы знаете Go, можете описывать схемы кодом через удобный API. Документация пока слишком краткая. Пример:

    d, err := diagram.New(diagram.Filename("app"), diagram.Label("App"), diagram.Direction("LR"))
    if err != nil {
        log.Fatal(err)
    }
    
    dns := gcp.Network.Dns(diagram.NodeLabel("DNS"))
    lb := gcp.Network.LoadBalancing(diagram.NodeLabel("NLB"))
    cache := gcp.Database.Memorystore(diagram.NodeLabel("Cache"))
    db := gcp.Database.Sql(diagram.NodeLabel("Database"))
    
    dc := diagram.NewGroup("GCP")
    dc.NewGroup("services").
        Label("Service Layer").
        Add(
            gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 1")),
            gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 2")),
            gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 3")),
        ).
        ConnectAllFrom(lb.ID(), diagram.Forward()).
        ConnectAllTo(cache.ID(), diagram.Forward())
    
    dc.NewGroup("data").Label("Data Layer").Add(cache, db).Connect(cache, db)
    
    d.Connect(dns, lb, diagram.Forward()).Group(dc)
    
    if err := d.Render(); err != nil {
        log.Fatal(err)
    }
    go-diagrams
  4. gorched

    Терминальная игра Scorched Earth на Go. Напоминает автору «Червячков» — повод вспомнить старые игры.

    gorched

Проекты на Java

  1. jmeter

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

    jmeter
  2. mybatis-plus

    Удобный Java-фреймворк для работы с базами данных. Расширяет MyBatis практичными функциями, которые экономят время разработки. Например, для смены источника данных достаточно поправить конфигурацию.

    List<User> userList = userMapper.selectList(
            new QueryWrapper<User>()
                    .lambda()
                    .ge(User::getAge, 18)
    );
    mybatis-plus
  3. retrofit-spring-boot-starter

    Лёгкий HTTP-фреймворк для проектов на Spring Boot. Позволяет отправлять запросы через интерфейсы Java. Основан на Retrofit и дополнен рядом возможностей, упрощающих разработку.

    /**
    * 定义接口
    **/
    @RetrofitClient(baseUrl = "${test.baseUrl}")
    public interface HttpApi {
    
        @GET("person")
        Result<Person> getPerson(@Query("id") Long id);
    }
    
    /**
    * 注入使用
    **/
    @Service
    public class TestService {
        @Autowired
        private HttpApi httpApi;
    
        public void test() {
            // 通过httpApi发起http请求
        }
    }

Проекты на JavaScript

  1. AnotherRedisDesktopManager

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

    AnotherRedisDesktopManager
  2. beeplay

    Библиотека, с которой можно написать «песню» на JavaScript. Попробовать онлайн. Пример кода:

    var beeplay = require('beeplay')
    
    beeplay()
      .play(null, 2)
      .play('D#5', 1/4).play('E5', 1/4).play('F#5', 1/2)
      .play('B5', 1/2).play('D#5', 1/4).play('E5', 1/4)
      .play('F#5', 1/4).play('B5', 1/4).play('C#6', 1/4).play('D#6', 1/4)
      .play('C#6', 1/4).play('A#5', 1/4).play('B5', 1/2)
      .play('F#5', 1/2).play('D#5', 1/4).play('E5', 1/4)
      .play('F#5', 1/2).play('B5', 1/2)
      .play('C#6', 1/4).play('A#5', 1/4).play('B5', 1/4).play('C#6', 1/4)
      .play('E6', 1/4).play('D#6', 1/4).play('E6', 1/4).play('C#6', 1/4);
  3. Bilibili-Evolved

    Расширение браузера для Bilibili (китайского видеохостинга). Добавляет загрузку видео, скрытие рекламы и ночной режим.

    Bilibili-Evolved
  4. vant

    Библиотека мобильных компонентов с открытым кодом от команды фронтенда Youzan. Официально доступны версии для Vue и мини-приложений WeChat, версию для React поддерживает сообщество. Есть подробная документация на китайском и английском, более 60 качественных компонентов, покрытие тестами свыше 90%; проект развивается более четырёх лет.

    vant
  5. zooming

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

    zooming

Проекты на Python

  1. asciinema

    Инструмент для записи работы в терминале. Сохраняет сеанс в текстовом формате вместо видео: его просто установить и использовать, а файлы получаются очень маленькими. Для воспроизведения нужен JavaScript-файл.

    asciinema
  2. playwright-python

    Инструмент автоматизации браузера с открытым кодом от Microsoft. Позволяет управлять браузером из Python. Поддерживает Chromium, Firefox и WebKit в Linux, macOS и Windows.

    playwright-python
  3. practical-python

    Бесплатный вводный курс Python с открытым кодом от Дэвида Бизли, автора книг «Python Cookbook, третье издание» и «Справочник по Python». Материал проверен в реальном преподавании и содержит упражнения. Учиться онлайн. Содержание курса:

    practical-python
  4. redis-memory-analyzer

    Инструмент для анализа памяти Redis в реальном времени. Автор изучил scanner.py и выяснил, как он работает: scan_iter ограничивает число ключей в каждой порции, yield уменьшает расход памяти, а register_script вызывает Lua-скрипты или pipeline ускоряет получение сведений о ключах. Подойдёт для больших объёмов данных, когда допустима задержка в секунды или минуты.

    redis-memory-analyzer
  5. wagtail

    Одна из самых мощных CMS для Django с открытым кодом. Проект активно развивается, а заявленные на главной странице функции доступны бесплатно. Wagtail сосредоточен на управлении контентом и не диктует устройство фронтенда. StreamField позволяет гибко структурировать содержимое; есть даже A/B-тестирование. Среди пользователей проекта — Google и NASA.

    wagtail

Проекты на Swift

  1. stats

    Утилита мониторинга в строке меню macOS. Показывает загрузку CPU и GPU, память, сеть и другие показатели; поддерживает несколько языков.

    stats

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

  1. mlflow

    Платформа, упрощающая разработку моделей машинного обучения: отслеживание экспериментов, упаковка кода и развёртывание моделей. Лёгкий API позволяет интегрировать её с TensorFlow, PyTorch, XGBoost и другими популярными библиотеками.

    # 安装:$ pip install mlflow
    # 启动:$ mlflow ui
    # 示例代码
    import mlflow
    mlflow.keras.autolog()
    # other keras code
    ...
    mlflow
  2. snownlp

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

    from snownlp import SnowNLP
    
    s = SnowNLP(u'这个东西真心很赞')
    s.words         # [u'这个', u'东西', u'真心',
                    #  u'很', u'赞']
    s.tags          # [(u'这个', u'r'), (u'东西', u'n'),
                    #  (u'真心', u'd'), (u'很', u'd'),
                    #  (u'赞', u'Vg')]
    s.sentiments    # 0.9769663402895832 positive的概率
  3. video-object-removal

    Инструмент на PyTorch для удаления объектов из видео: достаточно выделить нужный объект рамкой. На иллюстрации показан процесс, красным отмечена удаляемая область. Сравнение результата до и после обработки есть на странице проекта.

    video-object-removal

Прочее

  1. keysim

    Инструмент предварительного просмотра цветовых схем клавиатуры. Перед заказом клавиатуры с индивидуальной окраской можно оценить результат и избежать лишних трат. Попробовать онлайн.

    keysim
  2. socialify

    Генератор обложек для репозиториев GitHub в один клик. Помогает авторам открытых проектов сделать изображение для продвижения, даже если они не умеют работать в Photoshop. Попробовать онлайн.

    socialify
  3. tabler-icons

    Бесплатный набор иконок с открытым кодом. На момент выпуска в нём было более 850 значков.

    tabler-icons
  4. ZY-Player

    Бесплатный настольный проигрыватель видеоресурсов без рекламы, с приятным интерфейсом и поддержкой нескольких платформ. Возможности:

    • Работает в Windows, macOS и Linux.
    • Позволяет настраивать источники видео, импортировать и экспортировать их.
    • Хранит историю просмотра и возобновляет воспроизведение с прежнего места.
    • Поддерживает компактный режим для незаметного просмотра.
    • Показывает оценки Douban.
    ZY-Player

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

  1. Mastering_Go_ZH_CN

    Китайский перевод книги «Осваиваем Go» (Mastering Go). Читать онлайн.