Lisp на 1000 строк и рабочий стол в VR

Выпуск № 69 ·

Проекты на C

  1. minilisp

    Интерпретатор Lisp на 1000 строках C. В нём реализованы целые числа, символы, локальные переменные, условные операторы, макросы и сборка мусора. Код щедро снабжён комментариями, чтобы читателям было проще разобраться в устройстве проекта.

    (println 3)  ; prints "3"
    (+ 1 2 3)  ; -> 6
    (define a (+ 1 2))
    (+ a a)  ; -> 6
  2. mpv

    Минималистичный, но функциональный бесплатный open-source медиаплеер для разных платформ. В основе — MPlayer, mplayer2, FFmpeg и другие открытые проекты. Поддерживает множество аудио- и видеоформатов, HD-видео, декодирование на GPU и настройку под себя. Запускается из командной строки, управляется горячими клавишами и популярен у технических энтузиастов.

    mpv
  3. quadsort

    Стабильный алгоритм сортировки слиянием, работающий быстрее быстрой сортировки. В проекте есть объяснение принципа работы, реализация на C, сравнение производительности и визуализация процесса сортировки.

    quadsort

Проекты на C#

  1. jynew

    3D-версия игры «Герои Цзинь Юна», созданная на Unity.

    jynew

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

  1. bpftrace

    Продвинутый инструмент и язык трассировки Linux. На базе eBPF и BCC он собирает с помощью проб данные о ядре и работающих программах, а затем показывает их, например, в виде графиков. Это помогает находить скрытые ошибки, проблемы безопасности и узкие места производительности.

    bpftrace
  2. Cataclysm-DDA

    Cataclysm: Dark Days Ahead — игра на выживание в постапокалиптическом мире. Заданий нет, единственная цель — остаться в живых. Можно искать еду и снаряжение, строить убежище, модифицировать транспорт и создавать предметы. Игра работает в Windows, Linux, macOS и Android. Скачать

    Cataclysm-DDA
  3. cutter

    Бесплатная платформа с открытым кодом для реверс-инжиниринга. В качестве движка используется Rizin, также встроен декомпилятор Ghidra. Интерфейс простой, а возможностей хватает специалистам по анализу программного кода.

    • Поддержка разных языков и тем оформления
    • Поиск по бинарным файлам
    • Шестнадцатеричный редактор
    • Скрипты и плагины на Python
    • Поддержка Linux, macOS и Windows
    cutter

Проекты на CSS

  1. heti

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

    • Выравнивание текста по сетке
    • Единое оформление всех HTML-тегов
    • Готовые варианты типографики
    • Поддержка упрощённого и традиционного китайского
    • Поддержка мобильных устройств
    heti

Проекты на Go

  1. air

    Инструмент для Go, который автоматически пересобирает и перезапускает сервис при изменении файлов или каталогов. Во время разработки веб-приложения на Go он избавляет от ручной сборки и перезапуска после каждой правки, ускоряя работу.

    air
  2. juicefs

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

    juicefs
  3. k9s

    Консольная утилита для мониторинга и управления кластерами Kubernetes. Она легко устанавливается и предлагает много возможностей, позволяя решать повседневные задачи прямо в терминале.

    k9s
  4. kind

    Утилита запускает локальный кластер Kubernetes, используя контейнеры Docker в качестве узлов. Она помогает быстро создать среду, похожую на обычный кластер Kubernetes, при этом требует относительно мало ресурсов и быстро стартует. Подходит для локальной разработки и тестирования компонентов Kubernetes, но не для продакшена.

    kind
  5. sniffer

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

    sniffer

