Веб-таблицы с Python и графики от руки

Выпуск № 41 ·

Проекты на C#

  1. csredis

    Клиентская библиотека Redis для C#, рекомендованная Redis.io. Поддерживает все команды Redis версий 2.8–5.0, а также Sentinel и кластеры. Проект развивается с 2016 года, сочетая простой вход, высокую производительность и возможности разделения данных. Автор 2881099 опубликовал на GitHub и другие полезные проекты на C#; к ним можно присоединиться и помочь сообществу открытого кода. Пример:

    var csredis = new CSRedis.CSRedisClient("127.0.0.1:6379,password=123");
    RedisHelper.Initialization(csredis);
    
    RedisHelper.Set("test1", "123123", 60);
    RedisHelper.Get("test1");
    //...函数名与 redis-cli 的命令相同
    
    //普通订阅
    RedisHelper.Subscribe(
      ("chan1", msg => Console.WriteLine(msg.Body)),
      ("chan2", msg => Console.WriteLine(msg.Body)));
    
    //管道操作
    RedisHelper.StartPipe().Set("a", "1").Get("a").EndPipe();

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

  1. awesome-modern-cpp

    Подборка материалов для освоения современного C++: лучшие практики, книги, конференции, доклады, подкасты, блоги, сайты, библиотеки и инструменты.

  2. fmt

    Библиотека форматирования C++ с открытым кодом. Быстрая и безопасная замена (s)printf и iostreams, а также реализация std::format из C++20. Синтаксис строк форматирования напоминает Python str.format; поддерживаются пользовательские типы. По сравнению с распространёнными реализациями printf и iostreams работает быстрее, выявляет ошибки формата при компиляции и защищает от переполнения буфера. Пример:

    fmt::print("Hello, {}!", "world");  // 类 Python 的语法风格
    fmt::printf("Hello, %s!", "world"); 

Проекты на Go

  1. go-github

    Клиент GitHub API на Go от Google. Поможет сэкономить время при создании серверной части сервиса на основе GitHub, а его код полезен как пример устройства Go-проекта и проектирования интерфейсов. Пример:

    import "github.com/google/go-github/v27/github" // 启用的 go module (GO111MODULE=on 或者不在 GOPATH 里)
    import "github.com/google/go-github/github" // 没启用 go module 时
    
    client := github.NewClient(nil)
    
    // 获取用户 "willnorris" 所在的所有组织
    orgs, _, err := client.Organizations.List(context.Background(), "willnorris", nil)
  2. gridstudio

    Веб-приложение электронных таблиц с серверной частью на Go. Позволяет обрабатывать данные на Python и сразу видеть результат. Объединяет загрузку, очистку, преобразование и визуализацию данных; доступно и онлайн. Особенно полезно тем, кто работает с данными на Python. Исходники дают возможность изучить устройство сложного приложения для таблиц. Установка:

    git clone https://github.com/ricklamers/gridstudio # clone 项目
    cd gridstudio && ./run.sh # 直接运行
    # 然后访问 http://127.0.0.1:8080 用户名:admin 密码:admin
    gridstudio
  3. simple-computer

    Симулятор простого компьютера и CPU на Go. Аппаратных компонентов в проекте нет: всё реализовано функциями Go, от логического элемента И-НЕ до небольшой виртуальной машины, которая складывает, вычитает и выводит результат. Модель наглядно показывает базовое устройство компьютера и принципы его работы. Новички смогут изучить CPU и увидеть необычное применение языка программирования. Команды запуска:

    make # 构建项目
    make test # 测试
    ./bin/simulator -bin _programs/brush.bin # 运行虚拟机
    simple-computer

