Обработка миллиарда строк и сеть без серверов

Выпуск № 46 ·

Проекты на C

  1. freebsd-src

    Исходный код операционной системы FreeBSD. Не думал, что когда-нибудь решусь открыть исходники целой ОС.

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

  1. design-patterns-cpp

    Реализации распространённых шаблонов проектирования на C++.

  2. indicators

    Библиотека индикаторов прогресса для консольных программ на C++. Проста в использовании, безопасна для нескольких потоков и предлагает разные стили оформления.

    indicators
  3. sudoku

    Консольная игра «Судоку» на C++. В ней чуть больше 600 строк кода, поэтому разобраться смогут и начинающие.

    sudoku

Проекты на Go

  1. gojsonq

    Библиотека Go с открытым кодом для разбора и поиска по данным JSON, YAML, XML и CSV. Пример использования:

    package main
    
    import "github.com/thedevsaddam/gojsonq"
    
    func main() {
        const json = `{"name":{"first":"Tom","last":"Hanks"},"age":61}`
        name := gojsonq.New().FromString(json).Find("name.first")
        println(name.(string)) // Tom
    }
  2. gormt

    Утилита для преобразования схемы MySQL в структуры Go. Возможности:

    • Генерация через консоль или графический интерфейс.
    • Гибкая настройка в файле YML.
    • Автоматическая генерация вспомогательных функций.
    • Поддержка индексов, внешних ключей и других элементов схемы.
    gormt
  3. statping

    Страница состояния сервисов на Go. Позволяет быстро опубликовать сведения о доступности и качестве работы сервиса.

    statping

Проекты на Java

  1. gradle

    Инструмент автоматизации сборки проектов, основанный на идеях Apache Ant и Maven. Настройки проекта описываются предметным языком на базе Groovy вместо традиционного XML, что даёт больше гибкости. В этом выпуске поддерживаются Java, Groovy и Scala; поддержку других языков планировали добавить позднее.

    gradle
  2. jodd

    Набор минималистичных фреймворков и утилит для Java. Часто нужные функции реализованы в небольших отдельных библиотеках: можно быстро собрать решение без тяжёлых зависимостей, выбирая только нужные части. Такой подход упрощает изучение и использование.

    Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.7 Mb
  3. zxing

    Библиотека Java с открытым кодом для чтения и создания одномерных и двумерных штрихкодов разных форматов, включая UPC-A, QR Code, UPC-E и Data Matrix. Поддерживает J2ME, J2SE, Android и другие платформы.

Проекты на JavaScript

  1. fe-interview

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

  2. gods-pen

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

    gods-pen
  3. helux

    Постепенно внедряемое, производительное решение для управления состоянием, совместимое с экосистемой Redux. Использует маркировку зависимостей, сбор ссылок и распределение состояния. Механизм контекста экземпляра расширяет возможности компонентов и унифицирует работу с жизненным циклом классовых и функциональных компонентов. Встроенные computed, watch, setup и event помогают переиспользовать логику, разнообразить компоненты и укрепить архитектуру приложения.

    helux
  4. p5.js

    Библиотека JavaScript для творческого программирования: рисования и цифрового искусства. Для начала достаточно знать JS; есть подробная документация и онлайн-редактор. Официальный сайт и пример кода:

    function setup() {
      createCanvas(640, 480);
    }
    
    function draw() {
      if (mouseIsPressed) {
        fill(0);
      } else {
        fill(255);
      }
      ellipse(mouseX, mouseY, 80, 80);
    }
    p5.js
  5. vue-monoplasty-slide-verify

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

    import Vue from 'vue';
    import SlideVerify from 'vue-monoplasty-slide-verify';
    
    Vue.use(SlideVerify);
    
    export default {
          name: 'App',
          data(){
              return {
                  msg: '',
              }
          },
          methods: {
              onSuccess(){
                  this.msg = 'login success'
              },
              onFail(){
                  this.msg = ''
              },
              onRefresh(){
                  this.msg = ''
              }
          }
      }
    vue-monoplasty-slide-verify

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

  1. Bob

    Приложение для перевода на Mac по выделенному тексту или снимку экрана. Перевод со снимка особенно полезен при чтении PDF, в которых не работает стандартное выделение текста.

    Bob
  2. textmate

    Известный редактор кода для macOS с открытым исходным кодом. Лаконичный интерфейс сочетается с мощными возможностями: сниппетами, поддержкой популярных систем контроля версий, собственными темами и предварительным просмотром HTML и Markdown в реальном времени.

    textmate

Проекты на PHP

  1. parsedown

    Небольшая библиотека PHP для преобразования Markdown в HTML-строки с хорошей документацией. Основной код находится в одном файле; кроме требования PHP выше версии 5.3, зависимостей почти нет. Установить можно через Composer или подключить Parsedown.php напрямую. В проекте много регулярных выражений, поэтому он полезен для их изучения; есть полный набор модульных тестов. Пример:

    $Parsedown = new Parsedown();
    echo $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>
  2. php-curl-class

    Обёртка над библиотекой cURL для PHP, упрощающая HTTP-запросы. Подойдёт для парсеров и других задач, где нужно имитировать HTTP-обращения. Пример кода:

    <?php
    // 获取豆瓣电影示例
    require '../vendor/autoload.php';
    use Curl\Curl;
    
    $curl = new Curl();
    $url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E8%B1%86%E7%93%A3%E9%AB%98%E5%88%86&sort=time&page_limit=20&page_start=1";
    $curl->get($url);
    $curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);
    $curl->close();
    var_dump($curl->getResponse());exit;
    php-curl-class

