アーカイブ - 12月, 2012



2012年 12月 26

FormValidator::LazyWay

フォームのバリデーションルールをアプリケーションで統一出来るモジュールで、便利そうなので試してみたところ FormValidator::LazyWay::Rule::String の nonsymbol_ascii methodでハマったのでメモ。

FormValidator::LazyWay::Rule::String – search.cpan.org

ページの設定サンプルに

  username:
    rule:
      - String#nonsimbol_ascii:
          args:
            allow:
              - '_'
              - '-'

という記述があるのだけれど、これが間違っていて nonsimbol_asciiではなく 正しくは nonsymbol_ascii。

コレただのtypo。

ハマった点はここではない。

FormValidator::LazyWay::Rule::String のソースを見ると

sub nonsymbol_ascii {
    my ($text, $args) = @_;

    if ( ref $args->{allow} eq 'ARRAY' ) {
        foreach my $allow ( @{$args->{allow}} ) {
            $text =~ s{$allow}{}xmsg;
        }
    }

    return $text =~ /^[a-zA-Z0-9]+$/ ? 1 : 0;
}

ってなっているのだけれど、実は第2引数に渡されるものが

{
  'args' => {
            'allow' => [
                       '_',
                       '-'
                     ]
          }
}

となっていて、

ref $args->{allow} eq 'ARRAY'

が成り立たない。

正しい設定は args: は要らなくて

  username:
    rule:
      - String#nonsimbol_ascii:
          allow:
            - '_'
            - '-'

になる。

