読者です 読者をやめる 読者になる 読者になる

YAPC::Asia Tokyo 2015のLTでbotになった話をしてきました、他個人的な感想

ランチセッション喋って、その後LTも喋ってきました。
ランチセッションについては会社枠で別途したためます。

LTについて

前日応募して通ったので、喋ってきました。
英語がちょいちょい怪しいのはご容赦ください。

www.slideshare.net

YAPC::Asiaで初めてLT見た時から、いつかLT喋ってみたいなーと思っていたので、ようやく喋れて本望です。
意外と緊張せずに済んだのは、先にランチセッションで話していたのと、下のプロントでビール投入してたおかげだと思います。

ところで

懇親会でも直接「被らない」って伝えたじゃないですか!

本編について

圧倒的に最高だったし、関係者の皆様は本当にお疲れ様でした。
同窓会感とか「やー1年ぶりです」ってあちこちで言うのはいつものことですが、年々その宛先が増えていくのはやっぱり楽しいです。

色々質問してみた

うずらさんに質問したら

ひとでさんに質問したら

なぜ。。。

CONBUすごい

全編通して「CONBUすげえ」な感想でした。
会場ついてからのWi-Fi具合から、セッションからLTから、果てはYAPC後の飲み会で話聞いてもただただ感心しきりでした。
CONBUをそのまま地方に招聘するとなかなか大変そうなので、地方サテライトとか作りたいですね。

で、終わった後に

papix他、五反田勢やら八王子勢やら合計20人くらいで飲んだんですが。
この人が色々とすごかったのが、予定外のハイライトです。どうしてこうなった。

で、終わった後に2

油断してたよ! とりあえず何かやります。

で、次は

9/12(土)に早速Fukuoka.pmがあるので喋りますです。

www.zusaar.com

特に後夜祭で福岡に(いろんな意味で)興味持った方とか、是非足を運んでいただければ。
あと、講師派遣制度で来たい!って人も募集中です。Yappoさんとか特に。

そんなこんなで

ありがとうございました!!!!!!1

YAPC::Asia Tokyo 2014に参加して、前夜祭でクイズの話をしてきました

発表について

というわけで、2年ぶりに参加して喋ってきました。

内容としては、Fukuoka.pmで話したネタをPerlに書き換えたりいろいろしたものです。

Fukuoka.pmでクイズを支える技術について発表してきました | Fusic Developers Weblog

おおむね反応は良かったと思います。
なんだかクイズ芸人のレッテルを貼られたような気がしますが、気にしない。

いくつか補足とか

ブコメとかで質問とか来たら追記するかもしれないです。

もともとSocket.IOなのにPocketIOじゃない理由

最初PocketIOでやろうと思ったんですが、node.jsの古いやつでしか動かないという。
はてーと思ってIssue見てたら、作者のvdiが

I suggest using SockJS. Currently working in production. Feels great!

via Are we suppoed to only use a specific version of the client-side socket.io.js library? · Issue #27 · vti/pocketio · GitHub

(゚д゚)エー というわけで、SockJS-perlにしてみたという話。
この程度であればSockJSでも余裕で作れるので、気になる人は触ってみるとよいですよ。
サーバ側はいろんな言語で書けますし。。。あ、PHPはないです。

sockjs/sockjs-client · GitHub

うずらさんとのやり取りは茶番なの?

たまたま目に入ったうずらさんに無茶振りしてみたら、200%の解答をいただいたというのがオチです。

ちなみに、まさか俺がdebilityさんのトークでいきなり逆質問(クイズ)されるとはおもってなくてすげえ笑った。無茶振りどうぞどうぞです(死ぬかもしれませんが)。

via スタッフとしてのYAPC::Asia 2014 レポート(Without about my talk) - uzullaがブログ

本当に本当にありがとうございますすみませんすみませんすみません。

このためにルータ買ったって聞いたけど

iPadでデモするために無線環境が必須で、当日のネットワーク具合がわからなかったのです。
多分万全のネットワークあるだろうから大丈夫とは思ったんですが、丁度自宅用に買う必要があったので、ついでに。

技術ネタが全然ないwww

本編の20分トークに応募してて、落ちて前夜祭に回った時点で技術ネタは全部削りました。
つっても話す内容ってそんなになくて

  • Mojolicious::LiteとかTengとかでさくっと組めるよ話
    • 構成自体は普通のWebアプリなんだよ的な話
  • 全体構成の話をもうちょい掘り下げて説明
  • SockJSの話をもうちょい掘り下げて説明
  • HTML5のaudioタグで音出してるよって話
    • ただloopプロパティ使うと微妙に途切れて困るので、充分な長さのループ音を自分で作った
  • 弊社にはア○ック25のシステムを作った人もいるよ

