NDS#29 「秋のクラウド祭 特別企画 Windows Azure ハンズオン」に参加してきました #nds29

第29回勉強会(2012/11/17) - 長岡 IT開発者 勉強会(NDS) に参加してきましたよ。

Windows Azure ハンズオン ですぞ。

「一体いつから \ がエスケープ文字だと錯覚していた?」

FTPのUserNameに hoge\$fuga ってな感じて記載されていたのですが、この \ をエスケープ文字と思い込んでいたためにずーっとハマっていました。口頭で注意されていたらしいのですが、インスタンス作成でも手間取ってしまったために聞き取れませんでした。テヘペロ。

まぁおかげで @mihyaeru21 くんと仲良くお話できたので良しとしますか。

一人だったら恥ずかしくて憤死してた...

ネットワークの不調もあり、インスタンスの作成で少々手間取るところもありましたが、あせりながらも一通りの作業を終えることができました。

資料が配布されたので大変助かりましたが、このようなハマリどころも記載されていると非常に助かったり...あと資料に記載されていない手順もあったため、周回遅れが追いつくのは少々苦労しました。






...という言い訳でした。

LT

Inferno OS(@saisa6153) だったり Java(@nemuzuka) だったり ソーシャル目覚まし(@jewel_x12) だったり Windows8ストアアプリ(@AILight) だったり HTML/CSS3/SVG(@shogo82148, @aokcub) だったり NDB 2012(@civic) だったりと、あいかわらずいろいろですねwすごく刺激されます。

個人的に Play frameworkInkscape が気になりました。ちょっと調べてみよう。

次回は2013年1月26日(土)

なんと AWS ハンズオンだそうですよ。

もちろん参加予定です。こんどは周回遅れで顔真っ赤にならないように頑張ります。

おまけ

長岡の jamesDELICIOUS F-2ジャケット 買っちゃった。

めっちょカッチョいいです。(※似合う似合わないは別問題です)

お金たまったらまた物色しに行こう。

HTTP::Proxy でお手軽プロキシ

乗り遅れた感がございますが...

こちらのエントリを読んで「Perlではどうかなー」と思ったもので。

HTTP::Proxy

今回使用するモジュールはこちら。

依存はそんなに重くないかと。

サンプルコード

というわけで

フィルターの使い方に少々クセがありますが、なかなかお手軽ですね。

gist に画像データを登録

gist に画像データを登録する手順です。知っている方にはいまさらですね。

画像データ以外でも同様にできるかと。

  1. 適当にgistをつくる

    最初に登録するファイルはダミーなので内容はなんでもかまいません。

     delete me
    
  2. Private Clone URL を git-clone する

    登録した gist のページの上部にある Private Clone URL を git-clone します。

     $ git clone git@gist.github.com:3942884.git gist-3942884
    
  3. 画像を git-add する

     gist-3942884$ git add hoge.jp
    

    不要なら最初に登録したファイル(Markdown)を削除します。

     gist-3942884$ git rm [FILENAME]
    

    で、コミット。

     gist-3942884$ git commit -m 'added hoge.jp'
    
  4. git-push して完了

     git push origin master
    

注意事項

push するホストは gist.github.com です。

~/.ssh/config に

Host github.com
...

とだけ設定している場合は接続エラーになると思われるので

Host gist.github.com
...

Host *github.com
...    

を設定しましょう。

Niigata.pm 居酒屋LT 2012 秋の陣 に参加しました #niigatapm

今回はゆるふわな居酒屋LTということで、大した準備もせずに参加しました。

LT

スライドはこのとおり。

当日にアップしたブログの内容をお話させていただきました。

ゆるふわっと

初顔合わせである、AWS + PHP + MySQL で興味深いサービスを運用している @sakapun さんや学生ゲームプログラマの @Gorugo20 くんの濃ゆいお話を聞けて、大変楽しい時間でした。

市内在住のWebプログラマーはなかなか表に出てきてくれないので、 @sakapun さんとは改めて掘り下げたお話を聞きたいなぁとか思ったり。

あと毎度のことながら技大勢の技術力&センスに嫉妬。あと干支一回りぶん若ければ...ぐぬぬ...

帰りの道中では @bei_kan さんとスピリチュアルなトークができ、最後まで楽しいイベントでした。

少々心残りも

ボスが途中退場だったのが非常に残念でした。

いろいろ忙しいとは思いますが、都合の良いときに改めて飲みに行きたいなぁ...とか。

次回は

次回のイベントは tech talk #3 になる...でしょう。

闘牛士の国で大活躍中(だよね?)の @aokcub 先生が全編英語のトークを聴かせてくださるそうなので、期待せざるを得ません。 #無茶振り

「CPAN Author になったよ」のつづき

先日のエントリ「CPAN Author になったよ」のつづきです。

これが公開されたということは、Niigata.pm 居酒屋LT 2012 秋の陣 : ATNDが開始されているのでしょう。きっと。

CPAN Author になるまでの手順

さて、ずっと敷居が高いと思っていたCAPN Authorになるまでの手順ですが、実際はこんな感じです。

  1. PAUSEにユーザー登録
  2. CPANにモジュール登録

とっても簡単ですね。

