2013/03/21

Hokkaido.pm Casual#11に行って来ました

今回でHokkaido.pm Casualは第1シーズンが終了となります。
次回から第2シーズンになりますが、特に内容は決まっていません。WAF, ORMあたりは一度は触れるんじゃないかと思います。
後は@techno_nekoさんが適宜考えながらやって行くはずです。

今日の発表内容

第11回目のテーマはリクエスト特集ということでしたが、特にリクエストもなかったので今まで紹介できなかったけど知っていると嬉しいモジュールとして以下を紹介しました

Synopsisを見たほうが早いですが、スライドはこちらです。
一応例に使用したgithubにpushしてありますので、確認したかたはこちらからどうぞ

2013/03/16

LINEで勝手に他人のメールアドレスを登録できる件 (追記あり)#LINE

追記 2013/03/18 12:05

LINEカスタマーサポートから返信をいただきました。 対応が遅れたことを謝罪していただいた上で、再度12時間有効な登録拒否メールを送信するとのことでした。

そのメールの直後に登録拒否メールが来ましたので、記載のリンクから無事登録拒否できました。アプリからパスワード再発行しても特に音沙汰がないことから、恐らく削除されているかとおもいます。

登録フローの変更については現在対応を検討中とのことです。

メールアドレスを間違って登録すると、登録した人、された人の両方が不利益を被るので是非とも変更していただきたいところです。

追記ここまで


メールアドレス登録フローが腐っているため、勝手に他人のメールアドレスを利用することができます。

一般的なサービス利用時のメールアドレス登録のフローは以下になります。

  1. メールアドレスをアプリから仮登録
  2. メールアドレスの有効性と本人確認のた、セッション付きリンクを記載したメールを送信
  3. メールアドレス所有者がリンクをクリックしてメールアドレスの登録完了

メールアドレスの所有者による確認が入るため、基本的に他人のメールアドレスは使えないように配慮されています。

しかしLINEの場合は一般的なフローと異なり以下のようになっています。

  1. メールアドレスをアプリから入力した時点で登録完了
  2. 入力したメールアドレスに登録を拒否するリンク(有効時間12時間)を記載したメールを送信

12時間以内に拒否しない場合、今後登録を拒否することはできません。
勝手に登録されたくない人は12時間に1度メールボックスを確認する必要があります。
また、line@naver.jpからのメールを迷惑メールに入らないようフィルタの設定を忘れないでください。

今回の私のケースでは普段使っていないicloud.comのメールアドレスが勝手に使われました。
icloud.comは複数回パスワード入力に失敗した場合アカウントがロックされ、メールを受信できなくなります。普段使っていないので後でロックを解除すればいいと放置していると、このように勝手に使用されることになります。
ロック解除に手間取るようなサービスの場合、故意にパスワード入力をミスすることでメールアドレスの乗っ取りがしやすくなるかもしれません。

LINEのWindows用アプリとiPhoneアプリを確認しましたが、どちらもメールアドレスの登録解除はできません。
iPhoneアプリからパスワードリセットのみ可能でしたが、勝手に他人のLINEアカウントを問題がありそうなため、まだそのアカウントにログインはしていません。

念のためカスタマーサポートに問い合わせましたが、自動返信がくるのみで対応してくれません。 LINEの中の人用に私の問い合わせ受付番号を載せておきます

  • 受付番号:859194
  • 受付番号:852220
  • 受付番号:846368
  • 受付番号:847236

2013/03/14

Hokkaido.pm#9を開催しました

報告が遅れましたが、3/9(土)に無事開催しました。
参加者のみなさん、講師のxaicronさん、悪天候の中ありがとうざいました。
詳しい内容は公式ブログのHokkaido.pm#9 開催報告を御覧ください。

個人的には@shinotraさんのATNDのAPIでWebサービスを作った話がすこぶる良かったです。
最初はLTでの申し込みだったのですが、無理を言って20分やっていただいて正解でした。
今後もshinotraさんのようにCasualで釣って、本体に参加してくれる人が増えるとよいですね。

自分の発表について

今回はPerl版Gemfileのcpanfileについてざっくりと説明しました。
開催直前にcpanfileに対応したcartonがリリースされたので、ちょうどよいタイミングでした。

Perl自体とCPANモジュールについては互換性の維持に相当力をいれていますので、Makefile.PLでの指定でもそれほど問題はありませんでしたが、これでカッチリとした指定がやろうと思えば簡単にできるようになったのは大きいです。

