Калькулятор Windows, Fira Code и визуализация данных

Выпуск № 36 ·

Проекты на C#

  1. koral

    Открытый кроссплатформенный язык программирования, в котором главное — простота. Он задуман так, чтобы код было легче читать и писать, а синтаксис не отвлекал от решения задачи. Koral позволяет изящно выражать логику небольшим объёмом кода. Доступно руководство на китайском языке. Пример:

    # export namespace
    \HelloWorld {
        System # import namespace
    }
    # package
    program -> {
        # main function
        Main() -> () {
            # list
            greetings := {"Hello", "Hola", "Bonjour",
                        "Ciao", "こんにちは", "안녕하세요",
                        "Cześć", "Olá", "Здравствуйте",
                        "Chào bạn", "您好"}
            # for-each  
            @ item <- greetings {
                # switch
                ? item -> [ 0 <= 8 ] {
                    prt(item) # call function
                } _ {
                    # lambda
                    prt( greetings.filter( {it -> it.len> 4} ) )
                    <- @
                }
            }
        }
    }

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

  1. calculator

    Калькулятор из стандартной поставки Microsoft Windows получил открытый код. В нём есть обычный, инженерный и программистский режимы, а также преобразование единиц измерения и валют. Реализация на C++ не слишком сложна, поэтому проект позволяет познакомиться с кодом инженеров Microsoft. Так выглядит приложение:

    calculator

Проекты на CSS

  1. bootstrap-table

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

    <table data-toggle="table">
      <thead>
        <tr>
          <th>Item ID</th>
          <th>Item Name</th>
          <th>Item Price</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>1</td>
          <td>Item 1</td>
          <td>$1</td>
        </tr>
        <tr>
          <td>2</td>
          <td>Item 2</td>
          <td>$2</td>
        </tr>
      </tbody>
    </table>
    bootstrap-table
  2. CSS-Inspiration

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

Проекты на Go

  1. auxpi

    Простое приложение для размещения изображений через API. Оно объединяет API популярных фотохостингов и предоставляет GUI для управления; установка несложная.

    auxpi
  2. etcd

    Высокодоступная распределённая база данных «ключ — значение» и стандартный сервис регистрации и обнаружения для экосистемы Kubernetes. Etcd написана на Go и использует алгоритм консенсуса Raft. На примере проекта можно изучить практическое применение Raft.

    # 使用 etcd 的客户端存取键值对
    $ etcdctl put mykey "this is awesome"
    $ etcdctl get mykey
  3. harness

    Платформа непрерывной интеграции на основе Docker, написанная на Go.

    harness
  4. learn-go-with-tests

    Курс Go через модульные тесты. После загрузки репозитория перейдите в нужный каталог: каждая вложенная папка представляет отдельный проект Go, где командой go test запускаются тесты. Обучение построено на разработке через тестирование, поэтому задание считается выполненным, когда тесты проходят после ваших изменений. В каждой папке есть понятное руководство в Markdown, а также доступна версия на китайском языке.

  5. pprof

    Инструмент профилирования Go для поиска утечек памяти, утечек goroutine и других проблем. Использование:

    # 安装
    $ go get -u github.com/google/pprof
    # 生成一个profile文件
    $ pprof -top [你的golang程序二进制文件] profile.pb.gz
    # 生成火焰图
    $ pprof -web [你的golang程序二进制文件] profile.pb.gz

Проекты на Java

  1. Luban

    Сжатие изображений — распространённая задача, но как её решает WeChat? Алгоритм Luban («Лу Бань») восстановили, отправив в ленту WeChat почти 100 изображений разного разрешения и сравнив оригиналы со сжатыми версиями. Пример:

    // 同步调用
    Flowable.just(photos)
        .observeOn(Schedulers.io())
        .map(new Function<List<String>, List<File>>() {
          @Override public List<File> apply(@NonNull List<String> list) throws Exception {
            // 同步方法直接返回压缩后的文件
            return Luban.with(MainActivity.this).load(list).get();
          }
        })
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe();
    Luban
  2. yacy_search_server

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

    • В GNU/Linux: запуск — ./startYACY.sh, остановка — ./stopYACY.sh.
    • В Windows: для запуска дважды щёлкните startYACY.bat, для остановки — stopYACY.bat.
    • В Mac OS X используйте приложение Mac и запускайте или останавливайте его двойным щелчком, как любое другое приложение.

