2008.06.20

[iPod touch]ruBooksの日本語エンコーディング自動判定対応版ruBooksJ

iPod touch / iPhone用テキストリーダruBooksを例によって日本人向けに改造しました。

インストールは、これまた例によって野良リポジトリからできます。
自分はiPod touch 1.1.4で動かしています。1.1.2でも動くと思いますが、試していません。動かなかったらすいません。

改造で、日本語のエンコーディング自動判定ができるようにしました(Shift-JIS, EUC-JP, JIS, UTF-8)。
日本語のことしか考えてない改造なので、ruBooksJと名乗って別アプリにしました。

作者のSergey Makarov氏から依頼を受けてruBooksの日本語リソースを提供したという経緯があるので、修正を取り込んでもらうことも可能かと思いますが、この修正でファイルを開くのが改造前より遅くなるので考えどころですよね。

ruBooksはBooksの拡張版。検索、表示色の変更、表示色設定の切り替え(Day/Night)、Zipファイルの閲覧、自動スクロール、iPhoneのボリュームボタンへの対応などなど、オリジナルよりできることが増えてます。
また、ファイルブラウザが実装されたので、オリジナルのように「/var/mobile/Media/EBooks」にあるファイルしか閲覧できないということがありません。

ちなみに、使っているとよくファイルブラウザで落ちますよね、分かります。
オリジナルでも起きる思わしくない挙動をどうしても解決したい場合は、Sergey Makarov氏に連絡してあげてください。

| | Comments (0) | TrackBack (0)

2008.05.08

[iPod touch]TextEditJ.appを小修正

MobileTextEditJことTextEditJ.appをちょっと修正しました。

のちなさんの改造版を元に改造しました。その特徴を引き継いでいるため、コピー&ペーストができます。

フォントサイズを大きくしたいという要望をいただいたので、杜撰な対応をしてみました。
「/Applications/TextEditJ.app/fontsize.txt」を編集してフォントサイズを指定してください。



インストールは例によって「野良リポジトリ」からどうぞ。

「Productivity -> MobileTextEditJ (1.1.3)」です。1.1.4でも動きます。
すいませんが、1.1.2対応はしません。

ソースコード

ソースは公開の依頼があればします。
依頼があったのでソースを公開します。

「mobiletexteditj-0.3.1-0.4.zip」をダウンロード

| | Comments (8) | TrackBack (0)

2008.04.18

[iPod touch]iPod touchのlaunchdでコマンド/スクリプトの定期実行

cronの単独パッケージを作ってCydia環境でもコマンド/スクリプトの定期実行ができるようになりましたが、元々あるlaunchdでの定期実行をやったことがなかったので、実験をしてみました。

元々ある「/System/Library/LaunchDaemons/com.apple.daily.plist」が1日1回実行されるプロパティリストなので、基本的にはこれを自分用にカスタマイズすればいいだけです。
実行間隔/定期実行を決める項目は「StartInterval」で、単位は秒ですね。

10分に1回「/var/root/bin/wifistatus」というコマンド/スクリプトを実行するという内容のplistは以下のようになります。(utf-8 / LF)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.hitoriblog.wifistatus</string>
	<key>Nice</key>
	<false/>
	<key>OnDemand</key>
	<string></string>
	<key>ProgramArguments</key>
	<array>
		<string>/var/root/bin/wifistatus</string>
	</array>
	<key>StartInterval</key>
	<integer>600</integer>
</dict>
</plist>

これを例えば、com.hitoriblog.wifistatus.plistとして保存し、scp等で「/System/Library/LaunchDaemons/」にコピー。
Installer.appからインストールできるErica女史のUlctlを起動、項目として現れる「com.hitoriblog.wifistatus」をタップ、「load -w」ボタンを押すと定期実行が始まります。

やめたければ、同様にして「unload -w」ボタンを押せばOK。
案外簡単にできました。

| | Comments (0) | TrackBack (0)

2008.04.07

[iPod touch]safaribm2stdoutとwgetでMobile Safariのブックマークを巡回してダウンロード

2008.04.10追記:元マカーさんがsafaribm2stdoutに関するエントリを上げてくださってます。「iPod touchでローカルWeb閲覧&巡回環境を構築してみる」、「iPod touchでローカルWeb閲覧&巡回環境を構築してみる(その2)

野良リポジトリにsafaribm2stdoutというコマンドラインアプリを登録しておきました。

「Network>safaribm2stdout (1.1.3)」です。

Mobile SafariのBookmarkの、「crawling」というFolderに登録されたBookmarkのURLを標準出力(stdout)に出力するものです。

そんなことができて何がうれしいのか?
DownloaderであるWgetと併用すると幸せになれます。

#!/bin/sh
cd /var/mobile/Media/Downloads
/var/root/bin/safaribm2stdout | wget -i - -N -k -r -l 1 -np

こんな感じのシェルスクリプトをShell Script ApplicationなどにしてHome Screen Iconとして登録しておきます。

巡回したいページをMobile Safariの「crawling」というBookmarkのFolderに登録します。
「crawling」なんてFolderは無い? 最初は「crawling」などというFolderは存在しませんので、自分で作ります。(最初はRで後がLです。スペルを間違えると動かないので注意)



作ったShell Script Applicationを起動すればダウンロードが完了します。

lighttpdやiSpit、ApacheなどのLocal Web Serverを起動しておき、/var/mobile/Media/DownloadsをMobile Safariで見にいけばOK!
ダウンロード先のFolderをBookmarkしておくと楽だと思います。

Wgetに付いているoptionは以下の意味となります。

-Nタイムスタンプを見てダウンロードをするかどうか判断
-kリンクを絶対リンクから相対リンクへ書き換え
-rリンク先を再帰的に取得
-l 1再帰的に取得するリンクのホップ数を1に設定
-np上の階層のファイルをダウンロードしない

ページからリンクされた画像なども一括ダウンロードされますので、オフラインでも画像まで見られるようになります。(そのはずですが、なんかダメですね)
Wgetにはたくさんのオプションがありますので、自分の使用形態に合わせて調整してみるといいかと思います。

海上さんのOS Xハッキングでタイムリーに「いま敢えて「Wget」をリスペクト」という記事が。Wgetの素晴らしさを知らない人は読んでみてください。

http://tech.bayashi.net/svr/doc/wget.html

http://members.at.infoseek.co.jp/futora/wget153/option.html

cronで定期巡回を組むPureなCydia環境ならこちらも)のも一興かと思います。

野良リポジトリには、safarihist2stdoutというコマンドラインアプリも登録してあります。
同様にして、

#!/bin/sh
cd /var/mobile/Media/Downloads
/var/root/bin/safarihist2stdout | head -1 | wget -i - -N -k -r -l 1 -np

といったような処理内容のシェルスクリプトアプリケーションを用意すれば、Mobile Safariで最後に訪れたページをリンクされた画像等ごとダウンロードできます。

Notes/注意事項

iPod touch/iPhone用にポートされたWgetには、名前解決できるものと、できないものがあります。
野良リポジトリにある「Wget (name resolvable)」とCydia PackagerからインストールできるWgetは名前解決できます。

Erica's Ported Utilitiesに収録されているWgetは名前解決できないと思います。

| | Comments (2) | TrackBack (0)

2008.04.03

[iPod touch]iPod touch用新型Dock Connector内蔵型マイク

