狠狠撸

狠狠撸Share a Scribd company logo
開放式平台的機會與應用
大華科技大學 數位內容科技系 林獻堂
Agenda
?
    前言
?
    开放观念的演进
?   开放原始码软体的发展
?   行動開放平台: Android
?
    人機互動的新趨勢
?   结论
?   Demo
前言
前言
?
    話說「天下大勢,分久必合,合久必分」
?   今說「平台大勢,開久必閉,閉久必開」
?   開放的精神是取之於社會,用之於社會
?
    個體貢獻一己之力,享受匯集全體的成果
?   1985 年萌芽的開放概念,間接直接造就今日科
    技狂潮
?
    即使如間接導致自由軟體與開放原始碼運動的微
    軟,都必須擁抱開放原始碼
?   對於現在生活影響甚巨的 SoLoMo 服務,就是受
    惠於開放概念的一個典型例子
何謂 SoLoMo
?
    KPCB 合夥人 John Doerr 在 2011 年 2 月於
    Google Think Mobile Conference 演講中,首度提
    出 SoLoMo 一詞
?
    So(Social) :當今火紅的 Social Network Sites 或是
    Social Media ,都是 Web2.0 的典型,而 Web2.0
    的精神就是 UGC (User Generated Content)
?
    Lo(Location): 以 Google Map, Earth 提供的服務為
    典型
?
    Mo(Mobile) :資訊科技的現在與未來趨勢行動運
    算, Google 的 Android 是一個典型的平台
?
    審視 SoLoMo 的三個支柱,開放觀念隨處可見
