Сканер всего интернета и медиатека без рекламы

Выпуск № 79 ·

Проекты на C

  1. masscan

    Сверхбыстрый сканер IP-портов. Асинхронный сканер TCP-портов, главное достоинство которого — скорость: он способен просканировать весь интернет всего за 5 минут. Будьте осторожны, чтобы не перегрузить собственный компьютер.

    # 扫描指定 IP 的全部端口
    masscan -p 0-65535 IP --rate=1000 
  2. sysbench

    Многопоточный инструмент для бенчмарков с поддержкой сценариев на LuaJIT. Консольную утилиту часто используют для тестирования производительности баз данных; её результаты регулярно попадают в сравнения популярных СУБД. Доступны разные параметры теста, например число таблиц и записей, а также генерация SQL-запросов только для чтения.

Проекты на C#

  1. 1Remote

    Удобный менеджер удалённых подключений для Windows. Проект призван сделать работу с удалёнными рабочими столами комфортной: через лаунчер можно быстро подключаться к серверам. Поддерживаются RDP, SSH, SFTP, FTP и другие способы удалённого доступа.

    1Remote
  2. imewlconverter

    Бесплатная программа с открытым кодом для конвертации пользовательских словарей методов ввода. Методы ввода формируют словарь с учётом введённых пользователем слов и частоты выбора, но обычно его нельзя напрямую перенести в другой метод — приходится заново привыкать и пополнять словарь. Программа умеет импортировать, экспортировать и объединять словари более чем для 20 методов ввода, помогая перенести привычки при переходе на новый.

    imewlconverter
  3. jellyfin

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

    jellyfin

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

  1. 30dayMakeCppServer

    Руководство по созданию C++-сервера с нуля. В проекте есть иллюстрированный учебник и исходный код; в нём разбираются сокеты, epoll, пулы потоков, CMake и другие темы. Подойдёт тем, у кого уже есть базовые знания C или C++.

  2. ImHex

    Комфортный для глаз шестнадцатеричный редактор. Предназначен для специалистов по реверс-инжинирингу и программистов: позволяет просматривать, декодировать, анализировать и редактировать двоичные данные. В редакторе много возможностей, эффектный интерфейс и яркая подсветка; проект активно развивается — например, проблему с путями на китайском языке, из-за которой программа сначала не работала, уже исправили.

    ImHex
  3. NotepadNext

    Замена Notepad++. Кроссплатформенный текстовый редактор, переписанный на C++; по интерфейсу и возможностям он похож на Notepad++.

    NotepadNext
  4. srs

    Простой и эффективный сервер для видео в реальном времени. Высокопроизводительный медиасервер поддерживает RTMP, WebRTC, HLS и HTTP-FLV. Его часто используют как основу для сервисов прямых трансляций и видеоконференций.

    srs

Проекты на Go

  1. env

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

    package main
    
    import (
        "fmt"
        "time"
    
        "github.com/caarlos0/env/v6"
    )
    
    type config struct {
        Home         string        `env:"HOME"`
        Port         int           `env:"PORT" envDefault:"3000"`
        Password     string        `env:"PASSWORD,unset"`
        IsProduction bool          `env:"PRODUCTION"`
        Hosts        []string      `env:"HOSTS" envSeparator:":"`
        Duration     time.Duration `env:"DURATION"`
        TempFolder   string        `env:"TEMP_FOLDER" envDefault:"${HOME}/tmp" envExpand:"true"`
    }
    
    func main() {
        cfg := config{}
        if err := env.Parse(&cfg); err != nil {
            fmt.Printf("%+v\n", err)
        }
    
        fmt.Printf("%+v\n", cfg)
    }
  2. k8s-tutorials

    Бесплатный учебник по Kubernetes. Kubernetes — один из базовых инструментов облачной разработки, поэтому полезно освоить хотя бы основы. Руководство построено вокруг практики: на примере приложения на Go оно последовательно разбирает ресурсы от простейших описаний контейнеров до pod, deployment, service и ingress, а затем показывает, как собрать и развернуть целый сервис с помощью Helm.

    k8s-tutorials
  3. kubeshark

    Инструмент для просмотра трафика Kubernetes API. Если представить Kubernetes операционной системой, Kubeshark будет для неё tcpdump. Работать с ним так же просто, как с инструментами разработчика Chrome: он наглядно показывает сетевое взаимодействие между микросервисами в кластере.

    kubeshark
  4. rod

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

    package main
    
    import (
        "github.com/go-rod/rod"
    )
    
    func main() {
        page := rod.New().MustConnect().MustPage("https://hellogithub.com")
        page.MustWaitLoad().MustScreenshot("a.png")
    }
  5. trivy

    Комплексный сканер безопасности контейнеров. Один из самых популярных инструментов с открытым кодом для поиска уязвимостей в образах: он быстро и точно работает, проверяет зависимости и секреты и хорошо подходит для CI. Установка и освоение просты — для проверки образа достаточно одной команды.

    # 安装
    docker pull aquasec/trivy:0.33.0
    # 运行
    trivy image [YOUR_IMAGE_NAME]
    trivy

