Amazon Kindle 版 Steve Jobs 伝記、日経ソフトウエア 2012年 1月号 (新メモリー管理方式「ARC」の使い勝手)、Emacs Tips バッファリストを同一ウインドウで開く

Amazon KindleSteve Jobs 伝記をようやく読み終えました。読んでいる途中で、本の更新メールが届き、驚きました。電子版になると文章の修正などが簡単になるので、更新処理も可能になるのですね。メールに記載された更新手続きを行うと、問題なく更新されました。

NeXT、iPhone に関する技術的な考察を知りたかったのですが、内容は少なめでした。本の最後にある And One More Thing …、Steve Jobs 自身の言葉は、感慨深いものがありました。ご冥福をお祈りします。

日経ソフトウエア 2012年 1月号 の内容

日経 ソフトウエア 2012年 01月号 [雑誌]

日経 ソフトウエア 2012年 01月号 [雑誌]

P16
特集 1
Java 新時代へ
P40
連載型 特集
アプリはまず「骨格」を作れ
Android ネイティブ・アプリ 設計法
■ 赤井 忠昭
P54
特集 3
iOS 5 で変わる iPhone プログラミング
retain や release はもういらない
新メモリー管理方式「ARC」の使い勝手
■ 荻原 剛志
P62
特集 4
Windows 8 & Visual Studio 11 徹底解説!
Metro アプリ開発をいち早く体験
■ 矢嶋 聡
P132
日本マイクロソフト エバンジェリストが語る最新プログラミング実践講座
Windows Phone 7 プログラミングを始めよう
第2回 スタート画面のタイルを使いこなす
■大西 彰
連載
NEW
P74
プチコンでニンテンドー3DS/DSi/DSi LL
ゲームプログラミング講座
第1回 お題 シューティングゲーム
■松原 拓也
NEW
P87
Xcode 4 使い方入門
第1回 各画面やメニューを理解する
■ 大津 真

に大変興味が湧き、購入しました。特に

P54
特集 3
iOS 5 で変わる iPhone プログラミング
retain や release はもういらない
新メモリー管理方式「ARC」の使い勝手
■ 荻原 剛志

については、ARC のより深い理解の参考になりました。再確認のため Apple の資料を調べてみました。

まず、最初に新しい機能については

What's New in iOS: Introduction
https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008244-SW1

What's New in iOS: iOS 5.0
https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS5.html#//apple_ref/doc/uid/TP30915195-SW1
Automatic Reference Counting

で概要を理解できます。上で紹介されているリンク先

Xcode New Features User Guide: Introduction
https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/00-Introduction/Introduction.html#//apple_ref/doc/uid/TP40004626
▼ New Features in Xcode 4.2
Automatic Reference Counting

でも確認できます。さらに紹介されているリンク先

Transitioning to ARC Release Notes
https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226

が一番詳しいので、これさえ読んでおけば、充分だと思います。

私自身の経験ですが、NSLog などで

Thread 1: Program received signal: "EXEC_BAD_ACCESS".

が表示される時、原因となるファイルの ARC を無効にすると回避できることがあります。本当は、原因を取り除くべきなのですが、私自身、究明できないので暫定処理として使っています。

ARC のファイルごとの設定方法は、上のリンク先に載っています。簡単に説明すると

プロジェクト名/プロジェクト/Build Settings
▼ Apple LLVM compiler 3.0
Objective-C Automatic Reference  Co…

で、プロジェクト自体の ARC を有効にし、

プロジェクト名/TARGETS/Build Phases
▼ Compile Sources (6 items)

上図のように ARC を無効にしたいファイル名の右側、Compiler Flags エリアをダブルクリックし、表示されたウインドウに

-fno-objc-arc

を入力してください。これで、ARC を無効にできます。何も指定していない場合は、プロジェクト自体が ARC を有効にするので、自動的に -fobjc-arc フラグがセットされます。

また、日経ソフトウエア 2012年 1月号

連載
NEW
P74 プチコンでニンテンドー3DS/DSi/DSi LL
ゲームプログラミング講座
第1回 お題 シューティングゲーム
■松原 拓也

の記事も購買目的の一つです。早速、プログラムを入力して遊んでいます。いろいろ改造しながら、スプライトの利用方法 (ミニ・シュート: 自機の爆破処理など)を理解しています。

最後に、ちょっとした Tips です。通常 Emacs でバッファリストを開くと別ウインドウに表示されますが、同じウインドウに表示する設定です。

