顯示具有 技術 標籤的文章。 顯示所有文章
顯示具有 技術 標籤的文章。 顯示所有文章

2016年9月5日 星期一

自製GPS手持機的導航地圖

雖然有一缸子免費的導航APP可以使用,價格不斐的Garmin手持導航機(例如官方定價將近1.7萬的 GPSMAP 64st),仍是登山客特別是高山嚮導的主要選擇之一。
通常使用Garmin手持機的山友,都會使用Gramin的個人地圖、航點、航線與軌跡規劃與管理軟體BaseCamp。BaseCamp提供非常多有用的工具與資訊,以方便航線的規劃,但是因為地圖資訊更新耗時費力,所以在BaseCamp上的圖資永遠跟不上最新的現狀。以國人最愛的避暑地:杉林溪森林生態渡假園區為例,在BaseCamp上杉林溪遊樂區的部分截圖資料如下:

BaseCamp上杉林溪遊樂區截圖
跟相對應位置,杉林溪遊樂區所提供的導覽資訊相較,差異甚大
杉林溪提供導覽圖截圖
那可能自己將這些圖文並茂的疊加,或是新增到BaseCamp上嗎?答案是可以。只要將任何普通的圖檔(jpg或png),想辦法mapping成一張具備經緯度座標的圖就可以。想像在一張紙本的圖片上,像方格紙一樣畫上方格線,然後在每個交叉點標上x,y座標就是了,只是地圖不是x,y而是經緯度。
此外在某些特定點上,若可以放上相片作為輔助說明,例如在不容易辨認的地點,用相片說明,那可以提供更豐富的資訊。將圖片放到BaseCamp很簡單,只要這張圖片或相片有經緯度座標,匯入之後就會自動貼到該座標上。雖然手機或是相機拍照有些可以在照片上註記經緯度,不過不是很方便,所以絕大部分的相片都沒有經緯度資訊,不過可以使用很多方式將照片標上座標。例如gGeosetter(http://www.geosetter.de/en/),就可以很容易的將照片標記座標。那如何取得座標?最簡單的方式是在Google Map上,找到所需要的位置(例如杉林溪大飯店),將游標移到該點上方,並按滑鼠右鍵,點選彈出式選單中的" 這是哪裡?",就會顯示經緯度。
接下來簡要說明如何在BaseCamp上,製作資訊豐富的導航地圖。
所需要的工具:

  1. 影像取得工具:例如相機,掃描器,或是電子圖檔
  2. 影像編修工具 :例如小畫家,Photoshop等
  3. Mapping軟體:Google Earth
  4. 相片座標軟體:例如Geosetter
  5. BaseCamp
  6. 手持導航機:例如GPSMAP 64st, Garmin Dakota 20

假設已經會使用google Earth與BaseCamp,所以不敘述基本操作,網路上可以找出一堆說明的文章。
以下說明將以杉林溪森林生態渡假園區為例子說明,並以紙本的杉林溪定向越野運動圖為圖資。

1. 將紙本杉林溪定向越野運動圖拍照後的原始圖檔
原始圖檔
2. 利用影像處理工具整理後的圖檔。編修的內容包含(1)旋轉(2)截圖(3)加上說明文字

修過的圖檔
這張圖的是TWD67的格式,經由圖紙上的方格座標得知座標值,再轉換為WGS 84格式如下。網路上搜尋就可以找到一缸子轉換工具。
左上角座標 TWD67 (227200 2615400) WGS84( 23° 38.413' 120° 47.086' )
右下角座標 TWD67 (228800 2614000) WGS84( 23° 37.656' 120° 48.028')

3. 利用Google Eearth的"新增圖像疊加層"工具匯入
利用Google Eearth的"新增圖像疊加層"工具,將上述圖檔匯入,並且在位置標籤中輸入東西南北的座標值。假設左上座標 為(N1,E1)與右下角座標 為 (N2,E2),那東西南北分別對應為E2,E1,N2,N1。這四個經緯度必須要很精準。完成之後,這張圖片就不再只是單純的圖片,而是一張帶有經緯度座標的地圖。

在Google Earth疊加之後的結果如下,再將這個疊加圖層另存為kmz新檔。
談到kmz,那聊一下最近爆紅的寶可夢。kmz跟寶可夢有何關係?開發寶可夢的公司創辦人John Hanke,早在2001年就共同創辦一家專門將地理數據資訊可視化的公司Keyhole,並擔任CEO。三年後以三千五百萬美元的價碼連人一起嫁給Google,並在Google主導地理資訊的開發,然後就有了本文正在談的Google Eearth。所以kmz(Keyhole Markup Language Zipped)的第一個k就是Keyhole的k。開發寶可夢的Niantic公司,是由Google split出來,大家應該知道為何寶可夢會整合地圖了。
好了拉回正題。
貼上Google Earth
4. 匯入BaseCamp在BaseCamp中,跟匯入gpx檔一樣的方式匯入前一步驟所製作的自製地圖。因為該地圖已經有經緯度座標,所以會自動貼到BaseCamp地圖中。匯入這個地圖實際上是增加一個圖層,對於原來的地圖沒有任何影響。
匯入到BaseCamp
5. 將相片匯入將相片加上經緯度座標之後,並且匯入到BaseCamp之後的結果
加上照片的自製地圖
6 匯入到手持機
航線規劃完畢之後,也可以匯入到導航機內。但是若要這麼做,這個地圖有下列限制:
  1. 只限JPG
  2. 不可超過100萬畫素
  3. 圖檔最大3M
其中畫素跟圖檔大小,可能會跟機型有關。
以Garmin Dakota 20為例子,將手持機接上電腦,然後將整個清單傳送到手持機的內部儲存空間中
傳送到Garmin Dakota 20內部記憶體
7 手持機顯示自製地圖
傳輸完成後,開啟GPS手持機並匯入剛剛製作的地圖,就可以在螢幕上看到內容。相片也可以過去,可以看到icon,但是似乎不能打開。或許要看機型。
手持機畫面


2016年8月25日 星期四

acer Aspire E5-575G筆電增加 DDR RAM

8月初購買這台Acer Aspire E5-575G筆電,出廠只有4G DDR4 RAM,搭配Intel i5-6200U 2.3G CPU,雖然可以執行 Windows 10,但是總覺得怪怪,卡卡的。
購買這台筆電時,隨機附送4G DDR4的RAM,但是需要自行安裝。查看網路資料,其他機種安裝RAM需要將整個背板全部掀起,而且步驟繁瑣,不知道這台是否也是如此?查看Acer服務內容,若請他們安裝需要300元費用,所以沒有立即處理。

閒來無事,動手試看看。首先將背部約10來顆螺絲全部鬆脫,但是先掀起只有三顆螺絲的一片獨立的蓋板,依據經驗這應該是蓋住硬碟的蓋板。


掀開後,發現記憶體的介面也是在這裡。有兩個插槽,一個已經安裝隨機出貨的4G RAM,還有一個空的插槽。原來這麼單純,被網路資訊誤導了。
打開背板

記憶體擴充槽
 依據插槽定位的方向,先將RAM模組插入之後,再稍微施加力量往下壓,讓左右兩邊彈簧板扣住記憶體之後,就大功告成。
插上記憶體

往下壓,讓左右兩邊扣住卡榫
重新開機,發現已安裝記憶體已經變成8G。


2015年11月1日 星期日

自動駕駛汽車的道德議題

兩難的情形經常發生,做抉擇的過程非常複雜,當下與下一秒的結果都會不一樣。
舉開車為例,路上突然衝出一隻動物,要如何因應,每一個人都會不同,而這個不同來自於眾多因素,特別是駕駛的經驗與判斷力。而這個不同的抉擇,可能得到天壤之別的結果。
科技日新月異,Google自動駕駛的無人車已經在美國某些洲取得牌照,可以合法上路。然而當車子遇到無法雙全的困境時,要如何作抉擇。這個問題不僅困擾著系統開發人員,也會引發各個層面的議題。
MIT Technology Review最近有一篇探討這個議題的文章,在這篇文章中,有一個假設性的例子是,一輛自動駕駛的汽車,在行駛途中突然遇到10個人正在穿越馬路,根據計算煞車距離不足,顯然傷亡無法避免。第一個選項是盡可能散躲或煞車,若來不及撞上去也是不得已,
另一個選項是車子轉向撞牆,讓車子停下來,但是可能的下場是車毀人亡。
圖片來源[1]

法國心理學家Jean-François Bonnefon 與同仁為了瞭解一般人對於這種兩難狀況的看法,進行了調查,結果發現參與者比較認同自動駕駛車的設計,應當是讓傷亡人數最低的看法。
另外也發現,調查者希望是別人搭乘這種設計邏輯的車子,而不是他們本身。這種人性的表現,類似台灣的俗語"死道友,不死貧道"。所以設計為會自己撞牆,以保護行人的自動駕駛車,大概賣不出去吧。
Jean-François Bonnefon與同仁發表的文章也指出,合乎道德標準的演算法,需要完成下列三項可能不兼容的目標:1)與人類所做的抉擇一致,2)不可以引起公憤,3)不可以讓購車者卻步。而要達到目標,車輛製造商與監理機關都需要心理學家應用實驗倫理的方法,來探討包含自動駕駛車輛與無法避免之傷害的情況。
另一個最近偶爾會出現在媒體的事件是,車子會突然間不受控制,而造成一些會上媒體的事件。這個是因為車子被入侵,或是車子電腦突然當機,所引發的道路安全事件,或許尚無確切的原因披露,但是可能會讓人們心中蒙上一層陰影。
越多自動化的科技應用在日常生活之中,上述的情形就會越多,這就考驗著設計者的道德觀點。
不過就車輛來說,十次車禍九次快。所以當有一天自動駕駛車普遍在路上行駛時,或許限制速度是一個可能的作法。不過如同Bonnefon說的,還是要各領域專家共同合作,找出最佳的方案。

