Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Насколько важен порядок свойств в CSS?

Лучший ответ:
Общая логика сортировки: «от общего — к локальному и менее важному». Рекомендуется располагать свойства в следующем порядке:
1. Сначала положение элемента относительно других:
position, left/right/top/bottom, float, clear, z-index.
2. Затем размеры и отступы:
width, height, margin, padding…
3. Рамка border, она частично относится к размерам.
4. Общее оформление содержимого:
list-style-type, overflow…
5. Цветовое и стилевое оформление:
background, color, font…

Худший ответ:
!important и zoom: 1; — вот это признаки крайне плохого тона.
А порядок правил для селекторов не имеет никакого значения — это просто хэш, а порядок ключей в хэше никого не может волновать.
Есть личные предпочтения — мне удобней перечислять самые важные вначале блока, а не слишком важные в конце. Другие любят в алфавитном порядке. Как удобней, так и правильно.
Вопрос: Как изучить Ruby on Rails?

Лучший ответ:
Как делал я, офф туториалы по рельсам, rails for zombies, начинаем пилить сами хоть что-то без всяких левых гемов которые не прописаны в Gemfile при rails new, после учим тестирование(до этого недо разобраться в mvc, миграциях), роутинг, тестирование, только сначало надо хотябы немного знать ruby. Берём тестовое задание для джуна по рельсам, пилим, что незнаем - учим. Думаю проделать вот такой путь, что уже готово, а что еще предложит выучить, и обьязательно научитесь читать документацию(если этого скилла у вас нету).

Худший ответ:
Я начал с этого сайта railstutorial.ru
Вопрос: Canon EOS Rebel T3i 18 MP CMOS Digital SLR Camera

Лучший ответ:
Вопрос странный, у кэнона все очень четко разделено на свои сегменты рынка:
4 цифры в названии — буээ,
3 цифры — недорогие, получше,
2 цифры — еще получше,
1 цифра — 1d > 5d > 7d
Соответственно, к примеру, 600d лучше предыдущего 500d.
Т.е. руководствоваться очень просто, имея некоторое пороговое значение бюджета :)
Годные обзоры тут: www.imaging-resource.com/PRODS/T3I/T3IA.HTM

Худший ответ:
Советую вместо 18-55mm взять полтинник 1.4 или хотя бы 1.8.
Вопрос: Как можно узнать, заходит ли определённый человек на мою страницу ВК?

Лучший ответ:
Конечно, главным недостатком будет то, что пользователь может просто не перейти по ссылке.
А вот если перейдет, то можно сделать так: на сайте весите виджет вконтакте, например, для комментариев - этим пользуются всякие помоечные сайты, когда Вы видите свою аваторку habrahabr.ru/post/167873
Правда из статьи вроде как получается, что приложение быстро блокируется. Но Вас не касается, так как Вы ничего вроде противоестественного не делаете и не просите перейти по ссылке. Можете для вида туда даже статью написать.
Ну и так как это просто такой трюк - реальные данные Вы не получите, то остается только скриншот сайта при входе.
Сам не делал, не уверен, получится ли ) 
По ip получается довольно сомнительно, можно заходить через телефонный интернет, можно из гостей или кафе - все ip Вы не отследите.

Худший ответ:
Из справки:Можно ли посмотреть гостей моей страницы?
ВКонтакте нет и никогда не было возможности смотреть посетителей страницы. Будьте осторожны: cайты, программы и приложения, которые обещают такую функцию, не показывают Ваших «гостей» и угрожают безопасности Вашей страницы.
Вопрос: Поиск сдвига одного изображения относительно другого?

Лучший ответ:
Про OpenCV не подскажу, но я бы написал это вручную. Идея простая: Задаем функцию которая проверяет истинность (точнее обратное ей значение, типа "ложность") гипотезы что второе изображение является первым изображением, сдвинутым по осям ровно на значения X, Y. Эта функция рассчитывается (например) как сумма квадратов разностей значений соответствующих пикселов первого изображения и второго, сдвинутого на -X, -Y. Имея такую функцию дальше просто находим ее минимум методом градиентного спуска (начальные значения X=0, Y=0), полученные X, Y и будут рассчитанными значениями смещения второго изображения от первого.
С поворотом все аналогично, только добавляется еще одна одна переменная - градус поворота. Но функция проверки гипотезы становится значительно тяжелее в вычислительном плане: на каждый пиксел пойдет минимум одна тригонометрическая функция (относительно тяжелая для CPU), плюс этим обламывается SIMD оптимизация, которая дает многократное ускорение для первого варианта без поворота.

