2011年12月20日火曜日

Amazon Route 53 導入

これまで、ドメインを取得したレジストラが提供しているいるDNSサーバを使用していたが、レジストラごとにインターフェースや記法が異なるなど使い勝手がよいとは言えなかった。この問題への処方箋として、Amazon Route 53を導入してみた。

DNSレコードの編集は、FirefoxアドオンであるR53 Foxを使うのが便利。一度設定してしまえば、少ない手順でDNSレコードを編集でき、入力内容に形式的な誤りがある場合はエラーを報告してくれる。ただしインターフェースが直感的とは言えず、エラーメッセージも分かりにくいのでので、初めて使用する際は下記リンクなどを確認したほうがよい。記法は生のDNSレコードに近いので、慣れてしまえば変にインターフェースでラップされているより使いやすい。
  • suz-lab - blog: "Route 53"&"R53 Fox"で"Google Apps"のメール設定
    • R53 Foxを使ってGoogle Appsのメール設定を行う手順について詳細に記述されている。MXレコードやTXTレコードの具体的な設定方法や注意点が書かれており、Google Appsを使わない場合でも参考になる。また、設定手順だけでなく、nslookupによる設定内容の確認方法が書かれているのがすばらしい。

2011年12月16日金曜日

どうしてiEverwordを作ったのか? (2)

前回のエントリでiPhoneで使える単語帳が欲しかったと書きましたが、iPhoneで使える単語帳なら他にも沢山あります。それにもかかわらず、iEverwordを作ったのはどうしてなのか?その大きな理由のひとつは、単語帳に単語を登録する手間にあります。

単語帳アプリへの単語の登録は、できるだけ簡単に済ませたいですよね。個人的には、英語のドキュメントはWebブラウザや電子書籍で読むことが多いので、iPhoneでひとつひとつ単語を登録するのではなく、WindowsやMacなどのパソコンから手間をかけずに登録したいところです。

iPhoneアプリでも、CSVファイルやタブ区切りファイルからのインポート・エクスポートをサポートしているものはありますが、単語を登録するたびにインポート・エクスポートするのは面倒ですし、ファイルの修正を誤ると正しく読み込めなくなる、最新のファイルがどれか自分でもわからなくなってしまう、など管理も大変です。

また、自分で登録した単語帳のデータは、万一に備えてバックアップしておきたいところですが、頻度や保存先などを真面目に考えだすと、バックアップも結構面倒なものです。

Evernoteに単語を登録することで、これらの悩みを解消することができます(Evernoteをご存知ないかたは、こちらをご参照ください)。Evernoteクライアントは色々な端末に対応しているので、iPhoneだけでなくPCやMacからも単語を登録できます。また、Evernoteクライアントがインストールされていなくても、Webブラウザが使えれば、Evernoteにサインインして単語を登録することもできます。

Evernoteクライアントで登録した単語は、同期ボタンを押すとEvernoteのサーバに保存されるので、バックアップの心配も必要ありません。複数の端末にEvernoteクライアントをインストールして定期的に同期しておけば、仮にEvernoteのサーバからデータが消滅したとしても技術的には復元が可能です。つまり、Evernoteに単語を保存しておけば、単語帳のデータを失う可能性はまずありません。

Evernoteへの単語の登録も簡単です。ノートのタイトルに英単語を、本文の1行目に単語の意味を書いて保存するだけです(2行目以降には、必要に応じて例文などを入れておきます)。特にEvernoteのWebクリップ機能を使用できるWebブラウザでは、より少ない手間で単語を登録できます。

これで単語をどんどん登録していくことができるようになりました。ただ、Evernoteクライアントは、登録した単語の復習にはあまり向いていません。ということで、どうしてもEvernoteに保存した単語を復習できるiPhoneアプリが欲しかったのです。

なお、iPadユーザなら「Peekがあるじゃないか」と思うかも知れませんが、英単語の復習という用途にはあまり向いていません。そのあたりについては、別のエントリで書きたいと思います。

2011年12月15日木曜日

pymox

Google謹製のPython用モックオブジェクトフレームワーク。インストールはeasy_installが便利。
easy_install mox

Pythonではモジュール名などにハイフンを使わないのが無難

Pythonでモジュール名やパッケージ名にハイフン(-)を使うと、ハイフンが引き算の演算子と解釈されて普通にimportできなくなる模様。

無理やりimportするには、imp.load_moduleかimp.load_sourceを使用する。imp.load_sourceを使用する例は、以下の通り。

import imp
git_ftp_mod = imp.load_source("git_ftp_mod", "git-ftp.py") 

ただし、imp.load_sourceは後方互換性のためのメソッドで、非推奨とのこと。

似たような問題はGroovyでも経験したことがあり、いわゆるスクリプト系の言語ではモジュール名などにハイフンを使わないのが無難と思われる。

SEOと301リダイレクト

SEO対策の基本については『SEO基本技術のチートシート(トラの巻)を作ってみた | Web担当者Forum』がよくまとまっているが、ここの記述をもとに、wwwなしのURLからwwwありのURLに301リダイレクトを設定した場合、ドメイン名のみでアクセスした時に限ってリダイレクトされない。

具体的には、http://example.comのように、example.com の後ろに何もつけずにアクセスした場合に、http://www.example.comにリダイレクトされない。

RewriteRuleの記述を以下のように書き換えると、ドメイン名のみでアクセスしても301リダイレクトされるようになった(RewriteRuleの直後を「^/(.*)$」から「^(.*)$」に修正している)。
RewriteCond %{HTTP_HOST} ^localhost [NC]
RewriteRule ^(.*)$ http://www.localhost/$1 [L,R=301]
なお、301リダイレクトが正しく設定されているかの確認は、下記サイトから行うのが便利。

どうしてiEverwordを作ったのか? (1)

先日、Evernoteと連携する単語帳iPhoneアプリ、iEverwordをリリースしました。そもそもこのアプリを作ったのは、自分が欲しかったからなのですが(笑)、それだけではあんまりなので、このアプリを作ろうと思った動機について書いてみようと思います。

唐突ですが、みなさん英語の語彙をどうやって増やしていますか?今では、選ぶのに困るほどたくさん英語の単語集が書籍として出版されているので、それを買ってきて学ぶのもひとつの方法だと思います。実際、効率は一番いいかもしれません。もし、続けられるのなら・・・。

まあ、個人的にずぼらなだけかもしれませんが、書籍の単語集を持ち歩くのはやってみると結構大変です。肌身離さず持っているには重すぎますし、満員電車の中では単語集を開くのも大変、仕事帰りで疲れていると開くのもおっくうになりがちです。

でも、もしiPhoneに単語集が入っているなら、これらの問題はほとんど解消することができます。ということで、どうしてもiPhoneで使える単語帳が欲しかったのです。

でも、iPhoneで使える単語帳なら他にも沢山あります。それにもかかわらず、iEverwordを作ったのはどうしてなのか?そのあたりについては、別のエントリで書きたいと思います。

2011年12月14日水曜日

Textile Wiki記法

Mylyn WikiTextを試用中。WikiTextがサポートするWiki記法のひとつであるTextile記法については、下記サイトが参考になる。

2011年12月13日火曜日

iEverword リリース

Evernoteと連携した単語帳iPhoneアプリ、iEverwordをリリースしました。詳細は、下記リンクをご参照ください。

2011年12月8日木曜日

iPhoneアプリ申請完了

作成していたiPhoneアプリの申請が完了。審査の間にサポートサイトのコンテンツを考える予定。