2013年1月23日 星期三

BPMN 2.0

2013年1月22日 星期二

搞笑談軟工: 台灣工程師,好棒

搞笑談軟工: 台灣工程師,好棒: Jan. 21 21:21~22:47 成立泰迪軟體之後,Teddy認識了不少朋友。後來才慢慢發現,原來在台灣(主要在台北)有那麼多各式各樣的活動,舉凡軟體開發、創業、介面設計、人生哲理…真可說是應有盡有。更難能可貴的是,很多工程師利用下班或是假日的時間,藉由參加這些活動...

2013年1月21日 星期一

[ Notes ] Making Architecture Matter

   Before doing enterprise architecture, PLS have well-defined business process and its specific owner. Their role will be similar to Product Owner( a term in Scrum ). He have to develop the process and ensure it up-to-date.

   Making Architecture need to be lived in daily operation process and easy reference to. Stakeholders and IT stuffs are in the same page and system(or tool).
   Some KPIs is used for evaluation an architecture success :
1. the reduce number of database platform
2. increase the operation capacity  to more servers & databases by the same of stuffs
3. the steady growing number of servers and databases w/o hire more people
4. the above situation also applied to network infrastructure / web servers / applications / softwares
5. increase the stability of infrastructure and applications

Refer to the article : Making Architecture Matter

2013年1月20日 星期日

