Size: a a a

2019 May 08
2pegramming
Привет!

Сегодня в 20:00 по москве будет стрим. Расскажу про виды тестов, покажу где что использовать. На реальном примере покажу как ускорить тесты и почему юнит тесты стоит писать в проекте. Так же, набралось много вопросов связанных с этой темой, постараюсь на все ответить.

Youtube плейлист всех стримов
https://www.youtube.com/watch?v=yJfIHcFAyG0&list=PL6n1fvXhQN4kOm_HhBDJrynj6_dcl7VJP

Твич аккаунт
https://www.twitch.tv/davydovanton
источник
2pegramming
Начинаем стрим.

https://www.twitch.tv/davydovanton
источник
2pegramming
Всем спасибо за стрим.

Ссылки:

youtube. Видио процессится, в начале может быть плохое качество, но через какое-то время будет 1080

https://youtu.be/JJn-WXNxuVQ

twitch (удалится через 14 дней)

https://www.twitch.tv/videos/422109577

Победитель конкурса - @DmitryBash

Буду рад идеям для следующих стримов, пожеланиям и что понравилось/не понравилось

❤️
источник
2019 May 10
2pegramming
Пятничное чтиво

Привет!

В эту среду провел стрим по тестированию, спасибо всем, кто пришел.

Прошедшие стримы

На следующей неделе буду на krk.rb. Если окажетесь там же - давайте знакомиться.

—————————————

Journey to Event Driven – Part 1: Why Event-First Thinking Changes Everything
Серия статей суммирующая информацию о событиях (events). Описываются паттерны событийных систем, event-first подход, как работать с моделями в event based архитектуре, различия между событиями и стримами. Однозначный мастхэв для тех, кто интересуется тема общений между сервисами и событийных архитектур.

—————————————

Exploring Ruby’s Regular Expression Algorithm
Автор ruby under a microscope рассказывает в блоге как работают регулярные выражения в руби. На примерах показывается как работает regexp. Рассказывается о Oniguruma, это опенсорсная С библиотека, которая, с минимальными изменениями, используется в руби. В конце описывается проблема 30 повторений и экспоненциальный рост времени работы алгоритма.

—————————————

Old School Blizzard: Sprites, Maps and Palettes
Lost vikings моя любимая игр для snes/sega. К сожалению открыл для себя только на эмуляторе, спустя 10 лет после выхода. У игры замечательный OST и маханика игры, до сих пор используют в играх. В статье выше описывается работа виртуальной машины игры, процесс реверс инжиниринга и описание работы уровня.

В оригинале статьи меньше информации, поэтому советую читать русский перевод

——— одной строкой ———

- YouTube. Bounded Contexts Domain Exploration: Productivity App
- Ruby 2.7 adds shorthand operator for Object#method
источник
2019 May 17
2pegramming
Пятничное чтиво

Привет!

На этой недели прошел krk rb, где рассказывал об эвент сорсинге. Если тема заинтересовала - вот первая часть четырех часового стрима об этой концепции.

А следующей неделе, 22 мая, в 20:00 (мск) будет очередной стрим.

Ссылки:
Календарь
Youtube плейлист прошедших стримов

—————————————

The memory models that underlie programming languages

Сложный лонгрид с описанием работы 6 моделей памяти. В качестве примера используется cobol, lisp, FORTRAN и SQL. А также, рисунки примеры кода и математические формулы. Если задавались вопросом как работает память в языках - однозначный мастрид этой недели.

—————————————

A Virtual Brainfuck Machine In Go
Первый стрим был посвящен AST парсингу и обратной польской нотации. В статье выше автор пишет виртуальную машину языка brainfuck на го и попутно объясняет как работает язык и зачем нужна виртуальная машина.

—————————————

Inside Music Recognition Algorithms: How Does Shazam Work?
Три года назад, ребята из топтала описали как работает алгоритмы распознавания музыки. Из интересного: описывается что такое звук, показывается при чем тут преобразование Фурье и описывается полный процесс распознавания звука. Так же присутствуют примеры на джаве и ссылки на библиотеки (включая руби).

Русский перевод

——— одной строкой ———