Худший ответ:
В OpenCV есть phaseCorrelate на выходе получите направление смещения.
Вопрос: Как добавить css класс к продукту WooCommerce?

Лучший ответ:
В post_class() посылается переменная $classes. Добавляйте свой класс туда. Если $classes это массив, то так:$classes[] = 'col-sm-6';
Если строка, то так:$classes .= 'col-sm-6';

Худший ответ:
Самый правильный вариант:<?php post_class( 'col-sm-6' ); ?>
Ну хоть иногда читайте документацию и не занимайтесь ерундой.
Вопрос: URL Русскими буквами?

Лучший ответ:
.htaccess файл:RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,QSA]
php код что бы привести в порядок урл:$request	= urldecode( $_SERVER["REQUEST_URI"] );
пример http://cms.celebro.ru/технологии

Худший ответ:
Вот вам пример ссылки с русскими буквами:Менса
эта же ссылка на jsfiddle jsfiddle.net/E3zDZ
На самом деле там их нет, а в кириллицу уже преобразует браузер.
Вопрос: Как исправить проблему с отображения фона лендинга на ios?

Лучший ответ:
Очень старая проблема и не только на iOS, а на большинстве браузеров для мобильных устройств в принципе. Суть в том, что использование background-attachment: fixed; сказывается на производительности и он тупо отключён в мобильных устройствах. Может однажды всё будет работать, но пока так. После нескольких лет поиска решения я пришёл к следующим выводам.
Если эффект крайне необходим, вы можете использовать технологию параллакса (есть бесплатные плагины), когда позиционирование элемента изменяется динамически во время прокрутки, либо использовать отдельный пустой div, где вместо background-attachment: fixed; ставите position: fixed; этому пустому блоку и регулируете всё через z-index.
Если эффект не так важен и вы согласны пойти на компромисс с мобильными, то можете воспользоваться моим личным вариантом. На компьютерах эффект работает как должен, а на мобильных — фон просто растягивается по высоте блока и двигается вместе со страницей.HTML
Тут ваша разметка шапки, но с разложенными по классам свойствами CSS.<header class="main-header bg-cover bg-fixed">...</header>CSS
Из своего основного класса убираете всё, что касается фона, кроме картинки. Естественно, если вам там ещё что-то нужно, вроде высоты, флоатов и тд., сами решите. Теперь добавляете два класса, которые пойдут как фреймворк и могут использоваться многократно. Один растягивает картинку (центрует и без повторений), другой делает тот самый эффект fixed..main-header {background-image: url(img/picjumbo-bg5.jpg);}
.bg-cover {background-repeat: no-repeat; background-position: center center; background-size: cover; -webkit-background-size: cover;}
.bg-fixed {background-attachment: fixed;}JS
Добавляете этот код в шаблон или в файл скриптов. Если ваш сайт открывают на мобильных устройствах, скрипт находит все блоки по классу bg-cover и убирает из них класс bg-fixed, если он есть. Фоновая картинка просто будет скролиться со всем остальным.var device = navigator.userAgent.toLowerCase();
var mob = device.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/);
        if (mob) {
            $(".bg-cover").removeClass("bg-fixed");
        }

Худший ответ:
Ооо, у меня была та же фигня.
Это происходит из-за background-position: fixed;
К сожалению не нашел вариантов решения этого глюка и делал параллакс средствами JS.
Вопрос: JQuery carousel vs sprites?

Лучший ответ:
ru.wikipedia.org/wiki/VS На всякий случай оставлю, чтоб Вы понимали что пишете и не дизориентировали читателей.

Худший ответ:
> обязательно с поддержкой спрайтов.

Вы собираетесь делать CSS-спрайт 1000×5000? Вы вообще понимаете, зачем CSS-спрайты делаются (ответ: для снижения оверхеда на выполнение HTTP-запроса, что неактуально для крупных картинок)? Или же вы неверно сформулировали вопрос.
Вопрос: Раньше uTorrent мгновенно хешировал даже раздачи по 250 Гб, а сейчас по 10 минут хеширует 3 Гб. Что случилось?

