高校生のときに無意識に「ラバーダックデバッキング」をしていた
「ラバーダックデバッキング」とは…
ラバーダックデバッギング、ラバーダッキング、ラバーダッキーテストとは、ある独特なデバッグ手法の名称である。このデバッグ手法を行うには、ラバーダックのような無機物に対して、コードがいかにして動作するかということを一行づつ逐次説明する。その説明の過程において、間違ったコードに到達した時点で、説明ができなくなる、あるいは説明とコードが合わなくなることを発見することによって、不具合箇所も発見できることを期待したデバッグ手法である。
- その他参考
- ラバーダッキング - Strategic Choice
- Rubber Duck Debugging – Rubber Duck Debugging – Debugging software with a rubber ducky
誰かに向かって説明すると自分の理解不足な点や分からない問題に気づいたりする。
高校生のときに英語の参考書で「この説明とこの説明って矛盾してね?」ってときがあった。英語の授業終わりに先生に質問しにいくために、参考書のそのページを開きながら「なんて質問しようか」と質問内容を考えながら歩いて行く途中に「なんだ矛盾してないじゃん」って言うことが多々あった。
先生は自分に向かってくる存在に気づいているし、私自身も先生が私に気づいていることに気づいてる。そこで引き返すのは中々に気まずい感じなので、とりあえず私の考えが間違っていないかを確認するために質問する。
なんにしても、誰かに向かって説明するというのは理解や矛盾発見に対して中々に強力だと思う。
最近、私は理解しているかを確認するためにパワーポイントで誰かにプレゼンするための準備をするかのようにパワーポイントを作成するようにしている。これも「ラバーダックデバッキング」なのかもしれない。
python 配列に格納されている複数の最大値のインデックスを取得
メイン部分の流れ
- max()で最大値を取得
- for文で配列のすべての値をチェック
- if文で最大値と同じであればそのインデックスをresultにその都度追加
# coding: utf-8 #サンプル table = [9,1,2,3,4,5,6,7,8,9] # 最大値を table_max に設定 table_max = max(table) # 確認 print "table_max = %d" %(table_max) # 複数の最大値の要素を取得し、その結果を空の配列 result に設定 result = [] for x in xrange(0,len(table)): if table_max == table[x]: result.append(x) print result
結果
=========
table_max = 9
[0, 9]
=========
国が頑張るのではなくて、自分たちが頑張るべきでは?
と思ってきた今日この頃。
とあるはてな匿名ダイアリーを読んだんですよ。
日本という「国」に頼るのではなく、「自分がこの国を変えてやるぜ」ぐらいの気持ちを持ち合わせた方がいいのでは?って思った。
うあーガンバロ、びっくになろ。
CakePHP this使いすぎてゲシュタルト崩壊してきた
this とはなにか。何を指しているのか。
「このアプリケーション」なのか、「このクラス」なのか、「このアクション」なのか、、、
普通に「このクラス」だったような。