2006-03-31

Жизнь, a жизнь, что ты с ними делаешь? или VIKO.lt обнавили

Жизнь, a жизнь, что ты с ними делаешь? Наверное никому не секрет, что в своё время я приложился к созданию сайтов Вильнюсской коллегии, так как моя дипломная, которую я делал вместе с их webmaterом, как раз была связана с их сайтом. Их сайт принимал разные обличия: 2002 год, пока мы ещё там учились (и руки туда не доходили); 2003 год, когда мы закончили и сдали свою дипломную (заодно и с запуском сайта); 2004 год, когда они уже сами без меня всё сделали; и свеженький дизайн 2006 года. Последний вариант, я считаю полным регрессом в развитии их сайта. Нет, не потому что я там не участвовал (и слава всем богам, что не надо было им помогать), а потому-что мне, после вариантов 2002-2003-2004 годов, вариант 2006 совсем не нравиться. Я бы сказал, дизайна там нет. Хотя я не дизайнер, что-бы так громко заявлять об этом, но это ужасно, по сравнению с теми-же ВУ, ВГТУ или ВПУ. А ведь на университеты равняются! Но за свой 5 лет деятельности, я сделал не один десяток сайтов как программер, а видел их предостаточно, и этот вариант у меня ассоциируется только с худшими вариантами студентов-первокурсников, которые дизайн сайта делают во FrontPage 98…

Хотя я там уже давно не учусь, мне немного обидно за них. Они дали мне достаточно полезных знаний и контактов за те 3,5 года, которые я там провёл. Обидно…

Blog, Memories, Web — Sergej Kurakin @ 14:26

WordPress Widgets на Windows хостинг платформе

WordPress Widgets на Windows хостинг платформе у меня не пошёл сразу (Да, как я писал раньше, я тут-же показал это дело и мне сказали инсталлировать). Не пошёл он тем, что не подгружал в себя свою JavaScript часть и CSS. PHP нам не новость, и пошли мы во внутренностях ковыряться. Клиент был скорее жив чем мёртв. Есть в этом плагине такая функция: sidebar_admin_setup, а в ней, на строкер (относительно начала файла) 185 проверка: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, __FILE__);. Классно, да? В чём класс? А в том, что у Windows слешики то другие - \ и мы нервно ищем спички, что бы их выкурить. Слеши можно поменять, сделав проверку платформы, или просто, быстро и глупо заменим на: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, str_replace ( ‘\\’, ‘/’, __FILE__));. Ура, казалось всё должно было заработать.

Но не тут то было. Понеслось оно по проводам: Fatal error: Cannot redeclare register_sidebars() (previously declared in *\***\wp-content\plugins\widgets\widgets.php:22) in *\***\wp-content\plugins\widgets\widgets.php on line 22. Опаньки! А что у нас там? А! Начало плагина - первая функция. Здорово то как! Бамбук ни у кого не завалялся? Курить охота. Перед ней добавим: if (!function_exists ( 'register_sidebars')) {, в конце файла, перед ?>, добавим } и на этом у меня всё заработало. Вот, думаю, может кому поможет?


If you got error like Fatal error: Cannot redeclare register_sidebars() (previously declared in *\***\wp-content\plugins\widgets\widgets.php:22) in *\***\wp-content\plugins\widgets\widgets.php on line 22 when installing WordPress Widgets on Windows hosting, probably, you will see solution of this problem.
Before declaration of this function add this code: if (!function_exists ( 'register_sidebars')) {, and before end of PHP part of file, after last function declaration, add this code: }. So, now, on second file include of WordPress Widgets, those function won’t do any troubles any more.

If WordPress Widgets do not loads JavaScript or/and CSS files, please, check the 185 line. Probably you will see there line like: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, __FILE__);, and on Windows, constant __FILE__ will be with different slashes (like this one: \). Possible, you can solve this problem like me: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, str_replace ( ‘\\’, ‘/’, __FILE__));.

Blog — Sergej Kurakin @ 10:27

Freeze is cool, или как не всё пошло гладко с версией 1.1

Статейка о Ruby on Rails “Freeze is cool, so freeze for goodness sake” и обновлении провайдеров хостинга до версии 1.1 оказались не столь весёлыми и лёгкими, как ожидалось (обещалось). А вся проблема была в том, что на хостинге используется одна, общая версия Ruby on Rails для всех (если вы не “заморозились”), и если вы не сделали хотябы “rake freeze_gems” для своего проекта, кой-чего могло сломаться. Говорят у многих отказал “Typo”. Да, не все Gem совместимы с версией 1.1 (об этом предупреждали), поэтому, после обновления до версии 1.1 у многих что-то перестало работать из того, что работало с версией 1.0. Об этом и том, как разрабатывать проекты для разделённого хостинга (shared hosting) предупреждали ещё, оказывается, 22 декабря 2005 года: Freezing your Rails when you deploy shared. Так что, перед загрузкой своего проекта на рабочий сервер, сделайте “заморозку” версии Ruby on Rails для этого проекта, в противном случае, вас могут ждать не приятные сюрпризы. Вывод: С Ruby on Rails “отморозком” быть приятно и полезно.

Вот что от себя добавлю: я, как начинающий рельсоукладчик, до данного момента не знал, как с новым проектом, на хостинг перенести gem acts_as_taggable, и меня уже мучали смутные сомнения, о том смогу ли я и всё ли будет хорошо. Но ответ на эти вопросы я пока не искал. Нет проблемы перед лицом - я её не решаю. А зачем её решать сейчас, если она неизбежно возникнет в будущем? Вот тогда я её и буду решать. Проблема пока ещё не возникла, а решение уже нашлось. Вот уже в который раз, моя лень решает проблему быстро и безболезненно, даже с огромными плюсами. Но не все потенциальные проблемы можно так решать…

