Assyのリベラル文学研究所もご覧ください。

Javaプログラム改良中

九九の出題プログラムに時間切れ機能をつける

今日は、デザインの仕事が午前中に完成したため、
午後はJavaの勉強をしていた。
以前作った九九の出題プログラムに、
以前書いた発想で時間切れ機能をつけようと思った。
しかしながら、手ごわかった。
マルチスレッドで例外を捕捉するのが難しく、
結果今日だけでは完成しなかった。
作ったソースファイルは、
・メインの制御を行うKukuTimeOver.java
・BufferedReaderを継承しwaitingReadLine()を定義したWaitingReader.java
・Exceptionを継承しTimeOverExceptionを定義したTimeOverException.java
・Runnableインターフェースを継承したMyRunnable.java
クラスファイル(*.class)は

javac KukuTimeOver.java

を行うとソースファイルと一対一で自動的に作られる。
エラーとデバッグを繰り返し、
ネットで検索しながらマルチスレッドや例外などを実装して、
入力待ちの間に10秒スリープし、
10秒後に例外を吐くところまでは作ることができたが、
この例外をうまく捕捉してくれない。
メインの制御部から分岐したスレッドで発生した例外を、
メインの制御部(を呼び出したもともとの関数)から
捕捉することができなかった。
マルチスレッドのそれぞれのスレッドを入れ替えて、
制御部で例外を発生させるようにすると例外を正しく捕捉できる。
しかし、この場合制御部でスリープをするため、
10秒間操作ができなくなって、入力を行うreadLine()を上手く呼び出せない。
結果、このプログラムは今日だけでは完成しなかった。

筋肉痛

足がおかしいのは、
精神がどうこうというよりも、筋肉痛のせいだと分かった。
筋肉痛で辛くなっているだけであり、
精神を治すとかいうことはあまり意味がなかった。

目をよくする

目をよくするための秘訣は、
「脳の見る部分」をつけるつもりで、「しっかりと見る」こと。
おすすめは、車の助手席からしっかりと景色を見ること。

人間の論理的知性は大したことがない

また、はっきり言って、人間の論理的知性は大したことがない。
数学的な論理性や知性よりも、
その時その時の状況や場所、認識や記憶から分かっている、
「分かっていること」の方が大きいからである。
人間型のAIを作るのが難しいのは、
知性を作ることよりも、
「状況から分かっていることが人間程度に分かる」ようにすることが、
とても難しいからである。

最後に逆になるのがおかしい

また、僕は最後に逆になるのがおかしい。
いつまでもきちんとし続けるが、最後に逆のことをして失敗する。
これは人間の遺伝子のせいである。
しかしながら、これは死と密接に結びついている。
死ぬまできちんと全てを治したのに、
全てが治ったその瞬間に死んでしまった。
そこから、最初からやり直して、全て同じ人生を生きた。
しかしながら、今、日本が暗闇になっているのは、
それが悪い。
最後に逆になるのを治せば、この世界は光の世界になる。

全てを解決し、作り続けてきた

僕は今まで、全ての問題を解決し、
さまざまなものを作り続けてきた。
そして、神についても全てを信じて、
最後まで全力で病気を治した。
ここで、もう終わりである。
ここで、全ては完成だ。

デバッグとリーナスの法則

実際のところ、プログラミングはこうしたデバッグとの闘いである。
動いた時は達成感があるが、
最初からきちんと動くことなどない。
エラーや不具合と格闘して、はじめて動くものが作れる。
リーナスの法則である、
「目玉の数がたくさんいればどんなバグも深刻ではない」が正しいのは、
目玉、すなわち検証してくれる仲間が居れば、
どんなバグも発見できるからであり、
同時に、やり方や解決方法が分からなくても、
さまざまなソフトウェアの仕様に詳しいオタクが
何かしら解決策を知っているからである。

僕はパソコンから離れて心理学をやる

僕は、むしろ、そろそろパソコンは十分だと思う。
インターネットやIT技術について、ひととおりのことは知っている。
デバッグとの格闘をやり続けたいとは思わない。
この調子でクラスが増えていけば、
普通に大規模なプログラムも開発できる。
それがプログラミングである。
僕はパソコンから離れて、心理学の勉強をすることにする。
僕がもっとも好きなのは心理学である。
できたら、経済学のことにも詳しくなれればいいと思う。