在系統開發過程, 我們往往沒事先規劃在一些重要資料修改過程中進行備份. 使得系統上線後又要改程式, 將程式中有進行修改 / 刪除的行為, 加入備份的程式碼 (例如將欲修改的資料寫一份到 log 表格). 但也許在經過工程師來來去去後, 新的工程師又忘了加入備份的程式碼, 導致最後又要重新檢視所有程式進行修改.
為了避免上述的情況不段重演, 所以考慮在不動到程式的情況下進行資料備份, 也就是利用 trigger, 在指定表格修改或刪除的時候將資料備一份到 Log 表格.
2011/11/08
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 ID 和 Merchant Key.
POST URL: https://checkout.google.com/api/checkout/v2/reports/Merchant/{merchantID}
在抓取 Report 前, 先說明如何找到後面程式需要的 Merchant ID 和 Merchant 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 格式檔匯入資料庫中.
在第三章 [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)
不過這兩天要下載時, FTM都不會被啟動, 而是直接透過瀏覽器進行下載. (應該是因為我用了 IE9)
且由於檔案動輒幾 G 的大小, 常常斷線又沒續傳, 實在是頗傷腦筋.
後來查到 Microsoft 出了一版新的 Download Manager. (http://www.microsoft.com/download/en/details.aspx?id=26214)
2011/08/18
[Java] Apache 的 Commons Configuration 入門
- 開發工具: Netbeans7.0 (http://netbeans.org/)
- Web Server: Tomcat5.5 (http://tomcat.apache.org/)
- 所需套件:
- commons-configuration-1.6 (http://commons.apache.org/configuration/)
- commons-lang-2.6 (http://commons.apache.org/lang/)
注意: 不要用到 commons-lang3 以上, 因為 namespace 改變了. (後續說明) - commons-collections-3.2.1 (http://commons.apache.org/collections/)
- commons-logging (http://commons.apache.org/logging/)
因為 Tomcat 已有這個套件, 所以不用特別加入.
2011/04/06
[C#][XPath] 模擬 XPath 的 max 與 min
在 XPath 中, 有兩個函式感覺會很常用, 但 C# 中卻沒 support. 那就是 max() 和 min().
少了這兩個函式, 每次想找 xml 資料中的最大/最小值, 就只能用 Linq 或是 Select 出所有標籤後, 在程式中去一個個比對.
其實 XPath 只要轉個彎, 就能做出類似的功能.
少了這兩個函式, 每次想找 xml 資料中的最大/最小值, 就只能用 Linq 或是 Select 出所有標籤後, 在程式中去一個個比對.
其實 XPath 只要轉個彎, 就能做出類似的功能.
2011/03/29
[BIRT] BIRT 的 Runtime Connection 設定 (proxool)
BIRT(Business Intelligence and Reporting Tools) 這套 Java 的報表套件其實還蠻好用的. 不過報表設計工具只有整合在 Eclipse.
有用過這一套的人大概都知道, 設計完一個報表後會產生一個 .rptdesign 的檔案.
而一般在程式中呼叫此報表檔, 並繫結資料的程式碼大致如下:
有用過這一套的人大概都知道, 設計完一個報表後會產生一個 .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 找到.
有興趣的人可以到這裡找尋一些 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 的函式, 有興趣的可以參考這個網址.
查一下 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 檔, 然後設定到每日排程去執行.
以下的程式可以包裝成 .vbs 檔, 然後設定到每日排程去執行.