2013/04/05

Candy Crush


Candy Crush 最近火紅,在 FB 上連很多早就宣告不玩遊戲、不接收遊戲 request 的朋友都淪陷了。
我也不例外,完成 170 關,不過距離目前開放的 355 關,連一半都還不到。

心得:
1. 基本上這是個很吃運氣的遊戲,愈後面的關卡愈是如此。
2. 遊戲支援 Android、iOS、FB,每個裝置的「愛心」數量是獨立的、而完成的關卡在與 FB 連結後是同步的,所以像我有兩台 Android 裝置加 FB,每次玩就基本有 15 次機會。
3. 第一個連結 FB 的裝置,只要不確認,就可以保留所有 FB 好友送愛心的訊息。但如果是用 FB 開啟遊戲,所有訊息中的愛心或物品都會直接視為已接收,無論你有沒有按確認。
4. 基於 2, 3 兩點,到後來除非連玩好幾小時,不然其實很難把愛心用完。

不過決定要戒了,
我想最簡單的戒法就是當遇到需要 3 個 FB 好友才能解開後續關卡時,不要送出 request,就像現在一樣。

2013/03/23

Just a Note:SVN Repository Partial Merge

先描述一下情境,目的是要將自己開發環境的 svn 轉移到客戶的 svn repository。

客戶的 svn repository 事先就建立好,且有制定好的目錄結構,我們只是將 source 放到對應的路徑下。
現行的做法是,從開發環境 checkout 出最後一版資料,然後 commit 到客戶的 svn repository,視為全新的開始,過去的歷程就一筆勾銷。
然後開發人員便將 svn reporistory 重新指到客戶的環境。
這其實也沒什麼問題,因為客戶根本不需要知道開發期間資料來來回回異動的歷程。

只是對於沒事會常常去看歷程的人來說(<-- 就是我),歷程突然都沒了(除非連回原本的 repository),其實很困擾。

是不是有什麼辦法可以在移轉後保留原本歷程呢?因此有了這篇筆記。

2013/02/19

Just a Note:Convert Data between UTF16 String and Words

用 Java 很容易,用 javascript 完全沒頭緒......記個筆記,順便灌溉一下乾涸的 blog......

Convert data between UTF16 String and Words by using CryptoJS components.

Example:


<!DOCTYPE html>
<html>
<head>
<script src="core.js"></script>
<script src="enc-utf16.js"></script>
<script>
function testTo() {
    var data = document.getElementById("inputData").value;
    document.getElementById("result").innerHTML=CryptoJS.enc.Utf16LE.parse(data);
}
function testFrom() {
    var data = document.getElementById("inputData").value;
    var a = [];
    for(var i=0; i<data.length; i+=8){
        a.push('0x'+data.substring(i,i+8));
    }
    var words = CryptoJS.lib.WordArray.create(a);
    document.getElementById("result").innerHTML=CryptoJS.enc.Utf16LE.stringify(words);
}
</script>
</head>
<body>
<input type="text" id="inputData" />
<button type="button" onclick="testTo()">to UTF16-LE</button><button type="button" onclick="testFrom()">from UTF16-LE</button>
<div id="result"></div>
</body>
</html>


Get core.js, enc-utf16.js from CryptoJS.

Download the example code

2012/12/19

Android App:Daily Money Change Log 2012/12/18






This project is a fork of original Daily Money project hosted on github by Dennis Chen

https://github.com/dennischen/daily-money



1. added: export csv/import csv/share csv for tags
2. added: reset data for tags
3. modified: remove auto creating default account when there is no account exist




1. 新增:匯出 CSV/匯入 CSV/分享 CSV 加入標籤相關資料
2. 新增:重置資料 加入標籤相關資料
3/ 修改:移除當沒有任何帳戶時、自動建立預設帳戶的功能



標籤功能的簡單說明


2012/12/18

Android App:Daily Money Enhancement - Tag



