Эмулятор ретро-консолей и анимация математики

Выпуск № 39 ·

Проекты на C#

  1. FreeSql

    Мощный ORM для C#, готовый к работе с .NET Core 2.1+ и .NET Framework 4.5+. Подходит и для простых, и для сложных сценариев. Поддерживает миграции CodeFirst, множество функций для выражений и разные базы данных; активно использует ExpressionTree для повышения производительности. Пример:

    var t0 = fsql.Select<Tag>()
        .Where(a => a.Parent.Parent.Name == "粤语")
        .IncludeMany(a => a.Tags, then => then.Where(sub => sub.Name == "xxx"))
        .ToList();
    
    var t3 = fsql.Select<Xxx>()
        .Where(a => a.IsDelete == 0)
        .WhereIf(keyword != null, a => a.UserName.Contains(keyword))
        .WhereIf(role_id > 0, a => a.RoleId == role_id)
        .Where(a => a.Nodes.AsSelect().Any(t => t.Parent.Id == t.UserId))
        .Count(out var total)
        .Page(page, size)
        .OrderByDescending(a => a.Id)
        .ToList()

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

  1. marksentence

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

    marksentence
  2. pprint

    Библиотека для красивого вывода данных в C++. По аналогии с pprint в Python улучшает форматирование базовых типов, строк, комплексных чисел, enum и контейнеров STL. Отступы и переносы строк делают структуру данных нагляднее. Пример:

    #include <pprint.hpp>
    printer.print(std::map<std::string, std::set<int>>{{"foo", {1, 2, 3, 3, 2, 1}}, {"bar", {7, 6, 5, 4}}});
    
    // 输出结果如下
    {
      "bar" : {4, 5, 6, 7}, 
      "foo" : {1, 2, 3}
    }

Проекты на CSS

  1. RemixIcon

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

    RemixIcon

Проекты на Go

  1. geziyor

    Фреймворк распределённого веб-скрейпинга на Go. Пример:

    func main() {
        geziyor.NewGeziyor(&geziyor.Options{
            StartURLs: []string{"http://quotes.toscrape.com/"},
            ParseFunc: quotesParse,
    // exporter 可以用来把最终结果存成各种格式,例如 json
            Exporters: []geziyor.Exporter{exporter.JSONExporter{}},
        }).Start()
    }
    
    // 请求的结果直接进了一个管道处理函数,这样的函数可以串联起来,爬虫和清洗二合一
    // 这样拆分爬虫逻辑,某些逻辑也可以重用
    func quotesParse(g *geziyor.Geziyor, r *geziyor.Response) {
        r.HTMLDoc.Find("div.quote").Each(func(i int, s *goquery.Selection) {
            g.Exports <- map[string]interface{}{
                "text":   s.Find("span.text").Text(),
                "author": s.Find("small.author").Text(),
            }
        })
        if href, ok := r.HTMLDoc.Find("li.next > a").Attr("href"); ok {
            g.Get(r.JoinURL(href), quotesParse)
        }
    }
  2. goalert

    Система оповещений и обработки тревог на Go. Сигнал можно создать HTTP-запросом или вручную; уведомления приходят по SMS, телефону или электронной почте. Есть встроенная панель управления, так что система почти готова к работе сразу после установки. Команда для запуска:

    docker run -it --rm -p 8081:8081 goalert/all-in-one
    访问本地 8081 端口,用户名 admin,密码 admin123
    goalert
  3. olivia

    Голосовой помощник с открытым кодом, похожий на Siri. Пока понимает только английский. Открытых голосовых помощников немного, а задача сложная; этот проект может стать основой для небольших приложений.

    olivia
  4. script

    Сторонняя библиотека, которая упрощает работу с возможностями ОС в Go и обработку ошибок стандартного пакета os. Чтобы открыть файл, найти слово и подсчитать строки, обычно приходится несколько раз проверять ошибки. С ней достаточно:

    numErrors, err := script.File("test.txt").Match("Error").CountLines()
    // 等同于 grep Error test.txt | wc -l
  5. unioffice

    Библиотека для создания и редактирования документов Word, Excel и PowerPoint на Go. Пример:

    dox := document.New()
    doc.X().Background = wordprocessingml.NewCT_Background()
    doc.X().Background.ColorAttr = &wordprocessingml.ST_HexColor{}
    doc.X().Background.ColorAttr.ST_HexColorRGB = color.RGB(50, 50, 50).AsRGBString()
    unioffice

Проекты на Java

  1. Java

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

    Java
  2. Linkage-RecyclerView

    Компонент связанных списков с двумя уровнями на архитектуре MVP. Части слабо связаны, компонент легко настроить и использовать. Благодаря вынесенной конфигурации можно менять и расширять поведение, не зная внутренних деталей. Без собственной конфигурации для запуска достаточно одной строки кода.

    Linkage-RecyclerView
  3. SmoothRefreshLayout

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

    SmoothRefreshLayout

Проекты на JavaScript

  1. AutoPiano

    «Свободное пианино» — онлайн-инструмент на HTML5. Можно играть в перерывах между работой и учёбой; есть автоматическое воспроизведение мелодий и подсказки клавиш, которые облегчают обучение. Попробовать в браузере.

  2. fe-interview

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

  3. filepond

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

    filepond
  4. HitUP

    Расширение Chrome для поиска популярных проектов. Заменяет пустую страницу новой вкладки и помогает следить за технологическими тенденциями. Главная функция — показ недавних популярных проектов GitHub; новые возможности добавляются с оглядкой на тему «находить лучшее».

  5. wechat-format

    Редактор оформления статей для публичных каналов WeChat. Быстро преобразует Markdown в HTML, подходящий для редактора публикаций WeChat: остаётся вставить результат. Оформление довольно простое, зато экономит время. Попробовать онлайн.

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

  1. OpenEmu

    Эмулятор ретро-консолей для macOS, с которым можно вернуться к играм детства.

    OpenEmu

