Category Archives: Apple

O’Reillyの電子書籍iPhoneアプリから.epubファイルを自作する

O’Reillyでは低価格で電子書籍のiPhoneアプリケーションを配布しています。

このように600円とか700円とかのものが非常に多いです。
こんな低価格でも十分太っ腹なのに、さらにすごいのは、アプリを解凍してあげれば中にEPUBフォーマットで作成されたフォルダがまんま入っていて、自由にMacからでも見ることが出来る点です。

当のO’Reillyのサイトにもやり方が書いてあります。
Ebook Bundles – Getting The Most

  1. iTunesで購入した本を選択し右クリックし、「Finder」を選択。
  2. そのアプリのファイル(〜.ipa)を探す(多分すでにフォーカスが当たっている)。
  3. そのアプリのファイルを別のところにコピーし、拡張子をzipにリネーム。
  4. zipを解凍し、中に入っているPayload/bookというフォルダがEPUBフォーマットになっている。
  5. さらにその中のOEBPSフォルダを開けばxhtmlがあるので、それを表示させればMacでも表示が出来る。

せっかくEPUBフォーマットになっているのですから、ここはiPadのiBooksで表示させたい。
ということで、.epubファイルを作成します。

  1. bookフォルダ以下のMETA-INF, mimetype, OEBPSの3つのフォルダを選択する。
  2. 右クリックし「3項目を圧縮」を選択。
  3. 出来たzipファイルの拡張子を.epubに変更する。

あとはiTunesにドロップしてあげましょう。
まだiPadを持っていないので、実際にiBooksに転送して見ることは出来ませんが、今から非常に楽しみです。

P.S.
Mac/iPhoneアプリもあるStanzaでも転送することが出来、表示することが出来ました。1

参考文献

  1. もともとのO’ReillyのiPhoneアプリのバックエンドはStanzaですから当たり前といえば当たり前ですが・・・。 []

Snow Leopardでsyslogdが暴走したら。

最近はファイルサーバをいろいろといじっています。
FreeBSD 7.2 → FreeBSD 8のアップデートに失敗したため、もう一度サーバを再構築する必要が出てきてしまいました。
このサーバはTimeMachineにも使用しているので、できるだけ早く直したいところです。

あとから知ったことですが、FreeBSD 7.2でZFSを使っていた人はアップデート時に注意が必要とのことでした。
詳細については以下のサイトに書いてあります。

FreeBSD 7から8へ上げるZFS使いは気を付けろ – Cheerfull days
[コンピュータ] FreeBSD-CURRENT をインストールしてみる – 2009-06-02 – くりてぃかるひっと!はてな分室

その後、いろいろとiSCSIターゲットを構築したり、NFSサーバを構築したりしたものの、Mac OS X Snow Leopardから覗いてみたところ、設定の仕方が悪いのかちゃんと使用できない感じです。
そのため強制的にアンマウント的なことをやったら、それ以降syslogdがCPU率100%で暴走してしまうようになりました。
再起動してもダメ。

さてどうしたものかなと思って、ぐぐってみるとLeopardへの対処法は書いてあるのですが、Snow Leopardに関してはありませんでした。
具体的に書くと、/var/log/asl.dbというものを削除しろと書いてありますがそのファイルが見つからない。

でも、/var/logを見てみると/var/log/aslというフォルダがある。
どうもSnow Leopardからは単純なフォルダ構成になったようです。

というわけで

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
sudo mv /var/log/asl ~/
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

と/var/log/aslを移動してみると見事復活しました。

Snow Leopardをインストールしました。

(Up-to-dateプログラムでは到着がだいぶん先のようだったので)Snow Leopardを発売日に購入し、その日の夜にインストールしました。

見た目において目新しい新機能もないので、特に書くことはないといえばないのですが、とても快適に使えているということが何よりもいいことなのかもしれません。

特になにもせずLeopardからインストールすると、クリーンインストールではなく上書きアップデートになります。
上書きアップデートは嫌だなぁと微妙に思ってはいましたが、そんなに調子が悪かったりするわけではなく、むしろMacPortsでインストールしたアプリケーションが、しばらくの間はSnow Leopardではコンパイルできないということもあり、上書きインストールでよかったのではないかと思っているところです。

