to post messages and comments.

Кстати, прикол от Nanoc. Там есть возможность писать свои фильтры и вообще внедрять свой код в процесс компиляции сайта, достаточно закинуть модули в папку lib. Ну я и закинула. А у меня один главный файл, к которому через require_relative прицеплены другие. В standalone режиме всё прекрасно работало, а тут компиляция начала валиться с сообщением, что дескать unicode normalization не применима к US-ASCII. С этого момента началось перелопачивание исходников в поисках, где он нашёл US-ASCII. Думала, что из-за включения гема unicode, пихала всё в module, чтобы не светилось наружу – нифига. Потом от отчаяния догадалась убрать require_relative, раз уж оно грузит все модули, что есть в папке без дополнительных пинков, и ошибка пропала. Короче, мистика.

Собственно, чего это я? Сегодня вместо работы сидела портировала код, конвертирующий текст в HTML с сохранением внешнего вида (в том числе и табов), с VBScript на Руби. Тоесть код нужен был для обновления программы на VB6, но на работе VB6 нет поэтому сначала писала на VBScript, а потом в VBA приводила в чувства. Собственно, на Руби я это дело перевести тоже хотела, а всё для чего? Для того чтобы у меня был свой собственный фильтр для Nanoc, чтобы обычный текст выводился нормально без всех Markdown премудростей. И фильтр я таки сделала, теперь нужно допилить его для нормального состояния, чтобы параметры были и всё такое. А там уже можно будет придумать, как мелкие рассказики пачкой публиковать, конвертируя из CherryTree XML ^^'

Попыталась выяснить, чем использование Руби в Японии отличается от использования Руби в Штатах.
engineering.appfolio.com
Бросила это занятие на середине, ибо вся статья – поток одинаковых блоков, в которых автор сначала задаёт вопрос «Так как же Руби используют в Японии?», а потом начинает рассказывать об особенностях использования Руби на западе. Между блоками идут куцие склейки в виде перечисления названий конференций руби девелоперов, перечисления имён центровых разработчиков Руби (и времени, в котором они живут друг от друга) и рассказами о том, что японское правительство спонсирует Руби. Где-то там мелькнуло что-то про IoT и память, но буквально в двух предложениях.
Ну нельзя же так =_=

In case when SSL error occurred when you update gems (http://guides.rubygems.org/ssl-certificate-update/#installing-using-update-packages):

— download update manually rubygems.org
— install update from local file system:

gem install --local .\rubygems-update-2.6.11.gem
update_rubygems
gem uninstall rubygems-update -x

Если у нас сокеты, скажем, в каком-нибудь Net::HTTP, и случается ошибка, то вот вот это:
$stderr.puts "Ошибка: #{ e.message }"может кончиться этим:
incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)Поэтому нужно делать так:
$stderr.puts "Ошибка: #{ e.message.force_encoding("windows-1251").encode("UTF-8") }"Собственно, это результат мышления в стиле «двух кодировок» и «какой-такой UTF-16 я в линупсах привык к UTF-8 и доки не читаю».
pics.lindachan.net

Как заставить RVM работать не только в запущенном Баше, но и за его пределами, в тех же Иксах? А то Баш при запуске читает ~/.bashrc и запускает специальный скрипт, после чего все переменные окружения красиво устанавливаются, и нужная версия Руби подменяет системную (если есть). Иксы же при логоне запускают ~/.profile и даже выполняют указанный там скрипт, но переменные окружения так и не устанавливаются. В итоге работает только системная версия Руби, устаревшая лет пять назад =_= Приходится городить костыли с промежуточными скриптами, которые врукопашную устанавливают нужные переменные и запускают правильную версию Руби. Та же фигня с неинтерактивными пользователями вроде www-data в рамках вэб-сервера. У них вообще нет ~, а при системной установке RVM для них не выполняется обновлятор переменных окружения =_= И при запуске от суперпользователя (скажем, через крон) – RVM большими красными буквами не рекомендуют запускать от рута =_= Короче, пичалька.

Я даже сначала подумал, что это Линда ruby учит: linux.org.ru
"Простите за мой жест отчаянья. Я не программист, но решила освоить ruby. Читаю книги прочее и пробую решить задачки на основе прочтенного/увиденного. Но самой не выходит понять где я туплю. Пожалуйста помогите!
Полная задача звучит так: Сцотона принимает в жертву человеческие души. Но он может зохавать не каждую душу. Если у души нет имени он говорит: «Опять китаец... А нормальная еда есть?». Если возраст до 10 лет — он кричит: «Еще не успел нагрешить — скормите Исусу». В остальных случаях он говорит: «Спасибо за угощение. Юзернейм был вкусный!» Нужно выполнить в лучших традициях ооп и продемонстрировать код, где Сцотону кормят."

То, что у функций в Руби есть опциональные параметры с дефолтным значением, это, конечно, хорошо. А то, что нельзя пропустить один опциональный параметр и указать значения следующих вызовом вида «byaka(12, , 34)», это, конечно, очень плохо =_=

Пилю модуль со строковыми функциями в стиле VB6. В качестве упражнения и безболезненного погружения. Сначала хотела стандартный класс переопределить, но потом решила не делать этого. Собственно, узнала кое-что новое про сами VB функции. Например, в Replace() есть параметр Start, который по идее только сообщает с какого символа начинать поиск и замену, а на деле (и это задокументировано!) срезает всё, что было до этого символа. Я прямо в шоке, всегда думала, что активно использую этот параметр, ан нет, видать, ни разу не использовала.

