Обновить
  • по релевантности
  • по времени
  • по рейтингу

AppleScript vs iSync (MacOS X 10.4)

Чулан

Предыстория


iSync — программа для синхронизации адресной книги, календаря с телефоном. Мне, если честно, надоело открывать iSync и руками синхронизировать все с телефоном.

Задача


написать приложение/скрипт/workflow, который бы автоматически проводил синхронизацию. Идеальный вариант — синхронизация после внесения изменений в iCal/AddressBook
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 208
Комментарии 0

Укрощение iTunes с помощью XCode и scripting Bridge.

Разработка под iOS *
Прошлым летом случилось страшное… Накрылся винт в моем МакБуке. Все важные данные были легко восстановлены. Слава Машине Времени! А вот музыкальной коллекции, которую я кропотливо взращивал годами, не повезло. Саму музыку восстановить не проблема, а вот рейтинги и количество прослушиваний, чья история уходит корнями в самое появление iTunes под Windows, ой как жалко. Пережила фонотека многое, в том числе перенос с Windows на Хакинтош, а затем и на МакБук.

Благо мадиатека была потеряна не вся — остались рожки да ножки, а точнее заветный файл "iTunes Library". На днях я решился его реанимировать.

Решение под Mac OS


imageОчевидное решение — использовать AppleScript. С помощью него практически любое приложение в Mac OS можно автоматизировать. Язык настолько близок к английскому и далек от других языков программирования, что ввел меня в ступор. Я не знал с какой стороны к нему подступиться.
Пришлось использовать XCode и немного знакомый Objective-C. Работа с XML не вызвала практически никаких проблем. NSXML… и MSXML оказались API очень похожими не только названием.

С общением с iTunes дела обстоят сложнее. Помимо собственно AppleScript, который можно использовать в проектах XCode, я нашел всего два способа. Оба по сути являются обертками для AppleScript.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 1.5K
Комментарии 3

Программное нажатие кнопки средствами Applescript

Чулан
Задача: нажать кнопку в определенном окне. Хорошо, если программа имеет встроенные функции и нажатие кнопки можно командой через AppleScript. Но если нам надо нажать кнопку в неизвестном окне, например в системных настройках? Ниже будет показано, как это сделать.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 649
Комментарии 6

Быстрая расстановка рейтинга в iTunes

Чулан
Задача: сделать хоткей, при котором в iTunes устанавливался бы нужный рейтинг для играющей песни, как бонус — массовая простановка рейтинга для нескольких композиций.
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 277
Комментарии 7

Автоматизируем переключение звука на хакинтоше

Чулан
У маков есть особенность, логичная и осмысленная на родном железе, но раздражающая при использовании нестандартных конфигураций: звук идет или в колонки или в наушники.
Разъем 3.5 только один: воткнул наушники — смолкли колонки, выдернул — звук вернулся.
Это правильно и удобно. Если только системник не стоит под столом и у звуковой карты не гораздо больше выходов.
Чтобы каждый раз не запускать вручную «Системные настройки» и копаться в них, я написал небольшой эппл-скрипт:
Как он работает
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 659
Комментарии 5

Автоматизируем iTunes

Чулан
Добавляя музыку в iTunes я столкнулся с тем, что большое число песен не имеют правильно прописанных тегов. Выглядит это примерно так

image

Детальный осмотр показал, что это не проблема кодировок. Теги в треках именно, что были забиты знаками '?'.

Читать дальше →
Всего голосов 24: ↑17 и ↓7 +10
Просмотры 391
Комментарии 14

Интересное поведение Applescript

Чулан
Интересные вещи выдает AppleScript. Если, к примеру, мы обращаемся к объекту прочесть его свойство и затем хотим соотнести значение этого свойства с определенным множеством значений, то прийдется написать конструкцию типа
объект (свойство = 1) или (свойство = 0)
вместо достаточно очевидных
объект свойство = (1 or 0)
С данной особенностью я столкнулся при написании скрипта, который сам умеет проставлять значение настройки эквалайзера в зависимости от того, какой жанр у данной песни (песен). Скрипт выглядит так:
-- определение настроек эквалайзера
property EQRock : "Рок"
property EQBlues : "Ритм-энд-блюз"

tell application "iTunes"
set EQ of (tracks whose (genre is "Rock") or (genre is "Alternative")) to EQRock
set EQ of (tracks whose genre is "Blues") to EQBlues
end tell

