Профилирование MySQL запросов

profiler

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

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

Continue reading

Canvas – это просто!

Наконец-то появилось время разобрать принципы анимации с использованием HTML canvas элемента.

Вот что получилось:


Подробности под катом.

Continue reading

Поиграемся с HTML5 history API


Никакой военной тайны в статье не открою, но открою глаза для тех, кто не работал с history API. Чтобы понять нужно вам или нет, просто кликните сюда и понаблюдайте за адресной стройкой браузера. Если эта возможность не удивила – можете дальше не читать статью. (Прошу обратить внимание: мы меняем содержание адресной строки без перезагрузки страницы, это важно)

Continue reading

Избавляемся от Facebook рекламы c Greasemonkey

Для тех, кто может не знает, расскажу что для FF есть прекрасный аддон Greasemonkey, который позволят выполнять дополнительный javascript для страницы, тем самым позволяя ее изменять под наши нужды.

Continue reading

Anycase Timer

Решил написать таймер на javascript, который не сбрасывается при перезагрузке страницы, и даже при выключении браузера.

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

Кому интересны детали – можно покопаться в исходниках: для реализации использовал localStorage.

Настройка авторизации SSH через ключевую пару.

Столкнулся с необходимостью создания авторизации SSH основанной не на паролях, а на ключевой паре. Сюда выкладываю краткие заметки по процессу настройки(оказалось все довольно просто):

1. генерируем ключевую пару на стороне клиента:

$: ssh-keygen

Continue reading