今までのiPod touch用Dock Connector内蔵型マイクのDock Connectorは、市販のiPod touch用USBケーブルを都度破壊してDock Connectorを調達し、作っていたんですが、今回からパーツとして取り寄せたもので頒布用のマイクを作ってみました。

ワイヤリングペンが出てきたので、配線はUEWにしてみました。

Cydia PackagerからインストールできるErica女史の音声メモアプリ、Voice Notes 0.35b5(VNotes)を試していますが、このバージョンはiPod touchでもリセットがかからないようですね。
録音/終了ボタンを連打するなど乱暴に扱ってみましたが、大丈夫そうです。
これでグっとマイクの実用性が上がりました。

2008.04.04追記:やっぱりリセットかかりました><惜しいなぁ

Voice Notes(VNotes)で録音したファイルはamrで、Erica's Ported Utilitiesに収録されているffmpegでmp3にエンコードできます。

ffmpeg -i in.amr out.mp3

確かこれでいけるはず。

[iPod touch]Dock Connector一体型iPod touch用マイク頒布















| | Comments (3) | TrackBack (0)

2008.03.31

[iPod touch]Cydia環境用Cron

2008.07.14: ハレタさんより、このパッケージを入れたことによりキーボードバグが発生したとのことなので、リポジトリからは削除しました。必要な方は以下からどうぞ。

http://homepage3.nifty.com/moyashi/ipodtouch/zips/cron-for-cydia-0.1-1_arm-apple-darwin.zip

BSD Subsystemを入れていないPureなCydia環境には、今のところcronがありません。

定期実行マニアの自分にはそれが寂しかったので、BSD Subsystemから持ってきたcron関連ファイルのみでパッケージを作りました。

野良リポジトリの「System>Cron for Cydia」です。

インストール後、Erica女史の「UIctl」で「com.apple.cron」を「load -w」してください。
アンインストール前には「unload -w」した方がいいかと思います。

登録は「crontab -e」です。

viを起動しますので、viもしくはvimをインストールしておく必要があるかと思います。

「/var/root/bin/test.sh」を5分ごとに定期実行をさせる場合は、以下のように登録をします。
この辺りは一般的なcron / crontabと同様です。

*/5 * * * * /var/root/bin/test.sh

ただし、スリープすると実行は止まってしまうので悪しからず。

| | Comments (4) | TrackBack (0)

2008.03.29

[iPod touch]iPod touch 1.1.4のJailbreak後に発生するトラブルを回避

ここの情報は最早古いです。

1.1.4に復元した後、Mac OS X用のiLibertyX 1.51一発で片がつきました。

更新履歴


2008.03.31追記2:当初、「1.1.1→1.1.1 Jailbreak→(更新)→1.1.2→1.1.2 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak」という手順で書いていましたが、1.1.2を経由する必要が無いことが分かったので書き換えました。
2008.03.31追記:ZiPhone3.0で1.1.4から直接Jailbreakしてみましたが、やはりキーボード使用時のフリーズが発生しました。BSD Subsystemが自動的に入りますが、それによって音楽/動画再生ができなくなることはありません。Cydia Packagerは、インストール時にBSD Subsystemのファイルを削除するとのことなので問題無いかと思いますが、Cydia PackagerのCore Utilities+αの方が品質が高いという事実は変わりませんし、BSD Subsystemの項目がInstall.appの「Uninstall」に残るので、iJailbreakでJailbreakしてCydia Packagerをインストールした方がいいのではないかと思います。

前口上

iPod touchは1.1.2のままで粘ってきたんですが、世間様が1.1.3〜1.1.4に移行しているようなので、遅ればせながら1.1.4にしてみました。

僕の環境と方針

OSはMac OS X Leopard (Power PC)です。 iPod touchは16GBで、2007年10月に買ったものです。 iTunesは7.6.1にアップデートしてしまったので、それを使うことにしました。

1.1.4のJailbreakにおいてはSoft Jailbreakは避け、ZiPhone/iJailbreakを使ってするという方針に決めました。
この記事を書いているのは、ZiPhoneが2.6b、iJailbreakが0.6の時代です。
以降のバージョンないしは、新しい選択肢の出現で状況は変わっていくでしょう。

1.1.4 Jailbreak後にトラブルが発生している模様



ZiPhoneがiPod touch 16GB/32GBに対応していない間はJailbreakそのもので引っかかる人が多かったようですが、ZiPhoneがiPod touch 16GB/32GBに対応してからは、Jailbreak後に、以下の二つのトラブルで悩まされる人が出ているようです。

  • キーボード使用時にフリーズする
  • 音楽/動画が再生できない

何を隠そう自分もその両方にハマった口です。
方々のブログを拝見しながら試行錯誤した末、解決した感じなのでまとめてみます。

上記二つのトラブルは、それぞれ以下のような因果関係で起こっているようです。

かなり断定的に書いていますが、私が知りうるのは私の環境のみです。
あなたの環境で挙動が違ったらごめんなさい。

キーボード使用時にフリーズする



このトラブルは1.1.1→1.1.1 Jailbreakを経由していない環境で起きるようです。

例えば、「復元」でインストールしたまっさらの1.1.4をJailbreakした環境では、キーボード使用時にフリーズします。

下記のような段取りでJailbreakした1.1.4ではフリーズが発生していません。

1.1.1→1.1.1 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak

音楽/動画が再生できない



このトラブルは、BSD Subsystemをインストールした後、最初の再起動後から発生するようです。
BSD Subsystemをインストールしなければ発生しません。

BSD Subsystemは2.1でも1.1.4下での動作が怪しく、トラブルを引き起こす元凶になってしまっています。
とはいえBSD Subsystemは半ばインストールするのが常識となっていますし、実際無いと困ります。

そこで登場するのが「Cydia Packager」。
これ自体はInstaller.appの代替品ですが、インストールするとBSD Subsystem相当のCore Utilities等が併せてインストールされ、BSD Subsystemの代替として機能します。

Cydia PackagerプロジェクトはInstaller.app、BSD Subsystemの不完全さを憂いており、それらより品質が高く、リプレースできるものであることを指向しています。

まとめ




  • 「1.1.1→1.1.1 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak」という順序で1.1.4をJailbreak

  • Jailbreak後は「BSD Subsystem」はインストールせず、代わりに「Cydia Packager」をインストールする

この2点に注意すればトラブルが回避できた、ということになります。

iTunes 7.6.1下でのダウングレードとDFU Mode

1.1.4に「復元」してしまった場合は、1.1.1からやり直さなければなりません。

1.1.1へのダウングレードが必要になるわけですが、iTunes 7.6.1下では、「復元」でもiPod touchのファームウェアを1.1.3以下のバージョンにダウングレードできません。Jailbreak対策を考えてか、そういう制約が入っているからです。

iTunes 7.5にはそういう制約が無いので、iTunesをダウングレードするところから始める人も居ますが、僕はiTunesはそのままで、ZiPhoneでiPod touchを「DFU Mode」に移行させる手法を取りました。

「DFU Mode」とは何か? 僕もよく分かっていませんが、修復モードのより強力なもの、というイメージでしょうか。
「DFU Mode」になったiPod touchに対しては、iTunes 7.6.1は1.1.1へのダウングレードを許してくれます。