- tuwukee/blab - библиотека от Юли (спикер прошлого railsclub), которая поможет отследить локальные переменные и использование памяти в руби;
- Rbkit - руби профайлер с GUI и графиками. Сам использовать не успел, но выглядит многообещающе;
- Люблю скетч ноуты с конференций. Сегодня это React Finland 2019;
источник
2019 May 20
2pegramming
В эту среду (22 мая) стрим. Так как на следующий день у меня день рождения, хочу сделать простую фичу в rubyjobs.dev, устроить вопрос-ответ сессию и поделиться планами на будущее канала. Отвечу на любые ваши вопросы, не только о разработке.

Youtube плейлист всех стримов
https://www.youtube.com/watch?v=yJfIHcFAyG0&list=PL6n1fvXhQN4kOm_HhBDJrynj6_dcl7VJP

Твич аккаунт
https://www.twitch.tv/davydovanton
источник
2019 May 22
2pegramming
Привет! Сегодня стрим, начало в 20:00 по москве

https://www.twitch.tv/davydovanton
источник
2pegramming
Начинаем стрим.

https://www.twitch.tv/davydovanton
источник
2019 May 23
2pegramming
Всем спасибо за стрим.

Ссылки:

youtube.

https://youtu.be/JJn-WXNxuVQ

PR для rubyjobs.dev из стрима

https://github.com/davydovanton/rubyjobs.dev/pull/29

twitch (удалится через 14 дней)

https://www.twitch.tv/videos/428330590

Буду рад идеям для следующих стримов, пожеланиям и что понравилось/не понравилось

❤️
источник
2019 May 24
2pegramming
Пятничное чтиво

На этой неделе провел стрим, делали аналитику для http://amp.gs/dpzB, а также ответил на вопросы.

- Запись стрима
- Сайт с календарь
- Youtube плейлист прошедших стримов

На следующей неделе буду в питере на Saint P Rubyconf. Буду рад встречи.

—————————————

Contribute to Rails 6!
Если вы хотели начать контрибьютить в rails но не знали с чего начать - статья мастхев. Автор описывает из чего состоит репозиторий, как сделать коммит в документацию и компонент фреймворка. Здорово, что такие статьи появляются. Мне не хватило подобного текста 4 года назад.

—————————————

Picking the right API Paradigm
Описание видов API, которые можно использовать в проекте. В двух словах описывается что такое SOAP, gRPC и REST. Из интересного - подробная диаграмма, которая поможет в выборе реализации API в проекте. Радует, что в статье уделяется внимание коммуникациям между context boundary. А так же, в конце приводится список полезных ссылок с документацией или имплементацией разных API парадигм.

—————————————

Visualizing Garbage Collection Algorithms
Статья - наглядный пример того, как работает 4 алгоритма GC. Рассматриваются следующие алгоритмы: Reference Counting Collector, Mark-Sweep Collector, Mark-Compact Collector и Copying Collector. Для каждого алгоритма показывается гифка с работой и дается минимальное описание того, что происходит.

——— одной строкой ———

- Описание Entity Relationship Diagrams на примерах;
- Бесплатная книга о совместной работе над проектами;
- rubymap с компаниями и событиями;
источник
2019 May 31
2pegramming
Пятничное чтиво

Привет из Питера. Завтра начинается Saint P RubyСonf, если окажетесь там - приходите общаться и меняться стикерами!

На следующей неделе стрим. Тему пока не придумал, хочу начать серию стримов о паттерне saga и распределенных системах, но пока нет времени и сил. Так же буду рад предложениям и вопросам, можно в личку, можно в анонимную форму.

- Сайт с календарем стримов;
- Youtube плейлист прошедших стримов;

P.S.: на этой неделе решил изменить формат, теперь вместо 1 ссылки  будет 1 тема и несколько ссылок. Если такой формат понравился больше - говорите об этом.

—————————————

Несколько слов в защиту шаблона “Анемичная модель предметной области” (Anemic Domain Model)
The Anaemic Domain Model is no Anti-Pattern, it’s a SOLID design и русский перевод

Сам того не зная, пришел к анемичной модели предметной области. Идея в том, что данные отдельно, логика отдельно (пример: операции для логики и энтити для данных). Так же, есть Rich Domain Model (данные и поведение в одном месте). Как оказалось анемичная модель - антипаттерн. Поэтому сегодня 2 ссылки в которых подробно описывается что такое анемичная модель, в чем проблема и почему это не проблема.

