Archive for the ‘ubuntu’ Category

Ubuntu 8.10, WinXP, MacOS X 10.5 на одном hdd.

Сентябрь 27, 2008

По ряду сложных причин мне понадобилось установить OS X. Учитывая, что Apple вот-вот должна обновить свою линейку ноутов, я решил подождать с покупкой и поэкспериментировать пока с хакинтошем. Благо информации в сети навалом и рапорты об успешных установках на системы подобные моей я встречал. Сама система представляет собой следующее скопление железок:

  • AMD Athlon 64 3800+
  • ASUS M2NPV-VM
  • OnBoard Video NVidia 6150
  • OnBoard Audio
  • 160GB IDE HDD
  • 1GB RAM

Такая довольно-таки старая и бюджетная конфигурация. Но довольно банальная, и это мне сильно помогло гуглить.

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

  1. WinXP
  2. MacOS X
  3. Ubuntu

Объясняется этот порядок порядочностью систем по отношению к MBR и возможностям их загрузчиков. Диск пришлось форматнуть начисто, для того, чтобы разбить его в соответствии с новыми смешными требованиями. Возможно, всё могло бы быть проще, но я поступил именно так. Диск разбивается следующим образом:

  1. Primary NTFS (WinXP)
  2. Primary FAT32 (MacOS X)
  3. Extended ext3, swap (Ubuntu etc.)

Т.е. для винды и макоси лучше создавать Primary партиции, тогда как Ubuntu фиолетово куда ставиться, и ему я отдал Extended. Причем хитро создал раздел /home в конце партиции, чтобы при желании можно было его без проблем отресайзить и выделить место под что-нибудь ещё =)

Винда ставиться первой, прописывает себя в MBR и живет спокойно. Здесь подводных камней, надеюсь ни у кого не возникало. Далее в ход идет dvd с Kalyway 10.5.2 (выбор совершен после анализа числа установок).

Грузимся с диска, запускается установщик. Лезем в меню и выбираем тулзу для работы с дисками (Utilities -> «Disk Utilities»). Выбираем наш второй раздел (Primary FAT32), выбираем Erase и выбираем «Mac OS Extended Journaled» в качестве файловой системы и называем партицию как-нибудь простенько, типа «macosx». Просим всё почистить (5 секунд) и закрываем приложение. Проваливаемся обратно в установщика и нажимая «далее» выбираем нашу недавно-созданную партицию. Теперь главное не нажать «установить», а ткнуть на кнопку «Customize». Здесь нашему вниманию представиться всеобразие драйверов/ядер/приложений/патчей. И именно от этих галочек зависит запуститься ли OS X =) Некоторые подбирают их по 15 установок. Мне понадобилось всего 5 (пять)! =)

Если вы являетесь счастливым обладателем процессора AMD, то надо очень внимательно просмотреть всё дерево и поставить галочки. Помимо тех, что были поставлены изначально, я выставил следующие:

  • NVinject (первый)
  • SSE2_Jas1048_ACPI_APIC (may or not work) (все)
  • AMD_1052_Patches (select patch 1 or patch 2)
    • AMD_1052_Patch_test_2
    • -legacy flag

Пока я нашел этот правильный список, дальнейшее желание экспериментировать у меня как-то пропало, поэтому всякие TimeMachine меня не привлекли =)

Всё. Теперь можно нажать «Установить» и отправляться пить чай где-то на полчаса. Только надо отследить и вовремя вытащить dvd, чтобы не грузиться в него по второму разу. OS X вежливо воткнет свой загрузчик в MBR, пропишет в него WinXP и вуаля, у нас есть 2 системы. Правда OS X надобно ещё попилить =)

А пилить есть что… Леопард, конечно запустился, но out of the box не работали следующие вещи:

  • Видео только 1024х768 и надпись «IGPU family not mathced» при загрузке
  • Интернета нет, ибо нет сетевой карты =)

Вот это и будем допиливать. Для начала разберемся с инетом, ибо без него жизнь не мила =)

