Entry tags:
Фотографическое
Ух ты чего я сегодня узнал. У Pentax-овских зеркалок стабилизатор живёт в тушке -- шевелится матрица. Так вот у новых зеркалок (от K-5II, вроде) есть фигня под названием ASTROTRACER, для съёмки звёздного неба. Как известно, если выдержка больше ~30сек, звёздное небо начинает заметно поворачиваться, и звёзды получаются полосками. Если хочется их иметь звёздами, то нужно или задирать ISO, или иметь объектив f/1.4, или и то, и другое, и это грустно.
Так вот эти тушки умеют поворачивать матрицу вслед за вращением звёздного неба (с использованием GPS-приставки), и это позволяет звёзды снимать с более длинной выдержкой. Обалдеть же.
Так вот эти тушки умеют поворачивать матрицу вслед за вращением звёздного неба (с использованием GPS-приставки), и это позволяет звёзды снимать с более длинной выдержкой. Обалдеть же.
Entry tags:
Линуксовое
У линукса есть несколько механизмов ограничить процесс в доступных процессорных ядрах. Как минимум, cgroup и taskset. Если процессу важно знать, сколько у него ядер (чтобы сконфигурировать thread pool или ещё зачем-нибудь), то наивный способ -- прочитать /proc/cpuinfo. Он неправильный. Менее наивный -- позвать sysconf(_SC_NPROCESSORS_ONLN). Он тоже неправильный. Правильный -- вот:
long num_processor_configured = sysconf (_SC_NPROCESSORS_CONF); /* list the number of processors configured */
long num_processor_available;
cpu_set_t mask;
if (sched_getaffinity(0, sizeof(cpu_set_t), &mask) == 0) {
num_processor_available = CPU_COUNT(&mask);
} else {
num_processor_available = sysconf(_SC_NPROCESSORS_ONLN);
}
Entry tags:
Узус
А вот я заинтересовался, это только мои коллеги-программисты считают слово «инженер» унизительным, и себя инженерами не считают? Или это нынче общераспространённое?
(На логичный вопрос, а кем они тогда себя считают, отвечают невнятное.)
(На логичный вопрос, а кем они тогда себя считают, отвечают невнятное.)
Entry tags:
Синтаксическое
СЯУ, как в Java 7 выглядит multi-exception catch, а в Java 8 -- лямбда. Некрасиво.
Entry tags:
СЯУ
Ну, точнее, знал я давно, а сегодня вербализировал — зачем при наличии CORBA & co эти красноглазые™ придумали Protobufs, Thrift & Co: для «мягкой» несовместимости клиента и сервера. Ну, в основном для этого. Там, где корба требует пересборки клиента для работы с новой версией сервера (ну, если менялся IDL), эти не требуют ничего. Ну, если новая версия сервера озаботилась обратной совместимостью, понятно.
PS: интересно, говорю я тоже с «ну» через слово?..
PS: интересно, говорю я тоже с «ну» через слово?..
Entry tags:
(no subject)
Открыл для себя paredit. Кто не работает в Emacs с лиспообразиями, тому не надо. А кто да — тому да!
Entry tags:
(no subject)
СЯУ, зачем нужен @Inject. А ещё — чем отличаются ->, ->> и doto, а также for, doseq, dorun и doall. А ещё — зачем нужны deferred constraints в транзакции.