Пишу, по большей части, про историю, свою жизнь и немного про программирование.

«Граул» и протокол ГНТП

У меня тут «Граул» обновился на «Маке» и я краем глаза увидел, что появилась поддержка какого-то GNTP. Оказалось, что это сетевой протокол, который позволяет регистрировать свои приложения через сеть и слать в «Граул» свои уведомления.

«Граул», для тех кто не в курсе, программулина, которая позволяет различным сторонним программам формировать всплывающие уведомления в едином унифицированном виде. Кстати, существует и версия для «Виндоуз».

Включается поддержка ГНТП специальной галочкой в настройках, после чего можно отсылать свои уведомления. Там же можно задать и пароль, чтобы ни одна сволочь снаружи не смогла что-то вам прислать.

Граул (62.74КиБ)

Протокол несложный и поддерживает три команды: можно зарегистрировать своё приложения и его типы сообщений, сформировать сообщение и подписаться на события. Для параноиков поддерживается ещё и шифрование (AES, DES или 3DES на выбор).

Прежде чем ваше приложение отошлёт сообщение, оно должно «зарегистрироваться» в «Грауле» — представиться и рассказать что за сообщения оно будет слать и как их оформлять. Ниже на скриншоте показан список зарегистрированных приложений, включая мой скрипт.

Приложение зарегистрировано (61.19КиБ)

Я тут попробовал поработать с ГНТП из bash-скрипта, получилось удобоваримо, заодно вспомнил как работать с утилитой expect (можно было бы использовать netcat, но telnet плюс expect — интереснее и более гибко).

Увы, у expect под «Маком» какой-то баг с кодировкой UTF-8 — иногда русские буквы приходят в странном виде, не смог пока это побороть.

Внутри файла, в конце есть пример, который показывает как отослать сообщение и, в случае неудачи, попробовать сначала зарегистрировать своё приложение и потом отправить своё сообщение ещё раз:

# Пробуем отослать сообщение
cmd='GrowlSendNotify "" "" "Hello all!"'

eval $cmd || (
    GrowlSendRegister && eval $cmd
)

Внутри моего скрипта есть ещё функция получения IP локальной машины, на самом деле она там лишняя — «Граул» слушает на всех адресах, но мне было интересно написать такую функцию.

18 комментариев
.silent 2012

Граул, ГНТП, Мак, Виндоуз
Но UTF-8, IP и, что самое главное, интерфейс OS X на английском

Определись, по-английски писать названия нормально или по-русски :)

Евгений Степанищев (bolknote.ru) 2012

Комментарий для .silent:

Определись, по-английски писать названия нормально или по-русски :)

Я уже определился. У меня есть определённая стратегия. Например заметьте, что все английские названия написаны наклонно.

что самое главное, интерфейс OS X на английском

Интерфейс «Мака» у меня на русском. Интерфейс программы «Граул» — на английском, другого языка там нет.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для .silent:

что самое главное, интерфейс OS X на английском

Мне интересно, почему это вам самым главным кажется. Предположим, что он у меня на английском был бы. И что?

profiles.google.com/jankkhvej 2012

Комментарий для Евгения Степанищева:

Никак не соберусь купить новый Growl. А теперь, в связи с введением уведомлений в новой OS X, и не знаю -​-​ стоит ли? Что посоветуете, Евгений?

Евгений Степанищев (bolknote.ru) 2012

Комментарий для profiles.google.com/jankkhvej:

Думаю, всё-таки следует подождать. Возможно, что с появлением новой версии «Граул» помрёт. Да и не назвать «Граул» суперполезным. Я его использую в связке с «Альфредом» ( http://www.alfredapp.com/ ), у меня написано несколько плагинов (например, переводчик), которые выводят уведомления на экран как раз через «Граул».

profiles.google.com/jankkhvej 2012

Комментарий для Евгения Степанищева:

Спасибо!

.silent 2012

Комментарий для Евгения Степанищева:

Транскрибированные названия ломают глаз и делают трудным поиск контента из поисковиков.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для .silent:

Что же вам Нью-Йорк, Кока-Кола, Ниссан или Дженифер Лопез глаз не ломают, а тут он у вас, вдруг, сломался?

делают трудным поиск контента из поисковиков.

Вы в 21-м веке живёте: https://www.google.com/search?client=opera%26rls=ru%26q=%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%BE%D1%84%D1%82%26sourceid=opera%26ie=utf-8%26oe=utf-8%26channel=suggest

.silent 2012

Комментарий для Евгения Степанищева:

Если посмотреть на хттпс://ввв.гугл.ком/сёрч по слову «Граул», найти в результатах что-то по теме этого приложения довольно сложно (кроме этой статьи)

https://www.google.com/search?client=opera%26rls=ru%26q=%D0%93%D1%80%D0%B0%D1%83%D0%BB%26sourceid=not-opera%26ie=utf-8%26oe=utf-8%26channel=suggest

Нью-Йорк и Дженифер Лопез глаз не ломают, а Кока-Кола и Ниссан — ломают, но не сильно, потому что уже заежжено и приелось.

Ломает глаз больше всего смесь из транскрибированных и обычных названий, потому что черт его знает, какое название на странице искать, Opera или Опера, AES или АЕС :)
Сокращения транскрибировать — вообще рак мозга, я считаю. Откуда такое, зачем?
ГНТП? Почему тогда не ТПОГ (транспортный протокол оповещения Граул) ?

