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

среда, 24 декабря 2008 г.

Баг на почте

Сегодня нашел баг на pochta.ru

на страниц писем ссылка с идентификатором сессии - если зайти по рефереру, то заходишь в аккаунт другого пользователя.

Ну бага как бага - зашел, написал пользователю, что сломал его, потом написал в техподдержку.

При этом пользователю пришло кракозябрами, хотя отправлял через веб морду, в тех поддержку тоже пришло кракозябрами, о чем мне и сообщили в ответном письме :)

Круто :)

пятница, 12 декабря 2008 г.

Обновился

Ну вот, теперь я не подопытный кролик, а лабораторная мышь.

понедельник, 8 декабря 2008 г.

Кеширование

При кешировании высоко нагруженных проектов есть проблема протухания кеша.

http://softwaremaniacs.org/blog/2008/02/22/why-offline-crashed/

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

Вернуть старые данные неверно, если посетителей нет, то этот единственный посетитель увидит старые данные, тем самым если посетители редкие, то они будут всегда получать старые данные, однако есть вариант решения:

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

суббота, 6 декабря 2008 г.

Opera 10

Обновился позавчера до 10 альфы оперы, опишу что протестировано

Рульно - Во первых она очень быстрая, по сравнению с ней девятая тормозит сильно, я уже не говорю про двух известных тормозов - FF и то что называют браузером в MS.

В девятой был глюк с импортированием сертификатов - сертификат .usr не импортировался, тут это поправили.
Порадовало прохождение Acid3, однако если включить iscroll Ильи Бирмана то тест проходит на 97 процентов, неприятно.
В связи с тем что на работе сильно увлеклись рекламой на проектах поставил себе блокировщики рекламы, получилось здорово - на работе процентов 90 рекламы стало блочится, особенно с readme.ru, который своим бредом достал.

http://adblock.googlecode.com/svn/trunk/adblock.css
http://lexi.ucoz.ru/userjs/block-external-scripts.js

Хватило вот этого - для установки бросил файлы в ~/.opera/style/user и ~/.opera/js/ соответственно и включил стиль adblock - все заработало.
Понравилась проверка орфографии, русский словарь берется из OpenOffice - формат MySpell.

В общем круто :)

среда, 3 декабря 2008 г.

DoS атака на сайт

Поднимал VDS для сайта, на VDS владелец переехал в результате "DoS атаки" как ему сказали админы (блин, когда я про все это сюда напишу...)

дос атака заключалась в следующем - 7 тысяч посетитетей, на главной странице исполнялся этот код, всегда.

$all_category = $db->query('SELECT * FROM `~category` WHERE `is_active` = \'1\' ORDER BY `order` DESC, `id`')->fetch_all();

$all_images = $db->query('SELECT * FROM `~images` WHERE `is_moderate` = \'1\' ORDER BY `id`')->fetch_all();
$new_images = $db->query('SELECT * FROM `~images` WHERE `time` > ? AND `is_moderate` = \'1\' ORDER BY `id` DESC LIMIT 100', time() - $config['time_new_avatar'])->fetch_all();

$pop_images = $db->query('SELECT * FROM `~images` WHERE `popular` = \'1\' ORDER BY `id` LIMIT 100')->fetch_all();

каждый запрос занимал в результате около двух секунд, даные почти всегда были одинаковые, размер всего сериализованного 200К

Загрузка mysqld колебалась от 50 до 70%, после закрытия кешем ушла в мелкорасстворимый осадок - тоесть в ноль.

Пипец товарищи...

DoS атака это забрасывание сервера дискетками с MS DOS...