Archive for the ‘eclipse’ Category

Subversion. Установка и настройка. День второй.

Ноябрь 15, 2007

Вводная

Сегодня будем заниматься кристаллизацией workflow. Т.е. пытаться понять, как именно врезать svn в процесс разработки. Я уже приводил свои мысли на этот счет. Мои идеи были сформированы под воздействием пары веток форума и нескольких невнятных статей ;). Правда совершенно недавно я наткнулся на статью. в которой есть даже картинка 😉 Но в этой статье описана теория (зато есть картинка, очень наглядная). Меня же в силу неМифических сроков сдачи интересует практика. К ней и приступим.

Настраиваем Eclipse 3.3

Первое, что пришлось сделать — установить права на папку /var/www и все её подпапки. На запись права были только у рута, это мы изменили, набрав в терминале chmod -R 777 /var/www. Теперь право на запись есть у всех, и мы можем спокойно с ней работать из Eclipse. Второе, что пришлось сделать, это установить права и на папку /vwr/svn/, набрав ту же команду. На будущее стоит запомнить, что репозитории и папки с проектом лучше держать у себя в домашней папке. Или в той, от имени кого запускается Eclipse. В принципе, можно было сделать и gksudo eclipse, но это как-то совсем против правил =)

Далее — маленький фокус. Нужно настроить папку с workspace Eclipse таким образом, чтобы разработка шла по созданным выше адресам. Т.е. текущий проект Eclipse (в моем случае) должен разрабатываться в папке /var/www/dev/. Для этого меняем workspace: «File->Switch Workspace->Other». А в окошке пишем /var/www.

Теперь надо настроить репозиторий. Переключившись на perspective SVN Repository (доступную после установки subClipse), тыкаем правой кнопкой на левой части окна и выбираем «New->Repository Location». В появившемся окне пишем file:///var/svn/, или где там у вас хранилище. Должно случиться чудо, и отобразиться структура хранилища. У меня, в силу вчерашнего дня отобразилось следующее:

  • file:///var/svn/
    • project_name
      • trunk
        • index.php 1

Checkout

Связь есть, надо делать checkout. Т.е. забирать текущую версию из репозитария себе. На доработку. Правой кнопкой на «папке» trunk и в меню выбираем «Checkout…» В открывшемся окне стоит установить верхний радиоБатон в положение «Checkout as a project in the workspace» и вписать имя проекта «dev». Таким образом, мы получим настроенный ранее в Apache структуру /var/www/dev/, которая будет доступна из браузера по http://localhost/. Отлично.

Commit

После того, как файл появился у нас в workspace, можно его отредактировать. Перейдем на perspective PHP (она пришла вместе с PDT) и отредактируем файл. Напишем что-нибудь веское, чтобы доказать себе, что оно работает 😉 Теперь в левой части окна, в PHP Explorer, который отображает нам workspace, кликнем правой кнопкой на этом файле и выберем «Team->Commit…» На что получим предложение написать что-нибудь для истории, выбрать файлы, которые необходимо закоммитить и нажать «OK».

Можно приступать…

Вот, в принципе, и всё, что я хотел узнать за сегодня. Если дойдут руки, надо будет написать внятную и подробную статью где-нибудь на Хабре (и прославиться ;), с картинками красивыми и прочим. Но это будет не раньше, чем я отшлифую навыки пользования этой связкой. Ну и на проектах не будет посвободнее в плане времени. Т.е…видимо не скоро =)

Subversion. Установка и настройка. День первый.

Ноябрь 14, 2007

Допивая крепкий чай, глядя на снег за окном, я занимаюсь тем, до чего руки не доходили уже…наверное год. Разворачиваю репозиторий и учусь с ним обращаться. Откопав где-то в закромах «Pragmatic Version Control using Subversion«, понимаю, что без этой книги было бы намного сложнее 😉

Install

До того, как установить svn, я установил Apache2.2, PHP5 и MySQL5. Вопреки всем своим привычкам, просто не захотев долго возиться, я устанавливал их через apt-get install и понял, что больше этого делать не буду. Очень уж сложно искать по системе где спрятались конфигурационные файлы, как они разбиты и что вообще происходит.

После этого, через тот же apt-get install subversion, установил svn. С ним проще, svn из исходников я не собирал и мне под него подстраиваться не надо =). Ну а чтобы subverion’у не было скучно и, просто из любопытства, я установил следующие пакеты:

  • nautilus-script-collection-svn — скрипты для правой кнопки мыши в Nautilus, что-то вроде TortoiseSVN для *nix
  • python-svn — просто ещё один визуальный клиент для svn написанный на Python
  • rapidsvn — очередной визульный клиент
  • subversion-helper-scripts — набор shell-скриптов, упрощающий жизнь хранителя хранилища =)
  • subversion-tools — ещё один набор вспомогательных скриптов
  • svn-workbench — ещё один визуальный клиент
  • websvn — модуль для web-представления репозитария, написанный на PHP, быстро заработавший после короткой настройки. Показал мне пустое хранилище 😉

