2012年11月2日金曜日

matlab: limitations for large/small numbers

Here are some limitations for large/small numbers in Matlab.
So it's about boundary and precision.
Examples below are results derived in Matlab R2007b (64bit) on Win7 x64 on Core i5 2500.
Just a list of examples; no summary or interpretation as of now.

**
>> help eps
will explain most of the following results
**

Large number limit

 

number:

>> realmax
ans =
  1.7977e+308

>> realmax+9.97e+291
ans =
  1.7977e+308

>> realmax+9.98e+291
ans =
  Inf

exp:

>> exp(709)
ans =
  8.2184e+307

>> exp(710)
ans =
  Inf

log:

>> log(realmax+9.97e+291)
ans =
  709.7827

>> log(realmax+9.98e+291)
ans =
  Inf

Small number limit


number:

>> realmin
ans =
  2.2251e-308

>> isequal(0,realmin)
ans =
     0

>> isequal(0,0+realmin)
ans =
     0

>> 1+realmin
ans =
     1

>> isequal(1,1+realmin)
ans =
     1

>> isequal(1,1+realmin*4.98e+291)
ans =
     1

>> isequal(1,1+realmin*4.99e+291)
ans =
     0

>> realmin*4.99e+291
ans =
  1.1103e-016

>> eps
ans =
  2.2204e-016

>> isequal(2,2+realmin*9.97e+291)
ans =
     1

>> isequal(2,2+realmin*9.98e+291)
ans =
     0

>> isequal(100,100+realmin*3.1e+293)
ans =
     1

>> isequal(100,100+realmin*3.2e+293)
ans =
     0

exp:

>> exp(-745)
ans =
  4.9407e-324

>> exp(-746)
ans =
     0

>> isequal(1,exp(realmin*4.98e+291))
ans =
     1

>> isequal(1,exp(realmin*4.99e+291))
ans =
     0

log:

>> log(realmin*1.0e-15)
ans =
 -742.8306

>> log(realmin*1.0e-16)
ans =
  -Inf

>> isequal(log(1),log(1+realmin*4.98e+291))
ans =
     1

>> isequal(log(1),log(1+realmin*4.99e+291))
ans =
     0

>> isequal(log(2),log(2+realmin*9.97e+291))
ans =
     1

>> isequal(log(2),log(2+realmin*9.98e+291))
ans =
     0

>> isequal(log(100),log(100+realmin*4.1e+294))
ans =
     1

>> isequal(log(100),log(100+realmin*4.2e+294))
ans =
     0

2012年10月23日火曜日

fb2k: 外観・UI設定の全体像

foobar2000 の外観やUI設定の全体像について.[執筆中, 2013/05/16]

概要

foobar2000 では,外観や UI を自分好みに高度にカスタマイズできる.細かい話は山ほどあるが,基本的な流れは次のとおり.
  1. UI 自体の種類を選ぶ
  2. 選んだ UI の設定方法に従って, レイアウトの変更や部品の追加(パネル,スプリッタ等)を行う.
  3. 各部品を設定していく.
UI 自体や部品は,標準で使えるか,あるいは foobar2000 へのプラグインとして配布されている.部品は UI element 系と UI extension 系とに分かれ,どちらが利用可能かは UI の種類で決まる.

参考



------------------------------------------------------------------
[foobar2000メモのトップに戻る]

fb2k: foobar2000 メモ

foobar2000 は windows 用のサウンドプレイヤー.
とてつもなくカスタマイズできる.
ASIO や WASAPI などもサポート可.

その設定ガイドを書いてみる.主に自分のメモ用.

情報自体は特に目新しくはなく,参考サイトにのっているものばかりではあるが,現状で自分の設定に必要だったもののまとめ.

まずは,日本の foobar2000 wiki に,
本体のインストール
基本操作等のチュートリアル
が述べられている.

[foobar2000 メモ トップに戻る]

参考:
hydrogen audio の foobar2000 wiki ページ
日本の foobar2000 wiki ページ
日本の foobar2000 wiki ページもう一つ
クラシックに特化したすごい設定

2012年10月2日火曜日

日常: 空耳(2)

東急線の空耳について先日述べたが,再び聞く機会があった.

ふと気づくと車内の電光掲示板に Yokohama Municipal Subway と表示されている.
身構えていると,果たしてアナウンスは
横浜 ミュニスィプゥ サブウェイ
Yokohama Municipal Subway
に聞こえた.そうとしか聞こえなかった.

