|
Галактеко опасносте
00:39, 25 сентября 2009
( )
Дыра, позволяющая получить исходники сайтов. Многия тысячи сайтов. И этого моего сайта тоже. http://habrahabr.ru/blogs/infosecurity/70330/
Быстрый способ излечения: find . -name ".svn" -exec rm -rf {} \; Эххх, стареем? Умнеем!
22:42, 27 января 2009
( )
Посмотрел я в памятную запись 2005 года, сел, обхватил голову руками и крепко задумался. Фотошоп CS, Far , mysql, xselerator, topstyle, CVS, Apache (Denver) и главное, главное - Parser 3! Что сейчас? А сейчас emacs, SQLite, git и RoR. Ну и побочные вещи, типа RSpec, Cucumber, плагины, джемы. За три с половиной года поменялось все: начиная c ОC, основного редактора и заканчивая языком программирования.Поменялся полностью подход к веб-разработке, способ мышления, стиль написания. Теперь вместо "лапши" используется BDD подход к разработке. Вместо Windows - Ubuntu. Вместо MySQL - SQLite. Вместо Far, xselerator, topstyle - vim, затем emacs. Вместо cp1251 - utf-8. Вместо CVS - SVN, затем Git. Вместо высокотехнологичных xslt шаблонов - обычные rails layouts. Вместо Nokia 6100 - IPhone 3G. Раньше не писал документацию к сайтам - теперь пишу. И понимаешь, что не запиши тогда я эту запись - точно не было бы этой записи сегодня. Поэтому важно проживая день оставить след от этого дня хотя бы в электронном виде, хотя бы строкой в блоге. Или в мемуарнике. Через 10 лет ты откроешь архив, смахнешь скупую слезу, и прочтешь как 10 лет назад не было гибридных двигателей, мегагерцы измерялись десятками, а память мегабайтами. Scrum, Rails BDD и Cucumber приправленный Selenium
20:28, 23 января 2009
( )
Попробую пояснить термины приведенные выше. Scrum - методология разработки основанная на agile. Если в двух словах вся разработка делится на Истории (Функционал), созданные совместно командой разработчиков и заказчиком. Заказчик излагает требования по функционалу, например, хочу редактировать статьи. Разработчики пишут три сценария для такого функционала: добавление, изменение и удаление статьи. Каждая история получает очки по скорости разработки, например, добавление и изменение по 10 очков, а удаление статьи 5 очков. Добавляем параметр важности. Например, важность добавления - 5, важность изменения 10 и важность удаления 15. Производительность команды измеряется в очках/период разработки. Например, принимаем производительность команды за период 3 недели (эти три недели будут называться Спринт) в 15 очков. Отсюда видно, что заказчик может или потребовать реализацию удаления и изменения за один Спринт, или реализацию удаления и добавления повысив важность фичи добавления. А в следующий Спринт будет добавлен недостающий функционал, например, добавления статьи. Обязательным моментом в описании Сценариев является описание методики тестирования, например, нажми туда, смотри здесь и получишь это. После каждого спринта производится этап тестирования и принятия результатов, после чего происходит очередная итерация с заказчиком - собираемся, обсуждаем, оцениваем и формализуем требования в функционал. Свежепоявившийся Cucumber позволяет в почти такой же манере scrum описывать функционал со сценариями и ... проводить тестирование rails приложения иногда называемое интеграционными тестами. Для тестирования в Cucumber может использоваться как библиотека Webrat, по сути рендерит выдачу HTML эмулируя браузер, и позволяет такие вещи, как заполнить поле формы, нажать на кнопку,открыть ссылку прямо в коде ruby и получить результат, который будет сравнен с ожидаемым. Типично - заполнить пароль и логин в форме, и сравнить, есть ли в выдаче сообщение "добро пожаловать _пользователь_". При еще более глубоком погружении есть возможность использовать Selenium - фреймворк для тестирования прямо через вызовы браузера и использования его DOM, т.е. натурально, запускается фаерфокс, и через его DOM производится тестирование вывода страницы. Что вообще говоря позволяет вовсю тестировать Ajax плагины, работу Prototype и jQuery, что, если не ошибаюсь, Webrat делать не умеет. Следует заметить, что Cucumber это верхний уровень абстракции тестирования который заменяет традиционные интеграционные тесты, для тестов на нижнем уровне все равно прийдется использовать Test::Unit или RSpec, выбор за вами. Очень подробно тематика освещена здесь. Полечить кодировки PHP с MySQL
15:40, 10 декабря 2008
( )
Как всегда, хит сезона - кодировки php и mysql на хостингах. Пока программисты не поймут, что utf-8 это хорошо, системным администраторам ничено не остается как лечить связки php cp1251<->mysql utf-8 и прочие дивные вещи. В нашем случае лечение прошло вот так: if (mysql_query("SET NAMES 'UTF8'") === false) return false; в скриптах сразу после коннекта к базе. Emacs
23:25, 6 декабря 2008
( )
Сейчас стало модным стряхивать пыль с древних true редакторов, таких как Vi и Emacs. Да чего уж, один проект на RoR сделал сидя за Vim, еще пару на Emacs. А вот тут люди пишут, как правильно готовить Emacs: http://technomancy.us/115 http://nubyonrails.com/articles/emacs-emacs http://peepcode.com/ Но при всем моем уважении к Emacs, есть у него существенные огрехи:
Трудности 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! Вернись, все простим :)
|
| © Nexus 2005-2011 |
|
О сервере |