TLS по байтам и робот для рабочего стола

Выпуск № 72 ·

Проекты на C

  1. hashcat

    Мощный инструмент восстановления паролей. Очень быстро перебирает пароли, поддерживает множество алгоритмов и работает в Linux, macOS и Windows.

    安装:brew install hashcat
    常用参数:
    -a  指定破解模式:“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击
    -m  指定要破解的 hash 类型:默认为 MD5
    --force 忽略破解过程中的警告
    
    常用破解模式:
    0:Straight(字典破解)
    1:Combination(组合破解)
    3:Brute-force(掩码暴力破解)
    6:Hybrid Wordlist + Mask(字典+掩码破解)
    7:Hybrid Mask + Wordlist(掩码+字典破解)
    
    常用掩码设置:
    l:纯小写字母 abcdefghijklmnopqrstuvwxyz
    u:纯大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ
    d:纯数字 0123456789
    
    举例:破解 8 位数字密码
    hashcat -a 3 -m 0 --force 0D7002A70CCDE8BF4BA2A4A5572A85E9(密码md5字符串) ?l?l?l?l?l?l?l?l?l?l?l(11 位密码的掩码)
    hashcat
  2. reptyr

    Полезная утилита для переноса запущенной программы из старого окна терминала в новое.

    reptyr

Проекты на C#

  1. Monitorian

    Настольная программа для удобной настройки яркости нескольких мониторов в Windows. Интерфейс доступен на китайском языке; мониторы должны поддерживать и использовать DDC/CI.

    Monitorian
  2. PluginCore

    Легковесный плагинный фреймворк для ASP.NET Core. Готов к работе сразу после установки и включает веб-интерфейс управления плагинами.

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
        // 1. Add PluginCore
        services.AddPluginCore();
    }
    
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // ...
        // 2. Use PluginCore
        app.UsePluginCore();
    }
    PluginCore

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

  1. coost

    Библиотека корутин для C++, похожих на goroutine в Go. Реализует события синхронизации, блокировки, пул корутин, каналы и waitgroup. Экономно расходует память: в тесте 10 миллионов корутин занимали 2,8 ГБ.

    #include "co/co.h"
    
    DEF_main(argc, argv) {
        co::Chan<int> ch;
        go([ch]() { /* capture by value, rather than reference */
            ch << 7;
        });
    
        int v = 0;
        ch >> v;
        LOG << "v: " << v;
    
        return 0;
    }

Проекты на CSS

  1. log

    Библиотека CSS со стилем сообщений браузерного console.log. Посмотреть пример.

    log

Проекты на Go

  1. gota

    Библиотека обработки данных на Go. Предлагает функции, похожие на Python-библиотеку Pandas, и структуры Series и DataFrame для эффективной работы с данными по столбцам.

    type User struct {
        Name     string
        Age      int
        Accuracy float64
    }
    users := []User{
        {"Aram", 17, 0.2},
        {"Juan", 18, 0.8},
        {"Ana", 22, 0.5},
    }
    df := dataframe.LoadStructs(users)
    fmt.Println(df)
    
    // Output:
    // [3x3] DataFrame
    //
    //     Name     Age   Accuracy
    //  0: Aram     17    0.200000
    //  1: Juan     18    0.800000
    //  2: Ana      22    0.500000
    //     <string> <int> <float>
  2. gse

    Высокопроизводительная библиотека многоязычной сегментации текста на Go. Реализация Jieba для Go поддерживает китайский язык и интеграцию с Elasticsearch.

    text  = "《复仇者联盟3:无限战争》是全片使用IMAX摄影机拍摄制作的的科幻片."
    // use DAG and HMM
    hmm := seg.Cut(text, true)
    fmt.Println("cut use hmm: ", hmm)
    // cut use hmm:  [《复仇者联盟3:无限战争》 是 全片 使用 imax 摄影机 拍摄 制作 的 的 科幻片 .]
  3. hh-lol-prophet

    Анализатор матчей League of Legends. Через API клиента игры получает сведения об игроках, анализирует и оценивает их перед началом матча. По описанию проекта, инструмент бесплатен, разрешён и не приводит к блокировке аккаунта.

    hh-lol-prophet
  4. illustrated-tls12

    Наглядное объяснение TLS-соединения. Интерактивная страница разбирает обмен по байтам: от установления TLS 1.2 до отправки ping клиентом и получения pong. Изучить онлайн.

    illustrated-tls12

Проекты на Java

  1. LSPosed

    Фреймворк перехвата вызовов для Android 8 и новее. Может перехватывать почти любые вызовы Java-функций и тем самым изменять поведение системы и приложений.

    LSPosed
  2. supertokens-core

    Решение для аутентификации с открытым кодом. Помогает добавить в приложение вход и управление сессиями. Сервер можно разместить у себя; проект предлагают как открытую альтернативу Auth0.

    supertokens-core