書くことはないと書きましたが、一つ一つがブラッシュアップされているというのは誇大広告ではないと感じます。

たとえば、iPhoneプログラミングに必須のXcode。これもいろいろと新しくなっていて、新機能の静的アナライザなどを使ってみましたが、メモリリークしそうな箇所をしっかり教えてくれるので、とても感動しました。

64-bit版のSafariを使用していて、Flash Playerが32-bitでも1 別プロセスで動くのでYouTube等問題なく視聴できます。
Windowsでは32-bit版と64-bit版のInternet Explorerが用意されていましたが、こちらはすごくスマートなやり方だなぁと感じました。

いろいろなアプリケーションが64-bit化されましたが、64-bitアプリケーションを使っているという感触がありません。
SIMBLが動かないとか、そういうところで感じることはなきにしもあらずですが(笑)。
それは16-bitから32-bitに移ったときのようなリソースが不足しているというような状況ではないからなのかもしれません。

Snow Leopardでしっかりと地盤を固めてくれたものと思っているので、次のOSアップデートにはさらなる期待がふくらむところです。

P.S.
それにしても皆さん、すごい勢いでアップデートされていますね。
Analyticsで比率を見ていると30日ではMac OS Xを100%とすると、40%を超えています。

  1. インストールされているものは32-bitのものです []

Apple Push Notification Serviceを利用した、iPhone クライアントと、Rubyによるサーバの作成。

[とりあえず表示しましたが、これからコードをアップロードしたり改変していきます。]

先週から、システム部で何か動くものを作って発表するという企画?が始まりました。
プログラムプレゼンテーションを始めてみたら意外に良かった

第一弾は自分だったので、1週間しかなかったので、ちょこっとやればできそうで今までやってみたかったiPhone OS 3.0の目玉機能の一つ、Push Notification Serviceの実装をやってみることにしてみました。

iPhoneクライアントはほぼObjective-Cしかありませんのでそれを使い、サーバはRubyで実装しました。

以下が発表したスライドを少し改変したものになります。

コードは今回はbitbucket.orgにアップロードすることにしました!
コードはこちらになります。
http://bitbucket.org/milkcocoa/apns-test/

ただしサーバのファイルに関しては

  • デバイスIDとかの部分はxでマスクしています。
  • キーに関してはスライドで指定した方法で記述してください。

[ポイントを書く。]

Mac OS X LeopardでCD-ROMからisoファイルを作成する。

中途半端ではありますがファイルサーバもできたことなので、CD-ROMやDVDなどはできる限りHDDの中に入れておきたいなぁと考えています。
物理メディアはメディアを探すところから始まり、わざわざドライブに入れなくてはならなかったり、速度が遅かったりと面倒です。

そこでCD-ROMからisoファイルを作成することにしました。
目指すはWindowsでも読めるもの。
Windowsから作成してもよいのかもしれませんが、いちいち仮想環境を立ち上げるのは面倒なのでMacでやってみます。

使用するソフトはディスクユーティリティとターミナル。

  1. isoファイルにしたいCD-ROMをドライブに入れる。
  2. ディスクユーティリティを起動する。
  3. ディスクユーティリティの左側でCD-ROMがマウントされていることを確認し、そこをクリック。
  4. メニューの[ファイル] – [新規] – [〜からディスクイメージ]を選択。
  5. 「イメージフォーマット」を「DVD/CDマスター」にして、ファイルの保存先を選択する。これで.cdrというファイルが作成される。
  6. ターミナルで次のコマンドを打つ。
    hdiutil makehybrid -iso -joliet -o 出力したいISOファイルの名前.iso cdrのファイル名

Windowsでは有名な仮想CD/DVDドライブであるDAEMON Toolsで読み込んでみたところ、無事に読み込むことができました。

13-inch MacBook Proを購入しました。

自分が使っているコンピュータは2006年5月に発表された初代MacBookです。
これにはメモリを2 GB積むことができて、実際に2 GB積んでいます。