Проекты на Java

  1. SmartSwipe

    Фреймворк для обработки боковых жестов, а не один готовый эффект. Внутри — более десяти вариантов, включая возврат жестом, удаление, «жалюзи» и «дверь». Пример:

    //为控件添加仿MIUI的弹性拉伸效果:
    //  当纵向不能滚动(或滚动到顶/底)时,若继续拖动,则 UI 呈现弹性拉伸效果,释放后平滑恢复
    SmartSwipe.wrap(view)
        .addConsumer(new StretchConsumer())
        .enableVertical();
    
    SmartSwipe.wrap(view)
        .addConsumer(new StretchConsumer())
        .enableVertical()   //仿 MIUI 拉伸效果的方向为:上下 2 个方向
        .addConsumer(new SpaceConsumer())
        .enableHorizontal()  //仿 iOS 弹性留白效果的方向为:左右 2 个方向
        ;
    
    SmartSwipeBack.activityBezierBack(application, null);   //仿小米 MIUI 系统的贝塞尔曲线返回效果
    SmartSwipeBack.activityStayBack(application, null);     //仿手机 QQ 的手势滑动返回
    SmartSwipeBack.activitySlidingBack(application, null);  //仿微信带联动效果的透明侧滑返回
    SmartSwipeBack.activityDoorBack(application, null);     //侧滑开门样式关闭 activity
    SmartSwipeBack.activityShuttersBack(application, null); //侧滑百叶窗样式关闭 activity
    
    //xxxMode 第二个参数为 false,表示工作方向为纵向:下拉刷新&上拉加载更多
    //如果第二个参数设置为 true,则表示工作方向为横向:右拉刷新&左拉加载更多
    SmartSwipeRefresh.drawerMode(view, false).setDataLoader(loader);
    SmartSwipeRefresh.behindMode(view, false).setDataLoader(loader);
    SmartSwipeRefresh.scaleMode(view, false).setDataLoader(loader);
    SmartSwipeRefresh.translateMode(view, false).setDataLoader(loader);
    SmartSwipe
  2. SoloPi

    Не требующий компьютера и изменений в приложении инструмент автоматизации Android. В публичной бета-версии есть запись и повтор действий, проверка производительности и управление несколькими устройствами с одного. У Android много версий и моделей устройств, поэтому выпуск зрелого приложения требует множества проверок. Инструмент сокращает время на повторяющиеся действия тестировщиков.

    SoloPi
  3. vhr

    Система управления персоналом с раздельными клиентской и серверной частями на Spring Boot и Vue. Охватывает много рабочих сценариев и подходит как учебный проект для будущего фулстек-разработчика.

    vhr
  4. XUI

    Простой и элегантный UI-фреймворк для нативных Android-приложений. Даёт разработчикам удобную библиотеку интерфейсных компонентов, похожую по роли на веб-библиотеки. Рассчитан на тех, кто уже знаком с Android-разработкой.

    XUI

Проекты на JavaScript

  1. chart.xkcd

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

    chart.xkcd
  2. fullPage.js

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

    <div id="fullpage">
      <div class="section">Some section</div>
      <div class="section">Some section</div>
      <div class="section">Some section</div>
      <div class="section">Some section</div>
    </div>
    fullPage.js
  3. PicGo

    Настольный инструмент загрузки изображений на основе electron-vue. Поддерживает фотохостинги Weibo, Qiniu, Tencent Cloud COS, UpYun, GitHub, SM.MS, Alibaba Cloud OSS и Imgur. Загрузку можно начать горячей клавишей или перетаскиванием, после чего ссылка автоматически копируется в буфер обмена. Работает на macOS, Windows и Linux.

    PicGo
  4. Valine

    Быстрый и небольшой плагин комментариев JavaScript без собственного сервера. Хранит данные через API LeanCloud, аккуратно оформлен, поддерживает Markdown и эмодзи. Владельцы статических блогов на Hexo или Hugo могут добавить комментарии за несколько шагов.

    Valine
  5. webtorrent

    Клиент для потокового воспроизведения торрентов на JavaScript. Позволяет смотреть видео, не дожидаясь полной загрузки, просто вставив ссылку на торрент. Есть настольные приложения для Windows, macOS и Linux.

    webtorrent