Проекты на JavaScript

  1. chameleon

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

    chameleon
  2. charts

    Простая адаптивная библиотека SVG-диаграмм без зависимостей.

    const data = {
        labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
            "12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
        ],
        datasets: [
            {
                name: "Some Data", chartType: "bar",
                values: [25, 40, 30, 35, 8, 52, 17, -4]
            },
            ...
    ]}
    
    const chart = new frappe.Chart("#chart", 
    {   // or a DOM element,
        // new Chart() in case of ES6 module with above usage
        title: "My Awesome Chart",
        data: data,
        type: 'axis-mixed', // or 'bar', 'line', 'scatter', 'pie', 'percentage'
        height: 250,
        colors: ['#7cd6fd', '#743ee2']
    })
    charts
  3. lax.js

    Библиотека для плавной анимации при прокрутке страницы. Весит всего 4 КБ, оставаясь функциональной и гибкой.

    
    <script>
      window.onload = function () {
        lax.init()
    
        // Add a driver that we use to control our animations
        lax.addDriver('scrollY', function () {
          return window.scrollY
        })
    
        // Add animation bindings to elements
        lax.addElements('.selector', {
          scrollY: {
            translateX: [
              ["elInY", "elCenterY", "elOutY"],
              [0, 'screenWidth/2', 'screenWidth'],
            ]
          }
        })
      }
    </script>
    
    
    <div class="selector">Hello</div>
    lax.js
  4. reveal.js

    Фреймворк для HTML-презентаций. Позволяет создавать слайды из HTML и Markdown вместо работы в обычном редакторе презентаций.

    reveal.js
  5. tinykeys

    Миниатюрная библиотека для обработки событий клавиатуры.

    import tinykeys from "tinykeys"
    
    tinykeys(window, {
      "Shift+D": () => {
        alert("The 'Shift' and 'd' keys were pressed at the same time")
      },
      "y e e t": () => {
        alert("The keys 'y', 'e', 'e', and 't' were pressed in order")
      },
      "$mod+KeyD": () => {
        alert("Either 'Control+d' or 'Meta+d' were pressed")
      },
    })

Проекты на Kotlin

  1. compose-tetris

    Игра «Тетрис» на Jetpack Compose.

    compose-tetris

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

  1. HBDNavigationBar

    Компонент для настройки UINavigationBar с плавными переходами между состояниями.

Проекты на Python

  1. pokete

    Игра в духе Pokémon для терминала. Графика построена из простых ASCII-символов, но в игре есть магазин, коллекционные существа и сражения.

    运行方法:
    # pip install scrap_engine
    $ git clone https://github.com/lxgr-linux/pokete.git
    $ ./pokete/pokete.py
    pokete
  2. rembg

    Простой и удобный инструмент удаления фона с изображений.

    from rembg import remove
    from PIL import Image
    
    input_path = 'input.png'
    output_path = 'output.png'
    
    input = Image.open(input_path)
    output = remove(input)
    output.save(output_path)
    rembg
  3. saleor

    Платформа электронной торговли на Python. Построена на Django, GraphQL API и React. Поддерживает мобильные устройства, управление заказами, товарами и пользователями. Попробовать онлайн.

    saleor
  4. textdistance

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

    import textdistance
    textdistance.hamming.normalized_similarity('test', 'text')
    # 相似度为 0.75
    textdistance
  5. tiptop

    Консольная утилита для мониторинга системы с выразительным интерфейсом.

    安装:pip install tiptop
    运行:tiptop
    tiptop

Проекты на Swift

  1. OnlySwitch

    Бесплатная программа с открытым кодом для быстрой настройки macOS из строки меню. Умеет скрывать значки рабочего стола, очищать кеш Xcode, маскировать вырез на экране, включать Night Shift и выполнять десятки других действий.

    OnlySwitch

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

  1. awesome-automl-papers

    Коллекция научных статей, руководств и других материалов об автоматизированном машинном обучении (AutoML).

    awesome-automl-papers
  2. deep-learning-for-image-processing

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

  3. serve

    Простой фреймворк нейронного поиска. Такой поиск находит неструктурированные данные по неструктурированному запросу. Jina упрощает создание систем поиска изображений по изображению или тексту, вопросно-ответных ботов, поиска дубликатов фотографий и классификации больших наборов меток.

    from docarray import Document, DocumentArray
    from jina import Executor, Flow, requests
    class PreprocImg(Executor):
        @requests
        async def foo(self, docs: DocumentArray, **kwargs):
            for d in docs:
                (
                    d.load_uri_to_image_tensor(200, 200)  # load
                    .set_image_tensor_normalization()  # normalize color
                    .set_image_tensor_channel_axis(
                        -1, 0
                    )  # switch color axis for the PyTorch model later
                )
    serve

Прочее

  1. blog_os

    Пошаговое руководство по созданию операционной системы с нуля на Rust. Начинается с пустой папки и настройки среды, затем объясняет принципы работы ОС на примерах кода. Основное руководство написано на английском, но примеры помогают его читать. Перевод на китайский.

  2. design-patterns-for-humans

    Доступное руководство по паттернам проектирования. Версия на китайском.

    design-patterns-for-humans
  3. electerm

    Терминальная программа с поддержкой SSH и SFTP. Работает в Windows, Linux и macOS; интерфейс доступен на китайском языке.

    electerm
  4. ElectronBot

    Самодельный настольный робот. Имеет дисплей с передачей изображения по USB и шесть степеней свободы, распознаёт жесты и ключевые точки тела. Репозиторий содержит все материалы для разработки и SDK, чтобы собрать такого робота самостоятельно.

    ElectronBot
  5. english-words

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

  6. Learn-Vim

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

    Learn-Vim

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

  1. Deep-Learning-with-TensorFlow-book

    «Глубокое обучение с TensorFlow» — книга на китайском языке.

    Deep-Learning-with-TensorFlow-book
  2. microfrontends

    «О микрофронтендах» — книга на китайском языке о переходе от монолитного веб-приложения к объединению нескольких небольших фронтенд-приложений.