Проекты на PHP

  1. FreshRSS

    Бесплатная RSS-читалка на PHP для размещения на своём сервере. По отзывам, справляется с десятками тысяч подписок без заметных задержек. Поддерживает несколько аккаунтов, сторонние клиенты для Android и iOS и API Fever. В паре с RSSHub подойдёт активным пользователям RSS.

    FreshRSS

Проекты на Python

  1. arrow

    Библиотека Python для работы с датами, временем, часовыми поясами и переходами на летнее время. Упрощает создание, изменение и форматирование дат и времени, сокращая объём кода. Пример:

    >>> import arrow
    >>> utc = arrow.utcnow()
    >>> utc
    <Arrow [2013-05-11T21:23:58.970460+00:00]>
    
    >>> utc = utc.replace(hours=-1)
    >>> utc
    <Arrow [2013-05-11T20:23:58.970460+00:00]>
    
    >>> local = utc.to('US/Pacific')
    >>> local
    <Arrow [2013-05-11T13:23:58.970460-07:00]>
    
    >>> arrow.get('2013-05-11T21:23:58.970460+00:00')
    <Arrow [2013-05-11T21:23:58.970460+00:00]>
    
    >>> local.timestamp
    1368303838
  2. GithubMonitor

    Инструмент для обнаружения утечек корпоративных данных через GitHub. Формирует поисковые запросы из заданных ключевых слов и имён хостов, отслеживает публикации через API GitHub и отправляет письмо при обнаружении чувствительной информации.

  3. manim

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

    3Blue1Brown. Чтобы освоить инструмент и получить хороший результат, придётся потратить время.

    manim
  4. psutil

    Кроссплатформенная библиотека для мониторинга процессов и системных ресурсов. Показывает сведения о запущенных процессах, загрузке CPU, памяти, дисков и сети. Реализует многие возможности утилит ps, top, lsof, netstat и ifconfig; работает на Linux, Windows и macOS. Позволяет автоматизировать такую диагностику скриптами Python. Пример просмотра памяти:

    >>> psutil.virtual_memory()
    svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, active=4748992512, inactive=2758115328, buffers=790724608, cached=3500347392, shared=787554304)
    >>> psutil.swap_memory()
    sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944)
  5. you-get

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

    (env) ➜  ~ you-get 'https://v.ifeng.com/c/7msWmwppMPC'
    Site:       ifeng.com
    Title:      完整版第五期:陈晓卿 中国有俩行当门槛极低——美食圈和摄影圈
    Type:       MPEG-4 video (video/mp4)
    Size:       0.01 MiB (8578 Bytes)
    
    Downloading 完整版第五期:陈晓卿 中国有俩行当门槛极低——美食圈和摄影圈.mp4
     100% (  0.0/  0.0MB) ├████████████████████┤[1/1]   71 kB/s
    

Проекты на Ruby

  1. pagy

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

Проекты на Swift

  1. timer-app

    Простой таймер для macOS. Время задаётся перетаскиванием синей стрелки; по истечении срока появляется уведомление и звучит приятный сигнал.

    timer-app

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

  1. awesome-bert

    Подборка статей, приложений и ресурсов по BERT и обработке естественного языка (NLP). Помогает следить за развитием области и быстрее приступать к исследованиям.

  2. deeplearning-models

    Коллекция архитектур, моделей и приёмов глубокого обучения для TensorFlow и PyTorch в блокнотах Jupyter. Подойдёт для изучения темы на примерах.

  3. ImageMiniLab

    Мини-лаборатория для экспериментов, обработки и анализа изображений. Реализована на PyQt5 и opencv-python; код короткий и понятный. Позволяет быстро показать работу алгоритмов обработки изображений и помогает начать изучение компьютерного зрения.

    ImageMiniLab
  4. PyTorch-NLP

    Набор инструментов PyTorch-NLP, или torchnlp, для быстрого создания прототипов. Содержит готовые слои нейросетей, средства обработки текста и наборы данных, ускоряя исследования и практику в обработке естественного языка. Пример:

    # Load a Dataset
    from torchnlp.datasets import imdb_dataset
    
    # Load the imdb training dataset
    train = imdb_dataset(train=True)
    train[0]  # RETURNS: {'text': 'For a movie that gets..', 'sentiment': 'pos'}
    
    # Apply Neural Networks Layers
    import torch
    from torchnlp.nn import LockedDropout
    
    input_ = torch.randn(6, 3, 10)
    dropout = LockedDropout(0.5)
    
    # Apply a LockedDropout to `input_`
    dropout(input_) # RETURNS: torch.FloatTensor (6x3x10)
  5. xlnet

    Новая предобученная модель XLNet от CMU и Google Brain. На момент публикации она превзошла BERT в 20 задачах и показала лучший результат в 18 из них. Авторы открыли код обучения и большую предобученную модель для экспериментов.

Прочее

  1. ChineseBQB

    Коллекция картинок и мемов для переписок.

  2. fe-necessary-book

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

  3. most-frequent-technology-english-words

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

  4. papers-notebook

    Заметки о научных работах по распределённым системам, виртуализации, контейнерам и машинному обучению. Подойдут для знакомства с исследованиями в этих областях.

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

  1. The-Hacker-Playbook-3-Translation

    Перевод на китайский книги «The Hacker Playbook 3: Практическое руководство по тестированию на проникновение для красных команд».