網頁

搜尋此網誌

2012年11月9日 星期五

Android Training 建置開發環境

如何開發Android應用程式(Android App)?Google在網站上已經提供一堆說明讓大家參閱(目前只有英文),跟隨Training課程學習,相信開發Android應用程式不是一件麻煩又困難的工作,工欲善其事,必先利其器,開發Android App之前先準備好開發環境吧!

這裡記錄建置Android開發環境的步驟(在Windows系統上開發為例),環境基本上分成兩個部分,一個是整合開發環境(Integrated Development Environment, IDE),另一個是軟體開發套件(Software Development Kit, SDK)。

Part 1, IDE
  1. 下載並且安裝Java SE Development Kit (JDK),程式位於http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 下載並且安裝Eclipse Classic,必須是3.6.2 (Helios)版本以上,程式位於http://www.eclipse.org/downloads/
  3. 安裝Eclipse外掛Android Development Tools (ADT)套件,安裝方式參閱http://developer.android.com/sdk/installing/installing-adt.html
Part 2, SDK
  1. 下載Android SDK,http://developer.android.com/sdk/index.html,選擇「Download the SDK for Windows」
  2. 下載之後執行SDK安裝程式,安裝完畢後還沒有結束喔!因為Android SDK只包含核心工具(SDK Tools)的部分,必須啟動SDK管理員( Android SDK Manager)下載額外的套件( SDK packages)。基本上下載預設選擇的套件,一定要記得下載喔!
完成上述兩個部分的安裝步驟後就有了Android的開發環境。注意如果你不想使用IDE,想只用命令列(command line)的話,才需要額外安裝Apache Ant軟體喔!若以IDE方式開發的話,Eclipse就是完成Ant的工作,所以不需要安裝Ant。

那要如何開始開發Android App呢?相當簡單,只要開啟Eclipse建立一個新的Android Project就可以了,詳細參閱Building Your First App這堂課程。

趕快開始行動吧!

對了,如果手上有Android-powered裝置(即Android的手機或平板),可以將自己開發的App在裝置上除錯,記得安裝對應的USB驅動程式。如果手上是Google官方的Nexus裝置,請安裝Google USB Driver,若是其他製造商的裝置,那麼請安裝OEM USB Drivers
###

2012年11月4日 星期日

Where Good Ideas Come From 創意從何而來

這是一本探討創新空間的書,作者利用長變焦(long zoom)的觀察法審視自然與人文兩個領域,從歷史中探究而提出7個創新模式,這些模式是讓環境之所以能夠孕育出好點子(good idea)的原因,注意作者在這本書中用「好點子」表示創新、創造與發明上的創意,這是為了說明他跨領域的觀點。


史蒂文‧強森(Steven Johnson)著,劉燕芬譯,創意從何而來,台北:大塊文化,2011。譯自:Where Good Ideas Come From: The National History of Innovation