參考資料
MIT Technology Review,
 Why Self-Driving Cars Must Be Programmed to Kill
 http://www.technologyreview.com/view/542626/why-self-driving-cars-must-be-programmed-to-kill/

2015年10月19日 星期一

建立自己的TinyWebDB

App Inventor有資料庫可以使用

  1. TinyDB:這個資料庫的內容,只有與該DB所整合的APP可以使用,其他的無法使用,換言之只有安裝該APP的那一台裝置可以使用,另外一台裝置即使安裝了相同的APP也不可以使用
  2. TinyWebDB:這個資料庫是放在網路上,任何安裝可以存取這個資料庫的APP的裝置,在聯網之後都可以存取這個資料庫內容,例如多人線上遊戲就是一個例子

不過因為TinyWebDB是位在公共區域,任何用App Inventor開發的APP都可以使用這個空間。空間有限,所以每一個APP最多只可以有1000個資料,超過時最早進入資料庫的資料就會被覆蓋掉。
若APP需要超過這個數量的資料,那就需要建立自己的TinywebDB,Google在Google APP Engine雲端平台上,提供程式設計者可以自己建立TinywebDB的環境,也提供了範例程式碼,只要依據在APP Inventor中所載的步驟,就可以建立自己的TinywebDB
下面說明建立的方法。主要的大步驟如下

  1. 安裝Google App Engine SDK for Python以及佈署工具
  2. 取得範例TinywebDB的原始程式碼,並且在本機先測試是否可以運作
  3. 在Google App Engine上建立用於TinywebDB的新專案,若是未曾使用過Google App Engine,要先熟悉環境
  4. 建立新專案之後,將在本機端測試過的程式檔,佈署到Google App Engine雲端平台上
  5. 使用App Inventor開發APP,在使用TinywebDB時,將ServiceURL設定為剛剛建立的這個TinywebDB的URL

1. 安裝Google App Engine SDK for Python以及佈署工具
1.1 到 http://code.google.com/appengine/下載App Engine for Pytho

1.2 選擇Google App Engine SDK for Python
1.3 選擇Windows版 (視你的平台而定)

1.4 安裝完成後執行 Google App Engine Launcher
1.5 這個原始碼是配合 Python 2.7版本的App Engine,所以若是版本不對,則需要更新。可以由此處下載https://www.python.org/download/releases/2.7/
安裝好了之後,在Google App Engine Launcher的面板,於Control選單下方的Preferences畫面中,輸入Python Path(Python執行檔的路徑),以本例子Python 2.7是安裝在C:\Python27\python.exe

