Если кто-то будет раскрывать прошу не забыть про особенности расстановки точек с запятой (или двоезапятий) в конце элемента, особенно во вложенных списках :)
О, я не спорю, это тоже вариант, но как разработчик люблю это расширение за то, что позволяет понять, чего стоит сайт без JS. Если бы не это, я бы никогда не узнал, что лучше всех живёт без JS del.icio.us, а хуже всех — 90% остальных веб-2.0 сайтов, считая хабр и контакт.
Вы просто не совсем понимаете, как это происходит. Сначала НС убирает скрипты. Потом, если вы сайту доверяете — выбираете в меню контекстном пункт «Разрешить домену …». И всё, проблем нет. Если же вы на каком-то сайте бываете раз в жизнь, то там нажимаете «Разрешить временно». И всё. Так что всё современно :)
Это, всё-таки от многого зависит. Действительно, большинство опенсорсеров имеет постоянную работу и заработок на жизнь, но есть и те, кто на донации от своего софта живут, читал где-то англоязычную статью в прошлом году. Как по мне, так зависит от степени обогащённости человека/компании, и лучше поначалу брать деньги по донациям, а потом развиться и предоставлять платные услуги, чем раздавать без просьбы о помощи и параллельно драть тысячи долларов за коммерческие продукты. ИМХО :)
Ээ… вы уверены? Он же когда выключен, тогда и чёрный. И когда просто включаешь монитор он посвечивается, а чёрный остаётся чёрным… Какое-то сомнительное утверждение, в общем. =)
В гугле можно искать и без g, надо просто написать запрос. Например я точно знаю: если сейчас вобью слово «хабр» в строку адреса, попаду сами-знаете-куда. =)
Есть способ это сымитировать, достаточно простой и удобный:
1) убираем E_RECOVERABLE_ERROR из основного потока; error_reporting ((E_ALL | E_STRICT)&~E_RECOVERABLE_ERROR);
set_error_handler('send_error',E_STRICT | E_ALL);
2) в функции-отловщике ошибок делаем switch от кода ошибки; function send_error($msg,$str,$file,$line,$context){
if(error_reporting())
switch($msg)
{
case E_RECOVERABLE_ERROR:
send_recoverable_error($msg,$str,$file,$line,$context);
break;
default:
………
}
}
3) если пришёл E_RECOVERABLE_ERROR, проверяем строку ошибки на соответствие вот так: function send_recoverable_error($msg,$str,$file,$line,$context){
if(!preg_match('#instance of ([\w0-9_:]+), (\\1) given#', $str))
die('Тайпхинтинг нах… файл '.$file.' строка '.$line);
}
Сразу говорю — использовал вполне удачно, но использовать очень часто не рекомендую: сотня-полторы таких вызовов вполне могут начать тормозить скрипт на несколько ms.
Кстати, вы случайно не знаете, кто это первым так опечатался что вместо «малюсенькие» написал «маюскульные»?
считаете делишс плохим сервисом?
1) убираем E_RECOVERABLE_ERROR из основного потока;
error_reporting ((E_ALL | E_STRICT)&~E_RECOVERABLE_ERROR);
set_error_handler('send_error',E_STRICT | E_ALL);
2) в функции-отловщике ошибок делаем switch от кода ошибки;
function send_error($msg,$str,$file,$line,$context){
if(error_reporting())
switch($msg)
{
case E_RECOVERABLE_ERROR:
send_recoverable_error($msg,$str,$file,$line,$context);
break;
default:
………
}
}
3) если пришёл E_RECOVERABLE_ERROR, проверяем строку ошибки на соответствие вот так:
function send_recoverable_error($msg,$str,$file,$line,$context){
if(!preg_match('#instance of ([\w0-9_:]+), (\\1) given#', $str))
die('Тайпхинтинг нах… файл '.$file.' строка '.$line);
}
Сразу говорю — использовал вполне удачно, но использовать очень часто не рекомендую: сотня-полторы таких вызовов вполне могут начать тормозить скрипт на несколько ms.