「DFU Mode」移行を使った1.1.1へのダウングレードの具体的な手順は以下の通りです。

  • 1.1.1のファームウェアをダウンロード
  • ダウンロードしたファイルに拡張子「zip」が勝手に付いていたら削除
  • ZiPhoneをダウンロードし解凍
  • iPod touchをMacに接続する
  • iTunesを起動
  • ZiPhoneを起動
  • ZiPhoneのメニュー「Mode→Restart in DFU Mode」を実行
  • iTunesがDFU Modeに突入したiPod touchを検出するので、Optionを押しながら「復元」ボタンを押す
  • 開いたファイルオープンダイアログから、さきほどダウンロードした1.1.1のファームウェアを指定

1.1.4から1.1.4 Jailbreakまで

後は1.1.4への「更新」、そしてJailbreakです。
1.1.4のJailbreakに使うのはZiPhoneかiJailbreakか、といった議論があり、ZiPhoneはフリーズを発生させるので、iJailbreakの方がいい、といった声も聞くのですが、前述のキーボードを使った際に発生するフリーズは、ZiPhoneでもiJailbreakでも起きます。

フリーズの発生は「1.1.1→1.1.1 Jailbreak→(更新)→1.1.4」という段取りを踏んでいるかどうかで決まるので、どっちを使うかは関係ありません。

再度書いておきますが、今現在のそれぞれのバージョンはZiPhone2.6b、iJailbreak0.6です。
今後状況が変わる可能性は大いにあります。

僕は1.1.4のJailbreakにiJailbreakを使いました。

  • iJailbreakをダウンロード
  • iPod touchをMacに接続
  • iTunesを起動
  • 「更新」で1.1.4にアップデート(最新版が1.1.4以降になり、ファームウェア1.1.4を別途用意する必要が出た場合はここにあります)
  • iJailbreakを起動
  • 勝手に表示されるダイアログには適宜対応
  • 「Jailbreak」ボタンを押す

Jailbreakが終わったら、「Cydia Packager」をインストールします。

  • Installer.appの「Sources」タブで「Edit」ボタンを押し、さらに「Add」ボタンを押して表示されたダイアログに「http://apptapp.saurik.com/」を入力、「OK」ボタンを押します
  • 念のため、「Refresh」ボタンを押します
  • 「System」カテゴリの「Cydia Packager」をインストール
  • BSD Subsystemのインストールをチェックするパッケージのために「System」カテゴリの「Fake BSD Subsystem」をインストールしておくといいかもしれません

繰り返しになりますが、「Cydia Packager」と「Fake BSD Subsystem」をインストールすれば基本的に「BSD Subsystem」は必要無いので、「BSD Subsystem」のインストールは避けます。

「Erica's Ported Utils」も、最早お役御免かもしれません。
なぜならば「Cydia Packager」からインストールできるSQLite3はReadlineのサポートが入っていてコマンドライン編集ができますし、wgetをはじめとするネットワークツールでは名前解決ができます!
libresolvがインストールされ、/usr/lib/libc.dylibに含まれる壊れたgethostbyname()の代わりに、それを使って名前解決するようリンクされているのです。

「Cydia Packager」はAPTをベースにしたパッケージ管理ツールで、依存関係のあるパッケージを自動的に判断してインストールしてくれるので便利!

また、「Cydia Packager」からインストールできるRubyにはコマンドライン編集が利くirbが付き、なおかつrequireしても落ちません! GCにあった問題を解消しているそうです。
昨年の段階ではRubyがちゃんと動かないのはiPod touchのメモリが少ないせい、という話になっていましたが、そんなことはなかったわけですね。そうなるとRubyCocoaが欲しいところ。

| | Comments (39) | TrackBack (0)

2008.03.13

[iPod touch]iPod touchとW-SIMその2

noviさんの「iPod touch に W-SIM を接続してみた」などを見て、配線してみた。

noviさんのブログには

W-SIM             touch
                 GND-----------GND:1
                 GND----SERIALGND:11
1:TD---------------------------TD:12
2:RD---------------------------RD:13
9:VCC------+3.3V
10:GND-----GND
15:IFSEL---GND 

と書いてありますが、touch側のSERIALGNDは20番、TD(TxD)は19番、RD(RxD)は18番ではないですか?

iPod Dock Connectorピン配列参考:Dock Connector - wikiPodLinux
W-SIMピン配列参考:W-SIM と WILLCOM SIM STYLE

それと、TDはRDと、RDはTDとつなぐんじゃなかったでしたっけ?

W-SIM             touch
 
                 GND----------GND:16
                 GND----SERIALGND:20
1:TD---------------------------RD:18
2:RD---------------------------TD:19
9:VCC-----------------------+3.3V:13
10:GND-----GND
15:IFSEL---GND 

とりあえず、上記のように接続。
なぜかiPod touchに入っていたminicomで「Serial Device」を「/dev/tty.iap」に、「Bps/Par/Bits」を「19200 8N1」に、「Hardware Flow Control」を「No」にしてみるも、ウンともスンとも言わず。

W-SIM             touch
 
1:TD---------------------------TD:19
2:RD---------------------------RD:18

につなぎ変えても同じ。よくわかんね。noviさんに教えてもらおう。


| | Comments (11) | TrackBack (0)

2008.03.12

[iPod touch]iPod touchとW-SIM

noviさんがiPod touchにW-SIMをつなぐ試みをされているので、早速真似してみることに。

ウホッ、いいケース。

薄さとしてはばっちりなものの、ちょっと大きい。また、ケースの取り回しが問題。ぶら下げておくしかない?

ケースの中にマグネットを入れて固定させればいんじゃね? と思ったんですが、一般的なステンレスは磁性を持っていないので磁石に付かないのでした。

| | Comments (0) | TrackBack (0)

2008.01.10

[iPod touch]Mac OS XとiPod touch間で「Touchmods SIP-VoIP」を使って音声チャット!

Windows XPとiPod touch間で音声チャットができることは確認できたものの、普段Mac OS Xを使っている自分は、ぜひともMac OS XとiPod touch間で音声チャットをしたいものです。

前回のエントリ([iPod touch]iPod touchで音声チャット!「Touchmods SIP-VoIP」を試す
)にMac OS Xで使いたいという振りだけ書いておいたところ、utaaniさんがいろいろと教えてくださいました。
このお方、かなりお詳しいです。

utaaniさんからは、Mac OS X用のSIPクライアントとしてCounterPathのX-Liteをすすめてもらいました。
早速試すも、現行バージョンであるX-Lite 3.0は、Mac OS X Leopard(10.5.1)では動きませんでした。

CounterPathのForumをのぞくと、Leopardでは動かないという話が出ていました。
また、一つ古いX-Lite 2.0ならば10.5.1でも動作しているという話が出ていましたが、2.0は「X-Lite 2 for MAC is fully deprecated and no longer supported.」ということであり、CounterPathからはダウンロードできません。
このようなくだりをutaaniさんにお話しすると、

> (すでにサービス終了した)TaRaBaというVoIP プロバイダのページからダウンロードできますね。
> http://www.taraba.net/download/
>
> TaRaBaカスタマイズ版ですが別のSIP Proxyの設定は可能だと思います。

ということを教えてもらいました。別の名前で存在しているとは。
早速こちらのM2X-Liteを試してみると、Mac OS X Leopard(10.5.1)とiPod touchの間で無事音声チャットができました。

ここまでの段取りを書いておきます。