То ли я невнимательно читала спецификацию syslog, то ли авторы класса Syslog в Руби, но ихние функции debug(), error() и прочие не соответствуют тому, что я вижу в своём syslog сервере. Тоесть отправляю error(), а оно появляется как Warning, falal() – как Error и так далее. Разве что только info() нормально выходит.

Пишу в начале скрипта на Руби:
#!/usr/bin/env rubyЗапускаю, Баш начинает вести себя неадекватно, словно это – его собственный скрипт. Вспоминаю, убираю BOM, запускаю. Баш сообщает, что файл не найден. Вспоминаю, CRLF превращаю в LF. Запускаю, скрипт стартует без проблем.
При этом самого Руби это всё не смущает. Башу не хватает гибкости™

bugs.ruby-lang.org

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

НЕТ КЛЮЧА КАРЛ!!!
ХОДИ И ИНСТАЛЬ ВСЕ РУКАМИ!!!
АВТОМАТИЗАЦИЯ? НАХУЮ МЫ ВАШУ АВТОМАТИЗАЦИЮ ВЕРТЕЛИ!!!

Давно не обновлял цифры производительности в «Объектном Фибоначчи»: github.com

PHP7 обошёл и Ruby, и Python. Но по-прежнему здорово проигрывает HHVM. Есть и другие, хоть и менее заметные перестановки. Думаю, надо выкроить пол-часика, изучить поверхностно Rust и слепить тест для него. На днях попробую пощупать.

В ирц кинули классную ссылку <blade.nagaokaut.ac.jp>, что такое Ruby. :)

Ruby is a language designed in the following steps:

* take a simple lisp language (like one prior to CL).
* remove macros, s-expression.
* add simple object system (much simpler than CLOS).
* add blocks, inspired by higher order functions.
* add methods found in Smalltalk.
* add functionality found in Perl (in OO way).

So, Ruby was a Lisp originally, in theory.
Let's call it MatzLisp from now on. ;-)

RWpod — подкаст про мир Ruby и Web технологии
10 выпуск 04 сезона. Rails 4.2.6, 4.1.15, React v15.0rc, GraphQL Ruby, DuckRails, Artillery, Freezeframe.js и прочее
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске:
Ruby
* Rails 4.2.6 and 4.1.15 have been released, Suppress save events in Rails 5 и Rails 5 switches from strong etags to weak etags
* PostgreSQL and Rails, sitting in a tree и GraphQL Ruby: Clean Up your Query Type
* Adventures in Production Rails Debugging и Surrogate WebSockets Alongside Rails
* DuckRails — is a development tool, which allow developers to quickly mock API endpoints, Unicode::Confusable — compares two strings if they are visually confusable и URN Build Status — Ruby library to validate and normalize URNs according to RFC 2141
JavaScript
* React v15.0 Release Candidate и The end of the magic of Meteor
* Service Workers: save your user’s data using the save-data header, и 5 Tips For Writing More Maintainable JavaScript Code
* Become a 10x programmer. Sharpen your Axe, Styling Broken Images и Enduring CSS (book)
* Artillery is a tool for load-testi

Скачать: rwpod.podfm.ru
rwpod.com

Ruby NoName Podcast S08E01
rubynoname.ru
Anton Davydov
В первом эпизоде этого года мы поговорили с Антоном Давыдовым про Google Summer of Code, Hanami и open source в целом.
Антон Давыдов
* Профиль на Github
* Твиттер
Moscow.rb
* Твиттер
* Сайт
Rubyunderhood
* Твиттер
* Архив ведущих
Hanami
* Luca Guidi
* Official Page
* Twitter
* Ишью с лотус трендмарком
Ссылки
* Google Summer of Code 2016
* Sidekiq
* Статья от Майка про зависимости
* Как начать писать в опенсорс
Книги
The Well-Grounded Rubyist
Конференции
* 19 марта. Ruby Meditation 7 в Киеве
* 2 апреля. IT Global Meetup в Питере. Набираем программу на ruby-островок.
* 4-5 июня. RubyC – Cамая большая ruby-конференция на Украине

Наконец дочитал крайнюю редакцию Metaprogramming Ruby 2. В принципе, ИМХО это лучшее из всего, что написано по ruby. И must read, если хочется научиться понимать концепции языка и понять как интерпретатор работает изнутри. Кстати, на metaprogramming в книге основной акцент не делается (ну не считать же метапрограммированием создание дохленького DSL). Автор, Paolo Perrotta (@nusco в твиторе) старался как мог, но его английский все таки немного суховат, что-ли… чувствуется, что не родной. Так что иногда читать откровенно скучно. Но все равно, книга, лично для меня, окупила себя до последнего цента.

если у кого при "bundle install" падает nokogiri, первым делом глянуть, есть ли в системе установленные дев либы (всякие libxml2, libxslt), а потом уже можно сделать так "NOKOGIRI_USE_SYSTEM_LIBRARIES=true bundle install"
p.s. такое случалось, кажется только в opensuse. ubuntu работает и без ручного выставления "юз систем либрариз"