自分は大量のアプリケーションを起動して放置、という使い方をしているため、スワップが発生しまくっていてかなりストレスがたまる状況でした。
以前から、新しいOSであるSnow Leopardが発売されてから新しいものを購入すると決めていたのですが、Snow Leopardが発売されてすぐにインストール、というのは互換性のためなかなかできなさそうな状況になってきたので、先日発表・発売された13-inchのMacBook ProをApple Store Shibuyaで購入しました。

購入したのはCPUが2.53 GHzの方のものです。
USキーボードにしてもらったので、型番がMB991JA/Aという微妙に通常の元は違うものになりました。1

本当はメモリを8 GB積みたいのですが、まだまだ高いので値段が下がるまで待つということに決めています。
ちなみに、8 GBのメモリを積める(公式に)というのは、自分にとって選択の上で重要な基準でした。

質感が本当にいいですね。
いろいろと感動しています。
あまりにもいいので、傷がつかないかと心配になります。2
画面もとても色鮮やかできれいになったのがうれしいです。
が、、、相も変わらずきもい自分の顔が写り込むのにはげんなりしますwww。

使ってみた感想は、メモリがとりあえずスワップしない程度に足りているからか?とにかく快適です。
今使っているMacBookすぐにファンが回り出してうるさくなってしまうのですが、こちらは本当に静かです。


The swap has gone!!!

一つ残念なことがあるとすれば、自分の個体だけかもしれませんがイヤホンで音を再生すると無音時にホワイトノイズが乗ることです。

