• Поиск метода установки Mac OS X под VMWare Fusion

    Если вы пытались установить под VMWare Fusion или Parallels Mac OS X, то сталкивались с отказом - есть возможность установить только Mac OS X Server. Это связано с лицензионным ограничением Apple, и, конечно же, ни VMWare, ни Parallels не хотят подвергать себя риску быть обвинёнными в нарушении Software License Agreement.

    Read on →

  • Ответ разработчиков Hazel по поводу влияния программы на время автономной работы

    В комментарии к предыдущей статье по Hazel @stanislavskiy сообщил о своём негативном опыте - на его наборе правил Hazel ноутбук MacBook Pro расходовал батарею всего лишь за час, хотя нормальное время работы с выключенным Hazel было не меньше трёх часов.

    Hazel классная штука, но с запущеным резидентом жрет батарею MB Pro за час. А для стационарных машин - самое то. Я полгода назад его пытался активно юзать и даже паниковал, что батарея навернулась. Вырубил резидента - все наладилось. Экспериментировал трижды - все сходилось, потом вырубил резидента и просто раз в сутки запускал правила на выполнение.

    При работе Hazel с одним правилом, описанным в статье, я не заметил снижения времени автономной работы, поэтому решил задать вопрос непосредственно разработчикам:

    Hi,

    I like your program and I’m planning to buy it. But I‘ve received interesting feedback from my friend:

    "Hazel is a brilliant, but running in background it eats MacBook Pro battery. Battery life is near one hour instead of four hours. For desktop machines it works fine. I tried Hazel six months ago and was in panic - the battery was broken. I tried three times - results was the same."

    Personally I think you are using the same file system event notification mechanism as the Spotlight metadata server, and Hazel doesn't drain the battery.

    Please clarify - do you have any reports about short battery time when using Hazel?

    Я люблю работать с зарубежными разработчиками - практически всегда оперативный и качественный ответ приходит в очень короткие сроки. Разработчики Hazel - не исключение, на следующий день ответ был получен:

    Hazel actually has to poll since it's using an older filesystem notification mechanism (this was for Tiger compatibility). Hazel 3.0 will have a re-written engine which will use the newer system used by Leopard and later. Actually, it's very likely that version 3 will leapfrog Leopard and require Snow Leopard instead.

    That said, I haven't noticed much battery drainage (I run it on an old PowerBook). It does depend on how you use it though. If you have it recursively scanning a large folder tree then that could potentially be draining. I suggest testing it out for yourself as these things are hard to predict. If you (or your friend) do notice drainage, then let me know as I'm always curious about these types of things. It might be helpful to send me a copy of the rules.

    If you have anymore questions, just let me know.

    Вкратце передам смысл. Текущая версия Hazel использует старый механизм получения нотификаций об изменениях файловой системы, это сделано для совместимости с 10.4. При сканировании каталогов с большим количеством данных существует возможность усиленного расходования батареи ноутбука. Если такое проявляется, то нужно написать разработчикам. Сейчас ведётся работа над версией 3, которая будет использовать усовершенствованные механизмы нотификаций Leopard и Snow Leopard, и влияние на время автономной работы будет минимально.


  • Функциональные клавиши на ноутбуке одним нажатием

    На ноутбуках Apple функциональные клавиши управляют в первую очередь такими специальными функциями, как регулировка яркости экрана, громкости звука и т.п., и только во вторую очередь являются функциональными. Для получения, допустим, F6, нужно нажать Fn+F6. Это разумно, ведь большинству людей не нужны F1..F12.

    Однако мне чаще нужны именно функции F1..F12, например, с помощью F6 я перемещаю почту в Mail.App. Для перенастройки поведения функциональных клавиш нужно зайти в "System Preferences/Keyboard" и включить опцию "Use all F1, F2, etc. keys as standart function keys":

    Для вызова же специальных функций нужно теперь нажимать модификатор Fn. Например, отключение звука на MBP'09 доступно при нажатии Fn+F10.


  • Работа с Hazel на примере автоматизации публикации скриншотов в Dropbox

    В обсуждении статьи "Как заставить работать симлинки в Dropbox" Pomidorchi поставил интересную задачу:

    В целом я сейчас ищу решение такой проблемы:

    1. заставить системную скриншотоделалку мака (та что по shift+cmd+3/4) кидать скрины в /Dropbox/Public/scr (добился этого с помощью Onyx)
    2. как-то эти скриншоты автоматически переименовывать в что-то вроде "2009-09-26_scr1.png"
    3. а уже потом кидать результат в буфер.

    Read on →

  • Mail.app + Mail Act-On + клавиатура

    Я работал с разными почтовыми программами под различными операционными системами: Outlook Express, The Bat!, Thunderbird, mutt, Outlook (личная почта в GMail не в счёт). Моей любимой программой был консольный почтовый клиент mutt - я его использовал по крайней мере года три. Он был чрезвычайно удобен в том числе из-за того, что полностью управлялся с клавиатуры. "All mail clients suck. This one just sucks less". Кстати, он и сейчас продолжает развиваться.

    Когда мне пришлось перейти на Exchange, то, к сожалению, нормальной альтернативы Microsoft Outlook не оказалось (включить поддержку IMAP+SMTP и продолжать работать в mutt было невозможно, Evolution/Unix, а затем Entourage/Mac мне не нравились). Сейчас же, с появлениением в Snow Leopard поддержки Exchange, перешёл на штатный Mail и теперь почти полностью работаю с почтой с MacBook Pro, разве что в отдельных случаях запускаю Outlook под виртуальной машиной. Однако ностальгия по mutt не отпускала - хотелось самые частые операции делать не мышкой, а нажатием комбинации клавиш.

    Read on →

  • Скрытие каталогов

    Некоторые программы создают свои каталоги в ~/Documents, и лично мне они не нужны, и в Finder я не хочу их видеть. К таким каталогам относятся, например, "Virtual Machines" (VmWare), "SMS Chat Logs" (BluePhoneElite 2), "iChats".

    Раньше была возможность скрытия каталогов в "Get Info" Finder'а (то ли в 10.4, то ли в ранних версиях 10.5.x), но потом она исчезла. Однако это можно сделать в Terminal.app.

    Есть два варианта - можно использовать либо команду SetFile (она поставляется вместе с Mac OS X Developer Tools, т.е. нужно установить XCode), либо штатную команду chflags.

    Скрыть каталог: "SetFile -a V dir" или же "chflags hidden dir".

    Отображать каталог: "SetFile -a v dir" или "chflags nohidden dir".

    $ cd ~/Documents
    $ ls -al
    drwx------+ 15 ctrld  staff    510 Sep 21 00:33 .
    drwxr-xr-x+ 30 ctrld  staff   1020 Sep 25 15:15 ..
    -rw-------@  1 ctrld  staff  15364 Sep 27 13:05 .DS_Store
    -rw-r--r--   1 ctrld  staff      0 Aug 28 08:38 .localized
    drwxr-xr-x  10 ctrld  staff    340 Sep 25 16:48 Backups
    drwxr-xr-x  19 ctrld  staff    646 Sep 25 16:49 Books
    drwxr-xr-x  16 ctrld  staff    544 Aug 20 11:03 Development
    drwxr-xr-x  65 ctrld  staff   2210 Sep 10 16:31 Notes
    drwxr-xr-x  13 ctrld  staff    442 Sep 21 00:33 Personal
    drwxr-xr-x   4 ctrld  staff    136 Sep  2 17:18 SMS Chat Logs.localized
    drwxr-xr-x  13 ctrld  staff    442 Sep 21 14:44 Travels
    drwxr-xr-x   4 ctrld  staff    136 Aug 29 19:33 Virtual Machines.localized
    drwxr-xr-x  11 ctrld  staff    374 Apr 14 15:47 Work
    drwx------  21 ctrld  staff    714 Sep 25 10:52 iChats
    drwxr-xr-x  19 ctrld  staff    646 Sep 25 12:52 Статьи
    
    

    Read on →

  • Синхронизация Address Book с Google

    Несколько раз, когда я писал письма через GMail, оказалось, что email'ы отсутствовали в адресной книге GMail, но при этом я их аккуратно записал в адресную книгу на Маке. Вспомнив, что в настройках Address Book кроме синхронизации с MobileMe есть ещё и синхронизация с Google, я решил сделать единую адресную книгу для всех используемых мною сервисов.

    Предупреждение: обязательно сделайте бекапы адресной книги в Mac OS X и в Google.

    Для начала я удалил из адресной книги в учётной записи GMail всех, кроме людей, с которыми я общаюсь по Google Talk. Сразу предупреждаю - у меня трижды были ситуации, когда при полной ресинхронизации удалялись контакты GTalk, в итоге могла теряться авторизация и приходится её повторять (или самому, или же контактам). Например, вот вообщения, которые были получены во время чистки, хотя этот контакт не удалялся:

    |2009-09-25T12:57:47|7|from|N---|unsubscribe
    |2009-09-25T12:57:48|8|from|N---|unsubscribed
    |2009-09-25T12:57:48|7|from|N---|unsubscribe
    |2009-09-25T12:57:48|8|from|N---|unsubscribed
    

    Затем я включил синхронизацию в Address Book с Google, согласился с предупреждением, и ввёл имя и пароль учётной записи GMail

    Для ускорения синхронизации воспользовался командой, найденной на форуме MacRumors (Terminal.app). При наведении на команду появляется toolbar, через который можно её скопировать, пока привожу так, а потом буду разбираться с нормальным представлением текста.

    <pre> /System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync –sync com.google.ContactSync </pre>

    При выполнении выдались ошибки, но если процесс повторить, провести вычистку дублей (ниже), то они исчезают:

    ole-mac:~ ctrld$ /System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync --sync com.google.ContactSync
    2009-09-25 11:51:44.398 gconsync[14521:903] [10af20] |ISyncSession|Warning| com.google.ContactSync: transitioning to cancel - session cancelled by server: SyncServer failed to merge the changes from some clients: ISyncSessionCancelledException session cancelled
    2009-09-25 12:02:02.821 gconsync[14599:903] [10af20] |Miscellaneous|Error| SyncServices precondition failure in [ISyncConcreteSession _commitAcceptedChangesAndStartAnotherTransaction:]: you have unresolved references to the following records - you must resolve all references before you can commit your changes: (
        "gcon:8043E07A48134EB4AE9C7577303B4CF4",
        "gcon:D459FE78D1D4843A4F55A8B6C093C920",
        "gcon:4B5BCB55395EEDB3F9E0AD5D72B01A7E",
        "gcon:4BADF21324A3E74731111037F495D827",
        "gcon:64A7F1889C6ED59F4644C47EAF97EB9F"
    )
    2009-09-25 12:02:02.821 gconsync[14599:903] Top level exception caught [ISyncConcreteSession _commitAcceptedChangesAndStartAnotherTransaction:]: you have unresolved references to the following records - you must resolve all references before you can commit your changes: (
        "gcon:8043E07A48134EB4AE9C7577303B4CF4",
        "gcon:D459FE78D1D4843A4F55A8B6C093C920",
        "gcon:4B5BCB55395EEDB3F9E0AD5D72B01A7E",
        "gcon:4BADF21324A3E74731111037F495D827",
        "gcon:64A7F1889C6ED59F4644C47EAF97EB9F"
    )
    ole-mac:~ ctrld$ /System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync --sync com.google.ContactSync
    ole-mac:~ ctrld$
    

    Также может выдаться окно с сообщением о конфликте синхронизации с предложением выбрать, какой контакт правильный. Обратите внимание, что новая запись имеет дополнительное поле "Google Talk", по крайней мере для тех, с кем вы общаетесь по GTalk.

    Затем следует чистка дубликатов в Address Book, их редактирование, слияние и удаление. Приготовьтесь к задвоениям/затроениям контактов, их придётся вычистить вручную и повторить синхронизацию указанной выше командой, и снова повторить процесс.

    В итоге синхронизация работает, при создании контакта в GMail он синхронизируется в Address Book. Я пока не смотрел, как часто производится синхронизация, но я думаю так же часто, как и с MobileMe.

    В заключение хочу сказать, что я описал бесплатное решение, использующее штатные средства системы. Раньше я использовал платную систему Spanning Sync, и она удовлетворяла всем моим запросам по синхронизации. Она кроме адресной книги позволяет синхронизировать календари (в iCal же можно только подписываться на внешние календари, включая Google, но это не то, что нужно).

  • Использование клавиш-модификаторов в System Preferences

    Сегодня наконец-то посмотрел последний выпуск видеоподкаста "Apple Quick Tips". В нём рассказали о простом, но не для всех очевидном приёме. В некоторых настройках в System Preferences можно задействовать клавиши-модификаторы (Shift, Control, Option, или Command).

    Речь шла о включении активных зон экрана в разделе "Exposé". Можно, например, запустить скринсейвер при достижении курсора мыши указанного угла. Но бывает, что это происходит случайно, особенно неудобно, если настроен показ всех окон или же запуск Spaces. Рецепт прост (эту фразу я использую регулярно, но согласитесь, ведь так оно и есть) - перед выбором действия нужно нажать клавишу-модификатор (одну или несколько), и действие выполнится только если эти курсор мыши попал в нужную зону и эти клавиши нажаты:


  • Коты и Маки, продолжение

    У меня есть три увлечения - Маки, Скалолазанье и Коты. О первом вы читаете здесь, о втором можно почитать на сайте "Команда Траверс и её друзья", а вот третье и постоянное увлечение остаётся неосвещённым. Поэтому объединю две такие похожие темы о Котах и о Маках в этой статье, ведь первые так любят греться на вторых.
    Эту тему очень хорошо описала Arwen в статье "Коты и Маки". Я же просто приведу картинки с Flickr без комментариев. Авторство можно посмотреть, перейдя по ссылке на каждой фотографии.


  • Как заставить работать симлинки в Dropbox

    До обновления до Snow Leopard я активно использовал символические ссылки (симлинки или же symlinks) для того, чтобы синхронизировать файлы и каталоги, находящиеся вне иерархии Dropbox, например каталог проектов или базу данных паролей 1Password. Когда перешёл на Snow Leopard, то почему-то симлинки у меня перестали работать.

    Также эту проблему озвучил @umputun в первом подкасте после выхода Snow Leopard, так что я был не одинок.

    Поясню - я обычно делал относительные симлинки:

    ole-mac:~ ctrld$ cd ~
    ole-mac:~ ctrld$ date > test1.txt
    ole-mac:~ ctrld$ ls -al test1.txt
    -rw-r--r-- 1 ctrld staff 30 Sep 23 23:31 test1.txt
    ole-mac:~ ctrld$ ln -s test1.txt Dropbox/Public/
    ole-mac:~ ctrld$ ls -al Dropbox/Public/test1.txt
    lrwxr-xr-x 1 ctrld staff 9 Sep 23 23:31 Dropbox/Public/test1.txt -> test1.txt
    

    Dropbox 0.6.559 вообще не реагировал на создание симлинка (не было активности на значке в menubar) и ничего не синхронизировал, в версии 0.7.24 активность появлялась, но никогда не заканчивалась (отображался статус "Indexing 1 file...").

    В Интернет я рапортов о проблеме с симлинками не нашёл, и решил написать разработчикам. Rian H. среагировал почти мгновенно - я написал ночью, и утром уже был ответ:

    hi oleg i believe you are using the "ln" command incorrectly. the command you want to execute is:

    $ ln -s $PWD/test1.txt Dropbox/Public/
    

    the reason is that symlink sources are used verbatim by the kernel. meaning if you try to access test1.txt in your Dropbox/Public folder, it's looking for test1.txt in the same folder (a recursive symlink). You need to either a full path or a relative path from Dropbox/Public

    Моя ошибка была "от ума" - я привык создавать относительные симлинки, а нужно было создавать абсолютные:

    Вместо

    $ ln -s test1.txt Dropbox/Public/
    

    Нужно делать так:

    $ ln -s $PWD/test1.txt Dropbox/Public/
    

    Как только я так сделал, симлинки стали синхронизироваться.

    Примечание 1. Я использую Experimental Build, но должно работать и на стабильном.

    Примечание 2. После такого простого решения я задумался о том, что возможно под 10.5 я создавал абсолютные симлинки, а на 10.6 стал создавать относительные. Но по крайней мере теперь ясно, как делать правильно.