Последний год замечаю больше связей между сервисной архитектурой, DDD и OOP. Поэтому идея анемичной модели встает в этот список в голове. С радостью обсужу эту тему со всеми желающими в Питере.

—————————————

Alan Kay and OO Programming
Alan Kay and Missing Messages

Алан Кэй отец идей ООП. В статьях дается краткая выжимка идей с примерами. Уделяется особое внимание сообщениям между объектами. Так же советую прочитать комментарии, в которых найдете Clojure и фп.

А также, лекция 96 года в которой описывается акторный подход:
The Actor approach to concurrent objects

Из статьи узнаете: что такое акторная модель, как работают сообщения между акторами и примеры на языке Act.

—————————————

A Brief History Of Open Source
History of free and open-source software
Краткая история open source, часть первая: от открытого ПО к проприетарному
История open source, часть вторая: рождение UNIX и GNU
История open source, часть третья: первые свободные лицензии и дорога к Linux

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

——— одной строкой ———

- IRB 2.7 берет идеи у pry, в новом релизе появится подсветка синтаксиса;
- rom 5 появится в hanami;
- Релиз 2.7.0-preview1 (http://amp.gs/dEV6) в коробке паттерн матчинг, compaction GC и улучшения irb;
источник
2019 June 04
2pegramming
Привет!

Завтра стрим, начало в 20:00 по москве

https://www.twitch.tv/davydovanton

Так же, хочу делать релиз rubyjobs.dev каждый месяц, вот выжимка того, что было сделано в мае

https://telegra.ph/RubyJobsdev-majskaya-iteraciya-06-04
источник
2019 June 05
2pegramming
Сегодня в 20:00 по москве будет стрим. Будем делать the game of life.

Youtube плейлист всех стримов
https://www.youtube.com/watch?v=yJfIHcFAyG0&list=PL6n1fvXhQN4kOm_HhBDJrynj6_dcl7VJP

Твич аккаунт
https://www.twitch.tv/davydovanton
источник
2pegramming
Начинаем стрим.

https://www.twitch.tv/davydovanton
источник
2pegramming
Всем спасибо за стрим.

Ссылки:

youtube. Видио процессится, в начале может быть плохое качество, но через какое-то время будет 1080

https://youtu.be/vurOFN7-72w

twitch (удалится через 14 дней)

https://www.twitch.tv/videos/434861166

Буду рад идеям для следующих стримов, пожеланиям и что понравилось/не понравилось

❤️
источник
2019 June 07
2pegramming
Пятничное чтиво

На этой неделе прошел стрим, делал реализацию the game of life.

- Сайт с календарем стримов;
- Youtube плейлист прошедших стримов;

Так же буду рад предложениям и вопросам, можно в личку, можно в анонимную форму.

—————————————

Functional architecture is Ports and Adapters и русский перевод

Автор, используя f#, показывает как разделение приложения на чистые и грязные функции ложиться на концепцию портов и адаптеров из гексагональной архитектуры. Для проверки разделения на “правильность” используется Haskell. Вывод из статьи: чистые функции - кор приложения, а остальные функции оказываются вокруг, как это сделано в портах и адаптерах.

Мне нравится эта идея, начинаю приходить к похожему подходу в проектах. В таком случае вызов логики становится линейным и легко тестируемым за счет изоляции сайд эффектов. Кажется, что в js мире приходят к чему-то такому с выносом синхронных функций в кор и асинхронных вокруг этого кора.

Ну а для тех, кто не слышал о гексогональной архитектре ссылка на статью, в которой автор попробовал собрать эти концепции вместе. А так же, русски перевод.

—————————————

Advanced Postgres Performance Tips
Using EXPLAIN ANALYZE to debug a slow SQL query
Understanding Window Functions
Серия статей о постгресе и SQL благодаря которым можно разобраться с EXPLAIN ANALYZE, window functions и MATERIALIZED VIEW. Статья об EXPLAIN ANALYZE помогла разобраться в оптимизации кода. А если используете hanami/rom, то есть лайфхак, как вызывать analyze из репозитория:

Profiling your SQL queries in hanami (or ROM)

Ну а так же плагин для rom5, который позволяет использовать форматирование для explain.

—————————————

Rethinking Visual Programming with Go

Недостаток программирования - сложно представить схему системы только с помощью текста. Поэтому разработчики любят диаграммы, вайтборды и другие вещи, помогающие изобразить мысли в виде рисунков. На этой почве появляются тулсеты (IDE рисующие зависимости классов, таблиц в бд и так далее), которые могут помочь упростить понимание абстракций. И о таком тулсете рассказывается в статье. Автор попробовал визуализировать код на го и теперь делиться опытом.

Кроме тулсетов создаются языки программирования построенные на визуальном программировании. Например luna, который развивается до сих пор и позволяет манипулировать данными в визуальном стиле. Так же, обороты набирает программирование в VR: Introducing LogiX - VR multiplayer visual programming system.

Так же, в dry-system появляются зачатки похожей системы. Уже есть граф зависимостей, скоро будет “среда” для полноценной работы над ним:
Generate dependency graph for all objects in application container

——— одной строкой ———

- What are your worst coding habits?;
- Пропозал однострочного паттерн матчинга в руби;
источник
2pegramming
Переслано от Евгений Зубаиров...
@davydovanton На тему визуальных языков программирования рекомендую посмотреть на https://ballerina.io/
Достаточно прикольный концепт самого языка, и авторы поддерживают визуальное редактирование/создание кода через официально поддерживаемый плагин для VSCode.
источник
2019 June 14
2pegramming
Пятничное чтиво

На следующей неделе стрим, а пока можно посмотреть прошлые стримы и добавить себе календарь предстоящих стримов с сайта.

Так же буду рад предложениям, вопросам и идеям для стримов. Можно писать в личку, а можно в анонимную форму.

—————————————

На этой неделе, ruby core добавили pipeline оператор, являющимся алиасом для вызова метода с неочевидными изменениями. Интернет раскололся на 2 лагеря, половине нравится, а другой - нет. Пока Матц попросит убедить в ненадобности этой фичи, давайте рассмотрим языки с пайп оператором.

- F# (так же есть forward composition operator и backward pipe);
- Elixir ;
- Elm (включает backward pipe);
- Язык прототип от Матца streem;
- bash;
- OCaml;
- R;
- Объяснение чем композиция в хаскеле отличается от pipe в f#

Языки в которых предлагают сделать пайп оператор:
- Kotlin;
- Rust;
- Babel;

—————————————

Why I No Longer Use MVC Frameworks
Эссе-рассуждение о том, куда движется фронтенд и почему MVC пора выкинуть. А также рассказывается о идеи SAM (State-Action-Mode) паттерна.

Чем больше разбираешься с сервисами, DDD и организацией кода, тем больше понимаешь, что MVC не решает проблем организации логики. При этом, паттерн может мешать разработчикам. Из-за этого появляются монстры вида MVC но с сервисами. Как пример, Luca Guidi два года назад сделал доклад в котором рассуждал, что современный веб чейн функций. Avdi Grimm написал мысли по поводу MVC и того, что паттерн нужен только для UI. Что сильно пересекается с мыслями Andrzej о том, что Rails не MVC фреймворк.

—————————————

Redis: under the hood
В статье найдете: что делает редис на старте, как обрабатываются реквесты и возвращается результат. В продолжении статьи рассказывается как трассировать команды GET и SET. Если близка тема того, как работают базы данных или конкретно редис - однозначный мастхев.

——— одной строкой ———

- Записи ruby core developer meeting за 13 июня, краткое описание тикетов, над которыми работает руби кор с комментариями;
- Описание rate limit стратегий из sidekiq;
- Building side projects - DEV Community;
источник
2pegramming
к сожалению амплифер съедает twitter ссылки. Что бы открыть ссылку - удалите все utm_source параметры
источник
2019 June 19
2pegramming
Сегодня в 20:00 по москве будет стрим. Будем делать сканер портов.

Youtube плейлист всех стримов
https://www.youtube.com/watch?v=yJfIHcFAyG0&list=PL6n1fvXhQN4kOm_HhBDJrynj6_dcl7VJP

Твич аккаунт
https://www.twitch.tv/davydovanton
источник