現在、移行作業をちまちまやっているのですが、だいぶん中がごちゃごちゃしてきたので、今回はTimeMachineを使って巻き戻すということはしませんでした。
未来の自分のためにも、せっかくなので移行手順を以下に記していこうと思います。
まだ途中なのでこれからもアップデートを続けていきます。

  • ユーザー登録
  • アップデートが表示されているので(既にダウンロードは終わっている)インストール
  • ファームウェアのアップデート(Bluetooth、SATA)
  • MobileMeの登録。
  • MobileMeでアドレス帳、カレンダーの転送
  • 細かな設定
    • システム環境設定
      • セキュリティ
        • 「一般」 – 「このコンピュータをスリープ状態またはスクリーンセーバから解除するときにパスワードを要求」
        • 「ファイアウォール」 – 「特定のサービスおよびアプリケーションにアクセスを設定」
      • トラックパッド
        • 「スクロールの速さ」を最大に
        • 「1本指の操作」
          • 「タップでクリック」、「ドラッグ」にチェック
        • 「2本指の操作」
          • 「セカンダリータップ」にチェック
      • キーボードとマウス
        • 「キーのリピート速度」- 「速い」
        • 「F1、F2などのすべてのキーを標準のファンクションキーとして使用」にチェック
      • 「日付と時刻」
        • 「時間帯」 ー 「最も近い都市」を「東京 ー 日本」にチェック
        • 「時計」 ー 「秒を表示」にチェック
    • Finder
      • 「拡張子を変更する前に警告を表示」のチェックを外す
      • 「ゴミ箱を空にする前に警告を表示」のチェックを外す
    • Safari
      • 「一般」- 「履歴からの削除」を手動(履歴は財産)
      • 「自動入力」 – 「自動入力Webフォーム」のチェックをすべて外す
    • Terminal
      • 既存のMacBookのターミナルの設定を書き出し、コピー
  • インストール
    • フォント
      • Bitstream Vera ~
          http://www.dafont.com/search.php?psize=m&q=bitstream+vera
    • 辞書
      • Ruby, Ruby on Rails, jQuery Dictionaryのインストール
        • http://www.priithaamer.com/blog/
    • Adobe Illustrator CS3
      • あらかじめ移行元でライセンス認証を解除しておく。
    • ATOK 2008
      • 「ATOK風の入力」でインストール
      • カスタマイザで「MS-IME風スタイル」を選択
      • 言語環境でことえりのチェックを消す
    • Audium
      • Dock用のアイコンをダウンロード http://www.adiumxtras.com/index.php?a=search&cat_id=1
    • ChemDraw
      • Web上で購入したので購入したメールを検索し、リンクからダウンロードすることができる。
    • Chromium
      • http://build.chromium.org/buildbot/snapshots/chromium-rel-mac/
    • ClipMenu
      • 「一般」 – 「ログイン時に起動」
      • 「一般」 – 「ショートカット」 – 「ClipMenu」をCtrl + Shift + Jに
      • 「メニュー」 – 「記憶する履歴の数」を100項目に
      • 「メニュー」 – 「インライン表示する項目の数」
    • delimport
      • v0.2をインストールしてから、v0.3を上書きする。
      • v0.2をインストールして、すでに一度起動してしまっていた場合(アクティビティモニタで調べられる)、強制終了し、~/Library/Preferences/org.ianhenderson.delimport.plistを削除、v0.3を上書きした後に、再起動する。
    • DivX
    • FileMagnet
    • Growl
      • Extrasにあるgrownotifyを/usr/local/binにコピー
    • Google Earth
    • iPalette
    • iWork ’09
    • LaTeXit
      • http://www.cocoalife.net/2007/02/post_121.html
    • Lingon
    • MacKeyholeTV
    • Xcode
    • XQuartz
    • MacPorts
      • sudo port install zsh-devel +mp_completion +pcre
        • sudo vi /etc/shells に /opt/local/bin/zsh を追加。
        • 「システム環境設定」の「アカウント」の中の自分のアカウントを右クリックし(あらかじめ、左下の鍵マークをクリックすることで「解錠」しておく)、「詳細オプション」 – 「ログインシェル」を /opt/local/bin/zsh にする。
      • screen
        • http://thug4dev.com/index.php?/archives/217-MacPorts-Screen-4.0.3_3.html
      • ruby +mactk +thread_hooks
      • rb-rubygems
        • sudo gem install nokogiri
        • sudo gem install mechanize
        • sudo gem install rails
        • sudo gem install rspec-rails
        • sudo gem install mysql — –with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config
        • sudo gem install passenger
          • LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
          • PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-2.2.4
          • PassengerRuby /opt/local/bin/ruby
        • sudo gem install rb-skypemac
      • mercurial +zsh_completion
      • sudo port install apache2
        • sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
      • sudo port install mysql5-server
        • sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
        • sudo -u mysql mysql_install_db5
      • sudo port install ptex +utf8
      • sudo port install sshfs-gui
      • sudo port install subversion +unicode_path
      • sudo port install vim +ruby
    • RealPlayer
    • Papers
      • あらかじめアクティベーションを解除しておく。
    • Remote Desktop Connection for Mac
    • SIMBL
      • GreaseKit
        • oAutoPagerize
        • pbtweet
      • SafariReloadButton
      • SafariStand
        • Action
      • SafariRefManage
      • SafariTabConfig
      • SafariTabMemento
        • 「閉じたタブを開き直す」にキーを割り当て
      • TerminalColoreopard
    • Skype
      • ~/Library/Applicaiton Support/Skypeに履歴があるのでフォルダを丸ごとコピーする。
    • Firefox 3.5
      • GreaseMonkey
      • Firebug
      • FireMobileSimulator
    • TextMate
      • Railscasts Theme http://railscasts.com/about
    • Carbon Emacs
    • TabExposé
    • Tweetie
    • Parallels Desktop for Mac
    • Perian
    • OmniFocus
    • Mailplane
      • Omnifocusプラグイン
    • Flip4Mac
    • Office 2008 for Mac
      • http://www.microsoft.com/mac/downloads.mspx
  1. 通常モデルはMB991J/A []
  2. でも保護シートとか使うつもりはないw []

Xcodeで0xE8000001エラー(iPhone OS 2.2.1)

iPhone OS 2.2.1をインストールしたiPhoneにXcodeで作成したプログラムを転送しようとすると、

Your mobile device has encountered an unexpected error (0xE8000001)
Try disconnecting and powering off the device; then power the device on and reconnect it.

