Показаны сообщения с ярлыком apple. Показать все сообщения
Показаны сообщения с ярлыком apple. Показать все сообщения

Pod-pod-pod

0 коммент. | добавить комментарий
Вчера, 12 сентября, Стив Джобс на специальной презентации Apple продемонстрировал обновленную линейку плееров iPod. В глаза бросилось то, что новая прошивка плееров iPod video и iPod nano позволяет (наконец) играть в игры и (о, ужас!) запускать ПО сторонних производителей.

- Сережа, к чему ты клонишь?
- К тому, что теперь под iPod, а точнее - под ОС Apple для iPod можно писать софт.

Мак-девелоперы, ряды которых я покину через три дня, скоро начнут медитировать на фреймворки с названиями вроде iPodApplicationKit и CoreIPod. Я как будто вижу перед собой оглавление следующего ADC Reference с классами NSiPodPlaylist, NSiPodSettings, NSiPodControl, и т.д.


iPod is Not a Black Box Anymore!


Так совпало, что именно сегодня я снес прошивку Rockbox с моего iPod nano (теперь уже предыдущего поколения) и вернулся на оригинальный firmware Apple.

Эксперименты на живом iPod nano я начал сразу, как только узнал, что его родная прошивка Apple имеет настоящий bootloader и умеет обращаться с файловой системой - а значит, может именоваться Операционной Системой. Для такого популярного гаджета просто не может не быть альтернативных ОС - решил я, и оказался прав.

К установке нарытого мной в Интернете iPodLinux я подошел серьезно. Вначале я долго читал форумы, на которых американские ай-подо-воды жаловались друг другу на неудачи с установкой данной ОС на свои гаджеты, в результате чего последние переставали работать, а предпоследние шли в магазин за новыми гаджетами. Однако, экспериментатор победил скептика, в результате чего я целую неделю играл в iDoom, запускал редактор vi, медитировал на bash и неимоверно пёрся.

Спустя неделю я вернулся к родной прошивке. Следующим экспериментом была установка прошивки Rockbox, которую мне очень рекомендовал друг Женя. Rockbox продержался на моем iPod целый месяц, поскольку в комплекте с ним я нашел целую кучу игрушек, которые доставили мне много приятных минут.

Почему я снова вернулся к родной прошивке? Потому, что в проигрывании музыки ей нет равных. Также ей нет равных по удобству интерфейса. iPodLinux, конечно, имеет mp3-плеер, но у меня он иногда зависал, и, к тому же, я так и не смог добиться от него поддержки Unicode в ID-тегах. Rockbox в этом отношении вел себя несравненно лучше, но, признаться, я так и не смог привыкнуть к его интерфейсу. Может быть, на всяких там iRiver прошивка Rockbox рулит, но...

Не знаю, в общем. Кто-то из зала кричит, что, мол, iTunes - suxxx! Я раньше тоже так думал. Однако, распробовав хорошенько связку iTunes + iPod, на самом деле уже не хочется ничего другого. Да, идея копировать музыку на плеер просто в виде файлов и директорий звучит заманчиво, но надо ли мне оно?




Почему тогда я устанавливал iPodLinux, Rockbox? Более того - почему я собираюсь пробовать новые прошивки, как только таковые будут появляться? И еще более того - почему я советую всем ай-подовцам и ай-подовкам делать как я? Да потому, что это чертовски занятно! Я с нежностью смотрю на маленький экранчик моего гаджета, на котором (ни хрена себе!) я селил целых две ОС, для которого я компилировал ядро linux, в котором я создавал новые разделы на диске... Мне кажется - это сравнимо с чувствами маленького ребенка, который в который раз разбирает новую, только что подаренную ему машинку, чтобы посмотреть, что там у нее внутри.

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

Вести с поисковых полей

0 коммент. | добавить комментарий
В Mac OS 10.4, среди прочих новшеств, была внедрена технология поиска Spotlight, включающая индексирование и поиск по именам файлов, а также индексирование и поиск по метаданным. Для меня это значит примерно следующее: поскольку наш проект использует свой формат документов, представляя их в виде Mac OS bundles (т.е. документ представляет собой папку, в которой содержится описание структуры документа, а также хранятся использованные текстуры, материалы, 3D-объекты, представления и пр.), то автоматически Spotlight'овый поиск по нашим документам работать не будет. Чтобы справиться с этой проблемой, мне вчера довелось написать плагин для системы Spotlight - т.н. Spotlight Importer, который предоставляет данной системе метаданные наших документов в требуемом ей формате.

Об этом и речь. Для быстрого поиска информации в системе можно, как Microsoft, долго разрабатывать WinFS, и впоследствии отказаться от внедрения ее в новой версии Windows, а можно придумать Spotlight, поддержать поиск по стандартным форматам данных, и обязать разработчиков писать плагины для поиска по нестандартным форматам. Отличие в том, что второй подход уже реально работает на протяжении более чем полугода, а первый - нет, и неизвестно, когда WinFS будет-таки выпущена в свободное плавание.

Итак, Spotlight Importer. Его разработка сводится к реализации функции Boolean GetMetadataForFile(void* thisInterface, CFMutableDictionaryRef attributes, CFStringRef contentTypeUTI, CFStringRef pathToFile), которая принимает имя документа, созданного в нашем приложении, а возвращает ссылку на словарь метаданных attributes. Очевидно, что данная функция должна открыть документ, прочитать из него то, что может быть проиндексировано, и запихнуть это все в словарь attributes. Я уложился в набор стандартных ключей, используя:

  • kMDItemTitle - имя документа
  • kMDItemAuthors - массив, состоящий из имен авторов документа (у наших документов м.б. только 1 автор)
  • kMDItemDescription - описание документа

Нет, ну ведь правда здорово? Немедленно создаем документ spiralka и заполняем поля автор/копирайт/описание (кому не видно - имя автора "Zaycheg"):



Итак, что мы теперь найдем в Spotlight по запросу "zaycheg"? Конечно же, документ spiralka:



Не просто, а очень просто! Напоследок самое вкусное: как связать разработанный плагин с форматом документов. Иными словами - как сказать Spotlight'у, что для индексирования наших документов необходимо запустить наш плагин. Для этого в файл Info.plist приложения (содержит метаданные о приложении) необходимо указать тип (расширение) наших документов в формате UTI (Uniform Type Identifier). После первого запуска приложения Mac OS проанализирует его файл Info.plist, а затем всегда будет искать плагин для индексирования данного UTI в bundle приложения, и в системных папках Library. А плагин декларирует множество поддерживаемых UTI, и имеет собственный GUID, что гарантирует его уникальность в системе.

Ну красота ведь! До сих пор не нарадуюсь :)
А Microsoft пускай еще WinFS попишет.