У Гугла есть полезный сервис Google Webmasters Tools, в котором можно посмотреть скорость загрузки вашего сайта. Выглядит это так (кликабельно)
Нет, я серьезно. Если взять средний московский офис, то хорошо видны постоянные стрессы у менеджеров, звонки, вынос мозга клиентами. И только программистов никто особо не трогает. Учитывая зарплату программистов, то вообще прекрасная профессия получается. Хотя вышесказанное относится не ко всем айтишникам. Например, админам ебут мозг будь здоров.

Пост о создании небольшой клиентской базы на бывшей работе.
Картинки кликабельны (далее...)

Статья для новичков. Меня иногда спрашивают, с чего начать изучение SEO и вообще как сделать, чтобы мой говносайтик, который я сделал вчера, вылез на первое место по запросу «купить пластиковые окна». Если вы совсем новичок (не знаете что такое тег title), то лучше начать с книжки Ашманова. Ну это совсем для чайников. (далее...)
Не знаю почему, но по умолчанию настройки MySQL рассчитаны на десктопы 90-х годов. Например, 8Mb памяти под индексы InnoDB. Помните, как Билл Гейтс заявил, что «640 Кб памяти должно хватать каждому». Дефолтные настройки MySQL из этой серии.
Для начала моя выжимка из конфига (4G RAM, AMD Athlon 64 X2 Dual 5600+)
# ТОЛЬКО UTF! ТОЛЬКО ХАРДКОР! collation_server=utf8_general_ci character_set_server=utf8 default-character-set = utf8 # по умолчанию пускай будет InnoDB default-storage-engine = InnoDB key_buffer_size = 512M innodb_buffer_pool_size = 512M innodb_additional_mem_pool_size = 16M innodb_flush_method = O_DIRECT innodb_flush_log_at_trx_commit = 2 innodb_thread_concurrency = 8 join_buffer_size = 8M sort_buffer_size = 8M read_rnd_buffer_size = 8M tmp_table_size = 64M max_heap_table_size = 32M table_cache = 256 log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 1 query_cache_type = 2 query_cache_limit = 1M query_cache_size = 32M
Как известно, PHP — интерпретируемый язык, т.е. каждый раз при обращении к скрипту, этот скрипт компилируется. Если у вас 1 скрипт, то ничего страшного нет, так как время компиляции не большое. Но в современных CMS и фрэймворках при отображении страницы используется 10-300 отдельных php-файлов (проще говоря, инклуды). Чем больше инклудов и чем они тяжелее, тем дольше выполняется процесс компиляции. (далее...)
Статья для новичков. В MySQL есть встроенное средство для отслеживания медленных запросов.
В конфиге нужно просписать
log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 1
Хорошая статья про собеседование с программистами.
LiveStreet — открытый блоговый движок по функционалу напоминающий Хабр. Особенно рекомендую новичкам для изучения внутренностей в плане правильной архитектуры. Все слышали про MVC, видели красивые схемы в книжках, но для практики нужно посмотреть LiveStreet. И ни в коем случае нельзя изучать архитектуру движков по WordPress — там полнейший ад из сотен инклудов, функций и PHP, перемешанного с HTML и SQL-запросами.
В Nginx есть простая конструкция для кэширования статических файлов на клиенте. Тем самым страницы загружаются быстрее, а сервер не нагружается повторными запросами. Картинки, стили практически не меняются, поэтому ставим 10 лет и не паримся. Даже если файл стилей изменился, то надежней всего добавить какой-нибудь мусор в GET-параметры (например, /style.css?version=23)
server {
...
location ~* ^.+\.(jpg|jpeg|gif|sfw|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /.../www/ekimoff.ru;
access_log off;
expires 10y;
add_header Last-Modified: $date_gmt;
error_page 404 = @fallback;
}
...
}
Результат в FireBug


Вот прикупил внешний HDD Transcend TS500GSJ25M3 500Gb 2.5' USB 3.0 специально для бэкапов. На ноуте всего 80 Гб, да и жалко будет просрать все бэкапы при потере ноута, а вот хард лежит всегда дома. Единстенный минус - на ноуте всего 2 USB, а передача данных и питание HDD идет по двум USB, поэтому приходится отключать мышку и пользоваться тачпадом.