Проекты на Python

  1. KeymouseGo

    Лёгкая портативная утилита автоматизации действий на Python. Записывает действия мыши и клавиатуры, а затем повторяет их заданное число раз. Для простых монотонных задач достаточно один раз записать последовательность и поручить повторы KeymouseGo.

    KeymouseGo
  2. sentry

    Бесплатная платформа мониторинга ошибок в реальном времени с открытым кодом, написанная на Python. Работает по клиент-серверной схеме: сервер предоставляет веб-интерфейс, а события можно отправлять из приложений на любом языке. Sentry помогает вовремя узнавать о неожиданных сбоях сервиса.

    sentry
  3. vaex

    Библиотека Python для обработки данных, похожая на Pandas, но особенно эффективная на больших наборах. Ленивая загрузка, отложенные вычисления и работа без копирования данных снижают расход памяти и ускоряют обработку — вплоть до миллиарда строк в секунду. Результаты можно показывать в виде гистограмм и графиков плотности.

  4. word_cloud

    Инструмент Python для создания облаков слов. Пример кода:

    # 加载内容
    text = open(path.join(d, 'constitution.txt')).read()
    # 生成词云图片
    wordcloud = WordCloud().generate(text)
    # 展示生成的图片
    image = wordcloud.to_image()
    image.show()
    word_cloud
  5. ZeroNet

    Децентрализованная сеть, использующая криптографию Bitcoin и протокол BitTorrent. Позволяет создавать распределённые блоги, форумы, микроблоги, видеосайты и площадки для трансляций без аренды сервера и публичного IP-адреса. Идея проекта — сделать публикацию в интернете доступной каждому, без зависимости от крупных платформ.

    ZeroNet

Проекты на Ruby

  1. astuto

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

    astuto

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

  1. faceai

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

    # Tesseract Ocr文字识别
    from PIL import Image
    import pytesseract
    
    path = "img\\text-img.png"
    text = pytesseract.image_to_string(Image.open(path), lang='chi_sim')
    print(text)
    faceai

Прочее

  1. Hippy

    Кроссплатформенный фреймворк, задуманный для запуска одного приложения на iOS, Android и в браузере. Ориентирован на веб-разработчиков, особенно знакомых с React Native и Vue, и упрощает создание приложений для нескольких платформ. Фреймворк выпущен Tencent и использовался в нескольких её приложениях. Структура проекта:

    Hippy
    ├── examples                          # 前终端范例代码。
    │   ├── hippy-react-demo              # hippy-react 前端范例代码。
    │   ├── hippy-vue-demo                # hippy-vue 前端范例代码。
    │   ├── ios-demo                      # iOS 终端范例代码。
    │   └── android-demo                  # Android 终端范例代码。
    ├── packages                          # 前端 npm 包。
    │   ├── hippy-debug-server            # Hippy 的前终端调试服务。
    │   ├── hippy-react                   # Hippy 的 React 语法绑定。
    │   ├── hippy-react-web               # hippy-react 转 Web 的库。
    │   ├── hippy-vue                     # Hippy 的 Vue 语法绑定。
    │   ├── hippy-vue-css-loader          # 用来将 CSS 文本转换为 JS 语法树以供解析的 Webpack loader。
    │   ├── hippy-vue-native-components   # hippy-vue 中浏览器中所没有的,额外的,终端定制组件。
    │   └── hippy-vue-router              # 在 hippy-vue 中运行的 vue-router。
    ├── ios
    │   └── sdk                           # iOS SDK。
    ├── android
    │   ├── support_ui                    # Android 终端实现的组件。
    │   └── sdk                           # Android SDK。
    ├── core                              # C++ 实现的 JS 模块,通过 Binding 方式运行在 JS 引擎中。
    ├── layout                            # Hippy 布局引擎。
    ├── scripts                           # 项目编译脚本。
    └── types                             # 全局 Typescript 类型定义。
  2. powerlevel9k

    Тема Powerline для Zsh. Пример оформления показан на иллюстрации:

    powerlevel9k
  3. valval

    Веб-фреймворк на языке V. На момент выпуска язык ещё разрабатывался и не был зрелым, но уже подходил для веб-разработки: в стандартной библиотеке были vweb и ORM, а сторонние авторы создавали собственные фреймворки, в том числе valval. Пример кода:

    // demo.v
    import valval
    
    fn hello(req valval.Request) valval.Response {
        return valval.response_ok('hello world')
    }
    
    fn main() {
        mut app := valval.new_app(true)
        app.register('/', hello)
        valval.runserver(app, 8012)
    }
    valval
  4. wuhan2020

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

  5. zotero

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

    zotero