2013/05/20

MTCafe Sapporo#2とSapporo.js

5/18にMTCafe Sapporo#2と5/19にSapporo.jsに参加したので、その記録をざっくりと。

MTCafe Sapporo#2

Perl繋がりということでお邪魔しました。
ゆるふわな空気の中、Chef SoloによるMTOS環境の構築をテーマにひとりHackathonを敢行しました。
作成したMovable TypeのOpenSource版のcookbookは以下です。 ysasaki/cookbook-movabletype-opensource

自動化を思い立ったきっかけはちょっと前に公開されたデザイナー必見!VPSで高速なMovable Type用サーバをゼロから構築する方法です。
明らかにデザイナーには大変そうなので、Chef Soloで簡単に環境を構築できれば楽ができるだろうと考えた次第です。
前日からnaoyaさんの入門Chef Solo - Infrastructure as Codeを読みながら書き進めましたが、当日には完成しなかったのが残念です。

まだ未完成ですが、現在は以下の構成で動作するところまで来ています。

  • Reverse Proxy - Nginx
  • Database - MySQL
  • PSGI Server - Starman

今後もChefの勉強も兼ねて手直ししていく予定です。次回のMTCafeには間に合わせたいなーと考えています。

TODO

  • 依存cookbookの指定を追加
  • Daemontoolsに対応するか検討する。Upstartを使うのも良さそう
  • Memcached対応
  • NginxのReverse Proxy対応をオプショナルなrecipeに変更
  • ApacheをReverse Proxyに使うrecipeの追加
  • さくらVPS等での動作確認

Sapporo.js

久しぶりのSapporo.jsということで東区民センターまで出向きました。

@tricknotesさんのember.jsの紹介、@y_jonoさんのJavaScriptでの非同期処理のプラクティス的なお話を聞いた後に、恒例のJavaScript: The Good Partsの読み合わせを行いました。

ember.jsの紹介

  • 公式のガイドがよく出来ている
  • 他のMVCと比べてemberは不必要なコードが少ない
  • Good Partsでは推奨されていないやり方をしているが、他所は他所、うちはうちと考えよ
  • ember.jsをterminalから使えるember term
  • Modelの変更とかの自動で感知する
  • テンプレートはhandlebars
  • EMBERCAST
    • 動画で紹介
    • これ自体もemberを使っていて、ソースコードがgithubで公開されている
  • 気に入らないところ
    • 動かないときに完全に沈黙することがある
    • debuggerとかで対応
    • コーディングの効率を上げるためにprototypeを拡張するけど、オプションで拡張しないようにもできる
  • サーバとのやり取りはemberjs/dataがあるけど、まだまだ使える段階ではない
    • ember-modelが良さげ?

Concurrent Programming in JavaScript

  • サイ本の第6版にスレッド関連がある
  • callbackスタイル
  • setTimeout
    • UIのブロックを防ぐため、適当なdelayを付けてsetTimeoutで後回しにする
  • Web Workers
    • 意図した動作にならなかったり、初期化処理に時間がかかったりする場合があるので使う前に実装を確かめよう
  • nodeスタイル(async.series)
  • Promise/A+
  • Promiseって書き方がいけてなくね?
    • Flow.js
    • task.js
  • Effective JavaScriptがいい本

読み合わせ

1ページちょっとしか進みませんでしたので、まだまだ読み合わせは続きそうです。
次回はP.103のstring.matchからです。

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