пятница, 30 ноября 2007 г.

Фраза дня

Золотые слова для начинающих разработчиков(таких как я):
Error messages tell you where the problem was discovered, but that is often not where it was cause.
Книга ThinkPython by Allen B. Downey




Линки:
http://www.greenteapress.com/thinkpython/

Шедевры инструментальной музыки.

Скачал такой вот сборничек в сети. 8 часов инструментальной музыки. Очень помогает работать - без музыки как-то не привык. А так полный ажур и гармония.
Рекомендую!

среда, 28 ноября 2007 г.

Динамо - Рома

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

понедельник, 26 ноября 2007 г.

sfClock

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

суббота, 24 ноября 2007 г.

Поступок!

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

"Назло маме уши отморожу!"

И все таки второй способ.

Прикручивание к движку Date пакета из PEAR не принесло ничего хорошего. Моя версия PHP (5.2) сеяла E_STRICT варнингами, из-за того что в PHP5 видите-ли все методы у которых visibility не указан считаються public, а так как класс писался совместимым с PHP4, то там сабж не указан, а далее вызов этих методов классе осуществляеться как для static, работает, но матюхаеться. Вот так! Гамно полное, потому взял и написал небольшой proxy для встроенных в PHP 5.1.0RC1+ DateTime и DateTimeZone.
P.S.
Дайте денег!

четверг, 22 ноября 2007 г.

Смена timezone(часового пояса) в Linux

До сегодняшнего дня такого вопроса не возникало, а тут прижало, а как поменять не знаю. Разобрался.
Вообщем так, информация о часовом поясе, установленном в системе храниться в /etc/localtime , иногда это просто симлинк на определенный файл в /usr/share/zoneinfo, если это так, то нужно изменить симлинк на нужный файл в /usr/share/zoneinfo, например у меня это EET. Если не симлинк, то заменить localtime нужным файлом. Вот и все.

Часовые пояса 2

Для решения вопроса с часовыми поясами нашел 2 варианта:
  1. использовать Date пакет из PEAR;
  2. воспользоваться ф-циями aka date_default_timezone_get. На основе этих функций можно написать свой небольшой враппер, но тогда пропадает совместимость с PHP версии ниже 5.1.0RC1.
Склоняюсь больше к 1-ому варианту.

Часовые пояса

Сегодня на лабоработорных работах по СПРТ накидал небольшой TODO лист для своих текущих разработок.
Вот, что получилось:
поддержка часовых поясов приложением;
задокументировать все хелперы, валидаторы и плагины, что написал для проекта;
создать ветку проекта в своем subversion репозитории и делать ежесуточные коммиты.
приступил к реализации.
P.S.
2:2 - Украина молодцы, шансов нет, но зато пока хоть не 5-ое место в группе. Литва отсосите.

среда, 21 ноября 2007 г.

Сам себе пример

Сегодня хотел написать хелпер для Symfony для красивого вывода информации об окончании опеределенного срока, например:
Осталось: 21 день 21 час 35 минут 47 секунд
именно так, а не
21 Дня(ей)... и т.п.
В итоге, хотел сделать побыстрее и показал себе, то как не нужно делать.
Заметка для себя - все сразу нужно стараться делать красиво и раширяемо, а главное не повторяться (D.R.Y.)

вторник, 20 ноября 2007 г.

CBAN-AJAX

Когда-то давно, когда нужно было настроить мониторинг интернет канала и не хотелось ковыряться с SNMP, то для этих целей использовал маленькую программку, которая в удобоваримом формате отдавала mrtg текущее состояние загруженности определенного сетевого интерфейса. Называеться эта программка cban. Потом задача была поставлена подругому и на том месте обосновался cacti+snmp. Но недавно, познаваля азы prototype.js фреймворка мне в голову пришла интересная идея мониторинга в реальном времени канала, что получилось, можно увидеть тут:
http://users.ggg.org.ua/cban-ajax/
смотреть не меньше минуты. :-)
Линки:
http://prototypejs.org/
http://panic.eu.org/linux/cban/

Исходники очень простые и если надо могу поделиться.
P.S.
Так как пример, приведенный выше, работает на моем домашнем сервере, но он может быть иногда недоступен, точнее когда у меня возникают перебои с интернетом.

пятница, 16 ноября 2007 г.

