Как удалить из очереди postfix письма с определённого домена

Для домена-отправителя error.domain.ru команда будет выглядеть так:
mailq|awk ' /^[0-9A-F][0-9A-F]*.*error.domain.ru$/ {print $1}'|tr -d '*'| xargs -rn1 postsuper -d
Должно сработать в linux, с MTA postfix.

Как в PHP узнать откуда был вызван метод класса/функция?

Самый очевидный вариант - через debug_backtrace()

$trace = debug_backtrace();
$caller = $trace[1];
echo "Called by {$caller['function']}";
if (isset($caller['class'])) echo " in {$caller['class']}";

Как найти причину WSOD (белого экрана вместо страницы) в php, когда обычные решения не помогают

В случае если скрипт php не выполняется и ничего не выводит (WSOD, White Screen Of Death) - очевидные и правильные решения это настроить отображение/логирование ошибок в конфигах php и веб-сервера, установка отладчика (например, xdebug).

Далее код, который заменяет стандартный обработчик ошибок и просто выводит их на экран.
Брутально, но может помочь если очевидные решения по каким либо причинам не подходят и не обнаруживают ошибок.

Код надо вставлять в начало выполняемого скрипта, сразу после открывающего тега (скорее всего в index.php, init.php и подобные, если вы используете готовую CMS)

// ----------------------------------------------------------------------------------------------------
// - Display Errors
// ----------------------------------------------------------------------------------------------------
 
ini_set('display_errors', 'On');
ini_set('html_errors', 0);
 
// ----------------------------------------------------------------------------------------------------
// - Error Reporting
// ----------------------------------------------------------------------------------------------------
 
error_reporting(-1);
 
// ----------------------------------------------------------------------------------------------------
// - Shutdown Handler
// ----------------------------------------------------------------------------------------------------
 
function ShutdownHandler()
        {
        if (@is_array($error = @error_get_last()))
                {
                return (@call_user_func_array('ErrorHandler', $error));
                };
        return (TRUE);
        };
register_shutdown_function('ShutdownHandler');
 
// ----------------------------------------------------------------------------------------------------
// - Error Handler
// ----------------------------------------------------------------------------------------------------
 
function ErrorHandler($type, $message, $file, $line)
        {
        $_ERRORS = Array(
                0x0001 => 'E_ERROR',
                0x0002 => 'E_WARNING',
                0x0004 => 'E_PARSE',
                0x0008 => 'E_NOTICE',
                0x0010 => 'E_CORE_ERROR',
                0x0020 => 'E_CORE_WARNING',
                0x0040 => 'E_COMPILE_ERROR',
                0x0080 => 'E_COMPILE_WARNING',
                0x0100 => 'E_USER_ERROR',
                0x0200 => 'E_USER_WARNING',
                0x0400 => 'E_USER_NOTICE',
                0x0800 => 'E_STRICT',
                0x1000 => 'E_RECOVERABLE_ERROR',
                0x2000 => 'E_DEPRECATED',
                0x4000 => 'E_USER_DEPRECATED'
        );
        if (!@is_string($name = @array_search($type, @array_flip($_ERRORS))))
                {
                $name = 'E_UNKNOWN';
                };
        return (print (@sprintf("%s Error in file \xBB%s\xAB at line %d: %s\n", $name, @basename($file) , $line, $message)));
        };
$old_error_handler = set_error_handler("ErrorHandler");

Динамическая загрузка блоков при скроллинге

