2011/11/08

[SQL Server] 利用 Trigger 進行資料異動的備份

在系統開發過程, 我們往往沒事先規劃在一些重要資料修改過程中進行備份. 使得系統上線後又要改程式, 將程式中有進行修改 / 刪除的行為, 加入備份的程式碼 (例如將欲修改的資料寫一份到 log 表格). 但也許在經過工程師來來去去後, 新的工程師又忘了加入備份的程式碼, 導致最後又要重新檢視所有程式進行修改.
為了避免上述的情況不段重演, 所以考慮在不動到程式的情況下進行資料備份, 也就是利用 trigger, 在指定表格修改或刪除的時候將資料備一份到 Log 表格.

2011/11/03

[Java] 讀取 Google Android Market 的 Sales Report

參考資料: http://code.google.com/intl/zh-TW/apis/checkout/developer/index.html
POST URL: https://checkout.google.com/api/checkout/v2/reports/Merchant/{merchantID}
在抓取 Report 前, 先說明如何找到後面程式需要的 Merchant IDMerchant Key.

2011/11/01

[Java] 讀取 App Store 的 Sales and Trends Report

參考文件: iTunes Connect Sales and Trends Guide (PDF)
在第三章 [Downloading, Reading and Understanding Sales and Trends Data] 有提到一個 Auto-Ingest Tool.
因為此 class 可在網路上找到 Source Code, 所以就能瞭解此程式到 App Store 抓 Report 的做法.
此程式的關鍵就在於 Apple 有放出一個 URL (https://reportingitc.apple.com/autoingestion.tft) 讓需要的人可透過簡單的 HTTP POST 來取得一個 .gz 檔.
取得此 .gz 檔後, 可再自行解壓縮以得到一個 .txt 的 CSV 資料檔, 最後再將此 CSV 格式檔匯入資料庫中.

2011/09/07

[Others] 新版的 Microsoft Download Manager

以前下載 MSDN 的軟體時, 會自動啟動 File Transfer Manager (FTM).
不過這兩天要下載時, FTM都不會被啟動, 而是直接透過瀏覽器進行下載. (應該是因為我用了 IE9)
且由於檔案動輒幾 G 的大小, 常常斷線又沒續傳, 實在是頗傷腦筋.
後來查到 Microsoft 出了一版新的 Download Manager. (http://www.microsoft.com/download/en/details.aspx?id=26214)

2011/08/18

[Java] Apache 的 Commons Configuration 入門

2011/04/06

[C#][XPath] 模擬 XPath 的 max 與 min

在 XPath 中, 有兩個函式感覺會很常用, 但 C# 中卻沒 support. 那就是 max() 和 min().
少了這兩個函式, 每次想找 xml 資料中的最大/最小值, 就只能用 Linq 或是 Select 出所有標籤後, 在程式中去一個個比對.
其實 XPath 只要轉個彎, 就能做出類似的功能.

2011/03/29

[BIRT] BIRT 的 Runtime Connection 設定 (proxool)

BIRT(Business Intelligence and Reporting Tools) 這套 Java 的報表套件其實還蠻好用的. 不過報表設計工具只有整合在 Eclipse.
有用過這一套的人大概都知道, 設計完一個報表後會產生一個 .rptdesign 的檔案.
而一般在程式中呼叫此報表檔, 並繫結資料的程式碼大致如下:
IReportRunnable design = this.birtReportEngine.openReportDesign("test_report.rptdesign");
IRunAndRenderTask task = this.birtReportEngine
                .createRunAndRenderTask(design);
// set report parameters
task.setParameterValue("startTime", "2010-09-01");
task.setParameterValue("endTime", "2010-12-01");
// set output format
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
options.setOutputStream(response.getOutputStream());
task.setRenderOption(options);
// run the report
task.run();
task.close();

2011/03/15

[SQL] IP 轉 Number, 與 Number 轉 IP 的 function

分析使用者的 IP 是來自哪個國家/城市, 在觀察網路行為上是很重要的一項數據.
有興趣的人可以到這裡找尋一些 IP 與地理資訊的相關資源.
至於 IP 轉換成數字的公式, 可以在 IP address 的 wiki 找到.

2011/01/27

[XPath][C#] 利用 XPath 的 contains 查詢特定的元素

透過 .Net 處理 XML 時, 有時會想要類似 SQL 裡的 IN (‘a’, b’, 'c’) 的查詢方式.
查一下 w3schools 的 XPath 函式庫, 可以發現一個 function 還蠻符合的:
fn:index-of((item,item,...),searchitem)
只是一套用到程式中, 就會產生以下的 Exception:
Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.
發生此問題的原因在於 .Net 並未完全支援 XPath 的函式, 有興趣的可以參考這個網址.

2011/01/26

[tool][VBScript] 用來刪除空資料夾的小工具

因為有些程式或 3rd-party 工具會產生一些暫時用的資料夾, 為了管理方便, 會想定時清掉沒資料或是過期的的資料夾. 這個小工具就是為了做這種事而寫的.
以下的程式可以包裝成 .vbs 檔, 然後設定到每日排程去執行.