2. 取得範例TinywebDB的原始程式碼,並且在本機先測試是否可以運作
2.1 到http://appinventor.mit.edu/explore/sites/all/files/tinywebdb/customtinywebdb.zip下載你自己之 tinywebdb web service的原始碼customtinywebdb.zip
解壓縮所下載的customtinywebdb.zip檔,解壓縮的會將所有的檔案放在customtinywebdb 目錄內,可以之改為自己喜歡的名字,本例子改為htlin_webdb
然後由面板中選擇File-->Add Existing Application功能,並選擇剛剛解壓縮的目錄,在本例子的路徑為
C:\Users\rogerlin\Desktop\htlin_webdb\appinventordb

2.2 測試本機端安裝
將這個範例原始碼加入後,可以點選這個專案,然後按Run,就可以在本機建立一個測試用的資料庫
若是這個專案可以正常啟動,那麼開啟瀏覽器,並輸入localhost:8080,應該就可以看到在本機執行的測試資料庫
在這裡有一點需要注意的是,這個測試資料庫設定的通訊埠為8080,若是這個號碼已經背其他網路服務用掉的話,那就要更改這個號碼
這個服務的主要目標是與由App Inventor開發的APP通訊,不過他也提供一個網頁的介面,供程式設計師進行除錯之用


3 在Google App Engine上建立用於TinywebDB的新專案
接下來要將這個程式碼佈署到Google App Engine上,以便可以真正讓APP來存取
3.1 首先點選Google App Engine Launcher上的Dashboard,以便登入到Google App Engine的Dashboard

3.2 給予新專案唯一名稱
請選擇一個唯一的名稱,這個名稱稍後會用到,本例子為htlinwebdb,如果可以順利建立這個服務,那表示這個名稱是唯一的,可以用。同時要記得這個名字,稍後會用到。

3.3修改範例程式中的app.yaml設定
接下來要修改剛剛解壓縮之範例程式碼目錄內的app.yaml組態檔。這個組態檔要用文字編輯器(例如記事本)開啟,並且將第一行application的內容(這個範例專案為customtinywebdb27 )改為你剛剛在建立Google App engine專案時所使用的名稱,本例子為htlinwebdb。
修改完成後存檔,並且關閉檔案。
接下來要將這個本機的目錄內的程式,佈署到Google App Engine之上。
請選擇Google App Engine Launcher上的Deploy按鈕,接著你會看到一個新開啟的視窗,並且顯示出佈署的一連串作業。
如果一切順利,就可以關閉這個視窗。
在Google App Engine的Developers console上可以看到下列的資訊

4 測試安裝結果
要測試這個服務是否已經正常運作,可以使用下列的網址格式
xxx.appspot.com,將xxx改為剛剛在Google App Engine建立專案時所選擇的識別子,本例子為htlinwebdb,所以網址是
htlinwebdb.appspot.com,在瀏覽器中輸入這個網址,就可以得到下面的結果

我們發現它跟本地端的一模一樣。這表示已經成功佈署到Google App Engine雲端平台之上,而且順利運轉中
5. 在App Inventor中引用
接下來在App Inventor中,於專案內建立一個TinyWebDB時,可以將ServiceURL改為,這個往們剛剛建立的webDB的URL,http://htlinwebdb.appspot.com

2014年1月28日 星期二

Google APP Engine開發簡介

