Графовая база данных и редакторы Markdown

Выпуск № 42 ·

Проекты на C

  1. linq4c

    Реализация LINQ для C. Поддерживает большинство методов LINQ — более 60. Проект продолжает развиваться, и автор приглашает желающих участвовать в его поддержке.

    bool WhereCallback(void *item) {
        char *str= (char *)item;
        return str[0] == 'h';
    }
    
    void *SelectCallback(void *item) {
        return newStr("%s_1", (char *)item);
    }
    
    char *str1 = "huang", *str2 = "hai", *str3 = "feng";
    
    ArrayList array = arrlist_new();
    arrlist_append(array, str1);
    arrlist_append(array, str2);
    arrlist_append(array, str3);
    
    Linq *lq = From(array);
    ArrayList result = 
        lq
        ->Where(lq, WhereCallback)
        ->Select(lq, SelectCallback)
        ->ToArray(lq);
    
    for(int i = 0; i < arrlist_size(result); i++) {
        printf("%s\n", arrlist_get(result, i));
    }
    linq4c

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

  1. nebula

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

    • Полностью симметричная распределённая архитектура.
    • Масштабируемость.
    • Высокая доступность.
    • Строгая согласованность данных.
    • SQL-подобный язык запросов.
    nebula

Проекты на CSS

  1. iCSS

    Подборка материалов о CSS: практические приёмы и реализация анимаций.

    iCSS

Проекты на Go

  1. starcharts

    Инструмент для создания графиков звёзд GitHub.

    starcharts
  2. ultimate-go

    Заметки автора об исходном коде Go и связанных с ним основах информатики, собранные во время изучения языка. Материалы подойдут тем, кто осваивает Go и хочет глубже понять его устройство, лежащую в основе теорию и принципы проектирования.

Проекты на Java

  1. lila

    Бесплатная онлайн-игра в шахматы на Scala с открытым кодом, без рекламы и с поддержкой нескольких языков. Играть онлайн

    lila
  2. simple-java-mail

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

  3. tablesaw

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

    public class BoxExample {
    
      public static void main(String[] args) throws Exception {
        Table table = Table.read().csv("../data/tornadoes_1950-2014.csv");
    
        Layout layout = Layout.builder().title("Tornado Injuries by Scale").build();
    
        BoxTrace trace =
            BoxTrace.builder(table.categoricalColumn("scale"), table.nCol("injuries")).build();
        Plot.show(new Figure(layout, trace));
      }
    }
    tablesaw
  4. XUpdate

    Комплексное решение для полного обновления версий Android-приложений. Помимо Android SDK, в комплект входят серверная часть на Spring Boot и панель управления на Vue.js. Решение помогает небольшим и средним компаниям навести порядок в управлении версиями Android-приложений и допускает гибкую настройку. Механизм обновления полностью модульный, а для удобства пользователей предусмотрены готовые сервер и панель управления на современных технологиях. Проект сопровождается подробной документацией.

    XUpdate.newBuild(getActivity())
    .updateUrl(mUpdateUrl)
    .isAutoMode(true) // 如果需要完全无人干预、自动更新,需要 root 权限【静默安装需要】
    .update();
    XUpdate

