![]() |
![]() |
Трудности Rails разработки
17:53, 16 ноября 2008
( )
Взявшись после долгого перерыва за разработку сайта понял, что время для разработчика летит еще быстрее, чем для любого другого. Так, например, что бы эффективно программировать на RoR необходимо изучить следующую пачку технологий:
Ну и вкупе, что само собой разумеется:
Из этих списков видно, насколько тяжела и неказиста жизнь простого программиста :) Если взять совокупное время на изучение этих технологий, то становится понятным, почему разработка сайта на RoR не может стоит дешево. Отдельной срокой стоит выделить миграцию с SVN на Git и обновление версий Rails (старые сайты все равно нужно суппортить), вследствие которых достаточно большой объем новой информации нужно впитывать заново. Проблемы при переносе старых rails сайтов
14:30, 31 августа 2008
( )
Вот ведь как бывает, когда обновляешь систему с rails сайтами. Все сайты крутились под Freebsd 4.11 и как-то незаметно пришло время обновиться. Поставилась FreeBSD 7, установились свежие рельсы, и наступила пора переноса сайтов. Ох. Некоторые сайты крутились еще на fcgi, и использовались rails 1.1.6. А не перевести ли на Rails 2? Сказано-сделано. Для начала завести все как было на новом хосте. Не буду утомлять, пришлось сделать правки в mysql.rb как написано здесь http://railized.com/2008/2/17/wrong-argument-error-when-running-rails-1-1-6-with-ruby-1-8-6 и в boot.rb заменить require_gem на gem в двух местах. И, в принципе, все поднимается. Ах да, если юзалась LoginSystem от Rails 1, то в Rails 2 об этом следует забыть и часть кода попросту переписать. PS. Git рулит! Слегка доработанный capistrano recipe для получения дампа рабочей базы локально
13:04, 28 июля 2008
( )
Довольно часто данные изменяются на продакшн-сервере, и обычно хочется экспериментировать над свежей копией данных в своем rails приложении. Тем, кто пользуется для разворачивания приложений capistrano есть хорошая новость: сделать такую вещь весьма несложно. Итак, у нас в production FreeBSD 7.0, для разработки пользуемся рабочей станцией с ubuntu 8.04. Рецепт capistrano слегка модифицированный взят отсюда: http://programmingishard.com/code/495 добавляем в config/deploy.rrb desc "Load production data into development database" после чего пользуемся: cap load_production_data и вуаля, свежая копия базы с production у нас в development! О, этот странный weave
11:24, 24 июля 2008
( )
На замену безвременно ушедшему плагину Google Sync Google предлагает установить бету плагина Mozilla Weave. Установил. Вот они, радости браузерного бытия: в отличие от безупречно работающего sync weave нагло тормозит, выполняя синхронизацию почему-то ПОСЛЕ закрытия браузера. Т.е. закрываешь браузер, и еще в течение нескольких минут наблюдаешь окошко синхронизации, которое лично я в 70% случаев просто закрываю, ибо некогда. В последних апдейтах разработчики, видимо осознав пикантность этого дела, добавили индикаторы прогресса, дабы человек понимал, что что-то происходит, а не тупо висит. На линуке же mozilla weave после некоторого времени вообще отвалился ссылаясь на ошибку криптосистемы. Google Sync, кстати выпустили в свободное плавание открыв код. Но кому же доверить мои сексуальные данные, пароли к формам? Не думаю что решусь это сделать, разве что проинсталить sync на свой сервер. Sync! Вернись, все простим :) NGINX на новый colo
12:43, 17 июля 2008
( )
С nginx мы как-то сразу не подружились. Синтаксис другой, для запуска php требуются велосипеды в виде стартующих демоны скриптов. Parser3 не запустится, mod_rewrite странноват. Вывод: nginx рулит под нагрузкой, т.е. там где один сайт размазан и разбалансирован по куче серверов. На виртуальный хостинг nginx не годится :( Опыт не удался. И обратно приходим к апачу 2.x Ах да, может кому пригодятся найденные и подпиленные rc-style скрипт запуска php процессов в Freebsd. ставил php5 из портов и nginx ----------------- /usr/local/etc/rc.d/spawn.sh ------------------------- #!/bin/sh
и в самом rc.conf fcgiphp_enable="YES"
в nginx.conf location ~ \.php$ { Сайт, который построил Джек
00:14, 20 мая 2008
( )
Строительство сайта. Переезд сайта с домена it-expert.com.ua на nexus.org.ua
11:30, 8 ферваля 2008
( )
Внимание, в связи с переездом домена сайт http://it-expert.com.ua теперь будет расположен по адресу http://nexus.org.ua. Автоматический редирект с сохранением ссылок выполнен следующим образом:
Ну а через некоторое время по адресу http://it-expert.com.ua будет находится сайт нашего предприятия по предоставлению услуг IT аутсорсинга. P.S. А вот и статья об отношении поисковиков к 301 редиректу с сайта. +1 в сайты на ROR
11:09, 3 ферваля 2008
( )
Тихо и незаметно вызрел еще один сайт на Ruby on Rails. Сей сайт находится по адресу http://nxt.com.ua Rails 2.0, пользует плагины acts_as_tree, in_place_editing, restful_authentication, tiny_mce
Relative urls в tiny_mce
17:04, 21 января 2008
( )
От читателя поступил вопрос, как сделать так, что бы в браузере изображений url были бы не вида ../../images, а /images ? Очень просто, достаточно добавить в вызов tiny_mce в контроллере такие параметры: :relative_urls=>false,и ваши url будут вида /images и т.д. хотя, при правильной разработке, этого не требуется. Rails: ActiveSearch plugin
11:32, 27 декабря 2007
( )
Плагин ActiveSearch просто чудо какое-то, большое человеческое спасибо julik.nl за его разработку. Штука сия облегчает и без того легкую жизнь ;-) rails-девелопера при разработке простейшего поиска по записям базы. Идея сего плагина такова: используя разнообразные инексаторы исходя из планируемого объема данных вырабатываем оптимальный подход к поиску по записям базы. Например, мой сайт содержит весьма небольшой объем данных, и, как рекомендует Julik, при объеме до 500 записей целесообразно использовать простейший индексатор ActiveSearch::LikeIndexer. Для того чтобы поиск заработал необходимо: 1. Установить плагин: cd project ruby script/plugin install http://julik.textdriven.com/svn/tools/rails_plugins/simple_search/ 2. Добавить поле searchable к таблицам, по которым вы собираетесь искать. Целессобразно сделать это через миграцию: def self.up def self.down 3. В моделях Product и Category добавляем указание к индексированию: indexes_columns :title, :short_description, :long_description 4. запустить начальное индексирование: консоль rais: ruby script/console в консоли Products.indexers[0].rebuild! Category.indexers[0].rebuild! Все, теперь мы можем достаточно быстро искать по записям:
Можно искать и по Category.find_using_term("query"), как в документации указано, но, видимо такое использование предполагает использование сразу нескольких индексаторов.
Таким образом плагин может быть использован с: 1. индексом в поле searchable в каждой модели, по которой будет производиться поиск. 2. индексом в отдельной таблице 3. индексом через плагин ferret способы индексации расположены в порядке увеличения количества данных для поиска. Удобно, Julik, u made my day.
|
© Максим Прокопов 2005-2024 | О сервере |