Учитывая, что чипсет nForce как-то не сильно в почете у Apple, драйвера какбэ существуют, но их какбэ и нет. Начинаюстя танцы с бубном. Вообще надо отдать должное первопроходцам и искателям решений, ибо решения, мягко говоря, не очевидны =) Итак, по шагам:

  1. Идем на InsaneMac, если вы ещё не там =)
  2. Находим и качаем forcedeth_0.3_leopard.zip и nForceEthernetController.kext.zip
  3. Распаковываем (в OS X) их и пыщьнув правой кнопкой мыши выбираем «Show package content» или что-то вроде того. Пыщьать надо на файлах nForceEthernetController.kext и ./force.../build/release/forcedeath.kext
  4. Аккуратно просматривая состав пакета, находим файлик Info.plist Он встречается по два раза в каждом из пакетов. Открываем его в любом редакторе (TextEdit, TextMate).
  5. Это xml-файлы. Добавляем в элемент «IOPCIPrimaryMatch» строку «0x026910DE» (это ID нашего устройства, чтобы совпало). Сохраняем все 4 файла в этих же пакетах.
  6. Далее находим, скачиваем, устанавливаем Kext Helper, который повзолит нам просто и безболезенно устанавлить эти драйвера.
  7. Перетаскиваем на него сначала forcedeath.kext, вбиваем пароль и пыщьаем «установить». Он рапортует об установке и предлагает скрестить пальцы и перегрузиться. На этом счастливом моменте леопард обнаруживает нашу сетевуху, предлагает настроить её и зависает намертво. Ресетим его.
  8. Далее мы можем словить kernel panic. А можем и не словить (у меня не было =) Но всё ж лучше грузить леопард в Safe Mode (для этого при загрузке надо набрать «-x»)
  9. Загружаемся, и удаляем файлик forcedeath.kext из /System/Library/Extensions самым наглым образом =) Т.е. тащим в корзину.
  10. Опять грузим Kext Helper и перетаскиваем на него второй наш драйвер nForceEthernetController.kext Опять скрещиваем пальцы и вот тут (!!!) очень важный момент. Надо не просто перегрузиться. Надо…
  11. Выключить компьютер и отсоединить его от сети.
  12. Это настолько важный момент, что я его даже выделил. Потому что без этого может ничего не заработать. У меня, например, карточка какбэ в системе присутствовала, но по DHCP получала что-то непотребное и даже до роутера я не мог достучаться.
  13. Интернет появляется =)

Теперь начинаем пилить видео. Наши 1024х768 и надпись IGPU family not mathced какбэ говорят нам, что карта наша встроенная несчастная nVidia 6150 с шареной памятью маком была проигнорирована. И он перешел в наиболее безопасный и общий режим. А всё потому, что маки используют интеловские карты с шареной памятью, а не nVidia. И вообще, все пришли к выводу, что чтобы заставить эти видюхи функционировать правильно, надо свои дрова писать. Очень неприятный момент =) Но кто-то вновь изобрел танец, благодаря которому можно получить нормлаьное разрешение. Правда не будет никаких qe/ci (это такие штуки, чтобы было красиво), но работать вполне можно. Вот стенография танца:

  1. Грузим MacVidia 1.0.81 (разработка прекращена, поэтому рапидШара)
  2. Бэкапим всё из папки /System/Library/Extensions типа Geforce*.kext и NV*.kext
  3. Ставим MacVidia, но не перегружаемся.
  4. Открываем терминал, идем в /System/Library/Extensions, пишем sudo mkdir NVBack, sudo mv ./NV*.plugin ./NVBack, sudo mv ./NV*.bundle ./NVBack
  5. И вот теперь уже перегружаемся.

Таким образом, мы получаем в пользование разрешения выше 1024, и никаких больше IGPU family not mathced на загрузке. Правда резковато всё выглядит.

Теперь, когда OS X у нас функционирует почти в полном объеме, осталось доставить Ubuntu. Хотел я побаловаться с Kubuntu, да что-то раздумал. Ubuntu ставиться привычным образом и благополучно добавляет WinXP в menu.lst для grub’а (да, всё ж это самый лучший загрузчик =)

Ну а нам остается только дописать в это меню MacOS X:

title Mac OS X
rootnoverify (hd0,2)
makeactive
chainloader +1

Et voila! У нас есть три системы, которые вполне себе успешно грузятся и работают. И да, кстати, установив Ubuntu 8.04, я не удержался и вписал sudo update-manager -d, получив 8.10 Намного лучше, чем год назад, надо сказать. Всё работает и функционирует =)

Ну и напоследок пара ссылок на ресурсы, где все танцы уже описаны и запротоколированы, если, конечно, вы не являетесь обладателем самопального железа или каких-то экзотических комплектующих =)

ПКМГ. rsync по ssh для обновления сайта.

Сентябрь 14, 2008