個人的に一番大きなメリットはgitリポジトリを直接指定できることかと思います。この機能自体はどちらかと言うとcpanmによるものですが。
社内やgithubにおいておけば簡単に自社アプリケーションで利用できるので、わざわざDarkPANを立てなくてもよくなります。勤務先にも自社ライブラリをOrePANを立てて利用していますが、gitに移行してOrePANを止めないと考えています。

今回のスライドを貼っておきます。

今後の開催について

今回から開催者は持ち回りでやってみないかと言う事で、とりあえず私がメインで色々担当しました。
次回は誰が開催するのか決まってませんが、多分他にいなそうなので私がやるんじゃないかなと思います。

@techno_nekoさんが毎月Hokkaido.pm Casualを開催していますので、Hokkaido.pm本体の方は年3回(3,7,11月とか)くらいの頻度でやるんじゃないでしょうか。

JPA様の講師派遣制度には毎度お世話になっております。ありがとうございます。次回も恐らく利用するかと思います。
毎回開催前に誰にしようかという話になりますので、5月頃に「自分、Perl Mongerなんだけど、夏の北海道いいよねー」とアッピールしてもらえるとこちらも呼びやすいところであります。

2012/10/13

ExtUtils::MakeMakerとPerlのversion

追記 2012-10-17
BUILD_REQUIRESを実装した方(chornyさん)から6.55_03以降が望ましいとコメントをいただきましたので,修正しました.ありがとうございます!
後方互換を気にするなら,App::EUMM::Upgradeを使うといいかもしれません


ExtUtils::MakeMakerで*REQUIERSがいつからサポートされているのか調べたのでメモ
perl-5.10.1以降であれば安心してCONFIGURE_REQUIRES,BUILD_REQUIRESが使えるようで一安心

perl       EUMM
v5.8.0     6.03
           6.06_03  META.yml
v5.8.9     6.48

v5.9.0     6.17
v5.9.5     6.36

v5.10.0    6.42
           6.45_01  META_MERGE
           6.51_03  CONFIGURE_REQUIRES
v5.10.1    6.55_02

v5.11.0    6.55_02
           6.55_03  BUILD_REQUIRES (Recommended version. See comments below.)
v5.11.3    6.56
v5.11.5    6.56

v5.12.0    6.56
v5.12.4    6.56

v5.13.0    6.5601
v5.13.5    6.57_05   MYMETA.yml
v5.13.11   6.57_05

v5.14.0    6.57_05
v5.14.2    6.57_05

v5.15.0    6.57_05
v5.15.1    6.58      META.json, MYMETA.json
v5.15.9    6.63_02

v5.16.0    6.63_02
v5.16.1    6.63_02

v5.17.0    6.63_02
v5.17.4    6.63_02

2012/10/04

Apache2::Data::Section::Simple - Data::Section::Simple for ModPerl::Registry

THIS MODULE IS BETA. YOU SHOULD NOT USE

動機

ModPerl::Registryでは__DATA__を読み込むことができないのは周知の事実かと思います.
なんかよくわかりませんが,twitterのtimelineで__DATA__を読むことができないかと盛り上がってる感じがしたので,チャレンジしてみました.

HOW TO USE

Data::Section::Simpleと同じです

URL

p5-apache2-data-section-simple

動作環境

動作確認をしたのは以下の環境です

  • FreeBSD 8.1-RELEASE
  • Apache/2.2.17 (FreeBSD)
  • mod_perl2.0.5
  • perl v5.10.1

2012/09/30

YAPC::Asia Tokyo 2012 参加記録 #yapcasia

前夜祭も含め三日間参加してきました.ブログをかくまでがYAPC::Asiaということで,感想を綴っておこうと思います.

はじめに

今年も私が所属する株式会社アイダックに企業スポンサーになって頂きました.ありがとうございます.

また運営スタッフの皆さま,ありがとうございます.スタッフの方々のおかけで楽しい時間を過ごせました.

Perl Mongers

各地のPerl Mongersに会うことができる数少ない機会でしたので,普段お世話になっている方に挨拶してきました.

その中でも特に印象深いのは,近藤さんに直接お礼を伝えることができたことです.日本語版『初めてのPerl』を熟読してPerlを覚えたクチですが,読んでいた当時の自分は,翻訳者ご本人に直接お礼を言える機会があるとは思ってもいませんでした.

Perl Mongerのくくりにいれていいのか分かりませんが,またLarry Wallさんと写真を取れました!以前撮影した写真を見せ,また撮影をお願いしたところ,「OK. モウイチド」と快く応じていただけました.ありがとうございます.

モチベーション

