Mojolicious::LiteのスクリプトをCGIで動かす
以下のスクリプトをtest.plという名前で保存します。
#!/usr/pkg/bin/perl use lib '../lib'; use Mojolicious::Lite; get '/' => 'index'; get '/info' => sub { my $self = shift; $self->render(text => 'info page.'); }; shagadelic('cgi'); __DATA__ @@ index.html.eplite <html> <head><title>Test</title></head> <body>Mojolicious::Lite test.</body> </html>
WebサーバがApacheの場合、CGIとして起動する際には
http://localhost/~hiramatsu/test.pl
では「get '/'」がマッチせず「File not found.」が表示されます。
http://localhost/~hiramatsu/test.pl/
と最後にスラッシュ(/)を付加すると「get '/'」が呼び出されます。infoは
http://localhost/~hiramatsu/test.pl/info
でも大丈夫。
ブラウザ検出とOpera
10 is the oneの話が面白いです。
WebアプリケーションではJavaScriptを使ったりサーバ側のプログラムで、WebブラウザのUser-Agentを見て動作を切り替える場合があります。
この前Opera バージョン10 のアルファ版がリリースされましたが、User-Agent中のバージョン番号に1桁の数字しか想定していないものがあり、Opera/10.00を解析しようとすると「Operaのバージョン1」として扱ってしまうものがあるそうです。
コメント欄で少し議論がありましたが
- ・16進数の「A」とかローマ数字の「X」は?
- 確かに1桁だけど、「6以上」のようなWebアプリ側のチェックをパスできない
- ・Opera/9.99 [10.00]のようにするのは?
- こういうハックに依存してしまうと、いつか Opera/9.99 [10.00][really 11.00][actually 12.00][OK_I_lied_it's 13.00] みたいなUser-Agentが必要になってしまう
ということで、やっぱり10にしたいらしい。
最近見てる videopodcast
CSS-Tricksのvideo screencast(http://css-tricks.com/videos/)
CSSの書き方の説明やWebサービスの紹介等、Webデザイナー向けのトピックが色々です。内容は本当に「色々」なので、必要と思われるところを適当に拾って見て下さい。
WiredのGadget Lab(http://www.wired.com/video/gadgets)
Wired.comの編集者がデジタルカメラ・ノートPC・携帯電話など新しいガジェットを紹介します。T-MobileのG1は、Androidは良いんだけどハードウェアはあまり好きじゃないそうです。
Mac Automation Made Simple(http://www.peachpit.com/podcasts/channel.aspx?c=75c14580-d158-4574-9949-ea733af77766)
Automatorの解説。私はAutomatorをあまり使ってないのですが、活用のヒントが見つかればと思って聞いています。
HTML5で導入予定のvideo要素について
HTML4ではimg要素で画像ファイル(pngやjpg)を埋め込むことができますが、これと同じように動画(movやmp4)をHTMLに埋め込めるようになります。
動画を表現する要素をHTMLが直接サポートすることで動画を調節するパラメータをHTML中に書いたりJavaScriptから操作できるようになるため、HTML4までで使われていた「objectタグ、またはembedタグとプラグイン」という方法に比べてWebアプリケーションでの動画の扱いが便利になるはずです。
videoを使ったサンプルとか
- Firefox
- http://builder.japan.zdnet.com/sp/firefox-3-for-developer-2008/story/0,3800087566,20379994,00.htm
- Safari
- http://webkit.org/blog/140/html5-media-support/
- Opera
- http://dev.opera.com/articles/view/a-call-for-video-on-the-web-opera-vid/
あと http://homepage.mac.com/jgoamakf/d.hatena.ne.jp/20081026/index.html にニコニコ動画風にコメントを流せる動画プレーヤーを作ろうとして、途中で力尽きたのを置いておきます。いろいろ調べているうちに疲れてしまった。
DropboxとEmacs
Dropbox上のテキストファイルをEmacsで直接編集してしまうと
- バックアップファイル(ファイル名の最後に~が付いたもの)
- 自動保存ファイル(ファイル名の前後に#が付いたもの)
がDropboxに作られてしまうので、これを避ける設定を探してみました。Mac OS XのCarbon Emacsで確認しています。
「Dropbox」がパスに入っているファイルにはバックアップを作らない
(setq backup-enable-predicate (lambda (name) (not (string-match "Dropbox" name))))
「Dropbox」フォルダ以下のファイルの自動保存は、/tmp/jgoamakf/以下に作る。
(setq auto-save-file-name-transforms '((".*/Dropbox/.*" "/tmp/jgoamakf/\\1" t)))