と言ったあたりをまとめる予定でした。
会社のblogのほうで、ちゃんとまとめようかなとは思ってます。

Webサービス10連発なのにWebサービスじゃなくね?

スライドの5枚目でそう言ったじゃない!

海外の方が反応できていなかったようです

ごめんなさいごめんなさいごめんなさいごめんなさい。

本編についてつらつらと

相変わらず、楽しすぎる時間を過ごせました。
行くとたいていFukuoka.pmの話をして帰る役だったりするんですが、今年はd_tsuruにお任せして、好き勝手に行動してました。
個人的に楽しかったのは以下。

お待たせしました。Perl で BDD を簡単に実践する最高にクールなフレームワークができました - YAPC::Asia Tokyo 2014

コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014

ウェッブエンジニアのローレベルプログラミング - YAPC::Asia Tokyo 2014

突然ITインフラを任された人のための…監視設計入門 - YAPC::Asia Tokyo 2014

Perlあるある - YAPC::Asia Tokyo 2014

ここに挙げてないトークも楽しかったですし、自分が聞いていないセッションの反応をtwitterで眺めるのも楽しかったです。

個人的にすごく刺さったのは、Perlあるあるでのパネラーの方々の「平日/休日の過ごし方」のところだったり。
今年に入って生活が激変している中で、仕事とその他のバランスをどうするかなーというのがテーマなので、その辺は引き続き巨人の背中に学んでいく所存です。
同じ理由で、typesterさんのKeynoteもすごく刺さりました。

まとめ。
今年のスローガンである

There is more than one way to enjoy it!

を随所に感じましたし、自分もいろんな形で楽しめたYAPC::Asiaだったなーと。
ぜひ来年も行って喋れるよう、何かしら技術ネタを積み上げてまいります。ぺこり。

Wakameの話ではなくisonoについての話

この記事はWakame Users Group Advent Calendar 2013の12/13分です。

12/12の記事はこちらです。

ご存知な方々もそうでない方々もはじめまして。

2年ほど前にWakame-vdcと大いにまみれさせていただいた、平田と申します。

その際にやったことは↓。

で、今日はWakame-vdc内で使ってるisonoの話をちょっと書いてみます。

詳しい中身は↓を。

https://github.com/axsh/isono

何をするためのものか

AMQP/EventMachineといったあたりが依存パッケージとして入っている、という点でピンとくる人もいるかもですが。

Wakame-vdc内部で行われている、様々なメッセージング処理の際(内部通信をつかさどる、という書き方のほうがいいかもしれません)に登場します。

使い方もシンプルで、

https://github.com/axsh/wakame-vdc/tree/master/dcmgr/bin

それぞれ必要に応じてload_moduleで呼び出す、といった感じ。

話戻って、2年前

当時Wakame-vdcを使って空恐ろしい数のインスタンスを立てては落とし、立てては落とし。

その年のWakameTechで「日本で一番Wakame-vdcインスタンスを立てたかも」というよく分からない肩書きで参加させていただいたのですが。

立てては落としの中で「なぜかhvaが落ちる」という現象がありまして。

当時いろいろ調べていた中で、coredumpから追いかけた際に頻繁に登場するのがisonoさんでした。

調べた結果

で、実際のところisonoではなく、その先のEventMachineとかに当時問題が。

gavage collectionが実行されるタイミングで、状態によってはたまに落ちる、という問題をはらんでおりまして。

最終的にはRubyのバージョンを1.8.7から1.9.3にすることで解決したのですが、これを追いかける経緯でよくisonoのコードを読んだりしていたのです。

「うぁーまたisonoかー」とか何度か叫んだこともありますが、isonoは何も問題なかったという。

※ いやまあisono起因だとは思っていなかったんですが、何度も目にすると、ですね。。。

某nakajima君風に言うなら「ごめんよisonoー」といったところでしょうか。

というわけで

とりとめのない昔話と、普段あまり話題に挙がってこないけどすごく大事なisonoの話でした。

Apacheでレスポンスを置換&レスポンスヘッダを置換する

varnishと組み合わせて使う上で、置換かける必要があったので。

レスポンスを置換

ExtFilterDefineでsedるフィルタ定義して

ExtFilterDefine fixpudding mode=output intype=text/html cmd="/bin/sed -e s/puding/pudding/g"

SetOutputFilterでセットする。

複数の場合はセミコロンでつなぐ。

SetOutputFilter fixpudding;fixother

see: http://httpd.apache.org/docs/2.2/ja/mod/mod_ext_filter.html

レスポンスヘッダを置換

↑だとヘッダは置換してくれないのだけど、300系のリダイレクト先を変えたいなーと。

