amari3のはてなダイアリー このページをアンテナに追加 RSSフィード

2015-08-22

[][]YAPC::Asia Tokyo 2015に参加してきた

東京ビッグサイトで開催されたYAPC::Asia Tokyo 2015に参加してきた。ちなみに今回の参加は7回目である。初めて参加したのは2007年で、確かSledge 2の話とかがあったと記憶している。ブログを書くまでがYAPCなので、僕のYAPCはもうちょっとだけ続くんじゃ。

セッションの内容の多くはスライドが公開されると思うし、自分の感想を中心に書いていこうと思う。


Opening

会場での注意事項等の連絡が中心かな。YAPCを正しく楽しむためのスタート地点だと思う。

メリークリスマス!

ついについにラリー・ウォール氏が今年のクリスマスにPerl6をリリースしてくれる(かもしれない)ぜ!。Perl Mongerとして一番喜びがあったセッションではなかろうか(個人的感想です)。とりあえず、バスにはひかれないでーー

世界展開する大規模ウェブサービスデプロイを支える技術

MiiverseのJP/US/EUのリージョンに対する数百台のデプロイは興味深かった。数台だとcapistrano + Gitというよくあるデプロイ手法で対応できるし、実際そのようにしている事例は多いと思う。Consul + stretcherは速度比較を見ると、導入するかどうかは置いておいて、検証してみる価値はあると思う。

HTTP/2時代のウェブサイト設計

立ち見であまりメモを取れなかったけど、ヘッダ圧縮が強力なのとlibcurlがHTTP2対応してるのはちゃんと覚えてる。H2Oは注目はしていたけど実際に試す段階までは行っていない。でも、この話を聞いていつ試すか?今でしょ!と本気で思っている。社内勉強会ドリブンデベロップメントみたいな感じでまずは触り始めて見たい。

Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術

トークの内容もさることながら、すごく人を惹きつけるようなプレゼンだったと思う。DDDに関しては最近、エリック・エヴァンスのドメイン駆動設計の本を買ったということもあるし、少しずつ読み始めて行こうと思う。

Electron: Building desktop apps with web technologies

AtomやSlackを開発したアプリケーションエンジンとでも言えばいいのかな?(間違ってたら教えて下さい)仕事ではnode.jsを書くことが多いので、興味は持ったけど実践まで行けるかしら。

esa.io - 趣味から育てたWebサービスで生きていく

まず印象に残っているのはesaのアイコンがかわいい。それ以外でも、リリースノート駆動開発等、面白い取り組みをされていると感じた。

Lightning Talks Day 1

YAPCの醍醐味。ちょっと雑ですが楽しかった!!(メモまったく取ってない。。)

懇親会

今回の懇親会は、最後だということが後押しをしてくれて、ラリー・ウォール氏と写真を撮ってもらったり、miyagawaさん、lestrratさん、hitode909さんと話すことが出来た。


社内の技術勉強会のファシリテーターをやっている身として、lestrratさんにはイベント運営のコツや気をつけている事を聞いてみた。参加者が数百人から数千人規模のイベントと、一企業の勉強会だと当然気をつける事もやらなければならないことも違う。でも、勉強会をより良くしていくヒントは掴んだと思う(具体的には役割分担の大事さ)。


hitode909さんにはDDDをなぜ採用したのかということを聞いてみた。色々試行錯誤をするのも大事だけど、指針となる考え方があるならそれに乗っかってみようと言う話だった。まずはDDDについての知見を深めようと思う。


miyagawaさんにはベタですが、注目している言語を聞いてみた。パラダイムありきで考えるのではなく、目的と手段を見誤らないようにすることは大事だと再認識した。

Mackerel開発におけるScalaとGo、そしてPerl

適材適所で言語を選択しているのが素晴らしいと感じた。Scalaは非常に魅力的で個人的にもコップ本で勉強している。ただオールScalaはしんどいという話もあった(デプロイに時間がかかる)ので、Scalaを使う際には気をつけようと思う。

我々はどのように冗長化を失敗したのか

式年遷宮インフラストラクチャと言う思想は面白いと思った。実際、アクティブスタンバイ構成にしてても、正常にフェイルオーバーされるかどうかは不安だし、実際に自動フェイルオーバーを切って、手動でやる運用体制を取ってた事もあると記憶している。

MySQLで2億件のシリアルデータと格闘したチューニングの話

なんというか、自分が置かれている状況と近い話が聞けたのが面白かった。自分も億単位のレコードを扱う様なプロダクトを運用していて、UPDATE文を打ったらえらく時間がかかったこともある。すごく身近感があったので、YAPCあるあるじゃないけど、あるあると感じた。