Как видно из набора пакетов, я ещё не определился с чем буду работать. Надо сказать, что как латентный виндузятник, я надеялся на средство визуального ухода за репозитарием. И не нашел его. Я думаю, что это отпугивает многих, приходиться читать маны. И на это не всегда хватает терпения.

Setup

Я не буду описывать процедуру создания двух папок для Production и Development версий проекта, настройки виртуальных хостов на разных портах. Скажу только, что у меня есть две папки /var/www/dev/ и /var/www/prod/ с вполне говорящими названиями. А доступ к ним идет через http://localhost/ и http://localhost:8080/ соответственно.

Запасшись софтом с избытком, я приступил к настроке хранилища и начал пытаться представлять как я буду с ним работать.

Для начала хранилище надо создать. Где угодно. Я предпочёл /var/svn/, чтобы поближе к ServerRoot Apache2, чтобы, в свою очередь, не запоминать слишком много ;). Смело пишем в терминале от рута:

cd /var
mkdir svn
svnadmin create /var/svn

Заодно запоминаем, что хранилищем руководит команда svnadmin.

Репозиторий есть. Теперь надо туда положить что-нибудь временное, чтобы потом оттуда это забрать и сделать рабочей копией ;). Сейчас стане понятней.

Создаем временную папку. Где угодно. Допустим, mkdir /home/svn_tmp. Кладем в неё файлик, допустим, index.php, в котором пишем:

<?php
echo "dev workin'";
?>

Теперь, находясь в этой папке импортим файлик в хранилище, создавая проект:

svn import -m "Creation" . file:///var/svn/project_name/trunk

Здесь «-m» — это добавление комментария, «.» — это все файлы текущей директории, ну а далее идет путь к хранилищу и проект, куда надо импортировать файл.

По рекомендации умной книги (и пока еще не осознав, зачем), в папке с проектом (которая project_name) существуют три поддиректории: trunk, branches, tags. О назначении каждой из них я ещё расскажу. Кстати, неверно думать, что пойдя в /var/svn/, вы увидите там поддиректорию с проектом 😉 всё хранится в псевдоБазе данных. Поэтому искать там не стоит.

Хранилище у нас есть. Проект тоже. Теперь надо сделать рабочую копию, с которой и будем работать впредь, периодически коммитя результаты в хранилище и синхронизируя с продуктивной версией. Рабочую копию я буду держать в /var/www/dev/, чтобы отлаживать было просто. И чтобы коммитить пакетами, а не после каждого сохранения. «Стоя» в папке /var/www, пишем:

svn co file:///var/svn/project_name/trunk dev

Сдесь у нас «co» — это checkout (синхронизировать с хранилищем), дальше путь и в конце название папки, где будет храниться рабочая копия. Если все прошло хорошо, то теперь у нас в папке /var/www/dev/ живет файлик index.php и скрытая папка .svn, в которой лежит мета-информация Subverion.

Это было начало пути. И, в принципе, насколько я понимаю, checkout можно было не делать. Можно было его сделать в subClipse, указав ему на репозиторий. Но это я буду проверять завтра

Проект-мечта. Осуществляем.

Ноябрь 5, 2007

Итак. Пути обратно нет. Полечимся от латентной виндузятности и забудем на пару секунд про ZS. У нас есть Eclipse! (афигеть…) Будем работать с ним. Как всегда, при работе с Eclipse, сначала нужно подобрать плагины. Установить. Попытаться поработать. … Надеюсь, получится.

