mod_rewrite: Просмотр списка правил только один раз
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек : он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.Очень часто получаеются и бесконечные циклы(например добавление расширения - оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны - он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла лишние иттерации скорости работы не добавляют :-)
Хочу поделится достаточно простым и универсальным средством борьбы с такой особенностью, который обнаружил только-что :-)
GZip и nginx: влияние на производительность

Заказывая оптимизацию сервера у хостера — держи ухо востро

Это была бы рядовая и унылая статья про nginx и opcode-кеширование, если бы сервер не был до этого "прооптимизирован" техподдержкой хостера :-)
О том, что я обнаружил в процессе оптимизации, я и пишу эту небольшую заметку, дабы уберечь других от подобных фокусов хостеров. :-)
SSD : Что о них нужно знать

В общих чертах
Основное отличие SSD от HDD очевидно – там все во флеш памяти, чтение из которой очень быстро, запись – тоже достаточно быстрая, медленно только стирать. Также, у флеш-памяти ограничен ресурс по количеству стирания (разрушается диэлектрик, изолирующий заряд в ячейке памяти). Существуют 2 основных типа флеш-памяти: MLC и SLC. Основное отличие – в SLC на 1 ячейку 1 бит данных, в MLC – от 2 до 3 (соответственно, нужно уметь различать 4-8 уровней заряда). Т.к. порог ошибки в MLC-памяти намного ниже, то и ресурс получается меньше.SLC выдерживает порядка 100’000 стираний, MLC – 10’000 (старая, 2-х битовая), и до 3-5’000 (новая, 2-3 битовая, 34нм). Тенденция грустная – чем новее чипы памяти, тем меньше ресурс перезаписи.
Когда ресурс перезаписи исчерпывается – вы получите ошибку записи, но старые данные будут доступны, однако пока не так много людей смогли столкнуться с этим (вернее, я не видел ни одного).
Как не потерять почту когда умирают ДЦ или о надежности DNS
Многие недавно пострадали от одновременного падения тысяч серверов сначала в пожаре на hosting.ua, а затем при отключении на McHost. Зацепило и меня. Денег на умерших сайтах я не зарабатывал, однако почта постоянно нужна для деловой переписки. Несмотря на то, что почта у меня перенесена на Google (или как вариант на Yandex), ни одно письмо не могло до меня дойти, т.к. вместе с серверами умерли и Name-сервера, и отправители просто не могли прочитать MX-запись для моего домена. Итого, 26 часов я просидел без почты объясняя всем людям, с которыми я работаю, что им нужно дублировать все письма на другой ящик - достаточно унизительно и не профессионально.Как же заставить почту работать даже если все сервера хостера лежат?
Центральный процессор – дома с нуля
Если в последние лет 40 для выполнения задачи нужен микропроцессор – единственный рассматриваемый вариант это купить готовый. Ну или в крайне редких случаях «накатить» стандартное конфигурируемое FPGA ядро (например Nios II) с парой дополнительных инструкций. Многие сейчас даже не могут представить, что процессоры могут получаться каким-то другим путем :-) Это всё равно что считать что продукты беруться в магазине, а вырастить их самому – абсолютно невозможно.С одной стороны, зачем помнить основы технологии если все производится промышленно? На мой взгляд – чтобы быть уверенным, что технология не будет утеряна, что даже если случиться ядерная война компьютеры можно будет собирать из подручных материалов (так же как и с продуктами в начале 90 - многим пришлось возвращаться к технологии 100-летней давности из-за краха инфраструктуры производства и доставки).
Оказывается есть такие люди, которые до сих пор в качестве хобби делают центральные процессоры из дискретных компонент(транзисторов, реле) и микросхем низкой степени интеграции (счетчики, регистры). Единственные применяемые микросхемы – память (оперативная и перепрограммируемая).
В этой статье я хочу рассказать кратко об архитектуре и о нескольких реально работающих процессорах, сделаных в домашних условиях.
NTP: О точном времени

Уничтожение земли и оценка метеоритной угрозы
Недавно интернет сотрясали апокалипсические новости о том, что пролетающий вблизи земли метеорит заметили лишь за 15 часов до "столкновения". Многие проявили скептицизм : "7 метров" - что такая крошка может сделать нашей огромной земле?Я покажу, что не только высоколобые умники могут считать непонятные цифры, но и практически каждый человек используя поиск в интернете может быстро найти нужные данные и инструменты даже для таких необычных задач как оценка метеоритной угрозы :-)
Из курса физики нам, пожалуй, нужно будет помнить (без формул) только то, что движущийся объект обладает кинетической энергией, и о законе сохранения энергии (если метеорит падает на землю – вся его энергия сохраняется, и практически вся выделится в виде тепла).
Масса метеорита
Ищем в гугле "Meteorite density", в первой же ссылке узнаем что плотность – около 3 грамм на кубический сантиметр (или 3 тонны на кубометр). Метеориты бывают и металлические - они будут плотнее, но падают реже.Диаметр метеорита тогда был 7 метров. Формулу объема сферы не помним? Ну и ладно.
Заходим на http://www.wolframalpha.com/index.html , пишем "Sphere volume", вставляем наши данные (радиус 3.5м) получаем объем 180 кубометров, и соответственно вес метеорита 180*3 = 540 тонн.
Опыт использования выделенного сервера на Intel Atom 330
Недавно я пытался привлечь внимание к серверам на процессорах Intel Atom. Многие встретили их со скептицизмом: «Разве может процессор для дешевых ноутбуков быть в сервере?». Сейчас услуга colocation nettop-ов на Atom-ах уже стала рядовой, и я готов поделиться с вами месячным опытом использования сервера на Intel Atom.
Стоит ли вам использовать Google AppEngine?
Внимание! Статья была написана в первые месяцы после старта Google AppEngine. Сейчас она полностью устарела.Disclaimer: Эта статья не о том, «какой я умный и какой Гугл тупой». Эта статья о некоторых неочевидных проблемах и особенностях Google AppEngine (GAE), о которых было бы неплохо знать тем, кто хочет начать работать с «империей зла»

Гугл сделал много отличных вещей – поиск, почта без спама… Гугл получает кучу наших приватных данных, но мы продолжаем пользоваться им, потому что оно так классно работает…
Некоторое время в IT-шных кругах поднялось достаточно шума об AppEngine, и я решил попробовать поработать с ним в моём новом проекте.
Я выбрал Python с гугловским framework-ом чтобы получить наилучшую совместимость и скорость. Начал я с тестов производительности, и результаты были… несколько разочаровывающими.
Тест | Запросов в секунду |
print 'Hello world' | 260 |
1 чтение из Datastore, запись в Datastore | 38 |
1 чтение из Datastore | 60 |
10 чтений из Datastore, 1 запись | 20 |
1 чтение из memcached, 1 запись в memcached | 80 |
1 чтение из memcached | 120 |
Обычное LAMP приложение, 6 SQL queries, http://3.14.by/ | 240 |