В ноябре 2007 года я публиковал roadmap проекта-мечты. Прошел год, жизнь внесла свои коррективы, я узнал немного нового. Поэтому видиние того, как хотелось бы разрабатывать сайты чуть-чуть изменилось. Попробую его структурировать, чтобы и самому было понятнее =)

CIS — continuous integration server

Начинать придется с этой малопонятной штуки. Насколько я понял из русской и английской (лучше) Wiki эту штуку придумали незабвенные Фаулер с Беком. Где-то на рубеже веков. Придумали для всеяЫнтерпрайзЖавы, но идея ожила и распространилась дальше. Даже книга на русском есть.

Честно скажу, этой штукой я займусь не скоро, но уж больно интересна идея. Хорошие обсуждения можно найти на форуме по гибким методологиям, где идут очень интересные обсуждения, заставившие меня почувтсовать, что я работаю в детском саду, а не в девелоперской конторе 😉

Но для начала я вытащил из всей этой идеи Phing. Те, кто работал с всеяЫнтерпрайзЖабой, знают, что есть такая штука, как Ant. Это такой трудолюбивый муравей, которого создали люди, считающие, что xml намного понятнее, чем файлы make. В двух словах, он нужен для того, чтобы билдить из исходного кода то, что можно потом задеплоить. Вы ещё здесь? =)

Так вот меня этот Phing здорово зацепил, ибо я всегда любил всё автоматизировать. Ведь однажды обученный компьютер ошибается гораздо реже, чем человек. Надо просто объяснить ему что делать =) В принципе, у нас в пыхоРазработке не сильно много проблем, не то что в ынтырпрайзЖабе. Но тоже хватает. И среды dev/prd отличаются, и изменения в DB надо учитывать, короче, есть где развернуться автоматизатору. Можно держать все изменения в голове и обновлять только нужные файлики, а базы обновлять одновременно. Можно вообще на prd разрабатывать =) Но не зря же мы svn используем и вообще пытаемся отмыться от приставки «быдло» в слове кодинг =)

Временным решением пробдем с конфигами и прочими паролями к БД может быть привязка к рабочей директории. Об этом хорошо писал Кузьма Феськов в последнем PHPInside. Где-то год назад. Костыль, но всё ж лучше, чем каждый раз вспоминать, что не надо заливать разработческий конфиг на продуктивный сервер =)

Далеко меня уже занесло, постараемся вернуться назад. Итак. План теперь таков:

  1. Пишем код, тестируем, отлаживаем. Добиваемся работоспособности.
  2. Коммитим в svn
  3. В post-commit hook вызываем phing
  4. Phing пакует наш проект в продуктивный вид, заменяя файлики конфигов, убирая ненужные всякие фишки svn и Eclipse.
  5. Лезем (не сами, скриптом) на продуктив. Пакуем текущую версию сайта в архив. Сливаем себе.
  6. Заливаем изменения с помощью rsync over ssh.

По-моему неплохой план =) первые 2 пункта уже вроде как отлажены. Осталось разрбраться с остальными. Так как сегодня вечер воскресенья, пришлось взять самый маленький и скучный шестой пункт =)

Rsync over ssh

Ну наконец-то. Процедура беспарольного соединения с удаленным сервером обсосана уже вдоль и поперек (да, именно так =) на просторах инета и рунета. Например, здесь.

А дальше чистая bash-магия, которая выглядит вот так (подсмотрено здесь, одна строка!):
rsync -zrptL --delete-after -e "ssh" /local/folder/ remote-server.ru:/remote/folder

За разъяснениями — в man или источник. Только будте аккуратны. Оно удаляет без права переписки. Именно поэтому я хочу для начала бэкап наладить, а потом уже это использовать это заклинание =) Кстати, обращайте внимание на слэшики в конце путей. Они важнее, чем вы думаете.

Именно за это я люблю *nix. Весь вечер ты читаешь маны, бродишь по сайтам, читаешь чуть ли не китайские форумы. Зато потом одной строкой ты захватываешь мир. Продложение следует.

Клавиатуры Apple. Доработка напильником.

Сентябрь 14, 2008

Разумеется, сами клавиатуры я не допиливал =) Чуть пришлось повозиться с тем, чтобы они нормально работали. Но всемогущий гугл подбросил несколько полезных ссылок и всё было довольно просто.

Apple Wireless Keyboard и Windows

Для начала, я разобрался с беспроводной красавицей на работе. Для повторений моих действий стоит пройти ссылке.

