スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 

フリーのクラウド - DropBox, Evernote

以前から、クラウドという言葉をよく見かけていたのですが、 よくわからなくてあまり気にかけていませんでした。 それが最近、フリーで使えるクラウドツールを見つけて、これがすごく便利だと気付きました。
その私が使っているクラウドツール DropBox, Evernote を紹介したいと思います。

クラウドを簡単にいうと、ネットを使って、会社、自宅の PC やスマートフォンで情報を共有して使えるシステムのことになります。
たとえば、 Google の G-mail のようなインターネットメールもクラウドで、 携帯や PC などで共通のメーラーを使えるような感じになります。
また、 Chrome で設定を共有する設定にすれば、 自宅や会社の PC でブックマークなどを共有することができます。

DropBox

ただ、こういった用途の決まったサービスだけじゃなくて、 PC にある通常のファイルなどを共有できたら、便利だろうな っと思っていたら、ありました。
それが DropBox で、 PC のフォルダーをネットを使って共有することができるようになります。
共有するように指定したフォルダーにファイルを置いたり、ファイルを更新したりすると自動でネット上のファイルも更新してくれます。

私は今のところ、ブログの原稿などを共有用フォルダーにおいて、 会社で休み時間に書いた書きかけの続きを家で書いたりとかしています。

他にも、プログラムの設定ファイルや IME, スペルチェックといった辞書を共有したり、 メモ帳代わりに使うタブレット PC のデータと同期したりといろいろ応用も出来そうです。

データの容量は 2G までで、それ以上の容量が欲しい場合は有料になります。 ただ、テキストや画像ぐらいであれば、十分な容量です。

追記
DropBox ではユーザーを増やすような作業をするとボーナスでちょっと容量を増やしてくれる といったサービスもやってました。

紹介によるボーナスもあり、 以下のリンクからアカウントを作成すると私の容量が 256M ふえるので、 まだアカウントを持っていない方は、こちらから作成していただけるとうれしいです。 紹介された方にも、 256M のボーナスがあるので、そのまま作成するよりもお得です。 Twitter や Facebook のアカウントを持っていれば、連携させたり、つぶやいたりしても容量は増えます。
最近ではベータ版のテストで容量を増やすというキャンペーンもやってます。(いつまでやっているのかはわかりませんが。)
Dropbox ベータテスト参加で追加 5GB を獲得するための手っ取り早い方法

Evernote

単にメモを共有するだけなら、 Evernote も使えます。 こちらは iPhone といったスマートフォンでも使えます。

また、はてなブックマークのように Chrome や Firefox の プラグインで、 URL などを簡単に記録することも出来ます。 (今のところ IE 用のプラグインはないみたいです)
はてなブックマークのように公開したくないけど、ブックマークを共有したいというときに使えます。

Evernote の場合は、広告を消したり、容量を増やす時に有料版にする必要があります。


SkyDrive

クラウドというよりもオンラインストレージに近く、 DropBox に比べると使いずらそうなので、 私は使ったことがないのですが、 SkyDraive という MS のクラウドもあります。これは無料で 25 G まで保存することができるので、 容量が必要な人にはこちらもいいかも知れません。

追記 2012-02-26
Windows 8 からは SkyDraive も使いやすくなりそうです。
スポンサーサイト
 

ブラウザで UNC パスのリンクをオープンする方法

Redmine Advent Calendar の 23 日目の記事として、 Firefox などのブラウザから UNC パスのリンクをオープンする方法について書いてみようと思います。
直接的には Redmine と関係はないですが、 私は Redmine を使っていると 共有 PC などへのリンクを張りたくなることが結構あるので、 知っていると便利かなと思います。

file URI と UNC パス

PC 内にあるローカルファイルをブラウザなどで表示すると file://D:/home/foo.html といったアドレスになります。 このアドレスは file URI といって、 URI の表記の一つです。
これは RFC で定義されていて、ブラウザでちゃんと扱える表記法なのですが、 http:// のページに張られているローカルファイル(file://)へのリンクは、 メジャーなブラウザの多くではセキュリティ上、クリックしてもリンク先を表示できないようになっています。 (ローカルファイルからローカルファイルへのリンクは可能です)
ローカルファイルへのリンクを開きたいということはあまりないのですが、 ネットワーク上の共有 PC へのリンクを開きたいということは良くあります。
ネットワークコンピューターへのパスは UNC パス といって \\comp_name\share_name\foo\bar.doc のような書き方をします。
これを file URI を使って書くと file://///comp_name/share_name/foo/bar.doc というようになります。
ただし、file URI のパスなので、 基本的にリンク先を開くことは出来ません。 これをブラウザで開くためには、ブラウザごとに対応する必要があります。