設計理念:
Tag 可以視為「專案」、「分類」、「預算」......等等,最重要的是可以一對多,一筆帳務明細對應到多個 tag。
例如,假設同時記錄全家人的收支時,可能會想將帳務細分為「由誰支出」、「花在誰身上」、「花在哪個特定的事件上」或是同時要區分上述所列的項目,可以建立以下 tag:
支付人.A
支付人.B
花費使用人.C
花費使用人.D
專案.X
專案.Y
然後在一筆明細中設定多個 tag:支付人.A、花費使用人.C、專案.X
來表示這筆花費屬於專案 X,且是由 A 支付、花在 C 身上。(會太斤斤計較嗎?哈哈!)
接著可以透過報表或查詢功能去篩選某一期間、某些 tag,來查看收支的情形。
基本上,tag 和 account 的性質有點類似,可以把 account 視為實體帳戶,例如現金、銀行帳戶等等真的有實體存在;而 tag 可視為虛帳戶,例如同一個銀行帳戶裡的資金可能會劃分不同的用途。
透過 account 和 tag 的搭配,便可以同時達到彙整帳務或是細分帳務的目的。



功能需求:
1. Tag 管理畫面與帳本管理雷同
2. 點選 icon 後,顯示 tag 清單
3. 按 menu 出現「新增」按鈕
4. 長按清單項目出現「編輯」、「刪除」、「複製」按鈕
5. TB_TAG 記錄 tag 資訊
6. TB_DETTAG 記錄 details 和 tags 的對應關係資訊
7. 報表僅提供一 icon,進入後畫面與現有報表雷同,但最右側按鈕改為「週」、「月」、「年」、「日」「自訂區間」切換呈現。
8. 同 tag 中金額計算根據記帳時 to account 的借貸性質進行加減。to account 為資產時金額為正,其餘金額為負。
9. 「匯出 CSV」、「匯入 CSV」兩功能需加入 TB_TAG 和 TB_DETTAG。

PS1. 圖表有必要嗎?(不想做)

基本上如果做完這樣的功能,我也懶得再做預算功能了......

我自己做了一張很醜的圖

標籤管理

建立/修改明細時,可設定標籤。

標籤是多選形式。

標籤金額的報表





目前進度到 6.,其實有點卡住,
有很多東西可以和原本 Account 的處理共用,但是如果要做 refactoring,大概就得大改;倘若只是硬加上新功能的話,感覺又有很多重複的程式,真是兩難;另一方面,不太清楚原作者程式架構的設計理念,新加入的東西似乎有點格格不入。

就跟做專案一樣,每個人的程式撰寫風格都不同,也很難鉅細靡遺地規範程式應該怎麼寫;不論好壞與否,總是會有歧異而增加維護、修改的難度。

2012/12/17

Android App:Daily Money Change Log 2012/12/17





This project is a fork of original Daily Money project hosted on github by Dennis Chen

https://github.com/dennischen/daily-money


1. added: report for tags
2. modified: move tag settings up in add/editing details screen
3. fixed: backups house keeping function after merging official release 0.9.8
4. fixed: minor bugs


1. 新增:標籤相關的報表功能
2. 修改:新增/編輯帳務明細時,設定標籤的項目上移。
3. 修正:合併官方版本 0.9.8 後,保留最近七天的備份資料功能失效。
4. 修正:小問題修正

標籤功能的簡單說明


2012/12/12

Android App:Daily Money Change Log 2012/12/12




This project is a fork of original Daily Money project hosted on github by Dennis Chen

https://github.com/dennischen/daily-money

1. Merge official release 0.9.8-121107-freshly
2. modified: hide installment/recurring settings when editing details.
3. modified: reorganize report display into Accounts Changes & Accounts Balances with day/week/month/year mode
4. added: tag management
5. added: add tag settings when add/editing details
6. TODO: report for tags

This is alpha release. After finishing the report for tags, tags will be more practical.


1. 合併官方版本 0.9.8-121107-freshly
2. 修改:編輯帳務明細時,隱藏分期/週期設定。
3. 修改:調整報表呈現,區分為「帳戶餘額」、「帳戶變動」,並可在日、週、月、年循環切換。
4. 新增:增加標籤管理功能
5. 新增:新增/編輯帳務明細時,可設定標籤。
6. TODO:標籤相關的報表功能

待標籤的報表完成後,標籤的功能才有意義。