Снимки кода и быстрая работа с датами

Выпуск № 26 ·

Проекты на C

  1. ttygif

    Запись терминала в GIF.

    ttygif

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

  1. TrafficMonitor

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

    TrafficMonitor

Проекты на CSS

  1. CaoMei

    Бесплатная и тщательно проработанная библиотека значков с открытым кодом.

    • Аккуратная отрисовка — единый стиль и точность до пикселя.
    • Эффективность — лёгкие ресурсы, гибкость и совместимость с разными устройствами.
    • Открытость — бесплатное использование в личных и коммерческих проектах.
    CaoMei
  2. You-need-to-know-css

    Подборка распространённых приёмов CSS и заметок автора по книге «Секреты CSS» (CSS Secrets). Подойдёт тем, кто хочет улучшить навыки CSS.

Проекты на Go

  1. go-perfbook

    «Размышления об оптимизации производительности Go» — обзор лучших практик написания производительного кода на Go. На китайском.

  2. gopool

    Распределённые пулы соединений и горутин для Go. Включает реализацию пула соединений с Redis Client и обладает следующими возможностями:

    • Обеспечивает высокую доступность нижестоящих сервисов и исключает нездоровые узлы по результатам голосования.
    • Позволяет настроить минимальную долю здоровых узлов и максимальное время их охлаждения.
    • Использует отдельный channel для каждого нижестоящего узла, обеспечивая балансировку нагрузки.
    • Предоставляет интерфейс мониторинга состояния пула: общее число соединений и число соединений для каждого IP-адреса.
  3. lgo

    Интерактивное программирование на Go в стиле Python с интеграцией Jupyter Notebook. Результат выглядит так:

    lgo

Проекты на Java

  1. AutoEx

    Инструмент для Android-разработчиков, который при сбое автоматически ищет подходящие ответы на Stack Overflow по стеку исключения. Занимает всего 9 КБ и не зависит от сторонних библиотек. При возникновении исключения выводит следующее:

    ┌—————————————————————AutoEx——————————————————————
    ├ 错误类型:android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0056 type #0x12 is not valid。↑详细异常请往上滚动查看↑
    ├ 推荐参考Stack Overflow上4条同类问题。↓点击下方连接查看↓
    ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
    ├ 标题:Android Resources$NotFoundException: Resource ID #0x7f030027
    ├ 链接:https://stackoverflow.com/questions/21269502/android-resourcesnotfoundexception-resource-id-0x7f030027
    ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
    ├ 标题:android.content.res.Resources$NotFoundException: Resource ID #0x7f07007e
    ├ 链接:https://stackoverflow.com/questions/48161713/android-content-res-resourcesnotfoundexception-resource-id-0x7f07007e
    ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
    ├ 标题:App crashes when adding an ImageView?
    ├ 链接:https://stackoverflow.com/questions/47600747/app-crashes-when-adding-an-imageview
    ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
    ├ 标题:XML Android app will not load on phone
    ├ 链接:https://stackoverflow.com/questions/48310838/xml-android-app-will-not-load-on-phone
    └—————————————————————AutoEx——————————————————————
  2. javatuples

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

    ...
    String str = ...;
    Integer integ = ...;
    Double[] doubleArray = ...;
    ...
    
    // create a tuple
    Triplet<String,Integer,Double[]> triplet = Triplet.with(str, integ, doubleArray); 
    
    // fetch data
    ...
    String myStr = triplet.getValue0();
    Integer myInteg = triplet.getValue1();
    Double[] myDoubleArray = triplet.getValue2();
    ...

Проекты на JavaScript

  1. BizCharts

    Библиотека диаграмм на основе React от команды Ant Financial. Предлагает множество стилей, проста в использовании и расширении, снабжена полной документацией. Официальный сайт.

  2. carbon

    Инструмент для красивого и аккуратного оформления фрагментов кода. Поддерживает экспорт в SVG и PNG.

    carbon
  3. dayjs

    Лёгкая JavaScript-библиотека для работы с датой и временем. Её API полностью совместим с Moment.js, поэтому пользователи Moment.js уже умеют работать с Day.js. При размере всего 2 КБ это компактная альтернатива Moment.js. Пример:

    dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
  4. javascript-algorithms

    Реализации множества алгоритмов и структур данных на JavaScript. На китайском.

  5. tui.calendar

    Полнофункциональный JavaScript-календарь для планирования. Проект зависит от jQuery, что вполне допустимо для реальных приложений. Подходит для разных сценариев и предлагает эффектные интерфейс и взаимодействие.

    tui.calendar

