MOSA Multi-OS Software Artists

MOSAはソフトウェア開発者を支援します

  • iPhone/iPod touch アプリ紹介
  • MOSA掲示板
  • 活動履歴
  • About MOSA(English)

MOSA Developer News[MOSADeN=モサ伝]第328号

2009-01-27

目次

  • 「Wonderful Server Life」    第85回   田畑 英和
  • 小池邦人のCarbon視点でiPhone探求
  • ターミナルの向こうから      第40回  海上 忍 
  • DEMOsa KITAレポート               曽我 聰起

「Wonderful Server Life」  第85回  田畑 英和

〜「Podcast Producer」編〜

 さて今回からPodcast Producerについて解説していきます。このサービスもiCalサーバと同様にLeopard Serverから新しく追加されたサービスの1つです。今回はまずPodcastの概要を解説し、次回からは具体的な使用方法などの詳細を解説していく予定です。

◇Podcastとは
 皆さんはPodcastを利用したことはありますでしょうか。まだ利用したことがない方は、まずは実際に利用してみると具体的にどういったものかはすぐに分かるでしょう。iTunes Storeを利用できる環境であればいつでもPodcastを楽しむことができます。iTunes Store上でのPodcastはカテゴリーごとに分類されていて、様々なコンテンツが揃っています。例えばApple関連ですと次の
ようなものがあります。

・Apple Keynotes
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=275834665
・Quick Tours Leopard Server
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=279805844

 「Apple Keynotes」では過去開催されたMacWorldやSpecial Eventのビデオが視聴でき、「Quick Tours Leopard Server」ではLeopard Serverに関する紹介ビデオを視聴することができます。
 動画コンテンツだけではなく音声のPodcastもあります。つまりInternetのラジオ/テレビ番組といえば分かりやすいでしょうか。ただし、生放送ではありませんので、コンテンツはあらかじめダウンロードしておき、いつでも再生することができます。
 iTunesでPodcastをダウンロードしておけば、そのままiPodと同期して再生ができますし、iPhone 2.2 Software UpdateをインストールしていればiPhoneやiPod touchから直接Podcastをダウンロードすることもできます。podcastはiPodとBroadcastを組み合わせた造語ですのでiPodで再生するというのは本来の姿ではあるわけですが、iPodで再生しなければPodcastではなというわけでもありません。
 またPodcastが利用できるのはiTunes Storeだけかというとそうではなく、様々なサイトでPodcastが提供されています。そもそもPodcastはWebサーバにコンテンツのデータをアップロードして配信する仕組みになっており、iTunesStoreのPodcastページは世界中に多数存在するPodcastの配信サーバへの入り口として機能しているのです。またiTunesでなければPodcastの番組を再生することができないというものでもありません。

・iTunes上でのPodcast
http://www.htabata.com/img/MXS105/podcast/iTunes_01.png

◇PodcastとRSS
 Webサーバさえあれば音声や動画ファイルをアップロードすることによってPodcastの配信を始めることができます。ただしこれだけではたんなるWebのコンテンツでしかありません。例えばiTunesでPodcastを利用すると、番組ごとにまずコンテンツの一覧を確認できますが、ただファイルをWebサーバにアップしただけではこのように整理された形で情報を取得することはできません。
 つまり標準的な形式で番組に関する情報を別途用意しておく必要があるのですが、これにはRSSを利用しています。RSSとはWebサイトの更新情報をXML形式でまとめたものです。PodcastではRSSを利用して番組の情報を整理した形で公開しているわけです。iTunesのようなPodcastに対応したソフトはRSSで情報を取得することによって番組の一覧を表示しているのです。Webサーバにデータをアップして、さらにRSSで情報をまとめることでPodcastとして成り立つわけです。

・iTunes上でのあるPodcast番組のページ
http://www.htabata.com/img/MXS105/podcast/iTunes_02.png