この前の
Yokohama Minnesota Line
ラインはどこへ行った‥?


2012年9月29日土曜日

Win: Installing app up to vista onto 7

表向き Vista までしか対応してないアプリ等を 7 にインストールする

Applications supporting windows version up to vista are likely to work also on windows 7.
However, their installer sometimes prevent the apps from being installed onto 7.
Don't be disappointed, though, because this obstacle can often be removed.

See, for example, Logitech's v-uj16 web camera, used in Qcam Pro 4000. The software stack provided supports up to vista but not windows 7. On windows 7, the installer file (qc1051enu.exe or qc1051enu_x64.exe) shows a warning message and quits during the install. To avoid this,
1. Unpack the installer file (.exe) with some (de)archivers. 7zip worked for me.
2. Setup.ini will be found in the extracted files. 'MaxVersion' definition will be found in Setup.ini, in [OS32] section and [OS64] section.
[OS64]
MinVersion=5.2.3790
MinServicePack=0.0
MinVersionErrMsg=##ERROR_OS64_MAX##
MaxVersion=6.0.9000
MaxServicePack=0.0
MaxVersionErrMsg=##ERROR_OS64_MAX##
3. Change MaxVersion definition (by any text editor like notepad), like this:
MaxVersion=9.0.9000
4. Set Setup.exe's compatibility option (Right-Click -> Properties -> Compatibility) to Windows Vista (SP2).
5. Run Setup.exe in the extracted files. You may need to reboot then.
6. Manually install webcam's device driver from device manager. The driver can be found in the installer extracted files.

This procedure worked fine for my v-uj16 and windows7 x64.

~~~~

Windows Vista までサポートしていて,Windows 7 がサポートに入っていないアプリは,実は Windows 7 で動かせることが結構ある.

たとえば,ロジクールの v-uj16 というwebカメラがある(Qcam Pro 4000のカメラ)が,このソフトウェアスタックは Vista までしかサポートしていない.Windows 7 ではインストーラ(qc1051enu.exe または qc1051enu_x64.exe)が文句言って先に進ませてくれない.これを回避してインストールするには,
1. インストーラの .exe ファイルを解凍する.今回は 7zip で解凍した.
2. Setup.ini というファイルが出てくる.その中に 'MaxVersion' という定義がある([OS32]と[OS64]のセクションにある).こんな感じ:
[OS64]
MinVersion=5.2.3790
MinServicePack=0.0
MinVersionErrMsg=##ERROR_OS64_MAX##
MaxVersion=6.0.9000
MaxServicePack=0.0
MaxVersionErrMsg=##ERROR_OS64_MAX##
3. MaxVersion が Vista どまりになってるのが諸悪の根源だ.メモ帳などのテキストエディタでこうしてしまえ:
MaxVersion=9.0.9000
4. 解凍して出てきた Setup.exe の互換性オプションを Windows Vista (SP2) にする.右クリック→プロパティ→互換性のところ.
5. Setup.exe を実行.必要なら再起動する.
6. ウェブカメラのドライバを,デバイスマネージャから手動でインストールする.ドライバは,先ほどインストーラを解凍して出てきた中にある.

私の場合はこれでできました.v-uj16 が windows7 x64 上で無事に稼動.

日常: 空耳

東急目黒線が日吉に到着するときのアナウンス(乗り換え案内)が

横浜ミネソタライン
Yokohama Minnesota Line

に聞こえた.そうとしか聞こえなかった.

横浜市営地下鉄は

The Yokohama Municipal Subway

らしいが,ミネソタにしか聞こえなかった.

後日もう一度聞いてみた

2012年9月6日木曜日

Win: SFTP server

It will be convinient to be able to get my files easily, securely and (almost) direcly from my home computer behind the router at home. 1) An always-on internet connection, 2) DDNS service, 3) a router capable of port-maping, and 4) a secure file server service can achieve such convinience. I already have 1)-3), so I was searching for 4). For this purpose, SFTP server is one of the suitable solutions.

Though there are many FTP/FTPS servers running on windows, SFTP servers especially those not being a part of SSH servers are less found (see wikipedia).
Core FTP/SFTP server just worked fine.
A TIP: if you are using Core SFTP server on double-byte environment, say Japanese windows, it may be necessary to set appropriate charset on CLIENT. For example, FileZilla worked fine by setting Site Manager -> Charset -> Use custom charset: shift-jis
2012.9.7: For my particular operation, FileZilla hung up; WinSCP worked. It was just a simple folder transfer ...