if ( ref $args->{args}->{allow} eq 'ARRAY' ) { ではないかとも思うけど、他のruleのコード(FV::LW::Rule::Emailとか)を見るとドキュメントが間違っているだけだと思われます。

ちょっとハマったけどこのモジュールは非常に便利そうな感じ。バリデーションのルールがあちこちに散らばるのを防げるので重宝しそうです。


Filed under: perlモジュール

Trackback Uri






2012年 12月 21

とりあえずwebアプリ制作において開発環境からメール送信できればいいのでそれなりの設定です。
本格的なメールサーバーとしては運用できませんのであしからず。

OP25Bとは

主要プロバイダを使っている場合はほぼ対策しなくてはメールが送れません。なぜならプロバイダが25番ポートでの接続を遮断してしまうからです。25番ポートを使った通信が出来ません。
対策としては契約しているプロバイダ経由でメールを送ります。

OP25Bの確認
OP25B(Outbound Port 25 Blocking)対策 – CentOSで自宅サーバー構築

$ telnet smtp.gmail.com 25
Trying 74.125.25.108...
telnet: connect to address 74.125.25.108: Operation timed out
Trying 74.125.25.109...

こうなったらOP25Bの影響を受けています。
⌘(command)+. あるいは control+c で止めましょう。

587番ポートなら接続可能です。

$ telnet smtp.gmail.com 587
Trying 74.125.25.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP n11sm6774215pby.67
quit

SMTP AUTHの設定

プロバイダの…と書いていますが、自サーバのメールサーバ使った設定にしてしまいます。
※プロバイダ経由の場合の設定ははココが参考になると思います。

  • 自分のための日記: Mac OS X で mail コマンドでメールを送る
  • $ sudo vi /etc/postfix/sasl_passwd
    [smtp.clicktx.jp]:587 myname@clicktx.jp:password
    
    $ sudo postmap /etc/postfix/sasl_passwd

    ※ /etc/postfix/sasl_passwd.db というファイルが出来ます。

    main.cfの設定

    postfixの設定ファイルmain.cfを編集します。

    $ sudo vi /etc/postfix/main.cf

    該当箇所に追記or修正

    relayhost = [smtp.clicktx.jp]:587

    最終行に追記

    # Enable SASL authentication in the Postfix SMTP client.
    smtp_sasl_auth_enable=yes
    smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options=
    smtp_sasl_mechanism_filter = plain

    postfixの起動またはリロード

    $ sudo postfix start
    $ sudo postfix reload

    メール送信テスト

    $ mail xxx@hoge.com(宛先)
    Subject: テストメール
    テストメール
    .

    参考

  • Postfix から Gmail 経由でメールを送る – 冒険するコンピューティング
  • Gmail Email Relay using Postfix on Mac OS X 10.5 Leopard « Riverturn Blog

  • Filed under: Mac,postfix,開発環境

    Trackback Uri






    2012年 12月 2

    今回の開催は11月23日勤労感謝の日。日頃勤労している皆様、ご苦労さまです。

    今回はピンクな方にボイスメモ頂いたのでそれを元にレポート書きたいと思います。

    はじめに

    その一 献本

    Googleアナリティクス基礎講座 を著者ご本人さまからの献本頂いたようで、じゃんけん大会が開催されました。
    参加者全員で主催とじゃんけん。一発目のじゃんけんであいこになり、見事敗北…。
    本、欲しかったです。

    そのニ 群馬Ruby会議の告知

    来春、初の群馬Ruby会議が行われる、との事。
    参加者の中に係る方が数名いらっしゃるとの事で、中には対談予定がある方も。
    Ruby使う方はもちろん、使ってみたい方や使わない方も要注目です!

    レポート

    以下簡単ながらレポートさせて頂きます。

    「Android:JS」 LT @ivoryworks さん

    Androidアプリを作ったよ、作る過程こんなんだったよ、というお話。Android:JS。てっきりJavaScriptだと思っていました。ダマサれました。悔しいです。

    ほとんどの時間(でもないか?)はマンガ読んでたっていうLTはなかなかありません。でも、地道な作業が実を結ぶ、と。

    データ構造には時間をかける。データ構造ダサいとダサいバグにいつまでも引っ張られる。

    実に耳が痛い話。実は前々から行き当たりばったりが多くて、今回作ったものは考えながらやってみたので割りとタイムリーでした。DBのテーブル構成とかER図を書いてみたりしたので。

    実はこのアプリ、魔法のプログラムらしいです。詳細はスライドを見て頂くとしても、
    G(ry の見せ方がとてもうまかったです。すごい!

    Androidが無いので試せないのが残念。あ、iPhone版作ればObj-Cの練習になるかも知れないな。ゴゴゴゴ。

    「おとなのテキストマイニング」 LT @pinktx_jp

    レポなしです。暇な方は以下から
    ※R18指定 Gunma.web #11でLTしてきました「おとなのテキストマイニング」

    「やさしいHTML」 LT @yterajima さん

    JIS8314-3という規格の話。
    Webアクセシビリティに関する規格?企画、設計、検証、保守、運用、デザイン、テスト等すべての項目がチェックの対象となり、A、AA、AAAと3段階の等級があり、公的なサイトは段階を踏んで対応していく必要がある、との事。

    例として

    • 画像の場合ALTを指定することが必要
    • フォームバリデーション: 赤くするだけではなくテキストのアラートが必要
    • ブロックスキップを実装する: CSSで消してもおkという謎

    が挙げられていました。

    • 行政の話は内密に!
    • pdfを読み漁って勉強すると半年掛かるので本買った方がいいよ!

    という、全然やさしくないHTMLのお話でした!
    冒頭にgit,githubの勉強会企画中の告知がありましたが、勉強会参加させて頂きます!

    「sass less を使ってみて..」 LT @kanayannet さん

    CSSを作成するライブラリless、sassのお話。

    • ミックスインや変数、関数なんかを使ってCSSが書ける。
    • 若干の違いはあるけれど、ほぼ同じように使える
    • 学習コストは同じくらい
    • コマンドからCSSを生成
    • lessの場合はJSで動的コンパイル出来る
      • でも、JS有効でない場合は…

    どっちを使うかは使っている環境に合わせてお好きな方で。例として

    • RoR => sass
    • bootstrap => less

    フレームワークからは動的に変換されるらしいです。また、CSS <-> less(sass)と可逆可能というのは驚きました。

    実はless、もっと簡単に使えるのだと思っていて諦めた記憶があります。コンパイルしてCSSファイル作ってアップロードって手順が妥当なのでしょうか。

    1からスタイルシートを作り上げる場合を除けばなかなか使う機会に恵まれないかも知れません。というのも、個人的にはブラウザで確認しながらちょこちょこCSSを調整して仕上げていくタイプなので。

    変数、関数は非常に便利そうなんだけどなぁ。

    「(´・ω・)としたーは衰退しました」(Twitter APIの話) LT @parrot_studio さん

    新しくなったTwitter APIでどんなことが起きるか?というお話。

    • 9月から v1.1へ移行
    • OAuth必須になる
    • JavaScriptで書いたものは?
    • OAuthのキーをベタ書きしなくてはならない
      • キーが丸見え
    • 対策 サーバサイドにキーを置いてごにょごにょする
      • ブラウザだけで動かなくなる
    • 検索APIは v1.0でも使える!
      • ただし、v1.1だと出来る事が増える
    • ディスプレイガイドライン
      • v1.1から必須
    • APIの制限事項に関してはクライントアプリが問題になってくるケースが増える。
      • 10万人制限
      • 開発中止も
    • twitter変わってきている?

    「(´・ω・`)ショボーンとしたー」はJSで書かれたアプリですが、このアプリにはさほど影響が無かった。むしろクライアントアプリには大きな影響が出ています、と。

    個人的にはクライアントは公式のものしか使っていませんのであまり実感ないのですが、新しいクライアントアプリは開発しにくくなったのだな、というのは理解しました。

    最近つくったアプリがtwitterのOAuth認証でログインする機能を実装しているのですが、ここには影響無いようです。

    スライドで使われているタイマー?的な 亀さん は便利そうです(rabbitと言うそうです)

    「JavaScriptやろうぜ!(新しめのJavaScriptのはじめかた)」 LT troisvierges さん

    JavaScriptのフレームワーク(?)Meteorのお話。
    http://meteor.com/

    backbone、bootstrap、coffeescript、jQuery…etcとパッケージになっているようですね。node.jsも入ってるそうです。JSでwebアプリを作るには面白そうです。

    JavaScriptに対してあったイメージ

    • jsこわい
    • xss出来ない
    • jQueryはちょっと違う
    • ブラウザ無いと何も出来ない
    • db使えない

    XSSはJSONPで一応出来ますよー。←クロスドメイン

    Meteorのいいところ

    • curlでインストール。1行。
    • デプロイ簡単

    インストール簡単ってだけで試したくなる不思議。でも、大事かも。確かに環境作るだけでウンザリすること多々あります。

    ちょっとアレなところ

    • meteor.com を使ってのデプロイは特に簡単だけどセキュリティー的には?
    • 日本語の情報は少ない

    注目しているものはスタックオーバーフロー

    エンジニアのためのQ&Aサイトのようです。エイゴヨメナイ。検索するとよく出てきますよね。そう言えばBootstrapのTipsは読んだ記憶があるような…。

    ところでtwitter idの @troisvierges さんって本人さんでしょうか??フォローしようと思ったけどちょっとこわいのでヤメておきました。

    「魔法少女のまど☆ワーカー」 発表/10分 @tsurumau さん

    ワルプルギスの夜にかけて「ワープアですの夜」と言いたかっただけのLT。

    ウソです。
    魔法少女まどか☆マギカのストーリーになぞってフリーランスとはどんなものかというのを解説したお話。
    原作を知らないのでツボが分かりませんでした。残念。

    経営って面白く感じる人ももちろんいるのでしょうけど、エンジニア目線で見ればきっとツマラナイ。作る事に生きがいを感じるならば会社員の方が絶対いいと思います。個人的意見ですが。

    魔女=クライアントではない??クライアントなら領収書は有効になりそう。魔女は一体何者なのか?
    社会保障に関してはフリーでやっていく上で苦労することの一つ。
    経費にできるものは少ない。

    ところでアップされているスライドはなんと手書きバージョンwww
    途中から若干手抜きが目立つ気がしなくも…ないw

    2次会and…

    2次会はキートンで食事をしながらワイワイガヤガヤ。いつもよりお客さんが少なかったようで、1時間ほど長い懇談でした。

    3次回はT駅のオシャレな喫茶でドヤリング大会。エスカレーターから羨望の眼差し(白い目)だったようです。

    4次回はドラえもんのファミレスで深夜までボーイズトーク。ファミレスでこのコーヒーおかわり自由とはスゴイ。

    ウラ話も聞けて驚きの一日でした。が、翌日はキキました(汗
    大の大人がなにやってんだかって感じですが、新し刺激も受けて大満足な一日でした。

    関連リンク

    発表のスライド等のリンクは以下のリンクから閲覧できます。


    Filed under: 勉強会

    Trackback Uri