Проекты на Python

  1. marshmallow

    Сериализация и десериализация объектов Python с синтаксисом, похожим на ORM. Сериализованные объекты можно представить в стандартном формате, например для проверки данных или возврата JSON через HTTP API. Пример:

    from datetime import date
    from marshmallow import Schema, fields, pprint
    
    class ArtistSchema(Schema):
        name = fields.Str()
    
    class AlbumSchema(Schema):
        title = fields.Str()
        release_date = fields.Date()
        artist = fields.Nested(ArtistSchema())
    
    bowie = dict(name='David Bowie')
    album = dict(artist=bowie, title='Hunky Dory', release_date=date(1971, 12, 17))
    
    schema = AlbumSchema()
    result = schema.dump(album)
    pprint(result, indent=2)
    # 输出如下
    # { 'artist': {'name': 'David Bowie'},
    #   'release_date': '1971-12-17',
    #   'title': 'Hunky Dory'}
  2. redis-faina

    Анализатор производительности Redis. Работает в двух режимах: анализирует команды в реальном времени или читает журнал. Инструмент запускает команду Redis MONITOR, передаёт её вывод по каналу в скрипт redis-faina, а тот разбирает данные и формирует сводную статистику. Пример результата:

    注意:分析非常闲的 redis 实例时,分析的结果可能偏差的很多。
    时间单位为微秒:ms = 1.0 × 10^-6 seconds
    
    Overall Stats
    ========================================
    # 总命令数
    Lines Processed     10
    # QPS
    Commands/Sec        1.03       
    
    # 出现最多的 key 的前缀
    Top Prefixes                           
    ========================================
    startchart      9   (90.00%)
    
    # 请求最多的key
    Top Keys                                
    ========================================
    startchart:521xueweihan/hellogithub     9   (90.00%)
    
    # 请求最多的命令
    Top Commands                        
    ========================================
    get     9   (90.00%)
    
    # 请求响应时间的分布
    Command Time (microsecs)       
    ========================================
    Median      583914.0
    75%         637395.0
    90%         5703923.0
    99%         5703923.0
    
    # 总耗时最多的命令
    Heaviest Commands (microsecs)
    ========================================
    get     9746157.0
    
    # 慢请求列表
    Slowest Calls                             
    ========================================
    5703923.0   "get" "startchart:521xueweihan/hellogithub"
    637395.0    "get" "startchart:521xueweihan/hellogithub"
    633909.0    "get" "startchart:521xueweihan/hellogithub"
    583914.0    "get" "startchart:521xueweihan/hellogithub"
    569207.0    "get" "startchart:521xueweihan/hellogithub"
    548745.0    "get" "startchart:521xueweihan/hellogithub"
    545493.0    "get" "startchart:521xueweihan/hellogithub"
    523571.0    "get" "startchart:521xueweihan/hellogithub"

Проекты на Rust

  1. fd

    Простая, быстрая и удобная альтернатива команде find.

    fd
  2. rayon

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

Проекты на Swift

  1. CocoaDebug

    Встраиваемый инструмент отладки iOS-приложений: просмотр логов, перехват сетевого трафика, доступ к песочнице и другие возможности без вмешательства в код. Пример:

    //Step 1.
    #if DEBUG
        import CocoaDebug
    #endif
    
    //Step 2.
    #if DEBUG
        CocoaDebug.enable()
    #endif
    
    //Step 3.
    public func print<T>(file: String = #file, function: String = #function, line: Int = #line, _ message: T, color: UIColor = .white) {
        #if DEBUG
            swiftLog(file, function, line, message, color)
        #endif
    }
    CocoaDebug

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

  1. AlphaZero_Gomoku

    Реализация алгоритма AlphaZero на TensorFlow, PyTorch и Theano, обучающая ИИ игре в гомоку с нуля через партии с самим собой. Простой и понятный код подходит для изучения ключевых идей и технических деталей AlphaGo Zero.

    AlphaZero_Gomoku

Прочее

  1. a-cartoon-intro-to-redux-cn

    «Изучаем Redux по комиксам».

  2. architect-awesome

    «Карта технологий серверного архитектора».

  3. architecture.of.internet-product

    Документация об архитектуре известных интернет-компаний.

  4. practical-programming-books

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

  5. public-apis

    Коллекция публичных API для веб-разработки на английском языке.

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

  1. sicp-py-zh

    Китайский перевод книги «Структура и интерпретация компьютерных программ» на примерах Python. Читать онлайн.