2012-01-01から1年間の記事一覧

はじめる! Squirrel 第8章 高度な話題 その2

協調動作 スレッドとジェネレータ ジェネレータは yield 文を含む関数。呼び出すとジェネレータが返る yield したらそこで処理が中断される。yield に渡した値がジェネレータの resume から取得できる ジェネレータは resume で再開できる 最初に走りはじめ…

はじめる! Squirrel 第8章 高度な話題 その1

メタメソッド フックメソッドみたいなもの テーブルやクラスに適切なインタフェースで関数を定義しておいて、演算子を評価する時にその関数を実行させる _cmp を定義すると , = 演算子で呼ばれる _add を定義すると + 演算子で呼ばれる クラスオブジェクトに…

はじめる! Squirrel 第7章 クラス その3

今日はコンストラクタから コンストラクタはクラスのメンバ関数に constructor という名前で定義すればよい。引数を指定したらインスタンス化の時に引数を渡せる ここのサンプルコードの説明に「デフォルト引数と関数を引数として渡すコードを含む例」とあり…

はじめる! Squirrel 第7章 クラス その2

クラスのインスタンス作成はクラス名を関数として呼ぶ class C { }; local c1 = C (); インスタンスのもつメンバ変数の初期値はクラス定義時に定義したもの static メンバ変数 - クラスの全インスタンスで共有、するだけでなく変更ができない、定数として使…

はじめる! Squirrel 第7章 クラス その1