YouFonのアカウント取得

前回はFreeCallのアカウントを取得して試してみたわけですが、ラグが少々大きめでした。
iPod touch用SIPクライアントである「Touchmods SIP-VoIP」での利用実績がある、YouFonのアカウントを取得してみることにしました。

YouFonは国内のSIPサービスプロバイダで、何回かに1回、発信時に10秒ほどのCM音声を聞くことを代償に、無料で利用することができます。(料金を支払えばCMを止めることができます)
電話回線に接続するサービスはありませんが、その代わりにアカウント取得時にクレジットカード番号を入力する必要が無く、とても利用しやすくなっています。ググると、国内でのSIPプロバイダの中では人気があるようですね。

国内ということで、ラグが短縮されることが期待されます。

YouFonのアカウント取得はFreeCallに負けず劣らず簡単で、こちらのアカウント登録ページから始めることができます。
一通り情報を入力し終わり確認ボタンを押すと、遷移した画面で「YouFon有料アカウント登録フォーム>確認画面」と表示されギョっとしますが、これはYouFonのアカウントが有料だったときの名残かと思われます。

入力したメールアドレスにメールアドレス認証のためのURLが届き、そこにアクセスすると登録完了です。
登録が完了すると、親切なことに二組のYouFon番号とパスワードが付与されます。

以下の内容で、YouFon番号が追加されました。

■YouFon登録情報
-----------------------------------------
[YouFonサーバ名]
sip.youfon.net もしくは iax.youfon.net

[YouFon番号1](親YouFon番号)
81000000xxxxx

[YouFon番号1のパスワード]
xxxxxxxx

[YouFon番号2]
81000000xxxxx

[YouFon番号2のパスワード]
xxxxxxxx

これをMac OS X側とiPod touch側それぞれに入力すれば、すぐ実験が開始できます。
二つのYouFon番号は連番になっていると思います。

iPod touchで動作させる「Touchmods SIP-VoIP」側の設定

インストールに関しては、前回のエントリを参照してください。

[iPod touch]iPod touchで音声チャット!「Touchmods SIP-VoIP」を試す

「Username」欄にYouFon番号を、「Password」欄にYouFon番号のパスワードを、Registrarに「sip.youfon.net」と入力し、「Save」ボタンを押します。

ちなみに、僕の「Touchmods SIP-VoIP」は、Skinを入れ替えてあります。
Skinはこちらのページから入手可能です。

http://touchmods.net/skins/

ただの画像セットなので、自分で作ることも簡単です。

Mac OS X Leopardで動作させる「M2X-Lite」側の設定

Mac OS X Leopardの場合、CounterPathのSIPクライアント、「X-Lite 3.0」は動きません。
TaRaBaというVoIPプロバイダのページから、「M2X-Lite」という「X-Lite 2.0」のカスタマイズバージョンをダウンロードしてきます。
ダウンロードしてきた「X_lite-M2x-Mac.dmg」をダブルクリックでマウントしたら、Applicationsフォルダへ「M2X-Lite」をDrag & Dropでインストール完了です。

PowerPC用ですので、Intel Macでの動作は要確認です。

$ cd /Applications/M2X-Lite/Contents/MacOS/
$ file M2X-Lite
M2X-Lite: Mach-O executable ppc

「M2X-Lite」を起動すると、Windows風にWizard形式で音声入出力の設定を促されます。
それを適当にパスして、メニュー、そしてPreferencesダイアログの「M2X-Lite>Preferences...>System Settings>SIP Proxy」とたどり、「[Default]:xxxxxxxx」をダブルクリックします。
設定が正しいかは分かりかねますが、自分のところでは以下のような設定で動いています。
デフォルトはTaRaBaの設定になっているので、それを書き換えることになります。

「Display Name:」欄、「Username:」欄に付与されたYouFon番号を。「Password:」欄に呼応するYouFon番号のパスワードを入力します。
入力するYouFon番号、YouFon番号のパスワードは、二つ付与されたもののうち、無論iPod touchの「Touchmods SIP-VoIP」に入力しなかった方です。
後は見ての通りです。入力したら×印のクローズボタンを押してウインドウを閉じます。

メインウインドウの「Login」ボタンを押すと表示されるダイアログにも、YouFon番号とYouFon番号のパスワードを入力し、「Login」ボタンを押します。

メインウインドウの「CLEAR」ボタンを押し、液晶部分に「Logged - in Enter Phone Number」と表示されていればOKでしょう。

iPod touchから発信してみる

iPod touchで「Touchmods SIP-VoIP」を起動し、Mac OS Xの「M2X-Lite」側に登録したYouFon番号を入力し、「Dial」ボタンを押します。

うまくいっていれば、「M2X-Lite」が呼び出し音を鳴らし、Dock内のアイコンが跳ねはじめるはずです。

メインウインドウ内の緑のボタン、「Dial/Redial」を押すと、音声チャットが始まります。

もちろん、iPod touchにマイクをつないでいないとiPod touchから話すことはできません。
マイクは、touchmods.netで通販を受け付け始めています。最初の発送が始まったようです。
僕は自分で作ったマイクを使いました。

数は用意できませんが、当Blogでも頒布していますので、よろしければご利用ください。

当BlogのiPod touch用マイク関連エントリ

[iPod touch]iPod touch用Dock Connector一体型マイク頒布4号機完成
[iPod touch]iPod touch用Dock Connector一体型マイク頒布2号機、3号機完成
[iPod touch]iPod touch用Dock Connector一体型マイク頒布1号機完成
[iPod touch]Dock Connector一体型iPod touch用マイク頒布
[iPod touch]Dock Connector一体型iPod touch用マイク
[iPod touch]iPod touchにマイクを付けて録音実験

インプレッション

Mac OS Xでも、iPod touchとの間で音声チャットができました。
情報をくださったutaaniさん、ありがとうございました。

YouFonは前回使用したFreeCallよりラグが少なく、かなり自然な使用感で感激しました。

なお、一度接続した後、再度Dialすると音が途切れ途切れになったり、全くかからなかったりということが起きるようです。
現行バージョンの「Touchmods SIP-VoIP」は、Dialの度に終了させた方がよさそうです。
「Touchmods SIP-VoIP」を終了させると入力しておいた番号が消えて面倒ですが、「/Applications/SIP-VoIP.app/Call.png」に番号を書いておくと、番号を覚える必要が無くて便利です(笑)。

Mac OS X Tigerでは……

Mac OS X Tigerでは、何もわざわざ「M2X-Lite」を使わずとも、「X-Lite 3.0」が使えるものと思います。
後で試したらここに追記します。

| | Comments (17) | TrackBack (0)

2008.01.08

[iPod touch]iPod touch用Dock Connector一体型マイク頒布4号機完成

iPod touch用Dock Connector一体型マイクの4号機が完成。
マイクが無くなったので、表面実装用コンデンサといっしょに買ってきました。
今回はコンデンサを表面実装用のものに変更して組んでみました。

| | Comments (4) | TrackBack (0)

2008.01.02

[iPod touch]iPod touch用Dock Connector一体型マイク頒布2号機、3号機完成

iPod touch用Dock Connector一体型マイクの2号機、3号機が完成しました。
はー、目がシバシバする。

| | Comments (0) | TrackBack (0)

[iPod touch]iPod touchで音声チャット!「Touchmods SIP-VoIP」を試す

