Claire Chang

  • 外行人也能學會的App企劃法

    最近買了這本書: http://buy.yahoo.com.tw/gdsale/gdbksale.asp?gdid=3639539 這本書在第一張的地方,先說出App與一般的電腦程式最大差異點在於『行動性』。 因此好的APP應具備下面幾個特質: 1. 簡單上手 2. 目的單純(一次做一件事) 3. 流暢度和穩定度 在做APP之前要先問自己下面幾個問題: 1. 為什麼要做APP而不是網站,找出做APP的意義。 2. 然後找出APP要扮演的角色,是附屬在某個服務如dropbox,或是一個獨立的服務如Line、或者是一個行銷、廣告的工具。 3. 預期這支APP可以解決什麼問題? 4. 鎖定目標族群 5. 產品所能帶來的效益 在企劃自己的APP之前,應要多去看別人的APP,以下面幾項去切入剖析 1. 是否有善用行動裝置的特性,提供一般網站無法滿足的訴求 2.…

  • 沒有銀彈 – 軟體工程的本質性與附屬性工作

    在人月神話裡,花了兩章的篇幅說明在軟體開發上, 不會有類似銀彈這種,可以快速解決開發時程延誤或發生重大錯誤的捷徑 他們提出了三個原因: (1) 複雜性: 軟體開發的複雜度與規模大小並非線性的關係,整個複雜度增加情況也會遠遠超過線性預估的結果。也因為結構上的複雜性,當軟體在擴充新功能時,難保不會產生新的副作用。程式裡的狀態難以一一列舉,也更加難以明瞭整個產品也會變的更不可靠。另外因為複雜性關係,開發時也容易遇到溝通困難、時程落後、成本超支的困難。 (2) 配合性: 軟體必須配合其他的領域,例如電腦、不同語言、不同介面等等….。 (3) 易變性: 1. 時常面臨修改,因為軟體是純思考的產物,有無限延展性,修改容易,也因此特別容易面臨修改 2. 成功的軟體生命周期會比硬體來的長,因此時常會需要配合硬體環境上去修改。 (4) 隱匿性:過於抽象、難以理解。 在這邊他們也提出了幾項過去曾讓軟體界有所突破的重大發展,但這些突破都是屬於附屬性的,沒辦法突破軟體工程本質上的複雜性: (1) 高階語言:高階語言的發行的確是最強而有力的一次突破,對生產力而言至少有五倍以上的提升。並伴隨得到可靠度、簡潔性、理解力上的增益。它把和程式內涵一點關係都沒有的那一整層複雜性給去除了。 (2) 分時技術:分時技術對於程式設計師的生產力及產品品質有了重大的提升。因為分時確保了即時性,使我們得以持續保持住腦子裡對複雜的概觀。但緩慢的回復時間是附屬難題。 ps: 分時系統:作夜系統依中央處理器排程(CPU Scheduling),將中央處理器的時間切割為極小的時間片段(Time…

  • 人月神話讀後筆記

    花了很多天終於看完了著名的專案管理聖經─『人月神話』在此整理一下大致的重點 1. 開發一個軟體系統產品要付出的代價是一般組件程式的九倍。因為產品化是一般組件程式的三倍時間,設計整合測試又是三倍時間,這兩方面的成本計算基本上是獨立的。 2. 以成本會計為基礎的時程預估方式,使我們誤把工作量和專案進度混為一談,人月是一個危險並容易遭到誤解的迷思,因為他假設人力和工時可以互換。 在此本書裡面,提到,專案管理人員不應該把人/月這樣的標準來做為專案規劃的標準,因為當人員多起來後,整個專案的運行會需要花更多的時間在溝通、管理、協調上,人月之間的關係並非線性關係。 並且勿忽略掉新的程式師要學習上手的開發時間,以及要耗費掉的老手的教育時間。因此,在一個已經延遲的專案中增加人手,只會讓它更加的落後,這邊較建議的方式是重新安排時程、或者刪減工作。 在這一章裡,也提出建議的專案軟體時程安排方法 1/3 規劃 1/6寫程式 1/4組件測試和早期系統測試 1/4系統測試和完成所有的組件 3. 從第三章到第七章,都是在討論保有『整體概念性』的重要。 一個專案的規劃必需出由同一人之手,也就是說,一個專案不應該有兩個領導者。我們必須選出一個能力強的人,來帶領整個專案的開發及方向,我們寧可忽略掉一些可能新奇、或很棒的想法,也必須讓整個專案都能呈現同一個設計理念。此一概念便是這本書所一直提及的整體概念性。 在第三章裡,此本書提出了一個外科手術團隊的做法,來解釋該如何去達到這個整體概念性的目的。 (1) 首席程式設計師:也就是整體概念性裡所提到的做決策的主腦。負責定義功能、設計程式、測試程式並撰寫文件。ps: 此本書也提到,真正優秀的專案管理人員,也應該要寫程式,沒有真正去撰寫一些程式的PM,是無法做好專案管理的工作的。 (2) 副手:外科醫生的分身,可以做所有首席設計師所做的事,或提出想法,但是首席設計師不一定要接納他的想法。 (3) 行政助理:幫忙處理首席程式設計師的所有庶務。一位行政助理可同時處理兩個以上團隊的工作。 (4)…

  • 初探Hadoop開放原始碼平台環境

    開放原始碼的雲端運算平台技術(1) 初探Hadoop開放原始碼平台環境 文/圖 沈炳宏.責任編輯/洪羿漣 大量資料的處理一直是電腦科學與實務應用中非常重要的課題,雲端運算的風起雲湧也使得分散式運算這項技術成了新顯學,整合MapReduce演算法並已被 各大企業所廣泛採用的Hadoop套件,更是開發雲端運算技術的佼佼者,本系列文章將會帶領讀者一步步瞭解並活用該技術。 近年來最熱門的雲端運算(Cloud Computing),其概念結合了IaaS、PaaS、SaaS、Web 2.0和其它相關技術(如MapReduce、Ajax、虛擬化),共同在網際網路架構上,來滿足使用者在運算資源的高度需求。目前雲端運算有各家專業研 究機構分別提出了不同的定義,如表1所示。 雲端運算不是一項新興技術,而是一種過去就有分散式運算(Distributed Computing)的形式,與代表多台電腦同時進行運算與叢集運算(Cluster Computing)的概念類似,皆是指透過整合大量電腦的運算資源來處理運算需求。 不過叢集運算多為硬體業者採用,強調同一資料中心中的大量電腦;雲端運算則納入網際網路的概念,由遠端網際網路上的伺服器群進行資料的存取與運算,由於這 些伺服器群可能分散在各處不同的資料中心,同時處理來自各地成千上萬使用者的需求,從使用者的觀點來看,根本無從分辨是哪一台伺服器處理了自己送出的運算 需求,如同把需求送入模糊的雲朵中一般,因此便將這種分散式運算模式稱為雲端運算。 諸如Google、Yahoo和Amazon等大型網路公司,由於財力雄厚,可以採購數以萬計的伺服器,叢集便成為一個龐大的運算資源,讓使用者得以透過 網路來存取資料或進行運算,而近年來爆紅的Facebook,也將Hadoop使用在分析Facebook塗鴉牆上某一關鍵詞出現頻率的Lexicon專案,以及改善使用者體驗、搜尋結果等功能上。 雲端服務 vs. 雲端運算 除了雲端運算這項口號之外,還有人提出了雲端服務的概念,這是由於雲端運算通常指的是在網路上提供且為商業和客戶服務的消費模型,這些服務包含了以資訊科 技為主的服務,如軟體即服務(SaaS, Software as…

  • 在flex裡內嵌字型

    在flex裡內嵌文字有幾種方式 1. FLEX 動態更換中文字型 ( 非嵌入方式 ) 這個請參考下面這篇的教學 http://blog.corausir.org/programing/ausir-777 不過上面的方式 必須以PHP配合 並且空間要支援PHP的EXEC呼叫外部EXE檔的功能 許多空間伺服器並沒有支援這個功能 另外我在測試時也發現一個問題 就是當我要產生的文字過長(ex: 400~500字) 會發生讀取錯誤的問題 2. 直接內嵌字體 (1) 使用css (2)使用as3嵌入 直接嵌入文字會遇到一個很大的問題,就是文字太肥了, 這時,若我們只需要嵌入該字型檔的部份字型,而不需要全部嵌入 就可以設定unicodeRange…

  • 在flex4裡用spark建置可拖動panel

    在flex4裡面的spark組件的panel是沒有內建拖動的功能的 因此若我們希望這物件要可以被拖動 我們必須要去自己實做當使用者拖動topGroup的區塊時的拖動動作 範例程式碼如下:

  • flash內使用點陣圖

    flash.display.BitmapData; 在flash內使用點陣圖,需要import這個類別, 載入點陣圖的語法為 photo為你的點陣圖在元件庫內的連結識別子名稱 attachBitmap的語法為attachBitmap(Bitmap物件, 深度, 點像素頡取, 柔化) 下面的函數是由我所撰寫的背景著色函數, 可將一個元件的背景填滿該點陣圖,類似網頁的background 若您希望點陣圖著色的範圍與該元件長寬相同, 可在傳值時直接傳入”元件名._height”、”元件名._width” 附註一題,此函數適用於as2.0。 這個函數的輸入值為”元件名”、”要著色的寬度”、”要著色的寬度”、”要當背景的識別子名稱” 若此函數有任何問題或BUG歡迎反應給我

  • ,

    FLEX不等比縮放圖片

    Flex3 image.scaleContent = true; image.maintainAspectRatio = false; 設置了這兩項後就可以任意比例放縮圖片了。 Flex4 scaleMode=”stretch”

  • ,

    如何在flex4裡自製resize事件

    首先resize事件是針對該元件大小被縮放時才會產生 所以要在根元件去監聽resize的事件 很必需注意的一點,是flex4的spark元件預設會自動無視超出範圍大小的東西 因此會發現當我們把視窗縮小時, 因為超出的大小被無視了 無法偵聽到resize事件 這時候我們要在根容器上加上 clipAndEnableScrolling=”true”屬性 這個屬性主要是告訴我們要不要自動無視超出的範圍 group的預設值是false 也就是無視他 因此我們要先將 clipAndEnableScrolling設定為true 才可以偵聽到縮小視窗的事件

  • 繪出圓弧

    最近在試著把12個按鈕排成圓弧狀 下面是我找的一些有關於三角函數的資料 http://edscb.blogspot.com/2008/03/blog-post.html http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=53846 在as裡使用sin和cos函數都是輸入弧度 因此要先將角度用角度與弧度的轉換: radians = degrees * Math.PI / 180 degrees = radians *180 / Math.PI 去轉換後再傳進去,才可獲得正確的值 以下類別是我寫的排列函數 傳進的參數為 範例: 類別內容:


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。