Эта статья посвящена работе кнопочки Fn, которая совершенно не спешит работать под Windows. Для обеспечения её работоспособности, умные люди написали скрипт к хорошей программе и создали .dll-файлик. Вообще, работа проделана колоссальная. Видимо, не одному мне эти клавиатуры нравятся =)

Ещё один хороший человек попытался создать вариант для ленивых, но у меня он не завелся. Может, что-нибудь не так делал =)

После всех манипуляций, клавиатура отлично работает и понимает заданные hot-key’и.

Есть, правда, ещё один вариант. Думаю, многие знают про BootCamp. Т.е. Apple обеспечивает своему железу работоспособность под Windows. Следовательно, есть драйвера. Правда есть они только на дисках с Leopard и достать их просто так не получается. Но в очередной раз нашелся добрый человек, который всё сделал за нас. Только вот экспериментировать я с ними не стал. Во-первых русского языка почему-то нет (но это, я думаю, решаемо), а во-вторых если всё работает, то лучше не чинить =)

Apple Wired Keyboard и Ubuntu 8.04

С проводным вариантом под убунтой было ещё меньше проблем. Всё подхватилось и работает. Правда, кнопки F1-F19 работали в инвертированном режиме. Т.е. не как кнопки, а как замапленные на них медиаКоманды. Решение этой проблемы хорошо представленно даже в рунете. Правда медиаКлавиши после этих махинаций не работают, но они мне и не нужны =)

Oracle, JDeveloper и PL/SQL

Август 10, 2008

Так уж получилось, что я решил чуть-чуть сместить фокус своей девелоперской деятельности в сторону Oracle PL/SQL. Нет, мне совершенно не надоел веб, просто у меня есть свой проект Smart Masses, который представляет собой магазин для гиков и сочувствующих имени доктора Жаба, и мне его более чем достаточно для экспериментов.
А учитывая, что в конторе, где я работаю всегда есть возможность выбора проекта, я решил «прокачать» знания по sql и pl/sql, с которым до этого не работал. Для начала оформил себе оракловые курсы по банальному sql и уложил все знания в систему =) Учиться понравилось. Вчера съездил в Олимпийский и закупил литературы по Oracle PL/SQL и немного Тома Кайта для души =)

Сегодня уже установил себе Oracle 10g XE на Ubuntu 8.04 и начал вдумчиво читать литературу и выполнять примеры.

У оракла есть некая IDE с незамысловатым названием JDeveloper. Не то, чтобы я горю желанием изучить ещё одну IDE, но посмотреть на неё захотелось. Ставиться она не без бубна, но официального руководства вполне достаточно. Единственная проблема возникает, когда пытаешься законнектиться к базе из неё. Проблема выражается двумя ошибками:


ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified

И ничего не признает. Выставление параметра NLS_LANG в профиле баша ничего не дает. После многочисленных расследований и поисков в гугле решение было найдено. В файл jdev.conf необходимо добавить пару строк:

AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

Оказывается Ынтырпрайз Жава не очень признает всякие NLS_LANG и берет параметры прямо из среды обитания. И эти параметры оказываются неверными. Этот «хак» подходит для любых IDE, написанных на этом чудесном кросс-платформенном языке и использующихся для разработки под Oracle.

И вот ещё одна ссылка по которой можно почитать чуть более объемное описание проблемы и способы её решения. Отличный статья, рекомендую.

…тем же вечером…

Продолжая копать в нужном направлении, нарвался на SqlDeveloper, выпускаемый Oracle. Который не несет в себе столько уг, как jDeveloper. При установке был капризен и требовал путей к jvm, не смотря на то, что она была прописана в PATH. Ещё пытался (неудачно) создавать файл jdk в дирректории ~/.sqldeveloper/ и писать туда этот самый путь, чтобы не спрашивать каждый раз при старте. Но что-то у него не задавалось. Пришлось создать ему этот файлик, раздать на него 777 (на всякий случай =) и вот тогда, он туда уже всё написал.

Ну и баг NLS data files лечился тем же способом. В sqldeveloper.conf добавились те же магические строки =) Вот такой вот он…ЫнтЫрпрайз.

Ubuntu 8.04 beta. Шаг вперед, два шага назад.

Апрель 3, 2008

Зачем обновляться до beta?..

Угораздило меня попасть на сайт убунты, и увидеть там «25 дней до релиза». Потом угораздило прочитать в каком-то блоге об успешном обновлении до бетаВерсии. До этого читал, что человек обновился до альфы, и ему всё нравится.

Вечер был свободный 😉 Поэтому и я набрал update-manager -d и смело нажал «Обновить». Убунта честно предупредила, что обновляться будет до беты, что качать придется метров 900 и что вообще всё опасно. Пути назад не было =)