いよいよtouchmods.netでiPod touch用のSIP-VoIPアプリケーションが公開されたのでテストしてみました。
当該サイトの予告通りであれば、iPod touchで音声チャットができるはずです。

結論から書くと、僕が作ったマイクと、今回発表のiPod touch用SIP-VoIPアプリケーションとの組み合わせで、PCとの間で音声チャットができることが確認できました。

試行の手順を書いておきます。

SIP-VoIPのアカウント取得

僕はSIP-VoIPというものを利用したことがありませんでした。
予備知識ゼロの状態からのスタート。
まずはサービスプロバイダの選定とアカウントの取得です。

touchmods.netには、スタッフないし、利用者側で動作が確認されているSIP-VoIPサービスプロバイダが列挙されています。
そのどれを利用してもいいと思うのですが、開発側ではwww.freecall.comでテストしているとのことなので、それを利用することにしました。

テストに当たって、www.freecall.comのアカウントをPCのクライアント用に一つ、iPod touchのクライアント用に一つ取得しました。
アカウントの取得方法は至って簡単です。
サインアップフォーム(2008.1.2現在「Top>free download>MAC AND LINUX USERS CLICK HERE」とたどる)から一発Submitするだけです。

ちなみにwww.freecall.comでは、ユーザー同士、SIP-VoIPクライアント同士なら無料で音声チャットできます。
他のSIP-VoIPサービスプロバイダ同様、電話回線との通話をサポートしており、SIPのcreditを買うことで利用できますが、それ関しては、自分は全く利用するつもりが無い上に知識が無いので質問されても回答できません。www.freecall.comを使うと、日本在住の人と通話する場合に、日本に居ながらにして国際通話になってしまうでしょうし。

PC側の設定

音声チャットのために、PCに接続するヘッドセットないし、マイクとヘッドフォンが必要であることは言うまでもありません。
それらが使えるよう、設定を済ませておきます。

www.freecall.comからWindows用のクライアント、「FreeCall」をダウンロードしてインストールします。

「FreeCall」を起動。取得したユーザ名とパスワードを入力し、なおかつメインウィンドウの右端にある「Switch to speakerphone」ボタンを押してスピーカーアイコン内のバツ印が消えた状態にしておきます。これを忘れると音声が聞こえません。

スピーカーアイコンをクリックし、バツ印を消した後は、タスクトレイから一度「FreeCall」を完全に終了させます。
しかる後に再度起動します。この手順を踏まないと、スピーカーアイコンクリックの効能が有効にならないようです(2008.1.5追記)。


ipodtouchsipvoip01

現状のiPod touch用のクライアントでは待ち受けができないので、「Contacts」にiPod touch側で利用するアカウントを追加するのは意味がありません。

指定のポート以外、内側からのアクセスにおいても制限をかけるようFirewallを設定しているでもない限り、ルータ側の設定は不要のようです
詳しくは調査中ですが、NAT越えが問題になるかもしれません。自分の環境ではルータのUPnPをONにしています(2008.1.7追記)。

なお、マカーである自分にとっては残念なことに、www.freecall.comが提供するクライアントは、Windows用のみです。
別のOSでも利用できるようなクライアントが手配できるかもしれませんが、それは後の調査に回します。

www.freecall.com以外を使うケースについては当エントリでは扱いませんが、それはwww.freecall.com縛りであることを意味しません。

iPod touch側の設定

JailbreakしたiPod touchとマイク、もちろんヘッドフォンが必要です。

iPod touchのJailbreakについては、当サイトでは解説しません。Homebrewなアプリケーションが、Installer.appことAppTapからインストールできる状態にまで持っていってください。
当方ではJailbreakしたファームウェアのバージョン1.1.2のiPod touchでテストしています。

マイクは、touchmods.netで通販のpre-orderを受け付け始めています。
僕は自分で作ったものを使いました。

数は用意できませんが、当Blogでも頒布していますので、よろしければご利用ください。

当BlogのiPod touch用マイク関連エントリ

[iPod touch]iPod touch用Dock Connector一体型マイク頒布1号機完成

[iPod touch]Dock Connector一体型iPod touch用マイク頒布

[iPod touch]Dock Connector一体型iPod touch用マイク

[iPod touch]iPod touchにマイクを付けて録音実験

この度公開されたiPod touch用SIP-VoIPクライアントをインストールします。

「Installer.app」を起動し、「Sources」タブを選択。「Edit」、「Add」とボタンを押し表示されたダイアログに「http://touchmods.net/rep.xml」と入力、確定し、「Source」タブの「Refresh」ボタンを押します。

「Touchmods」カテゴリの中に「Touchmods SIP-VoIP」が現れますので、それをインストールします。

SpringBoardに「SIP-VoIP」という名前のアイコンが現れるはずですので、それをタップして起動します。

当エントリでは当該クライアントを「Touchmods SIP-VoIP」と表記します。
起動すると以下のメインビューが表示されるはずです。
「Account」ボタンを押し、さきほどwww.freecall.comで取得したアカウント情報を入力します。

「Username」にはユーザー名を、「Password」にはパスワードを、「Registrar」には、www.freecall.comなら「sip.voiparound.com」と入力します。

「Save」ボタン「Phone」ボタンと押し、メインビューに戻ってきます。

通話テスト

PC側で「FreeCall」を起動し、「Status」が「Online」になっていること、「Switch to speakerphone」ボタンが押されていることを確認しておきます。

iPod touchにマイクとヘッドフォンをつなぎ、WiFiをONにしてから「Touchmods SIP-VoIP」を起動します。

「Enter number to call」にPC側の「FreeCall」に入力したユーザ名を入力して、

「Dial」ボタンを押します。

すると、PC側で待ち受け状態にある「FreeCall」が呼び出し音を鳴らすので、緑色のボタンを押すと音声チャットが始まります。

インプレッション

Skypeすらロクに使ったことが無いので他との比較ができませんが、Skypeレベルの音質はあるような感じです。

www.freecall.comだとラグが500ms~1,000msぐらいあるでしょうか。ちょっと長めです。
他のSIP-VoIPサービスプロバイダだと、短かくなることもあるんでしょうかね。

今のところiPod touchからは発信しかできないので、iPod touch同士で通話をすることができません。

そのことが問題にならない用途なら、結構使えそうですね。
当Blogの過去のエントリで懸念してきたリブート問題も出ていません。

touchmods.netの当該エントリによると、「Touchmods SIP-VoIP」には随時機能が追加されていく予定で、待ち受けもできるようにするつもりもあるそうですが、それはまだ先の話ということで、最優先の課題にはなっていないようです。
iPod touchでの待ち受けはいろんな意味で不便で、なおかつ現実的ではないので、それは妥当な判断といえましょう。

なお、WiFi(というか、高速な無線通信デバイス全般)がモバイル機器のバッテリに与える影響の大きさを認識している人が少ないようですが、WiFiは一般に大飯食らいです。
WiFiによるバッテリの無駄な消費を防ぐために、無通信時には手抜きをするといった動作の省電力機能が働いているiPod touchですが、SIP-VoIPではWiFiが休まる暇が無いので、当然ながらバッテリの持続時間は短かくなるでしょう。

今後のテーマ

www.freecall.com以外に、よりラグの少ないSIP-VoIPサービスプロバイダを探すことが一つ。
マカー用のSIP-VoIPクライアントを探すことが一つ。
面白い発見があったら教えてください。

