Как считать победителей?

Чтобы не возникало вопросов, о том как происходил подсчет результатов конкурса, я привожу к сведению читателей листинг программы, которая определяла победителей. Вполне возможно, когда-нибудь к данному коду будет прикручен удобный интерфейс и этим делом можно будет пользоваться “из коробки”, но пока можно посмотреть итак.

Для удобства восприятия, разобью код на несколько частей, и прокомментирую каждую из них. Если вы с ruby не на дружеской ноге, то все равно можно смотреть “под кат”, поскольку думаю что пример будет понятен и без особых познаний синтаксиса.

Continue reading Как считать победителей?

Поздравляем победителей

Итак, все кто хотел уже проголосовали, а поэтому можно подвести результаты нашего замечательного конкурса. Всего участвовало 5 человек и по результатам голосования, места расположились следующим образом.

Главный приз – билет на спекталь Дикарь – получает Екатерина и ее стихотворение про IT дикаря. На втором месте Avinamor, которому достается 25 WMZ из моих личных накоплений. Надо отметить, что это единственный мужчина принявший участие в этом мероприятии.

Continue reading Поздравляем победителей

Рельсовая заРУБа 2008

Если вы вдруг подумали, что всякие джангисты собираются и устраивают дистанционные django sprint-ы посвященные фиксам ошибок и разработке новых фич, решил написать несколько слов о Rails Rumble или Рельсовой заРУБе :-). Смысл ее в том, что по предварительной регистрации 18 – 19 октября сойдуться 200 комманд, каждая из которых должна будет за 48 часов выкатить свое приложение на Ruby on Rails.

Правила достаточно просты: можно использовать любые открытые библиотеки/плагины и прочее, если они не делают большую часть вашей работы, можно приготовить заранее “бумажные” заготовки своего дизайна (никаких электронных версий файлов и т.д.), можно обсудить план/идею и все остальное с товарищами по комманде, которых может быть не больше 3ех человек. В общем, тут простор для всех: дизайнерам уметь быстро и просто рисовать, верстальщикам – верстать, программерам – кодить, админам – настраивать сервак под все это.

Судя по всему, мероприятие будет очень веселым, но я на него не попадаю по двум причинам:

  • Слишком слабо я знаю свой любимый фреймворк, а учитывая время на всю работу (48 часов) курить маны будет некогда.
  • Именно, в эти дни: 18-19 октября, я собираюсь скрыть покров таинственности со своей одиозной личности и девиртуализироваться в Харькове, Украина, ибо туда меня забрасывает командировка. Кстати, если у меня есть постоянные читатели с Харькова – буду рад познакомиться вживую, контакты есть выше, пишите

Но, хоть я и буду далеко от места событий, я все равно буду болеть за Алексея Дмитриева и его комманду. Удачи вам, коллеги! Фана всем остальным участникам!

Ужасный баг Gem install Mongrel

Когда-то я писал, как конфигурировать gems в локальную папку и обещал рассказать что грозит пользователю без прав root-a при установке mongrel. Однако пост пролежал уйму вермени в драфтах и наконец-то я созрел его опубликовать.

При попытке инсталлировать mysql (gem install mysql) или mongrel (gem install mongrel) в локальный репозитарий на “пустой” ubuntu обычно высыпает следующий пакет ошибок:


Building native extensions. This could take a while…
extconf.rb:8:in `require’: no such file to load — mkmf (LoadError)

/usr/lib/ruby/1.8/i486-linux/rubysig.h:15:19: error: errno.h: 
No such file or directory
fastthread.c: In function ‘wait_condvar’:
fastthread.c:626: warning: passing argument 1 of ‘rb_ensure’ 
from incompatible pointer type
make: *** [fastthread.o] Error 1

/usr/bin/install: cannot stat `http11.so': No such file or directory
make: *** [/home/vestel/rubygems/gems/mongrel-1.1.3/lib/http11.so] Error 1

А решается все просто: часть кода web server-a написана на C/C++, а следовательно без предварительных


vestel$ sudo apt-get install ruby1.8-dev make gcc libc6-dev build-essential

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

Любители самой воруемой системы конечно же воскликнут: “О, гемору-то!”, но мы не будем с ними спорить. Ведь мы то знаем, что им понадобиться гораздо больше бубнов, если кто-то из пользователей захочет содержать свой gem репозитарий.

Скажи “нет!” велосипедам

Когда-то давно, я написал функцию, которая проверяла все ли input radio button-ы натырканы в отсылаемой форме. Эта валидация была нужна мне для использования формы в небольшом опроснике, который я делал на старой работе. Ну и понятное дело, что решение было далеко от оптимального и очень прямолинейное. Сейчас, работая проектировщиком информационной системы, я борюсь с подобными решениями в рядах своих программистов, приучая их пользоваться готовым кодом там, где это возможно.

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

Continue reading Скажи “нет!” велосипедам