こっちはmod_headersのHeader editを使う(*)。

Header edit Location puding\.jp pudding.jp

なんでか英語版にしか記載がなかった。

see: http://httpd.apache.org/docs/2.2/en/mod/mod_headers.html

(*) mod_headers 2.2.4以降が必要

あんまりこういうのでごにょったりはしたくないんですが、致し方ない時の手段として。

MySQL Casual Talks @gumi福岡に行ってきた話(雑感多め)

内容をだいたい網羅してると思うんでgistのメモを見てください。
スライドそのままのメモが多数なので、皆様の資料うp待ちですが。
https://gist.github.com/3003955
あと資料系まとめとかtogetterのまとめとか。
http://spring-mt.tumblr.com/post/26006714783/mysql-casual-talks-gumi-talk
http://togetter.com/li/328288

MySQLをがっつり触る機会というのがなかなかないので、純粋に楽しかったです&勉強になりました。
5.6はwktk感が半端ないですね。

懇親会ではいろいろと盛り上がりました。特に某サービスの話とかげふんげふん。
某サービスの中の人が今回の件で勉強会したら集客半端ないよねとかげふんげふんげふん。


で、以下雑感。
MySQL Casualの「Casualに発表しようぜ!」ってのは普通にすごくいいです。
なにげにauto_incrementの話とか、個人的にはツボでした。
こういうのって、少しでもかしこまったりした勉強会じゃ聞けないんですよ。
「一旦立ち返って」という話も聞けて、どっぷり深い話も聞けて、というのは非常に貴重です。

@Spring_MTが持ち込んだ(と個人的に思っている)いいノリが最近の福岡のとある方面の勉強会にあって、こういうのどんどん拡がればすごく面白いことになるよなーと。
もともと福岡自体は勉強会とかすごく元気で、それに乗っかって自分も勉強させてもらってるんですが。
それをもう一つ面白くする要素のひとつが「カジュアル」なんだろうなーと。
福岡なら椅子も飛んでこないしマサカリも飛んでこないし、せいぜい飛んできても明太子くらい。いや飛ばしてはいませんよ。

Future Syncはなんかすごい規模だったし、PHPのほうも新たに勉強会立ち上がったし、最近はインフラ界隈の勉強会も活発だし、で最近の福岡はすごく楽しいことになってるなーと。
こういう楽しい+役に立つ流れはどんどん拡充していけばいいじゃないと思ってます。

というわけで近々Shogi CasualPerl Casualやったら楽しいのかなとか言ってみます。
いや前にもちろっと言ったんですが、全然反応なかったからあらためて。

そんなこんなでありがとうございました。

JQuery Mobileのselectがうまくリセットされない

jQuery Mobile 1.1.0でのお話。

$('#selectField').empty();

とかで空になるかなと思ったらうまくいかず。
http://dev.screw-axis.com/doc/jquery_mobile/components/forms/selects/
refleshがあるらしいので、

$('#selectField').empty();

$('#selectField').selectmenu('refresh', true);

とかやったら大丈夫かなと思ったら、表示のテキストが残ったまま。
changeイベント発行してみたりしてもうまくいかないので、

$('#selectField').empty();

$('#selectField').selectmenu('refresh', true);
$('#selectField').parent().find('.ui-btn-text').html('');

とかやって、とりあえずは強引に解消。
ぐぐってもいい感じの解法が出てこなかったので、とりあえず備忘録として。

Fukupka.php Vol.1で喋ったりしてきた話

そういえば、PHPネタで最後に喋ったのは最後のPHPinFukuokaでした。
まとめはoreokaとかにおまかせます。

REPORT: FUKUOKA.PHP VOL.1 #FUKUOKAPHP - oreoka.com
http://oreoka.com/2012/05/fukuoka-php-fukuokaphp/

第1回Fukuoka.phpが開催されました!(スライド公開中) | VIVID COLORS + BLOG -福岡で働くWebデザイナーのブログ-
http://blog.v-colors.com/fukuoka-php-vol-1.html

喋ったやつのスライドとかリンクとかは以下。
久しぶりのLTだったもんで、普段より早回しで喋っております。
http://zenpre.net/p/_e36R

社内でいろいろ聞いてみたら、思いのほかいろいろ出てきました。
php -sの話とかhighlight_stringの話とか、時間の都合で出せなかったネタはそのうちどこかで。

人の集まり具合とか、やっぱPHP人口って多いよなーと感じました。
今回は技術者が比較的多かったようですが、PHPの勉強会だとデザイナーさんとかも割と参加する印象で。
その辺はプログラム言語の勉強会としては特殊だなあと。

そんなこんなでまたよろしくお願いいたします。ぺこりぺこり。