ルータの背後のホームコンピュータからどうやってファイルをセキュアかつ可能な限り高速に取り出そうかと思っていたが,Core FTP/SFTP server というのがうまく動いてくれた.ルータからポートマッピングで 22 番ポートを背後のマシンに飛ばしている.実は,windows 用 SFTP サーバの手ごろな実装はそんなに多くないようだ.クライアントは山ほどあるのにね.
コツ:例えばサーバが日本語 windows で走っていて,クライアントに FileZilla を使っているなら,FileZilla 側で,「サーバの Charset が shift-jis だ」と指定する.これで問題なく日本語ファイル名扱えました.
2012.9.7 追記:ある操作をしようとしたら,FileZillaがはんぐった.WinSCPでできた.普通にフォルダを転送しようとしただけ.


2012年2月23日木曜日

vsphere client: where has my Console Window gone?

Sometimes console window opened from vsphere client (may be connected to vmware esxi server) seems to have disappeared or gone somewhere, and selecting the window from task bar doesn't help (as it seems). From my experience, this happens every time I minimize both the main window of vsphere client and the console window.

In that case,
  1. Select the console window from task bar. Never mind if the window does not come up.
  2. Press Alt+Space. This will show window resizing/moving menu.
  3. Select Restore or something you like.
  4. That's it. You will see the console window again!
Remember, 'Alt+Space' can save you also in other cases.

vsphere client (おそらく vmware esxi server に接続している) から開いたコンソールウィンドウが消えてどこかに行ってしまい,タスクバーから選ぶ等しても元に戻らないことがある.経験的には,コンソールウィンドウを開き,そのコンソールウィンドウと vsphere client のメインウィンドウを最小化すると,100%そうなる.

そんなときは,
  1. コンソールウィンドウをタスクバーから選ぶ.ウィンドウが元に戻らなくても気にしない.
  2. Alt+Space を押す.ウィンドウに関するメニューが出る.
  3. 「元のサイズに戻す」を選ぶ.最大化でもいいだろう.
  4. 以上.コンソールウィンドウは再び白日の下にその身を晒すであろう!
Alt+Space を覚えておくと何かと救われるかもしれない.

FYI:
参考画面:

2012年2月16日木曜日

回線:flets から WiMAX へ

引っ越しに伴い,家の回線を flets から WiMAX へと移行した.

機器の設定としては,家のルータ(NEC Aterm WR8700N, メーカーの製品ページ)の動作モードを PPPoE からローカルルータに変え,クレードルに乗せた WiMAX モバイルルータ(NEC Aterm WM3500R, メーカーの製品ページ)の LAN ポートと WR8700N の WAN ポートを接続したのみ.これで全く問題なく動いた.

そういえば,WR8700N はときどき通信速度が著しく低下することがあって,再起動すると直る.原因が WR8700N にあるのか他にあるのかわからないけど,あれはなんなんだろう.


WiMAX は諸般の事情で少し前から利用を開始しており,移行のために新たに導入したわけではない.WiMAX は,WiMAXルータを家においておく限りは常時接続回線として使える.WiMAXルータを持ち出すときは,家からインターネットにはアクセスできないことになる.家の常時接続を確保するには,ファミ得パックに申し込んでWiMAXを2回線同時につなぐ手もあるが,私の場合は flets で常時接続した方が快適そうだ.ある住所で過去にフレッツ光回線を使っていた人がまた新たに申し込むのはキャンペーン適用外となるようだが,住所が変わっていたら大丈夫らしい.今回は引っ越したから大丈夫と思われる.キャッシュバックの大きさを考えると(例えば価格.comの等),1年なり2年なりの継続利用が義務付けられたとしても,ファミ得パックと同等以上に安く上がるかもしれない.回線の使用感としては,少なくとも以前住んでいたところでは,flets の方が確実に速かった.が,お金持ちに非ざる身としては,手間と費用はとにかく少ないほうがいいのである.完全常時接続でなくとも,1回線でしのげるならそうするのだ.