Я думал, что процесс пойдет автоматически, поэтому пошёл пить чай, однако, вернувшись, я обнаружил диалоговое окошко с вопросом «Какой из конфигов использовать для …» И таких вопросов мне задали много. Т.е. не уходите пить чай, а вдумчиво следите за обновлением. К тому же это процесс поинтереснее дефрагментации диска 😉

И что в итоге?..

В принципе, все изменения отражены в changelog’ах, поэтому я приведу лишь субъективные впечатления.

  • Пропал звук. Устройств, на которые можно подавать звук в системе обнаружено не было. Проблема была в ядре, оно обновилось спустя 4 дня. Звук появился. Ура.
  • В системе поселился Tracker, который активно за мной следит. И всё время всё индексирует. Пока я с ним не общался на предмет индекса, но лишний значок в трее заметил 😉
  • FireFox обновился до 3b4, следовательно, половина add-on’ов стала неработоспособной. Особенно мне не хватает FireBug и Del.icio.us-плагина. Ставить «check for version compatibility» в «none» мне не хочется. В прошлый раз плохо закончилось =) Подождем…
  • Слетела тема MacOsX (надеюсь, не палюсь 😉 Правда не целиком, а только частично. Оччень весилит
  • Есть ощущение, что система дольше грузится. Надеюсь, после релиза ей полегчает

Вообщем, это хороший такой LTS-релиз, т.е. без наворотов и революций. Обновление прошло почти успешно, полет нормальный. Ждем релиза.

Как я подСел на подКасты.

Март 26, 2008

Сегодняшняя микрозаметка будет посвящена подкастам, кои я открыл для себя совершенно недавно. Дело, кажется началось с Хабра, на котором подКастам отведен отдельный тег, где они кучкуются. Вообщем, в очередной раз увидев на главной странице новость о выходе очередного подкаста, я решил послушать о чем же говорят люди. Послушав, кажется, об ИнтернетМаркетинге, я жОсктко вдохновился и понял, что подКасты являются идеальным заполнителем рыхлого времени, которое, обычно, забивается музыкой. Или, если совсем всё плохо, радио

Но не удобно же, блин качать их по ссылкам и заливать в телефон руками. Поэтому, пошерстив безнадежный рунет, нашел на забугорном сайте более или менее приличную таблицу сравнения. Прошерстив и её, выбрал самое банальное — gPodder, который в Убунте ставиться apt’ом.

GPodder умеет уже многое. Конечно с багами и прочим, но это джедаям опенСорса не помехи. Например, он может синхронизировать подкасты с плеером или iPod’ом. Мой телефон он принял за плеер и удачно залил на флешку то, что скачал. Правда с русскими кодировками у него плохо. И файлики называются _____.__C___.mp3. Но это тоже не пугает джЕдаев =)

А разжиться подКастными RSS-лентами я сумел на rpod, где их превеликое множество. Приводить список выбранных мною я не буду…мания величия у меня сегодня не в пике.

Ubuntu. Проблема с кодировкой CD/DVD дисков.

Март 12, 2008

Давно возникал вопрос, почему на вставленных cd/dvd дисках папочки с русскими названиями были представлены знаками вопроса. В связи с тем, что дисками я не часто пользовался, я на это забивал =) Ну а если не забивал, то пробирался по диску вслепую =)

Ответ был подсмотрен в убунтарии на хабре. Вся (грустная) правда в том, что диски монтируются в неизвестной кодировке. Чтобы ситуацию поправить раз и навсегда, стоит открыть на редактирование /etc/fstab и дописать там в опциях монтирования оптоДисков iocharset=utf8

П.С. Больше трех месяцев в Ubuntu. Полет нормальный =)

Обо всем по-немногу. Firefox, AMR, ExtJS.

Февраль 28, 2008

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

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

Конвертация AMR и 3gp.

Я часто пользуюсь диктофоном на мобильном телефон. Во-первых, потому что не всегда есть возможность достать бумагу и ручку, а во-вторых для того, чтобы хранились логи встреч, которые потом можно послушать, если забыл что же было решено по итогам встречи 😉

Я не помню уже, чем конвертировал из amr в mp3 под Windows, но под *nix искать программу долго не пришлось. Попробовав несколько самопальных скриптов, некоторые из которых опасны для жизни файлов 😉 я остановился на программе Mobile Media Converter (ссылка внизу страницы, между гуглоРекламой, долго искал =). Программа с самым банальным интерфейсом и тем очень удобна. Умеет работать с amr и 3gp, а большего мне и не нужно.