今日は時間があまりなくてちょっとだけです クラス定義の構文 class (クラス名) { // メンバ変数の定義 int a = 0; function f() { } }; クラス名は大文字からはじまらないといけないのかな、と思いきや class foo {} でも定義できました。ただの慣習みたい…

はじめる! Squirrel 第6章 配列とテーブル

配列インデックスは 0 オリジン 配列には異なる型の要素を持てる 配列にドット(".")をはさんで関数を書ける。メソッド呼び出しみたいですね。このドットの両側にも空白を挟むのが慣習みたい len, append, insert, remove, clear, sort, reverse, resize, sli…

はじめる! Squirrel 第5章 関数

関数は「ファーストクラスの値」(Squirrel の公式ドキュメントより) 「配列を内部に保持することができ」という部分はどういう意味でしょうか 「関数は Squirrel 上で、もしくは ANSI C の関数呼び出し規約をもつネイティブコードとして実装することができる…

はじめる! Squirrel 第4章 制御構文

ほぼ C と同じ(switch 文が break を書かないと fall through するのも一緒)なので細かいメモはしませんでした。 return 文の説明に「関数もしくはジェネレータを終了し」とあるのでジェネレータがあるみたい for 文とは別に foreach 文がある。配列、テーブ…

はじめる! Squirrel 第3章 演算子

演算子はだいたい C と同じ + α みたいです 代入演算子(=)、複合代入演算子(+= とか -= みたいなの) 算術演算子(+-*%) インクリメント、デクリメント(++, -- 表 3.4 はデクリメントが - 1つのように見えます) 前置と後置があり、その違い(インクリメント、デ…

はじめる! Squirrel 第2章 変数と値とデータ型 その2

enum C の enum に似ているが値として整数だけでなく浮動小数点数や文字列を指定できる ただし指定した値は値を明示しなかった定数の値に影響しない→指定するなら(整数の場合)全部指定しないと被るかも。また開始を0からじゃなくて1からにしたくて最初の要素…

はじめる! Squirrel 第2章 変数と値とデータ型 その1

今日は第2章です。新しいプログラミング言語を知るにはまずデータ型から。今日はデータ型、リテラル、そして文字列操作(えっ)と変数について読みます。 Squirrel のデータ型 整数 浮動小数点数 文字列 真偽値 null 整数についてはそのバイト幅や多倍長整数な…

はじめる! Squirrel 第1章 はじめに その2

Squirrel スクリプトファイルの拡張子は .nut Squirrel がリスなのでそれに食べさせるファイルはナッツだと。おもしろい命名方法ですね 最初の Squirrel プログラム print ("Hello Squirrel!!\n") print と括弧のあいだに空白があるのが気になりますね。削っ…

はじめる! Squirrel 第1章 はじめに その1

Squirrel の特徴 クラスと継承のサポート 高階関数のサポート レキシカルスコープ ジェネレータ、コルーチンなどの並列処理のための機能をサポート 例外 自動的なメモリ管理(つまり GC?) モダンな言語が持つ機能をひととおり持っている感じ。ないのはリフレ…

はじめる! Squirrel まえがき

今日からまたまた達人出版会の「はじめる!」しりーず「はじめる! Squirrel」を読みます。2011年9月版とあるので1年以上積ん読してたんですね。http://tatsu-zine.com/books/squirrelまえがきがそれなりのボリュームがあるので今日はまえがきだけ。 Squirrel …

はじめる! Cucumber 第9章 終わりに

最終章は Cucumber 以外のテスト用ツールやフレームワークの紹介 RSpec 言わずとしれたテストフレームワーク。 BDD(Behavior Driven Development)フレームワークというらしい rcov カバレッジ測定ツール。ですが今は 1.9 系以降では simplecov を使います ru…

はじめる! Cucumber 第8章 7周目: 特に重要なテストを実行する

テストシナリオにタグをつけてテストをグループ化する 特定のタグのシナリオを実行したり、前処理/後処理をまとめて指定できる シナリオ名の前行に @ でタグをつける @wip は作業中を表すタグ。rake cucumber:wip でそのタグのシナリオだけ実施できる 逆に(…

はじめる! Cucumber 第7章 6周目: ウォッチ中メッセージを一覧する

多くのデータの組み合わせでテストするため「シナリオアウトライン」を利用する シナリオの流れは再利用して別のデータでテスト実行する feature ファイルの「シナリオ」→「シナリオアウトライン」に書き換える ステップ内の可変の文字部分を "" のように <>…

はじめる! Cucumber 第6章 5周目: 他のユーザをウォッチする

サンプルアプリでフォロー、じゃなかったウォッチする機能を作成 ステップ定義の中で他のステップを呼ぶ(Given, When, Then などを利用する)ことでステップを再利用することもできる 「背景」というステップを利用してフィーチャ内で共通する前提処理をまと…

はじめる! Cucumber 第5章 4周目: ユーザのメッセージを表示する その2

サンプルアプリのメッセージの時刻を相対時刻表示にする機能 Cucumber のテストでは Transform 機能 を使ってデータを変換して確認する features/support/trasform.rb などに Transform(regexp, &block) を使って登録しておくと自動的にテーブルのデータが変…

はじめる! Cucumber 第5章 4周目: ユーザのメッセージを表示する その1

サンプルアプリのメッセージ一覧を表示する機能をテスト ダミーのデータを投入するために表を使って書く '|' 区切りで表形式でデータを一覧できる ステップ定義のブロックに渡されるブロックパラメータ table に Cucumber::Ast::Table のインスタンスとして…

はじめる! Cucumber 第4章 3周目: 認証機能を実装する

ログイン機能のストーリーを書く ログイン機能は、ユーザ登録、ユーザ名の表示、既存ユーザのログインのシナリオからなる サンプルは自前で簡単な認証機構を実装している 既存ユーザのログインのシナリオでは cucumber で前処理として「既存ユーザ」の用意が…

はじめる! Cucumber 第3章 2周目: 日本語化する

第3章では独自にステップ定義を書くようです ラベルやボタンを日本語化する feature ファイルの記述を変更 テスト失敗を確認する i18n_generator.gem で日本語化、とありますが多分これも古い情報ではないかと。今 i18n っていう gem がありますね。 config/…

はじめる! Cucumber 第2章 1周目: ミニマム実装と開発環境準備

本書ではサンプルとしてミニブログサービス(twitter のようなものですね)を開発しながら実際にどのように Cucumber を使うのかを例示していくみたいです。 ruby 1.8.7 と Rails 2.3.10 という組み合わせ 積読しているあいだに内容が古くなってしまったようで…

はじめる! Cucumber 第1章 はじめる! Cucumber

今日から達人出版会から出版されている電子書籍の「はじめる! Cucumber」を読みます。http://tatsu-zine.com/books/cukeそういえば電子書籍としてのみ発行されている本を読むのははじめてですね。リンクも Amazon ではなくて達人出版会へのリンクとなります…

データマイニングの基礎 第6章 データマイニングから知識発見へ

事例集的な内容でした。 モデルが獲得/発見した知識は専門家が解釈/評価することでゴールとする 髄膜脳炎データベースの例 髄膜脳炎の細菌性かウイルス性かには性別と年齢との相関が見られた(相関関係であって直接の因果関係ではない) データの解釈により慢…

データマイニングの基礎 第5章 知識の精度評価 その4

多重比較 検定を繰り返し行なうとどれかの仮説が棄却される可能性がたかまる(何度もやってるとどこかで間違う可能性も高くなるということ) 全体の有意水準を調節するための手法 比較したい群から全ての要素ひとつひとつを取る( 一元配置分散分析)、全ての対(…

データマイニングの基礎 第5章 知識の精度評価 その3

かなり間があいて忘れてしまいましたが続き読みます。 分割表による解析 データとモデルでの判定結果を true positive, true, negative, false positive, false negative に分類して指標を作る 精度(Precision) = true positive / (true positive + false po…

データマイニングの基礎 第5章 知識の精度評価 その2

夜だと週末も読めます。引き続き学習したモデルの評価方法についての話題です 統計学的検定 帰無仮説 - 示したい仮説の否定。これを否定することで示したい仮説を採択したい。背理法みたいですね 対立仮説 - 示したい仮説 有意水準 - 帰無仮説が成立する確率…

データマイニングの基礎 第5章 知識の精度評価 その1

なかなか夜に読むのは捗らないです。学習したモデルの評価する方法についての話題です 誤差評価 統計的モデルの推定量の性質 不偏性 推定量の期待値が母集団の値に一致する(不偏推定量) 一致性 標本数が大きくなるにつれて母集団の真の値に漸近していく 有効…

データマイニングの基礎 第4章 前処理・データ変換 その5

訳あってしばらく夜に読書するようにします。 属性構築 元の属性を組み合わせて「帰納的に」新しい属性を作る 「帰納的に」というのはあらかじめ準備したオペレータで属性値を組み合わせて変換することらしい。帰納的? 構築オペレータとしては数値属性は大小…