О web технологиях с любовью
In: web2.0
13 Дек 2007…проводится публичное тестирование русскоязычных доменов?
Это example.test, но на русском :) Видимо буржуям не сообщили что в русском языке есть слово “тест” :)
На часах 7.42 утра, а я еще не уходил с работы… Очень срочно нужно доделывать проект, в 11 утра презентация.
Зато параллельно с работой над этим проектом нашел очень неприятный баг в Kohana, заключается он в том что глобальный XSS фильтр, на который многие пользователя надеются, не работает. Совсем.
Подробнее здесь
In: Kohana| codeigniter| framework| php
3 Дек 2007PHP фреймворк Kohana о котором я уже писал обновился наконец до полноценной версии 2.0. Для тех кто не в курсе, версия 1.0 была по сути копией CodeIgniter’a, и никаких особых бенефитов не давала.
Теперь же полноценный релиз, новый сайт фреймворка, и ожидание нормальной документации. Пробую её в своём новом проекте, посмотрим что из этого получится. По возможности буду описывать свои впечатления.
Пока нравятся следующие вещи (в сравнении с CodeIgniter):
class Welcome_Controller extends Controller {
}
class MY_Controller extends Controller {
}class Controller extends Controller_Core {
}Вобщем сделали многое чуть лучше, минусов пока я вижу всего три:
Хочу сам не забыть посмотреть, и с вами поделиться заодно:
Framework.php (Frog)
Последнее время Убунту сообщество очень обеспокоено проблемой убивания Ubuntu 7.10 Gutsy жестких дисков.
Происходит это потому, что Ubuntu, используя настройки из firmware вашего жесткого диска, очень часто паркует головку диска, таким образом постоянно происходит реинициализация, и соотвествующий щелчек. Я долго не мог понять, почему мой Dell Inspiron 1520 переодически щелкает диском, пока не наткнулся на тему на форуме.
Проверить состояние вашего диска, и подвержен ли он этому багу, можно установив пакет smartmontools
Запускаем команду
sudo smartctl -a /dev/sda | grep Load_Cycle
и смотрим сколько раз у нас уже происходила реинициализация. В моём случае это 67171 (столько натикало фактически за пару недель, работы в Gutsy со щелчками). У каждого жесткого диска заявленное максимальное количество реинициализаций разное, но в среднем это от 200 000 до 600 000. Так что делайте выводы.
Решение для меня такое:
Редактируем /etc/hdparm.conf, добавляем в него следующие строки:
/dev/sda {
apm = 255
spindown_time = 0
}
Затем
sudo update-rc.d hdparm defaults
чтобы эти изменения применялись после каждого ребута.
Это эквивалентно выполнению следующих команд:
hdparm -B255 /dev/sda
hdparm -S0 /dev/sda
за исключением того, что команды эти нужно будет набирать каждый раз после ребута, или создавать соответствующие стартап скрипты.
Источник знаний как всегда ubuntuforums.org
P.S. В данной ситуации Ubuntu, да и все линукс сообщество в его лице, выставленно не в лучшем свете, и любители holy wars обязательно напишут что Linux гадость, а Windows в радость. На самом деле все легко объясняется: производители предоставляют Microsoft подробные тех. спецификации своего железа, благодаря которым Microsoft может прикрывать подобные дыры на уровне драйверов, а Linux сообществу к сожалению приходиться тыкать пальцем в небо. А жаль, весьма перспективная ОСь на самом деле…
In: codeigniter| php
14 Окт 2007Работая с PDO обнаружил такую фишку - все объекты *LOB в оракле он не выбирает при fetch, а вместо этого выдает ссылку на объект типа (stream). Это PHP stream, чтобы его получить нужно выполнить stream_get_contents(). Понятно зачем это сделано, все к оптимизации и удобству, но я бы опционально разрешил вернуть все назад, и выбирать LOB’ы сразу в значения, как это делал например PEAR:DB.
В итоге чтобы выбрать текст новости из поля типа CLOB в Oracle мне пришлось делать так:
function getNewsContent($id) {
$newsq = $this->DBO->prepare("select id,subject,news_body,create_date from news where id=:id");
$newsq->execute(array(":id" => $id));
$newsq->bindColumn(3, $news_body, PDO::PARAM_LOB);
$data = ($newsq->fetch(PDO::FETCH_OBJ));
$data->NEWS_BODY = stream_get_contents($news_body);
return $data;
}
Немного не удобно, но привыкнуть можно.
Кроме того, бился сегодня головой об стену, по поводу того что выбирая фреймворк не наткнулся на Kohana
Она еще конечно сильно бета, но этот фреймворк по заявкам разработчиков - именно то что мне нужно. Там и PDO, там и memcached… Эх, вот всегда так…
In: codeigniter| php
12 Окт 2007Вы все еще полагаете что в мануале CodeIgniter’а не врут о том что метод $this->db->escape(); спасет вас от Sql Injection?
Учитывая что содержание этого метода в драйвере для Oracle
function escape_str($str)
{
return $str;
}
Доверяй, но проверяй :))
Этот блог является маленьким складом мыслей, ссылок, и всяческих полезностей. Ведется для себя, но если будет кому-то интересен - я только рад.