ちなみに \ を / に直したり、スラッシュを 5 つ書いたり、とパスをリンク表記に直すのは 若干面倒ですが、 Redmine では Wiki UNC プラグイン を使うと Wiki マクロで UNC パスのリンクが簡単に作成できます。
前回の Redmine Advent Calendar の記事 で Wiki マクロの作成方法を書きましたが、 ちょっとしたコードですごく便利なプラグインが作れというよい例じゃないかとと思います。 私も TestLink Link プラグイン を作る際に参考にさせていただきました。

Internet Explore

IE の場合は簡単です。
IE では PC 内のローカルファイルへのリンクは開けませんが、 UNC パスへのリンクでは何もしなくてもそのままオープンすることが出来ます。

Firefox


Firefox も少し面倒ですが、設定を行うと開けるようになります。

Firefox で GUI が提供されていない設定を変更するには user.js に JavaScript のコードを記述します。
http://level.s69.xrea.com/mozilla/index.cgi?id=aboutconfig

まず、 user.js をおく設定ファイルの場所ですが、OS によって変わります。 Windows では以下のようなパスになっています。
%AppData%\Mozilla\Firefox\Profiles\(ランダム文字列).default
Windows ではアプリケーションデータをおく場所が変わるため、バージョンによっても変わってきます。 ただし、環境変数が設定されていて %AppData% という % をつかった記述で値を取得することが出来ます。 %AppData%\Mozilla\Firefox\Profiles といったパスをそのまま エクスプローラーのアドレスに書くとフォルダーが表示できます。

firefox_profile.png

次に user.js ファイルを作成して、設定ディレクトリにおきます。
すでに user.js ファイルが存在している場合は、追加書き込みしてください。 また、 prefs.js に追記しても問題ありません。
内容は次のような記述になります。
user_pref("capability.policy.policynames", "localfilelinks");
user_pref("capability.policy.localfilelinks.sites", "http://foo.bar.co.jp");
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
"http://foo.bar.co.jp" を Redmine などのリンクを許可したいページのサーバーにしておきます。 複数ある場合はスペースで区切って記述してください。

後は Firefox を再起動すると開けるようになります。
http://webos-goodies.jp/archives/50214493.html

Google Chrome

Google Chrome では 複雑な設定をしたい場合は起動オプションで指定します。
http://chrome.half-moon.org/43.html

私は確認できなかったのですが、 --allow-file-access-from-files オプションを指定すると file:// のパスが開けるようになるようです。

追記
Windows 7 でも Chrome がインストールできるようになったので、確認してみたところ、 UNC ファイルは開けませんでした。
よくみるとローカルファイルからローカルファイルへのリンクを開くことができるようにするためのオプションでした。

Safari, Oprera など他のブラウザ

そのほかの Safari, Oprera なども調べてみたのですが、 これらは開けるように設定を変更する方法はないようです。
http://www.websina.com/bugzero/kb/browser-file-url.html
(リンク先に書かれている右クリックで [新しいタブを開く] という方法も 今のバージョンのブラウザはほとんどできなくなっているみたいです。)

こういったブラウザでも Drag&Drop を使えば、表示することが出来ます。
これはリンクをクリックするのではなく、 リンクを押した後、そのままブラウザのアドレスのところまでドラッグして、 離します。
この方法であれば、ほとんどのブラウザでオープンすることはできるのではないかと思います。

link_dd.png
 

ブラウザとレンダリングエンジン

最近のブラウザは html ファイルを描画する部分(レンダリングエンジン) がライブラリなどで分けられているものが一般的です。
よく使われているブラウザとレンダリングエンジンをまとめてみました。

使用、サイト制作

まずはレンダリングエンジンをブラウザの使用やサイト制作に関係するところでまとめてみます。