◇Podcast番組の制作
 このようにPodcastとはWebとRSSを利用した非常にゆるい仕組みで成り立っていますので、Webサーバさえ用意できれば比較的手軽に配信を始めることができます。とはいいましてもコンテンツを用意しなければ始まらないわけでここが最も大変なところなのですが、技術的には音声や動画をMP3やH.264といった一般的なフォーマットでエンコードして配信を行うことになります。フォーマットについてはPodcastだからこれといった厳密な決まりはありませんので、多くの人に楽しんでもらうにはiTunes/iPodに合わせたフォーマットで用意しておくのがよいでしょう。

 というわけで収録、エンコード、公開などの一連の作業によってPodcastの配信ができるようになるのです。個々の作業は個別に手作業で行ってもよいのですが、Leopard Serverに搭載されていますPodcast Producerを利用することによってワークフロー全体を自動化することができます。次回以降はPodcastProducerについて詳しく取り上げて行きます。

 最後に最近出版された書籍を1冊紹介しておきましょう。Mac OS Xのシステムを詳しく解説した「Mac OS Xシステム管理」が発売になりました。サーバの解説ではなくクライアントのMac OS Xについての解説本なのですが、その多くはサーバでも共通していますので、システムの内部についてより詳しく理解を深めたいという方にお勧めです。

「Mac OS Xシステム管理」
http://msyk.net/macos/adm/
次回へつづく 

                            

小池邦人のCarbon視点でiPhone探求(2009/01/23)

〜 Info.plistとInfoPlist.stringsとアイコン 〜

今回は、info.plistファイルについてもう少し詳しく調べてみることにします。また、最初の仕事として、Symmetryアプリケーションのアイコン画像(PNG画像ファイル)を用意し、プロジェクトウィンドウに登録してみます。

プロジェクトフォルダに保存されている「Info.plist」(情報プロパティリスト)というXMLファイルは、iPhoneアプリケーションの環境設定ファイルのようなものです。MacアプリケーションのInfo.plistを操作した経験のある人は、その内容が似通っていますので、あまり戸惑うことはないはずです。ただし、いくつかのキーと値のペアーは、iPhoneアプリケーション固有ですので注
意が必要です。前回作成したSymmetryプロジェクトにデフォルトで保存されているInfo.plistの内容をテキストエディタでオープンしてみると、その辞書部分のキーと値は、以下の内容であることが分かります。

 

CFBundleDevelopmentRegion
 English
 CFBundleDisplayName
 ${PRODUCT_NAME}
 CFBundleExecutable
 ${EXECUTABLE_NAME}
 CFBundleIconFile
 
 CFBundleIdentifier
 com.yourcompany.${PRODUCT_NAME:identifier}
 CFBundleInfoDictionaryVersion
 6.0
 CFBundleName
 ${PRODUCT_NAME}
 CFBundlePackageType
 APPL
 CFBundleSignature
 ????
 CFBundleVersion
 1.0
 LSRequiresIPhoneOS
 
 NSMainNibFile
 MainWindow
 CFBundleIconFile
 Symmetry.png


幾つかのキー値に${PRODUCT_NAME}や${EXECUTABLE_NAME}といった表記があります。この箇所については、ビルド時に、Xcodeのビルドオプションに設定されている内容へと置き換わり保存されます。今回の場合は両方とも「Symmetry」となります。ビルドされた「iPhoneシミュレータで起動するアプリケーション」に含まれるInfo.plistの方を調べてみると、不定であったキー値へ正式な文字列が代入されていることが分かります。以下がその部分です。

 CFBundleDisplayName
 Symmetry
 CFBundleExecutable
 Symmetry
 CFBundleIdentifier
 string>jp.co.ottimo.Symmetry
 CFBundleName
 Symmetry


オリジナルにはない2つのキーと値のペアが追加されています。これはiPhoneシミュレータ用のInfo.plistの場合です。実機へインストールした場合には、その内容が異なると予想されます(確認はしていない)。DTSDKNameキーの方には、対応するiPhone SDKのバージョンが記載されていますので、このキー内容を見ることでApp Storeの条件項目が表示されているのかもしれません。

 DTPlatformName
 iphonesimulator
 DTSDKName
 iphonesimulator2.2


Info.plistで重要なのは、CFBundleDisplayNameキーです。このキー値は、iPhoneのホームページに表示されるアイコンの「名称」を指定しています。この部分を次の様に変更すれば、名称表示は「しんぶんし」となります。名称の文字列が長すぎると、表示の途中に「…」が現れ美しくないので注意してください。アプリケーションの名称は日本語で5文字以内、英語なら12文字以内
に調整した方が良いでしょう。

 CFBundleDisplayName
 しんぶんし


