2012年11月30日金曜日

お財布をプレーンテキストで管理する

mohとは?

家計簿を付け始めて何年か、いろんな方法を試してきた。主に電子的なやり方でやってきていて(紙ですることも検討はしてみた)、最近はGnuCashからExcelに戻って、簡単な表を作って、あまり細かい項目は書かずに大雑把な合計だけを書くようにしていた。

だけど、自宅PCがMacに変わった。わざわざMS Officeを買う必要もないかと思いLibreOfficeで家計簿をつけてみることにしたのだけど、これが失敗。以前Excelで使っていた表をインポートすると、なんだか表の表示が崩れてきてしまう。

では、ということでNumbersを試してみたけど、データのインポートがうまくいかない。なんだか同じ列なのに金額だったり日付だったり異なった種類のデータとして解釈されてしまう。GnuCashは操作がしにくい感じがするしなあ。

ということで、家計簿ソフトを自作することにした。howmとhowmoneyを参考に、howmのメモに書き散らした支出入の記録から会計簿を作成するようにした(howmに依存はしていない。多分org-modeとかでも使えるはず)。また、GnuCashを参考に、一応二重簿記になっている、と思う。

インストール

まずOCamlをインストールして欲しい。最初はRubyで書こうかと思ったけど、なんとなく再帰で処理するところがしっくりこなくて、OCamlで書いた。

次にhttps://github.com/yoriyuki/moh (2013/8/27追記:masterブランチはRubyで実装されるようになったので、OCaml版はhttps://github.com/yoriyuki/moh/tree/OCamlから。)からmoh.mlをダウンロードして適当なところに置く。財務データが置かれているディレクトリのトップに置くと便利かも。

これでインストールはおしまい。

使い方

データの準備

当然、mohを使うには家計簿を付けなくてはいけない。家計簿はフリーフォーマットのプレーンテキストファイルで、財務データ以外のデータを含んでいても構わない。また、ひとつのファイルにまとまっている必要はなく、複数のファイルに分散していて良い。

例えば、~/kakeiboに財務データを置くことにしたとすると、~/kakeibo/foo/bar/kakei1などといったファイルに書き込めば良い。

財務データは1行で書かれている必要がある。例えば、

[2012-11-30]\$ Wallet  -> Expense 昼食 セブンイレブン 焼肉弁当 700

と書くと、財布から700円を昼食として支払ったことを表す。「セブンイレブン コンビニ」はコメント。

Wallet,Expense,Incomeは特別な口座で、略記法が用意されている。上は

[2012-11-30]\$ 昼食 セブンイレブン 焼肉弁当 700

と書ける。

もし、40万円給与をもらったとすると、

[2012-11-30]\$\$ 給与 400000

と書ける。

レポートの作成

ここで、

ocaml moh.ml -d XXX Wallet 20120101 20121231

とすると、XXXのサブディレクトリを再帰的に探索して財務データを抽出し、集計してレポートとして表示する。上は、Walletの年次リポートを作成している。-dが省略されれば、カレントディレクトリをトップトップとして扱う。

今後

いろいろ足らないところはあると思う。Githubで公開しているのでどんどん改良してくだされば嬉しい。

2012年11月25日日曜日

荘子とコミュニケーションの問題



コミュニケーションにはいろいろな問題があって、例えば上司と部下の関係とか、実際的な問題もたくさんある。だけど、ここではとりあえずもっと原理的に、感情とか意図とか、一般に心の内部にあって他人から観察できないものをどうやって伝えることができるのか、という問題を、特に荘子に書かれた議論から考えてみたい。といっても、(書物としての)荘子がコミュニケーションについて触れている箇所は多くなくて、秋水篇の最後だけだと思う。読み下し文を引用する。(荘子 第2冊 金谷 治訳注 岩波文庫)

荘子、恵子とごう梁の上に遊ぶ。荘子いわく、ゆう魚出で游びて従容たり。これ魚の楽しみなりと。恵士曰く、子は魚に非ず。安んぞ魚の楽しみを知らんと。荘子曰く、子は我に非ず。安んぞ我の魚の楽しみを知らざることを知らんと。恵士曰く、我は子に非ざれば、もとより子を知らず。子も固より魚に非ざるなり。子の魚の楽しみを知らざること、全しと。荘子曰く、請う、その本に循わん。子の曰いて、女安んぞ魚の楽しみを知らんと云う者は、既己に吾れのこれを知ると知りて我に問えり。我はこれをごうの上りに知るなりと。
(変換できなかった文字はひらがなのままにした。)「これ」が何を指しているのかわかりにくいので、解釈に迷うのだけど、こういう議論をしているような気がする。

恵子の立場は、ときどき村上春樹の小説に出てくるようなコミュニケーション不可能論者みたいな感じがする。すべての人は違った考えを持っているから、コミュニケーションは不可能。コミュニケーションが不可能であることさえ、コミュニケートすることも不可能であると。

これに対する荘子の答えは簡単で、違っていると言える時点で何か共通の尺度でその考えを比較している、つまりコミュニケーションの可能性を仮定している。ただし、コミュニケーションの必要十分条件が共通性にあると仮定する限りで。ここでは、コミュニケーションを私秘的な物が知られる可能性があることを指して使っているので、この必要十分性は仮定して良いと思う。

というわけで、荘子は恵子的立場を否定するのだが、では荘子は魚と人間がコミュニケートできると主張したいのだろうか。多分そうではないと思う。ここでのポイントは、「共通性がコミュニケーションの可能性である」というテーゼが最初から論証なしに仮定されている点で、荘子はこれへの背理法を試みている気がするのだが、そこまで掘り下げた議論が書かれていないので、なんとも言えない。

2012年11月5日月曜日

電子書籍への失望

一時期私も電子書籍に期待して、本をKindleで買ったり自分で自炊したりしていたのだけど、最近は幻滅している。

電子書籍といっても、最初から電子データで提供されているものと、もともと紙だったのをスキャンしたものと、大きく2つに分けられると思う。で、どちらも今ひとつなのだ。

まず電子データで提供されているものへの不満
  • タイトルが少ない。フッサールのイデーン(の英訳)はあったけど、ヴィトゲンシュタインは論考のみ。
  • Kindleの表(Real World Haskell、あとARM System Developer's Guide)とか数式の組版がめちゃくちゃ
  • 誤植も多い。
じゃあ紙の本から自炊すればいいかというと、そうでもなくて、
  • 自炊は面倒。日曜の晴れた日に自炊していると、人生いかにも無駄にしている気がする。業者に頼むことも出来たけど違法っぽいし。
  • ページをめくるのが遅い。まあこれは私が未だにiPad1でPDFも上手に作れていないからだろうけど、そんなことにいちいちお金や時間を投資してられない。
  • 地味な問題点だけど、裁断してしまうと本としての形がなくなるので人に貸せない(その人がローテクだった場合)。
というわけで紙の本に回帰しようかなあと思っていたりする。

あと、一言付け加えると、AdobeのDigital Editionの電子ブックを2つ持っているけれど(どちらも数学書)、組版は文句のつけようがないものだった。