Trident - Internet Explore
IE のレンダリングエンジンは Trident と呼ばれています。
ブラウザとしてよく使われているのは IE ぐらいですが、 Windows アプリ開発で HTML 表示用のコンポーネントとしても提供されているので、 Windows では意外といろいろなアプリで使用されています。
Gecko - Firefox
Gecko は Mozilla Foundation で開発されているオープンソースなレンダリングエンジンです。
こちらも Trident のように他のアプリからも利用できるのですが、 少し使い方が特異なせいか、使用されているのは Firefox や Thunderbird といった Mozilla 製品ぐらいです。
WebKit - Google Chrome, Safari
Google Chrome, Safari のどちらもレンダリングエンジンは WebKit を使用しています。 これは Apple, Nokia, Adobe といった企業が中心となっている WebKit Foundation でオープンソースとして開発されています。 また、WebKit は iOS, Android の標準エンジンですので、モバイル用ブラウザではほとんど WebKit が採用されています。
さらに Linux の統合ディスクトップ環境である gnome の標準ブラウザ Epiphany も WebKit がレンダリングエンジンに使われています。 Linux には gnome のほかにもう一つ有名な KDE という統合ディスクトップ環境があります。 こちらのファイルマネージャ、ブラウザである KonquerorKHTML というレンダリングエンジンが使用されています。 WebKit はもともとこの KHTML から派生して作られています。
Presto - Opera
Opera のレンダリングエンジンは Presto という名前です。
任天堂 DS などにも使われているらしいですが、 モジュールとして公開されていないため、 ほぼ Opera だけで使われているレンダリングエンジンです。
追記 2013-02-14
Opera もレンダリングエンジンを WebKit に移行することになりました。
追記 2013-04-04
Chrome が WebKit から分岐した Blink になりそうです。 (ついでに Opera も) また、 Firefox もモバイル版だけかも知れませんが、 Survo 変わる可能性があります。

なぜ、ブラウザとレンダリングが分けられているのか

ブラウザとレンダリングが分けられている理由は HTML でどんどん高機能なものが求められるようになり、 HTML の表示機能を作るのが大変になっているというところにあります。

例えば、 ブラウザとメーラーを作っていて、 ブラウザだけでなく、メーラーにも HTML の表示機能を付けたいという時、 個々のアプリで実装するよりもブラウザからレンダリングエンジンを分けられるようにして、 それを共有した方が開発はやりやすくなります。
コンピューターを買うとき、どのくらい魅力的なアプリがあるかということが重要です。 Microsoft や Apple はレンダリングエンジンをモジュールとして提供することによって、 アプリ開発を促すことが出来ます。

また、 WebKit などは大変なところはみんなで作って、 それをみんなで使おうという発想から生まれています。

プラットホーム

IE の Trident 以外のレンダリングエンジンはすべてクロスプラットホーム対応です。
Windows, Mac, Linux といったディスクトップ用 OS だけでなく、 iOS, Android といったモバイル用の OS にも対応しています。 WebKit だけでなく、 Opera, Firefox でもそれぞれのエンジンを使ったブラウザのモバイル用が出ています。

標準対応と速度

使う点で考えた場合、気になるのは HTML5, CSS3 といった標準対応や表示速度ではないかと思います。
これらはバージョンや使っているブラウザによって変わってくるので、比較は難しいところです。 特に速度はブラウザに抜きにはできないのですが、ブラウザの比較であれば、 オンライン上の速度の測定(ベンチマーク)や比較結果を載せたサイトがあります。

HTML5, CSS3 についてもブラウザごとの対応状況を一覧にしてあるサイトがあります。

個人的なイメージだと Firefox が他のものに比べて頭一つ標準への対応が早い気がします。 ただ、 Firefox はフリガナの <ruby> のように対応しないものはいつまでもしないなというところもあります。
遅い方はというと、こちらは IE がかなり遅れてから対応している感じです。 しかし、 IE も自動アップデートするということなので、 Firefox のようなショートスパンでのリリースが期待できるようになるかも知れません。

CSS のベンダープレフィックス

まだ仕様が確定していない CSS の機能が実装される場合、レンダリングエンジンごとの ベンダープレフィックスが必要なことがあります。

レンダリングエンジン プレフィックス
Trident -ms-
Gecko -moz-
WebKit -webkit-
Presto -o-

例えばこのブログの記事のタイトルに使っているグラデーションの機能は CSS では次のように記述しています。

background: -moz-linear-gradient(top, white, silver);
background: -o-gradient(top, white, silver);
background: -webkit-gradient(linear, left top, left bottom, from(white), to(silver));

このプレフィックスは仕様が確定してくると付ける必要がなくなってくるので、 バージョンによってプレフィックスが外れたりします。 そのまま付けておいても問題はないのですが、いっぱい付けるのも面倒ですし、 どの機能にベンダープレフィックスをつけなければいけないのかというのが、 わかっていると便利です。
これをまとめてくれている非常に助かるサイトがあります。

Firefox で Trident を使う

昔は IE でないとちゃんと表示できないようなサイトが結構あったのですが、 最近では標準にあわせることの方が重視されて、そういうサイトは減ってきました。
しかし、 MSDN のような Microsoft のサイトを Firefox でみれないということがありました。 しかも、たちの悪いことに 最近の Visual Studio ではリファレンスなどのヘルプはネット上の MSDN をみるようになっていて、結構不便です。

