2014年4月25日金曜日

一行編集で書庫の展開先をトグル指定

挨拶


今回やるのは書庫の展開。
以前、7-zipを使って解凍をするwrap_7zG.jsというスクリプトを作ったが、そのときには書庫の展開先をメニューで表示、選択するようにしていた。
今回は、展開先を一行編集内のトグルで指定するようにする。

準備


7-Zipをインストール。
wrap_7zG.jsをScriptフォルダにおいておく。

ついで以下を編集して取込。

A_exec = {
rotate_cmd = %%""
temp_dir = D:\Temp
}
K_edit = {
^T ,*execute ,%'rotate_cmd'
}
KC_main = {
U ,*alias rotate_cmd=*RotateExecute %%N,*replace %%1,*replace %'temp_dir',*replace %%2 %: *script %0\Script\wrap_7zG.js,"%a8FCDN",%!~FD
}

temp_dirのパスは、展開先に指定したいフォルダパスに置き換えてください。

使い方


解凍したい書庫にカーソルをあわせ、Uを押す。



反対窓のパスが入力された状態で、一行編集が出る。ここでCtrl+Tを押すと、展開先が自窓→temp_dir→再び反対窓…と順次切り替わる。





展開先が見つかればEnter。すると、そのフォルダに展開される。

参考


2014年4月23日水曜日

MakeComment.jsの自動実行?


挨拶


つかさです。

MakeComment.jsという、僕が以前作ったスクリプトがある。これは、テキストファイルの一行目とファイル名とを対応させるコメントファイルを作るもの。テキストファイルでためたメモのタイトルを一覧表示させるために使う。



以前から、このスクリプトを自動実行できればいいなと考えていた。今までは、
KC_main = { ; PPcメイン窓
F6 ,*script %0\Script\MakeComment.js
}

のようにF6に登録し、気になった時にこのキーを押していたのだが、この動作を省略したかったのだ。

ファイル作成時に実行


最初は、メモファイルをためているhowm2以下のフォルダに行けば、MakeComment.jsを実行する仕組みを考えてた。LOADEVENTらへんを使えばできるんじゃないかな、と。だが、あまりしっくりこないのでずっと棚上げにしていた。メモの閲覧のために、メモフォルダ付近を行ったり来たりというのは頻繁にあるし、そのたびにスクリプト実行されてもなぁ、と。

が、最近、メモファイルを作成するときに、同時にこのコマンドを実行すればいいだけでないかと気づく。
%Ob D:\bin\xyzzy\xyzzy.exe -e (howm-create2dir) %1 %: *script %0\Script\MakeComment.js

これなら、割と無駄もなくいいんじゃないかな、と。ただ、これだとこの時に作成したhowmファイルだけはファイル名表示になって、そこだけは少し不完全。

ファイル作成後に実行


フォルダ内にあるファイルは常にタイトル表示をしていてほしい。コメントファイルが作成されていないファイルはひとつも見たくない、という場合は、ファイル作成後にスクリプトを実行するようにする。
%Obsq D:\bin\xyzzy\xyzzy.exe -e (howm-create2dir) %1 %: *script %0\Script\MakeComment.js

ただ、これだと、xyzzy起動中はPPcを操作することができなくなるみたいだ。

まとめ


今のところ、ファイル作成時に実行する方法をとっている。僕は、Shift+Kで表示する新規ファイル作成メニューの一つとして、howmファイル作成を登録しているので、次のようになる。
-|M_makefile =

