搜尋此網誌

2011年11月7日

[Win] 移除 MSN 4.7

@echo off
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove
end


這個語法其實讓人挺懷念的,Windows XP 預設內建 Windows Messenger 4.7 ,這個在 MSN 推出之後顯得相當多餘。以前光是打開 Outlook Express 就會讓這個小程式跟著自動啟動,想關都關不掉,因此在安裝 Windows XP 時我習慣會將這個功能給移除掉。

將程式碼儲存為 Batch 檔案是方便大量安裝時,只需要按一下批次檔就可以幫你移除掉。如果你只是單台電腦,不妨就按個 Win + R ,貼上中間的語法就可以了。

[Mac] MacMoney 與 TapExpense 聯手記帳

TapExpense & MacMoney

使用 iPod Touch 記事並不是難事,在 App Store 上有好幾款有用的程式,像是 TapExpenseiXpenseItMoneyTron,但是記帳需要的不只是考慮介面,還有是否符合個人的需求。

早期我是用 Excel 記帳,後來使用 Mac 之後改用記帳軟體 MacMoney,一用就用了三年。這款軟體的優秀之處在於可以管理各個帳戶,現金、金融帳戶之類的。記帳的概念和會計差不多,支出、收入、資產、負債的會計恆等式讓我記帳相當順利。使用 iPod 之後,原本想說能夠使用移動裝置來記帳應該會挺方便,但 MacMoney 的作者沒打算推出 iOS 版本的軟體,因此要用同步的方式來記帳似乎是個問題。

行動裝置的記帳軟體多半是記錄收支,也就是假設你只有一種資產多個支付方式,TapExpense、MoneyTron 就是這類。這類的軟體有個缺陷,就是沒辦法記錄資產轉移,例如存款就是從現金移轉到金融機構,但因為設定就是只有所有的收支通通是記錄到單個資產,所以資產間的轉移自始不存在。同類交易行為還有提款、匯款、加值悠遊卡,這些都沒辦法利用這類軟體,如果硬要使用支出或收入科目來記錄,那麼無疑會讓支出、收入被浮誇,每提一次款就好像多了一筆收入。

另外一類軟體則是具備多個帳戶可供記錄,像是 iXpenseIt 就是很好的例子,具備多個資產多個支付方式,資產間的轉移都能輕鬆記錄。不幸的是,帳戶、支付方式、收支分類,每多一個選項你就必須要多花個兩秒鐘來選,雖然事後記載分析消費狀況可以很方便,但缺點就是要花太多時間在選擇上。

軟體設計的部分,越是詳細越會失去彈性。

儘管 iXpenseIt 比較接近 MacMoney,不過太過接近的壞處就是:同一筆帳款我必須要記兩次。平常消費的時候我用行動裝置的記帳軟體,回到家之後全部的帳款還是由 MacMoney 負責。你要兩套軟體互相配合,有點像是要兩個超級英雄聯手一樣,先不論壞人是否會被擊敗,光是決定誰是主誰是從就得花些腦筋來解決。因此我選擇使用僅具有記錄收支功能的 TapExpense 來記錄。

要讓 TapExpense 的資料能夠順利轉移到 MacMoney 上,第一步就是要讓兩邊的記帳科目相同,唯有兩邊的科目都一樣才能讓帳目匯入到正確的位置。我覺得比較頭痛的大概就是要用手指一個一個 Key 科目,光想到要花的時間就令人頭大,因此找了 Lita 來修改 TapExpense 的資料庫,等到完成之後再匯回軟體。

匯出之後還有個麻煩的地方,兩套軟體的欄位數根本不同,所以你會需要一個重新編排資料的過程,這種麻煩事如果每個禮拜要做一次,你一定會累死。因此我決定冒險學習如何用程式語言來代勞,選擇的是用 Perl 。

其實在尋找兩套軟體資料交換的方式時,不禁讓我思考軟體之所以限制的邏輯。收支軟體不能記錄資金的移轉,但交易資料通常都可以從帳本上面觀察到流向,沒必要多此一舉拿存摺去登補再記載到軟體上。

如果你硬要用 TapExpense 來記錄類似存款之類的交易,我有個作法就是資產類的科目列在收支分類上新增為「支出」項目。例如支付方式選擇「A-現金」,分類則選擇「A-郵局」,如此以來就可以記載存款到郵局的交易行為。但我也提過了,這樣的作法就會讓你的支出大大增加,因為對軟體來說這樣等於是你用現金買了個名叫「郵局」的東西,你提越多錢就等於花越多錢,等到你把提出來的錢真正拿去購買物品,這樣你的支出看來會成為兩倍。