Проекты на Java

  1. Addax

    Инструмент для пакетной синхронизации разнородных источников данных. ETL-система для больших данных: быстро переносит данные между MySQL, HDFS, Hive, HBase и другими хранилищами. Подходит для сбора данных в хранилища и платформы больших данных.

    Addax
  2. AndResGuard

    Утилита для сжатия и обфускации APK. Она сокращает пути к ресурсам, не затрагивая этап компиляции; для работы достаточно передать уже собранный APK.

  3. datahub

    Платформа управления метаданными на Java, которая подключается к Hive, Kafka, Elasticsearch и MySQL. По мере роста бизнеса данные становятся всё сложнее, и вести связи между ними в документах и устных договорённостях уже невозможно. Платформа позволяет просматривать, искать и управлять описаниями полей, связями и источниками данных. Это помогает разобраться в значении столбцов, не допускать ошибок в продакшене и увереннее анализировать данные. Попробовать онлайн

    datahub
  4. questdb

    Высокопроизводительная open-source база данных временных рядов. В основном написана на Java; высокая скорость записи и запросов достигается за счёт колоночного хранения, параллельного выполнения и SIMD-инструкций. Подходит для Интернета вещей, машинного обучения и финансовых систем. Есть SQL и интерактивный веб-интерфейс.

    questdb
  5. termux-app

    Open-source эмулятор терминала для Android. Он предоставляет Linux-среду и оболочку, а через встроенный менеджер пакетов на смартфон можно установить SSH, Python, GCC, htop, Git, Vim и другие утилиты.

    termux-app

Проекты на JavaScript

  1. arco-design

    Библиотека UI-компонентов для React и Vue на базе Arco Design. В ней более 60 готовых качественных компонентов, а визуальный редактор стилей помогает быстро создавать корпоративные панели управления.

    import React from 'react';
    import ReactDOM from 'react-dom';
    import { Button } from '@arco-design/web-react';
    import '@arco-design/web-react/dist/css/arco.css';
    
    function App() {
      return (
        <Button type='secondary'>
          Hello World
        </Button>
      );
    }
    
    ReactDOM.render(<App />, document.getElementById('app'));
    arco-design
  2. context-note

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

    context-note
  3. orm

    ORM для Node.js и TypeScript. Поддерживает популярные базы данных и подходит для разработки REST API, GraphQL API, gRPC API и других программ, которым нужен доступ к БД. В комплект также входят инструмент миграций и графический интерфейс для управления данными.

    import { PrismaClient } from '@prisma/client'
    
    const prisma = new PrismaClient()
    
    // A `main` function so that you can use async/await
    async function main() {
      const allUsers = await prisma.user.findMany({
        include: { posts: true },
      })
      // use `console.dir` to print nested objects
      console.dir(allUsers, { depth: null })
    }
    
    main()
      .catch((e) => {
        throw e
      })
      .finally(async () => {
        await prisma.$disconnect()
      })
    orm
  4. S2

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

    S2

Проекты на Objective-C

  1. vienna-rss

    Бесплатная программа для чтения RSS-лент на macOS.

    vienna-rss

Проекты на PHP

  1. laravel-tips

    Подборка советов по написанию кода на Laravel. Материалы на китайском

  2. PHPWord

    Библиотека PHP для чтения и записи документов разных форматов. Поддерживает Microsoft Office, Rich Text Format (RTF) и другие форматы.

    <?php
    require_once 'bootstrap.php';
    
    // 新建文档
    $phpWord = new \PhpOffice\PhpWord\PhpWord();
    
    // Adding an empty Section to the document...
    $section = $phpWord->addSection();
    // Adding Text element to the Section having font styled by default...
    $section->addText(
        '"Learn from yesterday, live for today, hope for tomorrow. '
            . 'The important thing is not to stop questioning." '
            . '(Albert Einstein)'
    );

