18Мар/100

Снижение трафика на сервере

Столкнулся с проблемой нового хостинга, где ограничение по трафику - 2Tb.
Сайт, с просмотром/скачиванием видео ~20.000 за сутки, кушает 120Gb.

Пришлось принять меры:
- ограничил скачивание видео для пользователей - 3 видео в сутки (пока элементарно, если применить мозг - ломается мгновенно)
- в nginx сделал элементарное ограничение по скорости и коннектам

в зоне http:
limit_zone download $binary_remote_addr 10m;

в location:
limit_conn download 2;
limit_rate_after 2048k;
limit_rate 128k;

restart nginx в debian:
/etc/init.d/nginx restart

просмотр трафика в realtime утилитой ifstatus

Количество одновременное воспроизводимых видео - 2
После скачки 2Mb скорость падает до 128Kb

9Мар/100

Улучшил свой блог

1. Замучил спам и поставил рекапчу на все комментарии, даже зарегистрированных пользователей:

http://wordpress.org/extend/plugins/wp-recaptcha/installation/

В инструкции перешел на сайте mailhide.recaptcha.net и получил ключ для своего блога.
2. Изменил тему, т.к. предыдущая не использовала новый функционал wordpress

http://wordpress.org/extend/themes/

Частично ее пофиксил: убрал аляповатую ссылку на rss, вернул ссылку more, поменял ссылки rss на гугловый feedburner.google.com
3. Сделал подписку на email
4. Поставил счетчики тИЦ и кол-во подписок

Метки записи: Нет комментариев
24Фев/100

Разработка простой онлайн игры. Часть 1

Простая игра, на подобии комбатс.ру с первым пришедшим на ум названием "Маги 2.0" :D
С детства мечтаю создать какую-нибудь игру. В свое время уже пробовал сделать, но это не в счет, т.к. планы были грандиозны, а я один... и было это ~6 лет назад, и знал я мало. Хотел сделать стратегию на подобии Front Mission 3. Т.к. опыт программирования был почти ни какой, осилил за месяц сделать обсчет выстрелов из нескольких видов оружия и на этом успокоился :D .
Тем временем, прогресс нас забросил на просторы интернета, а вместе с тем и онлайн игр. По этому моя первая игра будет онлайн. Ни сколько не претендую на интересность самой задумки игры (она банальна и стара) и на гениальность реализации. Просто хочется создать свою маленькую игру. Реализация будет без красивого дизайна - самое главное функционал. Пока начну с мини ТЗ. По мере желания, времени и остальных факторов буду разрабатывать само приложение и описывать в рубрике "Игры".

моя первая онлайн игра

16Фев/100

Юзабилити. Ссылка скачать

Всем знакома ситуация, когда для скачивания что-либо с сайта, требуется регистрация. Обычно, прям тут же, или что хуже, где-то еще, есть ссылка на регистрацию. Мы проходим нудную процедуру заполнения формы. Очень часто переходим по ссылке с почты обратно на сайт, подтверждая существования своей почты. Далее вспоминаем, что хотели скачать... ура, скачали!

Как же улучшить юзабилити для пользователя?

11Фев/100

SQL. Извращение над группировкой

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

Вариант 1.

SELECT id AS rubric_id, (
SELECT id
FROM `forum_topic`
WHERE rubric_id = `forum_rubric`.id
ORDER BY updated DESC
LIMIT 1
) AS last_topic_id
FROM `forum_rubric` ;

Структуры таблиц.

CREATE TABLE `forum_rubric` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID рубрики форума',
`status_id` tinyint(3) unsigned NOT NULL COMMENT 'ID статуса',
`name` varchar(255) DEFAULT NULL COMMENT 'Название',
PRIMARY KEY (`id`)
) ;

CREATE TABLE `forum_topic` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID темы',
`status_id` tinyint(3) unsigned NOT NULL COMMENT 'ID статуса',
`rubric_id` int(10) unsigned NOT NULL COMMENT 'ID рубрики',
`title` varchar(255) NOT NULL COMMENT 'Заголовок',
`added` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Создан',
`updated` timestamp NULL COMMENT 'Обновлен',
PRIMARY KEY (`id`),
KEY `rubric_id` (`rubric_id`,`updated`),
) ;

А вот как можно извратиться и сделать одним запросом:

одним sql запросом

28Янв/100

Три истории из жизни Стива Джобса

Сегодня читая rss в Google Reader наткнулся на два интересных поста
1. Выступление Стива Джобса перед стэнфордскими выпускниками в 2005 году
2. Плагин для WordPress, с постраничной навигацией.

Видео и цитаты Стива Джобса

30Дек/090

Unix. Количество файлов в директории

Столкнулся с проблемой подсчета количества файлов в директории в ОС unix, а именно freebsd. Специальной утилиты для этого не нашел, пришлось извращаться.
Решается задача при помощи двух стандартных утилит find и wc

find . -type f

выводит все найденные файлы в текущий директории

wc -l

выводит количество строк
соединяем:

find . -type f | wc -l

получаем к примеру такой результат:

%find . -type f | wc -l
1997

Метки записи: Нет комментариев
30Дек/090

Nginx – логические операторы «И», «ИЛИ»

Как написать location в nginx, который срабатывает, если два условия должны выполняться. Логично было бы написать так:

if ($http_user_agent ~* "Opera" AND $http_referer ~* "yandex.ru") {
bla bla bla
}

nginx не предусматривает в условиях логические операторы
Решение есть в виде хака:

set $a "";
if ($http_user_agent ~* "Opera" ) {
set $a 1;
}
if ($http_referer ~* "yandex.ru") {
set $a 1$a;
}
if ($a = 11) {
bla bla bla
}

Идея очень проста, создается переменная, в которую по мере срабатывания условий накапливается строка. Далее срабатывает какое-либо условие с учетом этой строки.

Может man читал не внимательно и кто-то подскажет более красивое решение этой проблемы?

Метки записи: Нет комментариев