Эмулятор PS3 и распределённый кеш на Go

Выпуск № 91 ·

Проекты на C

  1. barrier

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

    barrier
  2. clumsy

    Ухудшение сети в Windows для тестирования. Утилита на основе WinDivert работает без установки и позволяет вручную имитировать задержки, ограничение пропускной способности и потерю пакетов.

    clumsy
  3. vlc

    Свободный бесплатный видеоплеер для разных платформ. Воспроизводит почти все аудио- и видеоформаты, диски, видео с камеры и потоковое вещание без дополнительных кодеков и рекламы. Работает в Windows, Linux, macOS, Android и iOS.

    vlc

Проекты на C#

  1. Borderless-Gaming

    Полноэкранный режим для игр, которые его не поддерживают. Утилита для Windows превращает окно игры в полноэкранное и возвращает обратно одним нажатием. Интерфейс простой и удобный.

    Borderless-Gaming
  2. Dependencies

    Просмотр зависимостей DLL в Windows. Исполняемые файлы .exe часто используют несколько динамических библиотек .dll. Программа показывает дерево этих зависимостей и помогает найти отсутствующую библиотеку, из-за которой приложение не запускается.

    Dependencies
  3. WinMemoryCleaner

    Компактная очистка памяти в Windows. Программа на C# размером чуть больше 200 КБ с простым интерфейсом позволяет задать интервал и порог автоматической очистки. Есть белый список процессов, несколько языков, горячие клавиши и запуск вместе с системой.

    WinMemoryCleaner

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

  1. KeyDB

    Многопоточная версия Redis. Открытая разработка Snapchat совместима с протоколом Redis и обеспечивает высокую производительность и пропускную способность. Благодаря нескольким потокам команды KEYS и SCAN не должны блокировать работу сервера.

    KeyDB
  2. MuseScore

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

    MuseScore
  3. rpcs3

    Эмулятор PlayStation 3 с открытым кодом. Написан на C++ и после установки позволяет достаточно плавно запускать многие игры PS3 с настройками по умолчанию. Доступен для Windows, Linux, macOS и FreeBSD.

    rpcs3
  4. tiled

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

    tiled

Проекты на Go

  1. groupcache

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

  2. kopia

    Кроссплатформенное резервное копирование. Утилита для Windows, Linux и macOS сжимает и шифрует выбранные файлы и каталоги, создаёт снимки и загружает их на удалённый сервер или в облако. Поддерживает восстановление данных, консольный и графический интерфейсы.

    kopia
  3. photoprism

    Личный облачный фотоальбом с ИИ. Сервис на Go легко развернуть: он показывает и резервирует фотографии, позволяет просматривать их по месту и времени, автоматически загружать с телефона, распознавать лица и сортировать снимки.

    photoprism
  4. zlsgo

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

      func main() {
    
          // 需要验证的数据
          data := "我是需要验证的数据,我的作用是做用户名"
          // 开始验证数据,不能为空,必须包含字母
          name, err := zvalid.Text(data, "用户名").Required().HasNumber().HasLetter().String()
          if err != nil {
              zlog.Debug("验证失败", err)
          }
    
          data = "我是需要验证的数据,我的作用是做用户名,我有字母 A"
          name, err = zvalid.Text(data, "用户名").Required().HasLetter().String()
          zlog.Debug("用户名是:", name)
    
          // 初始化一个对象,并绑定需要验证的字符串
          // zvalid.New().Verifi("username","用户名").String()
      }

Проекты на Java

  1. minum

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

    package org.example.myproject;
    
    import com.renomad.minum.web.*;
    
    public class Main {
    
        public static void main(String[] args) {
            // Start the system
            FullSystem fs = FullSystem.initialize();
    
            // Register some endpoints
            fs.getWebFramework().registerPath(
                    RequestLine.Method.GET,
                    "",
                    request -> Response.htmlOk("<p>Hi there world!</p>"));
    
            fs.block();
        }
    }
  2. WePush

    Настольный инструмент для массовой рассылки. Программа на Java позволяет настраивать и предварительно просматривать сообщения, импортировать получателей, вести несколько учётных записей и планировать отправку. Поддерживает шаблонные сообщения WeChat, корпоративный WeChat, поддержку клиентов WeChat, SMS и email.

    WePush

Проекты на JavaScript

  1. auto-animate

    Библиотека переходных анимаций, готовая к подключению. Автоматически и плавно анимирует добавление, удаление и перемещение дочерних элементов без переписывания существующего кода. Работает с React, Solid, Vue, Svelte и обычным JavaScript.

    auto-animate
  2. html-to-image

    Преобразование HTML в изображение. Библиотека сохраняет любой DOM-узел как SVG, PNG, JPEG и другие форматы. Работает с React и обычным JavaScript.

    var node = document.getElementById('my-node');
    
    htmlToImage.toPng(node)
      .then(function (dataUrl) {
        var img = new Image();
        img.src = dataUrl;
        document.body.appendChild(img);
      })
      .catch(function (error) {
        console.error('oops, something went wrong!', error);
      });
  3. lx-music-desktop

    Бесплатный музыкальный поиск без рекламы. Настольная версия LuoXue Music Assistant построена на Electron и Vue; источники музыки нужно настроить самостоятельно. Работает в Windows, macOS, Linux и Android.

    lx-music-desktop
  4. threejs-tetris-react

    Трёхмерный тетрис. Игра создана с помощью Three.js, React и TypeScript.

    threejs-tetris-react
  5. workout-lol

    План тренировок для разных групп мышц. Небольшое веб-приложение на Next.js предлагает выбрать оборудование и часть тела, затем показывает упражнения с видеоинструкциями и текстовыми описаниями.

    workout-lol

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

  1. Sequel-Ace

    Клиент MySQL для macOS. Появился после прекращения обновлений Sequel Pro. Бесплатный проект с открытым кодом продолжает развиваться, поддерживает процессоры Intel и Apple и работает в macOS 10.13 и новее.

    Sequel-Ace