常時起動マシン+常時接続回線があると,Windows Live Mesh でファイル同期システムが構築できてよいのである.が,職場で Mesh はセキュリティ的にアウトとされているので,SpiderOak で同期することにしている(以前書いた記事使用メモを参照)のだが,これも常時起動サーバと常時接続回線があればそれに越したことはない.SpiderOak (あるいはほかのクラウド側にストレージがあるサービス) であれば,家から WiMAX を持ち出していても同期に困らないから,今の利用形態にはより合っていると思われる.

2012年2月10日金曜日

matlab: find いらずの一発参照・代入

matlab では,配列の要素のうち特定の条件を満たすものを参照する際,ものすごく効率的な方法が用意されている.それが Logical Subscripting だ(logical indexing という人もいる).基本的な説明は Matlab の help の Getting Started や mathworks のページにも載っているが,もう少し掘り下げてみよう.

ここでいう Logical とは,論理値配列の意味の論理である.早速やってみよう.

例: 行列 A のうち,値が 0.5 未満の要素は 0 にする.閾値処理ですな.
>> A = rand(3)
A =
    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575

>> A(A<0.5) = 0
A =
    0.8147    0.9134         0
    0.9058    0.6324    0.5469
         0         0    0.9575

その通り,find は使わなくてよいのである.今まで使いまくってたよ‥
A(find(A<0.5)) = 0
とか書いてたよ‥.はずかちー.

[多次元インデクス自体については matlab: 一目で分かる多次元インデクス をどうぞ]

もちろん,A の参照に A に関する論理式を使う必要はない.他のものでも使える.
例:同サイズの別配列による条件づけ
>> Score = [60,55,80]
Score =
    60    55    80

>> Effort = [50,75,60]
Effort =
    50    75    60

>> Score(Effort>70) = Score(Effort>70) + 20
Score =
    60    75    80

頑張った人に+20点とかね.Score(Effort>70)が2回出てくるのがなんとも野暮ったいけど,何とかならないだろうか?以下,速度と効率を追求してみよう.

* 速度の検討

logical は比較的小さい容量になる(1byte/element)ので,保存して使いまわしてもよさそうだ.

例: 大きな配列の論理参照における論理配列の使いまわしの効果


>> S=rand(5000);S1=S;N=10;T=zeros(N,1);
>> for n=1:N,tic;S1(S>0.5)=S(S>0.5)+2;T(n)=toc;end;mean(T)
ans =
    1.7190

>> S=rand(5000);S1=S;N=10;T=zeros(N,1);
>> for n=1:N,tic;LS=S>0.5;S1(LS)=S(LS)+2;T(n)=toc;end;mean(T)
ans =
    1.3880

2割以上速くなる.ちなみに,自分の過去のやり方(findする)だと

>> S=rand(5000);S1=S;N=10;T=zeros(N,1);
>> for n=1:N,tic;IS=find(S>0.5);S1(IS)=S(IS)+2;T(n)=toc;end;mean(T)
ans =
    1.6312

あれ?意外と速い.個数の問題か?




例: 参照個数による処理時間の変化(find vs. logical subscripting)


>> S=rand(5000);S1=S;N=10;T=zeros(N,1);
>> for n=1:N,tic;IS=find(S>0.9);S1(IS)=S(IS)+2;T(n)=toc;end;mean(T)
ans =
    0.6060

うおっ.てきめん.一方の logical subscripting はどうか?

>> S=rand(5000);S1=S;N=10;T=zeros(N,1);
>> for n=1:N,tic;LS=S>0.9;S1(LS)=S(LS)+2;T(n)=toc;end;mean(T)
ans =
    0.6400

>> S=rand(5000);S1=S;N=10;T=zeros(N,1);
>> for n=1:N,tic;LS=S>0.1;S1(LS)=S(LS)+2;T(n)=toc;end;mean(T)
ans =
    1.1668

な ん で だ よ
なんで速度に差が出るのよ.たとえば,裏で find や sparse 的なことをしてて,対象個数が少ないほうに合わせてどうこうしてるのか?

条件に引っかかる個数を減らしながら,かかる時間をプロットしてみよう.

例: 参照個数による処理時間の変化(Logical Subscripting)

>> S=rand(5000);S1=S;N=4;LN=15;LVLs=linspace(0,1,LN);T=zeros(N,LN);
>> for ln=1:LN,for n=1:N,tic;LS=S>LVLs(ln);S1(LS)=S(LS)+2;T(n,ln)=toc;end;end;
>> figure;plot(LVLs,mean(T,1),'o-','linewidth',3);set(gca,'fontsize',20);grid on;
>> ylabel('elapsed time');xlabel('the threshold used');
>> print(gcf,'-dpng','logical_subscripting_etimes');