<div id="lazyblock">
<script>
function lazyblock(){
   var wt = $(window).scrollTop();    //* top of the window
   var wb = wt + $(window).height();  //* bottom of the window
 
   $("#lazyblock").each(function(){
      var ot = $(this).offset().top;  //* top of object (div)
      var ob = ot + $(this).height(); //* bottom of object
      if(!$(this).attr("loaded") && wt<=ob && wb >= ot){
         $(this).html('<iframe src="/block.html" scrolling="no" frameborder="0"
                        style="border:none; overflow:hidden; width:211px; height:790px;" allowTransparency="true">
                      </iframe>');
         $(this).attr("loaded",true);
      }
   });
}
 
$(document).ready(function(){
    $(window).scroll(lazyblock);
    lazyblock();
});
</script>
</div>

Как корректно очистить кэш nginx

Просто удалить файлы в папке с кэшем:
find /var/cache/nginx/proxy/ -type f -delete

Метки:

8 ловушек ума на пути к счастью

  1. Я был бы счастливее, если бы мне приходилось меньше трудиться.
    Наш ум часто прибегает к этому аргументу, утверждая, что мы были бы счастливее, если бы не должны были работать. Мы представляем себе жизнь, полную развлечений, и обманываемся, думая, что от этого мы бы стали счастливее. Однако именно праздность часто является главной причиной скуки и депрессии. Мы – трудолюбивые, творческие создания. Мы должны решать задачи и совершенствоваться, чтобы быть счастливыми. Вложи свою душу в что-то значимое для себя, и ты увидишь, как поднялся твой градус счастья!
  2. Это не я, это все они.
    Наш ум пытается заставить нас поверить в то, что причина нашего несчастья – в других людях: знакомых, супругах, родителях… Мы готовы разбрасывать обвинения налево и направо, как малыш разбрасывает игрушки в детском саду. Конечно, для «танго нужны двое» — как мы обвиняем других, так и они обвиняют нас. Тот момент, когда мы берем на себя ответственность за свою жизнь, послужит фундаментом истинного счастья.
  3. Для того, чтобы быть счастливым, мне нужно открыть секрет счастья.
    Секрет в том, что секретов счастья или успеха нет. Сколько бы ни убеждали нас книги, авторы и наш собственный ум, никаких секретных ключей от двери Простого Человеческого Счастья нет. Вы сами создаете картину своего будущего, формируете стратегию и затем настойчиво и усердно работаете над ее воплощением. Здесь нет коротких путей. Принятие этого факта продвинет вас по пути счастья намного дальше.
  4. Если бы у меня было…
    Наш мозг пытается внушить нам, что мы были бы счастливее, если бы у нас была другая работа, другой дом, другая машина… Нет ничего плохого в желании лучших вещей и обстоятельств, но это не делает нас автоматически счастливыми. Они могут временно поднимать настроение, но это все быстро проходит. Тот, кто хочет прочного счастья, должен осознать, что бочка желаний бездонна, и ее никогда не наполнить доверху. А истинное счастье идет изнутри…
  5. Я люблю то, что есть, и не хочу изменений.
    Позволяя себе думать подобным образом, мы создаем все предпосылки для падения вниз. Жизнь — это путешествие в постоянные изменения. Какие-то из них мы контролируем, какие-то – нет. Сопротивление изменениям или попытка взять все под свой контроль обречены на провал. Изменения неизбежны. Вы должны принять это и научиться плыть в непрерывном потоке изменений. Способность к адаптации очень важна для счастья.
  6. Если не сегодня, значит – никогда.
    Наш ум часто впадает в отчаяние и поддается разочарованию за несколько шагов от успеха. Настойчивость очень важна для достижения счастья. Никогда не позволяйте своему уму обмануть вас и принять свое поражение. Вы не знаете, что принесет вам завтрашний день. Только один день — это может быть все, что нужно для достижения вашей мечты.
  7. Я приму решение, когда точно буду знать, что делать.
    Чем больше вы думаете, тем скорее вы заходите в тупик. Взвешивание рисков, анализ возможностей и принятие плана — важные факторы, но ничего не происходит до тех пор, пока нет решения и действий. Мы очень редко имеем полную информацию для принятия решений. Стоп сомнениям! Неудача — не конец света. Не позволяйте вашему уму увлечь вас в ловушку тотального анализа всего на свете.
  8. Я знаю, что не должен, но…
    Наш ум пытается обмануть нас, отрицая последствия наших вредных привычек. Особенно это касается вопросов здоровья. «Я знаю, что не должна курить, но это помогает мне похудеть». Или: «Я знаю, что не должен этого есть, но если я не могу наслаждаться жизнью, то зачем вообще жить». Проблемы со здоровьем — безусловно, это вызов счастью. Не позволяйте уму поймать вас в ловушку самооправданий и снисходительности к своим слабостям.

Вы красивее, чем вы думаете

Только 4% женщин считают себя красивыми. Dove провёл эксперимент, в котором показал взгляды женщин на самих себя в сравнении с тем, что видят другие.

Специалист по фотороботам из ФБР рисует портреты женщин по их собственному устному описанию.
Также составляется ещё один портрет по описанию другого человека (в том, числе женщин, которые только что описывали себя).
Таким образом у каждой женщины два портрета: по собственному описанию и описанию другого человека...

Как узнать модель материнской платы и тип памяти в windows

Инфо о материнской плате:
wmic baseboard get Manufacturer && wmic baseboard get product

Память:
wmic MEMORYCHIP get BankLabel, Capacity, DeviceLocator, FormFactor, Speed, Manufacturer

Расшифровка кодов для памяти: http://msdn.microsoft.com/en-us/library/windows/desktop/aa394347(v=vs.85).aspx

Работает через wmic, начиная с XP (без установки Everest, Sandra и т.п.)

С днём программиста!

Поздравляю всех программистов с днём программиста.

В подарок - "открытка"
Для запуска нужен Chrome или FireFox актуальной версии с включенным javascript, либо выполнение Java-апплетов в браузере.

Школа для животных - (притча о школе)

Взято из статьи "Новой газеты", иллюстрированный взгляд на школьное обучение.
---

Если бы в школе животных был бы такой же подход.

Однажды животные решили, что должны совершить что-нибудь героическое, чтобы достойно решать проблемы «нового мира». И они организовали школу.

Они составили программу занятий, которая состояла из беганья, лазанья, плавания и полета. Чтобы было легче контролировать выполнение программы, она была одинаковой для всех животных.

Утка отлично преуспевала в плавании, даже лучше своего наставника, но у нее были посредственные оценки за полет и еще хуже — за бег. Поскольку она так медленно бегала, ей приходилось оставаться после уроков и отказываться от плавания, чтобы учиться бегу. От этого ее бедные лапки совсем ослабли, так что она и плавать стала неважно. Но посредственные оценки по этой школе засчитывались, так что никого это не беспокоило, кроме самой утки.