SoLoMo 的概念架構圖
                    ) Social
                  ( 社群網站                 Location
                                         ( 地理資
                                           訊)




                                         Mobile
                                        ( 行動運
                                          算)

安裝應用程式 Apps 的行動裝置( Mobile) ,經由 GPS 或是 Wireless AP 取得
位置資訊( Location) ,並經由 3G 或 Wireless 取得社群應用服務( Social)
开放观念的演进
开放的歷史脉络
開放概念的萌芽
?
    Richard Stallman 於 MIT AI Lab 期間,不滿於以封閉軟體取代 Lab
    中可自由流通的軟體
?
    他於 1985 年發表了著名的 GNU 宣言 (GNU Manifesto) 正式宣布要
    開始進行一項宏偉的計劃:創造一套完全自由,兼容於 Unix 的作業
    系統 GNU ( GNU's Not Unix! )
?   並於 1985 年成立自由軟體基金會 (Free Software
    Foundation , FSF)
?   他於 1989 年與一群律師起草了廣為使用的 GPL(GNU General
    Public License, GNU GP) ,且提出「 Copyleft 」的概念
?   Richard Stallman 是堅定的自由軟體運動倡導者
?   他與其他提倡開放原始碼的人不同,他認為使用專利軟體是非常不道
    德的事,只有自由的程序才是符合其道德標準的
?
    對此許多人表示異議,並也因此有了自由軟體運動與開放原始碼軟體
    運動之分
自由的意義
Richard Stallman 認為軟體使用要有四大自由
  :
?   使用的自由:可以不受任何限制地來使用軟體
?
    研究的自由:可以研究軟體運作方式、並使其
    適合個人需要
?   散佈的自由:可以自由地複製此軟體並散佈給
    他人
?   改良的自由:可以自行改良軟體並散佈改良後
    的版本以使全體社群受益
開放原始碼軟體
?
    開放原始碼促進會於 1998 年成立,同時促使
    Netscape 公布 Navigator 的原始程式碼
?
    開放原始碼的內涵是由 Bruce Perens 所定義的
?
    開放原始碼軟體 (Open source software) 是一種原
    始碼可以任意取用的電腦軟體
?
    開放原始碼軟體是以 GPL 授權發行的軟體,以保
    障軟體使用者自由使用及接觸原始碼的權利。
?
    這同時也保障了使用者自行修改、複製以及再分發
    的權利。
?
    簡而言之:所有公布軟體原始碼的程式,都可以稱
    為開放原始碼軟體
自由軟體概念圖




資料來源: http://zh.wikipedia.org/wiki/File:Fsmap-zh_tw.svg
開放原始碼軟體與自由軟體的差異
?
    嚴格地說來,開放原始碼軟體與自由軟體是兩個不
    同的概念
?
    只要符合開放原始碼軟體定義的軟體就能被稱為開
    放原始碼軟體
?
    自由軟體是一個比開放原始碼軟體更嚴格的概念,
    因此所有自由軟體都是開放原始碼的軟體,但不是
    所有的開放原始碼軟體都能被稱為「自由」
?
    在現實上,絕大多數開源軟體開放原始碼軟體也都
    符合自由软体的定义。比如,遵守 GPL 和 BSD 授
    權的軟體都是開放的並且是自由的
創用 CC(Creative Commons)
?
    哈佛大學法學教授 Lawrence Lessig 於 2001 年在美國
    成立 Creative Commons 組織
?
    提出「保留部份權利」 (Some Rights Reserve) 的相對
    思考與作法
?
    Creative Commons 以模組化的簡易條件,透過排列組
    合,提供了 6 種便利使用的公眾授權條款
?
    創作者可以挑選出最合適自己作品的授權條款,透過簡
    易的方式自行 標示 於其作品上,將作品釋出給大眾使
    用
?
    透過這種自願分享的方式,大家可以群力建立內容豐富
    、權利清楚、且便於散布的各式內容資源,嘉惠自己與
    其它眾多的使用者
創用 CC 授權方式

姓名標示
姓名標示─非商業性
姓名標示─非商業性─相同方式分享
姓名標示─禁止改作
姓名標示─非商業性─禁止改作
姓名標示─相同方式分享
Linux
?
    Linux 是一種自由和開放原始碼的類 UNIX 作業系統核
    心
?
    目前存在著許多不同的 Linux 發行版,可安裝在各種各
    樣的電腦硬體設備,從手機、平板電腦、路由器和影音
    遊戲控制台,到桌上型電腦,大型電腦和超級電腦
?
    只要遵循 GPL 授權 , 任何人和機構都可以自由地使用
    Linux 的所有底層原始碼,也可以自由地修改和再發布
?
    雖然 Linux 一詞本身只表示 Linux 核心,但在實際上人
    們已經習慣了用 Linux 來形容整個基於 Linux 核心
?
    通常 Linux 會封裝成供桌上型電腦和伺服器使用的
    Linux 發行版本
?
    一些主流的 Linux 發行版本包括 Debian( 衍生版本
    Ubuntu) , Fedora 和 openSUSE 等
Unix 與 Linux 歷史源流




資料來源 :
开放原始码软体的发展
開放原始碼軟體的種類與形式
?   有眾多的開放原始碼軟體,典型的系統有:
?
    Linux
?   OpenOffice
?   Firefix
?   CMS platform, 例如 phpBB,
?   Eclipse
?
    Xmind
?   Gimp
?   ……
?   本報告探討專為非資訊背景人員所發展的開發與應用平台
开放原始码软体大事记
Design By Numbers (DBN)
?
    Design By Numbers (DBN) 是特地為教導沒有任何
    程式設計背景的藝術家與設計師程式概念的系統,
    它可以直接在瀏覽器內執行
?
    DBN 最早是由帶領 MIT Media Lab 的 Aesthetics
    + Computation Group (ACG) 團隊的 John Maeda
    所帶領的團隊在 1990s 年代所開發的
?
    DBN 只使用最少數量的語法與最簡單的開發環境,
    其目的是要容易使用,但是這也限縮了開發進階的
    應用的機會
?
    累積數年的發展與傳授 DBN 之後, ACG 團隊的
    Casey Reas and Benjamin Fry 在 2001 年聯手開
    發了 Processing
    Source: http://www.asquare.org/networkresearch/2007/11
Processing
?   Processing 是一個開放原始碼的程式語言
    與整合式開發環境
?
    它是專為數位藝術家與視覺傳達設計者所
    開發的環境
?   其目的是要教導與視覺內涵相關的電腦程
    式基礎,以及作為電子繪本的基礎
?
    Processing 是架構在 Java 的基礎上,但是
    使用簡化的語法語及圖形式程式設計的模
    型
Wiring
?
    Wiring 是 Hernando Barragán 在 2003
    年開始開發的開放原始碼原型平台
?
    這個平台包含程式語言,整合式發展環
    境 (IDE) 與單板微控制器
?
    Wiring IDE 是一個由 Processing 的
    IDE 所衍生,且也是以 Java 所開發的
    跨平台的應用程式
?
    Wiring 的硬體參考設計是以創用 CC 授
    權方式釋出
?
    Wiring 的硬體使用 Atmel 的 ATMega
    系列晶片,包含
    atmega1281/atmega2561 與
    atmega644p
Arduino
?   開放原始碼硬體的觀念衍生自開放原始碼硬體軟體的觀念
?   透過開放原始碼的授權方式,將硬體的資料公開。硬體的
    原始資料通常包括材料表 (BOM: Bill of Material) 、電路圖
    (Schematic) 、佈線圖 (Layout) 、驅動程式 (Device
    Driver) 、應用程式介面 (API) 、以及發展平台等
?   為協助學生以比較低的成本開發所設計的互動式專
    案, Italy 某一大學的人員於 2005 年開發出以 Atmel 微控
    制器為基礎的 Arduino 系統,此系統採用開放原始碼硬體
    授權
?   Arduino 系統包含 Arduino 板,週邊介面板 Shields 以及
    IDE 開發環境
?   Arduino 其實不是一個獨立的系統,而是衍生自其他更早
    期發展的系統 (Processing, wiring) ,同時也有許多系統是
Arduino board & IDE
Arduino Ecosystems

Pre systems       Arduino   Post systems
 Processing                  Freeduino

   Wiring          IDE       Wiseduino
                 Arduino
                  Shields


                    開源碼社群
圖形式程式語言
?
    傳統的程式語言是一種敘述式的結構,程式是由一
    連串將敘述 (statement) 依所需要的執行邏輯所構
    成的
?
    學習程式的最重要目的是要利用電腦來解決問題,
    也就是將問題轉化成電腦可以處理的形式
?
    大多數的人認為撰寫電腦程式是一件惱人且特殊的
    工作,只有受過特殊專業訓練的人才做得來
?
    就傳統的 C++ 或是 Java 程式語言來說,對於許多
    人來說或許真的是不好學習
?
    由 MIT Media Lab 所發展出來的圖形化程式設計語
    言 Scratch ,就是嘗試要突破這個限制
Scratch
?
    MIT 為小學生 ( 尤其弱勢的學生 ) 所開發的 Scratch
    圖形化程式語言,是一個以圖形化的方法來學習程
    式語言
?
    這個系統在非印歐語系國家,還有一個更重要的貢
    獻,是排除了母語的障礙
?
    第一版的 Scratch 是由 MIT Media Lab 的 Mitchel
    Resnick 所領導的 Lifelong Kindergarten group, 於
    2006 年所開發出來
?
    Scrtatch 的特點
    ?
        積木式程式設計流程 (Building-block programming)
    ?
        媒體的應用 (Media manipulation)
    ?
        分享與合作 (Sharing and collaboration) 。
Scratch 範例
Fritzing
?
    Fritzing 是一個開放原始碼的計畫,目的是要支援
    設計家,藝術家,研究者與玩家,靈活應用互動性
    電子裝置
?
    Fritzing 可視為專為非工程師所開發的電子設計自
    動化 (EDA) 工具
?
    此計畫受到 Processing 與 Arduino 的鼓舞而建立軟
    體與網站,並開發讓使用者可以建立原型所需文件
    ,與他人分享這些文件,在課堂上教導電子學,以
    及產生可用於專業生產所需的 PCB 佈局
?
    2009 年 3 月份的版本開始跟 Arduino 結合
Fritzing




http://www.youtube.com/watch?
v=Hxhd4HKrWpg&feature=player_embedded#!
行動開放平台: Android
Android 重要里程碑
開放式平台
?   有各式開放平台,但以 Google
    Android 最具代表性
?
    Google 於 2007 年 11 月宣布推出以
    Linux 為基礎的 Android 開放式平台,
    讓加入開放手機聯盟( Open
    Handset Alliance )的 33 名中下游廠
    商,藉此平台開發其手機或行動網路
    裝置,而 Google 則以廣告營收來獲
    取利益。
Android 概述
?
    Android 平台由作業系統、中間層、用戶界面和應
    用軟件組成
?
    它採用 Software Stack 的架構,主要分為三部分 :
?
    底層以 Linux 內核工作為基礎, android 系統效果
    圖由 C 語言開發,只提供基本功能
?
    中間層包括函數庫 Library 和虛擬機 Virtual
    Machine ,由 C++ 開發
?
    最上層是各種應用軟體,包括通話程序, SMS 程
    序等,應用軟體則由各公司自行開發,主要是以
    Java 作為程式編寫
Android inside and outside
一張圖道盡 Android 發展史 (1/6)




資料來源 :http://www.xcubelabs.com/the-android-story.php
一張圖道盡 Android 發展史 (2/6)




資料來源 :http://www.xcubelabs.com/the-android-story.php
一張圖道盡 Android 發展史 (3/6)




資料來源 :http://www.xcubelabs.com/the-android-story.php
一張圖道盡 Android 發展史 (4/6)
一張圖道盡 Android 發展史 (5/6)
一張圖道盡 Android 發展史 (6/6)
何謂 APP
?   APP 為 Application program 的縮寫,是在智
    慧型裝置如手機與平板上執行的應用程式
?
    類似電腦中執行的程式,例如 word, 記事本,
    小畫家等
?   APP 為一種原生 (Native) 的程式碼,無法跨平
    台執行,例如 Android 的 APP 不可以放到
    Apple 的 iOS 中執行
?   而在網頁中應用程式 ( 例如 HTML5) 是可以跨
    平台執行
?   APP 與 HTML5 各自擁有自己的支持陣營
?   選擇 APP 著重於效能,選擇 HTML5 著眼跨
    平台,以及不需專屬 APP store 來發布
APP 的開發
?
    需要使用一般程式語言整合式開發環境 IDE 來
    開發,例如
?   Android 使用 Eclipse 作為開發環境
?
    Windows Phone 使用 Visual Studio 為開發環
    境
?   iOS 使用 xcode 開發環境 , 以 Objective C 語
    言開發
?   上述開發環境的使用,通常需要資訊專業知識
?   一般非資訊專業者很難上手
APP Inventor
?
    MIT 教授 Hal Abelson 於 2008 年在 Google 休假
    期間,興起 App Inventor 的想法
?
    Google 在 2009 年底釋出 Beta 版的 APP Inventor
?
    App Inventor 於 2012 年 1 月 1 日移交給 MIT
    Center for Mobile Learning ,並已於 3 月 4 日公
    佈使用
?
    Google App Inventor 是一個完全線上開發的
    Android 程式環境
?
    拋棄複雜的程式碼而使用類似 Scratch 的積木式堆
    疊法來設計 Android 程式
APP Inventor 概念圖
智慧型裝置的趨勢
?   智慧型手機與平板電腦,已經成為個人最普遍
    的電子裝置
?
    由面板尺度來看,由智慧型手機的小螢幕,到
    平板的中螢幕,進到電視的大螢幕是必然的趨
    勢
?
    智慧電視已經開始進駐家庭,智慧電視是具有
    作業系統而且可以執行 APP 的數位電視
?   智慧家庭也是時代的潮流之一
?
    開放平台龍頭,透過 Android@Home 將觸角
    深入一般家庭內
Android@Home
?
    Google 在 2011 年 5 月份舉行的 I/O 開發者年度大會
    中,提出允許使用者與幾乎任何的電子設備間互動的平
    台 Android@Home
?
    在家庭中可能的設備有家庭媒體設備、洗碗機、以及電
    燈等,在未來將可以使用新的平台來進行控制
?
    透過智慧型手機、平板電腦或其它的小裝置以控制有連
    線的設備,已經討論多年,但是市場上一直沒有很恰當
    的應用
?
    Android 平台在 3.1 版的平台上引入對於 Android 開放
    週邊的支援,這個規範允許外部的 USB 硬體 (Android
    USB 週邊 ) 可以與搭載 Android 作業系統的裝置系統或
    是環境互動
?   現階段以 ADK(Accessory Development Kit) 對 Arduino
    提供支援,目前版本為 ADK 2012
APP 開發與應用的未來
?
    APP 具有最速流通的特點,開發具有創意
    的 APP 可以迅速擴散,例如 Angry Bird
?   已經有一些類似 APP Inventor 的開發平台
    存在
?
    這些平台很多是以開發多媒體內容,例如
    電腦遊戲為主
?   這些工具的特點是在只需最少技術之下,
    可以讓自己的創意得到最大化的發揮
人機互動的新趨勢
手勢互動、臉部與語音辨識
人機互動的本質
?   傳統的電腦介面,如鍵盤、滑鼠等不是最
    佳的人機介面
?
    日本第五代電腦雖未於其宣示的期間內完
    成,但播下的種子卻在當今開花結果
?   體感式人機互動的蓬勃發展,得力於微機
    電技術、感測器技術、以及電腦軟硬體技
    術的進步
?
    Wii, XBOX, Kinect, Siri 等提供人與機器間
    更自然的互動途徑
Microsoft 沉浸式顯示
?
    微軟最新申請與體感相關的專利:沉浸式顯示體驗
    (Immersive Display)
?
    能將大幅影像以 360 度投影在任何環境中
?
    未來凡是遊戲機中的影像都能跳脫電視螢幕的大小與邊
    框限制,直接在房間中呈現,虛擬與真實之間幾乎沒有
    界線
?
    這個新裝置與 Kinect 的深度感測鏡頭系統緊密結合,
?
    能夠在現有的鏡頭處理以外納入多重影像捕捉裝置,將
    遊戲影像以廣角全景呈現
?
    深度感測鏡頭能協助環境投影機感測房間的陳設與格局
    ,投影機會隨之調整顏色,不會因為投射在家具或不同
    顏色的牆壁上而失真
Microsoft 沉浸式顯示
來自硬體廠商的人機互動支援
?
    Intel 在 2012 年 9 月份於舊金山 Intel Developer
    Forum (IDF) 中發表了以「 Haswell 」微架構為基
    礎的第 4 代 Intel Core 處理器系列
?
    IT 業界正與英特爾合力透過第一個英特爾感知運算
    軟體開發套件 (Perceptual Computing Software
    Development Kit , SDK) 公開測試版,將下一波感
    知運算功能融入到內含 Intel Core 處理器的平台
?
    預計於 2012 年第四季初正式推出的軟體開發套件
    ,讓硬體與軟體開發者把手勢互動、臉部與語音辨
    識以及擴增實境等功能納入於未來內含 Intel Core
    處理器的 Ultrabook 以及 PC 產品
结论
開放平台的機會
?
    讓一般人可以用較便宜的價格取得軟硬體
    設施
?   一般人可以容易學會電腦軟硬體技術,特
    別是在程式開發部份
?
    讓沒有資訊專業背景的人,也可以容易的
    將資訊技術整合到自己的專業領域中
?   具資訊背景的專業人士也可以受惠於開放
    平台,而加速產品的開發
開放平台的應用
?
    開放平台在教育方面,提供更活潑與簡單
    的教學模式,特別是教導非技術人員,資
    訊科技相關知識
?   智慧生活是開放平台在日常生活中應用的
    具體呈現
?
    數位內容工作者是開放平台的最大受益者
    之一
?   人人都可以 DIY 建立自己的智慧生活
Demo

More Related Content

Similar to Introduction to open source platform (20)

《氪周刊:互联网创业必读》(第65期)
《氪周刊:互联网创业必读》(第65期)《氪周刊:互联网创业必读》(第65期)
《氪周刊:互联网创业必读》(第65期)
chenzhongren
?
資訊科技報告 自由軟體與資訊產業的未來
資訊科技報告 自由軟體與資訊產業的未來資訊科技報告 自由軟體與資訊產業的未來
資訊科技報告 自由軟體與資訊產業的未來
p085158
?
Orientation Program
Orientation ProgramOrientation Program
Orientation Program
Luo Korth
?
Android ADK
Android ADKAndroid ADK
Android ADK
艾鍗科技
?
App inventor 教學講義 chapter1
App inventor 教學講義 chapter1App inventor 教學講義 chapter1
App inventor 教學講義 chapter1
Jerry Wu
?
开源的春天和机遇
开源的春天和机遇开源的春天和机遇
开源的春天和机遇
Steven Cheng
?
《氪周刊:互联网创业必读》(第58期).辫诲蹿
《氪周刊:互联网创业必读》(第58期).辫诲蹿《氪周刊:互联网创业必读》(第58期).辫诲蹿
《氪周刊:互联网创业必读》(第58期).辫诲蹿
Chada Chiu
?
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
National Cheng Kung University
?
Android
AndroidAndroid
Android
donotbeevil
?
极客公园第11期线下活动---机锋网介绍
极客公园第11期线下活动---机锋网介绍极客公园第11期线下活动---机锋网介绍
极客公园第11期线下活动---机锋网介绍
geekparknet
?
氪周刊:关注互联网创业》(第56期)
氪周刊:关注互联网创业》(第56期)氪周刊:关注互联网创业》(第56期)
氪周刊:关注互联网创业》(第56期)
Chada Chiu
?
20161202 成大演講 自由軟體運動與社群專案
20161202 成大演講 自由軟體運動與社群專案20161202 成大演講 自由軟體運動與社群專案
20161202 成大演講 自由軟體運動與社群專案
政嘉 曾
?
建置自由软体教学平台的高级职业学校环境
建置自由软体教学平台的高级职业学校环境建置自由软体教学平台的高级职业学校环境
建置自由软体教学平台的高级职业学校环境
maolins
?
Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天
oasisfeng
?
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Justin Lee
?
App inventor 1
App inventor 1App inventor 1
App inventor 1
Roy Wang
?
软体又热又平又挤:浅谈开放原始码软体衝击下的新思维
软体又热又平又挤:浅谈开放原始码软体衝击下的新思维 软体又热又平又挤:浅谈开放原始码软体衝击下的新思维
软体又热又平又挤:浅谈开放原始码软体衝击下的新思维
National Cheng Kung University
?
IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519
IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519
IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519
August Lin
?
自由软体的定义
自由软体的定义自由软体的定义
自由软体的定义
maolins
?
自由软体的定义
自由软体的定义自由软体的定义
自由软体的定义
maolins
?
《氪周刊:互联网创业必读》(第65期)
《氪周刊:互联网创业必读》(第65期)《氪周刊:互联网创业必读》(第65期)
《氪周刊:互联网创业必读》(第65期)
chenzhongren
?
資訊科技報告 自由軟體與資訊產業的未來
資訊科技報告 自由軟體與資訊產業的未來資訊科技報告 自由軟體與資訊產業的未來
資訊科技報告 自由軟體與資訊產業的未來
p085158
?
Orientation Program
Orientation ProgramOrientation Program
Orientation Program
Luo Korth
?
App inventor 教學講義 chapter1
App inventor 教學講義 chapter1App inventor 教學講義 chapter1
App inventor 教學講義 chapter1
Jerry Wu
?
开源的春天和机遇
开源的春天和机遇开源的春天和机遇
开源的春天和机遇
Steven Cheng
?
《氪周刊:互联网创业必读》(第58期).辫诲蹿
《氪周刊:互联网创业必读》(第58期).辫诲蹿《氪周刊:互联网创业必读》(第58期).辫诲蹿
《氪周刊:互联网创业必读》(第58期).辫诲蹿
Chada Chiu
?
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
National Cheng Kung University
?
极客公园第11期线下活动---机锋网介绍
极客公园第11期线下活动---机锋网介绍极客公园第11期线下活动---机锋网介绍
极客公园第11期线下活动---机锋网介绍
geekparknet
?
氪周刊:关注互联网创业》(第56期)
氪周刊:关注互联网创业》(第56期)氪周刊:关注互联网创业》(第56期)
氪周刊:关注互联网创业》(第56期)
Chada Chiu
?
20161202 成大演講 自由軟體運動與社群專案
20161202 成大演講 自由軟體運動與社群專案20161202 成大演講 自由軟體運動與社群專案
20161202 成大演講 自由軟體運動與社群專案
政嘉 曾
?
建置自由软体教学平台的高级职业学校环境
建置自由软体教学平台的高级职业学校环境建置自由软体教学平台的高级职业学校环境
建置自由软体教学平台的高级职业学校环境
maolins
?
Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天Android 研发的昨天、今天 和 明天
Android 研发的昨天、今天 和 明天
oasisfeng
?
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
Justin Lee
?
App inventor 1
App inventor 1App inventor 1
App inventor 1
Roy Wang
?
软体又热又平又挤:浅谈开放原始码软体衝击下的新思维
软体又热又平又挤:浅谈开放原始码软体衝击下的新思维 软体又热又平又挤:浅谈开放原始码软体衝击下的新思维
软体又热又平又挤:浅谈开放原始码软体衝击下的新思维
National Cheng Kung University
?
IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519
IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519
IoT Cloud Platforms- Players, Vendors and Vertical Segments -20160519
August Lin
?
自由软体的定义
自由软体的定义自由软体的定义
自由软体的定义
maolins
?
自由软体的定义
自由软体的定义自由软体的定义
自由软体的定义
maolins
?

Introduction to open source platform

  • 2. Agenda ? 前言 ? 开放观念的演进 ? 开放原始码软体的发展 ? 行動開放平台: Android ? 人機互動的新趨勢 ? 结论 ? Demo
  • 4. 前言 ? 話說「天下大勢,分久必合,合久必分」 ? 今說「平台大勢,開久必閉,閉久必開」 ? 開放的精神是取之於社會,用之於社會 ? 個體貢獻一己之力,享受匯集全體的成果 ? 1985 年萌芽的開放概念,間接直接造就今日科 技狂潮 ? 即使如間接導致自由軟體與開放原始碼運動的微 軟,都必須擁抱開放原始碼 ? 對於現在生活影響甚巨的 SoLoMo 服務,就是受 惠於開放概念的一個典型例子
  • 5. 何謂 SoLoMo ? KPCB 合夥人 John Doerr 在 2011 年 2 月於 Google Think Mobile Conference 演講中,首度提 出 SoLoMo 一詞 ? So(Social) :當今火紅的 Social Network Sites 或是 Social Media ,都是 Web2.0 的典型,而 Web2.0 的精神就是 UGC (User Generated Content) ? Lo(Location): 以 Google Map, Earth 提供的服務為 典型 ? Mo(Mobile) :資訊科技的現在與未來趨勢行動運 算, Google 的 Android 是一個典型的平台 ? 審視 SoLoMo 的三個支柱,開放觀念隨處可見
  • 6. SoLoMo 的概念架構圖 ) Social ( 社群網站 Location ( 地理資 訊) Mobile ( 行動運 算) 安裝應用程式 Apps 的行動裝置( Mobile) ,經由 GPS 或是 Wireless AP 取得 位置資訊( Location) ,並經由 3G 或 Wireless 取得社群應用服務( Social)
  • 9. 開放概念的萌芽 ? Richard Stallman 於 MIT AI Lab 期間,不滿於以封閉軟體取代 Lab 中可自由流通的軟體 ? 他於 1985 年發表了著名的 GNU 宣言 (GNU Manifesto) 正式宣布要 開始進行一項宏偉的計劃:創造一套完全自由,兼容於 Unix 的作業 系統 GNU ( GNU's Not Unix! ) ? 並於 1985 年成立自由軟體基金會 (Free Software Foundation , FSF) ? 他於 1989 年與一群律師起草了廣為使用的 GPL(GNU General Public License, GNU GP) ,且提出「 Copyleft 」的概念 ? Richard Stallman 是堅定的自由軟體運動倡導者 ? 他與其他提倡開放原始碼的人不同,他認為使用專利軟體是非常不道 德的事,只有自由的程序才是符合其道德標準的 ? 對此許多人表示異議,並也因此有了自由軟體運動與開放原始碼軟體 運動之分
  • 10. 自由的意義 Richard Stallman 認為軟體使用要有四大自由 : ? 使用的自由:可以不受任何限制地來使用軟體 ? 研究的自由:可以研究軟體運作方式、並使其 適合個人需要 ? 散佈的自由:可以自由地複製此軟體並散佈給 他人 ? 改良的自由:可以自行改良軟體並散佈改良後 的版本以使全體社群受益
  • 11. 開放原始碼軟體 ? 開放原始碼促進會於 1998 年成立,同時促使 Netscape 公布 Navigator 的原始程式碼 ? 開放原始碼的內涵是由 Bruce Perens 所定義的 ? 開放原始碼軟體 (Open source software) 是一種原 始碼可以任意取用的電腦軟體 ? 開放原始碼軟體是以 GPL 授權發行的軟體,以保 障軟體使用者自由使用及接觸原始碼的權利。 ? 這同時也保障了使用者自行修改、複製以及再分發 的權利。 ? 簡而言之:所有公布軟體原始碼的程式,都可以稱 為開放原始碼軟體
  • 13. 開放原始碼軟體與自由軟體的差異 ? 嚴格地說來,開放原始碼軟體與自由軟體是兩個不 同的概念 ? 只要符合開放原始碼軟體定義的軟體就能被稱為開 放原始碼軟體 ? 自由軟體是一個比開放原始碼軟體更嚴格的概念, 因此所有自由軟體都是開放原始碼的軟體,但不是 所有的開放原始碼軟體都能被稱為「自由」 ? 在現實上,絕大多數開源軟體開放原始碼軟體也都 符合自由软体的定义。比如,遵守 GPL 和 BSD 授 權的軟體都是開放的並且是自由的
  • 14. 創用 CC(Creative Commons) ? 哈佛大學法學教授 Lawrence Lessig 於 2001 年在美國 成立 Creative Commons 組織 ? 提出「保留部份權利」 (Some Rights Reserve) 的相對 思考與作法 ? Creative Commons 以模組化的簡易條件,透過排列組 合,提供了 6 種便利使用的公眾授權條款 ? 創作者可以挑選出最合適自己作品的授權條款,透過簡 易的方式自行 標示 於其作品上,將作品釋出給大眾使 用 ? 透過這種自願分享的方式,大家可以群力建立內容豐富 、權利清楚、且便於散布的各式內容資源,嘉惠自己與 其它眾多的使用者
  • 16. Linux ? Linux 是一種自由和開放原始碼的類 UNIX 作業系統核 心 ? 目前存在著許多不同的 Linux 發行版,可安裝在各種各 樣的電腦硬體設備,從手機、平板電腦、路由器和影音 遊戲控制台,到桌上型電腦,大型電腦和超級電腦 ? 只要遵循 GPL 授權 , 任何人和機構都可以自由地使用 Linux 的所有底層原始碼,也可以自由地修改和再發布 ? 雖然 Linux 一詞本身只表示 Linux 核心,但在實際上人 們已經習慣了用 Linux 來形容整個基於 Linux 核心 ? 通常 Linux 會封裝成供桌上型電腦和伺服器使用的 Linux 發行版本 ? 一些主流的 Linux 發行版本包括 Debian( 衍生版本 Ubuntu) , Fedora 和 openSUSE 等
  • 17. Unix 與 Linux 歷史源流 資料來源 :
  • 19. 開放原始碼軟體的種類與形式 ? 有眾多的開放原始碼軟體,典型的系統有: ? Linux ? OpenOffice ? Firefix ? CMS platform, 例如 phpBB, ? Eclipse ? Xmind ? Gimp ? …… ? 本報告探討專為非資訊背景人員所發展的開發與應用平台
  • 21. Design By Numbers (DBN) ? Design By Numbers (DBN) 是特地為教導沒有任何 程式設計背景的藝術家與設計師程式概念的系統, 它可以直接在瀏覽器內執行 ? DBN 最早是由帶領 MIT Media Lab 的 Aesthetics + Computation Group (ACG) 團隊的 John Maeda 所帶領的團隊在 1990s 年代所開發的 ? DBN 只使用最少數量的語法與最簡單的開發環境, 其目的是要容易使用,但是這也限縮了開發進階的 應用的機會 ? 累積數年的發展與傳授 DBN 之後, ACG 團隊的 Casey Reas and Benjamin Fry 在 2001 年聯手開 發了 Processing Source: http://www.asquare.org/networkresearch/2007/11
  • 22. Processing ? Processing 是一個開放原始碼的程式語言 與整合式開發環境 ? 它是專為數位藝術家與視覺傳達設計者所 開發的環境 ? 其目的是要教導與視覺內涵相關的電腦程 式基礎,以及作為電子繪本的基礎 ? Processing 是架構在 Java 的基礎上,但是 使用簡化的語法語及圖形式程式設計的模 型
  • 23. Wiring ? Wiring 是 Hernando Barragán 在 2003 年開始開發的開放原始碼原型平台 ? 這個平台包含程式語言,整合式發展環 境 (IDE) 與單板微控制器 ? Wiring IDE 是一個由 Processing 的 IDE 所衍生,且也是以 Java 所開發的 跨平台的應用程式 ? Wiring 的硬體參考設計是以創用 CC 授 權方式釋出 ? Wiring 的硬體使用 Atmel 的 ATMega 系列晶片,包含 atmega1281/atmega2561 與 atmega644p
  • 24. Arduino ? 開放原始碼硬體的觀念衍生自開放原始碼硬體軟體的觀念 ? 透過開放原始碼的授權方式,將硬體的資料公開。硬體的 原始資料通常包括材料表 (BOM: Bill of Material) 、電路圖 (Schematic) 、佈線圖 (Layout) 、驅動程式 (Device Driver) 、應用程式介面 (API) 、以及發展平台等 ? 為協助學生以比較低的成本開發所設計的互動式專 案, Italy 某一大學的人員於 2005 年開發出以 Atmel 微控 制器為基礎的 Arduino 系統,此系統採用開放原始碼硬體 授權 ? Arduino 系統包含 Arduino 板,週邊介面板 Shields 以及 IDE 開發環境 ? Arduino 其實不是一個獨立的系統,而是衍生自其他更早 期發展的系統 (Processing, wiring) ,同時也有許多系統是
  • 26. Arduino Ecosystems Pre systems Arduino Post systems Processing Freeduino Wiring IDE Wiseduino Arduino Shields 開源碼社群
  • 27. 圖形式程式語言 ? 傳統的程式語言是一種敘述式的結構,程式是由一 連串將敘述 (statement) 依所需要的執行邏輯所構 成的 ? 學習程式的最重要目的是要利用電腦來解決問題, 也就是將問題轉化成電腦可以處理的形式 ? 大多數的人認為撰寫電腦程式是一件惱人且特殊的 工作,只有受過特殊專業訓練的人才做得來 ? 就傳統的 C++ 或是 Java 程式語言來說,對於許多 人來說或許真的是不好學習 ? 由 MIT Media Lab 所發展出來的圖形化程式設計語 言 Scratch ,就是嘗試要突破這個限制
  • 28. Scratch ? MIT 為小學生 ( 尤其弱勢的學生 ) 所開發的 Scratch 圖形化程式語言,是一個以圖形化的方法來學習程 式語言 ? 這個系統在非印歐語系國家,還有一個更重要的貢 獻,是排除了母語的障礙 ? 第一版的 Scratch 是由 MIT Media Lab 的 Mitchel Resnick 所領導的 Lifelong Kindergarten group, 於 2006 年所開發出來 ? Scrtatch 的特點 ? 積木式程式設計流程 (Building-block programming) ? 媒體的應用 (Media manipulation) ? 分享與合作 (Sharing and collaboration) 。
  • 30. Fritzing ? Fritzing 是一個開放原始碼的計畫,目的是要支援 設計家,藝術家,研究者與玩家,靈活應用互動性 電子裝置 ? Fritzing 可視為專為非工程師所開發的電子設計自 動化 (EDA) 工具 ? 此計畫受到 Processing 與 Arduino 的鼓舞而建立軟 體與網站,並開發讓使用者可以建立原型所需文件 ,與他人分享這些文件,在課堂上教導電子學,以 及產生可用於專業生產所需的 PCB 佈局 ? 2009 年 3 月份的版本開始跟 Arduino 結合
  • 34. 開放式平台 ? 有各式開放平台,但以 Google Android 最具代表性 ? Google 於 2007 年 11 月宣布推出以 Linux 為基礎的 Android 開放式平台, 讓加入開放手機聯盟( Open Handset Alliance )的 33 名中下游廠 商,藉此平台開發其手機或行動網路 裝置,而 Google 則以廣告營收來獲 取利益。
  • 35. Android 概述 ? Android 平台由作業系統、中間層、用戶界面和應 用軟件組成 ? 它採用 Software Stack 的架構,主要分為三部分 : ? 底層以 Linux 內核工作為基礎, android 系統效果 圖由 C 語言開發,只提供基本功能 ? 中間層包括函數庫 Library 和虛擬機 Virtual Machine ,由 C++ 開發 ? 最上層是各種應用軟體,包括通話程序, SMS 程 序等,應用軟體則由各公司自行開發,主要是以 Java 作為程式編寫
  • 37. 一張圖道盡 Android 發展史 (1/6) 資料來源 :http://www.xcubelabs.com/the-android-story.php
  • 38. 一張圖道盡 Android 發展史 (2/6) 資料來源 :http://www.xcubelabs.com/the-android-story.php
  • 39. 一張圖道盡 Android 發展史 (3/6) 資料來源 :http://www.xcubelabs.com/the-android-story.php
  • 43. 何謂 APP ? APP 為 Application program 的縮寫,是在智 慧型裝置如手機與平板上執行的應用程式 ? 類似電腦中執行的程式,例如 word, 記事本, 小畫家等 ? APP 為一種原生 (Native) 的程式碼,無法跨平 台執行,例如 Android 的 APP 不可以放到 Apple 的 iOS 中執行 ? 而在網頁中應用程式 ( 例如 HTML5) 是可以跨 平台執行 ? APP 與 HTML5 各自擁有自己的支持陣營 ? 選擇 APP 著重於效能,選擇 HTML5 著眼跨 平台,以及不需專屬 APP store 來發布
  • 44. APP 的開發 ? 需要使用一般程式語言整合式開發環境 IDE 來 開發,例如 ? Android 使用 Eclipse 作為開發環境 ? Windows Phone 使用 Visual Studio 為開發環 境 ? iOS 使用 xcode 開發環境 , 以 Objective C 語 言開發 ? 上述開發環境的使用,通常需要資訊專業知識 ? 一般非資訊專業者很難上手
  • 45. APP Inventor ? MIT 教授 Hal Abelson 於 2008 年在 Google 休假 期間,興起 App Inventor 的想法 ? Google 在 2009 年底釋出 Beta 版的 APP Inventor ? App Inventor 於 2012 年 1 月 1 日移交給 MIT Center for Mobile Learning ,並已於 3 月 4 日公 佈使用 ? Google App Inventor 是一個完全線上開發的 Android 程式環境 ? 拋棄複雜的程式碼而使用類似 Scratch 的積木式堆 疊法來設計 Android 程式
  • 47. 智慧型裝置的趨勢 ? 智慧型手機與平板電腦,已經成為個人最普遍 的電子裝置 ? 由面板尺度來看,由智慧型手機的小螢幕,到 平板的中螢幕,進到電視的大螢幕是必然的趨 勢 ? 智慧電視已經開始進駐家庭,智慧電視是具有 作業系統而且可以執行 APP 的數位電視 ? 智慧家庭也是時代的潮流之一 ? 開放平台龍頭,透過 Android@Home 將觸角 深入一般家庭內
  • 48. Android@Home ? Google 在 2011 年 5 月份舉行的 I/O 開發者年度大會 中,提出允許使用者與幾乎任何的電子設備間互動的平 台 Android@Home ? 在家庭中可能的設備有家庭媒體設備、洗碗機、以及電 燈等,在未來將可以使用新的平台來進行控制 ? 透過智慧型手機、平板電腦或其它的小裝置以控制有連 線的設備,已經討論多年,但是市場上一直沒有很恰當 的應用 ? Android 平台在 3.1 版的平台上引入對於 Android 開放 週邊的支援,這個規範允許外部的 USB 硬體 (Android USB 週邊 ) 可以與搭載 Android 作業系統的裝置系統或 是環境互動 ? 現階段以 ADK(Accessory Development Kit) 對 Arduino 提供支援,目前版本為 ADK 2012
  • 49. APP 開發與應用的未來 ? APP 具有最速流通的特點,開發具有創意 的 APP 可以迅速擴散,例如 Angry Bird ? 已經有一些類似 APP Inventor 的開發平台 存在 ? 這些平台很多是以開發多媒體內容,例如 電腦遊戲為主 ? 這些工具的特點是在只需最少技術之下, 可以讓自己的創意得到最大化的發揮
  • 51. 人機互動的本質 ? 傳統的電腦介面,如鍵盤、滑鼠等不是最 佳的人機介面 ? 日本第五代電腦雖未於其宣示的期間內完 成,但播下的種子卻在當今開花結果 ? 體感式人機互動的蓬勃發展,得力於微機 電技術、感測器技術、以及電腦軟硬體技 術的進步 ? Wii, XBOX, Kinect, Siri 等提供人與機器間 更自然的互動途徑
  • 52. Microsoft 沉浸式顯示 ? 微軟最新申請與體感相關的專利:沉浸式顯示體驗 (Immersive Display) ? 能將大幅影像以 360 度投影在任何環境中 ? 未來凡是遊戲機中的影像都能跳脫電視螢幕的大小與邊 框限制,直接在房間中呈現,虛擬與真實之間幾乎沒有 界線 ? 這個新裝置與 Kinect 的深度感測鏡頭系統緊密結合, ? 能夠在現有的鏡頭處理以外納入多重影像捕捉裝置,將 遊戲影像以廣角全景呈現 ? 深度感測鏡頭能協助環境投影機感測房間的陳設與格局 ,投影機會隨之調整顏色,不會因為投射在家具或不同 顏色的牆壁上而失真
  • 54. 來自硬體廠商的人機互動支援 ? Intel 在 2012 年 9 月份於舊金山 Intel Developer Forum (IDF) 中發表了以「 Haswell 」微架構為基 礎的第 4 代 Intel Core 處理器系列 ? IT 業界正與英特爾合力透過第一個英特爾感知運算 軟體開發套件 (Perceptual Computing Software Development Kit , SDK) 公開測試版,將下一波感 知運算功能融入到內含 Intel Core 處理器的平台 ? 預計於 2012 年第四季初正式推出的軟體開發套件 ,讓硬體與軟體開發者把手勢互動、臉部與語音辨 識以及擴增實境等功能納入於未來內含 Intel Core 處理器的 Ultrabook 以及 PC 產品
  • 56. 開放平台的機會 ? 讓一般人可以用較便宜的價格取得軟硬體 設施 ? 一般人可以容易學會電腦軟硬體技術,特 別是在程式開發部份 ? 讓沒有資訊專業背景的人,也可以容易的 將資訊技術整合到自己的專業領域中 ? 具資訊背景的專業人士也可以受惠於開放 平台,而加速產品的開發
  • 57. 開放平台的應用 ? 開放平台在教育方面,提供更活潑與簡單 的教學模式,特別是教導非技術人員,資 訊科技相關知識 ? 智慧生活是開放平台在日常生活中應用的 具體呈現 ? 數位內容工作者是開放平台的最大受益者 之一 ? 人人都可以 DIY 建立自己的智慧生活
  • 58. Demo