Евгений Степанищев (bolknote.ru) 2012

Комментарий для .silent:

Если посмотреть на хттпс://ввв.гугл.ком/сёрч по слову «Граул», найти в результатах что-то по теме этого приложения довольно сложно (кроме этой статьи)

А оно надо? В моей статье есть ссылка. Значит через некоторое время Гугл будет находить.

Кока-Кола и Ниссан — ломают, но не сильно, потому что уже заежжено и приелось

Мне кажется, вы лукавите.

Ломает глаз больше всего смесь из транскрибированных и обычных названий, потому что черт его знает, какое название на странице искать, Opera или Опера, AES или АЕС :)

Постепенно обычный названий будет больше, а латинских — меньше и проблема отпадёт.

Сокращения транскрибировать — вообще рак мозга, я считаю. Откуда такое, зачем?

Не транскрибировать сокращения — вот рак мозга. Мешать латиницу и кириллицу — тоже рак мозга. Я готов поспорить вы не пишите вместо «ФБР» FBI или вместо «ЦРУ» CIA. А почему? Только потому что одни сокращения старше других?

ГНТП? Почему тогда не ТПОГ (транспортный протокол оповещения Граул)?

А почему «Протокол Транспортный Нотификаций Граула» (ПТНГ)? Или ещё как-то так? Ровно потому что написания пока нет, а я его ввожу.

Астродроид Женя (efix.livejournal.com) 2012

Я тоже споткнулся об ГНТП в заголовке.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для efix.livejournal.com:

Смотрите: ФБР, ЦРУ. Ну как, не спотыкаетесь?

Sain 2012

Комментарий для Евгения Степанищева:

Не спотыкаюсь, потом что ФБР — Федеральное бюро расследований, ЦРУ — Центральное разведывательное управление. А ГНТП — Граул нэтворк нотификэйшн протокол? УТФ-8 — У(ю)никод трансформэйшн формат?
Да ладно вам!

Евгений Степанищев (bolknote.ru) 2012

Комментарий для Sain:

ГНТП — Граула Нотификаций Транспортный Протокол.
УТФ-8 — Уникода Трансформаций Формат-8.

Да неважно, на самом деле. Вы когда видите «ФБР» не расшифровываете его в уме, я уверен, просто воспринимаете как слово.

Астродроид Женя (efix.livejournal.com) 2012

Евгений, не сердись.
Если люди говорят, что им что-то неудобно, не надо убеждать их в обратном.
Да, это твой блог, ты имеешь полное право писать так как тебе хочется. Я ни в коем случае ничего не хочу предъявлять.
Воспринимай это как «отзывы пользователей».

Евгений Степанищев (bolknote.ru) 2012

Комментарий для efix.livejournal.com:

Так я и не сержусь.

Если люди говорят, что им что-то неудобно, не надо убеждать их в обратном.

Надо, конечно. Большинство путает неудобное и непривычное.

Sain 2012

ГНТП — Граула Нотификаций Транспортный Протокол.
УТФ-8 — Уникода Трансформаций Формат-8.

Ага. Звучит. :)

Вы когда видите «ФБР» не расшифровываете его в уме, я уверен, просто воспринимаете как слово.

Да, воспринимаю как слово. Но я знаю, что у этого «слова», как у любой рождённой «естественным» путём аббревиатуры, есть смысл, оно подчиняется общим правилам русского языка и расшифровки «нескольких написаных подрях заглавных букв». А когда вижу ГНТП, я в жизни не догадаюсь, что это надо сначала транслитерировать в английские буквы и уже только тогда расшифровывать как обычную аббревиатуру.

Конечно, вы можете писать как вам угодно.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для Sain:

А когда вижу ГНТП, я в жизни не догадаюсь, что это надо сначала транслитерировать в английские буквы и уже только тогда расшифровывать как обычную аббревиатуру.

А чем вам не нравится предложенная мной расшифровка-то?