アプリケーション名がワールドワイドで共通であれば問題ありませんが、状況によっては日本語圏と英語圏で別の名称にしたい場合があります。日本語名は「しんぶんし」だが、英語名は「Symmetry」にしたいといった場合です。前回、iPhoneアプリを多言語対応にしたければ、先んじて国別フォルダを用意し、その中に各国語対応リソースファイルを保存すると解説しました。例えば英語用リソースなら「en.lproj」日本語用なら「ja.lproj」フォルダです。このフォルダ名は「ISOの省略形(ISO 639-1が定義するコード)」だそうです。他の国の名称が知りたければ、関連サイトを調査すれば判明するでしょう。

ローカライズしたアプリケーション名は「InfoPlist.strings」ファイルに記述し、指定国フォルダ(ja.lprojなど)に保存した後、プロジェクトウィンドウへと登録します。例えば、Macアプリケーションでは、名称のローカライズにはCFBundleNameキーを利用しました。また、Finderの情報ウィンドウに表示させるバージョン情報などのローカライズには、CFBundleShortVersionStringやCFBundleGetInfoStringキーを利用しました。以下の様な感じです(MacのInfoPlist.stringsの例)。

CFBundleName = "しんぶんし3";
CFBundleShortVersionString = "しんぶんし version 3.0";
CFBundleGetInfoString = "しんぶんし version 3.0 Copyright 2009 by Ottimo, Inc.";


iPhoneの場合は次の様になります…。

CFBundleDisplayName="しんぶんし";

Macでアプリケーションメニュー用に使われていたCFBundleNameキーは、iPhoneでは使われていないようです。ローカライズ設定がうまく機能しているかどうかは、iPhoneの「設定」アプリケーションの「一般」「言語環境」から利用する「言語」を切り替えることで確認できます。色々と試して問題がないかチェックしておきましょう。リソースが用意されていない言語圏を指定した場合、CFBundleDevelopmentRegionキーに設定されている言語がデフォルトとして使われそうですが、残念ながらそうはなりません。デフォルトとしては、強制的に英語圏リソースが使われるようです。

続いてアイコンを登録してみます。最初に57×57ピクセルの正方形のPNG画像ファイルを用意し、ファイル名を「Icon.png」とします(先頭は大文字なので注意!)。またPNG画像ファイルを保存する時は、アルファーレイア(マスク)を持たないように調整してください。もしアルファーレイアがあるとアイコンが表示されません。アイコン画像ファイルは、プロジェクトの「Resources」フォルダへ単独で登録してください。アイコンをローカライズするケースは少ないと思いますが(辞書アプリとかは必要?)、もしそうする場合には、各国語用のアイコン画像を用意し、それぞれをja.lprojやen.lprojフォルダへ保存してからプロジェクトに登録します。また、登録アイコンのファイル名を変更するには、Info.plistのCFBundleIconFileキー値にファイル名を設定します。例えば、それが「Symmetry.png」であれば、以下の様にCFBundleIconFileキーに設定します。

 

CFBundleIconFile
 Symmetry.png

Info.plistでは、iPhoneのユーザインターフェース関わる設定も保有します。それらについては、必要となった時点で逐次解説したいと思います。また、Info.plistに関する詳細な情報については「iPhone OSプログラミングガイド 」の 97ページ「情報プロパティリスト」を参照してください。

次回は、しんぶんし 3( Mac用)でImageFileクラスとして定義していたモデル・オブジェクト(メインデータ構造)を、iPhone用アプリケーションのSymmetryへと移植する作業を行いたいと思います。さて、すんなりと移植可能なのでしょうか?

ターミナルの向こうから      第40回  海上 忍

〜 いま敢えて学ぶTerminalのイロハ(7) 〜

・「~/.bashrc」の作りかた
 bashの初期化ファイル「~/.bashrc」は、ファイル名の先頭が「.」で始まる、いわゆるドットファイルです。Mac OS Xのシステムでも不可視属性のファイルとして扱われるため、Finder上に表示されないばかりか、アプリケーションで扱うことも困難です。たとえば、標準装備のエディタ「テキストエディット」では、「~/.bashrc」として保存することは可能(警告されます)です
