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

2014-08-31

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

慶応義塾大学日吉キャンパスで開催されたYAPC::Asia Tokyo 2014に参加してきたので、自分なりの感想を書こうと思う。昨年は諸事情で参加できなかったんで2年ぶりの参加となる。通算では6回目の参加。

各セッションの内容は、公開されているスライドを見ていただく方がいいと思うので、自分が感じた事を手短に書いていこうかと。


Perl meets Real World 〜ハードウェアと恋に落ちるPerlの使い方〜

正直言ってこのセッションを聞くまでは、あまりハードウェアとかにはあまり興味がなかったんだけど、なんか一気に何かに目覚めた気がする。近いうちにRaspberry Piを買ってごにょごにょしてみたいと思う。

Go For Perl Mongers

Goを書いてきて色々はまったことや、そうならないための書き方がすごくためになった。nilの件(型も値もnilじゃないとだめ)個人的には衝撃的すぎて忘れることはないだろうと思う。そして何よりも説明が旨すぎてどんどん引き込まれていく。

最近のウェブサービスの検索機能やその先の話

Elasticsearchを個人的には使っていきたいと考えていて、このセッションはその導入の手助けになると思っているし、また自分で色々調べてみようという気になった。

DBIx::Class - what is it and what is it good for?

自分がDBIC使ってたのって確か6年位前くらいだった記憶がある。その時から比べるとすごく進化している印象がある。当時の記憶が曖昧なのであれですが、副問い合わせが普通に出来るようになってたり、より洗練されてますね。

Scala In Perl Company : Hatena

自分としてもPerl/PHP以外の選択肢を持っていたいと思ってて、Scalaは前から注目してはいたけど、手が出せずに今まできてた。このセッションを聞いて、Scalaぜひやって見たいと感じるようになった。コップ本を買ってまずは写経かなぁ。

One layer down below.

Hijkモジュールは正直全然知らなかった。curlFurlよりも早いらしいし試してみるか。

いろんな言語を適材適所で使おう

技術選択はシステムがユーザに提供する価値を最大化することが目的というのは、まさにその通りだと自分も思う。プロジェクト、プロダクトによって適切な技術を選択出来るようになりたいもんです。

WHERE狙いのキー、ORDER BY狙いのキー

コードっぽいのを使ってのインデックスの説明はすごく理解しやすいと感じた。JOIN時のインデックスの使われ方はすごくためになった。

Mojoliciousを使ったwebアプリケーション開発 実践編

WAFを使ったアプリケーションの開発をする上での一つの指標になる発表だったと感じた。本番環境の構築で使えるxbuildはちょっと導入してみたい。

Java For Perl Mongers

JavaでもPerlでもそう変わらないと言うのは、自分としてはうんうんと頷いてしまった。自分がどっちもやってきたからかもしれないですが。

Lightning Talks Day 1

あんまりメモってなかったんであれですが、Lensのはすっごく面白かった!

俺達のYAPC懇親会(勝手に名付けた)

1日目終了後に元同僚と池袋のスターバックスで技術談義を延々としてた。Emacsの話やらなんやらすっごく楽しかった。


オープンソースの開発現場 - Perl 5.20 のSubroutine Signaturesが来るまでの奮闘の軌跡

Martini氏の「ネガティブな一言に傷つくより、流して前に進もう」があまりにも自分に刺さった。技術力だけじゃなくて政治力も身につけなければと考えさせられた。

半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応)

Perl,PHPがどうこうというよりも、圧倒的なプレゼン力でどんどん引き込まれていく。ベストトーク賞を取るのも納得。

Plack for Fun and Profit (But Mostly Profit)

PSGI/Plackの教科書的な説明かなぁと思って最初は聞いてたけど、Coolなだけではダメと、こちらもうんうんを頷きながら聞いてた。「お金を生み出すコードは消すことができない」はまさにその通りだと。

Perlあるある

ディスカッションと言うか座談会の方が近いのかな。普段なかなか聞くことが出来ない、ライフスタイル等を知ることが出来て楽しかった。

Mobile Application Development for Perl Mongers [ninjinkun x gfx]

サーバサイドと違って、ネイティブのアプリはロールバックが出来ない等、どのバージョンでもそれなりに動いてないといけないと言うのは大変そうだし、サーバサイドと同じ感じの開発フローではダメというのがすごく伝わってきた。

そんなにビッグでもないデータ処理手法の話

