RefineryCMS — это еще одна RoR CMS. Поддерживает Rails3.2, удобна. Я не стану тут заниматься пересказом пресс-релизов, если интересно — на сайте можно поиграться в демо. Поскольку родилась она не вчера, из коробки поддерживать Twitter Bootstrap не умеет. Есть костыль refinerycms-bootstrap, но меня он не впечатлил. Поэтому я расскажу, как быстро прикрутить bootstrap самому. NB! Эта заметка не предполагает, что вы уже видели RefineryCMS, но и не рассказывает именно о ней: рассказ пойдет строго о прикручивании TB.
Читать полностью »
Рубрика «ruby» - 42
Используем Twitter Bootstrap в RefineryCMS
2012-11-30 в 6:30, admin, рубрики: cms, refinerycms, ruby, ruby on rails, Twitter BootstrapЧто такое ActiveSupport::Notifications и зачем нужны?
2012-11-29 в 9:24, admin, рубрики: notifications, ruby, ruby on rails, метки: notifications, ruby, ruby on rails ActiveSupport::Notifications – это встроенная в рельсы система уведомлений. Вы можете подписаться на определенные уведомления в Rails и вызывать свой код когда они будут посланы. Это чем-то похоже на ActiveSupport::Callbacks, но работают во всем проекте и события не нужно заранее объявлять.
EventMachine ⇒ сбор информации из разных источников с последующей обработкой
2012-11-27 в 5:50, admin, рубрики: async, eventmachine, ruby, метки: async, eventmachine
Самый простой способ наступить на грабли — использовать асинхронность. Я знаком с программистами, зарекомендовавшими себя как крепкие профессионалы, которые буквально пасовали перед многопоточностью. Для затравки расскажу мою любимую историю про deadlock (прошу прощения за боян, но уж больно хорош). Лет десять назад Associated Press поведало миру, как в аэропорту шведского города Крисианстад пилот пытался посадить пассажирский самолет, однако никто из диспетчеров не ответил на его запрос. Оказалось, что диспетчер еще не вернулся из отпуска. В итоге самолет кружил над аэропортом, пока срочно не вызвали запасного диспетчера, который и
посадил самолет через полчаса. Разбор полетов показал, что причиной стало опоздание самолета. На борту которого и находился тот самый диспетчер, спешивший на работу из отпуска.
Итак, когда мы сталкиваемся с асинхронностью, нам приходится ломать привычную картину в голове: субъективно окружающий нас мир однопоточен. Если мы послали письмо, а через неделю получили ответ, для нас все происходит в пределах одного потока; нам не приходится отвечать за действия респондента и почтальона. А нашему коду — приходится.
Чтобы упростить жизнь программиста, можно использовать паттерн Реактор. Лучшая (на мой взгляд) его имплементация для руби — EventMachine. Но и с ней бывают не очевидные моменты. Об одном из них я и планирую вкратце рассказать.
Читать полностью »
Ruby на вашем сервере может работать в 2 раза медленее из-за RVM
2012-11-27 в 5:41, admin, рубрики: production, ruby, ruby on rails, rvm, Серверная оптимизация, метки: production, ruby, ruby on rails, rvm 
Просматривая сегодня «Ruby Inside», наткнулся на статью Justin Kulesza Is Your Application Running with Ruby – Slow?. Статья от 6 ноября, но Хабре об этой ситуации ни слова. А суть статьи вот в чем: ребята переносили свое приложение с сервера на Solaris на сервер с Ubuntu и использовали RVM для компиляции Ruby. Однако после переноса они заметили, что приложение стало как-будто бы тормознутее. Сначала погрешили на железо, но быстро выяснили, что дело в RVM, а именно в том, что RVM совершенно не использует оптимизацию при компиляции.
Читать полностью »
Class-level instance variables
2012-11-21 в 8:14, admin, рубрики: junior developer, ruby, variables, метки: junior developer, ruby, variablesВ последнее время было много публикаций на эту тему, но у новичков снова и снова возникают вопросы. Публикую свой вариант обьяснения почему не работает как ожидается переменная экземпляра, объявленная в теле класса:
class User
@var = 1
end
Особенности работы с Apple push notification service
2012-11-06 в 22:07, admin, рубрики: apns, apple, ruby, разработка под iOS, метки: apns, apple, ruby Добрый день, уважаемые читатели. Совсем недавно я закончил разработку apns-сервиса и хотел бы поделиться некоторыми особенностями работы с ним. Статья не является пошаговой инструкцией, а описывает трудности и подводные камни с которыми может столкнуться разработчик. Примеры кода буду приводить на Ruby, но все написанное актуально и для других платформ, в частности, PHP.
Читать полностью »
Большое обновление ObjectScript 0.99-vm3. Часть 1: Регистровая виртуальная машина
2012-11-06 в 3:47, admin, рубрики: javascript, Lua, ObjectScript, open source, ruby, метки: javascript, lua, ObjectScript, rubyObjectScript — новый встраиваемый и очень легкий объектно-ориентированный язык программирования с открытым исходным кодом. ObjectScript расширяет возможности таких языков, как JavaScript, Lua, Ruby и PHP. Вы можете ознакомится с первоначальным синтаксисом языка в этой статье.
ObjectScript 0.99-vm3 — новая быстрая виртуальная машина и новые возможности.
Убраны некоторые операторы, например, clone, numberof и др. заменены функциями. Последнее значение в функции возвращается автоматически. Добавлена короткая запись для доступа к членам объекта — @varname, новый короткий синтаксис для объявления функций и мн. др.Читать полностью »
Простая автоматизация версионности и сборки C/C++ проекта на Ruby
2012-11-03 в 11:34, admin, рубрики: c++, NSIS, ruby, svn, Visual Studio, Программирование, метки: c++, NSIS, ruby, svn, Visual Studio Предположим, что, как и в моем случае, вы впервые столкнулись с необходимостью
минимизации телодвижения на пути от SVN исходников к NSIS инсталлеру с попутной автоинкрементацией версии проекта. В ручном же режиме это выглядит примерно так:
- Прописываем новую версию в соответствующем исходнике проекта. Нужно ли это для пользователей или в качестве диагностической информации – несущественно.
- Собираем проектные файлы, необходимые для setup.
- Обновляем версию внутри nsi-файла, поскольку используем ее в окнах на этапе установки и в имени результирующего setup-файла.
Уязвимость подобной практики обнаруживается при авралах, когда один или несколько из этих пунктов оказываются пропущенными, в результате чего у пользователя на руках остаются несогласованные между собой компоненты.
Не претендуя на новизну, предлагаемые ниже скрипты автоматизируют сборку C/C++ Visual Studio проектов практически в один клик и будут полезны, прежде всего, при одиночной разработке.
Генерация PDF на сервере в Ruby
2012-11-02 в 15:54, admin, рубрики: PDF, prawn, ruby, wkhtmltopdf, Веб-разработка, Песочница, метки: PDF, prawn, ruby, wkhtmltopdf
Чуть более месяца назад я устроился верстальщиком в старт-ап, в команду Ruby-разработчиков. Так повезло, что команда оказалась очень хорошей и моё стремление учиться совпало с их желанием получить хорошего специалиста.
HTML-вёрстка сама по себе имеет немного ценности и не единственное, чем можно нагрузить верстальщика.
На нашем сайте пользователь оформляет себе покупку и ему на почту уходит подтверждение с электронным билетом. в котором указаны детали заказа, а так как в хорошем проекте всё должно быть хорошо и ярко, дизайнер нарисовал макет квитанции. Ну а мне, как верстальщику было поручено реализовать это всё в коде.
Варианты генераторов для Ruby
Согласно сайту Ruby Toolbox существует два принципиальных подхода к генерации PDF-файлов:
- wkhtmltopdf и различные обёртки на него
- Prawn
Первый вариант подразумевает генерацию HTML-страницы и конвертацию её в PDF, в то время как второй позволяет, по факту, работать с canvas и генерировать документ без дополнительных прослоек.
Я выбрал вариант с использованием Prawn (по большей части, конечно, по тому, что предыдущая версия PDF-файла генерировалась этим способом) даже не смотря на то, что мне пришлось вынырнуть из привычного мне мира HTML и CSS
Тех, кому интересно приглашаю под хабракат.
Читать полностью »
AWS: ElasticBeanstalk теперь поддерживает Ruby приложения и интеграцию в VPC
2012-11-02 в 8:35, admin, рубрики: Amazon Web Services, AWS, ruby, VPC, Блог компании EPAM Systems Ukraine, метки: aws, ruby, VPC Привет всем! 
С сегодняшнего дня Amazon Elastic Beanstalk поддерживает приложения на Ruby версий 1.8.7 и 1.9.3. Как видим это PaaS решение от AWS теперь прямой конкурент Heroku — самой знаменитой платформы для Ruby приложений. Аппликашки можно загружать с помощью связки Git+CLI или прямо через консоль.
Так же, стало возможным запускать приложения Elastic Beanstalk в Amazon Virtual Pricate Cloud, интегрируя их с уже существующей сетью. Да это же просто великолепная новость!