Google APP Engine簡介
Google App Engine(GAE) 讓使用者可以在Google的基礎架構之上執行網路應用程式。在這個基礎建設之上,可以很容易的建立與維護,以及當流量與儲存需求增加時可以容易擴增規模。在Google APP Engine 的環境中,使用者不需要維護伺服器,只需要將網路應用程式上傳,然後其他的使用者就可以使用該應用程式所提供的服務。對於該應用程式,你可以使用自己的網址 (例如http://www.example.com/) ,或是使用 appspot.com領域之下的免費網址。該網路應用程式可以公開讓所有的人使用,或是限制只有組織內的成員才可以存取。Google App Engine 支援以數種常用之程式語言所開發的app,例如Java, Python, PHP,或GO等。
在GAE上佈署APP並不需要費用,也沒有經常性的費用,而是依據APP所使用的頻寬與記憶體,以GB為單位計費。APP的發佈者可以設定資源的最大使用量,使得APP所消費的費用控制在預算之內。App Engine上的APP沒有初始費用,所有的應用程式可以免費使用1GB的儲存空間,足夠的CPU時間,以及可以支援一個月5百萬次的網頁瀏覽數的足夠頻寬。使用者一旦開通計費機制,則免費的額度也會增加,而且只需支付超過免費額度的部分。
Google有一套完整的幾費機制,有興趣者可以參考Google APP Engine網站的說明。

Google APP Engine使用說明

1. 進入GAE首頁
首先進入Google APP Engine首頁,https://appengine.google.com/‎。若是你尚未有Google APP Engine的帳戶,則第一次使用需先申請帳號

圖1 Google APP Engine首頁
2. 申請APP帳號的程序
參考圖2的範例,勾選 I accept these terms,然後點選Submit就可以完成註冊。

圖2 申請帳號時的條款
3. APP資訊看板
Google提供10個免費的APP應用程式,建立APP專案會列在資訊看板中,在資訊看板中會顯示每一個APP專案的名稱,標題,儲存架構,以及狀態等。

4. 建立新的APP
點選Create Application可以進入建立新APP的畫面。在新建APP時需要輸入下列資料:
APP識別子(Application Identifier)
APP識別子基本是需要是一個唯一的名稱,其中不可以使用Google帳戶名稱,或是某些Google的商標等。

APP標題(Application Title)
當使用者存取這個APP時會顯示的名稱。

認證選項(Authentication Options):
對於使用佈署在Google APP Engine平台上的APP,Google提供三種認證使用者的方法:
1. 所有具有Google帳戶的使用者都可以存取(內定)
2. 限定某一Google App領域的使用者才可以存取
3. 開放給所有具有OpenIG的使用者存取

Google APP Engine提供AppCfg工具,讓使用者可以上傳與規劃APP的程式碼與內容,管理資料索引與下載記錄檔。AppCfg具有下列版本的SDK:
Python Runtime - appcfg.py.
Java Runtime - appcfg.
至於 PHP的 runtime則尚處於實驗階段

就架設網站來說,PHP大概是最多人使用的,所以就由PHP下手。
PHP SDK的下載點
https://developers.google.com/appengine/docs/php/gettingstarted/installing
這個 SDK 包含可以讓你在自己的電腦上,測試所開發之PHP程式的網站伺服器,以及完成開發後要上傳所開發的應用程式到APP Engine時所需要的軟體,下列為需要安裝的軟體套件:
Python 2.7,下載點: http://www.python.org/download/
App Engine PHP SDK,下載點: http://googleappengine.googlecode.com/files/GoogleAppEngine-1.8.9.msi

因為開發伺服器是一個Python伺服器,所以使用App Engine PHP SDK需要安裝Python 2.7。此 PHP SDK PHP 5.4 runtime包含所需的擴增資料的二進位檔, 因此若只是基於開發之目的,則不需要另外PHP套件,只需要Python就夠了。
將此SDK下載之後,依據軟體安裝說明,安裝此SDK。
大多數的PHP使用的資料庫為MySQL,App Engine SDK並沒有包含這個資料庫,則需要自行下載使用。MySQL有數個不同的版本,下載Community Server"版本就足以使用。http://dev.mysql.com/downloads/mysql/
在安裝SDK之前要先安裝Python,完成後即可以繼續'安裝SDK。此PHP SDK包含在將所開發的APP Engine應用程式上架到GAE之前,在本地端進行開發與測試時所需要的發展環境。

第一個範例

所有程式開發的第一個範例都是Hello, World,因此也不免俗的以這個範例開場。首先創建一個用來放置所有與此專案相關的目錄,並將之稱為helloworld,在這個目錄內先建立一個新的程式,並且命名為helloworld.php,在這個檔案內輸入下列內容:

<?php
  echo 'Hello, World!';

每一個AGE的應用程式都需要一個稱為app.yaml的規劃檔,在這個規劃檔中,除了其他事項外,也說明了處理腳本(handler scripts)應該用於哪些個URL。這個app.yaml檔案一樣位於helloworld目錄內,並輸入下列內容:

application: helloworld
version: 1
runtime: php
api_version: 1

handlers:
- url: /.*
  script: helloworld.php

在這個範例的規劃檔中,說明了下列資訊:
這個應用程式的識別子(identifier)為helloworld,在AGE的每一個新的應用程式都有一個唯一的識別子,在下一個步驟中,當註冊此APP時需要指定識別子。不過在開發階段倒是無所謂,就先使用這個helloworld即可
第二行的version: 1,說明目前的版本。當在上傳到AGE時,你有變動版本名稱,則AGE會保留舊有的版本,以便有需要時可以使用AGE的管理介面回復到先前的版本
runtime: php表示這個應用程式使用PHP執行環境
api_version: 1表示目前的API版本為1
handlers表示符合下列正規表示法(handlers:)的url請求,都是由helloworld.php腳本程式處理

實際執行:
測試環境
OS : Windows 8.1
Python 2.7.6
Google AppEngine SDK release : 1.8.9
日期:1/26/2014
Python內定安裝在 C:\Python27\
Google AppEngine SDK內定安裝在C:\Program Files (x86)\Google\google_appengine
Windows 8.1是x86 64位元版本,不過windows版的SDK是32位元版,所以在下載時要留意版本

A. 開啟 Google App EngineLauncher


B. 新增一個專案 File->Create New Application

參數:
Application name : APP的名稱,可以自由設定,但是最好與GAE上的app識別子一致,在此為htlintc03
 Parent Diectory :此專案的目錄,本例子為桌面
Runtime :執行環境選擇PHP
Port :在本地端測試時的通訊埠號,可以自由指定,直接使用系統給定的值 8081
Admin Port:在本地端測試時的管理通訊埠號,可以自由指定,直接使用系統給定的值8001

C. 建立一個新的應用程式專案,並且在桌面上新增一個資料夾,內部有三個檔案,分別為php檔,yaml設定檔,以及icon檔


此main.php檔為一個簡單的程式會在螢幕上印出hello world字樣,程式內容如下:

<?php
    echo 'Hello world!';

而app.yaml為設定檔,內容如下:

application: htlintc03
version: 1
runtime: php
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.php

測試APP:
點選該APP (反白)
點選run

觀看結果
若是Stop選項正常顯示,而Run選項無效,且Browse選項顯示正常,則點選 Browse

在內定的瀏覽器(此範例為Google Chrome)會帶出結果,http://localhost:8081/,其中8081為剛剛系統內定的通訊埠號

至此大功告成,一個可以發布到GAE的APP開發完成。

接下來在GAE中新增一個APP。

點選Create Application


Application Identifier:APP識別子,必須是網路上唯一的,本例子為htlintc03
Application Title:應用程式的表頭標題
Authentication Options (Advanced): 認證的選項,可以是
Open to all Google Accounts users (default):Google帳戶使用者(內定)
Restricted to the following Google Apps domain:某一限定領域的用戶
(Experimental) Open to all users with an OpenID Provider:有OpenID的用戶

完成後回到管理畫面,可以看到新增一個htlintc03 APP,狀態(Status)為None Deployed(尚未佈署)

上傳在Google App EngineLauncher建立的新專案htlintc03到GAE
點選Deploy
輸入Google 帳號與密碼

經過一番的程序

回到GAE的管理畫面,Status變成Running,佈署成功

在瀏覽器中輸入此APP的網址 http://htlintc03.appspot.com,可以看到結果,大功告成

問題排除
在開發過程中,於Google App EngineLauncher中Run APP時一直出現UnicodeDecodeError的錯誤,導致無法進行測試。這個問題主要是出自unicode、utf-8和ASCII之間的轉碼問題,但是不知道如何下手修改。在網路上找到一篇文章提到這個問題的解決方法,將Python目錄的Lib目錄內的mimetypes.py檔案中做修正
將所有的 except UnicodeEncodeError:
換成 except UnicodeError:
在Python 2.7.6中,有兩個地方需要修改,在經過修改後果然成功。

2013年6月16日 星期日

真正的雲端服務-Google Project Loon

據媒體報導由Google研發出無人駕駛自動車與Google眼鏡的Google X lab,所主導的Project (Loonhttp://www.google.com/loon/)所研發類似水母狀的半透明氦氣球,在距離地面約20公里的預定飛翔高度,可以提供方圓約1250公里範圍內無線網路服務,這個不就是最真實的雲端服務嗎?依據報導Project Loon,已經進行了約18個月的研發,終於成功的製作出prototype。Google已經在紐西蘭基督城上空,成功進行能提供網路的氣球飛行測試。氣球的大小大約等同於一架小型輕型飛機,正常飛行於高度是一般民航機一倍的平流層,可以涵蓋的服務範圍大約是兩個紐約市的面積。這些氣球在運作時,肉眼根本看不到,世界最高峰喜馬拉雅山脈主峰珠穆朗瑪峰的高度約為8844m,、所以這些氣球飛行時完全不受地形的影響。
Google 氣球[2]

這個網路環境建構完成之後,將會有多個氣球同時在空中,這些氣球是透過太陽能板取得電力。這些氣球之間有網路連結,可以想像成每一個氣球是一個router,與其連結的裝置之間構成一個LAN,而氣球之間的連結,就好像數個LAN構成一個MAN或是WAN。這些氣球會與地面的ISP連線,與整個Internet連線。
這是一個非常好的構想,若是可以成功,未來將可省下可觀的光纖電纜架設費用,對於網路基礎建設落後的地區,可以快速佈署網路服務。甚至在發生災變,網路基礎設施受損時,也可以作為提供臨時網路之用途,例如1998年的921地震與2008年的88風災。目前在紐西蘭基督城約有50名網友加入這個Project Loon的實際測試,紐西蘭里斯頓的尼莫是第一個成功靠Google氣球成功上網者。他告訴媒體靠氣球成功與網際網路連線約15分鐘,這段期間剛好氣球飛到他的設備可以連線的範圍內。
我認為Google的這個想法有可能是來自於由Zigbee為網路協定的WSN(wireless sensor network)組態,不過因為氣球飛行在如此高的高度,它會隨風飄盪,加上與地面ISP的roaming,所以要達到實用,可能還有一段路要走。不過Google的這種創新精神,應該給它一個讚。


參考資料
1. 張沛元,2013,Google網路氣球升空 填補數位落差,自由時報,2013年6月16日,http://www.libertytimes.com.tw/2013/new/jun/16/today-int7.htm
2. http://l.yimg.com/ea/img/-/130615/snpa150613402_18ro356-18ro3ha.jpg?x=375&q=80&n=1&sig=97ZvTDUSLgC7urRBXiepnA--

2013年4月8日 星期一

GALAXY S4是CPS


由GALAXY S4發表時所展示的各式功能看起來,智慧手機已經是一個不折不扣的CPS (Cyber Physical System),而且是一個功能強大的CPS。手機由單純的語音裝置,而成為數據裝置,進而成為CPS,主要的原因之一是加入越來越豐富的感測元件。以媒體所報導的所謂7大 Galaxy S7酷炫功能[1]來說,全都是因為有了相關的感測元件,再加上軟體的支援,才可以有這些酷炫的功能。
首先不需要觸控筆,就能手指懸空放大預覽圖片,觀看影片、訊息、與電子郵件的懸浮預覽(airview)功能,應該是使用了前鏡頭加上近接感測器,以偵測使用者的手勢。這次最受矚目的是透過眼球控制與臉部辨識技術,當使用者注視螢幕時,手腕隨著視線擺動就可以啟動Smart Score功能以上下捲動網頁功能,也是使用前鏡頭作為捕捉的裝置。手指不用觸控螢幕,只需對著螢幕左右揮手,就可以進行如變換曲目、瀏覽相片或接聽電話等動作的Air Gesture功能,又是鏡頭加上體感軟體的應用。第一次出現包括溫度與濕度感測器在內的環境資訊擷取裝置,讓手機搖身一變成為環境監視器。另外內建計步器透過S Health軟體,可以取得行走步數、卡路里消耗資訊等完整的行動健康。
這次Galaxy S4其他的功能包括,透過WiFi將讓音樂分享到最多8隻手機上,使得可以同時播放同一首歌,創造出環繞音效的Group play音樂分享功能。Dual camera功能可以同時啟動前後雙鏡頭,讓位於前鏡頭的拍攝者與後鏡頭的景物同時入鏡。以及現階段可以支援英、中、韓、日等國語言,的S Translator功能,可翻譯併以直接語音播放長句子或電子郵件等內容。
MENS微機電感測器技術在手機上的應用越來越多樣,新的技術讓手機可以塞入更多的感測元件。因為手機已經是一般人最貼身的數位裝置,因此與個人相關的感測元件,例如身體信號偵測的血壓、血糖等感測裝置內建到手機內已經是指日可待。話說回來搞不好已經有了,只是還不知道而已。

參考資料
趙荻媛,三星新機皇大秀軟實力,數位時代,227, 2013/4, 54-56

2013年1月15日 星期二

後智慧手機時代


科技進步推陳出新,猶記得不久之前才出現後PC時代一詞,然而美國消費電子協會(Consumer Electronics Association)首席經濟學家杜布拉瓦克(Shawn Dubravac)在2013年1月份舉行的CES展指出,現在消費者花高達65%智慧手機上的時間,在如健康、娛樂的應用程式或其他「非通信活動」上,換言之智慧手機在日常生活中正進入「後智慧手機時代」。
智慧手機大概是現代人粘著度最高的個人用品之一,而且有一個很奇特的情形是此現象不論開發或已開發,甚至非洲落後貧窮國家都適用。根據世界銀行與非洲發展銀行所共同進行的研究報告指出,非洲手機門號數由2001年約2500萬,增加到2012年底的6億5千萬驚人數字,換言之大約2/3的非洲人正在使用ICT服務。因此,手機甚至智慧手機已經不再單純的通信器材,而是成為使用者的數位生活中心。

參考資料
陳炳宏,後智慧手機時代來臨,自由時報,1/8/2013, http://www.libertytimes.com.tw/2013/new/jan/8/today-int7.htm?Slots=BInt
E. Yonazi, T. Kelly, N. Halewood and C. Blackman, The Transformational Use of Information and Communication Technologies in Africa,
http://siteresources.worldbank.org/EXTINFORMATIONANDCOMMUNICATIONANDTECHNOLOGIES/Resources/282822-

2013年1月13日 星期日

CES2013智慧電視百家爭鳴


智慧電視正處於百家爭鳴的階段,幾個智慧電視的大廠家莫不卯足了勁想要取得標準的制定權,而最容易看到這個現象的非幾個年度國際大展莫屬,其中每年第一個登場的為在美國拉斯維加舉行的CES( Consumer Electronics Show)展。包含LG、 Samsung 、Panasonic等在內的主要電視製造商均試圖透過在2013 CES展中推出自家具備新功能的電視來取得智慧電視功能的詮釋權。
在智慧電視著力最深廠家之一的Samsung當然不會錯過機會,Samsung所提供的智慧電視具備五種內容:1)一般電視;2)VOD;3)個人相簿與視訊檔案;4)社交媒體訊息;5)APP。另外它主打兩個新功能:1)號稱可了解完整自然語言句子的語音互動, 2)會推薦值得觀賞的內容給使用者的s-recommendation功能。
Panasonic則專注在內容存取的易用性主題,因而推出稱之為我的家用電視螢幕(My home TV screen)的服務,它可以透過內建在電視機上之小型攝影機,以辨認使用者並提供可以讓使用者自訂的單一選單,使用者可以藉此包含取得電視廣播、線上內容以及個人社交媒體等內容在內的服務。
LG智慧型電視專屬的「魔法遙控器(magic remote)」,消費者不是用傳統按數字鍵,而是用「寫數字」的方法來改頻道,此遙控器本身具備語音辨認功能,此採LG的體感控制方式不需要大動作的揮舞手臂或是擺動身體,而是只需動動手指就能進行控制。
參考資料
J. Yoshida, CES: Too many cooks dumbing down smart TV?, eetimes, 1/8/2013, http://www.eetimes.com/General/PrintView/4404419

