Size: a a a

2019 March 29
2pegramming
Пятничное чтиво

Привет!

На этой неделе прошел стрим, рассказывал о эвент сорсинге и объяснил базовую концепцию, в следующий раз продолжим и углубимся в детали. Ссылка на стрим:

http://amp.gs/4b3T

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

[Saved Game History: Battery Backups, Memory Cards, and the Cloud


Мне нравятся игры и статьи “как это работает”. Поэтому сегодня начинаем с краткого курса сохранений в консольных играх. Рассказывается как работал “золотой” картридж с зельдой и как игровые автоматы воспользовались сохранением игр с консолей.

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

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

How Does a Database Work? | Let’s Build a Simple Database

Статья состоящая из 13 частей, в которой автор создает базу данных на чистом С. Я так и не осилил этот текст, но из него стало понятнее как работают B-Tree, Cursor Abstraction и запись на диск. Если много времени и желания понять как это работает - однозначный мастхэв.

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

Misconception about OSS support

Каждый месяц освещаются проблемы взаимоотношений OSS и бизнеса, а так же, как проблемы можно решить. Сегодня статья от автора  highlight.js библиотеки, который затронул мысль того, что опенсорс не бизнес, а хобби. А это значит, что бизнес проекты зависят от ленивой поддержки хобби проектов. А что вы думаете? Хотели бы, чтобы бизнес вкладывал больше ресурсов в опенсорс?
источник
2019 April 05
2pegramming
Пятничное чтиво

Привет!

На следующей неделе будет стрим, продолжим разбираться с эвент сорсингом. Расскажу о концепции streams и о read/write моделях. Начало 10 апреля, среда, в 20:00 по москве.

Календарь

Youtube плейлист всех стримов

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

Moving on from Rails and what’s next
Начнем с грустных новостей. Еще один рейс кор разработчик уходит из руби. На этот раз в rust и diesel (ORM для раста). Причина: Sean заметил, что работает над rust и crates io большую часть времени. Можно поддержать разработчика на патреоне.

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

Why language-oriented programming? Why Racket?
LISP языки - моя тайная страсть. Люблю scheme (даже делал интерпретатор на руби), command lisp и racket. О последнем статья выше. Автор ответит на вопрос зачем создание собственных предметно-ориентированных языков нужно и почему написание таких языков на racket логично. А также приведёт примеры, где используются предметные языки и для каких задач это оправдано

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

—————————————
How we Built a Highly Performant App with Ruby on Rails and Phoenix
Статья описывающая как подружить рельсовое и феникс приложение. Секрет успеха: Exq (sidekiq совместимый бэкграунд процессинг) и sidekiq с redis для отложенных задач. А также общая база данных и request forwarding.

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

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

БОНУС: Ruby’s Creed
В качестве бонуса мысли Божидара (автора rubocop) о языке, экосистеме и будущем ruby. Автор попросил воспринимать пост как начало диалога, поэтому, если есть что сказать - комментарии открыты или приходите первого июня на spbrubyconf где Божидар расскажет о ruby 3.0.
источник
2pegramming
pepegramming
Пятничное чтиво

Привет!

На следующей неделе будет стрим, продолжим разбираться с эвент сорсингом. Расскажу о концепции streams и о read/write моделях. Начало 10 апреля, среда, в 20:00 по москве.

Календарь

Youtube плейлист всех стримов

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

Moving on from Rails and what’s next
Начнем с грустных новостей. Еще один рейс кор разработчик уходит из руби. На этот раз в rust и diesel (ORM для раста). Причина: Sean заметил, что работает над rust и crates io большую часть времени. Можно поддержать разработчика на патреоне.

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

Why language-oriented programming? Why Racket?
LISP языки - моя тайная страсть. Люблю scheme (даже делал интерпретатор на руби), command lisp и racket. О последнем статья выше. Автор ответит на вопрос зачем создание собственных предметно-ориентированных языков нужно и почему написание таких языков на racket логично. А также приведёт примеры, где используются предметные языки и для каких задач это оправдано

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

—————————————
How we Built a Highly Performant App with Ruby on Rails and Phoenix
Статья описывающая как подружить рельсовое и феникс приложение. Секрет успеха: Exq (sidekiq совместимый бэкграунд процессинг) и sidekiq с redis для отложенных задач. А также общая база данных и request forwarding.

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

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

БОНУС: Ruby’s Creed
В качестве бонуса мысли Божидара (автора rubocop) о языке, экосистеме и будущем ruby. Автор попросил воспринимать пост как начало диалога, поэтому, если есть что сказать - комментарии открыты или приходите первого июня на spbrubyconf где Божидар расскажет о ruby 3.0.
с лиспами опечатался, common lisp конечно же
источник
2pegramming
так же, ребята из evrone попросили рассказать о том, что 20го апреля, в вороонеже, будет большой рубишный митап. Все бесплатно, регистрация:

https://railsclub.timepad.ru/event/944287

Из интересного: очень хотелось бы послушать Олега, надеюсь запись будет
источник
2019 April 09
2pegramming
Привет!

Завтра очередной стрим стрим, продолжим разбираться с эвент сорсингом. Расскажу о концепции streams и о read/write моделях. Начало 10 апреля, среда, в 20:00 по москве.

Календарь
http://pepegramming.site

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

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

http://amp.gs/RVLe
источник
2019 April 11
2pegramming
Всем спасибо за стрим.

Ссылки:

youtube. Вырезал все лишнее и со следующего раза будет 1080!

https://youtu.be/SAWjN8LcaSg

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

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

репозиторий с кодом

https://github.com/davydovanton/pepegraming-stream/tree/master/event_sourcing

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

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

Привет!

В эту среду закончил рассказал о концепции stream и producers в event sourcing. Обновления - начал обрабатывать видео с записи. Удалил пустоты, добавил интро, а так же, теперь новые видео на ютубе будут в 1080 качестве.

Youtube плейлист прошедших стримов

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

My favorite parts of Ruby
Статьи с непопулярными вещами в языке - личный фаворит. Сам писал об этом (часть первая, часть вторая). Сегодня лонгрид о вещах в руби, о которых мало кто знает. Например,  было открытие, что n = 1; proc { |;n| n }.call валидное выражение. Что заинтересовало или впечатлило:

- Passing blocks to the  method;
- defined?;
- Shadow arguments;

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

Hidden jewels of Ruby stdlib
Следующая статья - продолжение первой. В этот раз рассказывается о малоизвестных инструментов из стандартной библиотеки. А рассказать есть о чем. Если парсерами для CLI удивить сложно, то key-value storage из коробки все еще вызывает удивление. А также, подробное описание dRuby. Если этого мало - советую блог автора.

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

Messages on Rails Part 2: Kafka
Коммуникации между сервисами - сложно. В статье выше рассказывается как взять рейлс, прикрутить кафку и заставить это работать. Также описываются базовые концепции кафки необходимые для использования. В первой части статьи можно найти теоретическое введение в способы коммуникации, какие проблемы решаются и как.

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

- Ruby API (v2.6) - еще один сервис для поиска и просмотра документации по руби;
- Twitter: “А какие вопросы вы задаете компании на собеседовании? ” - тред в твиттере об вопросах к компании. Так же, я уже выкладывал собственный майндмап с вопросами;
- Hanami 1.x bookshelf app based on tutorial, tweaked to use rom-rb 4.x standalone - пример ханами приложения с последней версией рома для тех, кому не хватает hanami-model;
источник
2pegramming
Не выдержал смерть rubyjobs.ru и сделал работающий аналог:

https://rubyjobs.dev

Пока работает в бета режиме и медленно наполняется вакансиями.

Проект опенсорсный, код тут:
http://github.com/davydovanton/rubyjobs.dev

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

Буду рад новым вакансиям, фичам и обратной связи. Так же, по ссылке ниже, двух минутная форму, что бы собрать  проблемы с обоих сторон:

https://forms.gle/KoVreb24m98xwcVh7
источник
2019 April 19
2pegramming
Пятничное чтиво

Привет!

На следующей неделе будет стрим. Будем делать http://amp.gs/RHX9. Так как я в путешествии, гарантировать стабильный интернет, к сожалению, не смогу.

На этой неделе проходит главная руби конференция - rubykaigi. Главные обсуждения - типизация, автолоадинг, паттерн матчинг и руби 3х3. Подробнее в ссылках.

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

Why it is just lazy to bad-mouth Ruby on Rails | http://amp.gs/RHXV
Исторических статей по технологиям не хватает. Поэтому открываем ссылки с подробной историей ruby on rails начиная с 2003 года и заканчивая 2017 годом. В эпилоге автор рассуждает о будущем и мертв ли язык и фреймворк.

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

Using Mappers to organize your data and your project
Статья из мира js, в которой рассказывается о том, как использовать отдельную абстракцию для маппинга данных из одного формата в другой. Сам использую подобный подход в проектах, из минусов - тестировать запарно. Также, хочется попробовать сделать подобный маппинг через dry-scheme в следующий раз.

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

RubyKaigi секция

- From Twitter: “Ruby 3 is working on type profiler generates rbi files contains type definitions to statically type checked your program.”, победил sorbet (Twitter);
- gel-rb/gel: A modern gem manager - попытка заменить тяжеловесный Bundler & Rubygems на легковесную имплементацию;
- From Twitter: “Ruby 3 Progress Report at RubyKaigi 2019”;
- vnmakarov/mir: A light-weight JIT compiler based on MIR - Владимир Макаров открыл исходники MIR проекта. О проекте рассказывалось в прошлом году, а в этом уже доступен реальный код;
- How to take over a Ruby gem - доклад mensfeld (автора карафки) о том, как защитить наши библиотеки и что может пойти не так;
- From Twitter: “We *may* be able to migrate Ruby’s SVN repository to Git during #rubykaigi” - появилась вероятность того, что руби кор мигрирует на гит в этом месяце;

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

- Feature #14912: Introduce pattern matching syntax - пару дней назад замедлили имплементацию паттерн матчинга в trunk ветку руби. Это значит, что в следующем релизе патч будет доступен для всех. Так же, появился обзор.
- Sorbet открыл документацию и запустится для публичного использования летом.
- From Twitter: “RSpec::Mocks::Proxy and RSpec::Mocks::MethodDouble are two of my favourite pieces of ruby code in the world.”
источник
2pegramming
* Ссылки из твиттера не открываются, так как амплифер навесил utm метки, которые твиттер не хочет обрабатывать. Удаление всего после ? поможет
источник
2019 April 24
2pegramming
Привет!

Сегодня стрим, попробуем реализовать несколько фичей для https://rubyjobs.dev. Начало 24 апреля, среда, в 20:00 по москве.

Календарь
http://pepegramming.site

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

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

https://www.twitch.tv/davydovanton
источник
2019 April 25
2pegramming
Привет, интернет совсем плох, поэтому надеюсь к концу недели загрузить стрим 😞
источник
2019 April 26
2pegramming
Пятничное чтиво

Привет!

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

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

A graphical introduction to dynamic programming
Объяснение в картинках что есть динамическое программирование. На примере трех проблем (Fibonacci numbers, the House Robber Problem и the Change Making Problem) рассматривается что это такое. Из выводов: динамическое программирование позволяет эффективно решать класс задач, завязанных на рекурсии с highly-overlapping subproblem structure.

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

Why software projects take longer than you think – a statistical model · Erik Bernhardsson
Статья с аналитикой, которая пытается ответить на вопрос, почему так сложно давать правильные эстимейты проектам. По ссылке найдете занимательные выводы, понравился пункт о среднем времени выполнения задачи, о которой ничего не знаем (спойлер: время стремиться к бесконечности). Так же, стоит почитать обсуждение статьи на reddit и hacker news.

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

The Zen of Erlang
На этой неделе умер Joe Armstrong, создатель эрланга. Поэтому сегодня статья, с описанием базовых концепций языка. Из нее узнаете, что падать это здорово и как дерево супервизоров может с этим помочь. Мне нравится концепция акторов из эрланга, идея о том, что падать полезно (главное быстро и автоматически подняться) и развитие идеи в chaos engineering. Поэтому, хочется верить, что эти идеи будут больше развиваться  вне эрланга/эликсира.

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

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

- http://amp.gs/U8HR - объяснение и примеры использования dRuby;
- Turning Side Projects into Profitable Startups - YouTube;
- Why Every Element of SOLID is Wrong - Speaker Deck;
источник
2019 April 27
2pegramming
Всем спасибо за стрим в среду. Наконец-то доехал в москву и выложил видео

Ссылки:

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

https://youtu.be/U49EeDDAaGA

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

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

PR с кодом

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

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

❤️
источник
2019 April 29
2pegramming
В этом году pepegramming стал инфо спонсором https://spbrubyconf.ru. А это значит, что сегодня начинаем розыгрыш билета. Почему стоит посетить конференцию:

1. ❤️ Питерское комьюнити ❤️
2. Спикеры со всего мира:

- Piotr Solnica, автор rom/dry
- Andrzej Krzywda, знает все про DDD и event sourcing
- Nick Sutterer, пил в прошлом году
- Hiroshi Shibata, руби кор разработчик и мейнтейнер bundler/rubygems

3. Белые ночи и афтепати до 5 утра (в прошлом году так и было).

Условия розыгрыша:

- Заполнить форму (https://forms.gle/Sy6tVBve5SRuUkPV9)
- Рассказать друзьям
- На следующем стриме (8 мая в 20:00), с помощью рандома выберу победителя
источник
2019 May 03
2pegramming
Пятничное чтиво

Привет!

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

- Сайт с календарем
- Список событий на твиче

На этой неделе начал разыгрывать ссылки на spbrubyconf. Так как билеты закончились, это последний шанс попасть на конференцию.

- Заполняем форму
- Рассказываем друзьям
- На следующем стриме (8 мая в 20:00), с помощью рандома выберу победителя

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

Микросервисы: размер имеет значение, даже если у вас Kubernetes
Текст - транскрипция доклада с HUG (Highload++ User Group). Доклад впечатлил, так как скомпоновал мысли связанные с сервисами и микросервисами в цельное представление. Понравилась концепция вредной и полезной микросервисности и поднятие темы, что делать, когда микросервисы превратились в занозу.

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

Kafka and Ruby, a Sidekiq lovestory
Опыт из appsignal. В статье ребята рассказывают об эволюции API архитектуры. Переезде с rails на rack middleware, последующий переезд на го и проблемы с базами данных. В итоге выбрали кафку (даже написали адаптер для ruby), которая, с помощью раста создает джобы в сайдкике. Подход имеет место быть, хотя и кажется переусложненным.

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

Never use the word “User” in your code
Статья о том, почему использование user для проектирования систем является ошибкой. На примере систем бронирования, unix-а и SaaS показывается, почему в системах не существует понятия юзера. А так же объясняется, почему юзер может вызывать security проблемы.

В персональных проектах пришел к тому, что не использую абстракцию user уже больше трех лет и доволен. Так же, в проектах которые лично видел, модель user близка к god object и 2+к стокам кода, пример - app/models/user.rb из гитлаба.

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

- Virtus официально умер;
- wrzasa/rbsim - ruby DSL для моделирования и симуляции поведения distributed инфраструктуры;
- Announcing rom-http - Rom адаптер для работы с http, аналог rails/activeresource;
источник
2019 May 07
2pegramming
Привет!

Завтра стрим, поговорим о тестировании. Начало 8 мая, среда, в 20:00 по москве. А так же разыграем билет на http://spbrubyconf.ru, подробности тут https://t.me/pepegramming/174.

Календарь
http://pepegramming.site

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

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

Завтра стрим, поговорим о тестировании. Начало 8 мая, среда, в 20:00 по москве. А так же разыграем билет на http://spbrubyconf.ru, подробности тут https://t.me/pepegramming/174.

Календарь
http://pepegramming.site

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

Твич аккаунт
https://www.twitch.tv/davydovanton
Если у вас есть вопросы связанные с тестированием - можете написать заранее, постараюсь ответить на все во время стрима
источник