Проекты на Java

  1. GoodWeather

    Разработка погодного приложения для Android с нуля. Проект показывает, как создать приложение с прогнозом погоды, поиском городов, данными о качестве воздуха и автоматическим обновлением. В комплекте есть исходный код и сопровождающие статьи с разбором.

    GoodWeather
  2. jvm-sandbox

    Неинвазивное решение для AOP во время работы JVM. Например, если в работающем Java-сервисе возникла проблема и нужно добавить журналирование для её диагностики, это можно сделать без повторного развёртывания сервиса. Также поддерживаются имитация сбоев, запись запросов и их последующее воспроизведение.

    jvm-sandbox
  3. spring-cloud-tencent

    Универсальная платформа микросервисов с открытым кодом от Tencent. Построенная на Spring Cloud система управления сервисами предоставляет типовые возможности: регистрацию и обнаружение сервисов, центр конфигурации, маршрутизацию, ограничение частоты запросов и механизм circuit breaker, а также передачу метаданных по цепочке.

    spring-cloud-tencent

Проекты на JavaScript

  1. ava

    Инструмент для параллельного запуска тестов JavaScript. Это тестовый раннер для Node.js с простым API, подробными сообщениями об ошибках и высокой скоростью выполнения.

    ava
  2. kbar

    Компонент для добавления панели команд на сайт. Готовый к использованию компонент React позволяет быстро внедрить панель, через которую посетители могут гибко и интерактивно переходить к функциям сайта с помощью горячих клавиш.

    kbar
  3. LogicFlow

    Фреймворк для редактирования блок-схем с открытым кодом от DiDi. Предоставляет широкий набор средств для взаимодействия со схемами и их редактирования, чтобы создавать интеллект-карты, ER-диаграммы, UML-схемы, рабочие процессы и многое другое.

    LogicFlow
  4. min

    Минималистичный браузер с поиском, закладками, менеджером паролей и блокировщиком рекламы — только с основными функциями. Работает в Windows, Linux и macOS.

    min
  5. PPTist

    Приложение для редактирования и показа презентаций PPT в браузере. Построено на Vue 3 и TypeScript, воспроизводит большинство привычных функций Microsoft PowerPoint и поддерживает онлайн-редактирование, показ и экспорт файлов PPT.

    PPTist

Проекты на Kotlin

  1. uhabits

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

    uhabits

Проекты на Python

  1. latexify_py

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

    import math
    import latexify
    
    @latexify.with_latex
    def solve(a, b, c):
        return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)
    
    print(solve(1, 4, 3))
    print(solve)
    # 输出如下
    # -1.0
    # \mathrm{solve}(a, b, c)\triangleq \frac{-b + \sqrt{b^{2} - 4ac}}{2a}
    latexify_py
  2. matrix-webcam

    Видеоконференции в стиле «Матрицы». Программа добавляет в видеозвонок эффект цифрового дождя, как в фильме «Матрица». Поддерживаются Teams, Zoom и Skype; доступны версии для Windows, macOS и Linux.

    matrix-webcam
  3. pdf2docx

    Библиотека Python для преобразования PDF в DOCX. Сначала она извлекает данные из PDF с помощью PyMuPDF, затем разбирает структуру документа — расположение блоков, абзацы, изображения и таблицы — посредством python-docx и автоматически собирает файл DOCX.

    from pdf2docx import parse
    
    pdf_file = '/path/to/sample.pdf'
    docx_file = 'path/to/sample.docx'
    
    # convert pdf to docx
    parse(pdf_file, docx_file)
    pdf2docx
  4. schedule

    Простая и удобная библиотека Python для планирования задач. Благодаря понятному API запланировать выполнение задачи можно всего несколькими строками кода. Зависимостей от сторонних библиотек нет: весь проект занимает чуть более 800 строк в одном файле, снабжён подробными комментариями и модульными тестами, поэтому его легко изучать.

    import schedule
    import time
    
    def job():
        print("I'm working...")
    
    schedule.every(10).minutes.do(job)
    schedule.every().hour.do(job)
    schedule.every().day.at("10:30").do(job)
    schedule.every().monday.do(job)
    schedule.every().wednesday.at("13:15").do(job)
    schedule.every().minute.at(":17").do(job)
    
    while True:
        schedule.run_pending()
        time.sleep(1)
  5. Umi-OCR

    Программа для распознавания текста на изображениях на основе PaddleOCR. Бесплатное приложение с открытым кодом работает без интернета, распознаёт текст на снимках экрана, обрабатывает изображения пакетами и поддерживает горизонтальную и вертикальную вёрстку. Также можно автоматически игнорировать области с водяными знаками. Работает в Windows 10.

    Umi-OCR

