Компилятор C и уборка в node_modules

Выпуск № 61 ·

Проекты на C

  1. acwj

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

    acwj
  2. zstd

    Реализация быстрого алгоритма сжатия данных без потерь Zstandard. Степень сжатия Zstd близка к lzma, lzham и ppmx, а производительность выше, чем у lza и bzip2. При сопоставимой степени сжатия он распаковывает данные быстрее других алгоритмов. Zstd используется во многих известных проектах и играх. Пример кода:

    static void compress_orDie(const char* fname, const char* oname)
    {
        size_t fSize;
        void* const fBuff = mallocAndLoadFile_orDie(fname, &fSize);
        size_t const cBuffSize = ZSTD_compressBound(fSize);
        void* const cBuff = malloc_orDie(cBuffSize);
    
        /* Compress.
         * If you are doing many compressions, you may want to reuse the context.
         * See the multiple_simple_compression.c example.
         */
        size_t const cSize = ZSTD_compress(cBuff, cBuffSize, fBuff, fSize, 1);
        CHECK_ZSTD(cSize);
    
        saveFile_orDie(oname, cBuff, cSize);
    
        /* success */
        printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname);
    
        free(fBuff);
        free(cBuff);
    }
    zstd

Проекты на C#

  1. Files

    Новый файловый менеджер. Создан с применением Fluent Design и новейших API платформы Windows: лаконичный, но функциональный.

    Files
  2. ravendb

    Быстрая и надёжная NoSQL-база данных с открытым кодом.

    ravendb

Проекты на Go

  1. algorithm-pattern

    Сборник задач с LeetCode. Материалы начинаются с основ Go и содержат шаблоны и подходы к решению задач, а примеры кода написаны на Go.

  2. chanify

    Сервис на Go для отправки push-уведомлений на устройства iOS. Установите сопутствующее iOS-приложение на телефон, разверните сервис через Docker — и сможете отправлять заданные сообщения в приложение одной командой.

    # 发送文本消息
    $ curl --form-string "text=hello" "http://<address>:<port>/v1/sender/<token>"
    
    # 发送文本文件
    $ cat message.txt | curl -H "Content-Type: text/plain" --data-binary @- "http://<address>:<port>/v1/sender/<token>"
    chanify
  3. ebiten

    Библиотека двумерного игрового движка для Go. С её помощью легко создавать на Go 2D-игры для разных платформ, а множество примеров в проекте помогут быстро начать работу.

    ebiten
  4. imaging

    Библиотека обработки изображений для Go. Поддерживает изменение размера, поворот, обрезку, настройку яркости и другие операции. Пример кода:

    // 调整
    dstImage128 := imaging.Resize(srcImage, 128, 128, imaging.Lanczos)
    // 锐化
    dstImage := imaging.Sharpen(srcImage, 0.5)
    imaging
  5. jql

    Инструмент на Go для запросов к данным JSON. Он легко устанавливается, использует простой синтаксис и содержит много практических примеров:

    # 查询 test.json 文件中,所有国家的名称
    cat test.json | jql '(elem "countries" (elem (keys) (elem "name")))'
    [
      "Poland",
      "United States",
      "Germany"
    ]

Проекты на Java

  1. flink-recommandSystem-demo

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

    flink-recommandSystem-demo
  2. jacoco

    Библиотека для измерения покрытия тестами Java-кода.

    jacoco
  3. kooder

    Сервис поиска по коду с открытым исходным кодом. Ищет исходники, репозитории и задачи в системах размещения кода, включая GitLab и Gitea.

    kooder
  4. OpenRefine

    Настольный инструмент для очистки данных. Позволяет визуально анализировать и упорядочивать данные, работает в Windows, Linux и macOS. Поддерживает запросы, фильтрацию, удаление дубликатов и анализ, превращает беспорядочные данные в аккуратные таблицы и экспортирует результат в разные форматы. С большими объёмами данных справятся даже пользователи без навыков программирования и знания SQL.

    OpenRefine