Лучший ответ:
Раньше uTorrent мгновенно хешировал даже раздачи по 250 Гб Чтобы хэшировать 250Гб нужно как минимум прочитать эти 250Гб и еще подсчитать хэш. Мгновенно это сделать невозможно, да и быстро затруднительно.А сейчас, спустя два месяца, едва тянет хеширование самой слабой по объему раздачи из моей коллекции. Почему?Мало информации чтобы что-то сказать.
Надо смотреть в чем проблема, возможно антивирус какой- нибудь, или кривые настройки.
Да и непонятно что значит едва тянет? Точнее надо говорить.

Худший ответ:
По всей видимости - "раньше" - до введения новомодной 3 линейки uTorrent.
Она хитрым образом приучила вас к рекламе, которая отнимает часть ресурсов компьютера :)
Вопрос: Свой jQuery плагин?

Лучший ответ:
А что мешает сделать что-то типа 
$.tooltip = {
  update: function() {},
  init: function() {},
  show: function() {} // и т.п.
}

и вызывать как 
$.tooltip.show()
?

Худший ответ:
Если Ваш плагин не требует привязки к DOM элементу, то можно использовать такой вариант:$.extend({
	// Определяем имя плагина
	plugin: function(params) {
		// Соединяем переданные настройки плагина с настройками по умолчанию
		var setting = $.extend(true, {}, params, {
			state: true,
			key: 'prop'
		});
		// Основной код плагина
	}
});

// Использование
$.plugin({
	state: false
});
Вопрос: Почему не работает запрос в kohane orm?

Лучший ответ:
В первом случае, вероятно, вторая строка должна быть вроде $places = $places->find_all();, ведь надо положить результат в какую-либо переменную..
Разберем в ходу:ORM::factory('place') возвращает объект ORM. Вы его заносите в переменную $places. Затем вызываете метод find_all(), но результат никуда не присваиваете.
Во втором же случае вы кладете результат метода find_all() в переменную.

Худший ответ:
$places = ORM::factory('place');
$places_array = $places -> find_all();
var_dump($places_array);
В первом варианте вы просто не присвоили результат переменной как во втором.
Вопрос: JavaScript: Передача не только функции, а всего объекта с его свойствами?

Лучший ответ:
Вам нужно зафиксировать контекст выполнения некоторой функции. Это делается с помощью Function.prototype.bind из ES5. Полифиллы есть в underscore.js и jQuery — _.bind и $.proxy соответственно.

Худший ответ:
В JS нет классов, а this — это не ссылка на объект, а контекст выполнения. Можно использовать замыкания, если нужны какие-то свойства внутри объектов, например так:
function foo(param){
    var a = param;
    this.getA = function(){
        return a;
    };
    this.setA = function(p){
        a = p;
    };
}
var f = new foo(123);
g = f.getA();
console.log(g());
Вопрос: Для фриланса обязательно ли изучать frontend + backend, или хватит одного frontend'а?

Лучший ответ:
Фронтенд'а хватит. Но... в бэкенде денег побольше, конечно, но и длительность проектов и ответственность за ошибку выше.

Худший ответ:
не уверен, что стоит распылять силы. 
освойте одну из популярных cms. для большинства задач этого обычно хватает. 
если заказ не по силам - делегируйте.
Вопрос: Установка 10.8.х на старый mac

Лучший ответ:
Ваш mac использует процессор PowerPC. Поддерживаться такие процессоры перестали еще начиная с версии 10.6

Худший ответ:
Боюсь Вас ввели в заблуждение, это не должно работать и я не нашёл подтверждения обратному.
Вопрос: Формирование документа по содержанию в Word 2010

Лучший ответ:
Если «содержание» это на самом деле «оглавление», которое в английской локализации вроде бы называется «Table of contents», то я не очень понимаю, какой смысл в описанном Вами действии. 
Там же изначально обратная логика, оглавление генерируется по готовой структуре заголовков документа. 
А объемы работы для пользователя при: 
 — «набрать оглавление-многоуровненый список и включить магию» 
или же
 — «набрать многоуровневый список из заголовков, нажимая перевод страницы между некоторыми и нажать кнопку 'оглавление' » 
примерно одинаковы. 
Зачем тогда магия?

