вторник, 27 января 2009 г.

Как все начиналось

Идея создания сайта с отзывами обо всем возникла еще в мае, я даже удосужился сделать первую страницу содержащую слова, о том, как круто здесь все когда-то будет. Но дальше первой страницы дело не пошло...
А осенью начался кризис. Хотя с работы пока что не гонят, но вылететь можно в любой момент, никто же не может гарантировать тебе рабочее место вечно. Поэтому, надо искать какие-нибудь дополнительные источники заработка. Мой друг предложил поискать подработку на сайте http://www.rentacoder.com. Я зарегистрировался и обнаружил, что по спрос на кодеров, которые работают только с БД Oracle не очень-то и велик. Зато работы с php, perl и MySQL хватает. Осталась самая малость — более-менее освоить эти средства. Предварительный опыт был только с php.
Читая умные книжки и выполняя примеры из них, не сильно продвинешься в изучении новых средств разработки. На реальной задаче новый материал усваивается гораздо лучше. Тут-то сайт с отзывами и пережил свое второе рождение.
Сайт, конечно, дело хорошее. Но на нем должна быть какая-то информация. Причем информация должна быть полезной, чтобы кому-то было это интересно. А пока народ «прочухает», что надо именно на моем сайте оставлять отзывы пройдет не один месяц. Если у меня информации нет, а у кого-то другого она есть, надо ее позаимствовать. Заодно, научусь как на perl’е «качать» страницы и разбирать информацию в них содержащуюся.
Первой жертвой для заимствований выбрал большой туристический портал, на котором было полно информации. Не меньше недели ушло на то, чтобы научится нормально «забирать и разбирать» с него страницы.
Следующим шагом стала загрузка информации в базу данных. Т.к. на сайте, любезно предоставленном мне моим другом, была только MySQL, то и информацию надо хранить в ней. Я-то по наивности думал, что коль с Oracle более 10 лет работал, то и с этим зверем справлюсь одной левой... Счаз!!! Непонятки начались с момента инсталляции. Оказалось, что на винде (ноутбук, который у меня дома, с windows, вести разработку я предпочитаю на локальном компьютере, перекладывая отлаженный код на конечный сайт) сначала надо установить драйвер к этой базе, потом саму базу. Если создаешь базу в кодировке, отличной от latin1, предлагаемой по умолчанию (а зачем мне latin1, если информацию храню в cp1251), то надо еще и внести правки в my.ini... В общем, базу установил, под root’ом даже удалось зайти. Но не будешь же под root’ом создавать таблицы и т.п., нужен свой пользователь. Честно создал пользователя в MySQL Administrator, создал для него схему. А вот зайти под ним не могу. Пароль правильный, а не пускает... Долго бился я с этим змеем, пока мне не посоветовали забить на все администраторы и создать пользователя в командной строке. Причем создать именно такой командой
create user ’qqq’@’localhost’ identified by ’qqq’;
Я бы в жизни не допер, что пользователи qqq и qqq@localhost — это два разных человека. Зато со вторым проблем вообще никаких.
Теперь надо виндовым perl’ом залезть в базу. У меня на тот момент стоял Strawberry Perl — первый из перлов для windows, которые я увидел на www.perl.com. Надо-то всего ничего, доустановить библиотеку DBD::mysql. Только вот командой
cpan install DBD::mysql
результата не добьешься. Вылезает куча ошибок... Бился я с установкой этой библиотеки не один день. Победить не удалось. В инете нашел информацию про другую версию perl для windows — ActivePerl. И действительно, в этой версии perl’а установка новых модулей — милое дело. Выбрал в окне модулей нужный, кликнул мышкой, он и установился. Но вот DBD::mysql там не было, была библиотека DBD::mysqlPP, посредством которой отлично можно работать с базой MySQL, только вот разработку-то я веду на компьютере с windows, а на сайте — linux. Как-то не хочется делать по 2 версии каждого скрипта, меняя в нем только название библиотеки. Хорошо, что нашелся Camelbox, включающий в себя эту библиотеку. У Camelbox, правда нашелся другой грешок, я так и не смог для него установить DBD::Oracle, которая понадобилась на работе, пришлось на работе ставить ActivePerl.
Итог первого месяца: научился скачивать и разбирать страницы, получил опыт работы с регулярными выражениями, с которыми до этого не сталкивался, классная штука, однако, научился помещать найденную информацию в БД MySQL.

1 комментарий:

  1. Молодец. Я рад, что ты наконец-то завел себе блог.

    ОтветитьУдалить