Проект будет обычно-учебный, php+html+css+js+framework(codeIgniter, для разнообразия)+svn(для освоения). При таком раскладе, всё, что мне может потребоваться это:

  1. Eclipse 3.3 aka Europe с плагинами:
  2. SVN (и какая-нибудь gui-тулза, чтобы в консоли не пропасть 😉
  3. ER-Modelling Tool
  4. Syncrhonizer с удаленным ftp

Как видно, почти со всем я определился. Есть проблема с ER-диаграммами. Пока, единственное решение я нашёл в виде запуска под wine DBDesinger, почему-то их *nix-версия у меня работать не захотела. Видимо, она старовата. А коварный MySQL AB, который на основе неё собирался сделать свою тулзу MySQL WorkBench всё никак не соберется. Во-первых она «вечная альфа», а во-второых нет порта пол *nix.

Касательно синхронизации, я думаю проблем не будет, *nix. всё ж таки…

Рабочий процесс у меня в голове уже, вроде, сформировался. Действовать будем примерно, как я описывал давно-давно, придумал только пару уточнений к тому, что там было написано:

  1. На нашем девелоперском веб-сервере (локальном) делаем две папки. Production и Development.
  2. Обе делаем доступными в качестве VirtualHost. Например http://localhost/prod и http://localhost/dev
  3. Папка Production будет являться у нас по совместительству svn-хранилищем. А заодно точной копией internet-сервера.
  4. Все правки тестируются в папке Development, обкатываются и коммитятся.
  5. После чего, синхронизируем папку Production с удаленным сервером.

Учитывая, что над проектом я работаю один, такая схема кажется мне наиболее очевидной и логичной. Посмотрим, что скажет по этому поводу объективная реальность.

И снова Eclipse. Теперь PDT.

Сентябрь 20, 2007

Вступление

Давно не трогал Eclipse. Писал себе спокойно в ZDS. И, вдруг, прошел слух, что вышел PDT 1.0 Release. Надо попробовать, решил я.

И попробовал. К счастью, на сайте разработчиков есть собранная версия, и разбираться с зависимостями не пришлось. Всё заработало с первого раза. Но в любом случае, с выходом Eclipse 3.3 aka Europe, ситуация стала получше.

Основная часть

Для меня ZDS идеален. Кроме мелких огрехов и стоимости, меня всё устраивает. Да даже стоимость у него вполне вменяемая с учетом студенческих скидок. И без учета возможности украсть. Он помнит имена переменных. Он знает все (почти) основные функции. Он поддреживает ZF. Он знает что такое JavaScript. Он выдает прекрасные описания функций. Он хорошо работает с SVN…да много чего ещё.

Что же из этого можно обнаружить в PDT…Он слышал о функциях и способен напомнить порядок следования переменных, что для PHP важно. Ибо порядок часто сильно разниться. Haystack и Needle часто меняются местами. Он знает SVN благодаря plug-in’у. Если пересесть на Aptana и добавить Spket IDE, он будет знать что есть JavaScript и даже сможет подсказывать названия функций ExtJs (об этой библиотеке мы ешё поговорим). Да, можно настроить debugger. Да, помнит названия переменных. Но блин! Учитывая, что его создавали программисты из Zend, понятно, что они не будут создавать конкурента ZDS. И он не конкурент.

Заключение

Я не принадлежу к джедаям. Я не освоил Vi(m) или Emacs. Мне нравится легкость с которой можно писать в ZDS. Это та легкость, которая присуща самому PHP. И, к сожалению, пока я не вижу реальных альтернатив ZDS без потери удобства написания кода. Даже не смотря на то, что мне приходится часто обращаться к мануалу по ExtJs на сайте. Просто ZDS удобней. И всё.

П.С. Кто-то может сказать «Сделай лучше». И будет прав =) Может это достаточная причина, чтобы учить Java. Время покажет.

Временная победа.

Июль 2, 2007

Мне удалось подружиться с Eclipse. По-крайней мере он собрался. Что уже неплохо. Причиной успеха назначается выход Europe. Консолидированного update’а основных пакетов.

Всё теперь просто. И будет просто, пока проекты опять не разъедутся. Моей целью была установка AJAX Toolkit Framework. Вот какие шаги мне пришлось предпринять.

  1. Скачать Eclipse версии 3.3
  2. Скачать ATF 0.2.2
  3. Добавить ATF в список архивных файлов в модуле обновления Eclipse
  4. Отметить его галочкой и нажать кнопку «Select Required»
  5. Обрадоваться, что всё так просто и больше не надо отслеживать зависимости =)

После того, как всё заработало, пришло время настроить ATF, чтобы он знал DoJo (ради чего я всё это и затеял) и Script.aculo.us. Отмечу, что все шаги, которые я предпринимаю дальше подробно описаны в разделе проекта ATF.

  1. Качаем валидатор JS
  2. Качаем DoJo
  3. Качаем Script.aculo.us
  4. Прописываем все эти пакеты в разделе ATF настроек Eclipse
  5. Думаем. Удаляем ненужные.

Очередная попытка подружиться с Eclipse.

Июнь 28, 2007

Попытки подружиться с этой замечательной средой разработки происходили давно. Каждый раз я пытался поставить Eclipse в результате обнаружения очередной фичи, которая в нём реализована. Это были три проекта IDE для php на основе Eclipse:

  1. PHP IDE
  2. PDT Project
  3. PHP Eclipse

Но ни один даже близко не подошел к Zend Studio. А именно этот редактор можно рассматривать как идеал. Хотя он заставляет лениться.

Есть ещё Aptana, но она больше подходит для HTML/JavaScript, что не является моим основным профилем.

Но вот начав изучать DoJo, я решил опробовать активно продвигаемый AJAX Toolkit Framework (ATF), который был создан всем миром для продвижения AJAX. И начались мучения со сборкой. В принципе, насколько я помню, я всегда собирал Eclipse по кускам где-то в течение дня, а потом забивал, и качал откуда-нибудь готовый проект. Уже собраный.

Но вот беда. Для ATF нет такого проекта. Поэтому надо все собирать самому. Не смотря на все Callisto и прочие фенечки обновлений, установить ATF спокойно не получилось. Он зависел от WTP, который совсем не WTS. Что характерно. Потом после чистки всего Eclipse, когда я уже запутался, что устанавливал, а что нет, оказалось, что я снес больше, чем надо, поэтому пришлось по кускам выковыривать URL фабрик обновлений для.

Пожалуй, хватит.

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

Однако, я не собираюсь расставаться с Eclipse. Потому что на главном сайте тикают часики до выхода новой версии, которая будет включать в себя 21 пакет. Они будут аккуратно подогнаны друг к другу. Может быть с Eclipse Europe мне повезёт больше 😉