そうしてできたプロットがこれである.

参照される要素数が,
多い(グラフ左):半分より多くなるほど線形に速くなるが,係数は小さい.
半分(グラフ中央):一番遅い
少ない(グラフ右):半分より少なくなるほど,おおむね比例的に速くなる.
という結果が得られた.

例: 参照個数による処理時間の変化(find)

>> S=rand(5000);S1=S;N=4;LN=15;LVLs=linspace(0,1,LN);T=zeros(N,LN); >> for ln=1:LN,for n=1:N,tic;IS=find(S>LVLs(ln));S1(IS)=S(IS)+2;T(n,ln)=toc;end;end;
>> figure;plot(LVLs,mean(T,1),'o-','linewidth',3);set(gca,'fontsize',20);grid on;
>> ylabel('elapsed time');xlabel('the threshold used');
>> print(gcf,'-dpng','find_etimes');
find でやると素直に

要素が少なくなると処理が早く済む,となる.
二つの結果を重ねると
基本的には logical subscripting を使っていればよさそうだ.要素が少なくなってくると find がわずかに早いこともあるが,その差は微小だ.


logical subscripting の挙動の理由はいまいちわかりませんが,パフォーマンスにこだわる方は参考にしてみてください.ちなみに,R2007b on Win7 x64 on core2duo (mobile) です.

*プログラミング上の性質の検討


この Logical Subscripting の要点は,まさに logical 型の配列を括弧内に与えることにある.カッコ内に与えられた配列が logical かどうかはちゃんとチェックされ,数値 0 と論理値 false は区別される.
例:0 と false の区別
>> a=1
a =
     1

>> a(0)=3
??? Subscript indices must either be real positive
integers or logicals.

>> a(logical(0))=3
a =
     1

>> a(logical(1))=3
a =
     3

また,少なくとも R2007b では,参照に使う論理配列は,元の配列より小さくてもよいようだ.

例:参照に使う論理配列と入れ物の配列の大小

>> B=reshape([1:6],[3,2])
B =
     1     4
     2     5
     3     6

>> B(logical([0,0,0,1]))=9
B =
     1     9
     2     5
     3     6

逆に,大きいと怒られる.

>> B(logical([0,0,0,0,0,0,1]))=9
???  In an assignment  A(I) = B, a matrix A cannot
be resized.

ご参考まで.

-- 当ブログの matlab 関係へはこちらからどうぞ.--

2012年2月7日火曜日

Mail: winmail.dat が添付されていたら

受信したメールに,winmail.dat という謎の添付ファイルがあった.
この winmail.dat (win.dat の場合もある)は大雑把に言ってアーカイブファイルのようなもので,解凍(解読)すれば中身のファイル(たち)が取り出せる.

解凍方法・解読方法としては,
  • Thunderbird を使っている場合
  • Gmail / Yahoo! Mail が使える場合
    • Gmail や Yahoo! Mail の自分のアカウントに winmail.dat を添付して送りつけるとうまいこと認識して中身を抽出してくれると誠 Biz.IDのページにあった.これが一番賢いかもしれない.
  • Windows / Linux を使っている場合
  • Mac を使っている場合
などが考えられる.筆者は Thunderbird を使っており,Lookout でうまくいった.受信メールの添付ファイルに,winmail.dat を解凍したものも自動的に加えてくれる.ちなみに,fentun で扱えなかったものも Lookout ではうまくいったりする.
なお,winmail.dat や TNEF で検索すると,何かいろいろダウンロードボタンが出てくるような類のページがバンバン引っかかってウザめだ.

ということで,おすすめは,
  • Thunderbird 使ってる → アドオンの Lookout を使う
  • Gmail Yahoo! Mail のアカウントがある → 添付してそこに送る
  • それ以外 → がんばれ
です.

Amazon で調べてみると, Thunderbird関係の本が10件しかないのに対し,Gmail関係の本は106件もある(執筆時点).勢いの差を感じますなあ.しかし私は Gmail も使うが,Thunderbird メインなのだ.Gmail アカウントも Thunderbird から使っている.いいメーラーだよぅ!