由於我不打算把 TapExpense 當做分析消費的工具程式,MacMoney才是,因此我也無須管程式認為我這樣做是否妥當,重點是將資料匯入到 MacMoney 後是否能正常。如果你打算讓 MacMoney 和 TapExpense 能夠互通有無,必要的就是讓 TapExpense 削弱些功能,關閉橫向的圓餅圖分析(因為資產間的移動而無法正確顯示消費狀況)。

2011年11月6日

[Mac] 用 Lita 修改 TapExpense 資料庫

用Lita編輯TapExpense

在 iPhone 上面重建自己的記帳習慣,最大的困擾應該是要手動一個一個建置各個收支分類與付款方式。當我第二次將 TapExpense 安裝到我的 iPod Touch上的時候就感覺到這樣的問題,這時候突然發現用鍵盤跟滑鼠輸入資料應該遠比觸碰好用多了。


TapExpense 匯出

要利用電腦來修改 TapExpense 資料庫的話,你會需要用內建的資料庫備份功能將最新的資料庫利用 Email 送出,接下來再使用 Lita 來修改資料庫檔案。


Lita 編輯 TapExpense 資料庫

Lita 是一款 Adobe Air 程式,他的功能就是觀看與修改 SQLite 資料庫檔案,而 TapExpense 正是使用這種格式。

我的計畫是要將 MacMoney 的分類與帳戶分類新增到資料庫中,因此分類與支付方式之前都要添加代表支出、收入、資產的代號。
  • 支出(Expense):E
  • 收入(Income):I
  • 資產(Asset):A

TapExpense 匯入

存檔完成之後再用 Email 將資料庫寄回,選擇使用 TapExpense 將資料庫開啟。這邊需要注意的就是,將資料庫匯入時會覆蓋所有設定。

2011年11月5日

[Mac] MacMoney 匯入 TapExpense 資料 - 轉換篇

iPhone 記帳軟體 TapExpense 是我目前隨身記帳的軟體,而在家則有 MacMoney 負責管總帳,每次要邊看 TapExpense 一邊重新輸入資料到電腦當中實在有些麻煩。因此想找出一個解決的方法,讓我將 TapExpense 所產生的 CSV 資料匯入到 MacMoney。

由於 TapExpense 匯出的資料和MacMoney有些不同,前者的資料欄位有 8 欄,後者則是 5 欄。另外就是 TapExpense 支出項目的數值會自動添加負號(-),如果直接引進 MacMoney 的話,支出費用的記錄會發生借貸逆向的狀況。

幸運的是,因為 Mac 已經事先安裝 Perl,因此找了個 Perl 的程式碼改改,會將 TapExpense 的資料改成我們要的。

1. TapExpense / 工作 / 匯出CSV格式資料

2.收到Email後將裡面的資料儲存為 input.csv

3.將以下的程式碼儲存為 converter.pl,和 input.csv 放在一起

$file = 'input.csv';
open (F, $file) || die ("Could not open $file!");
while ($line = <F>)
{
($field1,$field2,$field3,$field4,$field5,$field6,$field7,$field8) = split ',', $line;
#分開各欄數值
$field3 =~ s/-//;
#取代負號
$result = "20$field1,$field4,$field5,$field3,$field8";
#補回西元成四位數
$result =~ s/20Date/Date/;
#取代標題誤植20
print $result;
}
close (F);


converter.pl 的功能是將 TapExpense 的資料依照逗點切開,只取出日期、分類、付款方式、金額、帳目。

不知為何 TapExpense 將年份設定為2位數,2011/01/01就會變成 11/01/01,因此在日期字串加上"20"。

由於這樣又會讓第一列的標題也多了個"20",會讓 MacMoney誤認為是筆錯誤的資料,因此做了取代 。


4. 開啟 Terminal ,輸入以下語法
perl converter.pl > macmoney.csv

5.開啟 MacMoney / 網路記帳 / 從檔案匯入 即可。



  • 想找更簡單的資料轉換方式嗎?參考這篇:糊里糊塗的小泉: [Mac] Converting TapExpense reocrd to MacMoney by Automator - http://goo.gl/syoHv