網路ATM找不到讀卡機

        前一陣子突然每一家銀行的網路ATM都讀不到晶片卡, 本來還以為是公司的保密政策(不准外接儲存設備之類的)發揮功效了. 經MIS解釋後, 該政策只鎖定"大量儲存裝置", Card reader不在此限. 好在有另一台古老的TX17先撐著用.
     
        好景不常, 這陣子接了需要用到Smart Card的專案, 這下子硬著頭皮也得要解決問題. 找了許久終於找到這個FAQ(http://helpdesk.changingtec.com/helpdesk/?m=faq&a=display&gid=29#faq518) , 順利解決問題.

2013年1月17日 星期四

外銷品沖退稅之自動輸入-Part 1

    在政府德政之下, 公司有了多申請一些外銷品沖退稅的機會, 掐指一算, 天那~一年下來可以省下許多稅費. 大家也有performance啦. 馬上就出現一個問題, 這個工作要找誰做 ? 想當然爾, 敝公司的中心思想就是IT啦. 一切唯有(一定要)資訊系統(或工具)能夠解決問題. 所以聲明在先, 我不是駭客, 只是用工具代替人工輸入資料.

    為了節省人工輸入大量的外銷品沖退稅的相關資料(包括了用料清表製作 & 沖退稅申請), 直接採用HP QuickTest Professional(QTP)當作平台來進行實作. QTP是一個成熟的商業軟體, 相對於RobotFramework使用上較為簡單. 當然價格也不便宜, 幸運地是....(消音中). 如果諸位大德想省錢, 可使用RobotFramework.

    技術細節容後再述, 重要的還是business. 究竟自動輸入這檔事, 能不能用在外銷品沖退稅電子化作業(以下簡稱電子化業)呢 ? 經過數輪的POC(Proof of Concept), 確實可行. 這當中也幸運地得到海關官員的"協助", 將未來可能發生的狀況先行"教育". 過程中, 該位官員的積極和指導, 讓我相信政府基層人員還是有好人.

     好了, 到底我學到了什麼呢 ?
1. 工業局核發的原料核退標準的文號格式是xxxxxxxxxx-xx-xx但是電子化作業的"工業局標準文號"不能有dash(-). 只能是xxxxxxxxxxxxxx(總共14碼)
2. 工業局核退標準之貨品規格有兩類
     2.1 詳列規格 : "原料項次新增""規格"欄是下拉清單只要選對即可.
     2.2 各種規格,於用料清表報明 : "原料項次新增""規格"欄是text. 所載入的文字必須與欲退稅的進口報單項次之規格相符, 否則會錯單. 也就是無法報關喔.
3. 101/9/17()的進口報單項次, 若無載明"規格", 無法適用電子化作業. 可請報關行向進口地海關申請變更
4. 進口報單項次的納稅辦法需為32, 非32者, 可以付規費$100, 申請變更
5. 若該次申請出口沖退稅之任一進口報單是101/9/17以前(非電子化作業), 只能以紙本申請為之, 不適用"外銷品沖退原料稅電子化作業".

2013年1月10日 星期四

[Notes] C.C. Agile Sprint 5 - 就讓功能測試自動吧:RobotFramework

Introduction to RobotFramework

According to blogs, RobotFramework's operation is similar to QTP

Selenium Library - only capable to Html based web. It can't adapt Flash, Applet.

Suite Setup / Suite Teardown : suite setup can be used to invoke diff. browsers

Force Tags : Tony經驗上是用來分類哪些是重要的test suite, ex : 當測試時間不夠時, 可以用於指定必跑的test case/suite.

Can integrate other tools to perform Hopper Test etc.

Tips:
1. after "Start Selenium Server", sleep 2s. "2s" is the best practice by Tony but it's no seems in formal docs.
2. not use "Sleep" more, try to use "Wait Until ..."
3. Practice
    1. Single host and multi-system per day : by DRBL + RobotFramework
         Pro : clean env.
         Con : spend time to build images and hard to maintain(upgrade)
    2. Distributed mutlti-system : by Jenkins + RobotFramework
         Pro : Simply deployment
         Con : need lots of hosts
    3. 可攜帶自動測試包 : by Ant + RobotFramework
4. RobotFramework is framework not tool
5. Primary libraries
    1. Builtin Library
    2. Operation System Library
    3. String Library
    4. Collection Library : Array operation
    5. Database Library : DB CRUD but simple
6. For APP Library
    1. HTML-Based App : Selenium Library
    2. Desktop App : AutoITLibrary, (Sikuli), (AWTRobot)
    3. Java App(Applet) : SwingLibrary
    4. Flash App : FlexLibrary
    5. Eclipse Plugin : EclipseLibrary
    6. Interactive Console App : SSHLibrary, TelnetLibrary, (Expect4j)
7. You would experience display resolution issue when adapt Sikuli. PLS use to fix all env.'s resoultion in 1024*768.
8. Environment
    8.1 Runtime : JRE + RobotFramework. Not use Python in Win env. due to version compatible issue.
    8.2 Development : Python + RIDE in Ubuntu

Expert Blog : Tony's NoteBook

Q : diff. from QTP ? QTP is "Record and Play(orRun)" and RobotFramework is ATDD approach with keyword driven.
Q : use to massive manual input ? It is capable.
Q : able to read hardware info/data ex : SmartCard / USB devices ? require other plugin or external tool
Q : able to read Excel/CSV from file repository ? require other plugin

2013年1月7日 星期一

醫療雲 / 健康雲 Experts


【生醫電資領域的雲端運用】

賴飛羆教授
國立臺灣大學生醫電子與資訊學研究所;From Hospital Information System to Personal Health Records
廖淑盈副理趨勢科技; The Myth of Cloud Platform
劉邦鋒教授國立臺灣大學資訊工程學系; 雲端計算簡介
歐陽彥正教授國立臺灣大學生醫電子與資訊學研究所; 生醫電資與哲學
林光龍老師中華電信; 雲端運算的服務發展
陳維超助理教授國立臺灣大學資訊工程學系; Cloud Cameras
張鴻洋技術總監IBM 智慧生活前瞻研究中心; 『醫療雲』串聯『健康雲』:大量資料分析平台在『個人化實證健康照護』的運用
闕志克主任工研院雲端運算行動應用科技中心;Infrastructure Support for Cloud-based Biomedical Applications
何弘能副院長國立臺灣大學醫學院;生醫電資與倫理
黃志源資深經理廣達電腦;行動醫療
陶韻智總經理熱情豆行動樂活科技股份有限公司; APP與雲端於健康樂活人生之應用


2012 第二屆
照護輔助系統創新應用產業發展研討會暨展覽會


彰化基督教醫院 郭守仁 院長 ; 漫步雲端的彰基
謝明家 副院長  (彰基糖尿病健康 e 院); 糖尿病照護
杜思德 院長  (彰基糖尿病健康 e 院)

鄧俊男 總經理  (遠東醫電)
賴政宇 專員  (佳世達科技)

邱以泰 博士  (工研院南分院) ; 跌倒預防

周矢陵 院長  (寬福護理之家)
林燕山 總經理 (真茂科技)
朱麗容 副總經理  (達聲企業)
魏大森 主任(彰基復健科)


衛生署健康照護處 蔡誾誾 副處長; 我國健康照護政策發展
照護輔助系統創新應用產業聯盟 謝長峻 會長
台灣銀髮族協會 曾照嵩 會長


段伴虬 所長  (南開科大福祉科技與服務管理研究所); 社區照護

黃啟瑞 助理教授  (南開科大電子工程系)
蔡錦敦 董事長  (福樂多醫療福祉事業)
張仁耀 經理  (綠湖福祉事業)
洪培修 經理  (中興保全)
陳鴻基 教授  (台灣大學商學院)

銀髮照護

謝長峻 會長  (照護輔助系統創新應用產業聯盟)

陳明堂 執行長  (飛行家旅行社)
黃泰嶂 顧問  (思源健康管理顧問)
張慶光 總經理  (樂齡網生活事業)
林茂雄 先生  (台灣銀髮族總會創辦人)

醫療與長期照護產業的連結

桃園長庚紀念醫院 黃美涓 院長












DAF 2012 第三屆 臺灣智慧醫療論壇

The evolution of hospital information system and personal health records- 台灣大學

遠距醫療照護:透過醫療與IT結合,創造新的雲醫療服務-臺北醫學大學

【二雲四網六屏–智慧醫療新視野】永齡健康基金會

『醫療雲』串聯『健康雲』: 大量資料分析平台在『個人化實證健康照護』的運用-IBM

醫療私有雲,邁向雲端的護理與醫院管理

Utilize TermsComponent in LucidWorksEnterprise(LWE)


1. Modify solrconfig.xml
You can find lots of samples in internet. I still keep "autocomplete" because I still want to keep primary design of LWE
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/autocomplete">
<lst name="defaults">
   <bool name="terms">true</bool>
   <str name="terms.fl">autocomplete</str>
   <str name="terms.sort">count</str>
   <str name="terms.limit">20</str>
</lst>
   <arr name="components">
<str>terms</str>
   </arr>
</requestHandler>
<searchComponent class="solr.TermsComponent" name="terms"/>

2. Modify search.rb in [LWE]\app\webapps\lwe-ui\WEB-INF\app\models\core
a. In order to make TermsComponent works and not to alter LWE a lot, we want to add 1. terms.prefix=xxxx or change "q"  to "terms.prefix". Finally, I choose option#1. My approach is adding one parameter in the http request at line#230(keyword is when :autocomplete) in function,  solr_params(xxxx), new codes are :
params.merge!(
'terms.prefix' => params[:q]
)
b. Because SpellCheck and TermsComponent returns diff. data scheme, we need to add one parser at line#400(keyword is def autocompletions)
if @results['spellcheck'] == nil
@results['terms']['autocomplete'] rescue []    
else
@results['spellcheck']['suggestions'].at(1)['suggestion'] rescue []    
end



2013年1月3日 星期四

[Notes] Solr AutoComplete resources

http://www.medihack.org/2011/03/01/autocompletion-autosuggestion-using-solr/

http://lucene.472066.n3.nabble.com/auto-completion-search-with-solr-using-NGrams-in-SOLR-td3998559i20.html

http://stackoverflow.com/questions/2768770/how-to-structure-an-index-for-type-ahead-for-extremely-large-dataset-using-lucen


http://www.cominvent.com/2012/01/25/super-flexible-autocomplete-with-solr/