2020年2月19日 星期三

Backreference in a regular expression

通常我們在使用正規表示法(Regular expression)的時候,如果需要讓前面出現的字串與後面字串相符,就需要使用反向參考(Backreference)來達成

像是日期格式中如果使用分隔符號則我們通常會預期是相同符號(EX: 2020-02-19 or 2020/2/19)
如果要透過正規表示法做到這樣功能,就可以透過反向參考來達成

底下的pattern就是我用來 parse 日期的範例

((19[7-9]\d|20\d{2})|\d{2})([- /.])(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?|([0]?[0-9]{1}|[1]{1}[0-2]{1}))\3([0]?[0-9]{1}|[1-2]{1}[0-9]{1}|[3]{1}[0-1]{1})

\3是依據pattern中括號分組出現的位置來決定

參考出處:請點我

2020年2月18日 星期二

Visual Studio 2015 Installer Project

雖然現在最新版已經來到Visual Studio 2019,但因為一些原因,公司仍使用Visual Studio 2015,所以升級IDE的版本並非首要任務,也因此才會有此篇文章的誕生啦~~~

隨著程式日漸龐大,部屬到正式環境能夠越單純越直覺,能夠讓後續接手的人好維護為首要目標,因此開始想著要建置安裝檔

很不幸的,不曉得是年久失修還是怎樣,VS2015原生的InstallShield就是沒辦法從公司安裝‧
在苦惱了好久為什麼InstallShield跟鬼打牆似的就是沒辦法找到安裝檔,鑽牛角尖了一陣子以後,開始尋找其他替代方案,碰巧被我知道微軟自己本身有相對應的工具Visual Studio Installer Project,這可能就是天殺的原因吧~~~阿斯

下載該元件很簡單,依序點選【工具】(Tools)==>【擴充功能和更新】(Extension and Updates)後再出現的新視窗點選線上更新再搜尋 Installer Project即可找到

希望大家不需要像我鬼打牆一樣苦惱了老半天

2013年3月17日 星期日

滑動頁面時不自動換標籤頁

最近試著用 ActionBarSherlock 增加標籤頁的功能,

當加入兩個以上的標籤並使用 ViewPager 功能時,常常遇到滑動螢幕時就會自動換至另一個標籤頁的情況

為了避免使用造成不便,找到了一篇非常有用的文章,按我連結

Santiago 運用繼承 ViewPager類別,並改變他在事件觸發時的相關作用。

2013年3月3日 星期日

NetworkOnMainThreadException解決之道

先前開發 Android 的目標版本使用Android 2.3.3,後來開發的 App 需要去網路上抓取一些資訊

不加思索使用模擬器開發測試沒有問題以後就發佈到 Market,

沒想到在手機上卻怎麼樣也顯示不出來!後來查看LogCat 出現NetworkOnMainThreadException

查找 Android Developer Doc 後才知道這個問題是自Honeycomb(Android 3.0) 後開始檢查在主執行緒使用網路存取或I/O存取,

避免程式沒有回應(Application Not Responding)的情況,簡稱ANR。

解決 INSTALL_FAILED_MISSING_SHARED_LIBRARY

最近在試著用 Eclipse 開發小程式,開發到後來想要加入Google Map 功能

原先應用程式的開發目標選定 Android 2.3.3 - API Level 10

當我試著把 <uses-library android:name="com.google.android.maps" />加到AndroidManifest.xml 重新執行時

卻沒有辦法將程式裝到我的模擬器中,查看 LogCat 看到 INSTALL_FAILED_MISSING_SHARED_LIBRARY

2013年2月18日 星期一

如何註冊Yahoo! Japan

由於Yahoo! Japan帳號不允許台灣註冊,所以開始找尋怎樣才能加入日本雅虎會員

先前已經有人發表過相關的文章,點我連結

裡面介紹了PacketiX VPN Client 這套軟體,

藉由這套軟體連結至特定的VPN Server後,讓網站識別 IP Address 失效

原先ㄚ狼兄已經將大部份的流程寫出來,但是自己在Windows 7上嘗試安裝時遇到了一些問題

無法直接使用下載的設定檔

2012年8月7日 星期二

不同版本的IE 瀏覽器套用 CSS 技巧

最近寫 CSS 發現 IE 在各版本的 CSS 呈現結果不盡相同,

為了要讓各版本的內容可能看起來一樣

這時候只好針對各個版本做編輯其 CSS 內容

為了達到這個目的,我們需要使用條件註釋(Conditional Comments)來解決

如下列內容,當IE版本小於等於(less then or equal)則將增加使用 .item 與.itemName 樣式

<!--[if lte IE 9]><style>
.itemRow {
    height:100%;
    display:block;
}
.itemName {
    height:100%;
    display:inline-block;
    vertical-align:middle;
}
</style><![endif]-->

2011年5月1日 星期日

Windows 7 x64+VirtualBox下安裝Mac OSX

最近試了好多方法從VirtualBox安裝 Mac OSX,終於在奮鬥了一週後成功
中間爬了許多文章,在這邊跟大家分享一下主要執行步驟
系統環境
CPU:AMD Phenom II X4 810
OS:Windows 7 x64
VM:VirtualBox 4.0.6

2011年3月29日 星期二

HTML 5旋轉範例

好久沒有寫文章了,最近開始研究 HTML 5 的寫法,所以就寫了一個sample。
以前想要在非 IE 瀏覽器上做旋轉的動作,是件難事,
直到 HTML 5 的出現,即解決這個窘境
底下這個 sample 主要是要實作 HTML 5 旋轉 (rotate) 功能,在一個畫布(canvas)底下,
如何描繪一個矩形並旋轉




