Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы. В этой статье я бы хотел представить на суд общественности свой сборник советов […]
Защита от DDOS атаки случайными аргументами при помощи Nginx
Я встретился с новым типом ботнета. Если старый долбил только в главную, то новый действует иначе. Он посылает множество запросов вида GET someurl/?t1555ss5326=5326, где someurl — найденный ботом php скрипт. Но если атакуемый сайт поддерживает ЧПУ, то такие запросы к нему должны отсутствовать в принципе. ЧПУ сейчас является стандартом де-факто, […]
Самый короткий код для определения IE (ниже IE8)
Выглядит так -[1,] Пример использования if( -[1,] ) { alert(‘Not IE!’); }
PostgreSQL. Список таблиц с очень частой записью на диск
Предел возможностей БД часто упирается в дисковые операции. Поэтому стоит оптимизировать эти операции, меняя логику, архитектуру, масштабируя и пр. Запрос выведет статистику по таблицам в обратном порядке по сумме операций записи, т.е. сверху будут таблицы с наиболее интенсивной записью.
Как проверить диск на ошибки и бэд-сектора в Linux
Примером хорошего тона и здравого смысла является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная проверка диска на ошибки записи и т.п. Разберёмся что такое битые сектора. Любимая Википедия говорит следующее:
Соответствия команд SVN и Git
Я создал небольшую шпаргалку соответствий команд систем управления версиями SVN/Subversion и Git. Пользуйтесь! svnadmin create repo git init git add . svn import file://repo git commit svn diff | less git diff svn diff -rrev path git diff rev path patch -p0 git apply svn status git status svn revert path git checkout path svn add file git […]
Партицирование (partitioning) больших таблиц PostgreSQL
Сегодня я хочу вам рассказать о партиционировании больших таблиц в моей любимой PostgreSQL. Итак, начнём с определения: Партиционирование (partitioning) — это разбиение больших таблиц на логические части по выбранным критериям. Партиционированные или секционированные таблицы призваны улучшить производительность и управляемость базами данных. Вроде понятно. Теперь идём дальше. Как же разбить таблицу […]
Тюнинг Windows 10/8/7 на SSD
SSD-диски с каждым годом становяться всё доступнее и всё больше в объёмах. Так и я стал владельцем SSD-диска Kingston SSDNow V+200 60GB 2.5″ SATAIII, «распилив» его пополам, я установил на него любимый Linux Xubuntu 12.10 и новенькую Windows 8 Pro. О тюнинге последней я расскажу ниже. А вот о тюнинге Linux […]
PostgreSQL. Список всех таблиц
Вывести список всех таблиц при помощи SQL довольно просто: SELECT n.nspname AS «schema», c.relname AS «table» FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE n.nspname NOT IN (‘pg_catalog’, ‘pg_toast’) AND c.reltablespace > 0 AND c.relkind = ‘r’ ORDER BY c.relname ASC В результате получим […]
PHP. Достаём данные из Google Analytics через API используя Service Account
Сегодня я хотел бы поделиться знаниями по извлечении данных из Google Analytics, используя их API v3 на стороне сервера (server-side), т.е. без участия браузера пользователя. Самое странное, что в Сети в основном описаны все примеры с использованием эмуляции браузера и аккаунта пользователя (пара email+пароль). Мы так делать не будем, т.к. […]