• Слежение за файловой активностью с помощью Instruments (XCode)

    Если вы относитесь серьёзно к исследованию Mac OS X, то просто обязаны иметь XCode, даже если вы и не занимаетесь программированием. В комплект XCode кроме средств разработки входят полезные утилиты, компиляторы и прочее. Например, без него вы не сможете скомпилировать какой-либо пакет, поставляемый в виде исходных текстов. Конечно же, большинство популярных программ доступны уже в виде готовых пакетов с инсталляторами (mysql), но всегда может понадобится что-то уникальное.

    Read on →

  • Блокировка Flash в Safari (ClickToFlash)

    Adobe Flash славится своим неадекватным поведением под Mac OS X. При запуске из браузера он начинает отъедать максимум ресурсов CPU, через какое-то время на ноутбуке подымается температура процессора, включается вентилятор. Ладно если это происходит днём - шум можно пережить. Но поздно вечером любой flash-баннер приводит к повышению шума выше порога комфортности. Кстати очень вероятно, что именно из-за подобной ресурсоёмкости Flash отсутствует до сих пор на iPhone.

    Например, на MacBook Pro Flash доводит load average почти до 2.00 (резкий рост загрузки CPU начался, как только я запустил ролик YouTube):

    Раньше я боролся с Flash в Safari просто - заходил в настройки (Cmd + ,), затем в закладке Security отключал "Enable Plugins". Секунда, и Flash отключен (впрочем и другие плагины тоже):

    Я описал этот метод в Twitter и мне сразу ответили, что есть более нормальный метод - ClickToFlash (точно не помню, кто именно мне порекомендовал его, возможно @alexmak и ещё кто-то).

    Program: ClickToFlash
    Author: Rentzsch
    Status: OpenSource
    iUseThis: 156

    Программа проста до гениальности - вместо Flash она отображает статическую картинку, а уж если без Flash не обойтись, то достаточно сделать на ней Click:

      Вот перечень всех функций ClickToFlash (мне особенно нравится "Block evil Flash" :-):
    • Block evil Adobe Flash. Показывает только тот Flash, который нужен.
    • One-click Flash loading. Загрузка Flash то единственному клику.
    • Higher quality YouTube. Проигрывание видео H.264 в QuickTime.
    • HD YouTube support. Показывает YouTube в формате HD.
    • Website Whitelist. Позволяет добавлять автоматическую загрузку Flash для определённых сайтов (например, Google Analitycs).
    • Applications Whitelist. Добавление приложений, использующих WebKit, в белый список - это делается через командную строку.
    • sIFR Typography Support. Автоматическая загрузка sIFR.
    • Automatic Updating.

    Меню, отображаемое при нажатии на пиктограме на "stub-picture":

    Настройки плагина:

    Этот плагин из разряда "must have" - чрезвычайно рекомендую. Теперь Flash я запускаю только тогда, когда это явно необходимо. Побочный эффект - я избавился от части особо надоедливых анимационных баннеров.

  • Как скрыть образы Time Machine

    Я уже рассказывал, как скрывать ненужные каталоги. Только что, читая Mac OS X Hints, натолкнулся на частный случай. Если вы не хотите видеть каталоги с бекапами Time Machine на внешнем диске или TimeCapsule, то зайдите в Terminal.app и с помощью команды chflags скройте образы sparsebundle.

    Например, диск моей TimeCapsule называется Meow:

    $ mount
    ...
    afp_0W9UZU1zWuel00mUJs0Pyetl-1.2e00000a on /Volumes/Meow (afpfs, nodev, nosuid, mounted by ctrld)
    ...
    $ cd /Volumes/Meow
    $ ls -al
    ...
    drwxrwxrwx@ 7 ctrld  staff    264 Oct 11 16:51 ole-mac.sparsebundle
    $ chflags hidden ole-mac.sparsebundle/
    

    После этой операции образы Time Machine уже не будут мозолить вам глаза.


  • Настройка мобильного Интернет нескольких операторов через один модем (Multi APN)

    Вы можете иметь только одно мобильное подключение к одному оператору, и не знать горя. Однако если вы достаточно мобильны, то могли сталкиваться с тем, что покрытие у разных операторов не идеально, и если в одной точке лучше оператор X, то в другой - оператор Y. Имея универсальный модем, поддерживающий различные стандарты мобильной пакетной связи и несколько SIM-карт разных операторов, можно всегда иметь возможность работы в Интернет.

    Одно "но". В общем случае для каждого оператора нужно указывать свои настройки APN (Access Point Name - это имя, по которому мобильный оператор предоставляет тот или иной сервис, их может быть несколько), и не всегда такая возможность есть в программе, поставляемой с модемом. Или же эта программа не работает со Snow Leopard. Причин бывает много.

    Некоторые операторы позволяют работать в своей сети с любым APN (например, абонент Утел в сети Утел может указать APN www.kyivstar.net вместо 3g.utel.ua), но лучше APN указывать явно.

    Read on →

  • Установка USB HSDPA-модема Option iCON 431 T-Mobile под Snow Leopard

    Ранее я рассмотрел настройку модемов Huawei E220 и E219 под Snow Leopard. Теперь же я взял USB модем Option iCON 431. Одно уточнение - для экономии я купил модем, брендированный под T-Mobile, он на 50$ дешевле.

    Это третья версия статьи, я её модифицировал, пройдя с самого начала процесс установки на "чистом" MacBook.

    Read on →

  • Focus follows mouse

    При работе с несколькими мониторами в Mac OS достаточно неудобно при переходе на другой монитор каждый раз кликать на окно для перемещения фокуса (Click to focus). Вероятно, люди, привыкшие к Mac OS X или Windows не задумывались о такой проблеме, но выходцы из классических Unix задаются этим вопросом. Рекомендую почитать интересную дискуссию "Settling the OS X focus-follows-mouse debate".

    Read on →

  • Утилиты для наблюдения за аккумулятором ноутбука

    Батареи в ноутбуках с первого же включения начинают стареть и их параметры медленно, но неустанно ухудшаются. Это закономерный процесс, и обращать внимание на то, что за месяц ёмкость батареи упала на несколько процентов, особо не стоит. Однако и запускать этот процесс не лучший выход - периодически (желательно раз в месяц) нужно делать полный цикл разряда/заряда по инструкции "Apple Portables: Calibrating your computer's battery for best performance", и ни в коем случае не допускать ситуации, когда ноутбук постоянно работает от сети (в этом случае за год батарея умрёт). Рекомендую также посмотреть раздел на сайте Apple "Apple Notebooks" - в том числе на странице есть подписке на календарь iCal, напоминающий о необходимости сделать цикл тренировки батареи.

    Read on →

  • Находим открытые файлы в каталоге

    По shell сделаю перерыв после этой заметки.

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

    На помощь приходит штатная утилита lsof.

    Допустим, не отключается диск "Time Machine Home". Смотрим, куда он подмонтирован:

    ole-mac:~ ctrld$ mount
    /dev/disk0s2 on / (hfs, local, journaled)
    devfs on /dev (devfs, local, nobrowse)
    map -hosts on /net (autofs, nosuid, automounted, nobrowse)
    map auto_home on /home (autofs, automounted, nobrowse)
    /dev/disk1s2 on /Volumes/ctrld (hfs, local, nodev, nosuid, journaled, noowners, mounted by ctrld)
    /dev/disk2s2 on /Volumes/Time Machine Home (hfs, local, journaled) 

    Определяем, какие файлы используются в этом каталоге, и какими именно процессами:

    ole-mac:~ ctrld$ lsof "/Volumes/Time Machine Home"
    COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
    bash    2877 ctrld  cwd    DIR   14,8      442       2 /Volumes/Time Machine Home
    vim     2950 ctrld  cwd    DIR   14,8      442       2 /Volumes/Time Machine Home
    vim     2950 ctrld    3u   REG   14,8    12288 3305869 /Volumes/Time Machine Home/.1.txt.swp
    vim     2955 ctrld    3u   REG   14,8    12288 3305872 /Volumes/Time Machine Home/.Trashes/.3.txt.swp 

    Видим, что в интересующий нас каталог перешли ('cwd' - current working directory) два процесса (bash/2877 и vim/2950), и два vim редактируют файлы 1.txt и .Trashes/3.txt. Дальше можно либо выйти из процессов, либо их убить. В итоге внешний диск можно нормально размонтировать.


  • Берём управление сетевой активностью приложений в свои руки (Little Snitch)

    Как определить, какая программа открыла слушающий порт, я рассмотрел в статье "Идентификация через Terminal.app сетевых сервисов (lsof)". Но, как я уже сказал, следить за исходящими соединениями проблематично - например, при захвате трафика с помощью Wireshark не видно, какой именно процесс установил соединение. Штатных способов отслеживания, какая именно программа и куда устанавливает соединение в режиме реального времени я не смог найти.

    Однако есть специализированная программа, которая берёт на себя слежение за сетевым трафиком - это "Little Snitch" ($29.95). При любой попытке любого приложения сделать входящее или исходящее соединение она выдаёт окно с предложением решить, что делать - разрешить или заблокировать на выбор (все соединения программы, обращения на порт, обращения на хост, или же обращения на пару хост-порт). Также можно выбрать, это действие будет действовать однократно, либо до выхода из программы, либо всегда.

    На основании сделанного выбора создаются правила, доступные через "Little Snitch Rules":

    LS даёт запросы на установление соединение всеми программами. Особенно это чувствительно для работы в Terminal.app. Здесь выдаётся запрос для dig, nslookup, lynx, curl и т.д. - разрешить просто всё для Terminal.app нельзя. Но, с другой стороны, это очень правильно, ведь и в shell может быть rootkit, работающий под видом безобидной программы вроде ls.

    На стадии "обучения" придётся ответить на несколько десятков запросов, но в дальнейшем запросы поступают уже "по делу" и не отвлекают от работы. Главное подойти к процессу ответственно и не разрешать всё всем.

    Полезная возможность программы - это "Network Monitor", показывающий активность программ:

    С покупкой Little Snitch у меня был неприятный опыт - произошёл сбой и электронный магазин дважды снял сумму с моей карточки. Но и положительный момент был - я убедился, что несмотря на две блокировки транзакция завершается только одна, и через 30 дней мне вторая сумма была возвращена автоматически (я специально не хотел форсировать вопрос, было просто интересно).

    Little Snitch получила 4.5 звезды на MacUpdate. Есть положительные отзывы, есть и отрицательные, но положительных гораздо больше. У меня проблем не было, но каждый решает сам - использовать такую систему или нет. В любом случае, если есть опасения по поводу сетевой активности, то стоит использовать Little Snitch, хуже не будет. А когда отпадёт необходимость, то можно его удалить.


  • Идентификация через Terminal.app сетевых сервисов (lsof)

    Несколько дней назад @akaDimiG задал интересный вопрос:

    Интересно узнать, есть ли простой способ через консоль узнать о сетевых подключениях и именах программ, их осуществляющих. Цель - выяснить, есть ли шпионские программы, осуществляющие вещание в сеть без моего ведома.

    Read on →