Land of Lisp 本、Kindle 版 Steve Jobs、Parallels Desktop 上の Ubuntu 11.10 に PC-G850VS 用 G850ターミナルでリモートログイン。

iOS 5 のダウンロード、iPhone 4S の発売、iCloud の開始時に、 2011年11月5日 Steve Jobs 氏が亡くなったことが発表されました。56歳でした。

ご冥福をお祈りします。

前回、Learning GNU Emacs を読んだ感想を書きましたが、もう少し Lisp について学びたくなりました。そんな中、Lisp 創案者の John McCarthy 氏の訃報を知り、驚きました。

以前、Practical Common Lisp (Books for Professionals by Professionals) の読破に挫折していたので、何か易しい良書がないか探していました。日本語の Lisp 本は、だいたい持っているので、洋書を選ぶことにしました。折角、iPad を所持しているので、Kindle 版の電子書籍にしました。

それで Land of LISP: Learn to Program in Lisp, One Game at a Time! を購入してみしました。魅かれた点は、実際にプログラムを組みながらゲームを作成するところです。

Lisp の実行環境は、Cocoa Eamcs 上の SLIME と sbcl を使用しました。

SLIME: The Superior Lisp Interaction Mode for Emacs
http://common-lisp.net/project/slime/

sbcl のインストールには homebrew を用いました。

Homebrew ― MacPorts driving you to drink? Try Homebrew!
http://mxcl.github.com/homebrew/

まだ、読み始めたばかりです。Lisp の基本的な部分の理解が深まりました。

Lisp の表記には、Code Mode と Data Mode の2つあります。

P36
Location 1247
> (+ 1 2)
3
> (expt 2 3)
8
> 2
2

Code Mode は、実際に式が評価されます。上の例では (+ 1 2)、(expt 2 3)、 2 がそれぞれ Code Mode として評価されます。

> '(+ 1 2)
(+ 1 2)
> '(expt 2 3)
(EXPT 2 3)
> '2
2
> '(one two three)
(ONE TWO THREE)
> 'one
ONE
> '(1 2 3)
(1 2 3)

式の先頭に ‘ を追加すると Data Mode になります。これまで理解できなかった部分が明解になりました。

nil、()、'()、’nil の扱いについても、はっきりしました。