2012年12月20日 星期四

腦波擷取技術


火狐狸電影曾經是一部賣作的電影,電影的結尾該架稱為火狐狸的米格戰鬥機的駕駛員,將自己的意念透過頭盔傳達到射控系統,以發射飛彈擊落敵人,是腦波信號擷取並應用在控制的一個經典影片。腦波不論在醫療領域或是認知神經科學領域,都是臨床或是研究的重要資訊來源。長久以來腦波訊號的取得,必須在醫院而且是有一定規模的醫院才有辦法取得。若是能夠讓腦波的取得同測量血壓或是體溫一般的容易,那對於人類將會產生無比巨大貢獻與影響。要能夠成功的達到這個目標,必須要消除並同腦波信號進入感測器的雜訊,而且必須要讓信號的取得點簡化,也就是不要如同傳統的腦波取樣方式一般,需要多個量測點。為了達到這個目標,華裔創業家暨工程專家在2005年創立神念科技。該公司最大的突破是以小型的晶片實現把複雜的腦波偵測器,使用類似耳機的頭帶式腦波量測裝置,以置於前額的腦波偵測器,與置於耳垂的脈搏測量器,就可以輕鬆取得人的腦波資訊。該公司的第一代腦波控制晶片於公司成立後四年問世。
就控制的角度來看,若是能夠由腦波的變化而瞭解人的想法或是情緒變化,就可以作為控制的信號來源,這應該就是腦波在控制領域的最基礎應用。在實際的應用案例中,台灣的大寶科技結合神腦的腦波晶片與LED燈,透過腦波訊號瞭解使用者大腦放鬆與專注程度,以了解內心情緒,而開發出稱為腦波光球的裝置。這個裝置以不同顏色的LED表示該位使用者的情緒反應。
光有好的硬體與感測技術還不夠,若要普及尚需要有好的開發工具,特別是軟體開發工具SDK以及,進行數據分析的演算法。而神念科技也提供豐富的開發工具與SDK。甚至為了讓這個革命性突破的產品可以迅速普及,神念科技採取類似Android的Open alliance策略,積極引入各類硬體開發商的加入,依據媒體報導已經有超過7千家的廠商加入,這其中包括台灣宏碁集團與聯電集團的創辦人。
由於此一腦波偵測技術的突破性發展,因此獲得眾多媒體與機構的肯定,例如NASDAQ網站在2010年」選出神念科技為Apple的十大競爭對手;同年時代雜誌選出以腦波偵測晶片為核心的「Necomimi貓的秘密」擴增器官玩具,為2010年度50大最佳發明。甚至美國的奧運代表隊,也使用這個技術來訓練運動員的專注能力,使得運動員的大腦可以達到最佳狀態。倫敦奧運上,過去在十強之外的美國國家射箭隊,訓練期間靠著神念科技的。在數位內容方面,也有電影製作公司在所發行的電影中,嘗試提供數種可能的結局,讓觀眾根據自己的意念來決定要以哪一個結局收場。而這個意念的來源就是神念科技的腦波裝置。
煞車系統是車輛行進間最重要的安全裝置,也是主動避免碰撞的最重要致動裝置。很多車禍是來自於駕駛因為打瞌睡或是分心,而沒有注意到前方或是周遭的狀況而發生的。目前」有一些車商已經開發出可以減少因為這個疏失而造成意外的主動式設備,這項設備可以在車輛接近異物,而且駕駛沒有任何反應時主動煞車。人由感知到異常到踩下煞車之間的反應時間,雖然可能只是一瞬間,但是可能可以避免悲劇的發生。德國Institute of Physics和柏林工業大學(Technical University of Berlin)認為意念剎車或許可以更有效,因為意念早於剎車動作。因此在實驗室中採用電腦模擬真實情境,並藉由腦波圖(electroencephalography;EEG)和肌電圖(electromyography;EMG),取得大腦信號以進行相關的研究。他們在共同發表的研究結果顯示,腦波剎車比腳踩剎車的停車速度快130ms,也提出將腦波變化用於汽車剎車的控制系統。這個研究成果比較大的爭議是意念是在實驗室中取得,在真實開車的環境中,可能會有很多的變數與干擾,因此該如何在實際道路駕駛中測得駕駛人的大腦信號是一個相當大的挑戰。這個問題或許利用神腦科技的腦波偵測技術就可以克服。


