原稿ファイルのバックアップ方法

執筆してできた原稿ファイルなどをどのようにバックアップするかという話題です。私の場合はこうしていますという一例として。
16
結城浩 / Hiroshi Yuki @hyuki

#hyuki_diary CodeIQのジェムストリング問題が終了したので、ディレクトリのファイルを整理しておこう。一時ファイルを削除するなど。

2014-02-18 09:46:21
結城浩 / Hiroshi Yuki @hyuki

#hyuki_diary CodeIQのジェムストリング問題のファイル整理完了。zipしてバックアップしとく。

2014-02-18 09:57:06
Hoshi Takanori @hoshi_takanori

@hyuki その場合、バックアップはどのように管理していますか? zipのファイル名や、zipの中身(試行錯誤したファイルをどこまで保存するか)、どこ(HDDまたはクラウドなど)にどう(種類ごとまたは日付ごとにフォルダ分けなど)保存するかなど、聞かせていただけると嬉しいです。

2014-02-18 10:22:25
結城浩 / Hiroshi Yuki @hyuki

結城は仕事の単位でフォルダを分けています。たとえばCodeIQのジェムストリング問題の場合には ~/codeiq/c14_gemstring などのように。そしてその単位でzipします。

2014-02-18 10:26:12
結城浩 / Hiroshi Yuki @hyuki

ファイル名は(たとえば)codeiq_gemstring_2014-02-18-095543.zip のようになります。zipしたものは~/Dropbox/Backupフォルダに移動し、自動的にDropbox(クラウド)に保存されることになります。

2014-02-18 10:28:00
結城浩 / Hiroshi Yuki @hyuki

以上のようなプロジェクトごとのバックアップで、ファイル名を私が手で入力することはありません。プロジェクト名や日付などはスクリプトが自動的に生成します。また、zipコマンドを入力することもありません。

2014-02-18 10:29:58
結城浩 / Hiroshi Yuki @hyuki

makefileの中に bk という .PHONYなコマンドを作り、さらに bkというaliasを用意してありますので、作業中に bk と入力すれば先ほどのバックアップ作業(zipしてDropboxへ)が開始されます。ですからバックアップは非常に頻繁に行っています。

2014-02-18 10:30:53
結城浩 / Hiroshi Yuki @hyuki

プロジェクトごとのバックアップは以上です。その他にTime Machineを使ってごっそりバックアップを取っています。これは外部USBディスクに。これによって万一DropboxとMacBookを同時に失ったとしても、外部USBディスクがあれば、環境をまったく失うことはありません。

2014-02-18 10:32:33
結城浩 / Hiroshi Yuki @hyuki

それから、何をバックアップに含めるかですが、将来何か(たとえば書籍化)に使うようなファイルは保存しておきますが、試したゴミファイルはどんどん削除しています。

2014-02-18 10:33:46
結城浩 / Hiroshi Yuki @hyuki

以上、ここまでの自分あてのリプライ連鎖でお答えしました。> @hoshi_takanori

2014-02-18 10:34:32
結城浩 / Hiroshi Yuki @hyuki

「非常に頻繁」と書きましたが、そうでもないこともあります。たとえば先日のCodeIQのジェムストリング問題の場合、2014-01-11から2014-02-18 (さっき)までの間に12回しかzipでバックアップは取っていませんね。ただ、任意の時点でSugarSyncは動いてます。

2014-02-18 10:37:10
結城浩 / Hiroshi Yuki @hyuki

『数学ガールの秘密ノート/整数で遊ぼう』の書籍執筆の場合(Web連載の後作業)、2013-11-22から2014-02-17までの間に30回zipでバックアップを取っています。

2014-02-18 10:39:09
結城浩 / Hiroshi Yuki @hyuki

それはそれとして、過去20年の執筆活動の中でバックアップがあったので助かった!という事態に陥ったのは恐らく数回くらいしかないような気もします。数回あれば十分か。

2014-02-18 10:41:01
結城浩 / Hiroshi Yuki @hyuki

あ、この話は、もう少していねいに加筆して結城メルマガに書くことにしようっと(^^)「本を書く心がけ」のコーナーに。 http://t.co/izvQsgOvGH

2014-02-18 10:42:31
Hoshi Takanori @hoshi_takanori

@hyuki 詳しい説明、ありがとうございます。やはりきちんとシステム化してるんですね。大変参考になります。

2014-02-18 10:45:46
Hoshi Takanori @hoshi_takanori

@hyuki 追加の質問です。バージョン管理システムは使わずにzipなんですか? また、試行錯誤の過程で、例えばgemstringでは、複数のアルゴリズムを考え(=プログラムを作り)、いろんなデータを生成して、最終的には一つを採用したと思いますが、ボツにしたものは即削除ですか?

2014-02-18 10:54:11
結城浩 / Hiroshi Yuki @hyuki

@hoshi_takanori さきほどからすばらしく的確なご質問で感嘆しています。バージョン管理をするほど規模が大きいことはやっていないのでzipでバックアップを取っています。以前はsvnやgitで原稿管理していましたが、それが必要になる状況はほとんど発生しないので止めました。

2014-02-18 10:59:07
あおみかん@AknEp @AknEp

@hyuki 一連のツイート拝見しました。 svnやgitなどのVCSを使っていないのが少し以外だったのですが、どういった理由があるのでしょうか? 良かったら教えて頂けると幸いです

2014-02-18 11:00:53
結城浩 / Hiroshi Yuki @hyuki

@hoshi_takanori 場合によります。ジェムストリングの場合は多くの場合はパラメータを得るための試行錯誤が多かったので、それを得たあとはプログラムも削除しています。残しておいてもたぶん私自身にも意味不明なことをたくさんやっていますから。

2014-02-18 11:00:57
結城浩 / Hiroshi Yuki @hyuki

@hoshi_takanori 複数アルゴリズムを作って意味がある場合には残しておきますが、たいていはそういう場合にはひとさまに読めるような形にして、フィードバック文書に解説こみで含めてしまいます。以上です。

2014-02-18 11:01:49
結城浩 / Hiroshi Yuki @hyuki

@aknep 先ほども書きましたが、一人で執筆していて、バージョン管理システムを必要とする局面がほとんど起きなかったからです。svnやgitをしばらく使っていましたが。複数人で作業するなら話は違うと思います。

2014-02-18 11:03:30