P51
The Four Disguise of ()
> (eq '() nil)
T
> (eq '() ())
T
> (eq '() 'nil)
T 

また、ドット対記法も理解できました。

> '(1 2 3)
(1 2 3)
> (cons 1 (cons 2 (cons 3 nil)))
(1 2 3)
> '(1 . (2 . (3 . nil)))
(1 2 3)
> (cos 1 (cons 2 3))
(1 2 . 3)
> '(1 . (2 . 3))
(1 2 . 3)

リスト (1 2 3 ) は、最後が nil で終わるリスト。(1 2 . 3) は、最後が 3 で終わるリスト。

リストを図にすると上のようになります。図で表すと理解しやすいと思います。

Land of LISP: Learn to Program in Lisp, One Game at a Time! を読んでいる途中、Amazon.comKindleスティーブ・ジョブス氏の伝記が発売開始になりました。即購入しました。値段は $18.09 です。日本語版のように上下2冊にわけられるのではなく、1冊のようです。Apple 関連の本は、いろいろ読んでいるので、おおまかな内容がわかっています。そのため、英語ですが、割と読みやすいです。特に NeXT 関係の箇所を楽しみにしています。まだまだ先ですが、すごいページ数です。(汗)

また、Ubuntu 11.10 (日本語 Remix CD) を 仮想化ソフト Parallels Desktop 7 for Mac にインストールしたついでに、以前から試したかった PC-G850VS と Linux をシリアル接続し、Ubuntu 11.10 ( Linux ) にリモート・ログインできるターミナル (端末)

PC-G850/G815/E200用ソフトウェア
G850ターミナル
http://www16.ocn.ne.jp/~ver0/g800/index.html#g850term
http://ver0.sakura.ne.jp/g800/index.html#g850term

G850ターミナルを試してみました。

Parallels Desktop 7 上の Ubuntu 11.10 にリモートログインし、w3m、vi などの動作にも成功しました。次回紹介したいと思います。それにしてもすごいプログラムですね!

Ubuntu 11.10 login

w3m

ls

Kindle 2 購入、Kindle 2 のスクリーンショットの撮り方

Amazon.com: Kindle Wireless Reading Device (6" Display, Global Wireless, Latest Generation): Kindle Store
http://www.amazon.com/dp/B0015T963C

今年最後のブログ更新になります。

プログラミング関係の洋書を読むことが多いので、2ヶ月程前に Kindle 2 を購入してみました。

購入する前に、上 URL ページの Live Outside the U.S.? 下の Click here to see important information specific to your country をクリックし、Japan を選択、See Coverage Map をクリックして、私の住んでいる地域が Amazon Whispernet (3G ネットワーク) に対応していることを確認しました。

利用方法は、最初に表示される Kindle User’s Guide を読んで学ぶだけです。以下のページも参考になると思います。

PC Watch】 【短期集中連載】Amazon「Kindle」徹底試用レポート(前編) 〜基本仕様と使い勝手をチェック
http://pc.watch.impress.co.jp/docs/topic/feature/20091118_329515.htmlPC Watch】 【短期集中連載】Amazon「Kindle」徹底試用レポート(中編) 〜Kindle Storeで実際にコンテンツを購入する
http://pc.watch.impress.co.jp/docs/topic/feature/20091119_329815.htmlPC Watch】 【短期集中連載】Amazon「Kindle」徹底試用レポート(後編) 〜コンテンツのアーカイブ方法やPDF表示機能などをチェック
http://pc.watch.impress.co.jp/docs/topic/feature/20091120_330103.html
Kindleで日本語表示(第95回):塩田紳二「モバイルトレンド」
http://pc.nikkeibp.co.jp/article/column/20091104/1020120/
Kindleがバージョンアップ:塩田紳二「モバイルトレンド」
http://pc.nikkeibp.co.jp/article/column/20091209/1021201/?P=1

私自身、気がついた使用レポートを書いてみようと思います。試しに、次の 3 冊をダウンロード購入してみました。

書籍名 著者 Amazon.co.jp 価格 kindle 価格 クレジット会社からの請求
Learning JavaScript Shelley Powers \2948 $17.39 \1595
Developing with Google App Engine Engene Ciurana \1862 $11.99 \1104
Unfinished Tales J. R. R. Tolkien \1102 $9.99 \920

間違えて 5-way controller を押し購入しても、購入後に表示されるページでキャンセルすることができます。

上例の Learning JavaScript の場合、日本の Amazon で書籍として購入すると \2948、米国の Amazon Kindle 版で購入すると $17.39、クレジット会社からの請求は \1595 になりました。

だいたい1000円ぐらい安く購入できます。Kindle は、書籍のように場所を取ることがないので助かります。

Amazon.com Help: Kindle Software Updates (Kindle Software Update Version 2.3)
http://www.amazon.com/gp/help/customer/display.html/ref=pe_31310_13700800_fe_txt_1/?nodeId=200324680

Kindle のバージョンが 2.3 にアップされています。通常、自動的にアップデートされますが、PDF 表示を試したかったので、下のページを参考に手動でアップデートしました。

Amazon.com Help: Kindle Software Updates (Applying Kindle Software Updates Manually)
http://www.amazon.com/gp/help/customer/display.html/ref=pe_31310_13700800_fe_txt_2/?nodeId=200324680&#manual

Mac との接続は、付属している電源コードに装着されている USB 電源アダプタを取り外し、

Mac の USB ポートに接続するだけです。Mac の Finder で次のように表示されます。

Mac Dev Center: Blocks Programming Topics: Using Blocks
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxUsing.html

PDF書類 Using Blocks を表示した状態です。

PDF 表示の場合、文字サイズの変更はできません。’Aa’ ボタン を押すことで、方向を変更できます。

文字サイズは、横幅に影響を受けます。下図が PDF書類 Using Blocks を横向きにした状態です。

スクリーンショットを撮るには ALT + Shift + G キーを 2秒程押すことで documents フォルダに gif フォーマットで保存されます。下図の赤枠の部分が Finder 上に保存されたファイルを表示した状態です。

screen_shot-47143.gif を表示すると次のようになります。

使用できるショートカットキーは、下記ページ

GeekTonic: KindleTips - Ultimate Kindle 2 Shortcuts and Tricks
http://www.geektonic.com/2009/03/kindletips-ultimate-kindle-2-shortcuts.html

が参考になると思います。

iTunes App Store から Kindle for iPhone

Kindle for iPhone
カテゴリ/電子書籍
無料
http://itunes.apple.com/jp/app/kindle-for-iphone/id302584613?mt=8

ダウンロードできます。Kindle 2 で購入した書籍は Amazon のサーバー上にあるので、容量を気にせず、好きなだけ読むことができます。

下記 URL も参考になると思います。

アマゾンの Kindle for iPhone の使い心地 - iPhone で書籍を読む楽しさ - 後藤 康成 - ZDNet Japan
http://japan.zdnet.com/blog/got/2009/12/18/entry_27035998/?ref=rss

Hello, Android: Introducing Google's Mobile Development Platform

前回 [ [id:KYoshiaki:20090329] ] 書いたように、あいかわらず iPhone SDK 3.0 は、インストールしていません。しかし、資料はコツコツ読んでいます。NDAのため詳細について残念ながら触れることはできませんが!

ところで、前回 [ [id:KYoshiaki:20090329] ] Mac OS X 上の VMware FusionUbuntu ja-8.10 仮想マシンを使い、Android SDK を試した実行画面を載せましたが

Android 1.5 Early Look SDK | Android Developers
http://developer.android.com/sdk/preview/

が公開されていたので、試してみました。上の説明通り実行すれば、何の問題もなく動作します。注意するところといえば、Android エミュレーターを実行するには Android Virtual Device (AVD) を作成する必要があることぐらいです。上記に書かれている通り、コマンドラインを実行し、eclipse の設定をするだけです。

本格的に取り組むつもりはないと書きましたが、試しに

を購入してみました。

この書籍で知ったのですが、Android エミュレータの画面を実行中に横向きに変更するには CTRL + F11 キーを押せばよいようです。ただし、私の iMac では ‘F11’ キーは音量の調整に利用されています。そこで ‘/アプリケーション/システム環境設定.app’ の

キーボードとマウス/キーボード
'F1、F2 などのすべてのキーを標準のファンクションキーとして使用'

にチェックを入れる必要がありました。

一通り読み終えました。一番の利点はプログラミングを通して Android の仕組みや端末の作法を学べることです。実際、iPhone の場合、テーブルの行の並び替えや削除の方法はプログラミングを通して学びました。

上の書籍のサンプル ‘数独‘ を作りながら Android 端末の ‘Menu’ キーや ‘Back’ キーをどういうところで利用するのか理解できました。

インターフェイス、リソースの作成には XML 形式のファイルを利用します。ほとんど経験がありませんが、どちらかというと Windows Vista 上の XAML プログラミング (WPFアプリケーション) に似ていると思います。

iPhoneフレームワークなどは多少違いますが、構造としては Mac 上のデスクトップアプリケーションとそんなに変わりがないと思います。

Android は、プロセスとアプリケーションが同一ではありません。(まだ、深く理解していないので間違っているかもしれません。) アプリケーションを起動すると前面にアプリケーションの画面 (activity) が作成されます。アプリケーションは複数の画面 (activity) を持つことができます。 ユーザーが他のアプリケーションを呼ぶ度に画面 (activity) が作成され system’s activity manager が application stack に追加し、管理します。また、’Back’ ボタンを押すことで前の Activity に戻ることができます。また必要なくなった Activity は system’s activity manager が削除します。

Activity、Intent、Service、Content Provider など説明だけだと理解しにくいと思いますが、

で実際サンプル ‘数独‘ を作成してみると理解しやすいと思います。

また、iPhone シミュレーターは初期の頃 OpenGL には対応していませんでした。Android エミュレータの場合は問題ないようです。

試しに

のサンプル OpenGLMac OS X 上の VMware FusionUbuntu ja-8.10 仮想マシンを使い、実行した画面をで付けておきます。(VMware Fusion の’仮想マシンのハードウェア設定’/ディスプレイ/3Dグラフィックの高速化にチェックは必要ないようです。)