четверг, 22 ноября 2007 г.

Виражи на поворотах, или как я делал первый раз deploy RoR проекта.

Хостинг куплен, имя, пароль и адрес сервера получены. Захожу на сайт и попадаю в CPanle. До этого момента я сильно не задумывался, как происходит управление своим хостингом. В 2000 году я, "как все", сделал простенькую HomePage и разместил ее копированием файлов на сервер. Тогда на меня этот процесс произвел впечатление: скопировал файлы, и твоя информация доступна в интеренете любому желающему. CPanel тоже произвел на меня впечатление, и первым делом я принялся сначала осваивать эту замечательную штуку.
Выбранный хостинг предоставлял работу RoR через FastCGI, я немного скептически был настроен по поводу FastCGI, но надеялся, что достаточно быстро удастся разместить приложение на сервере. Сначала решил отработать сам сценарий развертывания на простом учебном приложении. Если проблем с созданием базы данных у меня не возникло, то с развертыванием они начались. Чего больше боялся, то и произошло: установленный пример на RoR отказался запускаться. Перепробовал несколько "рецептов" настройки RoR и FastCGI, но ничего не помогло, за помощью решил обратился к администраторам. С ними началась активная переписка, в итоге они обновили Ruby, RoR, все пакеты, обновили модули FastCGI для Apache. Приложение заменил на простейшее "Hello Word". В интернете перечитал много информации и инструкций по настройке RoR через FastCGI, давал ссылки администраторам. Но нам так и не удалось заставить работать RoR. В определенный момент я хотел поставить у себя на компьютере linux, apache и самому начать экспериментировать с настройками, но не успел. Хостер предложил создать мне тестовый аккаунт на другом сервере и там продолжать настраивать RoR. Новая попытка заставить работать RoR через FastCGI провалилась.Я предложил отказаться от дальнейших попыток настройки FastCGI и попробовать сделать кластер из Mongrel серверов, аргументировал это тем, что на данный момент это самый простой и работоспособный способ развертывания. Хостер согласился с таким поворотом событий и приступил к настройке Mongrel в связке с Apache и CPanel. После некоторых небольших технических трудностей наконец-то удалось заставить работать RoR через Mongrel. Я разместил на сервере свое приложение с целью тестирования и принялся за дело. После всех манипуляций мой сайт работал только на определенном порту. Стал настраивать перенаправление запросов через Rewrite Url в CPanel - не помогло, обратился к админам, они что -то подкрутили, и все перестало работать вообще . Как потом выяснилось, они сделали перенаправление с тестового аккаунта на основной. Чтобы самому не путаться и не путать админов, попросил тестовый аккаунт сделать основным, а второй удалить. Приложение снова заработало, но проблема осталось: оно по-прежнему "сидело" на определенном порту. Обратился к администраторам, они сделали перенаправление, и все заработало, как надо, но ненадолго, через какой-то промежуток времени заметил, что все ссылки ведут на локальный адрес 127.0.0.1:1205. После того как исправили эту ошибку, появилась другая: ссылки стали указывать в качестве хоста не имя домена, а сетевое имя сервера. Как потом выяснилось, при создании тестового аккаунта было указано другое главное имя домена, пришлось удалять аккаунт и создавать его снова. Новый аккаунт удалось настроить достаточно быстро, при этом опять повторялась проблема с локальными адресами в ссылках, но ее тут же решили. Нерешенным остался один момент: к сайту можно обратиться, указывая протокол "www", но при заполнении и отправке любой формы на сервер теряется название протокола, остается только "http://".
С момента моего первого входа в CPanel и до полной настройки работоспособности сайта прошло без малого полтора месяца.

Вывод.
Эта история еще раз доказывает, что "знание - сила" и порой опыт достается нам не легко.

вторник, 20 ноября 2007 г.

Нелегкий выбор хостинг-компании.

Сайт был практически завершен, и настало время размещать его в интернете. Передо мной встал вопрос по выбору хостинга. Сначала я намеревался использовать бесплатный хостинг, но в таком случае невозможно было использовать собственное доменное имя, не поддерживались необходимые мне технологии, существовали ограничения по трафику, по созданию почтовых ящиков и т.п. Для начала стал изучать общие сведения о хостинге:

  • что такое хостинг;
  • как он организован;
  • типы хостинга (бесплатный, shared, VDS) и преимущества одного перед другим;
  • как управлять своим хостингом;
  • как выбирать хостинг - компанию.
