Fork me on GitHub

DBIx::Class Best Practices #1

Все выборки с условиями оформляйте в виде отдельных методов на ResultSet'e. Позже поможет с рефаторингом и позволит много кода использовать повторно.

Чтобы писать собственные методы в резалтсет, нужно в описании схемы указать, какой класс использовать для резалтсета:


 __PACKAGE__->resultset_class( 'ItIs::Schema::DoIt::ResultSet' );

Ну а потом в этом классе пишем свои методы:


package ItIs::Schema::DoIt::ResultSet;
use strict;
use warnings;
use base qw/DBIx::Class::ResultSet/;

sub active {
    return shift->search( { completed_at => \"IS NULL" } );
}

1;

Posted at 19PM on 10/26/08 | 0 comments | Filed Under: | read on

Про CPAN

Послать на CPAN или не послать на CPAN? Вот в чем вопрос.

Posted at 18PM on 10/16/08 | 1 comment | Filed Under: | read on

Про воркшоп

Мы наконец то открыли сайт воркшопа по перлу, который будет проходить во Владивостоке 13 сентября.

Я планирую сделать большой доклад про Git и что-нибудь интересное про сам Perl, но пока не определился. Приходите, будет интересно.

Posted at 19PM on 07/02/08 | 0 comments | Filed Under: | read on

Делаем сайты за футболку

На выходных 12-13 апреля поучаствовали в хакфесте Рамблера по созданию стартапа за 24 часа. Команда состояла из 3 человек из нашей перловой юзергруппы. Немного впечатлений.

Процесс

Собрались в 6 часов, приготовили доску для рисования, настроили инет на машинах, стали ждать часа X — 7 вечера. Время как-то незаметно подошло и организаторы прислали нам 2 темы: мобильный коммуникационный сервис и информационно-справочный сервис с UGC (user generated content, как нам любезно подсказал гугл). Первую тему сразу отбросили, т.к. никаких wml и прочих специфичных штук мы не знали и опыта разработки сайтов под мобильники небыло. По второй теме родились 2 идеи: сайт с инфой о железяках для великов с рейтингами, отзывами и тд. и сайт рецептов, главной фишкой которого был бы поиск по продуктам: мы пишем, что у нас в холодильнике, а наша умная машина определяет, что из этого можно сделать. В итоге остановились на рецептах.

Илья пишет письмо организаторам, мы с Ромой рисуем схему БД на доске. Сделали, начинаем кодить. Тут вылазит баг с каталистом, который попортил нам не мало крови: помимо того, что мы потратили время на его поиск, так мы потом из-за него не смогли нормально код задеплоить на сервер. Каталист неправильно определял путь до проекта. В процессе разработки мы просто встроили путь руками в тестовом серваке. Так проходит несколько часов. Около 3 ночи начал писать AJAX, который в процессе ввода рецепта долбится на сервер и пытается определить продукты, используемые в рецепте. В целом нам эта фишка удалась, только нужно было добавить больше вариантов склонений/спряжений продуктов в БД. BTW кто-нить знает открытый словарь склонений/спряжений слов?

В районе 7 утра пошли прогулятся, чтобы провентелировать мозги и отдохнуть от компов и непрерывного сидения. Вернулись и запостили в коммунити хакфеста тизер с анонсом проекта. Для этого была найдена клевая картинка, ссылки на скачивание ее в большом разрешении вели на deviantart, но автор арта решил его уничтожить по какой-то причине и нам пришлось юзать превьюшку. Что из этого вышло, можете посмотреть в коммунити. Все участники восприняли это как призыв покушать, но наша рекламная кампания в новомодном стиле, когда не понятно, что рекламируют, удалась :) Мы хоть повеселились.

После бессонной ночи пришло время тупняка и мы стали продвигаться вперед довольно медленно. После обеда оживились и стали работать по активнее. Самая высокая продуктивность началась около 6 часов. Илья вносит финальные правки в дизайн, я фиксю регистрацию, делаю тупое голосование за рецепты. Рома пытается задеплоить код на сервере, но вылазит опять чертов баг с неправильным путем. Решаем задеплоить версию для организаторов через тестовый перловый сервак, отчего и поплатились — во время проверки сайтов жюри, наш сервак упал и многие члены жюри просто не смогли оценить наш проект. В последние минуты доводим до ума голосование, коммитим. В принципе до последней секунды мы не бились, минут за 5 до конца уже не напрягались. Отдыхаем :)

Впечатления

Сам процесс написания проекта и т.п. понравился. Не понравились приколы организаторов, с переносом оглашения результатов на сутки. Также разочаровали некоторые участники. Одни за неприятный им комментарий заддосили проект других участников, другие стали поливать говном организаторов и участников. Третьи стали в нелицеприятном виде защищаться и говорить, что они мол молодцы, а все остальные идут на ***. Граждане, будьте терпимей, мы же во всем этом для удовольствия участвуем, а не для разборок и взаимных н абросов на ветилятор.

Инструменты

Писали мы все на перле с использованием фрэймворка Каталист. Код на JavaScript написан с помощью Prototype.js. Нарекания у нас возникли только с каталистом.

Мне жутко не понравился ORM DBIx::Class, который в каталисте по дефолту рекомендуют юзать. Абсолютно жуткая штука ИМХО, проще писать SQL руками. Вообще сложилось впечатление, что для перла нет нормальных ORM'ов.

Потом уже озвученная трабла с каталистом. Причину мы так и не нашли, другие каталистовы проекты на тех же машинах чудесно работают. Мистика, нужен шаман с бубном.

В остальном к нему нареканий нет.

Вообще мероприятие понравилось, надо и в следующем году поучаствовать. Ссылка на проект будет позже, когда мы его доработаем и нормально развернем на сервере. Фотографии выложил в галерею.

P.S. Команда 43 и Vladivostok.PM — это как раз мы.

Posted at 12PM on 04/16/08 | 7 comments | Filed Under: | read on

Про коммунити

Организуем Vladivostok Perl User Group. Скоро будет лист рассылки и сайт. Недели через 2 планируется первая встреча. Подробности позже.

Posted at 15PM on 11/26/07 | 2 comments | Filed Under: | read on

One more presentation

Why Perl sucks — Хорошая презентацию на тему того, что в перле реализовано не очень хорошо и как это исправить.

Posted at 16PM on 09/09/07 | 0 comments | Filed Under: | read on

Vim и немного инфы с YAPC

Vim

Если вы хотите использовать vim, но не знаете как, то

  • vimtutor из терминала
  • Vi Reference Card — Небольшая сводка информации о базовом использовании редактора
  • Efficient Editing With vim — Тоже самое, но с более подробными объяснениями
  • Graphical vi-vim Cheat Sheet and Tutorial — Большая страшная таблица клавиатурных сокращений
  • Mastering the VI editor — В принципее все тоже самое, но может изложение тут вам больше понравится

YAPC::Europe '07

YAPC::Europe logo

YAPC — это Yet Another Perl Conference, если кто не знает. На сайте доступен список докладов, так же достпна презентация по Moose — это такое интересное расширении OO модели Perl 5 до возможностей Perl 6. Очень красивый (по сравнению с Perl 5) подход. Рекомендую ознакомиться. Также доступна презентация Scaling with Memcached.

Posted at 16PM on 09/04/07 | 1 comment | Filed Under: | read on

About

Hi. My name is Dmitriy, i am a student from Vladivostok, Russia. This is my blog about web development and relative things.

I am interested in functional languages, especially Haskell and Common Lisp, Ruby, Ruby on Rails, Perl and other interesting topics. I don't like C plus plus, Java and Pascal.


Немного о

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

Categories