Идеи для авторизации

В поисках оптимальоного механизма авторизации в Symfony, сначала думал использовать sfGuard, но потом почему-то решил, что перепиливать его под себя неохота, когда можно взять из сабжа его приятные стороны. Одна из которых - запись в сессию при signin определенного remember_key.
Решил сделать так - при авторизации самого пользователя записать в сессию только специальный ключ, который будет меняться при каждом перезаходе, естественно фильтр будет следить за текущим состоянием данных пользователя с данным ключом. Данный вариант исключит подмену данных сессии у уже авторизованных пользователей ( isAuthenticated() == true ), на чужие, дабы обмануть фильтр и получить контроль над чужим аккаунтом.
P.S.
В sfGuard все сделано намного круче, но многого что там сделано мне нафиг не надо.
Линки:
http://www.symfony-project.com/
http://trac.symfony-project.com/wiki/sfGuardPlugin

среда, 14 ноября 2007 г.

sfDimensionsPlugin

Очень заинтерисован. Пока только из subversion. Но покатать можно. Вступление очень интригующее:
sfDimensionsPlugin allows you to customize the behavior of your symfony application depending on many factors. You can adjust the configuration, template selection, and action behavior based on a combination of dimensions chosen by you. For instance, you can have a different navigation structure based on the country of the user, or a different logo URL based on the current skin. These factors that affect the behavior (in this case, the country of the user and the skin selected) are the dimensions, and you may define as many as you wish.
Теперь спать, а завтра утром будем смотреть и примерять.
Линки:
http://www.symfony-project.com/
http://trac.symfony-project.com/wiki/sfDimensionsPlugin

Dr.Alban - Back to Basic (2007)

Прослушал этот новый альбом - все по-старому, только ремиксы прикольные.

вторник, 13 ноября 2007 г.

sfCaptchaPlugin bug

Интресную ощибочку нашел в данном плагине для Symfony ( почитать можно тут http://trac.symfony-project.com/wiki/sfCaptchaPlugin ). В action которое отвечает за генерацию самой каптчи:
public function executeIndex()

{

$this->getResponse()->setContentType('image/jpeg');
$g = new Captcha($this->getUser()->getAttribute('captcha'));
print($g->plot());

}


После генерации самой каптчи произойдет ее декорация layout'ом. Что этот не произошло нужно сделать вот так:

public function executeIndex()

{

$this->getResponse()->setContentType('image/jpeg');

$g = new Captcha($this->getUser()->getAttribute('captcha'));
print($g->plot());
return sfView::NONE;

}

Тогда проблемы не должны возникать. В противном случае были замечены глюки при использовании component slot'ов, каптча не рендерилась браузером.


Головная боль

В первый раз в жизни меня была какая-то направленная головная боль. А так как таблеток я стараюсь не принимать, то лечение нашлось одно - спать, крепко спать. Прошло, но впечатление осталось, что что-то не так.

Семантическая верстка

Начал осваивать азы, точнее перестраивать мышление после табличных каскадов.
Пока нравиться:
  • Код более читаем и понятен;
  • В таких документах удобно использовать AJAX.
Не нравиться:
  • Код стал менее кросс-браузерным;
  • Надоедает подстраиваться под IE6.

понедельник, 12 ноября 2007 г.

KColorChooser

Программка для получения цвета из любого объекта на экране, что-то типа пипетки для красок десктопа. Раньше не замечал ее, а теперь очень даже пригодилась. В Windows такую программку, насколько я знаю, нужно ставить отдельно.
KColorChooser входит в стандартный набор утилит KDE и распространяеться по лицензии GNU GPL.

Динамо-Шахтер

Моя любимая комманда после серии неудач наконец-то стояще сыграла у себя дома. Погода конечно подвела, но шансы были равны. Даже (на мой взгляд) неправомерно назначенный 11-ти метровый в ворота Шовковского не смог помочь Шахтеру. Бангура сделал дубль. Итог 2:1. Динамо занимает 3-ую строчку в турнирной таблице, опережая харьковский Металлист всего в один мяч в разнице забитые-пропущенные. Вперед Динамо, может еще в УЕФА поиграем.

воскресенье, 11 ноября 2007 г.

Тест-пост

Хочеться посмотреть как это выглядит!