データ分析基盤を支える技術

あまりメモが取れなかったけど、印象に残っている言葉がある。「データ分析基板は使わずにサービスに任せよう!!」これがすべてだと思う。

YAPCあるある

YAPCの歴史が集約されていたと思う。その次代においての最先端のPerl技術やIT技術があったということは間違いないと思う。あまりにも贅沢な座談会?でしたね。

Profiling & Optimizing in Go

Goのプロファイリングやテスト、最適化をするための手法をライブコーディングでやってくれたのが楽しかったですね。Goはまだ手を出せてないけど、ああいうのを見てしまうと、好奇心がくすぶられますね!

Lightning Talks Day 2

一日目と同じ感想ですが、YAPCの醍醐味!!

CONBUさんのネットワーク設営は神でしたね!

クロージング

ついにYAPCが終わってしまうのかと思うと、ちょっと寂しくもあるけど、ちょっとした未来への布石もあったので、これは期待をせずにはいられない。

まとめ

最近はPerlを離れてnode.jsを書くことが多い僕ですが、やっぱりPerlは楽しい。そしてPerlコミュニティはもっと楽しい。どういう形かはわからないけれど、Perlはずっと書き続けていきたいですね。


最後に、登壇者の皆さん、スタッフの皆さん、YAPCに関わったすべての皆さんにあらためて感謝したいです。ありがとうございました!!

2012-09-30

[][]YAPC::Asia Tokyo 2012 に行ってきた

東京大学で開催された、YAPC::Asia Tokyo 2012 に行ってきた。個人的には今回で5回目の参加。これだけ継続して参加している理由はなんだろうとふと考えたが、結局のところは Perl が好き。そして Perl のコミュニティが好きだという、極めてオーソドックスだけど、確固たるものがあると再認識できた。

聞いたセッションの詳しい内容は、スライド等にまかせて簡単な感想や覚書でも。

What Does Your Code Smell Like? | Larry Wallさん

英語はよく分からなかったけど、ライブコーディングで Perl5 のコードを Perl6 に書き換える内容だった。

sub に引数が書けたり、色々省略出来たりで良い感じ。覚えないといけないことは多そうだけど、その価値はすごくありそう。

あと、コードを直す速さにびっくりした。vi恐るべし。

Web::Security beyond HTML5 | Yosuke HASEGAWAさん

Webアプリケーションにおけるセキュリティのセッション。

Ajax脆弱性ブラウザ起因のものが多い。Android の古いのとか IE とか IE とか。古いブラウザは直らないしサーバ側で対応しましょう。

Nana/Tora - Perl5 から見える未来。Perl5 と共にあゆむ Perl6 ではないプログラミング言語、それは。 | Tokuhiro Matsunoさん

現在の Perl5 の問題点に対してどの様な改善点があるのかという内容。

印象的だったのは、npm を中心にみんなが好きな言語を使おう。

Perl Ocean - XMPP based realtime communication framework suite | KOMORI Kazukiさん

XMPP プロトコルにおけるリアルタイムコミュニケーションフレームワークスイートのセッション。

同時接続数やプロセスブロックの問題点の解決する方法として、gearmand を使ったりしている。

Perl でファントムする! | motemenさん

Perl から PhantomJS を呼び出すことが出来るモジュールの紹介。

幽霊の名前にしないといけない空気に屈した。というのが印象的。

続・Mobage を支える技術 | Yuji Shimadaさん

"Mobage を支える技術"でカバー出来なかった内容のセッション。

Mobage で利用している Worker のシグナル処理を Demo を交えて解説。失敗例成功例の説明がわかりやすかった。

"die する!!" は耳に残った方も多いんじゃないでしょうか。

位置情報系処理のお話 a.k.a 続・自文書抽出日本的住所 | Kazuhiro Osawaさん

GeoHash 等の位置情報に関する内容。

僕個人としても、GPS やら GeoHash を勉強したことがあるし、ものすごく興味深いセッション。

住所を正規化するための正規表現は凄かった。

北陸と熊本の住所が難しいというのが印象的。

平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用 | Tatsuro Hisamoriさん

広告枠の現物取引を実現するための枠組みについての内容。

一般的なLAMP構成で、"古典的でも地道にやる"という言葉が印象的。

Perlアプリケーションのベンチマークとプロファイリング | Shunichiro Fujiwaraさん

チューニングをするに際して、ベンチマークやプロファイリングで問題点を見つけて解決しようという内容。

