Non-trivial Ruby

@rubynontrivial Like 0
Is this your channel? Confirm ownership for additional features

Ruby-наркомания: микробиблиотеки, альтернативные фреймворки, security, IoT, system programming
Обратная связь: @pticonet
Channel's geo & Language
Russian, Russian


Channel's geo
Russian
Channel language
Russian
Category
Technologies
Added to index
18.06.2018 17:08
advertising
TGStat Bot
Bot to get channel statistics without leaving Telegram
SearcheeBot
Your guide in the world of telegram channels
Telegram Analytics
Subscribe to stay informed about TGStat news.
252
members
~0
avg post reach
~3
daily reach
N/A
posts per day
N/A
ERR %
0
citation index
Recent posts
Deleted
With mentions
Forwards
Non-trivial Ruby 30 Aug 2019, 20:33
Ну и раз уж я упомянул Витю, упомяну и свежий пропозал https://bugs.ruby-lang.org/issues/16122

ИМХО, это то чем Struct должен был быть изначально и уже потом с расширениями в виде Enumerable и пр.
Non-trivial Ruby 30 Aug 2019, 20:20
Сел писать о пайплайнах, понял что без объяснения что такое ФП и зачем оно в Ruby не обойтись. Поэтому выйдет лонгрид. Заодно мне посоветовали прикрутить комментарии (спасибо Зверок), поэтому пока спрошу: вам интересны лонгриды или наоборот короткие, сжатые материалы и новости?
Non-trivial Ruby 30 Aug 2019, 18:06
После введения в ruby-2.7 pipeline operator (|>) в качестве экспериментальной фичи и последующих жарких дискуссий, сегодня фичу откатили.

Основным аргументом противников (коим является и автор этих строк) было то, что по сути, pipeline оператор был синтаксическим сахаром для method chaining, с одним единственным отличием: он красиво смотрится в multiline.

Сторонники приводили аргументы, что в ruby уже есть алиасы для красоты, типа { ... } и do ... end и вообще ruby — это OO-язык, поэтому и от пайпа ожидается работа с объектами, а не функциями.

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

Подытоживая, вместо новой фичи и новых возможностей языка, мы получили просто алиас для "." К счастью, аргументы в дисскуссии оказались весомыми и фичу пока откатили. Надеюсь идею не забросят и мы в скором времени увидим альтернативную имплементацию. О возможных вариантах развития в следующем посте
Read more
Non-trivial Ruby 5 Aug 2019, 19:40
Вторая фича rubinius — гемификация стандартной библиотеки, не столько про интероперабельность (хотя и про неё тоже), сколько про релиз-менеджмент.

Дело в том, что каждый кто контрибьютил в stdlib, знает две вещи:

1. Процесс принятия патчей в stdlib унифицирован с процессом принятия в непосредственно интерпретатор, т.к. это и де-юре и де-факто, один проект с одним репозиторием и баг-трекером.
Сам процесс — боль и унижение: сначала вы формируете изменения в виде patch-файла от… да вот хер пойми от чего. Я это делал от текущего master и вроде прокатило, благо конкретный код не менялся года два.
Потом вам нужно найти нужную ветку в трекере. Поверьте, это очень сложно — структуру трекера не понимают, кажется, даже сами мейнтейнеры MRI. Скорее всего вы не угадаете и через какое-то время, в результате общения с модераторами, вы попадёте в нужную и вам даже заэссайнят мейнтейнера конкретной либы. Где взять нужного мейнтейнера самостоятельно, ума не приложу.
Затем, спустя месяц появится мейнтейнер, скажет что вы Олег и сделали патч неправильно, по пути тегнув ещё пару ревьюверов-сан. И спустя ещё месяц-другой дискуссий, иногда даже с привлечением солнцеликого, через час после того как вы решите сделать себе сэппуку и уйдёте в Ашан за инструментом, ваш патч примут. И возрадуетесь вы. И возопьёте сакэ. И ещё не будете знать, что:

