С++: Отключаемый отладочный вывод

Чтобы иметь возможность отключить или подключить весь отладочный вывод в коде в одном месте, я использую следующую конструкцию:
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

typedef enum {
    DL_INFO = 0,
    DL_ERROR
} DebugLevel;

char * dlToString(DebugLevel dl) {
    static char INFO [] = "INFO";
    static char ERROR [] = "ERROR";
    switch(dl) {
    default:
    case DL_INFO:
        return INFO;
    case DL_ERROR:
        return ERROR;
    }
}

void printDebugString(const char * file, int line, const char * method, DebugLevel dl, const char* format, ...) {
    va_list arglist;
    va_start(arglist, format);
    printf("%s: %s:%d:%s:", dlToString(dl), file, line, method);
    vprintf(format, arglist);
    va_end(arglist);
}

#define DEBUG_PRINT(LEVEL, FMT, ...)    printDebugString(__FILE__, __LINE__, __PRETTY_FUNCTION__, LEVEL, FMT, ##__VA_ARGS__)

Linux: перенаправление потоков stderr и stdout в файл

Перенаправить одновременно stderr и stdout в файл можно так:
program > log_file 2>&1
или, чтобы не перезаписывать каждый раз файл, а добавлять в конец, соответственно:
bash_command >> log_file 2>&1
Что значит выражение: 2>&1:
2 - это дескриптор потока stderr;
&1 - это дескриптор потока stdout (амперсант перед 1 означает, что 1 - это не имя файла, а именно дескриптор);
то есть мы перенаправляем stderr туда же, куда перенаправлен к этому моменту stdout. Поэтому сначала перенаправляем stdout в файл (посредством > log_file), а затем перенаправляем туда же stderr. Например, следующая команда:
program > err_file 2>&1 > log_file
Перенаправит stderr туда, куда был к этому моменту перенаправлен stdout (в файл err_file), а потом перенаправит stdout в log_file. Другой способ перенаправить stderr и stdout в разные файлы:
program > log_file 2> err_file

Qt 5.3 QML: как принудительно выполнить перерисовку элемента

Судя по всему, стандартные средства QML не позволяют просто взять и запросить перерисовку заданного объекта. Понятно, что объекты автоматчески перерисовываются при измении их свойств, списки автоматически перерисовываются при изменении привязанных к ним моделей. Но если есть какой-нибудь кастомный элемент интерфейса на основе, например, Rectangle, отрисовка которого зависит от какой-нибудь кастомной модели, проброшенной в QML из С++ кода, все это не поможет. Модель меняется, а вот метода, который бы заставил интерфейс перерисоваться заново с учетом этих изменений, я не нашел.
Единственное решение, которое я нашел, это удалить элемент и пересоздать его заново после изменения модели (как это делать, описано здесь). Правда, статически созданные элементы не рекомендуется удалять динамически, поэтому элементы, которые нужно будет пересоздавать, нужно сразу создавать динамически.

Настройка управления питанием в Xubuntu 14.04

Столкнулся с проблемой в Xubuntu 14.04 на ноутбуке: игнорируются настройки управления питанием - действия при закрытии крышки и нажатии на кнопку выключения питания. Выяснилось, что это баг в xfce4-power-manager-settings. Суть заключается в том, что Power Manager не перехватывает у systemd соответсвующие события.
Лечится настройкой systemd, как указано на ArchLinux Wiki. Надо отредактировать файл /etc/systemd/logind.conf:
HandlePowerKey=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore