出費が嵩む

TVアニメ「アマガミSS」ENDING THEME COLLECTION (第1期エンディングテーマ集)

TVアニメ「アマガミSS」ENDING THEME COLLECTION (第1期エンディングテーマ集)

輪るピングドラム キャラクターソングアルバム

輪るピングドラム キャラクターソングアルバム

vitaもあるしな

[perl][kansaipm]Kansai.pm#14で発表してきた

いつも放置してしまうので早めに書いてます.新幹線でネットできるのはいいですね.というわけでKansai.pm 第14回ミーティングに参加して,発表してきました

最初に考えていたタイトルは「Perlの仕事がなかった僕がいかにしてPerlで仕事をするようになったか」というここ数年のネタを受けたタイトルだったのですが,資料を書いているうちに「Kansai.pmと僕」というシンプルなタイトルで内容は懐かしい思い出がいっぱい自分語りになりましたので資料を見る必要はありません.

今年の春に転職をして関東に引っ越したので,Kansai.pmの運営に積極的に関わることはできなくなりました.ですがいまPerlで仕事ができているのはKansai.pmに関わったおかげです.所属としては一生Kansai.pmです.今後はKansai.pmという枠に拘らず,若い人たちが何かをやってくれると思います!

会場を貸してくださったはてなさん・運営をしてくださったみなさん・メインのトークをしていただいたkazeburoさん・発表をしていただいた皆さん・講師派遣に力を貸していただいたJPAさん・参加していただいたみなさんありがとうございました

最後に宣伝になってしまうのですが,ミクシィでは大阪に開発拠点を立ち上げるべく動き始めています.個人的にも地方で活動しPerlで開発できる喜びを手に入れた身としてなにか還元ができないかといつも考えています.いっしょに立ち上げに参加していただける方や,関西で働くけるのなら興味があるという方はぜひご連絡ください!

ハヤテ劇場版とかHina2とか

12月は伊藤静を堪能できる月ですね

Everybody ready now?

Everybody ready now?

ハヤテのごとく! 31 劇場版DVD付き特別版 ([特装版コミック])

ハヤテのごとく! 31 劇場版DVD付き特別版 ([特装版コミック])

HiNA2 Spring has come!! 〈初回限定盤〉

HiNA2 Spring has come!! 〈初回限定盤〉

YAPC::Asia 2011に行ってきました

YAPC::Asiaに参加してきました.6年連続で参加できているのも,そもそも開催してくださる方々がいるからで,JPAをはじめ運営していただいた方々皆さんに感謝です!

去年はPerlを仕事で使っていない関西在住のPerlerでしたが,今年はPerlで仕事をしている関東在住のPerlerとして参加しました.これも毎年YAPCに参加していたことで得た結果です.やりたい仕事をできるようになるYAPC!今年参加できなかったPerlが好きな人・Perlは好きじゃないけど仕事で使ってる人・ぜんぜんPerl使ったことないけどお祭り騒ぎが好きな人も次のYAPCに参加するといいと思います!

細かいレポートはすでにいろいろな方が上げてくださってますし,少しだけセッションの感想など.今年もセッションは運用やjavascriptの話とかの話が多かった気がします.LTに至っては相変わらずPerl関係ないの多いし.詳しいレポートはhttp://gihyo.jp/news/report/01/yapcasia2011/0000 がオススメです

Perl 5.16 and beyond / Jesse Vincent

YAPC::Europe 2011での話を日本でもということで個人スポンサー費用を使って招待されました.今後のPerl5のビジョンについてが主な内容でした

Carton: CPAN dependencies manager / miyagawa

bundler inspireの依存関係の処理システム.依存モジュールの抽出インストールや,他の環境での依存の再現などを行う.デモを見た限りもう十分使えそう/使いたい.Perlでは標準になっていくと思います

Rubyist のための Perl ウェブアプリケーション開発入門 / Kensuke Nagae

刺身さんによるrubyperlの開発環境の対応の解説など.RubyPerlの似たような問題には似たような解がある

個人的には,これはいつもお互いにお互いのいいところを取り入れてきた結果で状況に応じて必要な言語が選択できるよい状況だと思います.また,こういう環境の違い(あるいは対応)は意外と説明されていないのでこういう資料があると他言語に使ってもらうことができるのでは,と思いました

他言語から見たPerlのテスト / Masaki Nakagawa

ikasama_aのテストの話.刺身さんのトークと同じく主にPerlRubyのテストの比較対応など.資料が詳しいです.発表では対応の話があったのですが,ここではPerlでの環境を主に.他言語のテストからもっと取り入れる必要があるし,自分ももっと勉強をするべきだと思いました

テストの分類
  1. Perspective テストの視点。誰がテストするのか
  2. Target 何をテストするのか 単体テスト結合テスト
  3. How どうやってテストするのか blackbox, whitebox
  4. What 何のためにテストするのか 機能テスト・非機能テスト
Testing Frameworkが何を支援してくれるか
  1. 書くとき
    • Test::More etc... helperもたくさんある
  2. うまく動かす仕組み
    • prove
  3. レポーティング,およびその拡張
    • TAP(TAP::Formatter)
    • 他のテスト出力への変換もできる
テストの環境

MockとStabをカバーするモジュールを作成→ https://metacpan.org/module/Test::Double

Perlのテストの弱点
  • Expectation(期待する動作や動作結果)とVerification(仕様を満たしているか検証する?)
  • browser integration
  • ネーミング stabのモジュールにmockってついてたり→Test::Mock::Guardとか

テストは他の言語から盗める部分がまだたくさんある!

Apporoで類似文字列検索 / overlast

こういうことは必ずやるべきだと思った.確立していて効果が高いと思います

  • 類似文字列検索
  • 使わないで結果0件はありえない!!→それはバグと云っていい