Ruby and Rails, Web — Sergej Kurakin @ 09:15

WordPress Widgets

Виджеты, виджеты, Widgets. Виджеты уже есть для WordPress - одно из самых популярных блог-движков на PHP. Плагин, позволяющий расставлять в желаемом порядке блоки в вашем сайдбаре без изменения самого шаблона. Плагин для кого-то будет очень полезным (я даже знаю, кто в ближайшие 2-3 часа его захочет и будет согласен за установку …). Им пользуется даже WordPress.com. Для виджетов даже сделали API - надо же как-то сообщество развивать.

Я немножко скептик и консервативный в некоторых планах, поэтому этот прекрасный плагин себе ставить не буду. Сайдбар я раскладываю один раз, и менять его нехочу - он идеально сложен с моей стороны, количество блоков с информацией в нём меня устраивает, и убирать что-либо или добавлять я нехочу.

Web — Sergej Kurakin @ 08:50
2006-03-28

Mike Clark - Rails 1.1: The Forgotten Features

Mike Clark опубликовал статейку о Rails 1.1: The Forgotten Features - забытые фишки. Обещает его обновлять в процессе своего знакомства.

Пока описал в основном такие возможности и изменения:

Больше никакого “Белого экрана смерти” - White Screen Of Death. Да, было и у меня такое, когда я переносил проект с сессиями хранящимися в базе, и забыл перенести таблицу с сессиями. Белы чистый экран.
Minimalist Database Configuration - теперь можно будет указать, под какую базу данных заготавливать config/database.yml Это даже как дискриминация была других баз данных, которых поддерживает Ruby on Rails.
New Temporary Directories - теперь cache, sessions и sockets будут храниться в доступном нам месте. Оно правильно, не надо будет ползать и искать этот чёртов системный temp.
Auto-Generated Migrations - автоматически генерируемые миграции. Надо обязательно с ними познакомиться поближе.
More In the Console - новые возможности в консоле. Батюшки, теперь можно хелперы прямо оттуда вызывать, и сами классы подгруженные перегружать, без перезапуска оной.
Application-Specific JavaScript - для особо ленивых сделают даже файл, куда JavaScript писать.

Ruby and Rails — Sergej Kurakin @ 22:47

Выпущен Ruby on Rails 1.1

Примерно 7 часов назад в свет официально вышел Ruby on Rails версии 1.1. Создатели очень расхваливают 500 изменений от 100 контрибуторов.

Особенно выделяют RJS: Ajax has never been easier - JavaScript из/в Ruby. Возможность работать с полями ввода при помощи JavaScript без выхода из Ruby (т.е. всё делается путём написания кода на Ruby), этакий монстр от Sam Stephenson. Пример по простоте впечатляет. Документация готова а так-же представлены RJS Templates, и RJS Element and Collection Proxies. Учитывая новшества, в них придётся вникать и осваивать немного дольше, чем хотелось. Как за всем угнаться?

Active Record тоже обновили: обещанные polymorphic associations, bottomless eager loading, адаптары под Sybase и OpenBase, to_xml и calculations. Примеры с bottomless eager loading с их оптимизацией запросов с JOIN, плюс примеры polymorphic associations простаки убивают своей простотой. Такое желание всё бросить и попробывать всю эту прелесть прямо сейчас, обновив Ruby до версии 1.8.4 и Ruby on Rails до версии 1.1.

Новый способ respond_to упростит написания на одном методе контроллера как ответ не только для AJAX, или стандартного HTML запроса, но и для какого-либо XML API или сервисов. Вся эта технология основана на Accept HTTP заголовках. Мне очень приятно, что создатели и разработчики Ruby on Rails думают о предоставляемой им информации от навигатора.

Остальные новости можно прочесть в статье What new in Rails 1.1 и, естественно, в changelogах.

Обновление обещают безболезненным и быстрым, всеголишь надо обновиться до Ruby 1.8.4 и Ruby on Rails 1.1. Вот только некоторые plugin и gem, не совместимые с Ruby on Rails 1.1, могут не работать. Рекомендуется их обновить с совместимыми, если такие есть.

А теперь покажите мне framework на PHP который всё так-же красиво умеет и может.

Ruby and Rails, Web — Sergej Kurakin @ 16:29

Как я менял стиль валидационных ошибок на полях

Ruby on Rails не перестаёт меня удивлять. Сегодня я интегрировал кодинг в пре-бету проекта и мне понадобилось сменить стиль валидационных ошибок на полях ввода. Вроде ситуация то мёртвая с первого взгляда - всё глубоко зарыто в коде аж до самого “actionpack/lib/action_view/helpers/active_record_helper.rb”. Тут в голове появляются скверные мысли об использовании Override и прочего, но лень (и не полное знание Ruby и RoR) побеждает и я иду к старшему брату с вопросом “ruby on rails error input style”. Брат сегодня в хорошем настроении и первой ссылкой мне отдаёт статью о моей проблеме из wiki Ruby on Rails. Последний пример с перестановкой классов меня вполне удовлетворит, но мне слабо вериться, что нету более “удобного” способа, чем регексп. Маленькое но: всё это перепишет вывод сообщения об ошибках для всех ActionView…

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

Ruby and Rails — Sergej Kurakin @ 15:08
2006-03-23

Историческое, о моих заметках

Историческое, о моих заметках: Местная пиццерия “Жёлтый Субмарин”, в своё время сделавшая пару приятных сюрпризов с заказом через интернет и завтраками - сменила сайт. Я не знаю как там с завтраками и обеспечением работы интернета и заказов, но выглядит на порядок лучше прежнего.

Blog, Memories — Sergej Kurakin @ 11:11
Таги: , , ,