Benchmark / Devel::NYTProf / Parallel::Benchmark を使ってのパフォーマンス計測や負荷試験の説明がわかりやすかった。

「新しい」を生み出すためのWebアプリ開発とその周辺
 | Yusuke Wadaさん

過去のWebアプリケーションで他の環境で動作しなくなった経験を生かした、WAF 選定基準は非常に説得力があるものだった。

Padre - The Perl IDE for Normal People | Adam Kennedyさん

英語はよく分からなかったけど、初心者向けの優しいIDE開発についての内容。

10 more things to be ripped off | Tatsuhiko Miyagawaさん

他の言語のいい所を Perl で使いやすい様に移植しよう。

他の言語の素晴らしい仕組みを紹介して、それを作ってみてはという提案も印象的でした。

Perlハッカーは息をするようにCPANモジュールを書く。 | Daisuke Muraseさん

CPAN モジュールのドキュメントに、そのモジュールへの熱い思いを書いて欲しい!というのが僕もそうだと思いましたし、そうでありたいと強く感じた。

ウェブアプリケーション開発の現状・課題とJSX | Kazuho Okuさん

トレンドの移り変わりや JSX の設計思想等のセッション。

個人的には、JavaScript だと class 定義をするにも色んなやり方があって、いわゆるベストプラクティスもわかりにくい。JSX の class 定義はスマートで分かりやすい。今後に大いに期待したいです。

Performance Profiling with Devel::NYTProf | Tim Bunceさん

英語は相変わらず分かんないけど、Devel::NYTProf まじですごい便利というのはスライドから伝わってきた。

KCachegrind がすごく便利そうで、すぐにでも導入してみたいです、

How Perl Changed My Life | Gosuke Miyashitaさん

今年の YAPC の クロージングキーノート。

Perl に関わりその中で学んだことや得たことの話。

エンジニアの評価制度をオープンにした話が個人的には印象的でした。


僕自身、Perl に出会ったのは 2004年。その時は Webサイトを作るのに必要だから覚えたというのがきっかけだった。

Perl が好きという感情に変わったのは、今まで Java とか C++ で書いてたちょっとしたツールを、Perl ですごくスマートに書けた時。気がついたら Perl の虜になってた。そして YAPC という素晴らしいイベントにも参加するようになってた。僕一人の力はそんなに大きくないかもしれないけど、Perl に恩返ししていきたいと強く感じてます。

終演後

FacebookTwitter で交流があった、@ さんとお会いして話をする機会があった。後片付け等があるみたいで、短い時間しか話は出来なかったけど、Teng や Sub::Args を利用させて頂いている僕としては本当に嬉しかった。本当にありがとうございました!

最後に

前夜祭には参加出来なかったけど、2日通して参加できた。1年ぶりに前職の同僚とも再会して、技術談義も盛り上がったりしたし、最高に楽しい2日間だった。来年は LT やってみたいなぁと感じている今日この頃です!

2010-03-28

[]新人に教えたこと#8

久々の新人に教えたことシリーズです。先週教えたことを箇条書きでまとめておきます。

  • LWP::UserAgent と HTTP::Request を使用した HTTP リクエスト
  • CPAN 形式のモジュール作成方法
  • 物事を単純化して考えること

今後覚えてほしいこととか読ませたい書籍

C/C++言語
ポインタの概念や OSS のコード読んだりとか色々ある
コードコンプリート
変数名の付け方とか勉強になる(個人的に変数の章が役に立った)
Perlベストプラクティス
コーディングスタイル等なぜそれがいいのか明確に説明されている

個人的にも、コードコンプリートとか Perlベストプラクティスは時間があるときに読み直そうと思う。

2009-06-11

[][]Google Developer Day 2009 行ってきたよ

昨年に引き続き、Google Developer Day 2009 に参加してきましたので、そのレポートです。

サプライズで、GDD Phone(Android端末)を参加者にもれなく配っていたので、ありがたくもらってきました。SIMフリーとのことなので、SIMカードを挿すだけでそのまま使えるみたいです。

実際に参加したセッションです。内容はほとんど列挙となりますがご了承ください。


HTML5により拓かれる次世代Web

  • 10年ぶりの新バージョン
  • W3Cだが実作業はWHATWG(Apple,Mozilla,Operaのブラウザベンダによって設立されたグループ)
  • XHTML2,xformsは含まない
  • 4つの規格
  • HTML/XHTMLの表記をサポート*1
Web Workers
  • バックグラウンドでスクリプト実行する仕組み
  • スレッドを生成するWorkwer
  • 複数のウィンドウで共有できるShared Worker
  • ウィンドウを閉じても動くPersistent Worker
