賭けの考え方

“賭けの考え方”という本を読んだ。
プロポーカープレイヤーが書いた、ポーカーにおける思考習慣についての本。
これがすごく面白かったのでいくつか心に留まった部分についてメモしてみる。

  • ポーカーは分散の大きいゲームである
  • ポーカーは技術と運が両立するゲームだが、相手の手札が見えない不完全情報ゲームであること、受け取る手札がランダムに決まることなどから短期的には運の要素が支配的になるゲームである。逆に長期的にプレイすると運の影響は少なくなり実力がものをいう。そのためポーカーで利益を得ようとする場合技術を磨き、短期のリスクに目をつぶり長期的な視野に立ってプレイすることが重要となる。

  • ダウンスイングは避けられないものである
  • ポーカーは分散の大きいゲームであるため、想定した利益率を下回る状態が続くことがよくある。この状態をダウンスイングという。
    ダウンスイングに入った場合、その状態を受け入れ、正しい判断を下せるよう冷静に対処する必要がある。
    ダウンスイングで一番まずいのは不調と感じてプレイスタイルを根本的に変えたり、必要以上に自信を無くしてしまうことである。

  • 自分の思考レベルを相手の思考レベルの1つ上に保つ
  • 相手の考えを読むときの”レベル”は相手の考えているレベルの1つ上を行くようにする。
    例えば相手が”裏の裏”まで読むプレイヤーなら自分は”裏の裏の裏”まで読むようにする。
    必要以上に深く読みすぎると、それは逆に弱みになってしまう。


    …などなど。
    ポーカーに限らず戦略について書かれている本は多いけど、それを実践するための心構えみたいな、ちょっとメタなところについて書かれた本。
    こういう本はあんまり読んだことが無かったのでけっこう新鮮でした。

    CSSの勉強

    最近Webアプリ関連の勉強が停滞していたので再起動。
    今はcssに関して調べてる。

    なぜcssかというと、3月に蔵書管理アプリ作ったときにそこでつまずいたから。
    サイトのデザインを修正するときにcssでスタイルの調整をしようとしたらなかなかうまくいかずかなり時間を費やしてしまった。
    細かい調整が必要な部分なだけに、修正の都度webで調べることになるとロスがでかい。

    そんな経緯で初めてみたのだけどその過程でかなり良い感じのcssお勉強サイトを発見した。
    内容は、何も無いところからポートフォリオの玄関ページを作成する、というチュートリアル。
    全体の構成から徐々に細部の調整へと移っていく過程になっいるので、技術的な部分を学ぶというよりもサイト構築の流れを理解するためのもの、といった印象。
    最終的に出来上がるサイトもシンプルにまとまってて、かなり応用が利きそう。

    Raspberry Pi と Arch Linux



    ちょっと前の話なのだけれど、3ヶ月くらい前にRaspberry Piを購入した。
    買った直後に起動テストだけして完全に放置、という非常にもったいない状態だったので、(Linux + サーバ)勉強用のマシンとして運用するため、Arch Linux をインストールしてみた。
    で、Arch Linux起動後のアップデートでハマったのでメモしておく。

    まずはRaspberry Pi公式サイトからダウンロードしたイメージ使って、SDカードにArch Linuxをインストール。
    SDカードを挿し込んでボードに電源を挿す。OSの起動自体はすんなりうまくいったんだけれど起動直後に行ったglibcのアップデートでエラーが発生。

    どうやら2012/7/14以降、Arch Linuxのすべてのパッケージが/libに置いてたファイルを/usr/libに移していて、これが原因でアップデート時にエラーが発生するらしい。
    このエラーに対するフォローはArch Linuxの公式サイトに載ってたのだけど、一緒に載ってる解決法を試しても全くうまくいかない。
    (ちなみにこの過程で2度、カーネルパニックを引き起こした。。)

    色々試したり調べてるうちに、最新(2012/9/16)版のRaspberry Pi用 Arch Linuxのイメージファイルを発見。
    これを再インストールしてみることにした。
    (公式サイトのリンクを辿って入手できるイメージは日付が2012/6/13になっていてちょっと古い)

    再インストールしたArch Linuxでは問題なくアップデート完了、ことなきを得た。

    じき公式サイトのイメージも新しいものに置き換わるとは思うけれど、それまでの間は新しいイメージ使ったほうが良さそうです。

    ブックスタンドを買ってみた

    ブックスタンドを買ってみた。

    普段プログラミングに関する本を広げながらコーディングしたり、技術書を読みながらその内容をwikiにまとめたりしているのだけど、そんなとき不便に感じてたのが本を開いたままにしておく手段。
    技術書って厚手のものが多いのでどうしても開いたまま置いておくと勝手に閉じてしまって、その度に手で開き直していた。

    これが非常に手間でなんとかしたいなーと思っていたら、ブックスタンドなるものがあることを知り、早速買ってみた次第。

    このブックスタンド、カタログスペックでは書籍の厚さ25mmまでとのことだけど、それ以上の厚みのものでも対応できそう。
    技術書の中でもかなり厚い部類に入るであろうDavid Flanagan著 “JavaScript 第5版”をこれ使って立ててみたけど耐久性は問題無さそうだった。
    ただ端のページになると両側の重さのバランスが崩れて本が傾いてしまったりすることが若干あるかなと。

    まぁそれでもスタンドの位置と角度を調整すれば何とかなるレベルなので、個人的にはそれも許容範囲内。
    いい買い物だったかなーと満足してます。

    GUIのメニュー項目名に引かれた下線




    前々からGUIのメニューバーに並んでる文字列中の一部の文字に下線が引いてあるのがずっと気になってた(上の画像で言うと”File”の’F’とか”Edit”の’E’とか)。
    Qtの勉強してたらその理由がついにわかった。

    あの下線はメニューに割り当てられたキーボードアクセラレータの文字を表してるらしい。
    例えば”Edit”の’E’に下線が引いてあったとするとそのメニューには”Alt+E”が割り当てられている。

    あとそれに関連したおまけ情報をさらに2つ。

  • キーボードアクセラレータの自動割付けに利用できる“Kuhn-Munkres Algotithm”というアルゴリズムがある。メニューの数が多い場合はこのアルゴリズムを用いると自動で最適な割付を求めることができる(らしい)。
  • メニュー項目の中には”OpenFile…”のように、末尾にピリオドが3つ付いたものがある。これはそのメニューを選択すると、その後何らかの入力をユーザに要求する、ということを表している(開くファイル名の入力、検索キーワードの入力、など)。
  • 色々作法があるようで。
    こういう細かいTIPS集めたサイトとか本とかって無いのかな。

    史上最大の発明アルゴリズム

    “史上最大の発明アルゴリズム”を読んだ。

    “コンピュータに問題を解決させるための覚え書き”としてのアルゴリズムが、どのように発明されたのかについての経緯が書いてある。
    アルキメデス、ライプニッツ、ゲーデル、テューリングなどなど。
    時代を経て、何人もの論理学者、数学者を介して、抽象的なものに数学的な表現が与えられ、徐々にその輪郭がはっきりしていく過程が面白い。

    最後の方、テューリングマシンが出る段でカチッとピースがはまるというか。それまで高尚な学問としてのイメージが強かった分野が一気に実用的なものに転換した瞬間を垣間みるようで。


    歴史を俯瞰して現代までの流れを追っていくというような構成の本。”フェルマーの最終定理”とか書いてるサイモンシン先生の著作が好きな人とかは結構イケるんじゃないかなと。



    …とこんな感じの本ではあるんだけど、個人的にはラムダ計算のあたりが全然理解できなかったのがすごく悔しかった。そろそろ新しいプログラミング言語でも勉強しようかなと思ってたので、これを機にHaskellかScalaあたりを覚えるべきか。

    ストップウォッチアプリ “TaskProfiler”

    趣味でちょこちょこプログラミングしてるけど作業時間の見積もりが甘すぎるのが目下の課題。

    そんなこんなで精度向上のため、作業時間の計測でもしてみようかと思い立ち、Windowsで使えるストップウォッチアプリを物色してみたんだけど良い感じのものが見つからなかった。

    「見つからなかったら自作してしまえ!」ということで、PythonとQtの勉強兼ねてストップウォッチアプリを作ってみた。

    要求仕様としては
    ・複数個のストップウォッチを同時に制御できること
    ・ストップウォッチの状態を保存できること
    ・ストップウォッチの状態をCSVファイルに出力できること

    外観はこんな感じ↓(スクリーンショットが貧弱すぎる…)

    で、とりあえずひと通り欲しい機能が実装できたのでgithubに上げてみた
    一応exeファイルもdistフォルダ内に入ってるので、Windowsならpythonインストールしてなくても動く…かもしれない。

    早速使ってるけどわりと良い感じの使用感(自分のためだけに作ったので当たり前だけど)。
    使いながら少しづつブラッシュアップしていきたいなー。

    PILとWindows 7 64bit版

    デジカメで撮った写真をプログラムからいじりたいなー、と思い立ちPython用画像処理ライブラリのPIL(Python Imaging Library)をインストールしてみた。

    インストール自体は滞りなく進んだのだけれど、いざ使ってみようとするとPILの一番基本的な処理である画像の表示関数がうまく動いていないらしく画像が表示されない(正常に動作するとWindowsの場合、標準のビューアが起動して画像が表示される)。
    で、ちょっと調べてみたところ、Windows 7 64bit版でそのまま使おうとすると、一部のdllの呼び出しが失敗してうまく動かないらしい

    ただ、64bitOS用にコンパイルされたライブラリを配布してる人もいるようで、これを使えばOKとのこと。
    …だったのだかインストーラを実行すると、
    “Python version 2.7 required, which was not found in registry.”とエラーが出てきて、インストールできない。。

    さらに問題のdllを書き換える対処方も探して、ココ
    参考に試してみたけどダメだった。

    これを機にVMware PLayer上のUbuntuに開発環境を移行すべきか。。

    写真撮影@井の頭

    Robot Army

    デジカメで写真撮るのにすっかりハマってしまいました。
    井の頭公園が家の近くにあるのでそこまで散歩がてらちょくちょく写真撮りに行ってます(上の写真はジブリ美術館のロボット兵)

    カメラ、写真撮影に関しては右も左も分からないので、レンズ変えたり、ISO、シャッタースピードいじったりと試行錯誤しながら撮影してます。

    ということで色々アップしてみる。



    花その1
    flower 05_12 00



    花その2
    flower 05_12 01



    花その3
    flower 05_12 02


    望遠タイプのレンズ使ってみたんですが被写体の周りがボケて良い感じの雰囲気に(ボケ部分に乗ってるノイズがちょっと気になるけど)。

    これからの季節は紫陽花とかが綺麗に撮れそう。楽しみだなー。