RSS для всего и визуализация алгоритмов

Выпуск № 34 ·

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

  1. playerdemo

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

    playerdemo

Проекты на Go

  1. color

    Библиотека для цветного вывода в консоли на Go. Поддерживает множество вариантов оформления текста, универсальный API и работу в Windows.

    color
  2. gitbatch

    Консольная утилита для массового управления Git-репозиториями.

    gitbatch
  3. Modlishka

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

    Modlishka
  4. sqler

    Инструмент для создания API на основе SQL и конфигурационного файла. В отличие от традиционных генераторов RESTful API из SQL, позволяет настраивать предварительную и последующую обработку запросов, авторизацию и другие аспекты. Команда запуска: sqler -config=path to config file. Пример конфигурации:

    adduser {
    // 参数校验
        validators {
            user_name_is_empty = "$input.user_name && $input.user_name.trim().length > 0"
            user_email_is_empty = "$input.user_email && $input.user_email.trim(' ').length > 0"
            user_password_is_not_ok = "$input.user_password && $input.user_password.trim(' ').length > 5"
        }
    
        bind {
            name = "$input.user_name"
            email = "$input.user_email"
            password = "$input.user_password"
        }
    
        methods = ["POST"]
    // 权限校验
        authorizer = <<JS
            (function(){
                log("use this for debugging")
                token = $input.http_authorization
                response = fetch("http://requestbin.fullcontact.com/zxpjigzx", {
                    headers: {
                        "Authorization": token
                    }
                })
                if ( response.statusCode != 200 ) {
                    return false
                }
                return true
            })()
        JS
    
        exec = <<SQL
            INSERT INTO users(name, email, password, time) VALUES(:name, :email, :password, UNIX_TIMESTAMP());
            SELECT * FROM users WHERE id = LAST_INSERT_ID();
        SQL
    }
  5. txqr

    Передаёт данные, например файлы, с помощью динамических QR-кодов.

    txqr

Проекты на Java

  1. DevUtils

    Библиотека утилит для Android с единообразными комментариями, понятной документацией API и множеством вспомогательных классов. Компоненты сгруппированы по функциональным модулям, поэтому ими удобно пользоваться. Библиотека помогает разработчикам быстро создавать безопасные и надёжные проекты. В комплект входят часто используемые файлы ресурсов, например color.xml и layout.xml.

  2. VIABUS-Architecture

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

    VIABUS-Architecture

Проекты на JavaScript

  1. axial3d

    Анимационный эффект, похожий на страницу 404 GitHub. Выглядит интересно, подходит для разных сценариев и реализован в виде компонента. Пример кода:

    <html>
    <head>
        <title>Demo - Axial3d</title>
    </head>
    <body>
        <script src="https://unpkg.com/axial3d"></script>
        <div id="axial3d"></div>
        <script>
            (function () {
                var options = {
                    selector: '#axial3d',
                    imgs: [
                        {src: 'https://bestvist.github.io/axial3d/public/demo1/bg.png', left: '50px', top: '10px'},
                        {src: 'https://bestvist.github.io/axial3d/public/demo1/2.png', left: '150px', top: '10px'},
                        {src: 'https://bestvist.github.io/axial3d/public/demo1/3.png', left: '50px', top: '300px'},
                        {src: 'https://bestvist.github.io/axial3d/public/demo1/4.png', left: '300px', top: '300px'}
                    ]
                }
                var effect = new Axial3d(options);
            })()
        </script>
    </body>
    </html>
    axial3d
  2. giojs

    Библиотека компонентов с открытым кодом для визуализации данных на трёхмерном глобусе в браузере, построенная на Three.js. С Gio.js разработчики могут декларативно создавать собственные модели Web3D-визуализации, добавлять данные и встраивать результат в приложение как компонент. Поддерживает статический DOM, React и мини-приложения WeChat. Основные возможности:

    • Простота — для создания трёхмерной визуализации на глобусе достаточно четырёх строк JavaScript.
    • Настройка — богатый API Gio.js позволяет менять оформление трёхмерного глобуса.
    • Современный подход — Gio.js подходит для создания интерактивных, кроссплатформенных и адаптивных трёхмерных веб-приложений.
    giojs
  3. gridea

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

    gridea
  4. omi

    Универсальный фреймворк веб-компонентов с открытым кодом от Tencent. Особенности:

    • Официальная библиотека UI-компонентов.
    • Совместимость с IE8 при использовании omio.
    • Продуманная архитектура и хорошая совместимость.
    • Основа на стандарте Web Components.
    • И другие возможности.
    import { render, WeElement, define } from 'omi'
    
    define('my-counter', class extends WeElement {
        static observe = true
    
        data = {
          count: 1
        }
    
        sub = () => {
          this.data.count--
        }
    
        add = () => {
          this.data.count++
        }
    
        render() {
          return (
            <div>
              <button onClick={this.sub}>-</button>
              <span>{this.data.count}</span>
              <button onClick={this.add}>+</button>
            </div>
          )
        }
      })
    
    render(<my-counter />, 'body')
  5. RSSHub

    Лёгкий и расширяемый генератор RSS, способный превратить практически любой необычный контент в RSS-ленту. Уже поддерживает множество источников, подробности — в документации.

  6. vConsole

    Консольная утилита для разработки и отладки мобильных H5-приложений с открытым кодом от Tencent. Позволяет просматривать сообщения console, сетевые запросы, подключать собственные плагины и многое другое. Пример кода:

    <script src="path/to/vconsole.min.js"></script>
    <script>
      // init vConsole
      var vConsole = new VConsole();
      console.log('Hello world');
    </script>
    
    vConsole
  7. weapp-library

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

    weapp-library

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

  1. Karabiner-Elements

    Мощная утилита для переназначения клавиш в macOS.

  2. keycastr

    Утилита для показа нажимаемых клавиш на экране в реальном времени.

    keycastr