ファイルについて簡単に解説.送信者が Outlook を使っていると winmail.dat が発生することがある,と,マイクロソフトのサポートに情報がある.サポートページによれば,解決策は,送信者側がテキスト形式でメールを送るようにすることだそうだ.おいおい.
この winmail.dat はTNEFという(Microsoft独自?)フォーマットによるファイルらしい(エンコード・コレクションのページの解説Wikipedia(en) の解説).もう独自形式とかどうにかしたほうがいいんじゃないだろうか.

久々に開け方のわからないファイルでした.あ,あと,セキュリティの設定で開けない場合は,お使いのセキュリティソフトの情報をあたってみてください.

[2013/05/30加筆]
Microsoft のページに日本語解説が作られていた:
初心者でもわかる! Outlook 添付ファイルのトラブル対処法 : 受信トラブル 2: 受信したメールに「winmail.dat」というファイルが添付されている
対策を要約すると,受信側も outlook を使うか,送信側がリッチテキスト形式で送るのをやめるかのどちらかだそうだ.なので,特に本記事に追加すべき情報はなかった.

2012年2月2日木曜日

Web: SpiderOak 使用メモ


オンラインのファイルバックアップ/同期サービス・オンラインストレージとして,SpiderOak というのを使っています(なぜ選んだかは前のエントリを参照).使用していて気付いたことや感想を随時このエントリにメモっていきます.使い始めたい方は,この紹介リンクどなたかの紹介リンクから登録して頂くと,通常 2GB のところ 3GB からスタートになり,紹介者の容量も +1GB されますので,よろしければぜひ.では,内容をば.
  • データをダウンロードする(データを取り出す・読み込む)
    • SpiderOak アプリからでもブラウザからでもデータをロード可能.
    • フォルダの一括ダウンロードも可能.アプリからでもブラウザからでも行ける.
  • 同期・バックアップのタイミング
    • 基本は特に何も意識せず,SpiderOak アプリ(サービス?)が自動で変更を検出するのを待てばよい.変更を即時サーバへ反映させたいときは,アプリ左下のくるくるマークの Rescan ボタンを押せばよいようだ.
    SpiderOak アプリ左下,くるくるマークのボタンを押すと即時ファイル変更をスキャンする.
    • アプリを起動するまではバックアップ・同期などを開始していない気がする?(要確認).アプリ非起動時にはファイルの変更は監視しないそうだ(下図).
    SpiderOak アプリを終了しちゃうとファイルの変更は監視しなくなるよという説明.アプリのウィンドウ右上 x ボタン(閉じるボタン)を押すと出てくるダイアログです.
    •  自動起動するには,SpiderOak アプリの Preferences の Interface タブで,'Launch SpiderOak at OS startup?' にチェックを入れておけばよい.
  • バージョン(履歴)管理・同期
    • 更新されたファイルは,どのバージョンでも選んで取り出せる(そう,バージョン管理がされているのだ). 差分管理を利用しているそうだ(参考:FAQ#7).ちなみに,同じファイルの複数のバージョンを選んで(Ctrl+クリック等)ダウンロードした場合,例えば下図の proc00.m の場合,proc00.m (682バイト・新しい) と proc00 1.m (613バイト・古い) ができた.
    ファイルの過去のバージョンも選んでダウンロードできる.
    • いろいろ試してみたい.消したファイルとか取り出せるのだろうか.逆に,スペース確保のため等で履歴を消去したい場合どうするのだろう.
    • 消したファイルは取り出せる(2013/05/29) .View タブで,デバイスに並んで「Deleted Items」の項目がある(図の赤マーク).これを選ぶと,そのデバイスで削除したファイルも取り戻せる.すばらしい.
    • ファイルシステム上で消したファイルを取り出すには,View タブで Deleted Items を選ぶ.
    • 多数箇所での同期について少し試してみた(2012/2/19, windows マシン3機の同期).以下のことが判明.
      • 最終的に,きちんと全マシンで rescan がかかった場合,タイムスタンプが最新のファイルに同期する.ファイルのタイムスタンプの関係によっては,自動 rescan が発動しない場合もあるように見えたが,手動で rescan をかけたらそうなった.
      • ファイルのバージョン履歴はマシンごとに記録される.マシン3機で別々の変更を行ったなら,各マシンのバージョン履歴には,そのマシンで作った ファイルと,同期した結果の最新版のファイルが残る.なので,いろんなマシンで別々に変更した後同期しても,変更したマシンに対応するバージョン履歴には ちゃんと記録される.しかし,マージしたければバージョン履歴からどこかにダウンロードして手動マージする羽目になる.とにかく同期後には最新のタイムス タンプのファイルのみがファイルシステムに残る.
      •  全マシンで最新のファイルに同期が完了した後,あるマシンでわざと古いファイルで上書きしたら,その古いファイルはそのマシンのバージョン履歴として取り込まれ,その後で最新ファイルで上書きされた.このときは手動rescanをかける必要があった.
    • 履歴中の旧バージョンのファイルの削除について試してみた(2012/3/2).
      • そのマシン(SpiderOak で言うところのデバイス)についての履歴は,選択して消せる.ただし,単純にSpiderOak の空き容量が増えるとは限らないようだ.
      • 別のマシンについての履歴は消せない.その履歴を作ったマシンのアプリでないと消せないようだ.ブラウザでログインしても,ダウンロードはできて も削除はできない.デバイス自体はほかのデバイスからも除去できるので,それを使えということか.そのデバイスの履歴は,そのデバイスのアプリと確実に通 信できるとき(つまり,そのデバイス上のアプリ自体でやってるとき)にしか消せない,ということと推測する.
そのマシン(=デバイス)のファイル履歴を選んで消すには,消したいバージョンを選んで画像上の方の赤い「×」ボタンをクリックする.ここでは,43個のバージョンを持つ「ほにゃらら.docx」 の,2012/02/28 13:50:16 のバージョンを選んでいる.
  • View タブで「Merge」というボタンがあることに気付いた(2012/3/2).2つ(?)のフォルダをそのタイミングでSyncするっぽい.今度試してみよう.
  • 動作が怪しい(更新情報のやり取りが終わらないとか) 場合,基本はひたすら待ってればそのうち終わる.あまりにも終わらないとき(一週間とか)は,仕切り直しをする手がある(2013/7/5).
    • 手順の例:SpiderOak FAQのこれ
      • これ自体はアップロード完了前にファイルを消してしまった場合の対処手順だが,一般の復旧にも便利そう.
      • この手順では preferences がリセットされるので,必要なら再設定すること.特にバックアップの除外設定を忘れて起動するとひどいことになるので要注意.
    1.  SpiderOak を閉じる.プロセスに残っていないかも確認した方が良い.windows ならタスクマネージャ.
    2. コマンドラインで c:\"Program Files"\SpiderOak\SpiderOak.exe --destroy-shelved-x
      • 完了するまで待つ.時間はそれなりにかかる.
      • 出てくるメッセージの例:
      • c:\Program Files\SpiderOak>SpiderOak.exe --destroy-shelved-x
        c:\Program Files\SpiderOak>Connecting to server and dropping shelved xacts from session...
        Dropped on server, now dropping locally...
        Rebuilding snapshot...
        Committing...
        Done. You should probably also run --rebuild-reference-database or --repair now.
    3. コマンドラインで c:\"Program Files"\SpiderOak\SpiderOak.exe --repair
      • 完了するまで待つ.こちらもそれなりにかかる.
      • 出てくるメッセージの例:
      • c:\Program Files\SpiderOak>SpiderOak.exe --repair
        c:\Program Files\SpiderOak>Generating local cache digest
        Connecting to server...
        Connected to server, requesting repair...(this may take awhile)
        8049 updated items and 44428 new items found.
        Building database of encrypted blocks
        Rebuilding reference database (this may take awhile...)
        Rebuild of reference database complete (123005 updates made).
        Rebuilding snapshot...
        Repair complete.
    4. spideroak を再び起動する.
  • バックアップ速度
    • 本家のFAQにも典型的には24時間で10~15GBと書いてあるが確かにそのくらいのようだ.データ使用量が69hで39GBほど増えた(先日から有料の容量無制限プランに入ったので,過去データをドーンとバックアップしている途中.回線は十分すぎるくらい高速なもの).このデータ使用量表示は圧縮や de-dup を行った後のものなので,実際のバックアップ速度はもう少し上のはず.とはいえおおまかには約 560MB/h だから 157KB/s くらいと考えてよい.この速度感を把握して用途を設計しないと,私のように「あれ,あと200日かかるの?」となるので要注意.なお,公式アカウントは2014年5月のtweetで平均25GB/dayとつぶやいている.(2016/01/18)
    • バックアップ対象のファイルの残りで見ると, 確かに 25GB/day くらいのようだ.(2016/01/22)
  • 困ったら本家に(特に FAQ に)大体書いてある.
    • コマンドラインオプションがいろいろあるので,たいてい何とかはなりそう.
冒頭にも述べましたが,使い始めたい方は,この紹介リンクどなたかの紹介リンクから登録して頂くと,通常 2GB のところ 3GB からスタートになり,紹介者の容量も +1GB されますので,よろしければどうぞ.最初のころの +1GB はかなり大きいです.

市販のソフトでは,amazon で同期ソフトを検索すると31件ほどヒットした(2013/06/03時点).便利なものはあるだろうか?

2012年1月20日金曜日

オンラインストレージ,セキュリティでおすすめなのは:SpiderOak

オンラインで無料プランのあるファイルバックアップ・ファイル同期サービス,あるいはオンラインストレージの類は,気がつけば大量に増えてきている.Dropbox, SugarSync, ZumoDrive, SkyDrive, SpiderOak, ...
(てっとり早く SpiderOak を使いたい人はこの紹介リンクから登録できます)
(拡大上限に達しました.ありがとうございました.ぜひどなたかの紹介リンクから登録してみてください)
(ZumoDrive は消滅確定らしい.ZumoCast の後継は MotoCast? しかし端末ユーザー限定ぽい)

こうしたサービスのよい比較記事としては,lifehacker(JP/EN),ITmediaフリーソフト100Wikipedia(JP/EN),あるいは個人系のこんな記事あんな記事などがおすすめだ.

ここで,選択のポイントを
・複数マシン間の自動同期
・好きなフォルダ(ディレクトリ)をバックアップ・同期指定可能
・セキュリティの堅さ
・プラットフォームの多様性
・ある程度の容量
とすると,SpiderOak が筆頭に来る.

ホームページによると,セキュリティ・プライバシーについては

Complete Privacy Guaranteed
* SpiderOak never stores or knows a user's password or the plaintext encryption keys which means not even SpiderOak employees can access the data
* Our zero-knowledge privacy approach means we can never betray the trust of our users

<勝手に訳>
プライバシーを完全保証
* SpiderOak は,ユーザーのパスワードや,暗号化鍵の平文を持ちません.これは,SpiderOak の従業員であっても,データにアクセスできないということです.
* 我々の,プライバシーに対する「知識無し」アプローチは,我々がユーザの信頼を裏切ることがありえないことを意味するのです.

とある.また,あるページには
On the server side, all that SpiderOak staff can see, are sequentially numbered containers of encrypted data.
と書かれていある.ちなみに,SpiderOakアプリのキャッシュフォルダらしきところを見ると,
\Users\(Username)\AppData\Roaming\SpiderOak\tss_external_blocks_pandora_sqliite_database
数字のついたファイルが置かれていて,各々暗号化されているようだ(バイナリエディタで見ても解読不能) .もっとも,これは単にサーバとの通信用にハッシュとか差分をどうこうしてるだけかもしれないので,サーバに実際にこの形態であるのかまではわからないけど.

プラットフォームに関しては,Windows, Mac, Linux に対応しているのと,フル機能かは知らないが iOS(iPad/iPhone), Android, N900 Maemo(何ぞ?) 用のクライアントもあるようだ(https://spideroak.com/mobile).

容量に関しては,デフォルト 2GB, 紹介によって +1GB ずつされて最大 50GB 10GB(いつのまにか少なくなってた.2012年前半のこと?) まで無料だそうだ.紹介する方もされる方も +1GB ずつの恩恵をこうむるので,この紹介リンクどなたかの紹介リンクからユーザー登録すると, 3GB からスタートでき,紹介する方も +1GB もらえて助かりますうれしいはずなので,使ってみたい場合はぜひどうぞ.容量は有料でも増やせる.

実際に使ってみると,「まず最初に各マシンでバックアップするフォルダ・ファイルを選ぶ」「次にそれら同士の間で同期するものを選ぶ」,という順序を理解しておけば,わかりやすい感じだ.自分の希望する容量にマッチすれば,とてもいいのではないだろうか.実際に使用して気づいたことは, 次のエントリに随時メモしている.SpiderOakのスタッフのBlogも参考になる.


常時起動でインターネットにつながるサーバを持っているなら Windows Live Mesh (+ SkyDrive) が最強だと思うのだが,組織によっては P2P と判定されて非推奨だったり禁止だったりするのだ.SkyDrive においた場合,セキュリティがどうなのかわからないしね.