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だったなーと。
ぜひ来年も行って喋れるよう、何かしら技術ネタを積み上げてまいります。ぺこり。

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の勉強会だとデザイナーさんとかも割と参加する印象で。
その辺はプログラム言語の勉強会としては特殊だなあと。

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

Fukuoka Perl Workshop #21にいってきた話

Webカメラ片手に行ってまいりました。
まとめは他の方のエントリがまとまっているので、そちらにパス。

Fukuoka Perl Workshop #21に参加してきました。 - yokoninaritaiだけどその前にやることやります。
http://yokoninaritai.hatenablog.jp/entry/2012/04/03/012440

fukuoka.pmに行って来ました!- spring-mt.tumblr.com
http://spring-mt.tumblr.com/post/20696127846/fukuoka-pm

Fukuoka.PMで発表してきました! - blog.nekokak.org
http://blog.nekokak.org/show?guid=sIqrZfiC4RGhepmbghOgLw

あとust録画してたんですが、音声が結構つらいところが。。。次回の課題ですね。
[イントロ:dai106oさん]
http://www.ustream.tv/recorded/21482655
[dragon3さん]
http://www.ustream.tv/recorded/21482733
[kiwanamiさん]
http://www.ustream.tv/recorded/21483210
[lestrratさん]
http://www.ustream.tv/recorded/21483588
[nekokakさん]
http://www.ustream.tv/recorded/21484505
[LT:Spring_MTさん]
http://www.ustream.tv/recorded/21485460

懇親会は例のごとく飲んで、2次会でもっと飲んで、3次会でさらに飲んではっちゃけすぎました。
多分年度末が過ぎた安心感とかがあったんだと思いますすみませんすみませんすみません。
あと、「遠征者=ラーソーメンの洗礼」が定着しつつありますね。いいことです。

というわけでありがとうございました。
次回もよろしくお願いいたします。ぺこりぺこり。

DSpace1.7.2 + lucene-gosen + Apache Solr 3.3.0

で、真っ先に引っかかるのが江別 鈴木さんの記事。
http://d.hatena.ne.jp/zuki_ebetsu/20110715/1310735838
http://d.hatena.ne.jp/zuki_ebetsu/20110716/1310809072

を参考にして設定していくとおおよそいい感じに動くのですが、当時と違って

Solr本体は、DSPACE-SRC/dspace/modules/solr/pom.xml の指定により、1.4.1がインストールされるので、いったん通常の方法で全体をインストールした後、Solrだけ手作業でバージョンを上げる

とかやらなくても、dspace-solr-3.3.0.0.pomがあるので

https://gist.github.com/2056761

と DSPACE_SRC/dspace/modules/solr/pom.xml を修正すればいい感じに解決してくれますよ。

確認方法は、

$ curl http://127.0.0.1/solr/statistics/select?q=*:*

として、エラーなく検索結果が取得できれば。
※ 127.0.0.1の箇所は、dspace.cfgなりdspace-solr-search.cfgなりの設定によりけり。


DSpaceの日本語ドキュメントがとにかく少ない。orz