參考資料

  1. 趙荻瑗,心靈科技啟動未來:腦波先生楊士玉,數位時代,202,2012-10-30
  2. 趙荻瑗(2012),心靈科技啟動未來:腦波先生楊士玉,數位時代,2012/11,202期
  3. 王岫晨,讓車輛「讀心」腦波剎車讓車想停就停,CTIMES, 2011/8/9,http://hope.com.tw/DispNews-tw.asp?O=HJV89AMY9LYSAV0ME2&F=紐約
  4. IOP, Put the brakes on using your brain power, 7/29/2011, http://www.iop.org/news/11/july/page_51603.html
  5. Haufe, S., Treder, M., Gugler, M., Sagebaum, M., Curio, G. & Blankertz, B., EEG potentials predict upcoming emergency brakings during simulated driving, Journal of Neural Engineering, 8(5), 2011/5, 1-11, http://iopscience.iop.org/1741-2552/8/5/056001/pdf/1741-2552_8_5_056001.pdf



Google自動駕駛車

由Google副總裁兼史丹福大學教授的Sebastian Thrun所研發的無人駕駛技術,以一輛由豐田Prius汽車改裝而成的無人駕駛車,在加州與內華達州進行實際路上測試,由於優異的表現讓內華達州汽車監理所於5/7/2012同意核發全國首張自動駕駛車輛牌照給這輛自動駕駛汽車。這輛自動駕駛汽車在行駛時,會使用攝影機、雷達感應器、雷射,以及先前由手動駕駛所搜集到的訊息資料庫。另外行人、自行車及其他車輛等則是由車頂及車子前方的雷射雷達裝置負責偵測,而且會在自動駕駛車與周遭的各種障礙之間,創造出一個虛擬的「緩衝區」,以避免發生碰撞。萬一雷達裝置受到干擾,還可以切換成手動駕駛。

