Как написать высоконагруженный, многофункциональный проект вдвоём? Что делать, если нет денег и времени, а открываться нужно? Под катом немного интересной информации из личного опыта.
Рубрика «ruby on rails» - 29
История одного highload проекта
2013-06-18 в 9:00, admin, рубрики: ruby on rails, SaaS, whois, мониторинг сайта, Песочница, метки: ruby on rails, SaaS, whois, мониторинг сайта, пингПравила для разработчиков от Sandi Metz
2013-05-30 в 6:22, admin, рубрики: ruby, ruby on rails, Программирование, стиль программированияВ январе этого года, Sandi Metz представила свои правила для разработчиков в эфире подкаста Ruby Rogues. Примерно в это же время, я и моя команда начали новый проект. Эта статья описывает тот опыт, что мы получили, применяя эти правила к своему новому проекту.
Правила
- Классы не могут содержать больше чем 100 строк кода.
- Методы не могут быть длиннее чем 5 строк кода.
- Нельзя передавать больше 4 параметров в метод. Значения хэша также считаются параметрами.
- Контроллеры могут инстанциировать только один объект. Следовательно, представление может знать только об одной инстанс переменной и должно только слать сообщения этому объекту (
@object.collaborator.value
не допустим).
Уязвимость в RoR, зараженные сервера используются в ботнетах
2013-05-29 в 14:08, admin, рубрики: exploit, irc ботнет, ROR, ruby on rails, ботнет, информационная безопасность, эксплоит
Злоумышленники используют критическую уязвимость в Ruby on Rails для того чтобы получить доступ на сервера и сделать их частью ботнета. Сайт Arstechnica.com впервые сообщил об этой угрозе в начале января, вскоре после того как был выпущен патч для уязвимости. Ars предупредил тогда, что уязвимость дает нападавшим возможность удаленно выполнить вредоносный код на сервере.
Но несмотря на это, многие администраторы серверов до сих пор не установили патч, выпущенный более четырех месяцев назад.
ActiveRecord Hacks
2013-05-27 в 16:14, admin, рубрики: activerecord, ruby, ruby on rails, метки: activerecord, ruby, ruby on railsСегодня я поделюсь своим набором не всегда очевидных функций и возможностей Active Record, с которыми я столкнулся в процессе разработки Ruby on Rails приложений или нашел в чужих блогах.
Используем потоки в Ruby
2013-05-24 в 7:03, admin, рубрики: jruby, resque, rubinius, ruby, ruby on rails, unicorn, метки: jruby, resque, rubinius, ruby, ruby on rails, unicornМногие Руби-разработчики игнорируют потоки (threads), хотя это очень полезный инструмент. В данной статье мы рассмотрим создание IO потоков в Руби и покажем как Руби справляется с потоками в которых происходит много вычислительных операций. Попробуем применить альтернативные имплементации Руби, а так же узнаем, каких результатов можно добиться при помощи модуля DRb. В конце статьи посмотрим, как эти принципы используются в различных серверах для аппликаций на Ruby on Rails.
IO потоки в Руби
Рассмотрим небольшой пример:
def call_remote(host)
sleep 3 # симулируем долгий запрос к серверу
end
Если нам надо обратитьcя к двум серверам, например, чтобы очистить кэш, и мы дважды последовательно вызовем эту функцию:
call_remote 'host1/clear_caches'
call_remote 'host2/clear_caches'
то наша программа будет работать 6 секунд.
Мы можем ускорить исполнение программы, если будем использовать потоки, например, так:
threads = []
['host1', 'host2'].each do |host|
threads << Thread.new do
call_remote "#{host}/clear_caches"
end
end
threads.each(&:join)
Мы создали два потока, в каждом потоке обратились к своему серверу и командами #join сказали, что главной программе (главному потоку) надо подождать их завершения. Теперь наша программа успешно выполняется в два раза быстрее, за 3 секунды.
Читать полностью »
Обзор команд Ruby on Rails
2013-05-24 в 0:19, admin, рубрики: bundler, rake, ruby on rails, terminal, Веб-разработка, курсы, метки: bundler, rake, ruby on rails, terminal, курсыДоброго времени суток читатель !
15 июня в севастопольская команда Kodo организовывает двухдневные курсы railskickstart, посвященные, как не сложно догадаться, экосистеме Ruby on Rails и связанные с ней технологиями. Наша цель – не демонстрировать 15-минутный блог и после этого говорить, как все замечательно. Такого материала в просторах интернета огромные кучи. Мы же хотим рассказать о вещах, которые остаются за кадром, о реальном опыте использования и даже случаях, когда лучше не использовать RoR. Да, вам это не показалось – есть очень много случаев, когда использовать рельсы не самый лучший вариант. Однако, стоит понимать, что 2 дня — это очень малый промежуток времени, за который можно только прикоснуться к чему-то, но не понять. Поэтому мы запускаем курс материалов, направленных на знакомство с Rails. Надеемся, что прочитав их, будущий участник будет говорить с нами на одном языке, и обрастет многочисленными вопросами, на который мы с радостью ответим. Если же вы не живете в г. Севастополе или не можете прийти к нам 15 и 16 числа, то это совсем не повод не читать их(статьи) и не задавать возникшие вопросы и пожелания в комментариях.
Первый материал будет посвящен работе в терминале. Овладев набором команд, Вы с легкостью сможете создавать различные компоненты системы, выполнять команды и узнавать различную информацию. Все примеры будут приведены для версии 3.х.х
Читать полностью »
Ruby on Rails. Установка, настройка, начало работы
2013-05-22 в 16:06, admin, рубрики: ruby, ruby on rails, настройка, начало, установка, метки: ruby, ruby on rails, настройка, начало, установкаЗачем.
В этой маленькой статье, которую с удовольствием прочитал бы сам неделю назад, я попытался собрать все вещи, которые понадобились бы человеку, задумай он «с нуля» написать приложение на RoR. То есть не углубляясь ни в одну из областей, описать необходимый минимум действий, чтобы установить, настроить и написать своё первое приложение.Здесь собрано, как мне кажется, всё, что нужно и я надеюсь этот текст сэкономит кому-нибудь несколько часов поиска в интернете). Сам изучаю RoR вторую неделю, так что не судите строго).
Установка.
Просто и быстро ror ставится через rvm c rvm.io/.
>curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled
Запустить rvm:
>source /Путь_к_домашней_директории*/.rvm/scripts/rvm
*$HOME в дальнейшем.
После этого в $HOME/.bash_profile должна появиться строчка:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
и при каждом открытии консоли rvm будет подгружаться, но у меня этого не случилось — пришлось ещё в $HOME/bashrc прописывать:
. ~/.bash_profile
Теперь всё точно должно быть хорошо.
Устанавливаем нужную(скорее всего это будет самая последняя) версию руби (сколько их и в чём отличие можно посмотреть сдесь -http://www.ruby-lang.org).
>rvm install 1.9.3
Проверка на успешность создания
>ruby -v
должна вернуть более подробную информацию, вроде
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux].
В процессе установки я случайно установил несколько версий, что потом доставило некоторые неприятности). Посмотреть список установленных версий руби можно так:
>rvm list
Если версий несколько, то текущая будет помечена "=>", дефолтная — "*", а текущая и дефолтная — "=*". Поменять на нужную используемую версию можно так:
>rvm use ruby-1.9.2-p320 (любая нужная версия)
Чтобы поменять дефолтную версию руби пишем:
>rvm use ruby-1.9.2-p320 --default
Изучая Rails (ну, и Ruby)
2013-05-12 в 12:37, admin, рубрики: learning, php, ruby, ruby on rails, Программирование, разработкаЯ знаю PHP. Не просто знаю, а действительно знаю. Не только синтаксис, или идиомы и особенности, но еще и почему — почему что-то работает именно так как оно работает, понимаете, под капотом. И скорее всего я тем или иным образом принимал участие в принятии того или иного решения. Все таки, тринадцать лет с языком — это долгий срок. Но я работал не только с PHP.
Не бывает «чистых» программистов
2013-05-11 в 10:53, admin, рубрики: ruby, ruby on rails, говнокодеры, новички, Программирование, профессионализм, разработка, разработка сайтовС появлением Ruby on Rails уровень технических знаний необходимых для создания веб-приложений понизился. Становятся ли знания и опыт менее критичными?
Я думаю, Ruby on Rails очень сильно понизил планку в терминах «что нужно для того, чтобы запустить веб-приложение». Некоторые видят в этом только отрицательную сторону. В духе, «Ой, варвары у ворот» или «Ну вот, сейчас все эти немытые дикари хлынут в наши замечательные программистские сообщества». Я уже не раз слышал такое. Многие ругали Visual Basic за что, что он открыл двери для, так называемых, «не чистых» программистов. Я думаю, все это — чушь собачья.
CRUD-приложение на Ext JS и Ruby on Rails за 7 минут
2013-04-18 в 15:32, admin, рубрики: ajax, netzke, osx, ruby on rails, sencha ext js 4, web-разработка, Библиотека ExtJS/Sencha, Веб-разработкаЭто обновленная версия устаревшего поста.
Этот пост покажет вам простые шаги по созданию менеджера задач TODO с использованием Ext JS, Ruby on Rails и Netzke. Это займет у вас приблизительно 7 минут, и если вам заранее любопытно, стоит ли оно того, загляните прямиком в секцию «Обсуждаем результаты» (кстати, самую большую). Наша цель заключается в создании веб-приложения которое позволит нам добавлять, редактировать и удалять задачи TODO, так же как и помечать их как завершенные. В дополнение к этому вы сможете сортировать задачи, делать поиск по ним, редактировать несколько задач одновременно — и это еще не все. Если хотите, засекайте время на секундомере — и давайте приступим.