メールアドレスが「正しい」とは?

本日、無印良品にて、静音サーキュレーターでも買おうと思って、会員登録を試みた。私はGmailでいくつかのメールアドレスを使い分けている。とはいっても、複数のアカウントを持っているのではなく、ローカル部のプラス記号以降の文字列を無視して、プラス記号前の名前として扱う機能、(エイリアスと呼ぶ)を利用している。
広告と受注確認メールが中心のショップ等への登録はそれ用のエイリアスを使っているのだが、なんと、前述のサイトでは+記号を含むと「正しくないメールアドレスです」と言い放つのだ!
メールアドレス - Wikipedia
いや、実在するアドレスだし、規格上もなんの問題もなく存在するんですが。どこぞのローカル部連続ドットとは訳が違う、完全に正当なメールアドレスだ。
実は、似たようなことは何度か経験しているが、何度見ても腹立たしく、そして同じ技術者として悲しい思いを受ける。
メールアドレスを作るんじゃなくて、すでにあるメールアドレスを登録する時に、RFCより厳しい制限をつけるのは絶対にやめましょう。
なお、普通こういう状況では、登録しようとした本人のメールアドレスであるかを確認するために、確認メールを送信する。「正しい」メールアドレスというのは、本人が使用しているメールアドレスだからだ。
であれば、面倒なメールアドレスチェックを自分で実装するのではなく、確認メール送信時にライブラリが出すエラーだけで判断するのも一つの手だ。もしもエラーが出ず、登録しようとした人に届かなかったら? それはただの打ち間違いかもしれない。
以上、うっかり自分でやってしまわないよう、ここに記録するものである。

Googleリーダー使用中

スマートフォン導入の動機が「ツイッターに張られたURLを確実に見たい」「ださい携帯式文字入力が嫌だ」だったため、それ以外の利用方法はいろいろ試している状態だ。さて、いろいろ試している中でも気に入っているのが、GoogleリーダーAndroidクライアントアプリだ。

もともとはGoogleリーダーは使っていなかったが、何度かフィードリーダーは試したことがある。ただ、ブラウザの拡張とかで使っていたので、端末が固定されてしまうから、家でしか見れず、続々とたまるアイテムにうんざりしてやめてしまうこと数度。フィードを厳選したら、今度はなかなか入ってこなくて飽きてしまったりもした。

だが、スマホGoogleリーダーが組み合わさるとまた違った形になる。オンラインフィードリーダーならどれでも同じとは思うが、気になる情報がPCでもスマホでも読めて同期してくれるので大変うれしい。

というわけで、具体的な利用方法を紹介しよう。

続きを読む

IS03

Twitterでは話題にし続けていたが、Androidケータイに2月ごろに乗り換えた。
タイトルのとおりauのフューチャーフォン(ガラパゴス)機能つきのシャープのIS03だ。
もともと、ガラパゴスケータイの旧態依然とした連打仕様の文字入力に強い不満を持っていたため、フリック入力orキーボード入力が出来ることが最大の要求で、次におサイフケータイを使っているので、それが2点目。あと携帯用メールアドレスが変わるのが嫌だったので、キャリアも変えずにとりあえず使えそうなこいつにした、というわけである。

さて、調べればいくらでも出てくるが、結構残念なやつだ。挙げると切りがないので、致命的と思える弱点をあげておこう。

続きを読む

延々とページを取得しようとするスクリプト

ちょっとした用事で作ったスクリプト
正常なレスポンスを返すまでひたすらリクエストを送る。
異様に重くてまともに接続できないサーバーで、ひたすらリロードを押す手間が省ける。

require 'mechanize'

class Downloader
  def initialize(options={})
    @retry = options[:retry] || 1
    @interval = options[:interval] || 0
    @agent = Mechanize.new
  end

  def get(uri)
    @retry.times do |n|
      sleep(@interval)
      begin
        puts "try #{n} for #{uri}"
        return @agent.get(uri)
      rescue Mechanize::ResponseCodeError
        # retry
      rescue Errno::ETIMEDOUT
        # retry
      end
    end
  end
end

Ruby: MechanizeでPixivを見る

Ruby Mechanizeは便利すぎる - G.U.Nexの日記 -
で前に貼ってたライブラリを改修してみた。
というか、何度か変更が入ってたのでその対応と、http://doc.ruby-lang.org/ja/1.9.2/library/forwardable.htmlの存在を思い出したので修正。

追記

そういえば、下の方におまけで付けてるメソッドがあったのをそのまま貼ってしまった。まあいいか。

続きを読む