Проекты на Python

  1. bullet

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

    bullet
  2. DaPy

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

    DaPy
  3. PyUnit

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

    # 这是一个阳历转化农历的程序
    from jtyoui.plunar import SC
    if __name__ == '__main__':
        lun = SC(year=2018, month=1, day=2) #阳历转农历
        print(lun.y)  # 农历的年,中文字符 二零一九
        print(lun.year)  # 农历的年,阿拉伯数字 2019
        ...
        print(lun)  # 二零一九年 七月 十四 星期四 无

Проекты на Ruby

  1. overcommit

    Настраиваемый менеджер Git-хуков. Хуки запускают дополнительные действия при событиях Git — например, add, commit или push — и позволяют проверять качество кода и стиль сообщений коммитов. Overcommit даёт настроить такие действия без программирования, через конфигурацию. Прост в использовании, хорошо документирован, снабжён примерами и поддерживается активным сообществом.

    overcommit
  2. rest-client

    HTTP-клиент для Ruby. На момент публикации у него было около 100 тысяч пользователей. Отличается удобным API, поддерживает распространённые HTTP-методы, загрузку файлов и работу через прокси. Для большинства методов есть примеры:

    require 'rest_client'
    
    RestClient.get 'http://example.com/resource'
    
    RestClient.get 'http://example.com/resource', {:params => {:id => 50, 'foo' => 'bar'}}
    
    RestClient.get 'https://user:password@example.com/private/resource', {:accept => :json}
    
    RestClient.post 'http://example.com/resource', :param1 => 'one', :nested => { :param2 => 'two' }
    
    RestClient.post "http://example.com/resource", { 'x' => 1 }.to_json, :content_type => :json, :accept => :json
    
    RestClient.delete 'http://example.com/resource'
    
    response = RestClient.get 'http://example.com/resource'
    response.code
    ➔ 200
    response.cookies
    ➔ {"Foo"=>"BAR", "QUUX"=>"QUUUUX"}
    response.headers
    ➔ {:content_type=>"text/html; charset=utf-8", :cache_control=>"private" ...
    response.to_str
    ➔ \n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n   \"http://www.w3.org/TR/html4/strict.dtd\">\n\n<html ....
    
    RestClient.post( url,
      {
        :transfer => {
          :path => '/foo/bar',
          :owner => 'that_guy',
          :group => 'those_guys'
        },
         :upload => {
          :file => File.new(path, 'rb')
        }
      })

Проекты на Swift

  1. AppearancesSwitcher

    Небольшая утилита для быстрого переключения светлой и тёмной темы macOS из Центра уведомлений.

    AppearancesSwitcher

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

  1. Awesome-Multimodal-Research

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

  2. Non-local_pytorch

    Сторонняя реализация Non-local Net на PyTorch. Код короткий и понятный, но производительность пока не проверялась на крупных открытых наборах данных; есть пример на MNIST. Архитектура восходит к статье группы Kaiming He, которая привнесла механизм внимания в обработку изображений и повлияла на дальнейшие исследования. Facebook также открыл реализацию для классификации видео, но она написана на поддерживаемом компанией Caffe2.

  3. numpy-cn

    Перевод документации NumPy на китайский. Подойдёт для изучения библиотеки и как справочник. Новичкам рекомендуются материалы о принципах NumPy, первые уроки и способы создания массивов. В разделе дополнительных статей появляются материалы из разных стран; для самостоятельной реализации нейросетей есть статьи о NumPy, DNC, RNN и LSTM.

  4. rasa

    Фреймворк для многоходовых диалогов человека с компьютером. Состоит прежде всего из Rasa Core и Rasa NLU; поддерживает сценарии бесед, определение намерения и извлечение сущностей. Достаточно подготовить корпус в формате платформы, чтобы обучить модели. Число пользователей Rasa растёт, поэтому помимо официальной документации в сети можно найти учебные проекты.

    rasa

Прочее

  1. awesome-adb

    Подборка способов использования ADB (Android Debug Bridge).

  2. git-tips

    Подборка часто используемых команд Git.

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

  1. OnJava8

    Перевод книги «On Java 8» на китайский; также известна как «Философия Java».