Arm1.ru

Концерт Animal ДжаZ в Авроре 25 декабря 2011

Классный был концерт, мне тогда показалось, что один из лучших, проходивших в Авроре.

comment comments

Вулкан Тейде на Тенерифе

Поднялись на вулкан Тейде, что на Тенерифе. Ехать туда чуть больше часа на автобусе до подножия. Потом пришлось подождать подъемник, т.к. из-за ветра он не работал. Уже думали, что так и не попадём туда. Но он всё-таки заработал. Подъёмник поднимает на высоту 3500 метров над уровнем моря. После чего по специальному разрешению (кажется национальной гвардии), которое можно получить через сайт, можно подняться к самому кратеру. В итоге ты оказываешься на высоте 3710 метров, на самой высокой точке Испании. Эти 210 метров по дорожке из камней в виде лестницы дались нелегко. Холод, ветер, недостаток кислорода. Выдыхаешься через каждые 20 метров, приходится останавливаться, чтобы отдышаться. Сердце бешено колотится. Но оно того стоит. Неописуемая красота, стоишь над облаками, видно сверху даже остров Gran Canaria. Плохо соображаешь, но я залез на самый высокий камень, который нашёл. Кратер ничего особенного из себя не представляет - округлая впадина, запах серы и местами из под камней пробивается белый дымок. Но виды там потрясающие. Снял немного видео. Почти без какого-либо монтажа просто положили видео на музыку.

Музыка: Jon Hopkins - Insides.

comment comments

Пара мыслей о выступлении Павла Дурова на DLD 2012

Павел Дуров на DLD 2012

Сегодня на 3-м дне конференции DLD 2012 (Digital, Life, Design). Пара мыслей, просто, чтобы порассуждать.

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

comment comments

Ошибка Nginx Too many open files

Про ускорение. Пара полезностей.

Как известно, у браузеров ограничено число одновременных соединений на домен во время загрузки сайта. Таким образом элементы сайта грузятся последовательно. Каждая картинка/js/css-файл - отдельное соединение. Если таких элементов много на страницах сайта - то ускорить его загрузку можно, если вынести статику на поддомены. Например s1.domain.com, s2.domain.com и т.д. Таким образом, если в браузере у нас, скажем, лимит на 5 соединений на каждый домен - то теперь у нас будет по 5 соединений на каждый поддомен. Если грамотно всё раскидать, то теоретически скорость загрузки может вырасти чуть ли не в 5 раз.

Обратная сторона. Количество одновременных соединений с сервером также растёт. При той же посещаемости сайта - число соединений растёт примерно в 5 раз (при наличии 5 поддоменов). Если фронтендом стоит Nginx - то у него есть ограничение на число соединений в конфиге. А, поскольку соединений теперь в 5 раз больше, то и работы ему приходится одновременно проделывать больше, чем ранее. Таким образом с нашим ускорением мы также и приближаем Nginx к ограничению одновременных соединений, в результате у пользователя может не открываться сайт или какие-то файлы просто не отдаваться во время загрузки.

В логах Nginx будет ошибка:

"...socket() failed (24: Too many open files) while connecting to upstream..."

Посмотреть текущее ограничение из консоли:

ulimit -n

Посмотреть красиво в виде:

nginx: worker process

Limit                     Soft Limit           Hard Limit           Units
Max open files            1024                 1048576              files
Currently open files: 945

nginx: master process /usr/sbin/nginx
Limit                     Soft Limit           Hard Limit           Units
Max open files            1024                 1048576              files

можно, выполнив в консоли:

for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done

Изменить ограничение:

  • в /etc/security/limits.conf добавить строки:
    * soft nofile 16384
    * hard nofile 16384
  • от рута выполнить:
    ulimit -n 16384
  • рестарт Nginx, на всякий случай.

Пишут ещё, что можно просто прописать в конфиге Nginx:

worker_rlimit_nofile 16384

и перезапустить его.

comment comments

Полезная штука Prefix.pch

Открыл для себя полезную штуку в разработке под iOS - файл Prefix.pch - Precompiled Header.

Судя по описанию - Precompiled Headers компилируются, кэшируются и потом автоматически включаются в каждый компилируемый файл. Поэтому, если есть какой-то класс, который нужен везде или в почти везде в проекте - можно внутри Prefix.pch-файла, который автоматически создаётся в новом проекте, сделать include этого класса и он будет доступен везде. Мне вот совсем не нравилось в каждом View Controller'е снова и снова инклудить один класс, который нужен почти везде.

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

comment comments