Kohana: Контроллер для CLI

Kohana - в первую очередь фреймворк, т.е. каркас приложений, и не обязательно для Web. Результатом работы Веб приложения может быть не только гипертекст(HTML) но и JSON, XML, изображения, простой текст, так и вовсе ничего.

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

Всё-таки оказалось, что kohana сильно ориентирован на вэб, хотя казалось бы, компоненты должны быть отдельно друг от друга.

Для написания консольного приложения(впрочем как и "демона") на основе Kohana нужно немного "допилить" контроллер. По-прежнему всю логику будет выполнять именно он, за одним исключением - если приложение и будет что то выводить - то это сообщения для отладки.

Важным моментом в этом является отлавливание ошибок. Стандартный отлов ошибок и исключений будет работать по-прежнему, но при малейшем E_NOTICE у вас в консоль отобразиться как минимум строк сто HTML кода - страница ошибки. Рано или поздно надоест прокручивать вверх и разбираться в коде - почему бы не представить ошибку в более понятном и читаемом виде?

Read more

Установка Xerox phaser 3117 в gentoo

Нашёл в черновиках, 3 года спустя - вдруг кому пригодиться современные ubuntu сами находят драйвер, устанавливают его и все работает на ура

Извращенцам Любителям ретро версий линуксов, которые нужно собирать ручками посвящается:

Помимо не высокой стоимости принтера и нечипованному тонеру у него есть ещё один плюс - это отличная совместимость с линуксом, о чём говориться на OpenPrinting и на оффициальном сайте xerox

Надо отметить, что вместе с принтером на диске есть драйвера под линь :)
Запускается просто - под рутом выполнить скрипт в корне CD диска
[cc lang="bash" line_numbers="false"]
# ./autorun
[/cc]
На этом месте начинаются проблеммы :) Или у вас гном(вернее гтк) столетней давности? :)

При запуске выдаёт:

/root/.setup5893: error while loading shared libraries:
 libgtk-1.2.so.0: cannot open shared object file: No such file or directory

Уже давным-давно не используется эта библиотека, ей на смену пришла 2.0. Это не важно, ибо всё равно принтер то надо настраивать, причём хочется с гуем, дабы ощутить полноценную поддержку от вендора :D.

Собираем gtk 1.2:

# emerge =gtk+-1.2*

соберётся 2 библиотеки в новый слот. Если ваш дистрибутив не генту - нужно поискать в пакетном менеджере эту библиотеку(например в ASP/RedHat: yum install libgtk-1.2.so.0)

Снова запускаем - появляется окошечко с мастером установки. Кстати, я предполагаю что у вас cups уже установлен(если нет то срочно: включить cups в USE флаги и emerge cups, после чего запускаем демон /etc/init.d/cupsd start). Выбераем expert install. Ни в коем случаем не ставим галку на установку этого древнего cups 1.1, можно изменить пути - по вкусу :).

Когда откроется окошко настройки жмём кнопку Add printer и если принтер уже подключён как в моём случае он сам определяет его. Если хочется можно поменять настройки.

Заходим на http://localhost:631/(web-интерфейс cups), ищем наш принтер и тыкаем кнопку пробная печать.
*барабанная дробь*
Ан нет! ещё рано! Не печатает :(. В заданиях написанно - Остановленно, попытка перезапуска ни к чему не приводят. Смотрим логи:

I [..] Started "/usr/libexec/cups/cgi-bin/jobs.cgi" (pid=2661)
E [..] [CGI] Saw EOF, expected '}'!
I [..] Started "/usr/libexec/cups/cgi-bin/jobs.cgi" (pid=2666)
E [..] Unable to execute /usr/libexec/cups/filter/ppmtospl2: No such file or directory
E [..] [Job 3] Unable to start filter "ppmtospl2" - No such file or directory.
E [..] [Job 3] Stopping job because the scheduler could not execute a filter.
I [..] Started "/usr/libexec/cups/cgi-bin/printers.cgi" (pid=2669)
E [..] [CGI] Saw EOF, expected '}'!
I [..] Saving job cache file "/var/cache/cups/job.cache"...

Что то много ругательств. Начнём с /usr/libexec/cups/filter/ppmtospl2. Посмотрим папку в которую установщик(не могу удержаться от слов как он выглядит!! лучше бы в текстовом режиме сделали - меньше зависимостей потянулиб). Смотрим папку которую вы указали для установки пакета, по дефолту было /usr/local/linuxprinter. Просмотря содержимое этой папки можно найти то самое - filter/ppmtospl2.

Делаем симлинки(сразу для всех файлов):

ln -s /usr/local/linuxprinter/filters/* /usr/libexec/cups/filter/

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

Debian: обновление MySQL 5.0 к 5.1

Обновил наконец в сквизе мускул, и вот что вылезло:

Настраивается пакет mysql-server-5.1 (5.1.37-2) ...
Устанавливается новая версия файла настройки /etc/init.d/mysql ...
 * Stopping MySQL database server mysqld       [ OK ] 
 * Starting MySQL database server mysqld        [fail] 
 * Please take a look at the syslog

Read more

Удобный доступ к конфигу/массиву

Долго думал как назвать пост. Иногда очень достают километровые строки для доступа к массиву(как правило километры - именно в конфиге), например:

$this->config->config['siteconfig']['someavatar']['normal']['height']

А хочется что - то более лаконичное, вроде

$this->_siteConfig('someavatar', 'normal', 'height');

или может даже

$this->_siteConfig('someavatar/normal/height')

Read more

CodeIgniter: добавляем фильтр. Часть 1

Прочитав небольшой обзор фреймворка yii навеяло желание сделать одной очень нужной для CodeIgniter вещи - фильтра. Подробнее о том что это. В кратце - метод который вызывается сразу после конструктора контроллера перед выполнением метода, который был выбран фреймворком на основании правил роутинга.

Область применения - самая разная: различные проверки прав, xss фильтрация, установка каких-либо полей класса, загрузка и инициализация моделей/библиотек/хелперов и прочего.

Read more

Chaos Constructions’2009

Ну вот и пришло время ежегодного компютерного фестиваля "Chaos Constructions 2009". Его поводят уже в 12 раз. Демосцена, сети, хак, электроника, ну и просто хорошие люди - всё есть там :)

Надо бы выбраться сходить.

SE p1i: траблы в wifi

В целом в SonyErricson P1i вифи работает, очень даже прилично. На улице к некоторым точкам не коннектится, ну да ладно, сигнал слабый, малоли..
А вот совершенно странная вещь - не хочет работать с wifi в домашней сети. Совершенно странные, разные симтомы от подключения к подключению: открывает страницу и перестаёт работать, вообще не открывает, по ип заходит, по днс нет, часть сайтов открывает, то перестаёт, скачивает половину страницы и замерает. И не вычислить чтож такое. Проблеммы с софтом телефона я практически сразу исключил: ибо к другим точкам коннектится на ура. У меня стоит dhcp(с привязкой по маку), сначала думал что то из за него. Поставил статик-ип. Ситуация поменялась, но траблы примерно такие же. Менял MTU, RTS, это какбе влияет, но в целом - тоже самое.

Read more