2010年8月15日 星期日

jQuery UI 1.8 datepicker 搭配民國年

最近在使用 jQuery UI 的時候,針對 datepicker widget 想要設定成民國的型式

查找到一篇有用的文章,點我連結

不過該內容是針對 UI 1.7.2 所寫,而我使用的 UI 是較新的版本,

因此就改寫了部份語法,在這邊跟大家分享一下

主要我跟 Charlie 一樣,都改寫了_generateMonthYearHeader,

它主要的用途就是顯示年份與月份的下拉式選單,不過我是直接將原先的寫法覆寫,

因此如果沒有引用此 JS 檔時,不會影響到暨有的 datepicker!

2010年3月8日 星期一

高斯消去法

最近在看數值分析的書籍時提到求線性方程式解時可以分為兩種方式

  • Direct Method

  • Iterative Method


Direct Method 運用給定的步驟下求得結果;而 Iterative Method則是未知的,它的結果取決於它收斂的速度

底下為針對Direct Method,撰寫關於 高斯消去法 (Gauss Elimination) 求解的程式,

2010年2月27日 星期六

NPOI 格式設定問題

最近在操作 NPOI 儲存 Excel 後用 Excel 2003開啟時

當檔案的格式設定過多會出現錯誤訊息,提示無法開啟,畫面如下

2010年2月2日 星期二

行列式

其實在國中就有學過行列式的運算,但是當初只了解他如何計算而已

其算法如下圖所示:

行列式公式

直到最近看 Eigenvalue 與 Eigenvector 的計算時,發現其可以用來求解特徵值,

2010年1月24日 星期日

牛頓法(Newton-Raphson)尋根

在金融領域裡,我們經常需要求得某線性方程式的根

要求得一條方程式 f(x) = 0 的根時,其實有很多種解法

但是當這條方程式為非線性時,就沒有辦法使用簡單的推導求得

這時候我們即可使用牛頓法來求解

2010年1月23日 星期六

累積常態分配反函數

前一篇 常態分配數值逼近法 曾經提到怎麼運用數值分析求得 CDF

但是常常我們不只是需要使用 CDF, 我們可能還需要取得標準常態分配 N(x) 中的 x 變數其值。

在這邊感謝同事提供他的資料給我,才得知原來已經有好幾個人針對反函數求解。

查找了一下文章後發現 Quantitative Finance Collector這篇提及了兩種作法,

分別是 Boris Moro 以及 Peter J Achlam所發表的理論。

2010年1月22日 星期五

常態分配數值逼近法

以前在唸研究所做研究時,免不了要使用到常態分配!

原先都是使用 trapezoidal quadrature formula 積分的方法計算面積求出其累積機率。

雖然曾經懷疑為什麼 Excel 可以運算得這麼快,但是一直沒有去找到真正的解答。

直到最近又翻起 John Hull 的書籍,才知道可以運用逼近的方法達成..

在 Options, Futures, And Other Derivatives 6th Ed. p.297 中有提到其如何用數值逼近

其準確度到達小數第六位,在此列出其程式碼,希望能藉此幫助更多人。

2009年12月25日 星期五

C# 運用 AssemblyName 叫用 Method範例

最近在試一個東西,首先,要從 XML 讀取檔案,

裡面記錄了每個類別的 AssemblyFullName、是否需要執行此類別,以及它執行時所需要的參數。

接著我需要藉由程式判斷是否叫用此類別。類別的架構設計如下面範例所示:

AbstractShape
Triangle
Rectangle

AbstractShape 中有兩個函數,GetName 與 GetArea,

我要在程式動態載入的時候呼叫 GetArea,語法如下:

2009年12月22日 星期二

NPOI 的儲存格自訂格式

最近在移植舊的寫法轉換成為 NPOI 的元件時,突然被一個問題卡了許久...

那就是 Excel 的儲存格格式。

雖然從 Tony Qu 大大的文章中得知了一些設定的必要條件,

文章中說明了當使用 Excel 內嵌的格式與 Excel 所支援的自訂格式設法,

.Net 存取 Excel 檔案的新方法

最近觀看了在 CodePlex 發表的文章發現原來早在很久之前,詳情請點我

原來 Apache Software Foundation 早就針對 Java 存取 Office 文件深入操作-POI,

POI 這個專案完全支援 Office Open XML standards (OOXML) 與 OLE 2 Compound Document format (OLE2複合文件格式),

也就是說連 OFFICE 2007 也可以用!! 真是造福不少人阿...

不過現在連 .Net 終於可以擺脫原先使用 COM 存取 Excel 速度不彰的問題,那就是藉由 NPOI 來達成!

NPOI 其內容是由 tonyqus 大大移植 POI 來的,

目前 release 的 1.2.1 版是根據 POI 2008/10/19 發佈的 3.2 final 版本實作

相信日後還會持續更新,請各位做好長期抗戰準備....

2009年11月20日 星期五

OUTER JOIN的注意事項

首先先說明一下什麼是OUTER JOIN。


SELECT * FROM A
JOIN B
ON A.ID = B.ID


上例是典型的 INNER JOIN,其意思為將 A 資料表 與 B 資料表 其 ID 欄位資料相等的結果列出。

OUTER JOIN 則是當我們有某些資料不僅是要 show 出兩個資料表相等的結果,

可能有一方以上的資料需要全部顯示,即使另一方沒有該筆資料的情況下,

就要使用 OUTER JOIN,沒有資料的另一方會顯示為NULL。