А если хочется сквозную нумерацию между заголовками разного уровня, то надо использовать «многоуровневый список» и привязывать разные стили к разным уровням нумерованного многоуровневого списка.

Худший ответ:
Может Вы имеете в виду шаблон?
тогда да, шаблон — болванка с забитыми полям для ввода текста. как раз себе аналогичное хочу сделать для целей инвентаризации.
Вопрос: Падение IE9 на главной странице Google из-за логотипа в честь 14 февраля

Лучший ответ:
на линуксе не воспроизводится :)

Худший ответ:
Вот, пожалуйста, — «валентинский» логотип убран и ошибка пропала. Прям хоть не заходи на Google по праздникам…
Вопрос: Лафоре или Липпман?

Лучший ответ:
Прочитать обе

Худший ответ:
По одной книжке не научитесь.
Привыкайте читать сразу несколько.
Прошли тему в одной, затем читайте эту же тему в другой и так далее.
Вопрос: Нужно ли учить CIL для понимания .NET?

Лучший ответ:
Ну можете конечно подучить. Но с тем же успехом можете учить ассемблер для разработки Windows-приложений

Худший ответ:
Нет, не обязательно. Чисто для общего образования - можно, но не более.
Вопрос: Как вставить непосредственно CSS в код HTML?

Лучший ответ:
говно-"кодинг" сплошной. Даже стили не могут нормально прописать =/

Худший ответ:
В html - jsfiddle.net/vjNpj/3916
Внутри тега - jsfiddle.net/vjNpj/3917
Вопрос: Публикация видео в соц. сетях(контакт, фейсбук, одноклассники) по прямой ссылке как youtube, vimeo и другие

Лучший ответ:
Как мне кажется, это не вам надо что-то делать со своей стороны, а вконтакте, одноклассники и другие сайты должны сделать так что при публикации ссылки на ваш сайт, оттуда подхватывался ролик.

Худший ответ:
<meta property="og:video" content="Ссылка_на_ролик_на_Youtube/?version=3&autohide=1">
<meta property="og:video:type" content="application/x-shockwave-flash">
<meta property="og:video:width" content="398">
<meta property="og:video:height" content="224">
Вопрос: Как обезопасить себя при оплате услуг программиста?

Лучший ответ:
Если нет рекомендаций, отзывов и приличного портфолио, то о предоплате не может быть и речи. Деньги Ваши, диктуете Вы. Пусть начинает работу, поэтапно отчитывается, поэтапно будете оплачивать.

Худший ответ:
Пусть покажет портфолио, аккаунт на github и что угодно еще, чтобы подтвердить, что он настоящий.
Если в итоге такого общения вам все-равно кажется, что он "мутный" - ищите другого исполнителя.
Вопрос: Замедляют ли загрузку сайт счетчики посещаемости?

Лучший ответ:
Ставьте ассихронно.

Худший ответ:
зачем ставить все сразу? 1-2 вполне достаточно , а по существу , это же скрипты , даже если на 0,00000001 сек то все равно замедляют.
Вопрос: Установка Ubuntu?

Лучший ответ:
Если пощупать, то для начала лучше всего в виртуалке: www.virtualbox.org/

Худший ответ:
В последнее время наблюдаю такую проблему- ставлю с помощью unetbootin Убунту 64битную.
Да вот только на нетбук Asus 1215n она не ставится!
Установка доходит до собственно установки (то есть я и диск уже разметил и язык выбрал), а потом… выскакиевает окошко -что то с ошибкой apt который не моет прочесть пакеты с компакт диска ( я ставлю с флешки).
И так каждый раз. Причем если ставить 32битную, то все окей.
Вопрос: Всегда ли использовать принцип mobile-first?

Лучший ответ:
Правильного ответа не существует, есть только мнения. Моё мнение, mobile first - не самая удачная технология. Я считаю, более разумно ставить во главу полнофункциональную модель, и в разработке дочерних опираться на неё, а не наоборот, как говорится - яйца курицу не учат.

Худший ответ:
Вряд ли тут есть правильный или единственно-верный ответ. Если вы делаете систему для внутреннего пользования для офисного планктона - вы на мобильный сегмент даже не посмотрите. Для публичных сайтов тоже все зависит от функциональности и ЦА. Не думаю что такие проекты как Google Docs или Microsoft Word Online опирались на mobile-first. Хотя кто знает.
Вопрос: C++ vs Java for Android?