Также выяснял вопросы, связанные с регистрацией собственного домена. В процессе придумывания доменного имени перепробовал много вариантов, которые затем проверял на различных who is сервисах. Иногда эти сервисы ставили в тупик: один показывал, что домен свободный, в то время как другой показывал, что домен якобы занят. Как я и предполагал, все боле-менее созвучные имена доменов уже были заняты, поэтому пришлось имя формировать склейкой из двух слов. Хотя имя домена стало немного длинным, но по своему смыслу оно более точно подчеркивало общую направленность сайта.
Используемый мной framework Ruby on Rails достаточно молодой, и еще не все хостинги поддерживают его. Мне пришлось потратить достаточно много времени, чтобы отобрать хостинг-комании, которые удовлетворяли бы моим требованиям, а именно:

  • поддержка RoR, MySQL;
  • цена не более 6$ в месяц;
  • тех. поддержка на русском языке.
После того, как сформировался список кандидатов, я стал каждому из них либо отправлять письма с уточняющими вопросами, либо общаться в on-line (GTalk, Web - чат). Несколько хостеров были вычеркнуты , так как я не получил от них ответа, другие не подошли из-за цены. В конечном итоге выбирал из следующего списка (фирма, тариф, цена (месяц/год), технология запуска RoR, страна):
  1. TimeWeb, "Year", 120/1300 (руб), mod_ruby, Россия;
  2. ЧУП Активные технологии, Мини, 6/65($), FastCG, Белоруссия;
  3. Best-Hosting, Unix hosting plan "Beginner", 2436 (руб в год), Россия;
  4. FastNext, Стандарт, 145/1740 (руб), FastCGI, Россия;
  5. FirstVDS.ru, VDS-Старт, 149/1788 (руб), Вирт. сервер, Россия.

Поначалу заинтересовался виртуальным хостингом от FirstVDS, но смущало следующее: хватит ли ресурсов на минимальном тарифном плане, и справлюсь ли я самостоятельно с установкой и настройкой софта под linux. Опыта в установке и настройке программного обеспечения под Linux у меня не было. В итоге решил на данном проекте не рисковать с виртуальным хостингом (одного желания самому все поставить и настроить не достаточно), а выбрать shared-хостинг. В результате сравнения различных характеристик (цена, поддерживаемые технологии, различные ограничения, положительные и отрицательные отзывы) shared-хостингов выбрал тарифный план "Стандарт" от FastNext.

Приобрести пакет услуг у FastNext оказалось достаточно быстро, утром я заполнил анкету, указал также доменное имя. В обед со мной по почте связался менеджер и предложил помощь в вопросах, связанных с оплатой. Спустя пару часов я сделал банковский перевод, сообщил об этом менеджеру, и спустя час после оплаты у меня уже был аккаунт. Весь процесс от выбора хостинга до получения аккаунта у меня занял около двух недель.

Дальше началась новая история с развертыванием приложения RoR на хостинге.

пятница, 9 ноября 2007 г.

Конкуренты как гром среди ясного неба.

Сайт был практически готов, я занимался тестированием, исправлением ошибок, проверкой работы сайта в различных браузерах, все шло по заранее намеченному плану.

Ради интереса сделал в яндексе запрос по ключевым словам, относящимся к моему сайту, ранее такое сочетание ключевых слов я не использовал. Результат не заставил себя ждать, я сразу же нашел конкурентов с моей реализованной идеей...Это находка была как гром среди ясного неба. Сразу же возникли вопросы: что делать? почему за все время работы я так и не нашел их раньше? что мне теперь делать с уже почти готовым сайтом? В тот момент эмоции меня переполняли, думаю, многие из нас попадали в подобные ситуации. Возникала даже мысль бросить работу над проектом. Первое, что я сделал, это успокоил свои эмоции. Следующим шагом стало знакомство с найденными проектами. В результате получилась следующая картина:

  • это не специализированные сайты, а сообщества на универсальных сервисах ("Мой круг", Diary);
  • небольшая аудитория зарегистрированных читателей и авторов;
  • последние материалы опубликованы около года назад;
  • помимо оригинальных текстов присутствуют перепечатки из других открытых источников;
Единственное, что меня сильно насторожило - это малая заинтересованность пользователей интернета подобной тематикой. Я предполагал, что тематика моего проекта не для широкого круга, но чтобы так мало, этого я не мог представить.
В конечном итоге найденные сайты помогли выработать стратегию дальнейшего развития, а именно:
  • в дальнейшем проект будет развиваться в сторону узкотематического портала;
  • публикация оригинального материала;
  • внедрение некоторых оригинальных находок, которые никогда не появятся у конкурентов;
  • организация каких-либо мероприятий, которые подталкивали бы пассивных читателей к написанию и публикации своих материалов.
Помимо планов дальнейшего развития также обозначились и первые трудности:
  • придется приложить немало усилий в области продвижения и популяризации сайта;
  • не стоит рассчитывать на пользовательский контент на начальном этапе.