| | Comments (15) | TrackBack (0)

2007.12.25

[iPod touch]iPhone/iPod touch用Web Downloader HistoryDL.app ver.0.2

MobileSafariの履歴をリストアップし、そこから選んでダウンロードできるWeb DownloaderであるHistoryDL.appをver.0.2にバージョンアップしました。

環境設定画面から保存先を設定できるようにしました。

ダウンロード中は、ステータスバーにプログレスアイコンを表示するようにしました。
内部的にはクラスを導出したりと書き直しをしているんですが、あんまり関係無いですね。

mkplusさんにアイコンを作ってもらいました。
素晴らしい出来で感謝しています。

インストール

いつもの野良リポジトリからインストールしてください。

[iPod touch]野良ビルドのバイナリを置いたiPod touch / iPhone向けInstaller.appリポジトリ

「Network > HistoryDL」です。

関連エントリ

[iPod touch]MobileSafariの履歴から選んでhtmlをダウンロードできるダウンローダHistoryDL.app

[iPod touch]iPod touch / iPhone用ダウンローダHistoryDL.appで画像のダウンロードするのを補助するbookmarklet

| | Comments (3) | TrackBack (0)

2007.12.21

[iPod touch]iPod touch用Dock Connector一体型マイク頒布1号機完成

iPod touch用Dock Connector一体型マイク頒布をご希望の方がいらしたので、1号機を完成させました。

自分用として作ったものは簡単に済ませましたが、今回は人様にお渡しするものなので、電源周りにパスコンを、プリアンプからの出力にカップリングコンデンサを入れました。
普通の部品を使ったので、中身がパッツンパッツンに。

その代わり、マイクカバーのスポンジは切り詰めざるを得ませんでした。
カバーは少し厚手のストッキングの方ががいいかなあ。買うのに勇気が必要そうですが(笑)。

コンデンサを二つ追加しました。

なんだかんだで作るのには結構時間がかかります。

0号機とツーショット。

1号機は中身パツパツです。

関連エントリ

[iPod touch]Dock Connector一体型iPod touch用マイク頒布

[iPod touch]Dock Connector一体型iPod touch用マイク

[iPod touch]iPod touchにマイクを付けて録音実験

iPod touch用VoIPソフトウェアが新年に発表

iPod Touch Modsさんで、待望のiPod touch用SIP-VoIPソフトウェアnTouchが、あと11日で発表になるそうです。
音声入力方法は、AMRでの録音しかサポートしないAVRecorderクラスによるものでなく、wavで入力できる「Low Level Audio」経由だそうで、iPod touchにおけるリセット問題が回避できる可能性があります。

| | Comments (0) | TrackBack (0)

2007.12.15

[iPod touch]iPod touch開発メモ: libid3tagのコンパイルとテスト

noviさんのところでlibid3tagiPod touch向けビルドに失敗するという話が出ていたので、自分のところでも試してみることに。

母艦では、libid3tagでファイル埋め込み歌詞の読み出しができているとのこと。
Lyrics3にピンときてなかったようなので、SYLTというFrameの方でしょうかね? よく分かりません。詳しいことはnoviさんが知っています。

こちらでは、すんなりビルドに成功。

自分の開発環境は、iMac G5+Leopardにiphone-devにある手順でインストールしたもの。
dylib1.10.5.oが無いと言われることがあるので、以下のシンボリックリンクを張ってます。

cd /usr/local/arm-apple-darwin/
ln -s dylib1.o dylib1.10.5.o

テストコードを書いてみました。
歌詞の読み出しはよく分かってませんが、以下のコードでiPod touch上でもUTF8で曲名が読み出せてます。



#include <stdio.h>
#include <id3tag.h>

int main(void) {
struct id3_file* file;
struct id3_tag* tag;
struct id3_frame* frame;
union id3_field* field;
const id3_ucs4_t* title;
id3_utf8_t* title_utf8;

file = id3_file_open("/var/root/Media/test.mp3",
ID3_FILE_MODE_READONLY);
tag = id3_file_tag(file);
frame = id3_tag_findframe(tag, ID3_FRAME_TITLE, 0);
field = id3_frame_field(frame, 1);
title = id3_field_getstrings(field, 0);
title_utf8 = id3_ucs4_utf8duplicate(title);
printf("Title: %s\n", title_utf8);
return 0;
}

共有ライブラリの方でなくlibid3tag.aを使い、スタティックリンクしてコンパイル。
zlibも必要。

arm-apple-darwin-gcc id3.c libid3tag.a -lz -o id3

コンパイルしたlibid3tag-0.15.1bを置いておきます。

ダウンロード libid3tag-0.15.1b-1_arm-apple-darwin.zip (79.3K)

| | Comments (3) | TrackBack (0)

[iPod touch]Dock Connector一体型iPod touch用マイク頒布

部品が余ったので、Dock Connector一体型iPod touch用マイクを頒布しようかと思います。

2008.04.03追記: 新型になりました。

現状、Jailbreak済みのiPod touchにおいて、音声を録音できるVoice Notesと、Nikotalkieという音声SMSで活用することができます。また、待望のVoIPにおいても進捗があるようです。















送料別\4,500でどうでしょう。
当方で動作確認の上発送。一つ一つ手作りです。
マイクの初期不良2週間保証。サポート無し。

手順としては、「発注>マイク完成連絡>振込依頼>所定銀行口座振込確認>発送」という感じになります。

自分で作るという手があります。
いつかサプライメーカーが、より安価に高性能なものを量産するかもしれません。
現状渡しです。将来、仕様変更をする可能性もあります。
それでも欲しいという方はメールをください。

hitoriblog/* AT */gmail.com

なお、今使っていて気になる点として、「結構録音を終了した瞬間に再起動がかかる」ということがあります。
再起動は、マイクをつないでいなくともNikotalkieやVoice Notesを使っていると起きます。
気になる人は自分のiPod touchでテストしてみてください。僕のiPod touchだけの現象ならいいんですが……。
理由はよく分かりませんが、Voice Notesの作者であるEricaさんのところにも、そういった現象が起きている旨のコメントが見られます
特に、今のバージョン0.23から不安定になったという話ですが、自分は昔のバージョンを試したことが無いので比較できません。

2008.04.03追記: Cydia PackagerからインストールできるErica女史の音声メモアプリ、Voice Notes 0.35b5(VNotes)を試していますが、このバージョンはiPod touchでもリセットがかからないようですね。

2008.04.04追記:やっぱりリセットかかりました><惜しいなぁ

AVRecorderクラスを使った録音方法はEricaさんが解析されたもので、TUAWに解説がありますが、苦労されたとのこと。正規の方法が公開されていてできているものではないということの限界かもしれません。

http://www.tuaw.com/2007/08/06/iphone-coding-recording-audio/

これさえ直れば結構おすすめできるんですが、実情としてはこのような感じです。
実用性を求めたり、保証内容、サポート内容が気になる向きは、おやめになった方がよろしいかと思います。
iPod touch + 音声といった辺りの動きに、今、追従したい人柱志望の方、どうですか。

私の信頼度をはかる過去の同種の実績としては、WristPDAのバッテリをロットで発注し、頒布したということがあります。そのときは、交換サービス(WristPDAのバッテリはハンダで固定されているため、交換作業を代行した)分を含め、全数間違い無くお届けできたと思います。まだ少し余りがありますので、よろしかったらどうぞ。