作者一開始從珊瑚礁生態系說明創新空間,並介紹達爾文悖論(Darwin's Paradox),所謂達爾文悖論是指:這麼多不同的生態型態,佔據這麼多的生態席位(ecological niche),卻居住在原本養分極少的水域裡,實在不可思議。除了珊瑚礁的自然領域外,作者也以城市與全球資訊網2的人文領域為例子,探究這兩者的創新空間。這些故事引發讀者的好奇心,因此閱讀起來不會枯燥無趣,每一章也充滿著很多小故事,很容易進入作者的思想中理解他的創新模式。

以下是作者提出的7大創新模式:
  1. 比鄰的可能性─人們需要更多工具,以探索更多邊界
  2. 液態網絡─點子喜歡能流動、碰撞、彼此連結的環境
  3. 緩慢的預感─點子需要養分和時間,才能完整成形
  4. 機緣巧合─結合幸運與智慧,發現原本沒有特別探究的事物
  5. 生成性錯誤─從錯誤中汲取養分,雜訊讓人變得更有創意
  6. 功能變異─借助其他領域的點子,產生意料之外的新用途
  7. 堆疊平台─其他使用者能在前人建立的結構性基礎上,創造新作品
最後第8章,作者將歷史上的好點子以市場與非市場、個體與網絡的特徵分為四類,即四個象限,19世紀以後的發明與創意大多集中在「非市場/網絡」的第四象限,非市場指的是好點子不是以獲利為主要目的(以自由分享為目標),而網絡指的是好點子由多人團體所想出。

為何第四象限成為當代主要的創意引擎,原因是資源共享、共同協作的環境有利於好點子的產生。作者在書中也提到湯瑪斯‧傑佛遜的一段話 :「從我這接收到一個點子的人在接受指令時,並不會使我的縮減;就像他拿一根蠟燭趨近我的燭芯點火時,他取得火光,部不會使我變暗。p. 188」

作者給此書論點濃縮的一句箴言:連結點子會比保護他們更有收穫
###

2012年10月26日 星期五

Getting Organized in the Google Era | Google時代一定要會的整理術

這是一本介紹統整資訊的書,連結人腦、人性、科技的整理術,因此這本書分成3部分,第1部分是「先認識自己」,第2部分是「全新整理術」,最後第3部分是「克服挑戰」。作者介紹人腦運作的方式,提出一些幫助我們處理資訊的方法和策略,讓我們有效率地統整資訊。

梅瑞爾(Douglas Merrill)、馬丁(James A. Martin)著,胡琦君譯,Google時代一定要會的整理術,台北:天下遠見,2010。譯自「Getting Organized in the Google Era: How to Get Stuff out of Your Head, Find It When You Need It, and Get It Done Right」

由於作者是認知科學的博士,瞭解人腦構造與限制,有些觀念十分重要,例如:人腦非常不適合記憶瑣碎的資訊、人腦不善於做出好決定...等等。作者在這本書提出的21個整理原則讓我們參考,注意這些是原則,而不是規定!
  1. 妥善管理你的生活,以減輕腦部負擔。p. 17 <注意力,雞尾酒效應(cocktail party effect)>
  2. 趕緊把資訊資訊從腦袋中移出,越快越好!p. 19 <短期記憶>
  3. 同時處理多項任務,通常只會讓你更沒有效率。p. 21 <注意力只能專注在一件事情上>
  4. 用故事來記事情。p. 27 <編碼與回想可以有效排序>
  5. 就算某件事有一貫做法,也不表示那是最適當的。p. 45 <朝九晚五制起於工業時代,寒暑假始於農業社會>
  6. 知識不是力量,分享知識才是力量。p. 57 <擁有知識已經垂手可得>
  7. 你要克服的是真實的限制,而不是假想的限制。p. 65 <改變假想的個人限制>
  8. 對自己全然誠實,但別預設立場。p. 69 <檢視真實的個人限制>
  9. 知道何時該忽視你的限制。p. 74 <不要因為個人限制而放棄嘗試>
  10. 在發動引擎前,清楚知道你要去哪裡,又要怎麼去。p. 83 <明確的目標才有脈絡可循,也才有意義,知道為何而做>
  11. 達成目標的方式不只一種,要懂得變通。p. 86 <變通計畫或是調整目標>
  12. 檔案不用歸檔,靠搜尋就好。p. 106 <整理歸檔是為了找得到,現在用搜尋技術就找得到了。>
  13. 唯有真正需要的東西才記進腦子裡。p. 133 <過濾重要而且非記不可的資訊>
  14. 將大體積的東西拆解成數個小單位。p. 136 <人腦善於記憶少量資訊,是CPU而不是HDD>
  15. 每週空出時間再次審視重要資訊。p. 141 <重複的好處可讓資訊再次編碼>
  16. 世上沒有一套整理系統是十全十美的。p. 152 <善用工具的長處、選擇適合的使用方式>
  17. 盡可能使用你已熟知的工具。p. 164 <重點不是工具,而是整理的方法>
  18. 在你的電子資料添加關鍵字詞,讓你日後更容易找到。 p. 194 <資訊必須能被搜尋到才有用>
  19. 事前做註記,有助之後的情境轉換。p. 239 <減少長期記憶、短期記憶與情境之間轉換的腦力>
  20. 將情境相似的工作安排在一起。p. 240 <降低不同記憶之間存取的次數>
  21. 整合工作與生活,別再妄想達到兩者平衡。p. 252 <有效利用時間>
###

2012年10月3日 星期三

50 Erfolgsmodelle 如何下決定

如何下決定」這本書主要是探討「決策模型」,書中舉出50個最棒的決策模型提供我們做決定時參考。作者將這50個模型分為4類,分別是「如何改善自己」、「如何更加了解自己」、「如何更加了解別人」與「如何改善他人」,其中不乏是常聽到的


麥克‧克羅格魯斯(Mikael Krogerus)、羅曼‧塞普勒(Roman Tschappeler)著,胡瑋珊譯,如何下決定,台北:大塊文化,2012。
譯自:The Decision Book: Fifty Models for Strategic Thinking

如何改善自己(How to Improve Yourself)
  • 艾森豪矩陣(Eisenhower matrix):怎樣加強工作的效率
  • SWOT分析法(SWOT analysis):怎樣找到正確的解決方案
  • 波士頓矩陣(Boston Box):怎樣評估成本和效益
  • 專案投資組合矩陣(project portfolio matrix):怎樣維繫和監督?
  • 惠特默模型(John Whitmore model):我追求的目標正確嗎?
  • 橡皮筋模型(rubber band model):兩難的情況該怎麼處理?
  • 回饋模型(feedback model):處理他人的抱怨和批評
  • 家庭樹模型(family tree model):你們應該維繫的人脈
  • 型態分析盒與奔馳創意法(morphological box and SCAMPER):為什麼需有結構才能發揮創意
  • 君子送禮模型(Esquire gift model):花多少錢送禮?
  • 後果模型(consequences model):當機立斷為什麼很重要?
  • 化解衝突模型(conflict resolution model):怎樣才能漂亮地化解衝突?
  • 十字路口模型(crossroads model):接下來呢?
如何更加了解自己(How to Understand Yourself Better)
  • 沉浸模型(flow model):什麼會讓你快樂?
  • 喬哈里窗(Johari window):別人對你的風評如何?
  • 認知失調理論模型(cognitive dissonance model):人們為什麼明知吸菸不利健康、還是照抽不誤?
  • 音樂矩陣(music matrix):你的音樂品味將可用來詮釋你
  • 匪夷所思的模型(unimaginable model):什麼是你們深信不疑、但又無力證明的事物?
  • 烏夫‧艾爾拜克模型(Uffe Elbæk model):怎樣了解自我
  • 時尚模型(fashion model):我們怎樣打扮
  • 能量模型(energy model):你活在當下嗎?
  • 超級備忘錄模型(SuperMemo model):怎樣牢記所有曾經學過的事物
  • 政治羅盤(political compass):政黨支持什麼理念?
  • 個人表現模型(personal performance model):怎麼知道自己是否應該轉換工作?
  • 鑑往知來模型(making-of model):要想掌握未來,就先得了解自己的過去。
  • 個人潛力陷阱(personal potential trap):為什麼心中不存任何期望會比較好?
  • 技術循環周期(hype cycle):怎樣發掘下一個重大發明?
  • 細膩訊息模型(subtle signals model):細微之處為什麼重要?
  • 人脈網路目標模型(network target model):你的朋友對你的風評如何? 
  • 淺薄知識的模型(superficial knowledge model):你不用做萬事通
如何更加了解別人(How to Understand Others Better)
  • 瑞士乳酪理論(Swiss cheese model): 錯誤是怎麼發生的
  • 馬斯洛金字塔(Maslow pyramids):哪些事物其實是你們需要的,哪些又是你們想要的
  • 跳脫框架思維(Thinking outside the box):怎樣激發出絕佳的點子
  • 社會氛圍和布爾迪厄模型(Sinus Milieu and Bourdieu models):你所屬之處
  • 雙重迴路學習模型(double-loop learning model):怎樣從錯誤之中汲取教訓
  • AI模型(Al model):你屬於哪一種討論的類型?
  • 小世界模型(small-world model):這個世界到底有多小?
  • 帕雷托法則(Pareto principle):為什麼投入百分之二十卻能締造百分之八十的產出?
  • 長尾模型(long-tail model):長尾模型:網路怎樣扭轉了經濟?
  • 蒙地卡羅模擬法(Monte Carlo simulation):我們對確切的結果為什麼只能取得近似值
  • 黑天鵝模型(black swan model):為什麼你的經驗沒讓你變得更加睿智?
  • 斷層-擴散模型(chasm-diffusion model):為什麼人手一台iPod?
  • 黑盒子模型(black box model):信仰為甚麼取代了知識?
  • 地位模型(status model):如何辨識贏家
  • 囚犯的困境(prisoner's dilemma):什麼時候值得信賴別人?
如何改善他人(How to Improve Others)
  • 德萊克斯勒-西貝特團隊績效模型(Drexler-Sibbet team performance model):怎樣將小組打造成團隊
  • 團隊模型(team model):你的團隊有完成任務的能耐嗎?
  • 市場缺口模型(gap-in-the-market model):怎樣發現有收穫的點子
  • 賀賽–布蘭恰德模型(Hersey-Blanchard model):怎樣成功管理你的員工
  • 角色扮演模型(role-playing model): 如何改變本身的觀點?
  • 結果最適化模型(result optimisation model):為什麼印表機總在截止日期之前壞掉?
  • 下一個頂尖的模型(world's next top model):我們可從這本書學到什麼?
這本書總計列出52個決策模型(decision-making models),除了文字說明以外,此書在每個模型中都有繪圖解說,一張圖勝過千言萬語,任何時候都可以選擇任一個模型開始閱讀。注意到,書中最後提到重點:這些決策模型雖然是複雜世界的簡化,但不表示錯誤或是沒有價值,而是提供我們觀察世界的一個方法。

###

2012年9月10日 星期一

How Will You Measure Your Life 你要如何衡量你的人生

將企業管理的理論應用在人生規劃上會是怎樣?「你要如何衡量你的人生」這本書就是說明這件事,作者認為這些理論不只可以解釋企業的問題,也可以幫助我們審視重要的人生課題。


克雷頓‧克里斯汀生(Clayton M. Christensen)、詹姆斯.歐沃斯(James Allworth)、凱倫.狄倫(Karen Dillon)著,廖月娟譯,你要如何衡量你的人生?:哈佛商學院最重要的一堂課,台北:天下遠見,2012。譯自:How Will You Measure Your Life? ( 原文書網站:http://www.measureyourlife.com/ )

這本書在作者序(prologue)中提出人生的三個問題:
  • 問題1,如何知道我的工作生涯可以成功、快樂?
  • 問題2,如何知道我與配偶、兒女與朋友的關係可以成為快樂的泉源?
  • 問題3,如何知道我這一生會堅守原則,以免除牢獄之災?
整本書共分成三個部分,也就是分別依序討論上述三個人生的問題。
    • 第1章 展翅高飛(Just Because You Have Feathers)
  • 第1部 發現生涯之樂(Finding Happiness in Your Career)→問題1
    • 第2章 如何讓你的熱情燃燒(What Makes Us Tick)
    • 第3章 計劃與變化(The Balance of Calculation and Serendipity)
    • 第4章 策略的試金石(Your Strategy Is Not What You Say It Is)
  • 第2部 圓滿的人際關係(Finding Happiness in Your Relationships) →問題2
    • 第5章 時鐘滴答響(The Ticking Clock)
    • 第6章 一杯奶昔的任務(What Job Did You Hire That Milkshake For?)
    • 第7章 席瑟斯之船(Sailing Your Kids on Theseus’s Ship)
    • 第8章 經驗學校(Schools of Experience)
    • 第9章 一隻看不見的手(The Invisible Hand Inside Your Family)
  • 第3部 正直的人生(Staying Out of Jail) →問題3
    • 第10章 僅此一次,下不為例(Just This Once)
  • 結語(epilogue) 你拿什麼衡量人生
這本書的內容值得一讀再讀,尤其是最後結語的「目的三部曲」,作者克里斯汀生建議我們思考自己人生的目的,目的三部曲包含「畫像→投入→量尺」這三個要素,思考自己想成為怎樣的人,然後發自內心全心投入,找到正確的量尺衡量自己的人生,如此人生將變得更有意義。

###

2012年8月29日 星期三

E-Learning 數位學習

前陣子逛書店看到一本關於數位學習的書本,翻閱之後發現內容相當完整,加上自己對於教育的興趣,於是買了下來閱讀,這裡和大家分享這本書。

這本書到底在談些什麼?這本書對於數位學習做一個整體性的概略說明,包括觀念、方法、實務、設計與實作,是一本數位學習的入門書,而且提供詳細的參考文獻資料,我們可以藉由這本書更進一步深入數位學習的領域。

顏春煌,數位學習:觀念、方法、實務、設計與實作(第二版),台北:碁峯資訊,2012。

這本書中提到,運用資訊科技進行教學互動則稱為數位學習(electronic learning, e-learning),而數位學習建置出來的教學環境則稱為虛擬教室(virtual classroom),實現數位學習的資訊系統目前有兩種:
  • 學習管理系統(Learning Management System, LMS)
  • 學習內容管理系統(Learning Content Management System, LCMS)
LMS的範疇大於LCMS,LCMS主要在於數位內容的管理,而LMS則是包含註冊、學習狀況、成績等等的管理,LMS主要在於學習者對於數位學習的管理。以前研究的Moodle就是LMS的一種,不過有點差異就是Moodle是以課程(Course)的概念為主要架構,官方稱Moodle是一個課程管理系統(Course Management System, CMS),我們利用Moodle之類的LMS將可以建立一個虛擬學習環境( Virtual Learning Environment, VLE),VLE應該就是虛擬教室更超層次的概念。

數位學習目前都是透過網路的方式進行,因此具有分散式學習(distributed learning)的特性,不只是地點分散,時間上來說也可能是分散的,可以區分為同步(synchronous)線上教學與非同步(asynchronous)線上教學兩種方式。若以歷史的角度來看數位學習,則有電腦訓練(Computer-Based Training)、遠距教學、電視教學、廣播教學等,這些其實都是教學活動透過當時最為主流便利的科技方式進行。

我們看待數位學習的同時,應該是要回歸學習與教育的本質,數位方式只是一種媒體,教學策略與學習理論才是我們發展數位學習的重點。

###

2012年7月11日 星期三

Teddy Scrum 敏捷開發法的逆襲

搞笑談軟工 (http://teddy-chen-tw.blogspot.tw/) 一直是工作上的最佳良伴,具有調劑身心與增進智能的功效,呷(ㄒㄧㄚˊ )好到相報!

最近作者終於推出敏捷開發法的逆襲」這本書了,所有開發軟體、吃「軟飯」的人都該來讀啊!由於 Teddy 是北科大的校友,在此強力推薦一下 Teddy 的敏捷開發法的逆襲,建議北科大應該要將此書列入軟體學程的必修課與教科書。引用 Teddy 的話:「不買終身遺憾,買了不看遺憾終身。p. 284」

讀完「敏捷開發法的逆襲」的最大收穫在於了解什麼是 Scrum (整本書的主題是在講述Scrum 和搞笑),作者基於傳福音的精神推廣 Scrum 給大家,這本書可說是 Scrum 的中文聖經本,信Scrum得永生(台灣目前應該還找不到專門介紹 Scrum 的中文書)。

而最近自己工作的環境也開始導入 Scrum,初淺地認識 Scrum 之後,我認為要「導入 Scrum,先換腦袋」(換誰的腦袋?老闆的還是 RD, PM 的...全部都該換掉),因為 Scrum 有些觀念與現在台灣的軟體開發觀念不同,做法也不同,習慣於這個制度之下很難開始改變 (不是不能改變,要改變就可能要革命囉...)。


陳建村 (Teddy Chen),笑談軟體工程:敏捷開發法的逆襲,台北:悅知文化,2012。

笑談軟體工程可以依序閱讀,也可以挑選有興趣的 PART 閱讀,或是擇一篇文章閱讀,這幾種方式都不會造成閱讀上的困擾或困難(意思是說書沒架構嗎?不是啦,因為Teddy用軟體工程的方式降低耦合),不過還是建議依序閱讀吸收會較快,我大概花了3天的瑣碎時間依序看完,真的很好看,也吸收到搞笑能力...

PART 1 軟體工程的現況
1 想看這本書的怨念有多深
2 老闆,軟體不是這樣開發的
3 600多個BUG要怎麼修?
4 軟體工程不等於髒話
5 這不是網路小說——軟體專案Scenario
Column A. 小朋友不可以說謊喔

PART 2 什麼是Scrum
6 SCRUM到底是?
Column B. 其實,Scrum是一種制度
7 SCRUM是很有內涵的
8 就是這個光──SCRUM+LEAN+XP
9 導入SCRUM?謝謝再聯絡。
10 我不能採用SCRUM,因為我家人不同意
11 導入Scrum前該有的領悟──都市游擊隊
12 100%符合Scrum精神──這是0與1的距離
13 不完美的Scrum──逆練九陰真經
14 Story要如何下筆?──啊!你練的不是九陰真經
15 end-to-end的story──這好比切蛋糕
16 如何估算Story Point?
17 Story Point為何沒有單位──這是一種相對論
18 Story寫的好才容易估算Story Point
19 Product Backlog長得什麼模樣?
20 The Definition Of Done──功課寫完沒
21 Bug”s”──放下心中舉起的中指
22 Redundancy──容錯的基本方法
23 Shared Code──讓我們變成博格人吧
24 Pair Programming──藥效強不強?
25 Retrospective Meeting──有許願池的功效
26 Scrum Master是個什麼咖?
27 有牌的Certified Scrum Master
Column C. 聞過則喜...誰說的?
28 導入Scrum──要有傳福音的精神
Column D. TEDDY的初衷

PART 3 精實生產,減少不必要的浪費
29 軟體也會有庫存問題
30 減少不必要的浪費——半成品
31 減少不必要的浪費——多餘功能
32 減少不必要的浪費——重複學習
33 減少不必要的浪費——交接
34 減少不必要的浪費——工作切換
35 減少不必要的浪費——延遲
36 減少不必要的浪費——缺陷
37 有缺陷,就停掉生產線

PART 4 開發軟體一定要加班,有沒有聽錯?
38 工程師與加班之間的愛恨情仇
39 非加班不可——台灣經濟奇蹟的幕後無名英雄
40 過勞死——軟體工程無用論
41 我可能不會18:30下班
Column E. 秀才遇到兵

PART 5 換顆腦袋——軟體工程的全新思維
42 學習犯錯
43 有問題才能解決真問題
44 傳承的風範
45 傻的願意相信
46 造船的目的
47 追求卓越——發語詞,無義
48 培育軟體還是組裝軟體?
49 對症下藥
Column F. ISO大戰乖乖
50 剽竊
51 重複程式碼的力量
52 TIME LOG的紀錄方式——這不是整人遊戲

PART 6 軟體架構
53 Problem Domain vs. Solution Domain
Column G. 一萬個小時的練習
54 用實際案例看Problem Domain vs. Solution Domain
55 要抄就要抄最好的——人人皆可成為架構師
56 你的軟體架構有多軟
57 設計最難的部份是什麼?
58 針對介面來寫程式
59 設計模式分成三大類
60 時間到

PART 7 人機介面
61 窮人的「人機介面」設計入門
62 GOMS——幫「人機介面」做體檢
63 DESIGNING FOR ERROR (1):使用者犯錯
64 DESIGNING FOR ERROR (2):外在世界與腦袋中的知識
65 DESIGNING FOR ERROR (3):限制、強制功能、自然對應
66 DESIGNING FOR ERROR (4):執行與評估
67 「人機介面」之博士熱愛的算式

PART 8 測試與整合
68 有測試案例改遍天下,無測試案例寸步難行
69 有些事不是能力的問題,而是整合
70 土炮跨平台自動化功能測試環境
71 10分鐘建構
72 落實測試與整合的能力有多少?
73 用ROBOT寫自動化功能測試到底有沒有用?
Column H. 需求分析書中最重要的資訊是什麼?

這裡用 Teddy 的夢想總結:「希望改變人們在台灣開發軟體的方法,讓軟體開發真正成為一件愉快、有趣的工作與創作。」是的,以 Teddy 的燭火點燭,光亮與我們同在,我們卻不因此身處黑暗。

###

2012年7月10日 星期二

National Taipei University of Technology 台北科技大學

今年(2012年)捐贈書籍的時間又到了。今年感受到Web浪潮又再度來襲,可能是雲端運算、App開發、HTML5、Big Data等議題受到矚目,這些都以Web技術為基礎,因此最近有不少好書可讀!

這次挑選的書籍多以基礎技術與軟體開發為主,沒有選擇Android App或iOS開發之類的書籍,原因有兩個,第一是App開發很熱門,學校一定會購買,所以不太需要捐贈,第二是App的發展速度很快,捐贈到上架時可能已經超過時效,所以放棄這類領域的書籍。加上自己是個Web Developer,這些書籍都是自己「品嘗」過後,色香味俱全的優良「食品」,特別選擇出來捐贈推薦給大家,呷好道相報啊!


這次捐贈的書籍清單如下所述:
  • David Flanagan,黃銘偉譯,JavaScript大全 第六版,台北:歐萊禮,2012。
  • Stoyan Stefanov,洪象成譯,JavaScript 設計模式 ,台北:歐萊禮,2012。
  • Steve Fulton, Jeff Fulton,陳美君譯,精通 HTML5 Canvas,台北:歐萊禮,2012。
  • Randal L. Schwartz, brian d foy, Tom Pho,蔣大偉譯,Perl 學習手冊 第六版,台北:歐萊禮,2012。
  • 吳軍,浪潮之巔-剖析IT產業 掌握下一個黃金十年,台北:博碩文化,2012。
  • 林信良,Java SE 7 技術手冊,台北:碁峰資訊,2011。
  • Diomidis Spinellis & Georgios Gousios,莊弘祥譯,架構之美-頂尖架構師於軟體設計中蘊含的智慧結晶,台北:歐萊禮,2012。
  • Adam Goucher ,Tim Riley,莊弘祥譯,測試之美-領略頂尖專家改善軟體的測試法則,台北:歐萊禮,2011。
  • Andy Oram & John Viega,佘步雲譯,安全之美-深入探索卓越安全專家的思維,台北:歐萊禮,2012。

###

2012年2月22日 星期三

Bash Builtin Commands 內建指令

Linux啟動之後所進入的通常就是Bash,面對這個Command-line Interface我們使用者應該如何操作!黑黑的畫面上閃爍著輸入游標,到底有什麼指令可以使用?請求協助輸入help是一個方法,但這只會列出Bash內建的所有指令

列出Bash內建的所有指令與敘述:help -d '*'
  1. % - Resume job in foreground.
  2. (( ... )) - Evaluate arithmetic expression.
  3. . - Execute commands from a file in the current shell.
  4. : - Null command.
  5. [ - Evaluate conditional expression.
  6. [[ ... ]] - Execute conditional command.
  7. alias - Define or display aliases.
  8. bg - Move jobs to the background.
  9. bind - Set Readline key bindings and variables.
  10. break - Exit for, while, or until loops.
  11. builtin - Execute shell builtins.
  12. caller - Return the context of the current subroutine call.
  13. case - Execute commands based on pattern matching.
  14. cd - Change the shell working directory.
  15. command - Execute a simple command or display information about commands.
  16. compgen - Display possible completions depending on the options.
  17. complete - Specify how arguments are to be completed by Readline.
  18. compopt - Modify or display completion options.
  19. continue - Resume for, while, or until loops.
  20. coproc - Create a coprocess named NAME.
  21. declare - Set variable values and attributes.
  22. dirs - Display directory stack.
  23. disown - Remove jobs from current shell.
  24. echo - Write arguments to the standard output.
  25. enable - Enable and disable shell builtins.
  26. eval - Execute arguments as a shell command.
  27. exec - Replace the shell with the given command.
  28. exit - Exit the shell.
  29. export - Set export attribute for shell variables.
  30. false - Return an unsuccessful result.
  31. fc - Display or execute commands from the history list.
  32. fg - Move job to the foreground.
  33. for - Execute commands for each member in a list.
  34. for (( - Arithmetic for loop.
  35. function - Define shell function.
  36. getopts - Parse option arguments.
  37. hash - Remember or display program locations.
  38. help - Display information about builtin commands.
  39. history - Display or manipulate the history list.
  40. if - Execute commands based on conditional.
  41. jobs - Display status of jobs.
  42. kill - Send a signal to a job.
  43. let - Evaluate arithmetic expressions.
  44. local - Define local variables.
  45. logout - Exit a login shell.
  46. mapfile - Read lines from the standard input into an indexed array variable.
  47. popd - Remove directories from stack.
  48. printf - Formats and prints ARGUMENTS under control of the FORMAT.
  49. pushd - Add directories to stack.
  50. pwd - Print the name of the current working directory.
  51. read - Read a line from the standard input and split it into fields.
  52. readarray - Read lines from a file into an array variable.
  53. readonly - Mark shell variables as unchangeable.
  54. return - Return from a shell function.
  55. select - Select words from a list and execute commands.
  56. set - Set or unset values of shell options and positional parameters.
  57. shift - Shift positional parameters.
  58. shopt - Set and unset shell options.
  59. source - Execute commands from a file in the current shell.
  60. suspend - Suspend shell execution.
  61. test - Evaluate conditional expression.
  62. time - Report time consumed by pipeline's execution.
  63. times - Display process times.
  64. trap - Trap signals and other events.
  65. true - Return a successful result.
  66. type - Display information about command type.
  67. typeset - Set variable values and attributes.
  68. ulimit - Modify shell resource limits.
  69. umask - Display or set file mode mask.
  70. unalias - Remove each NAME from the list of defined aliases.
  71. unset - Unset values and attributes of shell variables and functions.
  72. until - Execute commands as long as a test does not succeed.
  73. variables - Common shell variable names and usage.
  74. wait - Wait for job completion and return exit status.
  75. while - Execute commands as long as a test succeeds.
  76. { ... } - Group commands as a unit.
可以看到Bash內建的指令大概有70多個,至於Linux上全部的指令可以參考O'Reilly的Linux Command Directory

心得感想:對於任何電腦系統,務必熟悉最重要的help指令,不知道怎麼操作就請「help」吧,但前提是你要知道有「help」啊!

相關指令:
  • 確認shell的種類:echo $SHELL
  • 顯示Bash的版本:echo $BASH_VERSION

###

Linux Basic vbird 鳥哥的私房菜

只要學習Linux的人,應該都知道「鳥哥的Linux私房菜」網站與書籍,鳥哥撰寫的文章對於自學者非常有幫助,可以讓不懂Linux的人循序上手,當然,如果身旁有老師或高手更好,避免「鳥哥的Linux苦難經驗」重蹈覆轍在自己身上,更感謝鳥哥免費分享他的學習之路與經驗。

最近真正深入Linux領域,趁著博客來特價優惠,趕緊將兩本「鳥哥的Linux私房菜」買下手,一本是基礎學習篇,另一本是伺服器架設篇,目前已經都是第三版,雖然說書的內容與網站上沒有差異,然而還是閱讀書籍比較舒適,建議想學習Linux的人都踴躍支持購買!

蔡德明(鳥哥),鳥哥的Linux私房菜‧基礎學習篇(第三版),台北:碁峰資訊,2010。

整本書分成五篇,共27章(包含第0章的計算機概論),我認為這五大篇也就是學習Linux的五個重點,其中第3篇的操作Bash與Vim算是使用Linux的基本能力,務必要學習且熟悉!
  1. Linux的規劃與安裝
  2. Linux檔案、目錄與磁碟格式
  3. 學習Shell與Shell Scripts
  4. Linux使用者管理
  5. Linux系統管理員
從目前學習Linux的經驗來看,自己大概要花3個月左右才有感覺上手,急不得也不能急,看書與操作Linux的時間大概是一半一半,若是有專家教導應該可以加速學習速度,當然,每天都用Linux的話學習會更快。

由於自己是從Windows轉過來學習Linux,每天開機還是面對Windows,一開始還真是摸不著Linux。建議想想自己在Windows的操作要如何在Linux上面實現,例如複製檔案要怎麼用Bash完成、如何用Vim修改設定檔...之類的使用案例,這種方式學習起來會比較有感覺喔!

###

熱門文章