M_makefile = { ** comment **
&howm = %Ob D:\bin\xyzzy\xyzzy.exe -e (howm-create2dir) %1 %: *script %0\Script\MakeComment.js
&TXT = *set name=%1\%"テキストファイル"%{%|.txt%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&CFG = *set name=%1\%"CFGFile"%{%|.cfg%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&PlainFile = *set name=%1\%"PlainFile"%E %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&VBS = *set name=%1\%"VBScript"%{%|.vbs%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
&JS = *set name=%1\%"JScript"%{%|.js%} %: *makefile "%'name'" %: editor "%'name'" %: *jumppath "%'name'" /entry
}

KC_main = { ; PPcメイン窓
\K ,%M_makefile,H
}

実用的には特に問題もないし、しばらくはこれでやってみようと思う。


2014年4月15日火曜日

フォルダ構造とバックアップの考察


挨拶


つかさです。今回はフォルダ構造とバックアップ。以前にもやったことがあるので、その記事も参考にしてください。


まず、ファイラの使用は前提。その他

  • Everything
  • DialogHandler

も導入しておきましょう。

理論


考えるべきことは、

目的のファイルにすぐに辿り着く

です。何らかの操作をしたいファイルに辿り着いて何らかの操作をする。そこまでの過程が早ければ早いほどいいし、それに失敗していつまでもうろうろ探したくもない。当たり前といえば当たり前。
ただこれにはひとつ問題がある。それは、

PCを使ってると新しいファイルがどんどん流入してくる

ということ。

ダウンロードファイル、自分で作成したファイル、展開したファイル、などですね。過去のファイルは新しいファイルに埋もれてしまい、目的のファイルにはだんだんとたどり着きにくくなる。

カテゴリーでフォルダの階層構造を作ることで対処しようとしても、それは破綻する可能性が高い。PCを使って行う作業は時間の経過によって変化し、それにつれて過去に作成したカテゴリーが陳腐化してしまうからです。また、適宜ファイル整理して対応しようとしても、どうせどこかで面倒になってやらなくなる。だから、すこしだけ工夫が必要になる。


作業フォルダ→データフォルダ(work→data)



これを克服する方法として用いるのが

予め新しいファイルの流入を前提としたフォルダ構造にする

です。
予め、作業中のファイルのみが存在するフォルダを作っておく(ここではworkと名付ける)。そして、書きかけのプログラム、書きかけの文書、収集中の画像ファイル、リッピングしたMP3、などの現在進行中の作業に対応したフォルダをそれぞれ作り、その中で作業をする。

[work]
 ├ [hlnch]
 ├ [SETZER]
 ├ [Doc]
 ├ [Music]
 ├ [画像ファイル]
 └ [SS]

こんな感じですね。そうして、その作業が終わったならば、バックアップをとった上でworkフォルダからそのフォルダを削除する。

その上で、そのフォルダがまだ必要である場合。例えば音楽ファイル、壁紙ファイルのように、収集が終わってもまた(壁紙にするとか貼り付けるとか閲覧するとかの形で)再利用したいものは、workフォルダとは別のフォルダ(ここではdataと名付ける)に移動する。

[data]
 ├ [Music]
 ├ [壁紙]
 ├ [Picture2012-14]
 └ [SS2012-13]

こうすることで、

  • work→作業中で変更の可能性のあるもの
  • data→作業済みでこれ以上の変更がありえず、バックアップもとってあるもの

の二種類のフォルダができることになる。work→dataという緩慢な移動によって

  • バックアップを必要とするフォルダが一目でわかる
  • 現在作業中のフォルダが他のフォルダに埋もれない

という状況を維持することができるわけです。


普遍的なフォルダ区分(bin,download,temp)



可変的なファイルについては、これで対処することが出来ました。あとは、この二つの区分にプラスして、普遍的で変更の余地が無いだろうカテゴリーフォルダを作ります。

どれだけ年月がたっても絶対に陳腐化しないだろう区分として、

  • ソフトウェアフォルダ
  • ダウンロードしたファイルを入れるフォルダ

の二つを考えることが出来ます。さらにここに一時フォルダを追加して、今の僕のフォルダ構造ができてます。
[D:\]
 ├ [bin]
 ├ [data]
 ├ [download]
 ├ [temp]
 └ [work]

これで

  • ソフトウェアをカスタマイズしたい時はbinフォルダに行く
  • 最近落としたファイルを使いたいときはdownloadフォルダに行く
  • 作業の続きをしたいのならworkフォルダに行く

というように、目的のファイルまで迷わず行くことが可能になります。たいていの場合はこれで間に合うでしょう。
それ以外の、過去に書いたデータを探したいという場合は、まずはdataフォルダへ。それでも無ければ、バックアップをとったDVDを出してくるだとか、あるいはEverythingを使うだとかをします。


各フォルダの説明


bin(ソフトウェア)


[bin]
 ├ [afxw]
 ├ [Aimp3]
 ├ [azpt]
 ├ [cspoit]
 ├ [dyna]
 ├ [EasyShot]
 ├ [emacs]
 ├ [Everything]
 ├ [fenrir]
 ├ [H2k6]
 ├ [hlnch]
 ├ [leeyes]
 ├ [MPC-HC]
 ├ [ppx]
 ├ [SETZER]
 ├ [STEP]
 ├ [WinMerge]
 └ [xyzzy]

階層構造は作らない。
レジストリをいじるものはCドライブに。

work(作業中のファイル)

[work]
 ├ [hlnch]
 ├ [SETZER]
 ├ [Doc]
 ├ [Music]
 ├ [画像ファイル]
 └ [SS]
ファイルを追加したり削除したり編集したりするフォルダはここに。
それが一段落すれば、バックアップを取りworkフォルダからは削除。必要なもののみdataフォルダに移動する。

data(データとして必要なファイル)

[data]
 ├ [Music]
 ├ [壁紙]
 ├ [Picture2012-14]
 └ [SS2012-13]

変動が無いファイルはここに。基本、ここにあるのはバックアップが取られていることが前提。だから好きなときに削除できる。


download(ダウンロードファイル)


ダウンロードしたファイルを探すときのキーになるのは、時系列である。さっき落としただとか昨日落としただとか一週間ほど前に落としただとかしか、キーにはならない。ファイル名は、どうせ作った奴が個々バラバラに適当につけるから探すときのキーにならない。カテゴリー区分も面倒なだけで意味が無い。一々カテゴリーをキーにして階層構造をたどるよりも、もう一度ダウンロードしなおすほうが早いからだ。

というわけで、ダウンロードしてきたファイルは何も考えず、downloadフォルダに保存。その際にはDialogHandlerを利用するといい。ダウンロードしたファイルを使うときには、ファイラでソート状態を時系列逆順にして、最近のファイルほど上のほうにくるようにする。

また、ダウンロードするファイルの量が多い場合には、ダウンロードフォルダ内にさらに月区分でフォルダを作ってもいい。

[download]
 ├ [April]
 ├ [August]
 ├ [December]
 ├ [February]
 ├ [January]
 ├ [July]
 ├ [June]
 ├ [March]
 ├ [May]
 ├ [November]
 ├ [October]
 └ [September]

僕も以前は月ごとフォルダを作ってたが、最近はダウンロードする量が減ったのでやっていない。

temp


複数のソフトを試しに使ってみたいというときは、とりあえずここにそのソフトを解凍する。そして、使えそうだな、常用しそうだなと判断したら、そのフォルダをbinに移動する。こうすることで、binフォルダに使っていないソフトが大量にたまることを防げる。
また、自作のプログラムの実験にもこのフォルダを使う。


バックアップ


以上がフォルダ構造の考察です。続いて、これを前提にしたバックアップの考察をします。

  • ハードディスクの丸ごとバックアップ
  • オンラインストレージ
  • ディスクに焼く

の三つの方法を使います。

ハードディスクの丸ごとバックアップ


Cドライブについては、ハードディスクを丸ごとバックアップできるソフトを利用する。僕はAcronisTrueImageを使っている。

オンラインストレージ


容量が少なく、更新頻度が高いものはこれを利用する。僕はDropBoxを利用している。
具体的にはworkフォルダの中にあって、失うとダメージの大きいもの。自分で作成するドキュメントだとかメモだとかが主です。
あと、binフォルダを保存してもいい。

ディスクに焼く


workフォルダの中にあってもう変動することのないファイルは、ディスクにフォルダ単位で焼く。その上で、必要なものだけdataフォルダに移動する。

ダブってバックアップしないよう、フォルダ名をDVDの表面にペンで書いておく。



こんな風にフォルダ名を記入しておくと、DVDを捨てるときにも判断がつきやすい。
フォルダの容量が大きくて一枚に収まりきらない場合には、DVDの容量にあわせてフォルダ区分をする。僕は音楽ファイルについてはこの形式をとっている。
あと、downloadフォルダも年に一度焼く。

参考