Firefox では、 Gecko だけでなく、アドオンでレンダリングエンジンに Trident を利用することも出来ます。 これを使って私は MSDN のページは IE のコンポーネントで表示するように設定しています。

Lunascape - トリプルエンジン

そんなにシェアがあるわけではないですが、レンダリングエンジンに関してちょっと変わり種の Lunascape も紹介しておきます。
この Lunascape では Trident, Gecko, WebKit の 3 つのエンジンを切り替えて使えるようになっています。
こちらも前節のように状況によってエンジンを切り替えるという発想で生まれたブラウザです。

ただ、 3 つ使うという複雑なことをやっているせいか、重くてあまり評判はよくないみたいです。 しかし、ブログなどのサイトや Web アプリケーションなどを作っているときには 簡単に切り替えられるので、見え方を確認するときに重宝します。

また、 User Agent の設定を切り替えて、擬似的に携帯用のページを表示できるようにもなっています。 User Agent の設定は若干わかりづらいですが、 Trident の個別設定ページで設定し、 使う場合も Trident エンジンを選択して表示します。

アプリ開発に利用

html が高機能化していって、個人で標準に対応したブラウザを 1 から作ろうと思うと無理に近いです。 しかし、このレンダリングエンジンを使えば、ブラウザを作ることもそこまで難しくなくなります。
まぁ、あまりブラウザを作ろうと思うことは少ないかも知れませんが、 アプリケーション中で html ファイルを表示したいということは結構あると思います。
今度はこのレンダリングエンジンをアプリ開発に利用する方法について書いてみたいと思います。

ただし、 Opera の Presto に関しては、オープンソースでもないですし、バイナリ(dll) として利用することもできません。

レンダリングエンジン ソース ライブラリ利用 dll
Trident クローズド Mshtml.dll
Gecko オープン mozctl.dll
WebKit オープン webkit.dll
Presto クローズド × ×

IE コンポーネント、 Trident

Trident はコンポーネントとしてみた場合、 IE コンポーネントや WebBrowser コンポーネントと呼ばれています。 これを使う場合には、 MFC であれば、 CHtmlView クラス、 .NET であれば、 WebBrowser クラス として利用することが出来ます。
Windows で開発するのであれば、これを使うのが一番簡単ではないかと思います。

Gecko

Firefox や Thunderbird といった Mozilla アプリケーションは以下のような構成になっています。

  • GUI のレイアウトを XML ファイル (XUL)
  • 全体を JavaScript
  • スピードネックとなるような箇所を C++ コンポーネント (XPCOM)
こういったにかわ(glue)言語XML での GUI レイアウトの記述は .NET(WPF) の XAML や Qt の QML など 最近の はやり みたいです。 これらについてはまたの機会に書いてみたいと思います。

レンダリングエンジンの話に戻ると、 Gecko も XPCOM として提供されています。
XPCOM は Windows の COM の クロスプラットホーム版のようなもので、 JavaScript などから C++ コンポーネントが利用できるようになっています。

このため、 Gecko を利用しようとした場合、XULRunner を使って、 XUL+XPCOM アプリケーションとして作成するか、 libxul を使って XPCOM を使えるようにする必要があります。

ちょっと HTML ページを表示したいだけなのに、 Gecko を使おうとすると、いろいろややこしく、 私は途中でやめてしまいました。
ただ、最近では Mozilla ActiveX Control (mozctl.dll) というのができて、 Windows では通常のライブラリのように利用できるようになったようです。

WebKit

WebKit は webkit.dll というライブラリとなっているので、 通常のライブラリのように利用することも出来ます。

しかし、 Qt では QtWebKit モジュールとして組み込まれて、 QWebView クラスで IE コンポーネントの CHtmlView のようにすぐ使えるようになっています。
クロスプラットホームで動作させたい場合には、こちらを利用すると簡単に使うことができます。 Qt のサンプルには、 QtWebKit を使った ブラウザの例 もあります。

また、 Qt では簡単な Html であれば、 ラベルやテキストエリアといった ウィジェットでも表示することは可能です。

結局、どれを使う

エンジンを使ったアプリを作る視点から考えると Windows 版のみなら Tridentクロスプラットホームや Mac 用ならば WebKit がお勧めです。
Gecko を使うのは少しハードルが高い気がします。 Presto は残念ながら使えません。

2012-02-27
使用、サイト制作向けの情報を追加して、かなり書き直してみました。
 
このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
10位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

10月 | 2017年11月 | 12月
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。