Проекты на Python

  1. codespell

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

    codespell some_file some_dir/ *.ext  # 检查目录下 ext 后缀文件
    codespell -w, --write-changes  # 显示修改建议
  2. holidays

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

    from datetime import date
    import holidays
    
    cn_holidays = holidays.CN()
    date(2021, 10, 1) in cn_holidays  # True
    date(2023, 10, 8) in cn_holidays  # False
    date(2024, 2, 9) in cn_holidays  # True 我看了下源码还未更新 2024 年的假期
  3. pwntools

    Популярный CTF-фреймворк и библиотека для разработки эксплойтов. Инструмент на Python предоставляет готовые средства для удалённого подключения, работы с сетью, сборки и дизассемблирования кода, анализа ELF и создания shellcode, чтобы сосредоточиться на логике эксплуатации уязвимости.

    from pwn import *
    context(arch = 'i386', os = 'linux')
    
    r = remote('exploitme.example.com', 31337)
    # 这里写漏洞利用逻辑
    r.send(asm(shellcraft.sh()))
    r.interactive()
    pwntools
  4. Qexo

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

    Qexo
  5. tacticalrmm

    Удалённый мониторинг и управление компьютерами. IT-платформа на Django и Vue.js поддерживает управление рабочим столом наподобие TeamViewer, удалённый запуск команд и сценариев, передачу файлов и оповещения.

    tacticalrmm

Проекты на Rust

  1. helix

    Терминальный текстовый редактор на Rust. Вдохновлён Kakoune и Neovim, готов к работе сразу после установки и дружелюбен к новичкам. Поддерживает режимы редактирования в стиле Vim, быструю подсветку через tree-sitter и LSP.

    helix
  2. mini-redis

    Учебная мини-версия Redis на Rust. Проект на Tokio реализует только PING, GET, SET и PUBLISH. Подходит для практики с Tokio, но не для промышленного применения.

    use tokio::net::TcpListener;
    use tokio::io::{AsyncReadExt, AsyncWriteExt};
    
    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        let listener = TcpListener::bind("127.0.0.1:8080").await?;
    
        loop {
            let (mut socket, _) = listener.accept().await?;
    
            tokio::spawn(async move {
                let mut buf = [0; 1024];
    
                // In a loop, read data from the socket and write the data back.
                loop {
                    let n = match socket.read(&mut buf).await {
                        // socket closed
                        Ok(n) if n == 0 => return,
                        Ok(n) => n,
                        Err(e) => {
                            eprintln!("failed to read from socket; err = {:?}", e);
                            return;
                        }
                    };
    
                    // Write the data back
                    if let Err(e) = socket.write_all(&buf[0..n]).await {
                        eprintln!("failed to write to socket; err = {:?}", e);
                        return;
                    }
                }
            });
        }
    }
  3. rust-blog

    Блог для начинающих изучать Rust. Статьи помогают освоить язык: есть советы новичкам и разбор стандартной библиотеки.

Проекты на Swift

  1. Delta

    Универсальный эмулятор старых игр для iOS. Работает без джейлбрейка и поддерживает игры NES, GBA, Nintendo 64 и других платформ.

    Delta

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

  1. AISystem

    Курс по ИИ-системам и глубокому обучению. Охватывает основы искусственного интеллекта и проектирование систем: ИИ-чипы, принципы работы компиляторов для ИИ и ключевые технологии фреймворков.

    AISystem
  2. deepface

    Лёгкая библиотека распознавания и анализа лиц. Фреймворк на Python по фотографии лица определяет возраст, пол, эмоции и другие признаки.

    deepface
  3. guidance

    Язык шаблонов для промптов от Microsoft. Помогает писать сложные, повторно используемые и удобные в сопровождении промпты для GPT-4, LLaMA и других больших языковых моделей.

Прочее

  1. AnuPpuccin

    Тема оформления для Obsidian. Поддерживает разные палитры, популярные цветовые схемы, радужные папки и собственный фон.

    AnuPpuccin
  2. fluentui-system-icons

    Коллекция иконок Microsoft. Богатый набор аккуратных и единообразных значков в стиле Fluent UI.

    fluentui-system-icons
  3. leetcode

    Подробный сборник решений алгоритмических задач. Включает задачи LeetCode и китайских книг «Советы для собеседований» и «Руководство по собеседованиям программистов». Решения есть на Java, Python, C++, Go, TypeScript и Rust.

    leetcode
  4. Smart_Plant

    Самодельный датчик для растений. Устройство вставляется в почву и измеряет её влажность, температуру и освещённость. Проект содержит только печатную плату; экран на электронных чернилах, солнечную панель и другие части нужно собрать самостоятельно.

    Smart_Plant
  5. TNT-Weekly

    Еженедельный обзор фронтенда TNT. Команда разработки Tencent News каждую неделю публикует интересные статьи и новости отрасли из Китая и других стран.

  6. try

    Предварительный просмотр результата команды. Позволяет увидеть эффект команды до её выполнения. Среда не полностью изолирована: все сетевые запросы разрешены.

    try

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

  1. latex-cookbook

    «Руководство по написанию научных работ в LaTeX». Книга охватывает основы LaTeX, редактирование текста, формулы, оформление графиков и таблиц, а также ссылки на литературу.

  2. Startup-CTO-Handbook

    «Руководство CTO стартапа». Книга для технических руководителей молодых компаний о найме и собеседованиях, управлении командой и архитектуре. Автор был CTO и CEO нескольких стартапов и предпринимателем-резидентом (EIR) в Tencent.