В серверной дайри.ру по ходу прорвало трубопровод с антидепрессантами.
URL записи
Фичи: во-первых, цель — чтобы все ресурсы страницы были отданы за 1 соединение (очень заметно, если на странице подключается много мелких файлов), во-вторых, простота настройки.
Установка в CentOS 6:
1) качаете и устанавливаете mod-spdy-beta_current_x86_64.rpm (64 бита) или mod-spdy-beta_current_i386.rpm (32 бита)
2) перезагружаете апачу
всё, у вас SPDY. В nginx тоже должно быть просто, но у меня Apache
Недостатки (а как же без них):
1) Работает только через SSL (пока)
2) несовместим с Apache mod_php
Тут в принципе всё решаемо. PHP перенастраивается на работу с FastCGI — и лучше сделать так как можно скорее, т.к. от mod_php много и других проблем, таких как чушь с правами на файлы и требование неоптимальной версии апача — Apache MPM Prefork
С SSL чуть хитрее — многие помнят (а у многих и до сих пор крутится соответствующая древность на серваках) те несладкие времена, когда для поднятия сервака на https:// требовалось каждому хосту раздать по IP-шнику. Так вот, эти времена прошли и можно без нервов сделать веб чуть безопаснее
Надо убедиться что
1) ваш OpenSSL версии 0.9.8k и старше (и TLS в нем не выключен)
2) апача собрана с этой версией OpenSSL
3) установлен mod_ssl
Для CentOS 6 (не 5!) всё собрано соответственно, так что надо просто установить
Всё! У вас сервак с поддержкой SNI, которая позволяет обходить ограничения старых версий SSL
Рекомендуется еще в конфиг Apache добавть такую строку: SSLStrictSNIVHostCheck (on|off)
on закроет доступ старым браузерам, не умеющим работать с SNI (премногоуважаемый всеми IE6, Firefox младше 2.0, Safari младше 3.2.1, Opera младше 8.0, Google Chrome такое с рождения умел), off позволит им заходить, тем не менее, устрашая "неверными" сертификатами. Я подумал чутка и поставил on. Ибо нефиг
SPDY добывать здесь: code.google.com/p/mod-spdy, инфа про TLS и Инфа про SNI и TLS тут: wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
Фичи:
- Плагин полностью заменяет Gravatar на Libravatar в WordPress, включая всё default images (лого только меняется соответствующе)
- Services_Libravatar содержит мой патч, исправляющий работу с портами в SRV
- Попытался сделать поддержку BuddyPress (там свой алгоритм генерации изображний-аватаров, причем писец какой запутанный) — вроде работает
WordPress Plugins: wordpress.org/plugins/libravatar-replace
BitBucket: code.sunchaser.info/libravatar
…Он сидел в непримечательной белой комнате
без окон напротив человека с ничего не выражающим лицом, одетого в
строгую чёрную мантию.
Четвертый день занятий выпал на вечер
воскресенья. Когда платишь учителю такие деньги, то заниматься можно в
любое, чёрт побери, время, не обращая внимания на такую ерунду, как
понятие выходного дня.
— Здравствуйте, мистер Поттер, —
невыразительным голосом сказал телепат, после того как произнёс полный
набор заклинаний для обеспечения приватности.
— Здравствуйте, мистер Бестер, — устало ответил Гарри. — Может, в этот раз пропустим первоначальное потрясение?
— Вам удалось меня удивить? — слегка
заинтригованно спросил мистер Бестер. — Ну что ж. — Он поднял палочку и
посмотрел Гарри в глаза. — Легилименс.
Наступила тишина. Затем волшебник в чёрном вздрогнул, как будто ему наступили на ногу.
— Тёмный Лорд жив? — выдавил он. Затем глаза телепата резко расширились. — Дамблдор становился невидимым и проникал в спальню для девочек?
Гарри вздохнул и посмотрел на часы. Опять около трёх секунд...
— Итак, — произнёс мистер Бестер. Его голос
ещё не восстановил свою невыразительность полностью. — Вы искренне
верите, что откроете секретные законы магии и станете всемогущим.
— Точно, — спокойно сказал Гарри, всё ещё глядя на часы. — Я настолько самоуверен.
— Интересно. Кажется, Распределяющая шляпа считает, что вы будете следующим Тёмным Лордом.
— А ещё вы знаете, что я изо всех сил
стараюсь им не стать, и вы видели, что у нас уже была длинная дискуссия
о том, хотите ли вы учить меня окклюменции, и в конце вы решили, что
будете, так что, может, пропустим всё это и двинемся дальше?
— Хорошо, — сказал телепат, как и в прошлый
раз, ровно шесть секунд спустя. — Готовьтесь. — Он помолчал, потом с
некоторой тоской в голосе добавил: — Хотел бы я запомнить этот трюк с
золотом и серебром.
Гарри сильно тревожило, насколько повторимы
человеческие мысли, если возвращать людей в исходное состояние и
подвергать одним и тем же воздействиям. Это разрушало иллюзии, которых у
хорошего редукциониста вообще-то и быть не должно .
(Гарри Поттер и Методы рационального мышления)
Например, можно написать такой генератор, читающий построчно файл:
function getLines($file) {
f = fopen($file, 'r');
while ($line = fgets($f)) {
yield $line;
}
fclose($f);
}
'yield' означает «вернуть значение и продолжить с этого места при следующем вызове функции». Имея такой генератор, можно сделать вот такую печать файла:
foreach (getLines("file.txt") as $line) {
echo $line;
}
Удобно? Очень удобно. Оператор 'yield' выдаст все строки файла, а потом, когда файл закончится, произойдёт обычный 'return' из функции, который закроет генератор (и закончит цикл).
Но как известно, если всё идёт хорошо, значит, вы чего-то не заметили. Немного изменим наш цикл:
foreach (getLines("file.txt") as $n => $line) {
if ($n > 5) break;
echo $line;
}
Предположим, нас интересуют только первые шесть строк файла, а дальше мы хотим прервать цикл оператором 'break'. Имеем на то полное право. Но что в этом случае произойдёт внутри генератора? А ничего. Он останется стоять на последнем исполненном yield-е и никогда не дойдёт до строки 'fclose($f)'. И наш файл останется незакрытым.
Мы получили утечку ресурса (открытого файла). Понятно, что внутри генератора могут быть открыты любые ресурсы и объекты, и их необходимо правильно и предсказуемо закрывать. Но как это сделать, если юзер может в любой момент сделать break? Обычная документация (www.php.net/manual/en/language.generators.overv...) никаких намёков не даёт.
Так вот, оказывается (и за это спасибо юзеру weirdan с Хабра: habrahabr.ru/post/189796/#comment_6594776), что читать в этом случае надо не документацию, а RFC по генераторам: wiki.php.net/rfc/generators#closing_a_generator. А в нём сказано, что при освобождении ссылки на генератор, у него внутри обязаны выполниться все блоки 'finally'. И тогда мы получаем очень простой, красивый и безопасный код:
function getLines($file) {
f = fopen($file, 'r');
try {
while ($line = fgets($f)) {
yield $line;
}
} finally {
fclose($f);
}
}
В этом случае блок 'finally' выполнится и при нормальном выходе из цикла по генератору и при выходе по break-у. Ура.
Так что если вы пишете на PHP — имейте это в виду. Потому что, кажется, больше нигде про это узнать невозможно — ни в одной из читанных мною статей по генераторам не было ни слова об утечке ресурсов.
ru-php.livejournal.com/1566325.html
Инструменталка:
Текст (возможны неточности, взят из комментов к 1 видео):
Caprica let us celebrate,
Raise our hands despite the weight
And all her joys we extol,
Caprica abides!
Caprica let us perservere,
Blind ourselves to doubt and fear (From the BSG Wiki: Shield ourselves from doubt and fear)
And to the burns of the soul (From the BSG Wiki: And all the sorrows of the soul)
Caprica abides!
Caprica the humble beast,
Much as more than shield,
Who gave them twins and all the feast
And save them from disease
Caprica let us tolerate,
Differences may seperate,
Yet for now on and all and make them fall,
So say we all,
So say we all,
Caprica abides!
Just bought a hair mask with "nanotechnology". If I turn into the Borg queen you have been warned.
— Felicia Day (@feliciaday) August 9, 2013

Стырить как всегда можно из моего репо для мелочей — code.sunchaser.info/miscellaneous
"В время съемок первого сезона "Вавилона 5" у О'Хары появились симптомы шизофрении. На середине фильма его галлюцинации усугубились, а стресс от отыгрывания персонажа, страдающего таким же психическим расстройством, дошел до предела. О'Харе становилось всё сложнее продолжать работу, его поведение стало непредсказуемым, часто возникали трудности с коллегами. О'Хара обратился за медицинской помощью в связи с психическим расстройством, однако боялся, что уход главного героя "Вавилона 5" в длительный отпуск по болезни погубит сериал, только-только набравший обороты.
Дж.М. Стражинский, создатель сериала и главный писатель, предложил приостановить шоу на несколько месяцев, чтоб обеспечить О'Харе лечение; однако О'Хара отказался подвергать риску работу стольких многих людей. Стражинский согласился сохранить состояние О'Хары в тайне, чтоб защитить его карьеру. О'Хара согласился закончить первый сезон, однако был исключен из второго сезона, чтоб пройти лечение. Он появился в камео в самом начале второго сезона и вернулся в третьем сезоне в двойном эпизоде "Война без конца", который поставил точку в истории его персонажа. Больше он в "Вавилоне 5" не появлялся.
Хотя лечение прошло в определенной мере успешно, он так и не выздоровел до конца. Стражинский пообещал, что сохранит тайну о его состоянии до самой смерти. О'Хара велел ему "сохранить тайну до МОЕЙ смерти", заметив, что фаны заслуживают того, чтоб в конце концов узнать истинную причину его исчезновения, и что его опыт может всколыхнуть внимательность и понимание к людям, страдающим психическими расстройствами. 25 мая 2013 года, спустя 8 месяцев после смерти О'Хары, Стражинский исполнил своё обещание и, наконец, раскрыл подоплеку ухода О'Хары из "Вавилона 5" на Phoenix Comicon."
[источник] [видеопруф]
P.S. За что они Элронда так?

ММО-шная
На самый первый взгляд, те же яйца, только в профиль — если просто заменить www.gravatar.com на cdn.libravatar.org, взлетит. Это уже хорошо, т.к. Gravatar без гадких Automattic мне было бы достаточно, но нет, всё круче — можно поднять свой сервис и сделать его публично доступным! (Подходит, правда, не для конечных пользователей, а для владельцев доменов, т.к. дискавер идет через SRV-записи DNS) + Приятный бонус в аватарах не только по email, но и по URL (чтобы работало на libravatar.org они должны быть проверены через OpenID, на своем — не обязательно)
Казалось бы у нас теперь 3 несовместимых системы — Libravatar, Pavatar, Gravatar, но и тут есть бонус — Libravatar, если не найдет картинку у себя, покажет Gravatar, так что если вспомнить, что Pavatar популярности не сыскал, можно обойтись этой новой штукой.
Ну и, естественно, я уже накатал чекер — sunhome.im/static/libravatars.html
На адрес *****@sunchaser.info выслано письмо активации, подтверждения мы ожидаем до 15.07.2013 05:38. До истечения этого срока, вы не можете повторно выслать код на этот адрес. Подождите или воспользуйтесь другим адресом электронной почты.
Ващужемать!!!!111 у меня DNS упал и ваше письмо уже давно отклонено почтовиком. Я 3 дня чего ждать должен?

Процесс переноса домена очень прост: нужно запросить у нового регистратора подтверждение согласия принять домен и получить у старого регистратора пуш-пароль, который следует сообщить новому. Все эти операции были проделаны, осталось лишь дождаться результата.
Внезапно, наш старый регистратор idotz.net вместо того чтобы подтвердить перенос и попрощаться с нами, попросил «удалить незаконный контент с сервиса» и «подтвердить данные записей Whois документально». Idotz выделил на это 48 часов.
Я не придал особого значения этому письму и создал тикет у них в системе с вопросом о том, какой именно контент нужно удалить и что же будет через 48 часов. Ответ был, увы, в грубой форме:
Что в вольном переводе означает «Коль вы решили спорить с нами, вместо предоставления подтверждающей документации, ваш счет навсегда заблокирован. Домены будут заморожены в соответствии с требованиями ICANN».
Idotz повели себя неадекватно, очевидно, я ни в коем случае ни с кем не спорил, они решили меня наказать и тут же заблокировали домен, не дожидаясь окончания своих же 48-и часов.
http://habrahabr.ru/company/prostopleer/blog/186314/