Знаменитый баг Firefox

С этим багом я столкнулся сразу же после установки Ubuntu. Это тот самый знаменитый баг, из-за которого хоткеи не работают в русской раскладке. Его уже поправили (за деньги), но исправления будут только в Firefox 3. А пока, необходимо установить маленький add-on, который всё вам поправит. И будет шастье =)

Небольшой багФикс для ExtJS

Замешивая полный винегрет из тем, упомяну ещё одну вещь. Все знают, что ExtJS можно заставить говорить по-русски в окошках/менюшках, просто подключив файл с русской локалью. Но в нем есть один неприятный и редкий баг. При работе с DateField, когда выставляется формат содержащий месяц прописью (янв, фев и пр.), мы получаем январь 1970 года и ничего кроме.

Вся проблема кроется в массиве Date.monthNumbers, в котором содержатся неверные короткие имена. Надо просто заменить его на следующий:

Date.monthNumbers = {
  Янв : 0,
  Фев : 1,
  Мар : 2,
  Апр : 3,
  Май : 4,
  Июн : 5,
  Июл : 6,
  Авг : 7,
  Сен : 8,
  Окт : 9,
  Ноя : 10,
  Дек : 11
};

На сегодня — всё. Надеюсь, что скоро станет посвободнее и я допишу туториал по ExtJS и гридам с фильтром и поиском =)

Обживаем Ubuntu 7.10 — Итоги месяца.

Декабрь 3, 2007

Тихо и незаметно прошел месяц с того дня, как я сделал первую заметку по Ubuntu 7.10. Поставил я его чуть раньше, но это «жить» в нем начал примерно тогда же.

В принципе, за весь месяц, Ubuntu ни разу не падал =) мне не приходилось сидеть в неГрафической консоли, мне не приходилось сидеть часами что-то обрабатывать напильником для возвращения работоспособности. Может это связано с большой загруженностью, может с моей нетребовательностью, как пользователя, но можно считать, что Ubuntu обжить мне удалось =).

Я не стремлюсь к тому, чтобы стать «джедаем» и повелителем консоли. Я не использую в работе vi или emacs, просто потому, что привык к несколько другим интерфейсам и не обладаю достаточным запасом свободного времени, да и желания тоже. «Может быть, когда-нибудь» мне откроется истина, я отращу бороду и буду воспринимать gnome, как «бесполезную и ресурсоемкую надстройку над консолью» =)

Одной из причин моего перехода под *nix, стало желание, как бы это выразиться, жить честно =) Т.е. не воровать софт. И здесь я выполняю план на все сто. Да, на машине стоят проприетарные кодеки, Adobe Acrobat Reader, Skype и другие неСвободные программы. Но меня это волнует мало. Эти программы я использую с «дозволения» их создателей, следовательно они в курсе, следовательно всё с моей совестью в порядке. Я понимаю, что это странная причина =) но мне, в какой-то момент времени просто стало «западло» использовать ворованный софт.

Конечно, всё далеко не безоблачно. Конечно, Ubuntu нельзя назвать дружественным-на-все-сто-любому. Но для человека, который в состоянии читать мануалы, в курсе где живет гугл, знает, что можно задать вопрос на форуме (убедившись, что тема не поднималась), Ubuntu будет доступен. Для человека, который признает, что всегда есть несколько способов решения проблем (а не только «чтобы-эксель-как-в-вЕнде») и который ищет решения проблемы, а не «привычные способы» Ubuntu будет хорошим источником таких решений.

В конце-концов, кого нам винить за то, что мы только недавно начали просыпаться по поводу Open Source (только не кидайте в меня дисками с первой слакой 😉 я тоже, помню, редХат 9 ставил =), что этот вопрос начал подниматься в сфере образования только перед «вступлением в ВТО». Но начал же, и активно. А это значит, что не только *nix идет к нам с лозунгом «год линукс на рабочих столах», но и мы должны двигаться по направлению к свободе. И чем больше пользователей переходить на *nix, тем лучше он будет становиться. Главное, чтобы пользователь понял, что он МОЖЕТ принимать участи в улучшении того, чем пользуется, а не просто сидеть, смотреть на ошибку и проклинать разработчика (кто-нибудь отправлял в майкроСофт сообщения об ошибках? 😉

Короче, «сегодня мы многое поняли…» =)

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».

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

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