2016年7月11日月曜日

YAP(achimon)C::Asia Hachioji 2016 の感想(飛び入りトークしてきた)

メモ

  • 公式サイト
  • ハッシュタグ
    • https://twitter.com/hashtag/yapc8oji?src=hash
  • 公式アカウント
    • https://twitter.com/yapcasia8oji

感想

  • よかった!
    • 行く前 => オフィスビルでやるので、お祭りっぽい雰囲気がなくなってたりして、、
    • 行った後 => 楽しい! 
  • ほとんどD室にいた
  • いつものYAPCより知見がたくさん得られたような気がする??
    • まぁ昨年はAcme大全の売り子してただけなんですが、、、
  • Perlの新しいテストフレームワークであるTest2の発表をしてきた
    • 発表動画
    • ↑chromeだと再生ボタン押しても403。拡張のせいかな、、、。あとシークバーまともに使えない。
    • is(['a','b'], 'ARRAY') ができるという間違った回答をしたので、翌日の飛び込みトークで訂正した
  • 飛び込みトークの動画ができるの速い
    • 発表終わった直後にリンク付きでツイートされてる、、
  • マイクロソフトの設備強い
    • 無線が安定かつ速い
    • 会議室の反響もよかったらしい?
    • 毎日なにかしらセミナーが開かれているらしい

2015年6月20日土曜日

第1回 自動テスト勉強会 に参加した

第1回 自動テスト勉強会

http://se-info-tech.connpass.com/event/16125/

感想

3名が参加。 現状の開発体制についてざっくばらんに話できて大変よかったです。

参加者背景

うちは実装を進めつつ仕様を固めていくスタイル。かなり少人数開発。(言語:Perl)
他2名はうちより開発人数が多めで設計書を始めに詰めている。ウォーターフロータイプ。(言語:Java)

話題(の一部)

  • テスト工数とれない
  • 開発できない人にテストを書いてもらっているが本当は逆では?
  • クロスブラウザ
  • セッションやブラウザバック
  • 画面遷移のテスト(セレニウム)
  • redmine登録してくれない問題

自分がした話

  • 自分は実装しながらテストを書いている。
  • 品質担保のためではなく実装効率を高めるためのテストなので、費用対効果が悪いテストは書いていない。
  • 境界値テストはバリデーターから生成できるはずなので挑戦中。
  • ドキュメントは実装から生成している。
  • DOMの状態が変わってもテストシナリオを書き直さなくていいようにpage object patternというのがある。

次回する話

現状の自社の開発体制が最高だとは思っていないので、ウォーターフローのようなもう少し固い開発フローに寄せていきたい。その場合、実装しながらテストを書いていくという現在のスタイルが「どこまで」上手く機能するのか、よい塩梅を探っていきたい。
(話が用意できなかった場合、実際perlでどのようなテスト環境、コードで実装しているのか具体的に紹介する)

2014年9月17日水曜日

awkの'{print $n}'の$nをいくつにすればいいのかすぐ見つけたい

アクセスログからawk '{print $1}' でIPだけ集計したりしますが、ほかの項目を集計するときは数字をいくつにすればいいのかわからない。

$10にしてみるー>違うなー>アクセスログみるー>調整、を繰り返す。

面倒くさい!となったので番号を振るようにしました。
head -1 access_log | awk '{for(i=1;i<NF;i++){ printf "%d:%s\n",i,$i;} }'

これを手打ちorコピペorエイリアスするのも面倒くさいので、もっと簡単な方法ないだろうか。

2014年9月16日火曜日

IO::Socket::SSLのデフォルトがipv6だった

IO::Socket::SSLは、IO::Socket::INET6がインストールされてるとそれを優先してしまう。

IO::Socket::SSLはexporterでoption指定するようで、
use IO::Socket::SSL qw/inet4/
とするとipv4を強制できる。

またqw/debug3/とするとデバッグトレースが表示される。

2014年9月15日月曜日

文字列連結でメソッド名を組み立てて実行する、を一行で。(perl)

リファレンスにしてデリファレンスする。わけわからないので、滅多に使わない。
  $self->${ \"method_${type}" }

2014年9月14日日曜日

コードリファレンスから名前取得

#!/usr/bin/env perl
use strict;
use warnings;
use B;


sub print_hoge {
    print "hoge\n";
};

my $coderef = \&print_hoge;

warn B::svref_2object($coderef)->GV->NAME; #print_hoge

2014年9月13日土曜日

どのmy.cnfが読まれてるか調べる

前回のISUCONでmy.cnfがどこにあるのか分からないチームが結構いて、
その後、yoku0825さんが投稿してた内容です。
$ strace -ff -e open   /usr/local/mysql/bin/mysqld_multi  start 55,56 2>&1 | grep my\.cnf
[pid 23345] open("/etc/my.cnf", O_RDONLY|O_LARGEFILE) = 3
[pid 23347] open("/etc/my.cnf", O_RDONLY|O_LARGEFILE) = 3
[pid 23344] open("/etc/my.cnf", O_RDONLY|O_LARGEFILE) = 3
mysql --helpだと
Default options are read from the following files in the given order:
の箇所にデフォで読み込まれる順番が書いてあるんですが、デフォのときの話だし、straceでみるのが楽ですね。

configureの設定は昨日の記事でどうぞ。