發表文章

目前顯示的是 2012的文章

在Ubuntu環境用mimms下載mms串流檔

圖片
影音串流protocol - mms類型的檔案(.wma, wmv) 在Ubuntu系統無法直接用wget指令下載。(錯誤訊息: Unsupported scheme mms) 可以安裝mimms軟體來達到下載串流檔的目的。 (主網站  http://savannah.nongnu.org/projects/mimms/  ) 下載 http://download.savannah.gnu.org/releases/mimms/mimms-3.2.1.tar.bz2 解壓縮後會新增一個mimms-3.2.1的資料夾 (程式是用python寫的,因此需要安裝python才能執行安裝 ) 在目錄下鍵入下列指令來建好安裝環境 python setup.py bulid 再執行下列指令安裝 sudo python setup.py install 安裝完畢後可使用指令 mimms 後面空格後接串流檔位置即可下載 mms的串流檔 (eg: mimms mms://**********/******.wma) 當執行時系統回應 找不到 libmms.so.0 檔案 表示mimms需要用到此不在電腦上的library,必須去下載到電腦上。 直型以下指令下載檔案 (主頁面  http://pkgs.org/centos-6-rhel-6/atrpms-i386/libmms-0.6.2-4.el6.i686.rpm.html ) wget http://dl.atrpms.net/el6-i386/atrpms/stable/libmms-0.6.2-4.el6.i686.rpm 由於ubuntu 預設的情況下無法直接安裝.rpm的檔案,出現訊息Please use alien to install packages 先要下載Alien工具,幫忙轉換rpm檔案成可以安裝在Ubuntu上,用以下指令安裝Alien sudo apt-get install alien (rpm檔案是redhat/fedora 系列使用的安裝檔,debian/ubuntu系列則是用deb檔案,所以在使用alien檔案轉換時,可能會出現相容性的問題,因此非必要、重要的package還是先去找deb的版本) 安裝完畢後用al

敏捷式開發難以改變傳統專案型軟體公司

敏捷式開發(Agile)的主要概念,節錄至 wiki Individuals and interactions  over processes and tools Working software  over comprehensive documentation Customer collaboration  over contract negotiation Responding to change  over following a plan 開發時以小的功能需求面與較短的時間與客戶緊密配合,經鍋多次的循環而達成最後的產品。短的開發時程與目標讓客戶比較清楚自己想要的產品需求是甚麼,也讓程式設計師不會花太多時間重工,解決工程師每當寫好程式時卻聽到team leader對你說:"可是瑞凡,客戶需求變更了"。 國內許多接專案為主的公司都會有一樣的問題,被規定在一份金額、一定時間內做出目標產品,卻總是在開發中變更規格、更改功能,並認為這是應該辦到的。接案子時資源與預算都已經壓縮到最緊,中間卻不斷冒出問題,吃虧的通常都是以客為尊的開發商,工程師也被無條件加班重工。 敏捷開發是否能解決這類的問題?以下有幾個窘境需要面對。 客戶是否願意與開發者緊密配合? 客戶的工作內容不只有監督產品,還需要處理其他的工作項目,加上有些客戶他們是屬於8點上班17點準時下班的習慣,在配合討論時時間難以完整的配合。 客戶是否願意以產品內容最為出發點考量?而不是時間與金錢。 以往的軟體開發waterfall模式太直觀也太深直人心,太習慣一次性的規劃與一次性的付款,讓客戶較難接受以小功能為一個區間來做的方式。 所以整體來說,除非公司自己開發軟體產品,其他產業想要客制化才能實行,不然傳統專案型軟體公司不是不適合敏捷開發,而是考量到客戶的類型本身不適合。 敏捷開發不只是開發人員對於軟體開發流程觀念的轉換,客戶端也需要做改變。 P.S 或許對於台灣資方來講,最敏捷的開發就是責任制,客戶變更需求就叫員工無薪加班把code重寫,自己也省時間跟上層要資源,也省時間與客戶吵架。

[專案] 銀行端末系統

由不同專案中可以了解不同領域的些許瑣事 台灣有許多銀行,在端末terminal system的架構幾乎差不多。而所謂的櫃員、櫃姊也就是在各櫃檯負責做交易的人員。 (台灣其實可以不必這麼多銀行,這情況並沒有因為競爭而讓使用者受惠,這跟台灣不必這麼多大學一樣,但這就是另外一些故事了..) 會叫做端末系統,是因為古早能下指令command line畫面稱為terminal終端機,操作方式如PTT。 櫃源系統就如機場的系統、醫院的病例系統長年已存在,幾乎是由組合語言、C、COBOL之纇的語言撰寫,再傳遞資訊的方式是以一大量的字串,統稱"電文"的方式傳遞、接收訊息。不同銀行接收資訊的雙方(中心與櫃員)的格式各有不同,以這種方式來傳遞資訊安全、快速且又不容易被外部擷取。(相對於現在網頁之間傳遞訊息,訂立相同的header與該傳到畫面的內容body,讓 不同瀏覽器皆能解析 ) 櫃員在每個櫃台都有一定量的現金來提供顧客臨櫃提款,若是櫃員金額不足,則需要向主管申請提領金額到櫃台。 主管授權分為近端與遠端,近端為自己就可敲入主管櫃員帳號密碼,遠端則是會發送訊息到主管櫃元的電腦中請他做核准。 銀行印表機有不同的形式: 存摺印表機:列印存摺,最大能放得下A4大小的紙 匯兌印表機:大型印表機,能印寬版紙。可放入連續報表紙列印 快速印表機:機型如洗衣機,印表機底下有大櫃子能夠放連續報表紙 ‧‧‧ 銀行代碼共七碼,前三碼為銀行碼,接續三碼為分行碼,最後一碼為檢查碼 代碼查詢  http://www.trdo.gov.tw/mtn201/mtn201.asp 附註: 系統環境:iBranch SDK (包含電文、畫面、列印報表格式、程式邏輯) 遇到困難:無技術上困難 (It's long time to go, coming soon)

[專案] 農糧署農業資訊系統整合

由不同專案中可以了解不同領域的些許瑣事 行政院農業委員會農糧署 官方網站  http://www.afa.gov.tw/index.asp 台灣農業大宗可由四個面向來觀察,即農民、組織、產業、土地歷程 每個面向可以對應到其他三項資訊,如以下所示: 農民連結到所屬組織、從事的產業(耕種作物)、耕種土地 組織連結到參與的農民資料、所從事的產業(耕種作物)、耕種土地 產業連到種植該作物的班組織資訊、農民以及該產業的耕種地 土地連結到在此土地耕作的產業作物、組織與農民 組織 台灣常見的農業組織系統為產銷班、吉園圃、產銷履歷 產銷班:政府為了改善農業經營型態,輔導相鄰農地或經營相同產業的農民,互相結合成立組織來做有效律的規劃,擴大生產規模。再有制度的規範下能夠維持產業品質,並且給予輔導、獎勵、補助等措施。 吉園圃:在國人對於健康飲食方面相當的重視,政府推動"吉園圃"安全蔬果標章,讓產銷班的產業經過農政單位的輔導與管理,讓蔬果的產出能夠更加的有保障,增加產品競爭力。 產銷履歷:對於蔬果安全之外,另外對產業的生產線、流通管道...,有著農產品身分證著稱的就是產銷履歷,藉由上標上的條碼"追朔號碼"可以深入了解所買來的食物的詳細資料,在健康上做更嚴格的把關。 土地 農地的規畫可由地政司相關的資訊取得。土地規劃屬於農地的,才能進行合法的耕種、販賣、申請補助...等。但隨著時間與空間的變動,颳風下雨總是會帶來沿河岸的泥土堆積,這河旱地也被鄰近區域的農民拿來申請農地。(這部分是非常弔詭) 產業 台灣本土產的蔬果若算到細項大約700多樣(每個組織、產業的資訊系統的種類名稱也不一) 做整合型系統資訊相關的專案,要先釐清各系統發展的方向,不同方向為出發點的資料並不能參一參就能做成撒尿牛丸,在做整合資料庫也可能資料串得過去,但資料會顯得沒意義。 附註: 系統環境:JSF + SPRING + HIBERNATE, SQL Server 2008 R2 遇到困難:大量資料庫匯入匯整,須要有處理過Big Data相關技術背景來對資料做結構化設計與效能最佳化。

啟動VMware 出現 exception processing message c00013 parameters 764ebf7c

圖片
當啟動VMware 讀取作業系統時出現 exception processing message c00013 parameters 764ebf7c 的錯誤訊息。 是因為VM預設在開起虛擬作業系統時會去偵測原先電腦的硬體,在無此裝置後則會跳出以上的Exception。 在每次開啟image檔時都會遇到此情形,以下參考的解決方法有 1.在VMware Edit Setting裡面把Floppy的connect at power on 取消掉 2.在你的本機BIOS設定不要讀取Floppy

JSF 中 action與actionListener的差異

JavaServer Face (JSF)中,執行網頁頁面上的元件(例如:點選連結h:commandLink, 點選按鈕h:commandButton, 偵測到元件內容onchange, onclick...等)有兩種觸發事件處理方式。 action  eg:  <h:commandButton value="submit" action="nextPage"> action的值作用在於指引到其他頁面,如上述所示,按下submit會跳轉到 nextPage.jsp中 action的內容也可以指到後端交由bean做些邏輯上的處裡,再回傳型態為字串的值來作跳轉頁面 eg:   頁面端 <h:commandButton value="submit" action="controller.goNext"> Bean端 public String goNext(){ ........     return "nextPage" } P.S  1.若回傳null或者method的型態為void將會停留在原先頁面 2.若有制定NavigationRule,字串部分可填入to-view-id actionListener actionListener則是呼叫到bean裡面的method,並且有傳入actionEvent物件。此項目只有負責處裡邏輯上的功能,並沒有頁面呼叫的功用。 eg:  頁面端  <h:commandButton value="submit" actionListener="controller.doSomething"> Bean端  public void doSomething(actionEvent e){ .... } 綜合比較 action: 有回傳值 可導頁 可做商業邏輯處裡 actionListener: 無回傳值 不可導頁 可以做商業邏輯 P.S  兩者可同時使用,也就表示在同一個動作中,至

JavaServer Face 簡介

圖片
JavaServer Face 簡稱 JSF( 官方網站 ),是為了簡化程式設計是在頁面端的設計工作。以往的網頁html語法在呈現面不能與JAVA的framwork緊密的相互的連結,而對於不常設計網頁的設計師來說,可以運用此技術設計網頁的UI介面、處理輸入的驗證(Validation)、做頁面導航規則、處理事件的觸發,功能不足的部分也可以自訂JSTL。 JSF目前最新為2.0板,符合MVC網頁架構的View,除了基本的架構外也有許多UI括中原件,如 ICEfaces , RichFaces , PrimeFaces ...等 。 JSF網頁中所使用到的 tags (eg: h:inputText, h:form, h:commandLink...)是被包裝過的html屬性,以利於跟後方連結的java程式做溝通。不同的UI外掛原件也有自己的tag屬性,上述網址也有許多DEMO範例可以參考。 整體來說JSF是可以解決在網頁設計經驗不足的人身上,路邊隨便抓一個人,用少少的程式碼做出大大的效果。不過面對需要做出如原件連動等有變化的功能則會比較難入手,加上原件是被包裝過的,新舊tag之間甚至會有打架的情形,單一使用是需要注意的。 JSF沒能火紅,我認為是能易於入手(若是有人把環境都先架好更棒),但要再擴充相對也變得比較麻煩。 教學tutorial  http://javaserverfaces.java.net/   or 梁葛格 2012/6/13補充 在頁面端因為結合JSF架構,可以直接使用畫面上的物件。 例如: 下拉式選單、動態表格。 簡單的jsp想要寫下拉選單,要在頁面嵌入<%  JAVA程式碼 %>,用迴圈的方式去組合頁面的html中<select>原件。而JSF自己有selectItem物件方便在Controller端直接存好物件List後給予JSF頁面存取。