Проекты на JavaScript

  1. leonsans

    Шрифт без засечек, написанный на JavaScript. Leon Sans позволяет динамически менять насыщенность и создавать собственные анимации, эффекты и фигуры на Canvas в HTML5. Посмотреть анимацию. Автор создал шрифт в честь рождения сына Леона.

    leonsans
  2. markdown-nice

    Markdown-редактор с настраиваемым оформлением. Сохраняет содержимое и пользовательские стили в браузере в реальном времени, поддерживает загрузку изображений, сноски и формулы. Результат можно одним действием скопировать в публичные аккаунты WeChat, Zhihu (китайский аналог Quora), Juejin, Blog Garden, CSDN и на другие платформы. Инструмент заметно упрощает вёрстку и редактирование публикаций для WeChat.

    markdown-nice
  3. marktext

    Простой и элегантный Markdown-редактор с открытым кодом для Linux, macOS и Windows. Скачать. Возможности:

    • Предпросмотр в реальном времени по принципу WYSIWYG и лаконичный интерфейс.
    • Расширения Markdown, включая математические формулы и эмодзи.
    • Экспорт в HTML и PDF.
    • Несколько режимов редактирования: исходный код, печатная машинка и фокусировка.
    • И многое другое.
    marktext
  4. star-battle

    Космический шутер, созданный на JavaScript ES6 и Canvas. Играть онлайн

    star-battle
  5. taro-music

    Мини-приложение музыкального сервиса NetEase Cloud Music на базе Taro и API сервиса. Стек: TypeScript, Taro, Taro UI и Redux. Основное внимание уделено интерфейсу мини-приложения, а код позволяет изучить эти технологии на практике и быстро создать собственное приложение на Taro. Основные готовые возможности:

    • Вход в учётную запись.
    • Список подписок.
    • История прослушивания.
    • Экран воспроизведения композиции.
    • И многое другое.
    taro-music

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

  1. JHBlog

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

Проекты на Python

  1. bokeh

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

    bokeh
  2. GeneralNewsExtractor

    Инструмент на Python для извлечения основного текста, автора и заголовка из HTML. Реализует метод из статьи «Извлечение основного текста веб-страницы на основе плотности текста и символов». Автор выпуска тоже хотел реализовать этот метод, но отложил идею, поэтому благодарит kingname за готовое решение.

    GeneralNewsExtractor
  3. healthchecks

    Инструмент мониторинга заданий Cron на Python 3 и Django 2. Поддерживает несколько способов оповещения о сбоях периодических задач.

    healthchecks

Проекты на Ruby

  1. ruby-pinyin

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

    PinYin.of_string('南京市长江大桥', :unicode)
    return ["nán", "jīng", "shì", "cháng", "jiāng", "dà", "qiáo"]
    
    能够正确的将“长”转为“chang2”,而不是“zhang3”

Проекты на Swift

  1. EFQRCode

    Лёгкая библиотека на чистом Swift для создания и распознавания QR-кодов. Позволяет генерировать художественные QR-коды с заданными водяным знаком и значком.

    EFQRCode

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

  1. albert_zh

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

    albert_zh
  2. cherry

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

    >>> res = cherry.classify(model='harmful', text=['她们对计算机很有热情,也希望学习到数据分析,网络爬虫,人工智能等方面的知识,从而运用在她们工作上'])
    >>> res.word_list
    [(2, '她们'), (1, '网络'), (1, '热情'), (1, '方面'), (1, '数据分析'), (1, '希望'), (1, '工作'), (1, '学习'), (1, '从而')]
    >>> res.probability
    # 返回结果分别对应 赌博,正常,政治,色情 4个 类别的概率
    array([[4.43336608e-03, 9.95215198e-01, 3.51419231e-04, 1.68657851e-08]])
  3. ChineseNLPCorpus

    Набор данных для обработки естественного китайского языка.

Прочее

  1. advanced-java

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

  2. c9-python-getting-started

    Понятный вводный курс Microsoft по Python для начинающих с нуля. Включает примеры кода, презентации и видеоуроки на YouTube.

  3. chinese-colors

    Онлайн-справочник по традиционным китайским цветам. Открыть

    chinese-colors
  4. navi

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

    navi
  5. Nodejs-Roadmap

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

  6. pull

    GitHub App для автоматической синхронизации форков с исходными репозиториями. При участии в open-source проектах форк часто отстаёт от последних изменений в основном репозитории, а приложение решает эту проблему. На момент публикации им пользовались десятки тысяч репозиториев, а число автоматически созданных pull request достигло 700 000 и продолжало расти. Важно: если в ветке master есть собственные изменения, перед использованием сделайте резервную копию. Подробности — в англоязычной документации.

    pull
  7. reverse-interview

    Подборка вопросов для обратного интервью пригодится, если на собеседовании вы не знаете, что спросить в ответ на предложение: «У вас остались вопросы?». Версия на китайском языке