Проекты на Ruby

  1. linguist

    Библиотека GitHub с открытым кодом для определения языков программирования в проектах. GitHub.com использует её, чтобы вычислять долю каждого языка в репозитории.

    # 安装
    gem install github-linguist
    # 在项目根目录下执行命令
    github-linguist
    # 结果
    66.84%  264519     Ruby
    24.68%  97685      C
    6.57%   25999      Go
    1.29%   5098       Lex
    0.32%   1257       Shell
    0.31%   1212       Dockerfile
    linguist

Проекты на Rust

  1. atuin

    Удобный инструмент для истории команд shell. Он хранит её в базе SQLite и показывает больше сведений, в том числе время запуска и длительность выполнения команд. Историю можно выбирать, фильтровать, анализировать, синхронизировать и создавать резервные копии.

    # 搜索昨天下午3点之后记录的所有成功的 `make` 命令
    atuin search --exit 0 --after "yesterday 3pm" make
    atuin
  2. this-week-in-rust

    Еженедельный дайджест сообщества Rust. В каждом выпуске собраны новости о языке: статьи, видео, подкасты и проекты с открытым кодом, а также обновления за неделю — pull request, RFC (предложения по изменениям) и ход разработки.

Проекты на Swift

  1. isowords

    Головоломка со словами на трёхмерном кубе. В этой игре для iOS, написанной на Swift, нужно составлять английские слова из букв на гранях куба. Если использовать одну букву три раза, соответствующий кубик исчезнет и откроет следующие буквы. Есть режимы на время, без ограничений и для нескольких игроков, ежедневные задания и глобальная таблица лидеров.

    isowords
  2. swift-benchmark

    Библиотека Google с открытым кодом для измерения производительности фрагментов кода на Swift.

    import Benchmark
    
    benchmark("add string reserved capacity") {
        var x: String = ""
        x.reserveCapacity(2000)
        for _ in 1...1000 {
            x += "hi"
        }
    }
    
    Benchmark.main()
    swift-benchmark

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

  1. motion-diffusion-model

    Модель, которая генерирует движения человеческого тела в 3D по текстовому описанию. Реализация на PyTorch опубликована первым автором статьи «Human Motion Diffusion Model».

    motion-diffusion-model
  2. whisper

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

    import whisper
    
    model = whisper.load_model("base")
    result = model.transcribe("audio.mp3")
    print(result["text"])
    
    # 命令行使用
    # $ whisper --language Chinese --model large audio.wav
    # [00:00.000 --> 00:08.000] 如果他们使用航空的方式运输货物在某些航线上可能要花几天的时间才能卸货和通关
    whisper

Прочее

  1. code2flow

    Инструмент для построения графов вызовов в динамических языках. Консольная утилита создаёт наглядную диаграмму вызовов по файлам исходного кода и поддерживает Python, JavaScript, Ruby и другие языки.

    # 安装
    pip3 install code2flow
    # 使用
    code2flow 文件
    code2flow
  2. Codex-CLI

    Утилита, которая понимает команды на естественном языке. С помощью GPT-3 Codex она преобразует их в команды для PowerShell, Zsh и Bash. Например, на вопрос «Какой у меня IP-адрес?» подскажет локальный IP.

    Codex-CLI
  3. collisions

    Проект с объяснением и демонстрацией коллизий хешей. В нём есть описание атак, демонстрационные файлы и примеры кода, которые помогают понять слабость алгоритма MD5: например, разные файлы могут иметь одинаковый хеш.

    collisions
  4. rally

    Инструмент нагрузочного тестирования Elasticsearch с открытым кодом от разработчиков ES. Консольная утилита на Python 3 умеет автоматически создавать, запускать и удалять кластеры Elasticsearch, а также сравнивать результаты тестов на разных наборах данных.

    安装:
        pip3 install esrally
    
    运行:
        esrally
    
    命令:
        race                Run a benchmark
        list                List configuration options
        info                Show info about a track
        create-track        Create a Rally track from existing data
        generate            Generate artifacts
        compare             Compare two races
        download            Downloads an artifact
        install             Installs an Elasticsearch node locally
        start               Starts an Elasticsearch node locally
        stop                Stops an Elasticsearch node locally
    rally
  5. testssl.sh

    Инструмент для проверки шифрования TLS/SSL. Он позволяет проверить, поддерживает ли веб-сервис шифрование TLS/SSL и соответствующие протоколы, а также выявить их слабые места.

    testssl.sh

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

  1. craftinginterpreters

    Книга «Создание интерпретаторов» (Crafting Interpreters) о разработке интерпретатора вручную. Её автор работает в Google над языком Dart. На примере небольшого собственного языка Lox книга подробно показывает, как написать интерпретатор и виртуальную машину. Рекомендуется тем, кто хочет изучить устройство компиляторов или создать собственный язык.

    craftinginterpreters
  2. ThinkDSP

    Книга Think DSP о цифровой обработке сигналов на Python. В ней программирование на Python объединено с цифровой обработкой сигналов; примеры кода помогают разобраться в понятиях лучше, чем сухое изложение. Автор также написал книгу Think Python.

    ThinkDSP