Проекты на PHP

  1. laravel-s

    Готовое решение для быстрой интеграции Swoole с Laravel. Особенности:

    • После подключения LaravelS не требуется PHP FPM: HTTP-сервер запускается непосредственно на Swoole.
    • Код постоянно хранится в памяти, что заметно повышает производительность.
    • Позволяет быстро разрабатывать сервисы WebSocket, TCP и UDP.
    • Поддерживает очереди асинхронных задач, собственные процессы и задачи по расписанию, охватывая больше бизнес-сценариев.
    • Предоставляет прямой доступ ко многим возможностям Swoole.
    • И другие возможности.
    laravel-s

Проекты на Python

  1. awesome-python-applications

    Англоязычная подборка интересных и необычных проектов на Python с открытым кодом. Уже охватывает множество областей и содержит большое количество проектов.

  2. click

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

    import click
    
    @click.command()
    @click.option("--count", default=1, help="Number of greetings.")
    @click.option("--name", prompt="Your name",
                  help="The person to greet.")
    def hello(count, name):
        """Simple program that greets NAME for a total of COUNT times."""
        for _ in range(count):
            click.echo("Hello, %s!" % name)
    
    if __name__ == '__main__':
        hello()
    
    # 下面为运行效果
    $ python hello.py --count=3
    Your name: Click
    Hello, Click!
    Hello, Click!
    Hello, Click!
  3. PSpider

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

    • Полный набор функций: загрузка, разбор и хранение данных.
    • Небольшая кодовая база: исходники удобно читать, изменять и использовать для собственной разработки.
    • И другие возможности.
    PSpider
  4. ranger

    Утилита для быстрого и удобного управления файлами с управлением в стиле Vim.

  5. sherlock

    Англоязычная утилита, которая проверяет наличие заданного имени пользователя на популярных сайтах, например GitHub и Facebook. Хотите придумать уникальное имя? Попробуйте этот инструмент.

    sherlock

Проекты на Swift

  1. iOS-Developer-Roadmap

    Англоязычная карта обучения для iOS-разработчиков.

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

  1. RecommenderSystem-Paper

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

  2. Semantic-Segmentation-Suite

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

    Semantic-Segmentation-Suite
  3. spinningup

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

  4. the-gan-zoo

    Большая коллекция материалов о генеративно-состязательных сетях (Generative Adversarial Networks, GAN). Автор собрал разнообразные применения GAN: преимущественно научные статьи и несколько проектов на GitHub. Подборка всесторонне охватывает область, а список публикаций хорошо организован, поэтому исследователи GAN могут находить в нём нужные классические работы и расширять свои знания.

    the-gan-zoo
  5. transformers

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

    import torch
    from pytorch_pretrained_bert import BertTokenizer, BertModel, BertForMaskedLM
    
    # Load pre-trained model tokenizer (vocabulary)
    tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
    
    # Tokenized input
    text = "Who was Jim Henson ? Jim Henson was a puppeteer"
    tokenized_text = tokenizer.tokenize(text)
    
    # Mask a token that we will try to predict back with `BertForMaskedLM`
    masked_index = 6
    tokenized_text[masked_index] = '[MASK]'
    assert tokenized_text == ['who', 'was', 'jim', 'henson', '?', 'jim', '[MASK]', 'was', 'a', 'puppet', '##eer']
    
    # Convert token to vocabulary indices
    indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)
    # Define sentence A and B indices associated to 1st and 2nd sentences (see paper)
    segments_ids = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]
    
    # Convert inputs to PyTorch tensors
    tokens_tensor = torch.tensor([indexed_tokens])
    segments_tensors = torch.tensor([segments_ids])

Прочее

  1. algorithm-visualizer

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

    algorithm-visualizer
  2. html

    «Стандарт HTML»: версия на китайском языке.

  3. Visual-Studio-Code-Keymap-CN

    Перевод официальной схемы сочетаний клавиш редактора VS Code на китайский язык.