Роман Теличко

Заметки веб-разработчика/админа

Перепост: FreeBSD + PostgreSQL: тюнинг сервера БД

// Июнь 8, 2011 | 810 просмотров | комментариев (0)

Наверное, моя статья будет не интересна матерым сисадминам и покажется копипастом. Но я адресую ее тем, кто, как и я, будучи только разработчиком, впервые столкнулся с необходимостью еще и администрировать сервер, при этом решая задачи высоконагруженной БД. И чтобы гугл вас не проклял, постараюсь собрать в одном месте основные приемы для разгона сервера БД, которые мне успешно удалось реализовать.
Читать далее…

Перепост: JavaScript: Пять способов вызвать функцию

// Май 24, 2011 | 266 просмотров | комментариев (0)

Мне часто приходится сталкиваться с JavaScript-кодом, ошибки в котором вызваны неправильным понимаем того, как работают функции в JavaScript (кстати, значительная часть такого кода была написана мной самим). JavaScript — язык мультипарадигменный, и в нем имеются механизмы функционального программирования. Пора изучить эти возможности. В этой статье я расскажу вам о пяти способах вызова функций в JavaScript.
Читать далее…

Ubuntu. Запись с Рабочего стола в Ubuntu

// Март 24, 2011 | 23 просмотров | комментариев (0)

Устанавливаем gtk-recordmydesktop

sudo apt-get install gtk-recordmydesktop

И запускаем его.

После успешной записи конвертируем .ogm в .avi с помощью mencoder:

mencoder input.ogm -ovc xvid [-oac mp3lame] -xvidencopts pass=1 -o output.avi

Если его ещё нет — устанавливаем:

sudo apt-get install mencoder

Перепост: Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

// Февраль 22, 2011 | 1749 просмотров | комментариев (0)

Вы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

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

Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

Читать далее…

Перепост: Сборник советов и фактов по оптимизации PHP-скриптов

// Январь 26, 2011 | 206 просмотров | комментариев (0)

Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать далее…

Перепост: Защита от DDOS атаки случайными аргументами при помощи Nginx

// Сентябрь 20, 2010 | 218 просмотров | комментариев (0)

Я встретился с новым типом ботнета. Если старый долбил только в главную, то новый действует иначе. Он посылает множество запросов вида
GET someurl/?t1555ss5326=5326,
где someurl — найденный ботом php скрипт.
Но если атакуемый сайт поддерживает ЧПУ, то такие запросы к нему должны отсутствовать в принципе. ЧПУ сейчас является стандартом де-факто, по этому можно смело отрезать такие запросы, логируя IP ботов.
Для этого очень удобен nginx, и его переменная is_args, которая имеет значение «?», если в URI идут аргументы. Базовая конструкция выглядит так:

if ($is_args = "?") { 
    return 444; 
}

Очень просто и красиво, правда?
Вот как выглядит LA после включения этой защиты:
load average: 1.50, 3.09, 6.96
Текущий ботнет из ~20000 зомби, делают 5-8k одновременных запросов.

Оригинал: https://habrahabr.ru/blogs/infosecurity/104601/

Самый короткий код для определения IE (ниже IE8)

// Январь 9, 2010 | 34 просмотров | комментариев (0)

Выглядит так

-[1,]

Пример использования

if( -[1,] )
{
    alert('Not IE!');
}

IE выдаст ошибку после запятой из за того что в хэше, где используется сочетание ключ-значение в отличие от массивов, не будет найден очередной ключ.
И выдает «null» или «undefined», а минус перед массивом преобразует это в число.
У нормальных браузеров таких проблем нет.

Перепост: Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

// Сентябрь 20, 2009 | 682 просмотров | комментариев (0)

Введение

С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.

Читать далее…