;;  ========================== .emacs ==========================
;; list-buffers
(setq same-window-regexps '("\*Buffer List\*"))    ;; \ = バックスラッシュ = Option + \
Force Same Window - GNU Emacs Manual
http://www.gnu.org/s/libtool/manual/emacs/Force-Same-Window.html
Special Buffer Frames - GNU Emacs Manual
http://www.gnu.org/s/libtool/manual/emacs/Special-Buffer-Frames.html#Special-Buffer-Frames

を参考に設定してみました。same-window-regexps 変数は、正規表現のリストです。

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

iYKRSSHD、OS X Lion 10.7、PCG-LinkMac とシリアルポート

本題に入る前に宣伝です。

拙作 iPadRSS リーダー iYKRSSHD を通常価格 85 円のところ、8月一杯まで無料で公開します。


iYKRSSHD
カテゴリ/ニュース
8月一杯まで無料
iPad 用のシンプルな RSS リーダー。RSS フィードの更新をマルチタスキング機能に対応しました。また、バックグラウンドで RSS フィードの更新が終了すると画面に通知します。
http://itunes.com/apps/iYKRSSHD

よかったらダウンロードしてください。

とうとう OS X Lion 10.7 が Mac App Store で 2600 円で発売されましたね。

早速、OS X Lion を Mac App Store からダウンロードしました。Snow Leopard から OS X Lion にアップグレードするとインストーラが削除されてしまいます。そのため、インストール DVD が作成できません。それで、インストーラを一旦終了して

OS X LionのインストールDVDを作成する方法 | トブ iPhone
http://applembp.blogspot.com/2011/07/os-x-liondvd.html
【コラム】新・OS X ハッキング! (6) Lionへアップグレードするその前に〜インストールDVDをつくろう〜 | パソコン | マイコミジャーナル
http://journal.mycom.co.jp/column/osxhack/006/index.html

を参考にインストール DVD を作成しました。(Snow Leopard から OS X Lion にアップグレードするとリカバリー HD が作成されます。インストール DVD は、必要なかったかもしれません。リカバリーHD は Mac を Option キーを押したまま起動すると現れます。)

また、作成しインストール DVD で OS X Lion をインストールするとリカバリーHDが作成されないようです。インストール DVD を作成した後、普通にインストーラを使って OS X Lion を一度インストールしました。

ハードディスクのパーテーションの区切り方によっては OS X Lion がインストールができない人もいたようです。私は BOOTCAMP、Macintosh HD の2つのパーテーションでしたが問題はありませんでした。

OS X Lion にアップグレードした後、クリーンインストールするために、先程作成したインストール DVD をドライブに挿入し、C キーを押したまま Mac を起動しました。ディスクユーティリティを使って OS X Lion のパーテーションを Mac OS 拡張 (ジャーナリング)で消去し、OS X Lion を再インストールしました。

Mac を起動すると Time Machine からデータを復元することができます。余計なものを復元して欲しくなかったので、ユーザ、設定だけ復元しました。iPhoneiPad 開発に必要な鍵もしっかり復元されていました。

後は、XcodeParallels DesktopVMware Fusion など最新版をインストールしました。特に問題はありませんでした。

また、私が日頃利用している自作ソフトも問題なく動作しました。ただし、PCG-LinkMac は、シリアルポートを見つけることができませんでした。

以下のサイトから

Welcome to Prolific
http://www.prolific.com.tw/eng/downloads.asp?id=31
md_PL2303_MacOSX10.6_dmg_v1.4.0.zip

ドライバをダウンロードしてインストールしました。

インストールするドライバのファイル名を表示するには、インストーラを起動して、メニュー ‘ファイル/ファイルを表示’ を選べば、表示できます。

’/アプリケーション/ユーティリティ/コンソール’ を起動して、下図のように、ファイル kernel.log を選択します。その後、RS232C シリアル変換ケーブルを接続すると

Jul 26 xxx:xx:xx xxxxxxxx-no-iMac kernel[0]: PL-2303/X V1.3.0 start, Prolific

と表示され、ドライバが読み込まれていることが確認できます。

ただし、PCG-LinkMac のパリティが ‘Odd: 奇数’ だとエラーが生じます。パリティを ‘なし: none’ にするとうまく動作しました。

また、Japanino で利用する Ardunio も USB シリアルポートを見つけることができませんでした。Japanino を USB に差すと

Jul 26 xxxx:xx xxxxxxxx-no-iMac kernel[0]: 0        0 AppleUSBCDC: start - initDevice failed

というエラーが出てドライバが読み込まれません。原因を追及することができませんでした。ただ、

AppleUSBCDC: start initDevice failed - InsanelyMac Forum
http://www.insanelymac.com/forum/index.php?showtopic=262659

のサイトから判断すると Apple 側に問題があるのかもしれません。

MacPorts をやめて Homebrew や RVM – Ruby Version Manager もインストールしてみました。次回にでも詳細について書きたいと思います。