データが小さいうちはRDBMSでやって、メモリに載らなくなったりディスクの問題が出てきたら、MapReduceを使うというのでやっていくのがいいのかなと感じた。

Lightning Talks Day 2

あまりメモってないので簡単に。GaiaXの新人研修すごい。

キーノート

今年のクロージングキーノートは30代エンジニアの自分としてはすごく刺さる事が多かった。20代の頃自分なりに色々やってきたことが、今の年齢になって効いてきてるし、色々考えさせられることも多かった。

俺達のYAPC後夜祭(勝手に名付けた)

1日目と同様に2日目も池袋のスターバックスで技術談義を延々としていて、10月初旬に集まって何かやろうというところまで決めた。何をやるかは決めてないけど、Emacsでごにょごにょな気がしてるw


嬉しかったこと

今年のYAPCで導入された同時通訳は本当にありがたかった。英語があまり得意ではない身としては、今まで海外のスピーカーの話は聞きたいけど敷居が高いなぁと感じていて、少し避けてたけど今年は積極的に聞くことが出来たし、来年以降も是非お願いしたいです!

まとめ

個人としては、仕事で書く言語がJavaScript(node.js)になってPerlを書く機会が減っている。でもやっぱりPerlが大好きだし、今後もPerlのイベントには積極的に参加していきたいなとあらためて感じた。

2012-03-25

[][]Webエンジニアのためのデータベース技術[実践]入門読了

発売前から読むのを楽しみにしていた"Webエンジニアのためのデータベース技術[実践]入門"が読み終わった。

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

データベース構造の基本からインデックスの構造、データモデリングレプリケーションといった、Webエンジニアがデータベースを扱う上で必要となる知識がわかりやすく説明されていて、非常に勉強になった。

個人的には"第8章データベース運用技術の勘どころ"がすごくためになったと思ってて、問題の予防・認知・解決について書かれてて、多くの運用経験がある著書が書かれているのだからこそ、説得力があるなと思った。"よく知っている技術を使う"、"アーキテクチャを複雑にしない"当たり前だけど重要だよなぁと再認識。

データベースの基礎と実践を体系的に勉強できる良書。多くの人におすすめ出来る一冊です。

2009-07-08

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

自分の仕事のスケジュールがきつくて、あまりかまうことが出来なかったけど、第6回目です。

  • HTML::Template::Expr モジュール
  • 限界値テストについて
  • 回帰テスト(リグレッションテスト)について
  • カーディナリティについて少々*1
  • zsh があつい件について

ソフトウェアテストは若いうちに身に着けて欲しいなぁと思う今日この頃。

そろそろ、バージョン管理をするようにしていくか。なんだかんだ迷って svn で行くことにする。隣に座ってる人は、perforce を使っているらしいのですが、社内人口の多い svn の方が無難かと。そのうち、色んな人洗脳して git とか。

*1インデックスを張る為の一つの指標として

2009-05-12

[][]MySQL5.0 で数億レコードあるテーブルの定義変更をしたい

あるプロジェクトで、がっちがちに正規化されているテーブルの設計を一部崩して、テーブルにカラム&インデックスを追加する必要があり、というか一度追加してみたのだが、まったく終了する気配がなくていったん kill して今困ってるところである。

とりあえずやったみたこと

最初にやってみた方法は、alter table を使ってカラム&インデックスを追加。

テスト用 DB(レコード数はおよそ1億)であれば帰宅前にコマンドを実行して、出社時には終わっているので、本番用 DB でも多分いけるだろうと判断してやってみたが、これが大きな失敗。

本番用 DB では、レコード数がおよそ5億5千万もある巨大なテーブルということもあり、15時間くらいかかってもカラム追加すら終わっていないで、こりゃ困ったという感じ。


社内システムということもあり、力技で乗り切ろうとしたんだけど、やっぱりちゃんとしないといけないっすね。

大まかな作業案

  1. テーブルを定義をしなおして mysqldump でダンプしたのをリストアする
  2. テーブルを定義をしなおして insert into select ... で insert する
  3. 時間がかかるのを承知の上で alter table でテーブル定義を変更する

とりあえず色々ググって調べてみたり、テスト用 DB で実験して速度や負荷の計測をしたりしよう。Oracle なら SQL*Loader で解決しそうな気もするが、MySQL ではこの辺どないするのがいいんやろう。まぁそもそも設計がおかしいというのもあるけど、テーブル定義を変更するコストが、高いことがあらためて実感できたことはプラスですね。