毎回感じることですが,参加後は意識が高まって(),非常に開発したい気分になります.大勢の方が良質なアウトプットしているので,その影響を受けているのでしょう.この状態を維持し,あずまさんが仰ってたようにCPANに恩返し,恩送りしたいところです.

昨年と違い今年は登壇しなかったため,少し物足りなさが残りました.来年は(当選するかは別として)トークを応募しようと思います.

リンク

1日目,2日目のまとめをアップしてあります.例年通りなら後日トークの動画がアップされるかと思いますので,それまでの繋ぎとしてご利用ください.注意点ですが,自分用に聞いた話をメモしたものですので,解釈が間違っている可能性もあります.

YAPC::Asia Tokyo 2012 2日目

CPANに恩返ししよう

CPANモジュールはいつも本当に完璧か

  • 例えばCrypt::DH~0.07はこけたりする
  • 他にも依存モジュールでこけたりとか
    • CPAN Dependenciesを参照すると依存や各モジュールのインストール成功率が見れる
  • SYNOPSISがなかったりすることもたまにある

プログラマたるもの,常に建設的であれ

  • バグとかにぶち当たったら,対応する
    • patch
    • bug report
  • 自分のためでもあり,他の人の為でもある

連絡方法

  • Email
  • Twitter
    • ぼやいたら6分後にyappoさんが反応をくれた
    • #perlをつけるとか
  • Blog
  • github
  • PAUSE

恩返しするための方法

  • ブログに記録を残す
    • 現象や環境(バージョン等)
  • テストの失敗を報告する
    • CPANRTやgithubにIssueを書く
    • 簡潔にわりやすく
  • モジュールの使い方を書く
    • POD形式を意識して書いておく
  • 改善要望を出す
    • patchがなくても,issue登録だけでもOK
    • デザインの手助けもありかも
  • 盃を交わす
    • 勉強会に参加,開く

恩返しの次は恩送り

  • Nephia(Mini WAF)を作ってCPANにあげた!

Perl as a Foreign language

  • dan kogaiさん

前置き

  • 以前はPerlがどこにでもあった
  • 今はそれがJavaScriptになっている

この先Perlの生き方

  • サーバ側にはまだJavaScriptは普及しきっていない
  • とほほ・Kentな人でも使える
  • one-liners, shell script++として
    • Minimal Perlが参考になる
  • perlが遅い
    • 数値計算が遅い
    • 他の部分で頑張ってる.例えば起動処理はnode, php, python等と比べて速い
  • True TDD
    • testしてからじゃないとinstallしないポリシー
  • Decent Unicode Support
    • Perl, 1.9.XのRuby
  • Community

Perlで始める!初めての機会学習の学習

  • TAKESAKOさん

機会学習の教材

  • Pythonばっかり
  • PRMLは数学を忘れているのできつい
    • あんちょこを作ってgithubで公開し,ついでに販売

身近で機会学習の使われているところ

  • Kinect
    • Random Forest アルゴリズム
    • 奥行きからパーツ分けして認識

Kinect x Perl

  • CPANにない
  • Perl-Kinectを開発中
    • リアルタイムにテキストで出力
  • Kinect x DNS

Perl入学式をやってみた

  • @__papix__さん

運営上で気を付けていること

  • できるだけその場で質問に答える
  • コーディングを重視.できるだけ手を動かす
  • 継続的参加できるようにする
    • 2回同じ内容で対応
  • Twitterでのアフターサポート
  • 最初はいなくても,動いていればいずれ集まる
  • やる気大事

モダンmod_perl入門

  • @xtetsuji

mod_perlとは

  • mod_perl2も出てから10年経ってる
  • Perl CGIの高速化
    • Perlインタプリタを常駐化することの副次的な効果
  • Perlでapacheのinternalに触れる

mod_perl handler

  • sub hander {}を書いていき,apacheのconfigで設定する
  • 大量のhtmlの絵文字変換とか

使った例

  • mod_rewriteをmod_perlで書く
    • perlで出来ることはなんでもできる
  • PHPの前後でhookして書き換え
    • PHPのコードは書けないけど,除去はできる
    • 認証を全部削って,mod_perlで認証を追加
  • apache mpm threadとithreadでQueue Serverを実装
    • 複雑なことはしていない
    • 10K/minぐらい出てる

その他

  • handlerで書けば,mod_mrubyとも勝負できそうな速度
    • mod_mrubyの中の人のベンチ
    • 7000 req/secくらいは出る
  • \@mod_perl_infoを取ったので質問

mizzyさんの話は後日動画でご確認ください.