などというエラーが発生し、XcodeがiPhoneを認識しないという状況に陥ります。

これの解決策は

/var/mobile/Media/PublicStaging

を削除し(jailbreakする必要があります)、再起動することです。

なぜ発生するのかは、今の自分にはよくわかりません(jailbreakしたから???)。

Mac用BitTorrentクライアントμTorrent

先日、手持ちのDVDをリッピングして、HDDにおいておこうと思い立ち、Mac用のDVDリッピングソフトを探しました。
条件は保存したかったので、isoファイルにできること。
WindowsであればDVD Decrypter一択なのですが、MacだとMacTheRipperというものが有名らしいです。
結論から言えば、このツールでisoファイルは作成することはできなかったのですが1、とりあえず落としてみようと思ったところBitTorrentで配布されているようです。

以前、BitTorrentクライアントであるμTorrentを使用してとても使い勝手が良かったので、紹介しようと思います。
µTorrent – The Lightweight and Efficient BitTorrent Client

このようにシンプルな画面でダウンロードができ、さらにダウンロードするときもTorrentファイルのURLをメニューの”File – Open Torrent form URL…”もしくはツールバーの”Open URL”から指定するだけです。

いちいちTorrentファイルをダウンロードせずに使え、特に設定することもないというのが非常に気に入っています。

  1. FairMountでマウント → ディスクユーティリティでdmgファイルの作成 DMGConverterでisoファイルへとコンバートという非常に面倒な手順を踏まなければならない []

「iPodは何を変えたのか?」を読みました

iPodは何を変えたのか?
著者: Steven Levy
出版社: ソフトバンク クリエイティブ
ページ数: 368ページ
発売日: 2007年3月29日

この本はiPodが産まれたことで、世界の何が変わったのか?ということに焦点を当てた本である。
ただ、それだけではなくどのようにしてiPodが産み出されたのか?ということについても普段聞くことのできないSteve JobsやJonathan Iveなどの開発者自身が何を考えて作ったのか?ということも書かれている本である。

その前者、すなわち世界がどう変ったのか?ということに関してはだいぶん提灯ぎみ、誇張しているように見えるが、これは日本とアメリカの違いなのかもしれないので、なんとも言えない。
たぶん、それだけしかこの本に書かれていなかったなら、自分がこの本をいちおう最後まで読みとおすことはなかったと思う。

大事なのは後者の部分である。
Appleがどのようにして物作りをしているかということを改めて再確認できる。

それは、Appleが製品を出す際には、どれだけヴィジョンや哲学を第一にして作っているかということである。
この製品はどうあるべきか?ということが第一にあって、そこから細部が決められていく。
そのヴィジョンがあるからこそ、今まで常識的には考えられなかった物が産みだされていく。

その一つが本書でも触れられている電源ボタンの必要性。
普通に考えれば、電源ボタンを用意することは「当たり前」 だと思われるが、iPodはそれをなくし自動的に段階的にスリープしてくように設計されている。
このような考えは、ヴィジョンに照らし合わせて本当に必要か否かを考えなければできないし、これが彼らの考えるデザインそのものであるように見える。
ヴィジョンという曖昧模糊とした問題に対して、その問題の本質とは何か?と考え、それを解決する答えを導き出す、それがデザインになっている。
なんだか以前、フジテレビで「ニューデザインパラダイス」の冒頭で、谷原章介があるものが産まれた過程について話し「これがデザインです」と言っていたのを思いだす。

Steve Jobs自身もこのことについて本書で、こう語っている。

iPodは何を変えたのか?」より引用

果物だから、リンゴ。このシンプルさこそが究極の洗練なんだ。僕らがこの社名で表現したいのは、こういうことさ。人が最初に問題にぶち当ったときには、単純な方法で簡単に解決できるように見える。それは、まだ問題の複雑さを理解していないからだ。でも解決策が単純すぎたら、それはうまくいかない。そうしていったん問題の細部に足を踏み入れると、そこではたくさんの問題が複雑に入り組んでいることがわかってくる。込み入った問題のそれぞれに、手の込んだ解決策を考え出さなきゃならなくなるわけだ。たいていの人はこの段階で止まってしまう。確かにこういう方法でもその場しのぎはできるからね。でも、本当に優秀な人材はそこに留まらずに、問題の背後にある本質を見つけ出す。そして、美しくて簡潔明瞭で、しかも見事に機能する解決策を思いつくんだよ