が、「開く」ダイアログから選択することはできません。
 UNIXに馴染んだユーザの場合、ターミナル上から「vi」や「emacs」などのコマンド/テキストエディタを使用しますが、Mac OS Xの一般的なアプリケーションとは操作性が大きく異なるため、抵抗を感じる向きもあるかもしれません。そこで、多少の手間は必要となりますが、ここでは敢えてテキストエディットを使う方法を紹介します。

・テキストエディットで新規作成する
 「~/.bashrc」をはじめて作成する場合は、通常どおりテキストエディットを起動し、フォーマットに「標準テキスト」を選択したうえで、入力作業を行います。
 保存するときには、名前欄に「.bashrc」と入力して場所欄にホームフォルダを選択し、標準テキストのエンコーディングに「日本語(Mac OS)」を指定してください(候補に表示されていない場合は、エンコーディングリストをカスタマイズします)。そして「拡張子が指定されていない場合は、”.txt”を使用」のチェックを外したうえで、保存ボタンをクリックしてください。すると、「”.”(ドット)で始まる名前はシステム用に予約されています」と警告を受けますが、かまわず「”.”を使用」ボタンをクリックしてください。これで、ホームフォルダ上の「.bashrc」、すなわち「~/.bashrc」の完成です。

・テキストエディットで内容を変更する
 テキストエディットの「開く」ダイアログには、ドットファイルが表示されません。そのためホームフォルダを選択しても、候補に「.bashrc」が現れることはありません。TinkerTool(http://www.bresink.de/osx/TinkerTool.html)などのユーティリティを利用すれば可能ですが、「~/.bashrc」ひとつのためにそのような設定を行う必要はないでしょう。
 そこで使うテクニックが、「openコマンド経由で開く」ことです。openコマンドは、オプション「-e」を使うと、引数に与えたファイルをテキストエディットで開くよう動作するため、問題なくドットファイルを開くことができます。

- - - - -
$ open -e ~/.bashrc
- - - - -


・~/.bashrcに何を書くか
 これで「~/.bashrc」を作成/編集するための準備は整いましたが、肝心なのは内容です。シェルの環境設定は奥が深く、徹底的に解説しようとすると本を1冊書けるほどですから、ここでは必要最低限の事柄について取りあげます。
 1行目は、使用するロケール(言語情報)を設定します。Mac OS Xでは、ファイル名のエンコード方式にUTF-8を使う都合上、UTF-8で統一されることが望ましいため、LANG環境変数に「ja_JP.UTF-8」を設定しておきます。
 2行目は、ページャ(テキストファイルやオンラインマニュアルの閲覧に使用されるテキストビューア)の「less」で使うエンコーディング形式を設定しています。Leopardに収録されているlessコマンドには、エンコーディング形式の自動判別機能が搭載されていませんが、このように設定しておけばUTF-8のテキストファイルをTerminal上で閲覧できます。
 3行目は、コマンド入力待ちのとき表示される「プロンプト」を定義するためのbashのシェル変数です。ここで紹介している内容は、まるで呪文のようですが、「09:39 AM shinobu@MBPro ~/Desktop」のように、現在時刻/ユーザ名@コンピュータ名/カレントディレクトリのパスを表示したうえで、改行して「$」を表示する働きがあります。筆者が長年愛用している設定ですから、どうか安心してお使いください。
 4行目では、コマンドの別名「エイリアス」を定義しています。このように設定しておけば、bashで「ls」を実行したとき、「ls -GF」に置き換えて実行されます。ディレクトリやファイルが色分けされて表示されるので、なかなか便利です。

- - - - -
1: export LANG=ja_JP.UTF-8
2: export LESSCHARSET=utf-8
3: export PS1=' [ e[34m ] @  [ e[33m ] u@ h  [ e[32m ] w e[0m n $ '
4: alias ls="ls -GF"
- - - - -

DEMOsa KITAレポート            曽我 聰起

DEMOsa KITAに参加して

1月24日、札幌市の「かでる2・7」で開催された「DEMOsa KITA」に参加してきました。当日は晴天にも恵まれ、多数の来場がありました。今回の「DEMOsa KITA」では、プログラム開発などに限定されない、幅広い分野での発表が多数ありました。実際に参加してみると、期待を裏切らない充実したプレゼンテーションの数々に圧倒された、そんなイベントでした。

私自身も、拙いながらプレゼンテーションさせた頂いた一人です。通常、私が参加する学会発表などでは、だいたい15分から20分程度の発表と5分ぐらいの質疑応答が一般的な形式だと思いますが、「DEMOsa KITA」は僅か10分間という限られた時間でのプレゼンテーションです。しかし、発表する側はともかく、この短い時間が聴取にはほどよいテンポとリズムだったように思います。
また、今回は発表者に断った上でYouTubeでのストリーミング映像も収録されました。未だに学会ではこうした取り組みが少ないのですが、参加できなかった方には参考になるのではないでしょうか。

さて、内容の詳細はWebやYouTubeでの映像をご覧頂くとして、ここでは私の感想を述べさせていただきます。プレゼンテーションでは、開発関係の皆さんから新製品情報や開発秘話を聞くことができました。かつてMacWorld Expoなどのイベントでは、開発者の方に直接話を伺う事が楽
しみの一つでもあったのですが、最近ではイベントの数が少なくなってしまっただけに、DEMOsaのような場は貴重な存在です。今回は、iPhoneアプリに関する話題も多く、そちらを目指されている企業や学生さんには役立つ情報が多数あったのではないでしょうか。また、様々な現場におけるコンピュータや機材、プログラムを利用した活動や事例報告も多数あり、感心する事が多数ありました。実際、自分が発表する際に、前に立つと今回の参加者の皆さんが実に真剣な表情をなさっていることに驚きました。メモを取られている方も多く、この点は日頃の学会とは異なる雰囲気を感じました。

個人的に感心したのが、学生さんたちによる社会活動のプレゼンテーションです。こういう学生さんたちの姿を見ると“中高年はしっかりしなければ”と反省しました。
今回の司会はMacの雑誌などでもおなじみの大谷和利さんでした。ご自身も最後にプレゼンテーションをなさるというハードな状況の中で、この幅広いジャンルの発表に一つずつ丁寧にインタビュー、コメントされて頂いたのですが、大谷さんならではと感心いたしました。懇親会では、10分間で話しきれなかった話題について参加者と発表者が和気あいあいと話し合う姿が多数見られました。こうした会話の中から新しいアイデアが生まれる事があると思います。私も懇親会での会話から、現在のシステム運用に置ける改善方法を思いつきました。人が集まる空間が生み出すエネルギーのなせる技なのかも知れません。

早速、本日の地元新聞の夕刊には「DEMOsa KITA」で発表された学生さんの活動が取り上げられていました。私にとって、コアな人たちと過ごすことができる貴重な経験でした。
運営にあたられたMOSAの方がたには、大変お世話になりました。改めてこの場をお借りしてお礼申し上げます。また、次の機会にお目にかかれる事を楽しみにしております。

◆執筆者プロフィール:
北海道文教大学 外国語学部 教授
コンピュータシステムの会社を退職後、北海道旭川の情報系専門学校教員として教職畑に入植。その後、札幌の北海道文教短期大学を経て現在に至る。激動の90年代マルチメディアの洗礼を受ける。特にHyperCardの強烈なパンチを浴び、目が覚める。Mac歴20年。一般情報処理教育を担当しつつ「楽しい情報教育」の実現に向け、CIEC(コンピュータ利用教育協議会)北海道支部にて世話人を務める。

◇MOSAからのお知らせと編集後記は割愛します◇

 

 MOSA Developer News   略称[MOSADeN=モサ伝]
        配信停止 mailto:mosaden-ml@mosa.gr.jp
 記事内容に関するご意見 mailto:mosaden-toukou@mosa.gr.jp
      記事投稿受付 http://www.mosa.gr.jp/?page_id=850
Apple、Mac OSは米国アップル社の登録商標です。またそのほかの各製品名等
はそれぞれ各社の商標ならびに登録商標です。
このメールの再配信、および掲載された記事の無断転載を禁じます。
特定非営利活動法人MOSA  http://www.mosa.gr.jp/
Copyright (C)2009 MOSA. All rights reserved.