Пирожок с привокзальной площади

Вчера абсолютно случайно увидел такую штуку, как screencast создания блога на cakephp за 25 минут. На самом деле, мувик гораздо более взбаломошный, чем тот, который сделан ребятами из Ruby On Rails комманды.
Что же это такое – cakephp? Это просто закос на известный фреймворк, написанный на php. C одной стороны перспектива отказаться от изучения ruby делает его более массовым, однако в отличии от старшего брата, в нем нет ни системы тестирования, ни собственного development server-a, ни автоматических механизмов развертывания приложения. В общем, после подробного изучения предложенных скринкастов, я понял, что если rails – это обед в вагоне-ресторане, то cakephp – пирожок с привокзальной площади. Мне идея изучения данной схемы показалась очень надуманной: полнофункциональный OO-язык всегда будет полезнее чем набор макрорасширений, но возможно кто-то захочет сделать что-то очень быстро. А ведь местные хостинги совсем не радуют нас условиями: на большинстве из них ssh-доступ это уже Advanced Level, не говоря о возможностях установки собственных модулей для apache.
Кстати, грядет 1 мая, праздник известный многим блогерам, как CSS Reboot. Кроме смены дизайна, я планирую и смену названия блога, поскольку моя борьба за высшее образование подошла к финальному сражению. Как вы считаете, стоит ли менять “Дневник борца за высшее образование” на что-нибудь вроде “Ежедневник IT-война”? Может быть у вас есть предложения по смене названия? Всегда готов выслушать ваше мнение в комментариях к данной статье.

Циклик

Понадобилось на одну страничку заклепать этак почти 2 сотни картинок. В ручную прописывать понятное дело муторно и не эффективно. Залил картинки в нужные папки по FTP, а для генерации написал скриптик, благо стили уже давно были. Решил, что надо завязывать со всякой php-шной фигней, а потому скриптик родил на ruby. Глядишь, будет такой же полезный и часто используемый, как тот, что на javascript-e.


puts '<ul class="products2">'
193.times do |a|
		puts '<li><div class="frame3">'
		puts '<a href="res/catalog/images/shkafi/full/sk'+
					("%04d" % (a+1))+'.jpg" 
					target="_blank">'
		puts '<img src="res/catalog/images/shkafi/thumbs/sk'+
					("%04d" % (a+1))+'_s.jpg" width="104" 
					height="104" border="0" /></a>'
		puts '</div></li>'
	end
end
puts '</ul>'

Понятное дело, что и CSS, и сам код можно было бы дооптимизировать, но дело в том, что я этим занимаюсь не ради удовольствия, а “грубо и цинично рублю бабло” (с).

C подачи начальства появилось чуть-чуть времени и скриптик был чуть более автоматизирован. Теперь он берет имена файла из текущей папки, отрубает у них разширение .jpg и вписывает в нужное место в темплейте.
Continue reading Циклик

Образование по книгам: “AJAX in action”

AJAX in actionВторой день я хожу в легкой смеси экстаза с наркотическим опьянением: в кои-то веки наш “компьютерный” книжный магазин вовремя затарил хорошую книгу по новым технологиям. Даже душу не скребет отданная за нее сумма в 9 лат (~16 американских рублей), за свое образование и такого не жалко.

Надо сказать, что книгу я взял переводную “АJAX в действии”, поскольку оригинал у меня лежит на диске в виде PDF уже давно, но разобрать в ней что-то требует много времени. А вот бумажный экземпляр очень мило ездит со мной по всему городу и непрерывно читается: в электричке и троллейбусе, в автобусе и на остановке.

Continue reading Образование по книгам: “AJAX in action”

Python and Apache on Windows XP – настройка рабочей станции

Возвращаясь к наболевшей теме учебы, я обнаружил что поднятая на ноутбуке система на apache, очень не работает с [python][]. Очевидно, во время чистки места были удалены какие-то ключевые компоненты конфигурации и потому обработка .py файлов перестала функционировать. Думая, о том как бы это заставить работать, я начал плясать с бубном.

Первое рещение было наиболее простым: подключить [python][] к обработке как внешний обработчик cgi-cкриптов. То есть, добавить в httpd.conf следующие строки:

AddType application/x-httpd-python .py
ScriptAlias /_python/ "c:/Python/"
Action application/x-httpd-python "/_python/python.exe"

Cам не понял почему, но данная фишка не сработала ни для отдельной папки, которой был выставлен Option ExecCGI, ни для cgi-bin папки.

Continue reading Python and Apache on Windows XP – настройка рабочей станции

Dumvadi

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

Но вот на работе выдалась свободная минутка и я решил потестить, что же мне скажет автоматизированная система оценки качества сайта, ссылку на которую я нашел в блоге коллеги. Cys.ru потешил мое самолюбие достаточно высокими результатами: 1059 баллов. Сайт выдал следующее резюме:

“Минимализм нынче не в моде.
Достаточно хорошо сверстанная страница. Качественный код и профессиональная реализация.
Неплохо обеспечено функциональное предназначение страницы. Есть некоторые спорные моменты в реализации навигации.
Достаточно удачный дизайн и цветовое оформление страницы. Возможно, недостаточно тщательно прорисованиы графические элементы.
Хорошая совместимость с современными и многими старыми браузерами. Применены универсальные решения.”Оригинал

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

Валидация множественных radio формы

Была необходимость написать небольшую процедурку, которая бы проверяла во всех ли радиобоксах группы пользователь поставил точку. При этом основная заморочка заключалась в том, что это тест, в котором кроме радиобоксов, еще иногда могут встречаться тестовые инпуты и чекбоксы. Думал, что за 30 минут, я найду нужную мне функцию в интернете…
Не тут-то было. Валидаторов радиобоксов там действительно как грязи, но на серьезных тестах, они почему-то сыпались. Пришлось написать свой универсальный валидатор форм.


function checkform(f)
{
var flag = true;
var prev = ""; 
for (var i = 0; i < elements.length; i++)   {
      var el = f.elements[i];
      if (el.type == 'radio') {
         if (prev != el.name)
       {         if (!flag)
          {
         alert('Warning! No answer selected');
           return false;
         }
       flag = false;
       prev = el.name;
   }
     flag = flag || el.checked; 
} }
 return true; }