Наличие конкурирующих за пользовательское внимание сайтов положительно сказывается на развитии любого проекта. К конкурентам можно относиться по-разному. С одной стороны, можно на них ориентироваться, стараться догнать и перегнать, но это тяжелый, трудозатратный и не всегда самый удачный путь развития. С другой стороны, глядя на конкурентов, можно точно сказать, чего не стоит в проекте делать , избежать некоторых ошибок и промахов. Можно постараться найти другой вектор развития, обратить минусы конкурентов в свои плюсы.

Вывод.
Для себя сделал такой вывод : конкуренция - это хорошо, главное - не игнорировать конкурентов. Благодаря им теперь точно знаю, что не буду делать на сайте, и более уверенно смотрю в будущее всего проекта.

пятница, 2 ноября 2007 г.

Дизайн.

Создание дизайна сайта заняло у меня очень много времени, это и не удивительно: опыта такой работы у меня не было. Пришлось разбираться с такими понятиями, как юзабилити, типографика, дизайн, графика. В работе мне помогали статьи с сайта Design For Masters.

Первый вариант дизайна я делал, ни на кого не ориентируясь, сам придумал компановку, оформление, подобрал цвета. Сложность была одна: я знал, что мне надо, но не всегда представлял, как это сделать, а если и делал, то результат был далек от задуманного. В итоге первый вариант получился просто никаким. Однажды, когда я искал в интернете ответ на какой-то вопрос по CSS, я натолкнулся на такое понятие, как "шаблон дизайна для сайта". Как оказалось, это пример дизайна, выполненный для первой странички, где вместо текста используется "lorem ipsum dolor..". Я нашел несколько сайтов, которые в большом количестве предлагали подобные шаблоны бесплатно, вместо платы они просили размещать ссылку на их сайт. Весь вечер и до глубокой ночи я просматривал эти шаблоны и отобрал около двух десятков подходящих по оформлению для моего будуего сайта. Эти шаблоны я рассчитывал использовать в качестве отправной точки, т.е. взять самый понравившийся и на основе него уже сделать дизайн. Из всего многообразия скачанных шаблонов я отобрал и отсортировал в порядке приоритета около пяти штук и принялся за переработку дизайна. Сделать дизайн сайта на основе первого шаблона было интересно в том плане, что позволило взглянуть на реализацию своей идеи чужими глазами, в данном случае глазами автора шаблона. В дальнейшем я последовательно переделывал дизайн основных страниц под другие шаблоны в надежде потом выбрать среди них наилучший. В процесе этого занятия оценил то, что использование HTML для семантической разметки текста, а CSS для визуального отображения дает очень много плюсов. Практически у меня получился готовый механизм смены визуальных тем оформления.

Смущало одно: необходимость поставить обратную ссылку на сайт шаблонов, что в итоге привело к решению отказаться от использования каких- либо готовых шаблонов. Ход моих мыслей был примерно таким: попробовать в очередной раз сделать дизайн и вёрстку самостоятельно, если не получится, то творчески переработать один из шаблонов. В итоге решил оставить сделанный самостоятельно дизайн, хотя он и остается немного угловатым и простым. Польза от шаблонов была очевидна, я получил опыт, который позволил сделать дизайн самостоятельно.

Ситуация с графическими элементами оказалась хуже, чем я мог представить, я знал, чего хочу, но не знал, как это нарисовать, а научиться рисовать за короткое время не реально. Пришлось признать, что ходужником мне не стать, особенно это понимаешь после просмотра работ студии TurboMilk. Единственную надежду я возлагал на поиск свободно распространяемых рисунков, но найти достаточного количества мне не удалось, а среди найденных не было подходящих. Все подходящие рисунки были защищены авторскими правами, я не стал их использовать. В итоге решил совсем отказаться от графического оформления.

В последнее время в интернете стали появляться сервисы, которые можно использовать при создания сайтов. Работая над макетом и дизайном, я пробовал использовать следующие on-line инструменты:

  1. Kuler от Adobe - подбор сочетающихся между собой цветов.
  2. Color Scheme Generator 2 - тоже подбор цветов.
  3. Logo Maker : Web 2.0 Stylr - позволяет сделать логотип в стиле Web2.0
  4. Web2.0 Logo Creator by Alex P - создание логотипа.
  5. Favicon.cc Generator - редактор иконок favicon.
  6. YAML builder - сервис позволяет создавать различные варианты вёрстки.
  7. Typetester - сервис позволяет визуально сравнить между собой несколько шрифтов.
  8. Cooltext - позволяет создавать логотипы, кнопки, надписи с различными эффектами .

Вывод.
К дизайну и usability подходит выражение "Усложнять - просто, упрощать - сложно". Умение находить золотую середину приходит с опытом, а, чтобы получить опыт, необходимо много работать.