2012年12月18日 星期二

Android市占率達3/4

紐約Needham& Co.分析師Charlie Wolf 12/17/2012發布客戶報告指出,Android的市占率攀抵72.4%,,與此同時Apple iOS系統的市占則由18.8%降至13.9%。Wolf認為市佔率已達3/4市場的Android可能會通吃智慧手機產業。RIM的市占率則由5.2%攀抵5.3%。微軟 (Microsoft)Windows Phone的市占,則由2.7%滑降至2.4%。在硬體市場,Wolf指出Samsung第3季以智慧手機出貨量5410萬支,囊括32.4%市占,堪稱最大贏家,較去年第3季2360萬支出貨量激增129%。

資料來源
http://tw.news.yahoo.com/智慧機市場-安卓系統恐將全拿-015216477--finance.html

2012年11月3日 星期六

微電影


製作一部電影不是一件容易的事,即使是電影本科系的畢業生,也難以獨立以手邊可以取得的工具完成。不過隨著數位內容工具的普及,平民化的價格,方便的操控性,讓製作電影不再遙不可及。當然要製作一部標準約2小時的電影,依舊是專業者的看家本領,這邊所說遙不可及的內容是指目前當紅的微電影。依據八度微電影網的定義,微電影(Micro film)是指專門在各種新媒體平台上,適合於移動狀態下短時間休閒觀看,且具有完整規劃與完整故事情節的影片。微可以解釋為播放時間短(30-300秒),製作週期短(約數天到數週),微投資規模(幾千到幾萬元金額)。內容大多為幽默搞笑,時尚風潮,教育短片,商業宣傳等。電影的性質可以為獨立的影片,也可以是系列的內容。又依據柳淳美,池溶晉(2012)的看法,微電影一般是指有劇情、長度在5分鐘以內,製作者能夠獨立完成所有作業,且可以在行動載具上剪輯與放映的影片。最近坊間出現有12位專業導演分享使用iPhone製作電影的作業流程、優缺點及心得的書籍出現。書中說明導演如何利用iPhone由編劇到後製作業玩完成一部電影的製作。依據柳淳美,池溶晉(2012)的建議微電影的製作以挖掘故事以及構思劇本開始,接著再透過書中介紹的製作技巧來逐步完成電影製作。她們建議電影製作的流程包括:

  1. 尋找素材
  2. 編寫劇本
  3. 導演,演員與後勤人員的組成
  4. 美工,服裝,道具等準備
  5. 拍攝
  6. 影片編輯與電腦繪圖
  7. 影音混合
  8. 完成作品與分享

上述過程可以再分類為前置作業,實際拍攝作業,以及後製作。
前置作業:
此一階段雖未真正拍攝,但是規畫得宜可以達到事半功倍的效果。此階段包含撰寫劇本,檢視視劇本內容,對於人數,場地,拍攝時間,攝影裝備與道具清單等劇本構成進行分析與確認。最後完成影片所需要的分鏡腳本以及旁白。
八度微電影網中也有提到使用單眼數位相機拍攝微電影之前須要注意到的8個步驟,包含:拍摄微电影前期需要注意的八大步骤

  1. 劇本(Screenplay)
  2. 拍攝日程規劃(Scheduling)
  3. 預算規劃(Budgeting)
  4. 場景與角色選擇(Location Scout & Casting)
  5. 分鏡設計(Designing Shots)
  6. 故事板與視覺化預覽(Story Board, Pre-visualization)
  7. 測試攝影機與演員預演(Camera Test and Talent Rehearsal)
  8. 拍攝的時程規畫(Shooting Schedule)

實際作業:
依據前置作業中所規劃的內容,實際以數位影音工具實際拍攝電影,拍攝過程中對於設備的使用要熟悉,才可以取得完整與正確的素材。
後製作:
選用包含影像處理,影音編輯,字幕處理等在內的適合軟體工具,對實際作業中取得的影片資料進行編輯。
在網路上發現一個對於微電影的製作介紹的很詳細的網站:八度微電影網http://www.bdwdy.com/index.html,裡面除了有許多的微電影之外,也提供為電影劇本範例,例如爱情微电影剧本《电话》http://www.bdwdy.com/juben/56.html。此外,也教導如何製作微電影,內容豐富詳細。

參考資料
八度微電影網,http://www.bdwdy.com/index.html
柳淳美,池溶晉,用iPhone拍微電影:從撰寫劇本、實際拍攝到剪輯等後製作業,12位專業導演親自傳授使用iPhone製作電影的技巧!麥田出版社,2012/4
Youtube微電影頻道,http://www.youtube.com/user/minimoviestw/custom
八度微電影網,用单反拍摄微电影前期需要注意的八大步骤,http://www.bdwdy.com/baike/95.html

2012年10月25日 星期四

平板電腦對於教育的影響


