tag:blogger.com,1999:blog-30296044519121093312024-02-19T16:21:23.677+08:00ERP / CRM (opentaps)研究學院企業資訊化理論與實作技術必須取得一個合理的平衡點, 太偏一方都是個對企業造成不符成本/效益的資訊化架構, 從 opentaps 專案來學習與批判這專案架構的優缺, 與如何加以量身客製化修改, 才是我們的研究 Java EE 的新目標.KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-3029604451912109331.post-18603179349891109432007-11-06T03:32:00.000+08:002007-11-06T03:33:24.743+08:00jMaki<span class="style7">jMaki<br />是SUN支持的一個AJAX框架。這個項目的是讓Java開發人員在其基於Java的應用程序中 (不管是JSP標籤庫還是JSF組件)都能使用AJAX技術。jMaki使用了Java與JavaScript中最優秀的部分以此來提供一些Rich AJAX style widgets。jMaki當前提供的bootstrap widget是來自<a href="http://dojotoolkit.org/">Dojo</a>,<a href="http://script.aculo.us/">Scriptaculus</a>,<a href="http://developer.yahoo.com/yui/">Yahoo UI Widgets</a>,<a href="http://labs.adobe.com/technologies/spry/">Spry</a>,<a href="http://www.dhtmlgoodies.com/">DHTML Goodies</a>,和<a href="http://www.google.com/">Google</a>等 組件庫。jMaki提供為這些widget組件庫提供了一個公共接口以便讓你可以在同一頁面中一起使用這些組件庫。如果你有興趣利用jMaki項目來快速 開發Web應用程序,可以使用NetBeans 5.5的jMaki插件。這個插件可以直接把jMaki組件拖放到JSP頁面中。如果不熟悉該插件可以通過其網站提供一段<a href="https://ajax.dev.java.net/screencast/jMakiDemo.html">視頻</a>來學習。</span>KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.com0tag:blogger.com,1999:blog-3029604451912109331.post-61551010127071945112007-10-24T14:44:00.000+08:002007-10-24T14:46:24.291+08:00[opentaps ERP+CRM社群議會] 本週主題20071025<p>時間為: 10/25 pm 14:00~18:00 自由進場<br /><br />本週 Topic:<br /></p><ol><li>ERP及 CRM 的簡介與實務 (丁元)<br /></li><li>SVN + <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> 教學 (志均)<br /></li><li>opentaps ERP+CRM 中文化工作方式與任務分派 (小郭)</li><li>wiki使用教學與當前進度說明</li><li>問題與討論</li></ol>新主站與wiki+SVN: <a href="http://opentaps-chinese.blogspot.com/">http://opentaps-chinese.blogspot.com/</a><br /><br />說明事項:<br /><ol><li dragover="true">原本社群主題為 L2J Java 遊戲伺服器, 經過大家討論也許較看不到"願景"<br /><a href="http://tools.assembla.com/l2jdp_pg_chinese/wiki">L2J PG.Chinese(天堂II Java Server)</a><br />決定減少研究時間,但歡迎想了解如何架設者,<br />利用每週定時的聚會時間來請教與學習.<br /><br /></li><li dragover="true">新社群為 opentaps ERP+CRM 研究社群<br />每週主參與者們進行相關或技術心得分享...<br />採自由參與, 甚至歡迎有興趣了解的您參與學習或領取分組工作.<br /><br /></li><li dragover="true">當前 SVN source code 約 450 MB, 檔案總數約 10,000,<br />下載總時間約3小時, 欲下載者請先有心理準備.<br /></li></ol> * ERP 專有名詞中文化組<br /> * 開發技術研究組 (Java ERP 技術開發工程)<br /> * ERP+CRM 使用者介面與理論研究組 ( ERP 教肓訓練顧問)KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.com0tag:blogger.com,1999:blog-3029604451912109331.post-34550042337429819102007-10-24T00:36:00.000+08:002007-10-24T00:40:16.622+08:00opentaps 使用 jar 檔案清單總表version: 5760<br /><br />總共 438 個<br /><ul><li><a href="http://kuo.chaoyi.googlepages.com/opentaps_lib_jar_name_20071023_1.jpg">依名稱排列</a></li><li><a href="http://kuo.chaoyi.googlepages.com/opentaps_lib_jar_dir_20071023_1.jpg">依目錄排列</a><br /></li></ul>KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.com0tag:blogger.com,1999:blog-3029604451912109331.post-52075708778766864342007-10-23T22:42:00.000+08:002007-10-23T22:43:09.832+08:00技術對談~看 Google 怎麼用 Java<p><a href="http://www.ithome.com.tw/itadm/article.php?c=39042&s=1">原文 iThome online</a><br /><br />這篇文章雖然有點舊了, 但卻可以從中體會Google的想法<br />到是可以給其他企業一些參考性的建議:<br /><br />如何在不斷擴增的Java中保持"輕快",<br />老僧人前陣子閱讀的這二本書,<br /><a href="http://www.oreilly.com.tw/product_java.php?id=a168"><strong>Better, Faster, Lighter Java (</strong>輕快的好 Java</a><strong><a href="http://www.oreilly.com.tw/product_java.php?id=a168">)</a><br /></strong><a href="http://www.oreilly.com.tw/product_tip.php?id=a180"><strong>Prefactoring (</strong>軟體預先架構之美學<strong>)</strong></a><br /><br />或許加上以下的Google訪談中的重點,<br />會給您一點"約束"力, 來減低架構上的設計...<br /><br />小僧人就把文中的重點給整理出來供大家思索一翻...<br /></p><ul><li>我們喜歡使用現成的PC,來建構我們的系統,而不是大型而且可靠度佳的昂貴主機。<br />單一PC隨時可能發生錯誤,我們試著用軟體的方式建立容錯的機制。</li><ul><li><br /></li></ul><li>我們沒使用J2EE,這其中有許多原因,包括Google在J2EE之前就已經有了自己的分散式架構,甚至還是使用 Java 語言建構出來的。</li><ul><li><span style="color: rgb(0, 102, 0);">小僧人個人見: J2EE確實學習與教育成本太高了, 大約要3-5年的經驗者人力</span><br /><br /></li></ul><li><span style="font-weight: bold; color: rgb(153, 0, 0);">失敗不是少見的情況,而是很常見的。</span>當你要建立一個像Google這樣規模的搜尋服務,你可以想像會有多少問題,但是我們就是要持續的讓服務運作下去,盡量讓系統可以自動修復,不要造成延遲。<br /><br /></li><li><span style="font-weight: bold; color: rgb(102, 0, 0);">在中介層的開發,Java是很好的選擇</span>。<br /><br /></li><li>採用 Java 有一個很重要的理由是想要降低開發的心力和時間。另一個理由,學生在學校裡學的都是Java,而且喜歡Java,他們甚至不懂C++,所以比找C++人才容易。而且Java除錯容易多了。</li><ul><li><span style="color: rgb(0, 102, 0);">小僧人個人見: 找一班C++的人力資源, 確實比Java來的難...</span><br /><br /></li></ul><li>在Google使用C++的應該多一點,可能是 6:4 左右。不過,使用Java的人正在成長中...<br /><br /></li><li><span style="color: rgb(68, 68, 68);">有許多在Java社群有所貢獻的人,現在都在Google<br /><br /></span></li><li>Google盡可能的維持小型團隊,而且讓小型團隊在同地點工作,理想的團隊規模可能是5個人,4個或5個,也許多到8個。大過這個數字,溝通就複雜多了。</li><ul><li>小僧人個人見: 這是很棒的軟體開發專案的建議<br /><br /></li></ul><li><span style="color: rgb(68, 68, 68);">現在有多少員工...一萬人<br /><br /></span></li><li>Google不會把5、6個新員工放在一起,由他們自己做事,新員工都會安插在一些原有的團隊裡面。<br /><br /></li><li>我們已經完成JDK 1.6的測試,只要等JDK 1.6公佈後,我們也可以很快地轉換過去。<br /><br /></li><li>每個語言都有生命週期,有些語言持續增加新功能,導致該語言後來很難寫、很醜、難以使用,很多語言後來變成這樣,<span style="font-weight: bold; color: rgb(153, 0, 0);">而我會盡力讓Java不變成這樣。 我相信現在的Java已經是一個相當完整的語言,雖然還是有很多好的功能可以加入,但將這些東西一股腦全部加進來絕對是錯的。</span> </li></ul>KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.com0tag:blogger.com,1999:blog-3029604451912109331.post-51147568696856562932007-10-23T02:29:00.000+08:002007-10-23T02:36:55.709+08:00最簡單但卻是最棒的答案-Better, Faster, Lighter Java(心得一)<p><span style="font-family: Times New Roman,serif;">有時候其實最簡單的架構, 卻是最棒的答案~<br /><br /></span><span style="font-weight: bold; color: rgb(153, 51, 153);">信守從最簡單的答案變成最棒的答案</span><span style="font-family: Times New Roman,serif; font-weight: bold; color: rgb(153, 51, 153);">, </span><span style="font-weight: bold; color: rgb(153, 51, 153);">總是在你堅守這原則後驚異發現</span><span style="font-family: Times New Roman,serif;"><span style="font-weight: bold; color: rgb(153, 51, 153);">...</span><br /><br /></span><span style="font-family: Times New Roman,serif;">這本書雖然以 Java 來看,<br />但實際上卻很適合各領域的程式語言開發案的成員們閱讀<br />每種語言的背後都應該以這精神來構建才會是個良方...<br /><br />Better, Faster, Lighter Java<br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIprpYus0mEQCDOJ9MXsaV_sXCKtT-GAHVtHoKPlMTd7jXIsijrwJW0hqChA23A7U5HrZn5TpwPCnAZpxazxWS3OWDmY8k1gJ6xaGT8YJBCYWDvnkgFrD5ifc80eJfZh-zMfBrY4nRWFA/s1600-h/0596006764_cat.gif"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIprpYus0mEQCDOJ9MXsaV_sXCKtT-GAHVtHoKPlMTd7jXIsijrwJW0hqChA23A7U5HrZn5TpwPCnAZpxazxWS3OWDmY8k1gJ6xaGT8YJBCYWDvnkgFrD5ifc80eJfZh-zMfBrY4nRWFA/s320/0596006764_cat.gif" alt="" id="BLOGGER_PHOTO_ID_5111166391355650610" border="0" /></a><br /></p><p style="margin-bottom: 0cm;"><span style="font-family: Times New Roman,serif;"><a href="http://www.oreilly.com/catalog/bfljava/">http://www.oreilly.com/catalog/bfljava/</a></span></p><p style="margin-bottom: 0cm;"><span style="font-family: Times New Roman,serif;"><a href="http://www.oreilly.com.tw/product_java.php?id=a168">http://www.oreilly.com.tw/product_java.php?id=a168</a><br /></span></p><p style="margin-bottom: 0cm;"><span style="font-family: Times New Roman,serif;">Java</span>的複雜度已經超越我們的能力<span style="font-family: Times New Roman,serif;">...</span><br />我們漸漸發現控制不了也學不完的新 <span style="font-family: Times New Roman,serif;">Java</span>架構<span style="font-family: Times New Roman,serif;">...</span></p> <p style="margin-bottom: 0cm;">我們的經驗與能力的極限的結果<span style="font-family: Times New Roman,serif;">,</span><br />我們花在撰寫利用新架構的<span style="font-family: Times New Roman,serif;">Code</span>竟比解決真正問題的部分還多<br />新的枷鎖不斷增加<span style="font-family: Times New Roman,serif;">, </span>卻離直接的幫助漸行漸遠...</p> <p style="margin-bottom: 0cm;">面對不對受商業影響的 <span style="font-family: Times New Roman,serif;">Java</span> 我們不需要</p><ul dragover="true"><li style="font-weight: bold; color: rgb(153, 51, 153);" dragover="true">超過三到五層的<span style="font-family: Times New Roman,serif;"> Logic Layer,</span> 應當簡化為二層簡化無法控制的複雜度</li><li style="font-weight: bold; color: rgb(153, 51, 153);" dragover="true">不需要 <span style="font-family: Times New Roman,serif;">EJB, </span>大多數的結果只是 <span style="font-family: Times New Roman,serif;">the bloat "</span>澎風<span style="font-family: Times New Roman,serif;">" 的虛表與走向失控</span></li><li dragover="true"><span style="font-weight: bold; color: rgb(153, 51, 153);">使用</span><span style="font-family: Times New Roman,serif; font-weight: bold; color: rgb(153, 51, 153);"> Tomcat </span><span style="font-weight: bold; color: rgb(153, 51, 153);">不是龐大的 </span><span style="font-family: Times New Roman,serif;"><span style="font-weight: bold; color: rgb(153, 51, 153);">Web Logic or JBoss</span> ..</span></li></ul> <p dragover="true" style="margin-bottom: 0cm;"><span style="font-family: Times New Roman,serif;"></span></p> <p style="margin-bottom: 0cm;"><span style="font-family: Times New Roman,serif;">J2EE</span> 的學習成本超乎我們個人的學習極限<span style="font-family: Times New Roman,serif;">,</span> 且受廠商們不斷為了收益<span style="font-family: Times New Roman,serif;">,</span><br />廠商必需持績加諸新疊床 <span style="font-family: Times New Roman,serif;">Design pattern, </span>來確保企業對其產品的買單...</p> <p style="margin-bottom: 0cm;"><span style="font-family: Times New Roman,serif;"><a href="http://www.hibernate.org/">Hibernate</a>, <a href="http://www.springframework.org/">Spring</a> </span>捨 <span style="font-family: Times New Roman,serif;">J2EE </span>改採以走最少量簡化的 <span style="font-family: Times New Roman,serif;">API</span> 來達到同樣的目的,<br />但這卻是每位<span style="font-family: Times New Roman,serif;">Java</span>開發者最想要的!</p><br /><span style="font-weight: bold; color: rgb(153, 51, 153);">不可避免的膨風 </span><ul style="font-weight: bold; color: rgb(153, 51, 153);"><li>超大型的企業架構才叫時尚<span style="font-family: Times New Roman,serif;">? </span>卻苦了近<span style="font-family: Times New Roman,serif;">90%</span>的<span style="font-family: Times New Roman,serif;">Java</span>開發者</li><li>用大砲打小鳥的架構<span style="font-family: Times New Roman,serif;">?</span></li><li><span style="font-family: Times New Roman,serif;">Design pattern </span>拾簡單化換威力<span style="font-family: Times New Roman,serif;">, </span>就是膨風</li><li>超多的膨脹程式碼並不是來自對於寫<span style="font-family: Times New Roman,serif;">code</span>知道太多的人<span style="font-family: Times New Roman,serif;">, </span>反是來自那些知道太少的人</li></ul> <p style="margin-bottom: 0cm; font-weight: bold;">對抗膨脹的五個基本法則</p> <ol><li><span style="font-family: Times New Roman,serif;"></span>保持簡單<br />優秀程式員的價值在於簡化<span style="font-family: Times New Roman,serif;">, </span>更易除錯<span style="font-family: Times New Roman,serif;">, </span>更易進行測試<span style="font-family: Times New Roman,serif;">, </span>更易進行加強與維護<span style="font-family: Times New Roman,serif;">, </span>更易其它團員接手<br /><br /></li><li><span style="font-family: Times New Roman,serif;"></span>每次做好一件事<br />單體化的 MVC <span style="font-family: Times New Roman,serif;">(Model-View-Controller)</span>是優雅與專注的表現<br />也利於<span style="font-family: Times New Roman,serif;">Refactor</span>重構<span style="font-family: Times New Roman,serif;">, </span>更利於測試<span style="font-family: Times New Roman,serif;">.<br /><br /></span></li><li><span style="font-family: Times New Roman,serif;"></span>力求通透<span style="font-family: Times New Roman,serif;">transparency<br />Hibernate or JDO </span>是很棒的替代方案<br /><br /></li><li><span style="font-family: Times New Roman,serif;"></span>開放擴充<br />善用<span style="font-family: Times New Roman,serif;">OO</span>設計原則中的部份 <span style="font-family: Times New Roman,serif;">Abstraction</span><br />善用 <span style="font-family: Times New Roman,serif;">ORMDBS </span>的設計<br />善用 RMI <span style="font-family: Times New Roman,serif;">(Remote method invocation)<br /><br /></span></li><li><span style="font-family: Times New Roman,serif;"></span>吃什麼像什麼<br />過度的相信<span style="font-family: Times New Roman,serif;">Java</span>廠商建議<span style="font-family: Times New Roman,serif;">, </span>特定<span style="font-family: Times New Roman,serif;">J2EE</span>的信仰與廣告只會引領你走向毀滅與專案失控<span style="font-family: Times New Roman,serif;">...</span></li></ol>KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.com0tag:blogger.com,1999:blog-3029604451912109331.post-87993410186060993782007-10-17T03:53:00.001+08:002007-10-23T22:44:52.321+08:00opentaps 版本 1.0 概觀Version 1.0 是 2007 年預定發布的版本,<br />並且是一個完整企業級應用平臺能提升整體的企業工作效率.<br /><br />opentaps 開發技術架構圖<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigdnOPtb5fsf-LiEC5UOe1VHEYl1pzBuV5jJWg7_cl6ZTOIQYWKuXUtiCRQunTH0RrlqTipxGNhXe4PEfhxZeUR_fV_CtYfOSE4Sw2nndzhv7m_fk2HHo0Z02ONVtNKZkLZMQUAqCvkXg/s1600-h/Ofbiz_framework_small.gif"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigdnOPtb5fsf-LiEC5UOe1VHEYl1pzBuV5jJWg7_cl6ZTOIQYWKuXUtiCRQunTH0RrlqTipxGNhXe4PEfhxZeUR_fV_CtYfOSE4Sw2nndzhv7m_fk2HHo0Z02ONVtNKZkLZMQUAqCvkXg/s400/Ofbiz_framework_small.gif" alt="" id="BLOGGER_PHOTO_ID_5122214184057238322" border="0" /></a><br /><br />Opentaps 1.0 包含著以下的子系統:<br /><ul><li>客戶關係管理(Customer Relationship Management, CRM);</li><li>企業資源規劃(Enterprise Resource Planning, ERP);</li><li>財務會計(Financials and Accounting),</li><li>庫存(Inventory), 倉儲(Warehouse), 及製造(Manufacturing);</li><li>採購(Purchasing); 完整的線上即時與銷售存儲點功能.</li><li>它同時也包含著整合外部應用的工具, 包括客製化應用的文件,<br />Outlook, 及行動裝置支持通過 SOAP, XML-RPC, 與 SyncML.</li></ul><br />opentaps 應用架構圖(當前)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwf8VAx_OTh9QrO3fQF_RyzpPFCFul073yWbMDb5feoahFM9kfHs4fn-LX-c5nlig59dnhRrZTHNhbnmEB-kRwgHsK8bHCHt4Y-cnGzO8i5_DujVSohyQ9GliVh1cFyCb4yQKgbkpbZqk/s1600-h/opentaps_apps1.png"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwf8VAx_OTh9QrO3fQF_RyzpPFCFul073yWbMDb5feoahFM9kfHs4fn-LX-c5nlig59dnhRrZTHNhbnmEB-kRwgHsK8bHCHt4Y-cnGzO8i5_DujVSohyQ9GliVh1cFyCb4yQKgbkpbZqk/s400/opentaps_apps1.png" alt="" id="BLOGGER_PHOTO_ID_5122216511929512802" border="0" /></a><br /><br />opentaps 應用架構圖(較早期)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxo88gIdgGJLWu8qimExao7LalVQ7tvfDXsy5BOUgpTTc-toEqUr2N7C0xubHInI8NucRMJkFkJmV4OP7NyxQ9Ze4WEhl_FOQL0ICCM36wJVO3xOwhJLeknXtzu2vvWriLCq03Zlquao/s1600-h/Opentaps_apps.png"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxo88gIdgGJLWu8qimExao7LalVQ7tvfDXsy5BOUgpTTc-toEqUr2N7C0xubHInI8NucRMJkFkJmV4OP7NyxQ9Ze4WEhl_FOQL0ICCM36wJVO3xOwhJLeknXtzu2vvWriLCq03Zlquao/s400/Opentaps_apps.png" alt="" id="BLOGGER_PHOTO_ID_5122216056662979410" border="0" /></a><br /><br />opentaps 使用者介面<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivWZHZwpQZGFdtco19QUsX6-nXtk8VjV3xxLQh1PhwZ2WIodNtcd7C-5epjHxfWbrcw3WOPBYs3W09lGgOnOaNsSjEcGivmVa2bY-XFTuMHu-1V0pSJ6dJ0EDK9qCDQ9KkbCbYCc0A4GM/s1600-h/Opentaps-CRM.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivWZHZwpQZGFdtco19QUsX6-nXtk8VjV3xxLQh1PhwZ2WIodNtcd7C-5epjHxfWbrcw3WOPBYs3W09lGgOnOaNsSjEcGivmVa2bY-XFTuMHu-1V0pSJ6dJ0EDK9qCDQ9KkbCbYCc0A4GM/s400/Opentaps-CRM.jpg" alt="" id="BLOGGER_PHOTO_ID_5122215064525534018" border="0" /></a><br /><br />opentaps 財務會計輸出的報表<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3McPh-ki2ZwrY0QMqfvbyDN_zt0bnYmyPh8JRihqGO0A3HXxAHPtuSH0V1dqMpUli6ffGLLvFxCm2oQlBfEwrrNe1gwlHB-x1OVEin0HBjGvzkwKh3RQSjI6DoHmq8gy-35VxzEOkMx8/s1600-h/Opentaps-Financial.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3McPh-ki2ZwrY0QMqfvbyDN_zt0bnYmyPh8JRihqGO0A3HXxAHPtuSH0V1dqMpUli6ffGLLvFxCm2oQlBfEwrrNe1gwlHB-x1OVEin0HBjGvzkwKh3RQSjI6DoHmq8gy-35VxzEOkMx8/s400/Opentaps-Financial.jpg" alt="" id="BLOGGER_PHOTO_ID_5122216851231929202" border="0" /></a><br /><br />opentaps 整合輸出式的電子商務網站系統<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHFYw17lqnuVpeBr2zCLTIQehukF0J2AiEYdLSsYdOh3We6ZZYtCuIfXD7-6WmL4H_nSaZP74tXuodm055Ru2_Ep4lbWHMuLgNd4KHyyCEwnnuJWSJYvw9m8-tJz_t5YgA1EYpFgjmYFQ/s1600-h/Opentaps-eCommerce.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHFYw17lqnuVpeBr2zCLTIQehukF0J2AiEYdLSsYdOh3We6ZZYtCuIfXD7-6WmL4H_nSaZP74tXuodm055Ru2_Ep4lbWHMuLgNd4KHyyCEwnnuJWSJYvw9m8-tJz_t5YgA1EYpFgjmYFQ/s400/Opentaps-eCommerce.jpg" alt="" id="BLOGGER_PHOTO_ID_5122217147584672642" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikn55pohCF9llEHa8F1J-eJtTNzfnhavptAurUGamshFtB0SXaw3BwvYprIXfFOVgAJjfl7Rl031MRm2vpDlkGO2PTJgX3hggMA-Zzn5DCYxkMWuiDWGRnWXvX8Qy4QvDu-JKEclDZMlg/s1600-h/opentaps_apps.png"><br /></a>KuoChaoYihttp://www.blogger.com/profile/16615231812854206332noreply@blogger.com0