Ugolnik's Family blog

Различные заметки обо всем.

Я использую утилиту xhkeys для обработки мультимедийных клавиш. Иногда “залипает” клавиша и начинается запуск процесса без до тех пор, пока ядро не прибьет “лишние” процессы при нехватке памяти.

Что бы не запускались лишние копии процесса, я написал такой скрипт:

ps -ef | grep PROGRAM | grep -v grep >/dev/null ; if [ $? -eq 1 ] ; then PROGRAM; fi
  • 0xABADBABE (“a bad babe”) is used by Apple as the “Boot Zero Block” magic number.
  • 0xBAADF00D (“bad food”) is used by Microsoft’s LocalAlloc(LMEM_FIXED) to indicate uninitialised allocated heap memory.
  • 0xBADDCAFE (“bad cafe”) is used by ‘watchmalloc’ in OpenSolaris to mark allocated but uninitialized memory.
  • 0xCAFEBABE (“cafe babe”) is used by both Mach-O (“Fat binary” in both 68k and PowerPC) to identify object files and the Java programming language to identify Java bytecode class files.
  • 0xDEADBEEF (“dead beef”) is used by IBM RS/6000 systems, Mac OS on 32-bit PowerPC processors and the Commodore Amiga as a magic debug value. On Sun Microsystems’ Solaris, marks freed kernel memory. On OpenVMS, running on Alpha processes DEAD_BEEF can be seen by pressing CTRL-T.
  • 0xDEFEC8ED (“defecated”) is the magic number for OpenSolaris core dumps.
  • 0xFEEDFACE (“feed face”) is used as a header for Mach-O binaries, and as an invalid pointer value for ‘watchmalloc’ in OpenSolaris.

Пару дней назад решил более детально ознакомиться с тайловым оконным менеджером Xmonad. Настроить удалось практически все, что я хотел. Исключение составляет только статический тайлинг. Настроить его я пока не смог. И не факт, что это возможно на данный момент.

Что понравилось:
- поддержка с Xft;
- наличие скрэтчпадов (не хуже, чем в Ion3);
- работа с дочерними окнами;
- работа со статусбаром xmobar через пайп;
- возможности по подсветке текста в xmobar;
- свой набор лэйаутов и их настроек для каждого из тегов;
- работа с дочерними окнами в GIMP, Code::Blocks;
- реализация и настройка urgency hint;
- есть возможность переключиться на окно, которое установило urgency hint по хоткею.

Что НЕ понравилось:
- лэйаут с табами – слабая пародия на Ion3;
- не распределяет по тегам приложения, которые были запущены до Xmonad;
- проблемы с Smplayer (хотя mplayer работает корректно);
- отсутствие статического тайлинга мешает работать в GIMP с несколькими изображениями одновременно; видимо тут поможет лэйаут, который комбинирует несколько лэйаутов;
- возможности стандартных плагинов в xmobar.

Отдельное спасибо xetf за помощь в настройке.

Мой конфиг Xmonad.
Ветка о Xmonad на LOR.

Ну вот и сделал я себе бикуб. Белые швы – это эпоксилин обработанный наждачной бумагой в воде. Пары кубиков склеены с помощью цианоакрилового клея. Знаю, что нужно было покрасить или эпоксилин, или сам куб после обработки, но я не нашел ни тонера, ни краски. Возможно, что позже я исправлю сей недостаток. Часть наклеек резал ножом из листа пленки, часть использовал от куба 3х3х3 – наклеивая их по 3 штуки на одну сторону пары.

Бикуб без наклеек:

Бикуб с наклейками:

p.s. Вчера разобрал куб, повернув пару-тройку раз грани, теперь не знаю, как его собрать ;)

Собирая куб после экспериментов со сложными узорами на V-Cube 7 нашёл простой алгоритм:
2L L’ 2R’ R 2U’ U 2D D’ 2L’ L 2R R’ 2U U’ 2D’ D

Нашел у себя в черновиках. Не уверен, что я этот код где-либо использовал, но для затравки сойдёт.
Object-C:

const char *path;
path = [[[NSBundle mainBundle] bundlePath] UTF8String];

Или так:

CFBundleRef bundle;
bundle = CFBundleGetMainBundle();

CFURLRef res;
res = CFBundleCopyResourcesDirectoryURL(bundle);

CFStringRef resStr;
resStr = CFURLCopyFileSystemPath(res, kCFURLPOSIXPathStyle);

