yapc::asia tokyo 2013 ランチセッション
DESCRIPTION
YAPC::Asia Tokyo 2013 のランチセッションで使った資料に、当日口頭で話した内容や、話そうと思って話せなかった内容を追加したものです。TRANSCRIPT
自己紹介
佐々木と申します@ksasakims
マイクロソフトの方から来ました
担当領域
仮想化(に手を貸そうか?)
Hyper-V ってご存知ですか…
http://slidesha.re/18Qyzt9 http://slidesha.re/15kMnMg http://slidesha.re/1ahhfkj
http://slidesha.re/14yvbWn
HPC(High Performance Computing)
TSUBAME2 で TOP500 チャレンジもう3年前の話なのでアレですが…
YAPC::Asia Tokyo 2010 は東工大で開催されたそうですね! (http://yapcasia.org/2010/)
私ちょうどその時 GSIC で TSUBAME 2.0 の TOP500 チャレンジ (の雑用係) をしてました。
当時の TSUBAME 2.0 は、Linux と Windows のデュアルブート構成になっていて、両方で HPL ベンチマークを
実行し、「結果の良かったほうを TOP500 にサブミットする!という熱い戦いが繰り広げられていたのです。
GotoBLAS 等で有名な後藤和茂さん (実は去年までMSに!) を擁する MS チームはかなり良いスコアを
出していたのですが、最後の Big Run が原因不明のエラーのため完走できず、惜しくも TOP500 サブミットは
なりませんでした。
しかし、 Windows クラスタとして初のペタフロップス越えとなる 1.127 PFLOPS を記録したのです。
そしてクラウド(use Azure or die $!)
http://www.windowsazure.com/ja-jp/
あるいはマイクロソフト
じゃない系
UNIX / Windows相互運用
Hadoop on Windows(HDInsight)
Microsoft が Hadoop?
http://www.slideshare.net/SaSakiKuninobu/hd-insight-ksasaki
そしてPerl好き
空気読んでくれるし
my @words = split /¥s/, "There is more than one way to do it.";
my @words2 = @words; # @words2 は @words がコピーされる。
my $count = @words; # $count に @words の要素数が入る。
say "@words2";
say "$count";
C:¥work>perl t.pl
There is more than one way to do it.
9
正規表現が強力だし
¥d, ¥D, ¥s, ¥S, ¥w, ¥W みたいな文字クラスや、
なるべく短くマッチする *?, +? とか、
先読み、後読みの言明 (?=PATTERN), (?<=PATTERN) 等など、
Java や C# でも使えますけど、元はと言えば Perl 5 の拡張正規表現ですよね。
『もうひとつは、もうこれ以上正規表現
を拡張しないで欲しいということです。
私個人はPerlの拡張正規表現に追随するこ
とに大変苦労しました。pcreの開発メン
バもきっとそう思っていることでしょ
う。;-)』
http://www.ibm.com/developerworks/jp/li
nux/library/j_l-ruby_qa/
正規表現が「ライブラリとして」実現されている言語だと、パターンを
文字列で記述して実行時にコンパイルしなきゃいけません。 (C#もそう)
Regex re = new Regex(@“^¥s*(¥S+)¥s*=¥s*(¥S+)”);
などと書いて、毎回コンパイルするのはヤだからスタック変数じゃなくて
クラス変数にしようか…とか考えてるとメンドーになってきて、Perl を書く
ときほど正規表現を使わなくなっちゃいます。
Java の ”Hello, world!” が String クラスのインスタンスとして
「コンパイラによって」解釈されるのと同じレベルで、Perl では正規表現が
一級市民。だから気楽になんでも正規表現で処理できますよね。
オブジェクト指向もPerlで覚えました
配列でもハッシュでも、既存のデータ構造を “bless” したらそれがクラスになる!
ただの変数が「洗礼」受けるとクラスになるんだと大変すんなり理解しました。
「メソッド」はただのサブルーチンで、第1引数に bless されたオブジェクトが渡されくる
my $this = shift;
とか毎回書くってどうなの? わかりやすすぎるだろ。(dis ってない)
親クラスの名前は配列 @ISA に入ってるとか。
これまた率直すぎるだろ。(dis ってない)
base.pm って 5.004_04 からあったんですね。すみません知りませんでした…
そういえば最近思うんですけど
{
KEY1 => "値その1",
KEY2 => "値その2", # コメントもかけるし。
KEY3 => ["複数の", "値も", "簡単"],
KEY4 => {
SUBKEY1 => "ネストした",
SUBKEY2 => "項目も",
SUBKEY3 => "自然に表現",
},
KEY5 => <<"EOM"
ヒアドキュメントもバッチリだから、
長い文も書きやすくて便利ですね。
EOM
};
設定ファイルのパーサを自分で書く必要なし。
「system (“rm –rf /bin”)」とかイタズラ書きを
されても Safe が守ってくれるから大丈夫。
読み込んだハッシュを bless してオブジェクトに
しても面白いかもね?
Data::Dumper の出力をちょっと整形すれば OK.
これまた手間いらず。
「Perl として解釈できる形でデータ構造を記述する」
この方法、便利で気に入ってました。
近頃JSON JSON
言いますけど
「言語としてそのまま解釈できる形でデータ構造を
記述する」ってのは
わりと普通ですよねPerl 圏では
“PON”って名前つけておくべきでしたね!
TMTOWTDI なブログ Windows Azure や HPC のことを
主に書いています。
ぜんぜん Perl のこと書いてませんが、
タイトルだけ Perl のスローガンを
パクりましたすみません。
「マイクロソフトで生きていくにも
色々な方法がある」ぐらいのつもりなので
す。
ここから社畜コンテキスト
Windows Azure
SDK 1.1 SDK 1.3 SDK 1.5 SDK 1.7
国内採用事例宣伝広告
既存システムのマイグレーション
教育機関
ソーシャル
出版
ハイブリッドクラウドサービス
スマート デバイス &センサー連携
オンライン ゲーム
官公庁・地方自治体住民サービス
交通機関
人材/求人求職
メディア &エンターテイメント
事例サイト www.windowsazure.com/ja-jp/community/evidence
日本リージョンができます!
サブリージョン内に3重のレプリカを配置
ストレージを地理的に冗長化
クラウド サービス
仮想マシン ( IaaS )
Windows Server 2012
Start Simple
無料で始めて簡単拡張
数秒で準備が完了
ビルトインの監視機能
Go LiveCode Smart
Start Windows Azure
http://WindowsAzure.com
30 日 無料評価版開発者向け情報
Web 開発企業
月 375 時間まで
最大 3 年間
無償
スタートアップ企業
月 1,500 時間まで
まとめ
クラウド移行を可能にするシナリオを大幅に拡大
より多くのお客様のクラウド移行を支援
ハイブリッド クラウド環境の構築がより容易に
特報
近日公開 HPC インスタンス
種別 コア数 メモリ容量 ネットワーク 1
A8 (仮称) 8 56 GB Xeon E5-2670
2.6 GHz
10 Gbpsイーサネット
40 Gbps
Infiniband
(RDMA)A9 (仮称) 16 112 GB
151.3 TFLOPS (効率 90.2%)で165位
2013 年 6 月版では 241 位 (性能は同じ)
504ノード, 8064コアで実施
http://www.top500.org/site/50454
ところで
最近のマイクロソフト
OSS にすり寄ってとの相互運用に
積極的
PHP デベロッパーセンター
Python デベロッパーセンター
Node.js デベロッパーセンター…
Perl は?
Perl はどこなの?
CPAN でもレアもの・・・
しかし、日本発のモジュールも!
まだまだPerl on Azure
競技人口少な目…
今始めればオリンピックも夢じゃない!
REST API 叩きまくり
私も作ります!
__END__