Лучший ответ:
C++ (NDK) - для компонентов, которым нужна производительность и не нужно взаимодействие с элементами из SDK ( кнопочки, доступ к железу). Конечно, его можно сделать через JNI (а там все равно Java) но это гемор еще тот
Java (SDK) - для всего остального.

Худший ответ:
Под андроид можно писать и на delphi:) Серия delphi xe позволяет писать на андроид. Пиши на джаве, примеров и документации, больше, само сообщество больше. Не будет труда найти то чего не знаешь, что не получается.
Вопрос: Как написать алгоритм спирали?

Лучший ответ:
Заходите сюда
ru.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D0%B8%D0%...
Если спираль устраивает
записываете r = k*phi
x = r*cos(phi)
y = r*sin(phi)
предположим точек N
for(i=0;i!=N;++i){
   phi =i*some_const; 
   r = k*i;
   x = r*cos(phi)
   y = r*sin(phi)
   draw(x,y, "что вы тут хотите рисовать")
}
константы
k  some_const подбираете сами

Худший ответ:
И ещё одна штука. Две-семь точек надо располагать по-другому (одна в центре, остальные по кругу на расстоянии dSafe от неё; ну или на худой конец подобрать коэффициент a, чтобы спираль расходилась лишь чуть-чуть). Для восьми-одиннадцати точек надо подбирать индивидуальные a. И только для двенадцати и более подходит a = −0,3·dSafe.
Вопрос: Как получить прибыль с сайта с 10 тыс. посещаемостью в месяц?

Лучший ответ:
найдите хороший магазин спец техники и зап. частей. И предложите им продавать трафик с вашего сайта. 
Может не стоит брать магазин и топа в поисковиках, найдите те кто находятся в жопе, но сами по себе не мелкие, просто например через интернет у них не очень продажи идут, предложите им покупателей, за процент от их покупок. 
начнут мяться, чё-нить мямлить, предложите пробно/бесплатно поставить их данные (ссылку заказать запчасти) и посмотрите статистику переходов, через неделю/месяц предложите какую-нибудь фиксированную цену сотрудничества.
это очень выгодно, и нужно быть полным идиотом чтоб от такого отказаться. 
знаю что будут отказы, тк у нас ебанутые бизнесмены, в любом случае уверен что постепенно найдёте партнёра. 
про всякие банеры, контекстную рекламу и прочую хрень забудте, на этом денег не сделать.

Худший ответ:
Тематика у вас неплохая. Сколько при этом трафика их поисковиков? 
Если достаточно, то сейчас на рынке очень неплохо платит макстаргет.
Вопрос: Как сделать работы websocket на php без запуска сервера через консоль?

Лучший ответ:
Просто настраиваем тот же supervisord, который будет запускать\перезапускать процесс.

Худший ответ:
но как на хостинге так сделать не понятно
Если под хостингом вы имеете в виду shared-хостинг для сайтов на PHP, то:
1. Там предоставляют доступ по ssh обычно.
2. Если у вас что-то серьёзнее, чем обычный сайт (а вебсокеты - это уже серьёзнее) - лучше арендовать VPS.
Вопрос: Тестовое задание на 80 часов разработки???

Лучший ответ:
Если задание достаточно объемное оно просто должно оплачиваться.

Худший ответ:
UPD из статьи: 
"поэтому 80 часов даётся не для того, чтобы он это задание просто сделал, а чтобы привёл реальность (свои знание) в соответствие с галочками в своём резюме напротив php, html, css, js, ajax, mysql."
и зачем вы задаете этот вопрос, если достаточно прочитать комменты на хабре.
Вопрос: Правильно ли я сделалл кеш?

Лучший ответ:
Это не кэш, это просто чтение-запись текстовых данных. Где хотя бы простая сериализация? Мой Вам совет - почитайте исходники фреймворков, там реализован всякий разный кэш (файловый, редисковый ит.д), хотя бы Yii. Посмотрите как там сделано, переделайте свой велосипед, сделайте так, чтобы он работал и выглядел правильно, а потом никогда не используйте его в реальных проектах.

Худший ответ:
А где обработка ошибок?
Названия функций ну вот вообще ни о чем не говорят.
А если я сделаю вот так:$cache->fileEchoCache('../../../../config.php');
Что будет?
unlink($file); без проверки пути...
А если я захочу использовать кеш в памяти, заместо файлового? Мне по всему проекту бегать искать и заменять вызовы?
Лучше удали это.
Вопрос: Логгер для NodeJS?