Проекты на JavaScript

  1. drawio

    Простой и мощный инструмент для построения диаграмм. Бесплатный проект с открытым кодом можно развернуть на своём сервере или использовать онлайн; по возможностям он приближается к Microsoft Visio. Поддерживает блок-схемы, диаграммы последовательностей, сетевые топологии, диаграммы Ганта, интеллект-карты и схемы моделей, а экспорт доступен в PNG, SVG, PDF, HTML, VSDX и других форматах.

    drawio
  2. kutt

    Бесплатный сервис коротких ссылок с открытым кодом. Построен на Node.js, Express и React; поддерживает управление ссылками, собственные короткие адреса, защиту ссылок паролем и статистику переходов.

    kutt
  3. nav

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

    nav
  4. npkill

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

    npkill
  5. taro

    Лёгкий трёхмерный игровой движок для веба. Основан на three.js и cannon-es и поддерживает физику твёрдых тел.

    taro

Проекты на PHP

  1. question2answer

    Бесплатная платформа вопросов и ответов с открытым кодом на PHP и MySQL. В ней есть практически все ожидаемые возможности, поэтому остаётся выбрать, что строить: Zhihu (китайский аналог Quora) или Stack Overflow.

    • Голосование за ответы, комментарии, выбор лучшего ответа, отслеживание и закрытие вопросов.
    • Полноценное управление пользователями и правами доступа.
    • Поддержка нескольких языков.
    • Поиск похожих вопросов при вводе запроса.
    • И многое другое.
    question2answer

Проекты на Python

  1. apkleaks

    Консольная утилита для поиска конфиденциальных данных в APK-файлах.

    // custom-rules.json
    {
      "Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
      ...
    }
    $ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
    apkleaks
  2. graphene-django

    Библиотека для простой интеграции GraphQL в проекты на Django.

  3. tomato-clock

    Консольный таймер для метода помидора, написанный на Python. В нём чуть больше 100 строк кода и нет сторонних зависимостей.

    🍅 tomato 25 minutes. Ctrl+C to exit
     🍅🍅---------------------------------------------- [8%] 23:4 ⏰ 
  4. vardbg

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

    vardbg

Проекты на Rust

  1. fselect

    Консольная утилита для поиска файлов с помощью SQL-подобных запросов.

    fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
    fselect size, abspath from ./tmp where size gt 2g
    fselect hsize, abspath from ./tmp where size lt 8k

Проекты на Swift

  1. awesome-ios

    Большая коллекция открытых проектов для iOS. Она охватывает проекты на Objective-C и Swift с разделами о сетях, UI, JSON, базах данных, аудио и видео — хорошее место для начинающих iOS-разработчиков, которые ищут примеры с открытым кодом.

    awesome-ios
  2. Knot

    Инструмент перехвата сетевого трафика для iOS. Поддерживает разбор HTTP(S) и трафика, экспорт в нескольких форматах, управление сертификатами и анализ процессов.

    Knot
  3. SwiftUITodo

    Приложение для списка дел на SwiftUI. Учебный проект помогает новичкам освоить SwiftUI.

    SwiftUITodo

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

  1. AI-Expert-Roadmap

    Дорожная карта изучения искусственного интеллекта.

    AI-Expert-Roadmap
  2. Real-Time-Person-Removal

    Удаление людей из изображения в веб-браузере в реальном времени. Проект на JavaScript и TensorFlow.js создаёт эффект исчезновения человека.

    Real-Time-Person-Removal

Прочее

  1. cloudmusic-vscode

    Расширение NetEase Cloud Music для VS Code, работающее через веб-API сервиса. Поддерживает:

    • Воспроизведение песен, добавление в избранное и отметки «Нравится».
    • Режим рекомендаций и персональное FM-радио.
    • Комментарии к песням, плейлистам и другому содержимому.
    • Отображение текста песни.
    • Поиск по популярным запросам, песням, альбомам, исполнителям и другим категориям.
    • И многое другое.
    cloudmusic-vscode
  2. LIII

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

    LIII
  3. shapez.io

    Исходный код доступной в Steam игры-симулятора строительства «Фабрика фигур». На бесконечной карте нужно добывать ресурсы, размещать сооружения, комбинировать фигуры и расширять свою фабрику. Игра расслабляет, но при этом предлагает сложные задачи.

    shapez.io

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

  1. Probabilistic-Programming-and-Bayesian-Methods-for-Hackers

    «Байесовские методы для хакеров: на примере Python».

    Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
  2. tensorflow-handbook

    «Краткое руководство по TensorFlow 2», читать онлайн.

  3. The-design-and-implementation-of-a-64-bit-os

    «Проектирование и реализация 64-разрядной операционной системы».