2. Релиз-цикл у MRI один для всего. Соответственно, если ваш патч попал в репу сразу после релиза, свои обновления в stdlib вы не увидите ещё очень долго. Ради маленького исправления в какой-нибудь Pathname, релиз всего MRI никто делать естественно не будет.
Особенно это доставляло радости в случае security-проблем. Вопрос решался оперативнее, но длился по меркам infosec всё равно мучительно долго. Доходило до того, что Rails предлагал манкипатчи либо отключение функционала, до нового релиза Ruby с исправлением.

К счастью, это всё уходит в прошлое. Сейчас каждая стандартная библиотека имеет свой репозиторий и версию гема и даже иногда (!) принимает пулл-реквесты на Github (зависит от конкретного мейнтейнера).
Read more
Non-trivial Ruby 4 Aug 2019, 20:04
Я тут быстро загуглил, таки да, это был Наттер: http://eregon.github.io/rubyspec/2015/07/29/rubyspec-is-reborn.html
Non-trivial Ruby 4 Aug 2019, 20:02
Вообще, в связи с этим, мне вспомнился проект под названием Rubinius.

В историю он вошёл, в основном, шуточками про pkunzip.zip Но на самом деле, rubinius внёс огромный вклад в развитие ruby двумя вещами: ruby-spec (не путать с RSpec) и гемификацией stdlib.

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

Проблема интероперабельности различных имплементаций (особенно JRuby) стала во весь рост примерно после релиза Ruby 1.9-2.0. Большой объём нововведений и их фундаментальность, при отсутствии нормального описания привели к различной трактовке (фронтендеры поймут) нюансов. В итоге код написаный под MRI мог некорректно работать в JRuby и прочих. С подачи, если мне не изменяет память, Чарлза Наттера, вспомнили про усопший рубиниус и его ruby-spec, который к тому времени обрёл отдельный репозиторий и поддерживался энтузиастами как раз с этой целью.

Спустя какое-то время, с большим, как это часто бывает с MRI, скрипом, ruby-spec стал официальным test suite языка Ruby
Read more
Non-trivial Ruby 4 Aug 2019, 19:29
Non-trivial Ruby 2 Aug 2019, 13:11
Non-trivial Ruby 19 Jul 2019, 18:40
Non-trivial Ruby 18 Jul 2019, 15:28
Немного подзапущеный (как этот канал, лол), но всё ещё рабочий мост между Ruby и Rust: https://usehelix.com/

Врядли он дойдёт до production-ready, но поиграться интересно.
https://headway.io/blog/helix-improve-the-performance-of-rails-with-rust/
https://blog.dnsimple.com/2017/05/writing-ruby-gems-with-rust-and-helix/
Non-trivial Ruby 18 Jul 2019, 15:16
Удивительно, но перестав писать в канал всего на пару недель, можно забыть о нём на полтора года.
Благо на помощь приходят желающие разместить в нём рекламу или вакансию. Спасибо. Напомнили :) Продолжаем
Non-trivial Ruby 17 Feb 2018, 14:00
Non-trivial Ruby 17 Feb 2018, 13:51
Non-trivial Ruby 17 Feb 2018, 13:51
Трансляция RubyMeditation 20 бесплатно без смс без регистрации
Non-trivial Ruby 15 Feb 2018, 17:05
pry-doc теперь поддерживает нативные методы на C: https://medium.com/@jrmair/dig-deeper-with-pry-introducing-cruby-source-browsing-702cb8358690

Теперь осталось выучить C и японский
Non-trivial Ruby 11 Feb 2018, 18:09
Похоже что Ruby настолько хорош, что рано или поздно рубистам становится скучно и они пишут свой ruby, с concurrency и типизацией
Non-trivial Ruby 11 Feb 2018, 18:05
Немного воскресной наркомании: на днях известный специалист по оптимизации баз данных (и не только) представил миру Inko https://gitlab.com/yorickpeterse/inko

Да, да, я в курсе что миру нужен ещё один язык программирования, но идеи интересные.
Non-trivial Ruby 29 Jan 2018, 20:03
Attached file
Non-trivial Ruby 29 Jan 2018, 20:03
Я смотрю, держи от меня класс
Non-trivial Ruby 29 Jan 2018, 20:00
а разве кто-то смотрит трендинги гитхаба?