Распределённая база данных и управление браузером

Выпуск № 18 ·

Проекты на C

  1. db_tutorial

    Создание простой базы данных с нуля на C.

Проекты на CSS

  1. materialize

    Современный адаптивный фронтенд-фреймворк на основе Material Design. Упрощает разработку интерфейсов и снабжён подробной документацией. Официальный сайт

Проекты на Go

  1. echo

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

    package main
    
    import "github.com/labstack/echo"
    
    func main() {
        e := echo.New()
        e.GET("/", callback)
        e.Logger.Fatal(e.Start(":3000"))
    }
    
    func callback(ctx echo.Context) error {
        return ctx.HTML(200, "<h1>你好 echo</h1>")
    }
    echo
  2. tidb

    Распределённая NewSQL-база данных с открытым кодом. Позволяет заменить традиционное промежуточное ПО для баз данных и схемы шардинга с разделением баз и таблиц. Основные возможности:

    • Поддержка SQL и совместимость с MySQL.
    • Линейное горизонтальное масштабирование с гибким выделением ресурсов.
    • Распределённые транзакции.
    • Строгая согласованность данных между дата-центрами.
    • Высокая доступность с автоматическим восстановлением после сбоев.
    tidb

Проекты на Java

  1. AndroidTVLauncher

    Домашний экран в стиле TV Leanback. Создан на основе библиотеки Leanback и соответствует официальным правилам взаимодействия в Android TV.

    AndroidTVLauncher
  2. spring-data-jpa-datatables

    Инструмент для интеграции spring-data-jpa и jQuery DataTables. Значительно упрощает разработку таблиц данных на основе DataTables. Пример кода:

    // 前端代码
    $(document).ready(function() {
        var table = $('table#sample').DataTable({
            'ajax': {
                'contentType': 'application/json',
                'url': '/data/users',
                'type': 'POST',
                'data': function(d) {
                    return JSON.stringify(d);
                }
            },
    
    // java 代码 server-side becomes
    @JsonView(DataTablesOutput.View.class)
    @RequestMapping(value = "/data/users", method = RequestMethod.POST)
    public DataTablesOutput<User> getUsers(@Valid @RequestBody DataTablesInput input) {
        return userRepository.findAll(input);
    }
    spring-data-jpa-datatables
  3. xxl-job

    Лёгкий фреймворк для распределённого планирования задач. Его главные цели — быстрая разработка, простое освоение, малый вес и расширяемость; документация подробная. Официальный сайт

Проекты на JavaScript

  1. flatpickr

    Компонент для выбора даты с плоским дизайном. Исходный код написан на TypeScript: на его примере можно научиться создавать JS-плагины на этом языке. Проверка типов помогает команде избегать ошибок с типами переменных и работать эффективнее. Пример использования:

    // ConnonJS 方式引入
    const flatpickr = require("flatpickr");
    flatpickr("#myID", {});
    flatpickr(".myClass", {}); 
    
    // jQuery 方式引入
    $(".selector").flatpickr(optional_config);
    flatpickr
  2. puppeteer

    Библиотека с открытым кодом от команды Google Chrome для управления удалённым Headless Chrome из Node.js через протокол DevTools. Позволяет делать скриншоты страниц и PDF, извлекать содержимое сайтов и одностраничных приложений, автоматически отправлять формы, тестировать интерфейсы и имитировать ввод с клавиатуры. Пример кода:

    // 访问 https://example.com 并将截图保存为 example.png
    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
      await page.goto('https://example.com');
      await page.screenshot({path: 'example.png'});
    
      await browser.close();
    })();
    puppeteer
  3. SelectPage

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

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

    //defined a array, the data returned at the server side is also used that format:
    //Array[{Object},{...}]
    var data = [
        {id:1 ,name:'Chicago Bulls',desc:'芝加哥公牛'},
        {id:2 ,name:'Cleveland Cavaliers',desc:'克里夫兰骑士'},
        {id:3 ,name:'Detroit Pistons',desc:'底特律活塞'},
        {id:4 ,name:'Indiana Pacers',desc:'印第安纳步行者'}
    ];
    //init SelectPage
    $('#selectpage').selectPage({
        showField : 'desc',
        keyField : 'id',
        data : data
    });
    SelectPage
  4. vue-3d-model

    Компонент Vue для отображения трёхмерных моделей. Поддерживает управление моделью и обработку нажатий, автоматически подбирает масштаб и исправляет смещение. Работает с форматами obj, stl, dae и json. Пример кода:

    <template>
        <model-obj src="example/models/obj/LeePerrySmith.obj"></model-obj>
    </template>
    <script>
        import { ModelObj } from 'vue-3d-model'
    
        export default {
            components: { ModelObj }
        }
    </script>
    vue-3d-model
  5. weweChat

    Сторонний клиент WeChat. Реализует все функции веб-версии WeChat, добавляет и улучшает отдельные возможности, а также предлагает переработанный интерфейс. Команда установки на Mac: brew cask install wewechat

    weweChat

Проекты на Python

  1. faker

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

    fake.address()
    # '辽宁省雪市静安廉街b座 998259'
    
    fake.street_address()
    # '巢湖街U座'
    
    fake.building_number()
    # 'x座'
    
    fake.city_suffix()
    # '市'
    
    fake.latitude()
    # Decimal('-0.295126')
    
    fake.province()
    # '湖北省'
  2. newspaper

    Библиотека для извлечения содержимого веб-страниц и статей с поддержкой разных языков. Команда установки: pip3 install newspaper3k. Пример кода:

    >>> from newspaper import Article
    
    >>> url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
    >>> article = Article(url)
    
    >>> article.download()
    
    >>> article.html
    '<!DOCTYPE HTML><html itemscope itemtype="http://...'
    
    >>> article.parse()
    
    >>> article.authors
    ['Leigh Ann Caldwell', 'John Honway']
    
    >>> article.publish_date
    datetime.datetime(2013, 12, 30, 0, 0)
    
    >>> article.text
    'Washington (CNN) -- Not everyone subscribes to a New Year's resolution...'
    
    >>> article.top_image
    'http://someCDN.com/blah/blah/blah/file.png'
    
    >>> article.movies
    ['http://youtube.com/path/to/link.com', ...]
    
    >>> from newspaper import Article
    >>> url = 'http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml'
    
    >>> a = Article(url, language='zh') # Chinese
    
    >>> a.download()
    >>> a.parse()
    
    >>> print(a.text[:150])
    香港行政长官梁振英在各方压力下就其大宅的违章建
    筑(僭建)问题到立法会接受质询,并向香港民众道歉。
    梁振英在星期二(12月10日)的答问大会开始之际
    在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的
    意图和动机。 一些亲北京阵营议员欢迎梁振英道歉,
    且认为应能获得香港民众接受,但这些议员也质问梁振英有
    
    >>> print(a.title)
    港特首梁振英就住宅违建事件道歉
  3. pygorithm

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

    >>> from pygorithm.sorting import bubble_sort
    >>> my_list = [12, 4, 3, 5, 13, 1, 17, 19, 15]
    >>> sorted_list = bubble_sort.sort(my_list)
    >>> print(sorted_list)
    >>> [1, 3, 4, 5, 12, 13, 15, 17, 19]

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

  1. deeplearningbook-chinese

    Китайское издание книги «Глубокое обучение» (Deep Learning).

Прочее

  1. china_area_mysql

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

  2. ctf-wiki

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

  3. open_source_team

    Адреса репозиториев с открытым кодом ведущих команд Китая.