# Pharo by Example 9 Chapter 3 読み直した A quick tour of Pahro 短い。 # Pharo by Example 9 Chapter 4 読んだ Finding information in Pharo Spotter Shift + Enter で起動。 Finder Exampleの検索「'eureka' . 'EUREKA'」でエラーになる。「25 . 35. 5」はちゃんと gcd を見つけてくれる。 # Pharo by Example 9 Chapter 5 読んだ A first tutorial: Developing a simple counter コードを書き始める。 ビデオがあるらしい。 Pharo MOOC at バージョンが古いため期待どおりにならないところが結構ある。 クラス定義(?) 古い書き方 Pharo 9 ``` Object subclass: #Counter instanceVariableNames: 'count' classVariableNames: '' package: 'MyCounter' ``` 新しい書き方 Pharo 14 ``` Object << #Counter slots: { #count }; package: 'MyCounter' ``` TestCase を継承するテストクラスは、名前の末尾が -Tests であるパッケージに含めなければならない。 エラーにはならないけど、警告が発生する。 例えば、パッケージ: MyCounter に Counter と CounterTest を含めるのではなく、 パッケージ: MyCounter に Counter、パッケージ: MyCounter-Tests に CounterTest と分ける。 printOnをオーバーライドすることで文字列への出力をカスタマイズできる。 しかし、テキストに記載されている次のコードでは警告が発生する。 ``` Counter >> printOn: aStream super printOn: aStream. aStream nextPutAll: ' with value: ', count printString. ``` 警告メッセージ ``` [printString] No printString inside printOn Use cascaded nextPutAll:'s instead of #, in #nextPutAll: ``` どうするのが正しいのかまだわかっていない。 # イルカ本 5章を読んだ テクスチャ。 §5.10 Wrapping and Tiling のところでずっと止まっていたのを進めた。 §5.11 P123 の ".. cause the height of all squares to be equal." で、なぜこれが perspective distortion の原因になるのか理解できていない。