久しぶりに「はじめてのOSコードリーディング」読書会に参加。今日は12章のキャラクタデバイスを読みました。

仕事の都合で重要な部分をやっていた時にほとんど参加できず、今さら参加しても無意味かなという気持ちを抑えて行ってきましたが、やっぱり行けば行っただけのことはありますね。自分が担当の箇所は真剣に読むし参考になる話も聞けるし。

特に収穫だったのは、一旦最後まで終わらせたら途中をもう一度やり直すかもという話が出たことです。プロセスとか割り込みとかOSの核になる辺りで参加できなかったので期待大。

最近はBSD本の読書会と一緒にやっていますが、こちらはさすがに最初からまじめに追いかける元気はないですが、もう少しでネットワークの話になりそうです。UNIXv6には全く含まれていない機能ですから途中参加するには良いタイミングなのかも。それなりにがんばって勉強しないと参加する意味がないので本当にやるかはまだ分かりませんが。

思案中です。

Week4の視聴が終了しました。

先日教養っぽすぎて物足りないと書きましたが、確かにこれだけインターネットが多方面に強い影響力を持つとそのことに触れなければならないので教養っぽい話になるのも当然なのかなという気がしてきました。

ただそうだとすると負の影響についても、もっと触れるべきなのではないかと感じます。

村井先生は情熱をもってインターネットを推進して来た方ですから当然正の影響中心の話になるだろうとは思いますが、それにしても負の影響の話の比率が低すぎたのではないかと。

それはそれとして、これだけの話が無料で視聴できるのはまさにインターネットの正の影響力の1つですね。ありがたいことだと思います。

最近Androidプログラミングの勉強をしています。ある程度分かってきたので定番の電卓アプリを作ってみました。

Activityをextendsしたクラスに全てを詰め込んだ書き方で動いたので良し良しと思っていたところ、偶然AndroidでもMVCすべきという趣旨のサイトを見つけました。

数十年前にSmalltalkが流行ったころMVCの勉強をしたのですが当時は頭が受け付けませんでした。久しぶりにAndroidにどう適用できるかチャレンジしたところ嘘のようにあっさりプログラムができてしまいました。

Modelは電卓の内部情報を管理するクラス、Viewは電卓の表示を行うクラス、ControllerはGUI上のボタン操作を管理するクラスで、Controllerは自然とActivityをextendsしたクラスになりました。

ユーザーがGUI上のボタンをクリック→ActivityをextendsしたControllerクラスのonClick()メソッドが呼び出されその中でどのボタンがクリックされたかをModelに通知→Modelは内部状態を変更した後、Modelに変更があったことだけ(どのようにViewを書き換えるかの情報は含まない)をViewに通知→通知を受けたViewは自らModelの内部状態を調べて情報に基づき表示を変更

という流れになりました。3つのクラスに機能が分離されすっきりしたと思います。