char path[8192];
CFStringGetFileSystemRepresentation(resStr, path, sizeof(path));

Слева результат моих усилий по смене тайликов (или плиточек) на наклейки.
Оригинальные тайлики снял при помощи ножа с толстым (не широким), но острым лезвием. Толстое лезвие нужно для того, что бы тайлики не срезать, а аккуратно снимать. Так получается и проще и безопаснее. При этом повреждения для куба минимальны.
Далее удалял клей при помощи куска мелкозернистого точильного камня. Тут можно было бы воспользоваться и наждачной бумагой, наклеенной на плоскую и жесткую поверхность. Рекомендую при выполнении этой операции капать водичку на камень – это позволит меньше травмировать поверхность куба. Операцию выполняйте над каждым элементом отдельно, разобрав куб на части (да, это нудно и долго, но рез-т будет лучше). Если есть возможность после этой операции произвести окончательную полировку на войлочном круге, то это будет супер! Дома у меня нет такой возможности, поэтому окончательную доводку я сделаю позже, а пока и так сгодится ;)

После полировке на камне я промыл все элементы в воде с моющим средством (засыпал все в банку с водой и моющим средством и потряс в течении нескольких минут). Промыл от грязи и остатков моющего средства душем. Просушил в течении получаса (шило в пятой точке не позволило мне сушить дольше). Собрал куб без смазки – да и куда её там лить то – изо всех щелей сочится влага ;) Каждую сторону аккуратно протирал салфетками для чистки монитора, подсушивал отдельно и оклеивал. Наклейки мне достались для Eastsheen, они меньше оригинальных тайликов, но смотрится куб весьма неплохо. Результатом я практически доволен.

И о главном:
Основная и главная моя ошибка: насмотревшись видео по замене тайлов на наклейки я поступил так же – на многих элементах куба срезал ножом остатки клея. Образовались ямы, которые вручную без войлочного круга отполировать крайне сложно. Не повторяйте моей ошибки, и не слушайте советы горе-спидкуберов на тытрубе. Делайте все правильно. Удачи!

Пример настройки корпоративного почтового сервера на базе Postfix в Ubuntu Linux.

Коротко о статье:

  • ОС Ubuntu 9.10
  • БД MySQL
  • Почтовый сервер Postfix
  • Антивирус ClamAV
  • Web-интерфейс PostfixAdmin
  • Антиспам Spamassassin, Razor, Pyzor и стандартные средства самого Postfix.

Введение из статьи однозначно отвечает на вопрос – “о чем статья”:

Этот рассказ не претендует на звание полного описания настройки Emacs как среды разработки на разных языках (это будет отдельная статья), а является попыткой написать краткий рассказ о настройке пакета Cedet для работы с языками программирования C & C++, хотя большая часть изложенного подходит и к работе с другими языками, поддерживаемыми пакетом Cedet.

Ссылка на статью Настройка Emacs & Cedet для программирования на C & C++.

Наконец то до меня добралась посылка от Mefferts. В небольшой коробке из гофрированного картона были упакованы:

  • Original Master Cube Black with tiles – крутится на первый взгляд прилично. Один тайлик отвалился сразу после распаковки. Посадил его на супер-клей. Тайлы толстые и вероятно хрупкие, ощущения весьма странные.
  • Master Pyramorphinx White Body – наклейки из плотной пленки. Весьма приятен на ощупь и крутится хорошо.
  • Black Pyraminx II Fluorescent Labels – вещь! Очень доволен этой пирамидой. Наклейки тоже из пленки, яркие, приятные. Крутится классно.
  • 12 color Megaminx – тут тоже отвалился один тайлик. Дочка сходу собрала сторону с поясом, сейчас сидит собирает остальное (никаких алгоритмов не знает, держит головоломку в руках впервые).

Фотографии не мои – взял то, что попалось под руку:

Посылка шла почти месяц. Я два раза писал в Mefferts – один раз на саппорт, второй через веб-форму – ни одного письма от них не получил. При этом инвойс после оплаты был получен сразу. Но теперь это не имеет значения – заказывать можно. Посылка приходит в почтовое отделение, денег дополнительно не требуют, хотя на посылке указана полная стоимость. Не сравнить с UPS – они дерут дополнительно деньги, прикрываясь каким то законом Беларуси. Уродская контора.

p.s. Пока писал эту заметку, дочка почти собрала Megaminx.

UPD 03.12.2009:
Начало тут.