2012年5月23日水曜日

Google日本語入力のショートカットキーを変更(Mac)

VMware Fusion上のEclipseでCtrl+Shift+Rがなぜか効かなかったので調べた所、どうやらMac側のGoogle日本語入力の「再変換」とかいう使ったこともないものにデフォルトで設定されていたため、Google日本語入力に横取りされていた。

迷惑なだけなので無効化する。

システム環境設定→キーボードショートカットのアプリケーションの項目で「+」を押して新規追加ダイアログを開く

以下のように入力して追加

  • アプリケーション:全てのアプリケーション
  • メニュータイトル:再変換
  • キーボードショートカット:絶対使わないようなもの(Cmd+Ctrl+Alt+Shift+Qとかw)

これで無事VM側にCtrl+Shift+Rが伝わって、EclipseでOpen Resouceができるようになった!

2012年5月22日火曜日

CygwinのgitからgithubにSSHでアクセス

CygwinでインストールしたgitでgithubのリポジトリをSSHでクローンしようとすると以下のようなエラーが出てうまくいかない。

ssh: Could not resolve hostname github.com: Non-recoverable failure in name resolution

どうやらCygwin最新版のopenssh(5.5以上?)だとCygwinでインストールしたgitからgithubにうまくSSHでアクセスできないことがあるようだ。

http://stackoverflow.com/questions/1493645/git-fatal-remote-end-hung-up

解決策として、代わりにplink(Puttyについてくるやつ)をGITが使用するSSHプログラムとして指定するとうまくいった。

以下簡単な手順。

  1. Puttyをダウンロード。

  2. PUTTYGEN.exeでパブリックキーとプライベートキーを生成、保存。

  3. Githubにパブリックキーを登録。

  4. PAGEANT.exeを起動してプライベートキーを読みこませる。

  5. PUTTY.exeでgithub.comにgitユーザでアクセスできるか確認。

  6. GIT_SSH環境変数にPLINK.exeのパスを指定。

これで無事にSSHでgithubのリポジトリにアクセスできれば成功。

PAGEANT.exeが起動していない状態でgithubにSSHアクセスすると”FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)”と言われるので注意。

参考URL: http://help.github.com/ssh-issues/

2012年5月18日金曜日

GAEで動くプロキシサーバを使ってDropboxのホスティング環境に独自ドメインでアクセス

DropboxのPublicフォルダにファイルを置くと、そのファイルは一般に公開されます。

従って、HTMLファイル等をPublicフォルダに置くだけで、Dropboxを簡易ホスティング環境として使用することができます。

やり方はDropbox 活用術 PART3 – ホスティングとして利用 | Technolog.jp - ICTウェブマガジンを参照して下さい。

ただし、上記サイトにもある通り以下の制限があります。

  • 独自ドメイン使用不可
  • サーバサイドスクリプト使用不可

サーバサイドスクリプトはどうにもなりませんが、独自ドメインの方はいくつか解決策があります。

DropboxのPublicフォルダにindex.htmlを置いた場合、このindex.htmlには'http://dl.dropbox.com/u/1234567/index.html'というURLでアクセスできます。

1234567はDropboxのユーザ番号です。Publicフォルダのファイルのパブリックリンクを見ることで分かります。

従って、ここに'http://example.com/index.html'でアクセスしたい場合、'http://example.com/'へのアクセスを'http://dl.dropbox.com/u/1234567/'に転送しなければなりません。

DNSを直にいじれる環境ではApacheのリバースプロキシやmod_rewriteを使ってどうにでもなりますが、お名前.comのように設定項目が制限されている環境ではこの方法は使用出来ません。

DNSのCNAMEやお名前.comのURL転送ではドメイン部分に続くディレクトリの指定(/u/1234567/など)ができないからです。

今回はこの問題を解決するために、GAE(Google App Engine)で動作するプロキシdropbproxを使いました。

GAEは独自ドメインが使用できるので、独自ドメインで一旦GAE上のプロキシにアクセスし、そこからDropboxのPublicフォルダにアクセスするという仕組みです。

元のdropbproxではディレクトリにアクセスした際にindex.htmlを自動的に表示する機能がないため、今回dropbproxに少し手を加えて'http://example.com''http://example.com/'のようにディレクトリを指し示すURLは、そのディレクトリのindex.html(http://example.com/index.html)を表示する機能を付け加えました。

GAEに詳しくない方はチュートリアルをひと通りこなしてみてください。

設定手順は以下の通りです。

  1. GAEでdropbprox用のアプリケーション作成

  2. カスタマイズしたdropbproxをダウンロード(Google Project HostingからMercurialでもダウンロードできます)

  3. 解凍してapp.yamlとmirror.pyを以下のように編集

    • app.yaml
      • appidを1.で作成したアプリケーションIDに設定。
    • mirror.py

      • DROPBOX_USERに上で説明したDropboxのユーザ番号を設定。

      • DIRECTORIESにindex.htmlを自動的に付加したいディレクトリパスのリストを設定。必ず/から始まる必要がある。例えば’/dir/hoge’と設定しておくと、http://example.com/dir/hogeにアクセスした時にはhttp://example.com/dir/hoge/index.htmlが表示されるようになる。

  4. アプリケーションをローカルでテストしてちゃんとページが表示されるか確認。

  5. アプリケーションをデプロイ。

  6. Google App Engineで独自ドメインを使う - Shin x blogを参考にGAEに独自ドメインでアクセスできるように設定(GAEはexample.comのようなnaked domainからはアクセスできないので、さらに独自ドメインを転送する - Google Apps ヘルプを参考にwww.example.comに転送設定しておく)

以上、かなり面倒ですが全て無料で独自ドメインを使ったDropboxによるホスティングが実現できました。

Dropboxによるホスティングはファイルを変更すればFTPを使用しなくても即座にアップロードされますし、自動的にバージョン管理もしてくれるのがいいですね。

ただ、一度プロキシを介するせいかレスポンスはあまりよくありません。

まあ個人レベルのちょっとしたサイトにはこれで十分でしょう。

アクセスが多いサイトはちゃんとしたホスティングサイトを使用して下さい。