ここまで1日目.続きはまた***あとで書く***

perlbrewのzshでの補完 perlbrew0.29版

perlbrew0.22や0.29で追加されたコマンドに一部(uninstall, self-upgrade, switch-off)対応してます.installとかもperlbrewから取得できるようになったので便利です

現状非対応のコマンドはexec, alias, symlink_executables の3つです。どれもわりと便利なので対応したいですが未定です

https://github.com/lapis25/dotfiles/blob/master/.zsh/functions/_perlbrewに最新のを上げてますので、欲しいかたはどうぞ.使い方などはhttp://journal.mycom.co.jp/column/zsh/017/index.htmlを参照してください

UMLモデリングのエッセンス第3版(4) クラス図2 上級概念

5章.シーケンス図はひとまず飛ばしてクラス図の続きを.現状使わなさそうなのばかりだったので一部だけさらっと書いて次へ

キーワード

  • キーワード: ギュメ«»で囲んで表す
  • 一部のキーワードは中カッコ{}で表す{abstract}とか

抽象クラス

  • 直接インスタンス化できないクラス
  • サブクラスをインスタンス化する
  • 抽象クラスには1つ以上の抽象操作が含まれている→抽象操作には実装はない
  • 表すのに名前をイタリックにするか,{abstract}というラベルを付ける

インタフェイス

  • 実装のないクラス→すべての特性が抽象
  • キーワード«interface»で表す

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UMLモデリングのエッセンス第3版(3) クラス図1

代表的なUMLダイアグラム,クラス図.これを知らないとデザインパターンすら読みにくい……

クラス図をいつどのように使うべきか

  • 全部の表現を使おうとしない→クラス・関連・属性・汎化・制約などのみで使ってみる
  • ビジネスの説明のための概念的なクラス図→ソフトウェアについて考えずシンプルに書く
  • 主要なものだけに作成することで,使用され・更新され続けるダイアグラムができる
  • クラス図はクラスのプロパティと操作,オブジェクト同士の結合を表す制約も示す

プロパティ(property)

  • クラスの構造的特性を表す
  • 2つの記法.属性と関連で表される
  • 属性と関連はほとんどいっしょだけど異なる情報もある
属性
  • クラスボックス内のテキスト行として記述

可視性 名前: タイプ 多重度 = デフォルト値 {プロパティ文字列}

関連
  • 2つのクラスの間にある実線で示す
  • 行の両端に多重度を示すことができる
構文
  • 名前
    • 必須は名前だけ
  • 可視性
    • 名前の前に可視性を表す記号を付ける.パブリック(+)プライベート(-).他にもあるけどPerlでは使わなさそう
  • タイプ
    • オブジェクトの種類とか(型とかクラス名とか)
  • 多重度
    • プロパティの含むことのできるオブジェクトの数
    • [1] 1コだけ・ [0..1] 0か1コ・[*] 任意の数
    • [下限..上限] という書き方もできる.範囲演算子正規表現の量指定子みたいに書く

操作(operation)

ようにするにメソッド.だが違いがあり,区別することで役立つこともある

  • 操作: オブジェクトにたいして起動されるもの(手続き宣言)
  • メソッド: 手続きの本体

オーバーライドするときに実装と明確に区別するべき時に区別すると良いのかも

可視性 名前(パラメータリスト): 戻り値のタイプ {プロパティ文字列}

  • パラメータはこのように表される
    • 方向 名前:タイプ = デフォルト値
構文

基本的にプロパティのものといっしょ

汎化

継承

ノートとコメント

  • ノートは破線を使ってコメントを付けている要素にリンクできる
  • コメントはダイアグラムの要素にインラインで入れることができる.テキストの前にハイフン2つ(--)

依存関係

  • ひとつの要素の定義を変更したことによってもう一方の要素の定義が変わるときに,2つの要素の間には依存が存在する
    • 別のクラスにメッセージを送るとき
    • データの一部として別のクラスを有しているとき
    • 操作に対するパラメタとして別のクラスを指定するとき
  • 依存を一方向に限定することで影響を与えることなく変更できる
    • プレゼンテーションはドメインに依存するが,ドメインはプレゼンテーションに依存しない構成にすることで,ドメインのロジックを自由に変更できる
    • ドメインのインタフェイスを変更しない限り,ドメインが依存しているクラスの変更がプレゼンテーションに影響することはない
依存関係のキーワード(一部)
  • «call» 呼び出し
  • «create» インスタンスの生成
  • «instantiate» インスタンスである
  • «realize» インタフェイスまたは仕様の実装である
  • «use» 必要としている

制約規則

  • 関連,属性,汎化などでは表現できない残りの規約を表すことができる
  • 制約の記述には制限はなく,中カッコ{}のなかに入れれば良い

契約による設計(コラム)

  • 契約による設計の中心は表明(assertion)→決して偽にならないはずの命題→ただしチェックされるのは開発時だけである
  • 表明には3種類→事後条件・事前条件・不変表明
    • 事後条件: 操作の実行後に世界の状態がどう見えるべきかの定義
    • 事前条件: 操作の実行前に世界の状態がどういう状態であると予期しているかの定義
      • チェックのレスポンシビリティ(責務)がどこにあるかを示すための条件→ここに書かれている条件は呼び出し側が保証している必要があることが分かるので,チェックの過少過多を防ぐことができる
    • 事前・事後条件の定義から例外(Excaption)は,事前条件が満たされた状態でも事後条件が満たせない場合に発生すると定義できる
    • 不変表明(invariant): クラスに対する表明.不変表明はクラスのインスタンスすべてにたいして常に真となる
      • この表明によりスーパクラスに矛盾するようなサブクラスの定義を防ぐことができる

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)