| | Comments (6) | TrackBack (0)

2007.12.09

[iPod touch]Dock Connector一体型iPod touch用マイク

昨日のエントリ「[iPod touch]iPod touchにマイクを付けて録音実験」に引き続きです。

アンプ内蔵のマイクを買ってきました。
これをこんな風に取り付け、

イヤホン用のカバーをかぶせて。

カバーを閉めたら出来上がり。
昨日のあれは何だったんですか? って感じですか。
いやー、こういうことに関しては我慢が利かないもんで。

完成写真

Dock Connectorからの給電で動きます。

インプレッション

録音したデータです。昨日と同じくVoice Notesで録音しました。それを母艦でLAMEにてMP3にエンコードしています。SoXがビルドできたので、単体でMP3にエンコードできるかも。それについてはまた後日。

「2007-12-09_00-28-57.mp3」をダウンロード

昨日のやつよりずいぶんいいですね。
自分の声を吹き込む分には十分と感じました。
これで、iPod touchでもVoIPができますね。

ただ、会議の録音などには使えない感じです。
それには、より感度の高いマイクないしゲインの高いプリアンプが必要でしょう。

| | Comments (13) | TrackBack (1)

2007.12.08

[iPod touch]iPod touchにマイクを付けて録音実験

iPod touchにマイクを付けるModをやった方が出現したのを知り、居ても立ってもいられなくなったので、追従してみました。

iPod Touch Modsさんです。

Mic Preamp Schematic for the iPod Touch
You Want It - You Get It

とりあえず部品箱等から手持ちの部品を集めて、ブレッドボードでプリアンプを組んでみることにしました。(内容は無保証です。何らか行動を起こす際は自己責任でお願いします)

Dock Connectorを物色

純正のDock Connectorを流用しようと思ったものの非常にやりにくかったので、近所のドンキでUSBリトラクタブルケーブルを購入。
いかにも分解しやすそうな奴、というのが選択基準でした。
選んだものは、ガワが爪で止まっているだけだったので10分後にはバラバラ。

端子からケーブルを外すときに、ハンダが端子に流れないように注意してください。
少しでも端子にハンダが乗ると、穴に入らなくなってしまいます。

ピン配列を変更

USBケーブルは4本結線。マイクに使うのはLine-InとGND、+3.3Vの電源と3本なので足ります。
ただし、使うピンが違うので差し替えます。
ピッチが狭いので拡大鏡を見ながらやりました。
差し替えてこんな感じに。

Dock Connectorのピン配列はiPodLinuxのページに書いてあります。

wikiPodLinux: Dock Connector

ピンの確認

HDDが逝きかけて半壊状態の4G iPodを実験台に。コネクタを差して、テスターでピンの確認をします。飛んでも惜しくない!!

+3.3Vの場所は間違いありませんでした。

ブレッドボード上に回路を組み、テスト

いきなり段取りが飛びますが、ブレッドボード上に、上記のiPod Touch Modsさん掲載の回路を組みます。奥の回路はAVRのテスト用で、関係ありません。

OpAMPが1個しか無かったので、OPA2604APを投入。

コンデンサマイクは秋月のFMトランスミッタキットに付いていた奴を使いました。

iPod touchに接続してテスト

早速つないでみます。

録音には、VNotesを使いました。

紹介記事: iPhone: Voice Notes

なんか使っていると頻繁に再起動がかかりますね。

録音したデータです。

「iPod_touch_mic_test.mp3」をダウンロード

内容についてはみなまで言うなということで。
ゲインが低いのか、音が小さいですね。ちょっと不完全燃焼気味ですが、とりあえず満足。

野良リポジトリにBladeEncを上げておいたんですが、直接エンコはできませんでした。
SoXがビルドできたら試してみます。

今日はアンプ付きのマイクを買ってきます。Dock Connectorの中に内蔵させる予定です。

| | Comments (3) | TrackBack (0)

2007.12.04

[iPod touch]iPod touch / iPhone用ダウンローダHistoryDL.appで画像のダウンロードするのを補助するbookmarklet

NGワード: 標準の, 写真(Photos), iComic

内容、スクリプトは無保証です。

昨日アップしたHistoryDL.app([iPod touch]MobileSafariの履歴から選んでhtmlをダウンロードできるダウンローダHistoryDL.app)で、NGワードとして挙げておいたにもかかわらず、htmlファイル以外のダウンロードうんぬんというリクエストが入ってきましたので、とりあえずダウンロードできるようになるbookmarkletをあげておきます。

母艦のSafariで登録して同期するなどで、iPod touch / iPhoneのMobileSafariに登録してください。

ダウンロードしたいファイルがあるページを表示させ、このbookmarkletを起動。
すると、そのページ内にあるimgタグを集めて画像への直リンク集を生成し、別ウインドウで表示します。

そのリンクを踏むと履歴に登録されますので、HistoryDL.appでダウンロードできます。

バッドノウハウな感じですが、Objective-Cでやり出すと今の自分には大変なので、これで勘弁してください。

ちなみに、元々のページに画像への直リンがある場合は、それを踏めばHistoryDL.appからダウンロードできます。逆に、このbookmarkletではリストアップされないので注意。
あくまでもimgタグの画像をダウンロードするための補助bookmarkletです。

javascript:flagreg=new RegExp("\.jpg|\.jpeg|\.png|\.gif", "gi");di=document.images;if(di.length==0){exit()};w=window.open('',(new Date()).getTime());w=w.document;w.open();w.write('<html><head>');w.write('<meta name="viewport" content="width = 320" />');w.write('<meta name="viewport" content="initial-scale=2.3, user-scalable=no" />');w.write('<title>Images</title><body>');w.write('</head><body>');reg=new RegExp(".+/(.+)", "g");for(i=0;i<di.length;i++){if(flagreg.test(di[i].src)){res=di[i].src.match(reg);name=RegExp.$1;w.write('<p><a href="'+di[i].src+'" target="_blank"><img border="1" src="'+di[i].src+'" /></a></p>\n');}};w.write('</body></html>');w.close();

冒頭の"\.jpg|\.jpeg|\.png|\.gif"というところを任意の正規表現にすると、その正規表現でフィルタリングされた画像リンク集にします。全部ありにしたければ、"\.*"です。

bookmarkletの補助スクリプトアプリケーションImgZip.app

バッドノウハウここに極まれり。

ついでに、/var/root/EBooksにダウンロードした画像(拡張子jpg, jpeg, png, gifのファイル)を、/var/root/Comicにzip圧縮して移動するスクリプトアプリケーションImgZip.appを作って野良リポジトリに登録しておきました。「Utilities > ImgZip」です。画像をダウンロードした後で実行すると、iComicで閲覧できるようになります。
利用には、zip、Erica's Utilities、BSD Subsystemが必要です。zipは野良リポジトリの「Utilities > zip」にあります。

[iPod touch]野良ビルドのバイナリを置いたiPod touch / iPhone向けInstaller.appリポジトリ

テストでポケット路線図 for 京ぽんを使ってみましたがいい感じです。

NGワード: 標準の, 写真(Photos), iComic

| | Comments (3) | TrackBack (0)

2007.12.03

[iPod touch]MobileSafariの履歴から選んでhtmlをダウンロードできるダウンローダHistoryDL.app