商業週刊在1300期中,以平板電腦對於學校教育的影響做了專題報導。的確,由十年前開始嘗試以PDA做為電子書包的推廣開始,總算到了水到渠成的階段。電子書包涉及的三個層面:書包本體,內容,與基礎建設等,恰好在這個時候完備。
電子書包本體的推手是在2009年推出的iPad,不僅它本身締造出空前的銷售數量,也鼓勵了Android陣營的壯大,甚至近期以全新姿勢出現的Windows 8。不論那一種平台,其現有功能對於電子書包的要求來說均以完備。
過去數年間多媒體技術的進步,特別是製作工具的便利化及容易操作,使得具備多媒體的數位內容,不再是設計師的專屬產物,而是人人都可以輕易的完成。再加上如Google, Flickr, Facebook, YouTube等所撐起的Web 2.0大網,讓任何人都可以輕易的貢獻自製的數位內容,促成人人可以輕易取得的數位內容,呈現爆炸性的成長。也因此不論是體制內(校內),或是體制外(web 2.0網站),都有前所未見之豐富的數位內容可以為學習的教材。
網路泡沫化,雖然讓一票公司血本無歸,但是所建立的通訊基礎設施,卻成為雲端運算的推手之一,而雲端運算正是電子書包的基礎建設。雲端運算的推手除了普及的有線網路外,不論技術與普及率都高度成長的無限網路與3G網路,是更大的推手。
電子書包的成熟,對於與教育相關的人員,包括老師,學生,與家長等,都產生了重大的影響。依據黃亞琪(2012)的調查,對老師來說原來熟悉的教學模式被顛覆,使得老師得重備教材,並且學習使用新的軟體及工具。此外師生的角色不再是上下的權力關係,而是變成學習的共同體。青少年本來就是比較有學習慾與好奇心的族群,加上電子書包的吸引力,打開了學生的胃口,學生不再被動學習而是主動自己做計畫,使得學生的解決能力變強。最後家長也必須要調整觀念,科技的導入不是為了要增加學生考試的分數,而是要培養未來所需要的能力。掀起全球平價或普及版行動運算最重要的推手是MIT的OLPC組織,他們也指出連上雲端的智慧行動裝置的教學目的,不是準備考試,而是引發學習熱忱與培養將世界知識帶著走的能力。
對於好奇心強卻自制力弱的年輕學子來說,電子書包如刀的兩刃,可以更強化學生學習動機,以及學習的深度與廣度,使得學習成效更好;但也有可能會造成現代所謂的電腦成癮或是網路成癮。網路內的大千世界,充滿了無窮盡的新鮮有趣內容,無時無刻不在吸引人們來使用。傳統教室的情境中學生在上課中翻閱非課堂相關的內容例如漫畫,不論如何小心奕奕,總是輕易的被發現。而在電子書包的情況中,有成千上萬筆的課外讀物就在眼前,而且可以光明正大的閱讀。當然在一般情況下,若是問題確認了,那通常都可以找到解決的方法,即使有時候或許這個方法不是那麼完善。所以有關如前面所述電子書包的可能缺失,日後應該都有解決之道。
單小懿訪談了一些家長,而歸納出13個她稱為可以防止黏上螢幕的方法。製造讓孩子不要經常接觸電腦的機會,方法之一是引導孩子做更有趣的事情,例如多讓小孩到廚房幫忙,訓練動手實做;多帶孩子進行戶外活動;我是與小孩分享興趣與知識 。另ㄧ種可能的方式是限縮使用的內容,現在的電腦之所以會那麼吸引人,透過網路連出去的那個浩瀚無窮世界是主因,再加上無所不在的存取媒介如3G網路,可以讓人流連忘返。若是限縮存取的便利性,例如不用3G,或是對於孩子下載或是查看的內容可以一目了然,那也是一個可行的方法。限制使用的時間,以及使用容量較小的版本,讓孩子在使用時會覺得卡卡的,也是一個可行途徑。最後,當所使用的內容都要由自己的口袋拿出錢來支付時,孩子可能就會斟酌是否ㄧ定要使用,或許也是一個方法。

參考資料
黃亞琪,iPad老師掀起教室大革命,商業週刊, 140-146,1300期,2012/10/22-10/28
單小懿,聰明13招防孩子黏上螢幕,商業週刊,150-158,1300期,2012/10/22-10/28

2012年10月19日 星期五

Service models of cloud computing


Service models of cloud computing
There are three service models of cloud computing, according to Mell and Grance (2011), the definition of these three models are as follows.
Software as a Service (SaaS) provides consumers capability to use the provider’s applications running on a cloud infrastructure. Consumers can access the applications from various client devices through either a thin client interface, such as a web browser, or a program interface. Except limited user specific application configuration settings, the consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities. Examples of SaaS are Google Docs, Dropbox, Gmail or Evernote. In these cases users are not hosting their own servers but service providers are hosting, and users are simply accessing it through browser or other user interfaces.
Platform as a Service (PaaS) provides capability to the consumer to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider.  The consumers have control over the deployed applications and possibly configuration settings for the application-hosting environment, but do not have right to manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage.Because developers can create specific applications for the Facebook platform using APIs provided by Facebook and make the applications available to any Facebook user, Facebook is one of the examples of PaaS
Infrastructure as a Service (IaaS) provides consumers provision on processing, storage, networks, and other fundamental computing resources such that the consumers can deploy and run arbitrary software, which can include operating systems and applications. The consumers control over operating systems, storage, and deployed applications; and possibly limited control of select networking components, do not manage or control the underlying cloud infrastructure. Amazon EC2, IBM and Microsoft's Windows Azure many are examples of IaaS.

Service model architecture (Mell and Grance, 2009)

References
1. P. Mell and T. Grance. NIST definition of cloud computing. National Institute of Standards and Technology. September, 2011. http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
2. P. Mell and T. Grance., Effectively and Securely Using the Cloud Computing Paradigm, NIST, Information Technology Laboratory, October, 7, 2009. http://www.slideshare.net/govloop/cloud-computing-white-paper
3. Skytap, Demystifying SaaS, PaaS and IaaS,  March 22, 2011 , http://www.skytap.com/blog/demystifying-saas-paas-and-iaas

2012年9月16日 星期日

一張圖道盡Android發展史

今天在準備下周的報告資料時,無意間發現一張說明Android發展史的圖,內容豐富翔實,雖然資料有點舊,但是仍非常具參考價值

The-Andriod-Story
Infographic by Android Developers at [x]cubelabs