Если вы напишете
set EQ of (tracks whose genre is ("Rock" or "Alternative")) to EQRock

то AppleScript-машина вас не поймет, хотя написано почти по-русски. И даже если поменять конструкцию с «or» на множество {...}, то снова ничего не получится. Такое вот интересное поведение.
Всего голосов 2: ↑1 и ↓1 0
Просмотры 212
Комментарии 6

Изучаем иностранные выражения (и не только)

Разработка под MacOS *
В этой заметке я расскажу как использовать GrowlNotify, Launchd и AppleScript для периодического вывода всплывающих сообщений (на примере классических латинских выражений). Заметка рассчитана на новичков, профессионалы вряд ли найдут для себя что-то новое.

Для всех вышеупомянутых инструментов дан краткий обзор, чтобы вы могли с минимальными усилиями сделать именно то, что вам нужно — напоминания о событиях, новых сообщениях из социальных сетей, мониторинг и диагностика сетевых сервисов и т.п. Либо можно просто сделать все так, как я описал, и через какое-то время похвастаться друзьям своим знанием латинских фраз. Scientia potentia est.
Читать дальше →
Всего голосов 48: ↑35 и ↓13 +22
Просмотры 1K
Комментарии 17

Экспорт в mail.app из приложения Qt

Qt *
Возникла необходимость делать экспорт неких файлов в email (пользователи очень просят). Проблема в том как это сделать в Mac OS X. Ну предположим мы не предполагаем никаких других почтовиков кроме Mail.app. На developer.apple.com нашел описание как это делается без Qt. Первая попытка реализовать сие породила массу вопросов, ответов на которые в developer.apple.com не найти. Вобщем помучился я достаточно и тут выкладываю готовый рецепт реализации такой фичи при помощи AppleScript.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 719
Комментарии 4

Отмечание просмотренных серий на MyShows.ru

Программирование *
Tutorial

Постановка задачи


Задача: автоматизировать рутинные действия по отмечанию просмотренных эпизодов на сайте myshows.ru. Поясню, после просмотра очередной серии Теории Большого Взрыва я открываю мои сериалы, нахожу сериал, нахожу просмотренный эпизод и отмечаю его как «просмотренный».

После обнаружения api.myshows.ru сразу зародилась идея серьезно упростить этот процесс. Хотелось бы, чтобы это выглядело так: вызываем контекстное меню файла с только что просмотренной серией и выбираем «Отметить на myshows.ru».
Читать дальше →
Всего голосов 56: ↑45 и ↓11 +34
Просмотры 24K
Комментарии 66

Applescript общего назначения в повседневной офисной работе

Высокая производительность *
Хотелось бы поделиться собственными наработками нескольких решений Applescript, применение для которым может найти буквально каждый, а заодно услышать примеры других похожих универсальных решений «общего назначения». Оговорюсь, что запускаю я скрипты через горячие клавиши, привязав кнопки к запуску нужных скриптов через Quicksilver, эта привязка занимает 5 секунд.

Итак, из таких скриптов общего назначения, которые подойдут буквально каждому вне зависимости деятельности, я создал следующие.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 10K
Комментарии 15

Подписываем установщик Developer ID сертификатом

Objective C *
Если вы распространяете свои приложения сами, вне MacAppStore, в виде установщика, то вы должны знать, что Xcode не позволяет подписывать установщик Developer ID сертификатом. Это странно, если учесть, сколько обновлений Xcode уже выпущено после введения Developer ID.

В документации так и написано:
If you want to distribute your application outside of the Mac App Store as part of an installer package, create the package as you normally do, perhaps by using the packagemaker(1) command. Code sign the resulting package with your Developer ID Installer certificate by using the productsign command.

Необходимость вручную подписывать установщик немного раздражает, особенно, если это необходимо проделывать часто. Поэтому я написал небольшой сервис, который позволяет обойтись буквально несколькими кликами мышкой.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 4K
Комментарии 14

Сворачивание приложений в Dock для ленивых с помощью AppleScript

Разработка под MacOS *
Из песочницы
Tutorial
Как часто вы пользуетесь опциями некоторых программ (iTerm 2, Total Finder, Adium), которые позволяют показать окно приложения по нажатию на глобальный хоткей и скрыть это приложение при потере фокуса? Лично я — постоянно. А что если некая программа не имеет такого функционала и постоянно маячит перед глазами? Тот же Skype, например. Под катом вариант приведения своего рабочего пространства в порядок.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 4.6K
Комментарии 0