普通の人はMobileSafariでページ保存をしようと思って心当たりを試し、方法が無さそうなことに絶望するでしょう。
普通じゃない人は、ポートされたcurl, wgetを使ってダウンロードしようと思い、うまく名前解決できないことに再度絶望しているかもしれません。

それをどうにかしようと思って、MobileSafariの履歴をリストアップし、そこから選んでhtmlをダウンロードできるダウンローダを作ってみました。

NGワード: 画像, リンク, cookie, セッション, 認証

履歴

2007.12.25: ver.0.2 設定画面追加

2007.12.03: ver.0.1 初版。かなりアルファ版

インストール

いつもの野良リポジトリからインストールしてください。

[iPod touch]野良ビルドのバイナリを置いたiPod touch / iPhone向けInstaller.appリポジトリ

「Network > HistoryDL」です。

ずっと敬遠してきたObjective-Cでぼちぼち書いてみたものの、かなり自信無し。
無保証です。

使い方紹介

以下はMobileSafariの履歴です。

HistoryDLを起動すると、MobileSafariの履歴同様にリストアップされます。

ダウンロードしたいページを選択すると、
こんな感じの画面に遷移。Downloadボタンを押すと、ダイアログ等一切出ずにダウンロードが始まります。

ダウンロード中かどうかを知る術は、Downloadボタンが押された状態になっているか否か。
Downloadボタンが押されている間はダウンロードしています。
ボタンが元に戻ったら、多分ダウンロードは完了。

ダウンロードしたファイルは、「/var/root/Media/EBooks」に保存されます。保存先にある同名のファイルをダウンロードしようとした場合は、ファイル名の先頭にアンダーバーを付けて上書きを回避します。
保存先は、「HistoryDL.app/savepath.txt」を編集すると変えられます。

デフォルトの保存先は、BooksJ.app(Books.app)が参照するパスです。
BooksJ.app(Books.app)との連携を前提に作ったからです。
BooksJ.appは、野良リポジトリからインストールできます。オリジナルのBooks.appにエンコーディングの自動判定機能を追加しましたので、日本人にはこっちの方が便利なはずです。

[iPod touch]iPod touch / iPhone用テキストリーダーBooks.appの日本語エンコーディング自動判定対応版BooksJ.app

BooksJ.app(Books.app)で見ると、こんな感じでダウンロードされたファイルが表示されていることでしょう。

BooksJ.app(Books.app)では、htmlファイルを見ることができるのです。

BooksJ.app(Books.app)ではうまく表示できない幅設定ありのhtmlは、iSpitなどのローカルWebサーバを起動し、MobileSafariから見るのがいいのではないでしょうか。

画像をダウンロードしたい場合

[iPod touch]iPod touch / iPhone用ダウンローダHistoryDL.appで画像のダウンロードを補助するbookmarklet


NGワード: 画像, リンク, cookie, セッション, 認証

| | Comments (17) | TrackBack (1)

2007.12.01

[iPod touch]曲再生の一時停止、再開、状態取得等ができるiPod touch用コマンドラインアプリケーションmmpctl

昨日のwifictlに引き続き、既に野良リポジトリには登録しておいたmmpctlについて解説します。

これはwifictl同様iPod touch / iPhone用コマンドラインアプリケーションで、MobileMusicPlayer Controllerの略でmmpctlです。
ミュージック(MobileMusicPlayer)の再生/一時停止をコマンドラインからコントロールできます。

凝ったことはできません。
再生状態と一時停止状態との遷移、再生状態のレポート、現在再生曲情報の標準出力への書き出しのみできます。

主に、Erica's Utilitiesに収録されているplayaudioのフォローのために作りました。
playaudioは引数に与えた音声ファイルを再生してくれますが、再生前にミュージック(MobileMusicPlayer)を一時停止状態にします。
しかし、その後で再生を再開することができません。だから、コマンドラインからの再生再開の手段が欲しくて作ったのです。

これを作るに当たっては、以下のソースを参考にしました。またLyrics.appでおなじみnoviさんのエントリも参考にしました。

http://thebends.googlecode. com/svn/trunk/iphone-apps/music-player/

インストール

いつもの野良リポジトリからどうぞ。

[iPod touch]野良ビルドのバイナリを置いたiPod touch / iPhone向けInstaller.appリポジトリ

「Utilities > mmpctl」です。

無保証です。

ソースコードは開示請求があれば公開します。

mmpctlの使い方

使い方: mmpctl [オプション]

例) # mmpctl -t

-p 再生。
-s 一時停止。
-t 再生時は一時停止へ、一時停止時は再生状態へ遷移します。
-i 現在再生曲情報を標準出力に書き出します。 (タブ区切り)
-f 現在再生曲のファイルへのパスを標準出力へ書き出します。
-g 再生状態を数値で返します。
-h このヘルプを表示します。

-gオプションの返り値

0 停止中
1 再生中
2 一時停止中

応用例1

flite、Erica's Utilitiesと組み合わせて使うと面白いことができます。
fliteは野良リポジトリの「Utilities > flite」にあります。

以下のスクリプトは、現在時刻を英語で読み上げるものです。
音楽を再生していた場合は一時停止し、読み上げた後で再生を再開します。

#!/bin/sh

PATH=/opt/iphone/bin:\
/var/root/bin:\
/bin:/sbin:/usr/bin:\
/usr/local/bin:/usr/sbin:$PATH

result=`mmpctl -g`

if [ ${result} -eq 0 -o ${result} -eq 2 ]; then
play_flag=0
else
play_flag=1
fi

now=`date +%H:%M`
flite -t "`flite_time ${now}`" -o /tmp/now.wav
playaudio /tmp/now.wav

if [ ${play_flag} -eq 1 ]; then
mmpctl -p
sleep 1
mmpctl -p
fi

これをcronに登録すると、定期的に時刻を読み上げてくれて、とてもアレゲです。
cronへの登録は「crontab -e」でできます。viが立ち上がるので、例えば以下のように登録します。
上記のスクリプトは、「/var/root/bin/jihou.sh」に保存したと仮定します。

*/30     *       *       *       *      /var/root/bin/jihou.sh

30分ごとに実行する設定です。つまり、30分ごとに時刻を読み上げてくれます。

標準状態ではcronが動いていないかもしれません。
Community Sourceをインストールし、Installer.appからUlctlをダウンロードしてきて、「com.apple.cron」をloadしてみてください。

応用例2

「mmpctl -f」で、現在再生中の曲のファイルのパスが取得できます。
以下のようにすれば、現在演奏中のファイルをカレントディレクトリにコピーできます。

cp `mmpctl -f` .

応用例3

「mmpctl -i」で、現在再生中の曲の曲名、アルバム名、アーチスト名が取得できます。
項目間はタブ区切りです。

# mmpctl -i
Magnets	Idealism	Digitalism
# mmpctl -i | awk 'BEGIN{FS="\t"};{printf("%s\n%s\n%s\n", $1, $2, $3)}'
Magnets
Idealism
Digitalism

しかし書き出せたところで、今のところ使い道が無いですかね。
以下のようにすれば、現在演奏中のファイルを、曲名でリネームしながらカレントディレクトリにコピーできますが、ちょっと危ないかも。

# cp `mmpctl -f` `mmpctl -i | awk 'BEGIN{FS="\t"};{print $1}'`.mp3