2010/03/06

ウェブサイトを1つのデスクトップアプリケーションっぽく起動できる「Prism」を試してみた


Mozilla Labsで公開されている「Prism」を試してみました。このアプリケーションを使うと、タイトル通り、ウェブサイトをデスクトップアプリケーションっぽく起動できます。主な機能はhttp://prism.mozillalabs.com/features/で紹介されています。

使ってみる
FirefoxのAddon版と、Firefox無しでPrismが使えるスタンドアローン版が用意されているみたいです。スタンドアローン版はWindowsとMacに対応しています。僕はスタンドアローン版を使いました。FirefoxのAddon版は、たぶんWindows版のChromeに実装されている「アプリケーションのショートカットを作成」機能に近いものだと思います。Mac版Chromeにも早く実装されて欲しいなと思っていましたが、Prismがあれば不要かも知れません。

インストール
http://prism.mozillalabs.com/started/からスタンドアローン版をダウンロードして、適当にインストールします。

Prismを起動
インストールしたPrismを起動すると下の画像のようなウィンドウが表示されます。
URL
起動したいウェブサイトのURLを入力します。
Name
起動した際のアプリケーションの名前を入力します。
「Show navigation bar」と「Show status message and progress」
下の画像のバーを表示するかしないかのチェックボックスです。
Enable navigation keys
よくわかりませんでした。
Create Shortcuts
ショートカットを作成するかしないかという設定です。ここで作成されるショートカットの名前は「Tumblr.app」のようになります(Macの場合)。クリックすると既定のウェブブラウザが起動するショートカットではありません。
Icon
アプリケーションのアイコンの設定ができます。アイコンのデフォルトはFaviconで、command+Tab (WIndowsではAlt+Tab)を押したときとかMacのDockに表示されたときにアイコンがぼやけるので、解像度の高いアイコンをここで設定するときれいかも知れません。

ウェブサイトを起動
設定を終えると自動でウェブサイトが起動されます。「status messages and progress」
のバーを表示させている場合は、そこからフォントの設定やプロキシの設定、印刷ができます。あとAddonの設定もできるようですが、その前にAddonの追加方法がわかりませんでした。
まとめ
Prismを使えばウェブブラウザを起動せずとも指定したウェブサイトを見ることができます。「もはやこれはデスクトップアプリケーションですよね」みたいなUIのウェブアプリケーションに使用すると効果的だと思います。

2010/03/03

Posterousに投稿できるChrome Extension「Posterous for Chrome」をインストールしたよ


タイトル通り。Posterousに簡単に投稿できる方法が無いかなーと思ってExtensionを探したら見つけました。最近ギャラリーに追加されたっぽいです。

Posterous for Chrome - Google Chrome extension gallery

機能はたぶんPosterousが提供しているブックマークレットと同じだと思います。つまり、
  1. Extension(ブックマークレット)を呼び出すと投稿フォームがその場にポップアップ表示される
  2. ページ内の画像や動画を選択して投稿できる
  3. ページ内の文章をマウスで選択→引用して投稿できる
  4. 1と2に自分のコメントが付加できる
という機能が備わっています。まだあんまり使ってないからこのくらいしか知らない…^^;

「ブックマークレットと同じ機能ならブックマークレットで良いじゃない」などと思われそうですが、ブラウザのブックマークバーを表示しなくても1クリックで投稿フォームが表示できるのは便利だと思います。Chromeのブックマークバーはロケーションバー(で呼び方は合ってるのかな?URLとExtensionのアイコンとかが表示されてるバー)の下に1段まるまる使って表示して、ブラウザの表示スペースを狭くするから好きじゃないんですよね。その点Firefoxはブックマークバーの位置を移動できるので良いと思います。他のブラウザはよくわかりません。

あ、あと、ポップアップされた投稿フォームの右下にある「Advanced Options」から、
  1. タグの追加
  2. 投稿の公開非公開の選択
  3. Autopostするかどうかの選択
ができるのは便利だと思います。特に「タグの追加」が個人的には一番嬉しくて、Bloggerに手軽に投稿できるChrome Extensionに欲しいなあと思っていました。Extensionを使ってその場で投稿した後、わざわざその投稿された記事のページに行ってタグの追加をするのは面倒なので。

というわけで「Posterous for Chrome」を使って興味深い画像などにコメントを付けて楽しみたいと思います。

2010/02/26

Clojureのcontains?関数

contains?関数はコレクションにキーが存在するかどうかを確かめるために使う。
> (contains? {:h "hoge" :f "fuga"} :h)
true
だから下のコードのように値の存在を確かめることはできない。
> (contains? ["hoge" "fuga"] "hoge") ; 値を指定
false
> (contains? ["hoge" "fuga"] 0) ; キーを指定
true
値の存在を確かめるにはsome関数を使うのが良さそう。
> (some #(= "hoge" %) ["hoge" "fuga"])
true
> (some #(= "hoge" %) (vals {:h "hoge" :f "fuga"}))
true
ただこの場合、存在しなかったときはfalseではなくnilが返ってくる。
> (some #(= "durarara" %) (vals {:h "hoge" :f "fuga"}))
nil
(contains? ["x","y"] "x") => false; Works as designed. This design confuses me. #clojure #novice
というTweetを見かけたので書いてみました。

追記(2010/02/27 00:06):
(some #(= x %) coll)の代わりになるincludes?という関数がclojure.contrib.seq-utilsに用意されていた。こっちのほうがスマートかも。
> (use '[clojure.contrib.seq-utils :only (includes?)])
nil
> (includes? ["hoge" "fuga"] "hoge")
true
> (includes? (vals {:h "hoge" :f "fuga"}) "hoge")
true
> (includes? (vals {:h "hoge" :f "fuga"}) "durarara")
false

追記(2010/02/27 00:38):
動作環境は、Clojure 1.1.0とclojure-contrib 1.1.0です。