Проекты на Python

  1. orjson

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

    >>> import orjson, datetime, numpy
    >>> data = {
        "type": "job",
        "created_at": datetime.datetime(1970, 1, 1),
        "status": "🆗",
        "payload": numpy.array([[1, 2], [3, 4]]),
    }
    >>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)
    b'{"type":"job","created_at":"1970-01-01T00:00:00+00:00","status":"\xf0\x9f\x86\x97","payload":[[1,2],[3,4]]}'
    >>> orjson.loads(_)
    {'type': 'job', 'created_at': '1970-01-01T00:00:00+00:00', 'status': '🆗', 'payload': [[1, 2], [3, 4]]}
  2. rumps

    Простая библиотека Python для приложений в строке меню macOS.

    import rumps
    
    class AwesomeStatusBarApp(rumps.App):
        @rumps.clicked("Preferences")
        def prefs(self, _):
            rumps.alert("jk! no preferences available!")
    
        @rumps.clicked("Silly button")
        def onoff(self, sender):
            sender.state = not sender.state
    
        @rumps.clicked("Say hi")
        def sayhi(self, _):
            rumps.notification("Awesome title", "amazing subtitle", "hi!!1")
    
    if __name__ == "__main__":
        AwesomeStatusBarApp("Awesome App").run()
    rumps
  3. tiler

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

    tiler

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

  1. ML-For-Beginners

    Вводный курс по машинному обучению с открытым кодом от Microsoft.

    ML-For-Beginners
  2. spleeter

    Инструмент для разделения аудиодорожки на отдельные составляющие, созданный на TensorFlow. С его помощью можно извлечь из музыки вокал, ударные, пианино и другие инструменты.

    # 用 conda 安装依赖
    conda install -c conda-forge ffmpeg libsndfile
    # 用 pip 安装 spleeter
    pip install spleeter
    # 提取人声
    spleeter separate -p spleeter:2stems -o output 音频.mp3

Прочее

  1. AppFlowy

    Приложение для заметок с открытым кодом, созданное на Flutter и работающее в разных операционных системах. Его цель — стать альтернативой Notion.

    AppFlowy
  2. design-resources-for-developers

    Подборка ресурсов для веб-дизайна: изображения, шаблоны сайтов, CSS-фреймворки, UI-компоненты и другое.

    design-resources-for-developers
  3. doomcaptcha

    Капча в виде шутера из Doom. Попробовать онлайн

    doomcaptcha
  4. koreader

    Программа для чтения с открытым кодом для устройств с электронными чернилами (E-Ink). Работает на Kindle, Kobo, PocketBook, Android и Linux. Позволяет настраивать шрифт, межстрочный интервал и оформление текста; особенно полезна функция адаптации PDF-вёрстки под экран E-Ink — на Kindle такие документы читать гораздо удобнее.

    koreader
  5. penpot

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

    penpot
  6. Simula

    Оконный менеджер для Linux в виртуальной реальности. С VR-шлемом он создаёт рабочее пространство, где взглядом можно охватить весь рабочий стол. Приложение создано на Godot, легко устанавливается и работает с HTC Vive Pro, Valve Index и другими VR-устройствами.

    Simula
  7. tabby

    Стильный и функциональный терминал с широкими возможностями настройки для Windows, macOS и Linux.

    • Настраиваемые темы и цветовые схемы
    • Настраиваемые горячие клавиши и сочетания клавиш
    • Встроенные подключения по SSH, Telnet и другим протоколам
    • Разделение окна на панели
    • И многое другое
    tabby
  8. wsa_pacman

    Программа для установки Android-приложений в Windows 11. Позволяет устанавливать приложения двойным щелчком, использует встроенную в систему подсистему Windows для Android (WSA) и не требует сторонних эмуляторов.

    wsa_pacman

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

  1. everything-curl

    «Всё о curl» — книга, написанная создателем проекта curl. В ней рассказывается о начале работы с curl, открытом коде, исходниках и самом проекте. Читать онлайн

    everything-curl
  2. school-of-sre

    Вводный курс по профессии SRE (инженер по надёжности сайтов) с открытым кодом от LinkedIn. Он охватывает Web, Linux, Git, компьютерные сети, базы данных, безопасность и другие темы.

    school-of-sre