Это не тянет на полноценный патч, это скорее универсальный костыль. И код «патчится» во время рантайма. (Т.е оригинальный код успевает выполниться, и приложение успевает зарегистрироваться в гроул, и даже может отправить туда нотиф). Код почти тривиальный и для разработчиков пользы не несет :)
Не знаю, зачем делать проксю. Я и не делал. Мой плагин полностью заменяет код, предназначенный для работы с гроул, на код, для работы с NC, в самих приложениях. Он не весит отдельным процессом и ничего на себя не берет, в отличии от Hiss :). Наличие гроула не требуется (однако если его нет, то, например, скайп спешит сбросить его из настроек при перезапуске).
А переписывание самого гроула приведет к тому же, что нам показывает Hiss (это изза специфики работы NC). Тут два варианта — или хакать NC и Гроул (оба сразу. Мало того, что первый не задокументирован как полагается, так еще и закрыт, и лежит в одном из толстенных фреймворков, откуда его дампить крайне не приятно), или приложения. Я пошел по второму пути. В результате нотификации отправляются напрямую NC, без посредников. Ну и соответственно по тыку происходит переход, если он должен был произойти.
Я сам жду Growl 2. Но есть основания полагать, что они не сделают «каждому приложению — своя панелька и настройки в NC». Т.е будет выглядить так-же, как это выглядит у Hiss.
Скорее всего да, это nightbuild'ы, так называемые. Я туда не суюсь. :)
Локальные и push — это штука есть только в iOS. На MacOSX все уведомления только локальные. Пока. Я не помню в документации (которая, на мое удивление, весьма скудна была месяц назад) о push не было ни слова.
Если это обновление вышло менее месяца назад — то я его не приметил. Когда я начинал разработку в исходниках Transmission еще о NC не было ни строчки, и, соответственно, у меня центр был пуст. Но я смотрел stable ветку. Сейчас (проверил) нотификации Transmission v2.61 у меня идут через мой плагин, а не на прямую.
Code Injections (wiki) и в частности о SIMBL(wiki)
Кратко говоря это инструмент, позволяющий выполнять код внутри чужого процесса. В частности у меня инжектор используется для того, чтобы выполнить подмену методов, отвечающих за общение с Growl.
Совершенно согласен. Благодаря тому, кстати, что последние оказались опенсурсными, мне и удалось написать эту штуку, изучая то, как именно дергается гроул в этих приложениях.
Но покуда поддержки нет… :-)
А переписывание самого гроула приведет к тому же, что нам показывает Hiss (это изза специфики работы NC). Тут два варианта — или хакать NC и Гроул (оба сразу. Мало того, что первый не задокументирован как полагается, так еще и закрыт, и лежит в одном из толстенных фреймворков, откуда его дампить крайне не приятно), или приложения. Я пошел по второму пути. В результате нотификации отправляются напрямую NC, без посредников. Ну и соответственно по тыку происходит переход, если он должен был произойти.
Локальные и push — это штука есть только в iOS. На MacOSX все уведомления только локальные. Пока. Я не помню в документации (которая, на мое удивление, весьма скудна была месяц назад) о push не было ни слова.
Кратко говоря это инструмент, позволяющий выполнять код внутри чужого процесса. В частности у меня инжектор используется для того, чтобы выполнить подмену методов, отвечающих за общение с Growl.
Но покуда поддержки нет… :-)