Web Sockets
  • 専用プロトコルでサーバと文字列を送受信
  • XMLHttpRequestと比べてオーバヘッドが小さい。リアルタイム性が高い。
Web Storage
  • クライアント側にデータを格納する機能(感覚的にはCookieみたいなもの)
  • データの保存方法
    • key/valueペア Storage型
    • SQLを扱う Database型
  • Storage型
    • サイト別にkey/valuesペアが作られる
    • 消さない限りはローカルに残る
  • Database型
    • SQLが使用可能
    • 非同期/同期の2つのインタフェースがある
アプリケーションキャッシュ
  • キャッシュしておくURLしないで欲しいURLを宣言しておく
  • ブラウザがオンライン時にはキャッシュされない
  • URLを先読みしオフライン時はキャッシュを使う
フォームの強化

input要素のタイプがいっぱい追加されている。

  • search
  • tel
  • url
  • email
  • time

など他にもいっぱいある。

  • キータイプをするとValidateが行われる
  • Pattern属性には正規表現が指定できる

JavaScriptやサーバ側で実装していた、入力値のチェックがHTMLだけで完結できるようになる。

メディア要素

メディア要素のタグも追加されている。

  • canvas
  • video
  • audio
感想

HTMLの標準で出来ることがたくさん増えていて、リッチなアプリケーション開発がやりやすくなると思う。

ソーシャルWebの可能性

ソーシャル化をすることでWebはさらによくなるということがテーマ

ソーシャル化

Eコマースサイトをソーシャル化することでファインダビリティやスティッキネスが上がる。これにより、ポジティブスパイラルが発生する。

知らない多数のレビューより、自分の友人のレビューの方が役に立つのではないか。

OpenID/OAuth
OpenID プロバイダ
Google,mixi 等のOpenIDを発行している業者
OpenID リライングパーティ
OpenIDを利用する業者

色んなサイトでそれぞれのIDが必要になる。ほとんど利用していないサイトのIDを覚えていられない。こういった問題を解決するための技術。

OpenIDとOAuthのハイブリッド化を検討している。

感想

Eコマースサイトをソーシャル化するのは面白いと感じた。実際に購入した商品の評判が口コミで広がり、ユーザにリーチ出来るのではないかと思う。

Google Chromeの内部構造

  • 基本構造はマルチプロセスアーキテクチャとなっている。
  • ブラウザの機能を分割し各機能にプロセスを割り当てる。
プロセス間通信

Chromeの各プロセスはプロセス間通信の専用スレッドを実装している。

サンドボックス

マルウェア対策として導入している。

  • 悪意あるWebページからしステムを守るためのライブラリ
  • Google Chromeのすべてのプロセスはライブラリ上に実装
Webkit
  • レンダリングエンジン

シンプルなので採用。Webkitのパッチを送ったりして貢献もしている。

V8

高速JavaScriptエンジン

  • BSDライセンスで開発
  • 単独で使用可能

Google & Open Source

GoogleがOpen Sourceを使う理由みたいなこと。

  • 皆が使っているものを使う
  • ライセンスの問題
なぜオープンソースを使うの?
  • スマートになりたい
  • (情報)共有したい
  • 不具合があったとしても自分たちでコントロールできる
  • ライセンスの99%はApache/BSD

Life of 新卒エンジニア

2008年4月に入社した新卒エンジニアの話。

  • プロジェクトはボトムアップ
  • 方向性のみ決められている
エンジニアの仕事
  • アイデアを出す
  • 議論して洗練
  • 人を巻き込む
  • 設計-コーディング-テスト-デバッグ
  • 公開
  • その後改良
開発体制
  • 共有されているドキュメント/ソースコード
  • コーディングスタイルガイド
  • 社内共通のインフラ
  • 社内共通のライブラリ
  • コードレビュー/ユニットテスト
  • 質問は歓迎されている
  • メンターがついている
  • プロジェクトはエンジニアのもの
  • 積極的に動かないといけない
  • 一人前になるためのバックアップがすごくある
感想

面白くてあまりメモが取れてないのですが、印象に残ったことは、エンジニア主導の会社というのがよくわかる。エンジニアとしてはうらやましい環境だと思った。

新人の育成をしていることもあり、参考に出来ることが多かった。


昨年度は Android 用アプリの開発とかしていたくせに、Android 関連のセッションにまったく参加せずに Web 関連のセッションばっかり参加してた気がする。でも、Web の方が好きだしいいか。

*1:HTMLのときはDocTypeの記述が必須