Лучший ответ:
Прошёл год, написан и используется свой логгер. Ниже хочу описать причины и что получилось.
Требования поменялись и в настоящее время они отлично ложатся на идеологию 12 factor app 12factor.net/logs
А именно: логгер и само приложение не занимаются записью лога ни в файл ни в базу. Никаких транспортов. Лог пишется только в stdout.
Мотивация:
1) Мы получаем отличный лог в консоле во время разработки просто запустив приложение. Без всяких "девелоперских" режимов транспортов.
2) В продакшене сбором и транспортом лога занимается то, что запускает наше приложение (forever, upstart, supervisor). Процесс транспортировки лога лежит не на самом приложении - это развязывает руки в использовании как своих сервисов агрегации логов (logstash), так и сторонних (loggly).
2) Как логгер, так и само приложение избавлены от багов "толстого" логгера и транспортов.
Требования к реализации:
1) Быстрый старт - возможность начать использовать логгер без первоначальной конфигурации
2) Пространства имен
3) Гибкость в настройке формата сообщений (которые мы пишем в stdout)
Вот так получился mag логгер
Быстрый стартvar logger = require('mag')();
logger.info('my great application is running!');Пространства именvar mag = require('mag');
var logger = mag('my-app');
logger.info('my great application is running');Настройка формата сообщений.
Мы можем подключать mag сколько угодно раз, даже в подмодулях. Подключив один раз модуль mag-hub - все сообщения пойдут через него. mag-hub - это стрим в режими объектов. Мы можем читать из него и делать с объектами логов всё что угодно, записав потом в stdout конечно.
При написании подмодуля приложения о логировании заботиться также не нужно: https://github.com/mahnunchik/mag#for-module-developers
Ссылки:
1) mag logger
2) API логгера
3) Модуль агрегации логов в одном стриме mag-hub

Худший ответ:
Graylog2 смотрели? graylog2.org/
Есть биндинги в том числе и для ноды
Вопрос: Придумать тему диплома?

Лучший ответ:
Миниатюрная USB-приставка к телефону, преобразующая его в универсальный программируемый ИК-пульт дистанционного управления.

Худший ответ:
Хм, интересная идея) Я тоже собираюсь диплом писать на тему беспроводных технологий, андроида, но с уклоном в безопасность. У вас чисто «программисткий» подход? или знания по инф.безопасности тоже есть?
Вопрос: Чем является директива в концепции mv* в AngularJS?

Лучший ответ:
директива - кусок встраиваемого независимо работающего компонента (приложения). 
который вы можете вставлять в ХТМЛ как обычный тег (по концепции с веб компонентами). 
тоесть если говорить в рамках MVC - то это ещё один mvc. 
да и вобще не парьтесь по поводу концепции, их разрабатывают чтоб упростить жизнь, в некоторых приложениях удобно объединить контроллер с внешним видом, иногда удобно объединить контроллер и модель. Главное - не пытаться всё подгонять под какие-то догмы.

Худший ответ:
ангуляр больше похож на HMVC, в таком случае директива это самодостаточное MV* приложение или его компонент, и да у него могут быть свои зависимости и т.д.
Вопрос: Правильно прокоментировать PHP BUG#61084?

Лучший ответ:
Неожиданно, но такое поведение упоминается в мануале: http://ru.php.net/manual/en/language.oop5.basic.php#language.oop5.basic.class.this

Худший ответ:
Все коментарии, кроме коментария sectus даны не по делу и говорят скорее о непонимании вопроса. sectus'у отдельное спасибо, возможно документация будет расширена для static, но в любом случае выяснено, что контекст static ведет себя в этом аспекте больше как контекст $this нежеле как контекст self это и было неожиданностью, явным образом не задокументированной.
Про E_STRICT и историю нахождения этого примера расскажу: на одной из машин девелопера стоял PHP со стандартными настройками, когда он столкнулся со странностями работы он передал код мне где я сразуже увидел Strict однако даже в этом случае поведение показалось мне неожаднным и я захотел разобраться в чем дело. С версии PHP 5.4 E_STRICT будет частью E_ALL и это радует!