Служба Automator, загружающая изображения на Яндекс.Фотки

Обработка изображений *Яндекс API *
К созданию этой службы меня подтолкнул пост Скрипт Automator, загружающий изображения на Habrastorage, а точнее, вот этот комментарий.

Итак, в чем же сложность написания подобной службы? В том, что для загрузки изображений требуется OAuth токен, т.е. необходимо как-то его получить (и сохранить для последующего использования). Конечно же, можно создать собственное OAuth приложение и получить токен вручную. Но это не наш метод.

Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 7.1K
Комментарии 17

Зачем выполнять рутинную работу, когда её можно поручить машине?

Программирование *.NET *C# *
Из песочницы
В очередной раз пересматривая «Железного Человека» вместе с другом, меня снова пропитывало желание стать супергероем создать свой железный костюм, ну или хотя бы Джарвиса. И вдруг меня посетила гениальная идея.

Лирическое отступление
Пару дней назад был матч СуперКубка Европы 2015 по футболу, который я включил лишь на 70 минуте. Да, я досмотрел оставшуюся часть игры, но все равно остался неприятный осадок из-за того, что 70 минут отличного футбола я смогу посмотреть лишь в записи (что, как вы понимаете, совсем не то), ведь я как-то напрочь забыл про то, что летом тоже идут официальные матчи. Поплакали и хватит.

Так вот, с недавнего времени я начал активно пользовался системным календарём на Mac, и подумал, а почему бы не добавить все игры Барсы в этот самый календарь?



Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Просмотры 21K
Комментарии 7

Управление плеером Yandex.Music в OSX, используя клавиатуру без медиа клавиш

Разработка под MacOS *
Из песочницы
Недавно я принял решение развернуть в офисе на рабочем компьютере Hackintosh. Все получилось. Единственное, что мне не нравилось это отсутствие медиа клавиш на офисной клавиатуре. Ими я привык управлять музыкой, в том числе на сервисе Yandex.Music. Данная статья посвящена тому, как я исправил ситуацию.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 26K
Комментарии 26

Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 2

Информационная безопасность *
Tutorial

Выполнение (Execution)


Ссылки на все части:
Часть 1. Получение первоначального доступа (Initial Access)
Часть 2. Выполнение (Execution)
Часть 3. Закрепление (Persistence)
Часть 4. Повышение привилегий (Privilege Escalation)
Часть 5. Обход защиты (Defense Evasion)
Часть 6. Получение учетных данных (Credential Access)
Часть 7. Обнаружение (Discovery)
Часть 8. Боковое перемещение (Lateral Movement)
Часть 9. Сбор данных (Collection)
Часть 10 Эксфильтрация или утечка данных (Exfiltration)
Часть 11. Командование и управление (Command and Control)

Фаза «Выполнение (Execution)», описывает применение злоумышленниками средств и методов удаленного и локального выполнения в атакуемой системе различных команд, сценариев и исполняемых файлов, которые были доставлены в неё на предыдущем этапе.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 8K
Комментарии 0

Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 8

Информационная безопасность *
Tutorial

Боковое перемещение (Lateral Movement)


Ссылки на все части:
Часть 1. Получение первоначального доступа (Initial Access)
Часть 2. Выполнение (Execution)
Часть 3. Закрепление (Persistence)
Часть 4. Повышение привилегий (Privilege Escalation)
Часть 5. Обход защиты (Defense Evasion)
Часть 6. Получение учетных данных (Credential Access)
Часть 7. Обнаружение (Discovery)
Часть 8. Боковое перемещение (Lateral Movement)
Часть 9. Сбор данных (Collection)
Часть 10 Эксфильтрация или утечка данных (Exfiltration)
Часть 11. Командование и управление (Command and Control)

Тактика бокового движения (англ. «Lateral Movement» — боковое, поперечное, горизонтальное перемещение) включает методы получения противником доступа и контроля над удаленными системами, подключенными к атакованной сети, а так же, в некоторых случаях, запуска вредоносных инструментов на удаленных системах, подключенных к атакованной сети. Боковое перемещение по сети позволяет злоумышленнику получать информацию из удаленных систем без использования дополнительных инструментов, таких как утилиты удаленного доступа (RAT).
Читать дальше →
Рейтинг 0
Просмотры 3.4K
Комментарии 0