Проекты на JavaScript

  1. griffith

    Инструмент, который упрощает потоковое воспроизведение. Для видео в форматах mp4 и hls Griffith использует расширения источников мультимедиа (MSE), чтобы загружать контент по частям и воспроизводить его онлайн. Пример:

    // yarn add griffith
    
    import Player from 'griffith'
    
    const sources = {
      hd: {
        play_url: 'https://zhstatic.zhihu.com/cfe/griffith/zhihu2018_hd.mp4',
      },
      sd: {
        play_url: 'https://zhstatic.zhihu.com/cfe/griffith/zhihu2018_sd.mp4',
      },
    }
    
    render(<Player sources={sources} />)
  2. makegirlsmoe_web

    Генератор изображений персонажей аниме. Можно выбрать цвет и стиль волос, глаза, оттенок кожи, улыбку и другие черты, а затем создать собственный симпатичный аниме-аватар. Попробовать онлайн.

    makegirlsmoe_web
  3. ncform

    Компонент для генерации UI форм по заданным параметрам. Встроенные правила валидации покрывают 90% повседневных требований. Разработка форм обычно отнимает много сил, а ncform создаёт их из конфигурации и заметно ускоряет работу.

    ncform
  4. vscode-leetcode

    Расширение для решения задач LeetCode прямо в редакторе VS Code. Оно позволяет просматривать популярные решения, отправлять и проверять ответы. Помогает эффективнее готовиться к собеседованиям при поиске первой или следующей работы и заниматься в свободную минуту.

    vscode-leetcode
  5. Web

    Иллюстрированный вводный курс по фронтенду с нуля. Подробный материал будет особенно полезен начинающим веб-разработчикам.

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

  1. BackgroundMusic

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

    BackgroundMusic

Проекты на PHP

  1. PasteMe

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

    PasteMe
  2. php-console

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

    php-console

Проекты на Python

  1. awesome-python-login-model

    Коллекция способов авторизации на популярных сайтах и парсеров для некоторых из них. Среди примеров — вход через Selenium и непосредственная имитация запросов на основе перехваченного трафика. Проект помогает новичкам изучать и создавать веб-парсеры.

  2. better-exceptions

    Более понятный, полезный и красивый вывод исключений Python.

    better-exceptions
  3. dash

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

    dash
  4. ds-cheatsheets

    Шпаргалки по библиотекам и инструментам Python для Data Science, включая Pandas, Jupyter, SQL и Dask. В них собраны базовые вызовы API, которых достаточно для быстрого поиска и освежения знаний.

    ds-cheatsheets
  5. gita

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

    gita
  6. pylane

    Инструмент внедрения кода в процессы Python и их отладки на основе GDB. Он трассирует процесс Python через GDB, а затем динамически внедряет фрагмент кода в виртуальную машину Python внутри этого процесса, позволяя выполнить произвольную логику в уже работающем процессе. Другие приёмы отладки Python описаны в этой статье на китайском языке.

    pylane
  7. scrapydweb

    Платформа управления веб-парсерами Scrapy. Поддерживает управление кластером Scrapyd, визуализацию журналов, задачи по расписанию, уведомления по электронной почте и мобильный UI.

    scrapydweb

Проекты на Ruby

  1. jekyll

    Мощный генератор статических блогов. Не требует базы данных и позволяет легко создать статический блог из Markdown и файла конфигурации. Зрелый проект с активным сообществом и множеством тем. Готовый блог можно бесплатно опубликовать через GitHub Pages. Быстрый старт:

    1. 安装 jekll:gem install bundler jekyll
    2. 创建项目:jekyll new my-awesome-site
    3. 进入新创建的项目:cd my-awesome-site
    4. 本地运行:bundle exec jekyll serve
    5. 本地访问地址:http://localhost:4000

Проекты на Swift

  1. Bagel

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

    Bagel

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

  1. BigGAN-PyTorch

    «Прощай, TPU»: «самую мощную в истории» BigGAN можно обучать всего на 4–8 GPU, избавившись от жёстких требований к вычислительным ресурсам.

  2. faceswap

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

  3. GNNPapers

    После появления свёрточных нейронных сетей их чаще всего применяли к данным с регулярной пространственной структурой, например к изображениям. Однако в реальном мире намного больше данных без такой структуры, поэтому исследователи предложили графовые нейронные сети (GNN) для их обработки. Проект содержит довольно полный список статей о GNN и рассчитан на читателей с базовой подготовкой.

  4. QuickDraw

    Популярная онлайн-игра от Google, в которой нейросеть угадывает, что вы рисуете. Она учится на каждом рисунке и постепенно точнее распознаёт наброски. Этот репозиторий позволяет создать собственную версию Quick Draw на Python.

  5. Virgilio

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

Прочее

  1. ChinaMobilePhoneNumberRegex

    Набор регулярных выражений для проверки номеров мобильных телефонов материкового Китая.

  2. ChromeAppHeroes

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

  3. FiraCode

    Бесплатный шрифт с открытым кодом, который делает код выразительнее. Этот моноширинный шрифт создан специально для программистов, а его главная особенность — лигатуры. Они автоматически объединяют распространённые сочетания символов, например != и =>, в единый легко читаемый знак, благодаря чему код выглядит аккуратнее.

    FiraCode
  4. howto-make-more-money

    Руководство о способах дополнительного заработка для программистов.

  5. translations

    Переводы интересных англоязычных материалов и статей.

  6. web-frameworks

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

    web-frameworks

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

  1. Go42

    «Сорок две главы о Go» — вводная книга по Golang. Автор собрал в ней выводы и размышления из собственного опыта решения сложных задач. Читать онлайн на китайском языке.

  2. PythonDataScienceHandbook

    Англоязычный оригинал книги «Справочник по Data Science на Python» (Python Data Science Handbook). Полезное учебное пособие для Python-разработчиков, которые уже работают или планируют работать с данными. Читать онлайн.