Steven Levy 『iPodは何を変えたのか?』

そして、彼らはこの問題解決を、他の企業ではありえないほど狂信的におこなう。
「常に狂信的に拘り続け、問題を解き明かそうとすること」、それが世界で最も革新的でSexyな物を産み出す原動力になり他社が追いつけない理由にもなっているのだ。

「レボリューション・イン・ザ・バレー — 開発者が語るMacintosh誕生の舞台裏」を読みました

この本はそのオリジナルのMacintoshの開発の舞台裏を開発者自らが描いた本である。

レボリューション・イン・ザ・バレー ― 開発者が語るMacintosh誕生の舞台裏
著者: Andy Hertzfeld
出版社: オライリー・ジャパン
発売日: 2005年9月

奇しくもMacintoshは今からほぼ25年前の1月24日、1984年1月24日に発表された。
現在では、このときの発表の様子はYouTubeで観ることができる。

自分とMacとの出会いはそんなに昔のことではない。
ずっとMS-DOSやWindowsを使っていたのだから。 

AppleがIntelに移行することを知ったあのWWDC 2005で、Macを使ってみたいと思うようになった。
それまではあまりにもあの帝国にがんじがらめにされていて、そのほかのことを考えるなんてことはあり得なかった。

そしてMacworld 2006で初のIntel MacであるMacBook Proを見たとき、少し失望した。
あまりにも性能に対してMacBook Proが高すぎたからだ。1

結局その後で、デュアルコアCPUを搭載したノートブックをいち早く買いたかったのでVAIO type SZを購入してしまった。

しばらくして、5月の下旬にMacBookが発表された。
こちらはProとは違い、十分に価格性能比がよかった。
あのすてきなボディーに見せられてついポチッてしまったのだった。 

買った当初は慣れなかったのでVAIOばかりを使っていた。
でも、このままでは埃をかぶると思って意図的にMacBookを使い始めた。

そうして使い始めたのだけれど、美しいプロポーショナルフォントや統一されたデザインといった見た目、UNIXであるという中身、そして何とも口では言いがたい哲学から、いつの間にやらVAIOを使うことはなくなった。

Macを形作っているものの一つは哲学であると、この本は思い出させてくれる。
そして、開発者たちはいかに非凡であり、既存のものにとらわれずに、その哲学やヴィジョンに夢を描き、とてつもない情熱と愛情と独創性でMacintoshの開発を進めていったのかが、手に取るようにわかるだろう。
読んでいると、自分たちが世界で最も革新的なコンピュータを作成し、世界を変えてやるんだという情熱が、その楽しさが、今でもフォルテッシモの波となって伝わってくる。

この本を読んでいるとそのようなドキドキ、ワクワク感を自分も心から感じざるを得ない。
創造性というものがいかにすばらしいものなのか、 タイムマシーンに読み手を乗せて教えてくれるのだ。

レボリューション・イン・ザ・バレー — 開発者が語るMacintosh誕生の舞台裏」より引用

熱意は人から人へと伝わるものだ。作るのが楽しい製品は、使うのも楽しい可能性が非常に高い。オリジナルのMacintoshのチームが持つ緊迫感、功名心、卓越に対する情熱、芸術家としてのプライド、そして恐れを知らないユーモアなどが製品を通して伝わり、Macintoshのスピリットをその時代のデベロッパや顧客に吹き込んだ。それは20年以上経った今でも、影響を与え続けている。 

Andy Hertzfeld 『レボリューション・イン・ザ・バレー — 開発者が語るMacintosh誕生の舞台裏』
  1. 出荷されるときにCPUが強化されたが、それでも他のWindows機に比べて高かった。現在はそんなことはなく、妥当な値段かむしろ安い。 []