PAUSE にユーザー登録

  1. PAUSERequest PAUSE accountからアカウント発行申請を行います。

    このとき"A short description of why you would like a PAUSE ID"の項目が重要です。Perlに対する熱い思いのたけをぶつけてみましょう。

    あまり変なことを書くと申請を蹴られる場合があるそうなので、ちょっと真面目に書きましょう。

  2. 無事にアカウントが発行された場合は、先ほど登録したメールアドレス宛てにメールが届きます。

    再度PAUSEのページにアクセスし、Change Passwordからパスワードの変更を行いましょう。

  3. つづいてEdit Account Infoで名前やメールの送信先を登録します。

    私の場合

    • "Publicly visible email address" に username@cpan.org
    • "Secret email address" に普段使っているメールアドレス
    • username@cpan,org のメールを "my secret email address" へ転送する

    な感じで設定しています。

CPANにモジュールを登録

PAUSEのUpload a file to CPANからmake distしたtarballをアップロードしてもよいのですが、ここでは Module::Setup + Carton + ShipIt な環境で開発・登録するまでの簡単な流れを解説します。

Carton使っているのでちょっと特殊かもしれません

  • Mosule::Setupでモジュールの雛形をつくる

      $ module-setup My::Module::Name
      $ cd My-Module-Name/
    

    .shipit とか作ってくれます。ありがや。

  • 開発する

    ぶりぶり開発しましょう。

    依存モジュールはcartonでインストールしちゃいます。 MANIFEST.SKIPにcatron.lockや.carton/などを加えておきましょう。

    テストも忘れずにね。(重要)

  • ShipIt環境の用意

      My-Module-Name$ wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/cpan-upload-http-2.4.tar.gz 
      My-Module-Name$ carton install ShipIt cpan-upload-http-2.4.tar.gz LWP::UserAgent
    

    ~/.pause がない場合は用意します。

      My-Module-Name$ cat <<EOF > ~/.pause
      use <username>
      password <password>
      mailto <username@cpan.org>
      EOF/
      My-Module-Name$ chmod 600 ~/.pause
    
  • ShipItのテスト

      My-Module-Name$ carton exec -Iblib/lib -Iblib/arch -Iinc -I../local/lib/perl5 -- shipit --dry-run
    

    ビルド時にカレントディレクトリが変わる(My-Module-Name-X.XX)ので、ライブラリパスには注意が必要です。

    加えて、テストのなかでcartonでインストールされたコマンドを利用する場合は、local/binがPATHに含まれないためにエラーとなります。必要な場合は実行時に追加しましょう。

  • ShipIt!!

    --dry-run で問題がなければ shipit します。

      My-Module-Name$ carton exec -Iblib/lib -Iblib/arch -Iinc -I../local/lib/perl5 -- shipit
    

    しばらくするとCPANに登録されます。CPAN Authorデビューですぞ。

  • Register Namespace ?

    Register Namespaceでモジュールのネームスペース申請を行うことができます。申請が通ると CPAN のカテゴリ別ページに登録されます。

    ...ですが、モジュール名が誤解を与えたりするようなものでもない限り、とくに申請しなくても良いかもしれません。

CPAN Author のメリット

@typesterさんとまったく同じですが...

  • cpanやcpanmでのインストールが簡単
  • capn.testers が様々なバージョン、プラットフォームでテストしてくれる(だたしキチンとテストを書いている場合
  • 人に見られると思うとキチンと書くようになる(かも)
  • さまざまな人の意見やパッチがもらえる(かも)

ホント、そのとおりだと思います。

DISには感謝

DISられるということは、それだけドキュメントやコードをを読んでいただいている証拠...だと思うので、DISには感謝しましょう。

何事からも学び、そして感謝するのです。謙虚な姿勢が大事なのです。アザマス!!

まずは

PAUSEに登録だ!話はそれからだ!!

ところで

特定のプラットフォームのみ対応/非対応のモジュールってどうすればいいんですかね?

Makefile.PLでコケるようにして自己主張すればいいんですかね?

# Windows unsupported
if ( $^O eq 'MSWin32' || $^O eq 'cygwin' ) {
    die "$^O unsupported";
}

CPAN Author になったよ

CPAN

こんにちは。唐突ですが CPAN Author デビューしました。

理由

先日の YAPC ASIA 2012 ではLTソンというイベントでData::Petitcomというモジュールを作った話をさせていただきました。

当初はGitHubでの公開でいいかなー思とっていたのですが、@typesterさんの「Perlハッカーは息をするようにCPANモジュールを書く。」のスライドを見て、せっかくだからCPANにあげてみようと思っだのがきっかけです。

あとYAPCの前日にそこそこ使えそうなモジュールをつくったのですが、これをcpanやcpanmなどでサクっとインストールしたかったのも理由のひとつです。

つづきは...

この続きはNiigata.pm 居酒屋LT 2012 秋の陣でお話する予定です。

  • CPAN Authorになってモジュールを公開するまでの手順(Module::Setup + Carton + ShipIt)
  • CPAN Authorのメリット

など。

ゆるふわな集まりなので、興味のある方はぜひ遊びに来てくださいね。

イベント終わったら続きを書きます。たぶん。