2013/05/29

[廣告] iOS 6 SDK核心範例精研(The Core iOS 6 Developer's Cookbook, 4E)

嗨,我翻譯了一本書,在這裡打打廣告。

書名:iOS 6 SDK核心範例精研
原書名:The Core iOS 6 Developer's Cookbook, Fourth Edition
作者:Erica Sadun
譯者:我
出版社:悅知
出版日期:2013年5月16日
頁數:592



此次改版,作者Erica與出版社將原書拆解成三本書。

導論、介紹Objective-C、介紹Xcode、App如何上架、UIKit的基本功夫(視圖、控制器、基本視覺元件),大致上就是前一版(iOS 5那本)的第1~7章,獨立出來放在Learning iOS Development: A Hands-on Guide to the Fundamentals of iOS Programming裡,預計在2013年8月出版,約600頁。

而The Core iOS 6 Developer's Cookbook這本,更新到iOS 6與Xcode 4.6,並且拿掉一些最基本的入門內容,省下一些篇幅,讀者也省下一些錢。內容包含觸碰與手勢、自訂控制元件、各種UIKit元件、警示視圖、視圖與動畫過場效果、視圖約束規則(iOS 6新功能)、文字輸入、常用控制器(挑選照片、傳送電子郵件、社群網站狀態更新、等等)、表格視圖、群集視圖(iOS 6新功能)、捲動、畫面編排、等等iOS開發的核心知識,以及初階介紹Core Data與網路連線,所有的API都按照iOS 6 SDK加以更新,約570頁。我翻譯的是這本原文書

目錄
第1章  手勢與觸控
第2章  建立與使用控制項
第3章  警示使用者
第4章  視圖與動畫效果
第5章  視圖約束規則
第6章  文字輸入
第7章  視圖控制器
第8章  常用控制器
第9章  無障礙存取
第10章 建立與管理表格視圖
第11章 群集視圖
第12章 初嚐Core Data
第13章 網路基本知識
附錄A  Objective-C字面值

進階內容則放在The Advanced iOS 6 Developer's Cookbook裡,於2013年3月出版,約530頁,內容包含Store Kit、Game Kit、Core Location、各種特殊用途的軟體開發框架。

關於其他學習Objective-C的iOS的資源,可以參考我寫的這篇

2013/05/23

Pidora:開始支援Raspberry Pi的Fedora發行套件

在5月14日,Raspberry Pi基金會正式開賣相機模組線上商店也重新開張,有T-shirt、杯子、絨毛熊、滑鼠墊、等等。

而5月22日,支援Raspberry Pi的發行套件Pidora 18終於現身囉,由Seneca Centre for Development of Open Technology (CDOT)開發。這是根據ARMv6架構重新建置Fedora的版本,充分運用Raspberry Pi的硬體能力,可使用Fedora 18的軟體套件,第一次開機時可使用圖形化組態設定畫面,另外還有無頭模式(headless mode),即便沒有螢幕鍵盤滑鼠也可進行初始設定,可從喇叭或LED閃爍得知IP位址,內含C/Python/Perl軟體開發環境,預設包含電子專案需要的程式庫與驅動程式,譬如馬達與機器人相關的GPIO、I2C、SPI,詳細情況請看5/22的釋出新聞稿Pidora的維基百科

若您不知道Fedora、Remix為何意的人請看這篇:Raspberry Pi相關詞彙

目前Raspberry Pi基金會官方推薦使用的是Raspbian(raspberry + debian),顧名思義,這是以Debian為基礎特別為Raspberry Pi硬體打造的Linux發行套件,
在官方下載頁面裡列著Raspbian、RISC OS、Arch Linux ARM,預計將來也會放上Pidora的連結(2013/06/01更新:已經放上去了)。

順帶一提,Fedora對每個大版本取的名字頗為奇妙,17是Beefy Miracle(多肉多汁的奇蹟大熱狗),18是Spherical Cow(球狀牛),19是Schrödinger's Cat(薛丁格的貓),對舊版命名與緣由有興趣的人請看History of Fedora release names

先到Pidora網站下載映像檔,得到pidora-18-r1c.zip(490 MB),解壓縮後得到pidora-18-r1c.img(1.66 GB),還有MD5驗證碼可檢查檔案內容是否無誤,然後燒錄到SD記憶卡裡。

第一次開機時有兩種初始設定模式,圖形化設定介面與無頭模式(沒有螢幕鍵盤滑鼠),先試試普通的圖形介面吧。

雖然我個人比較偏好一般文字型的設定介面,因為速度較快,但Pidora第一次開機時載入圖形化設定介面的速度也很快。

首先在左上角看到熟悉的水果(渣畫質,請見諒)。


哇,居然有動態旋轉的圖示。


咦,怎麼出現一個白色方框、還有滑鼠游標。


進入圖形設定介面囉。


設定鍵盤。


建立一般的使用者帳號密碼。


root的密碼。


設定日期時間,可利用NTP從網路上取得。


設定時區。


是否要擴增根檔案系統所在的分割區,用盡記憶卡的空間。


主機名稱,另外還可選Boot Type,開機後為Text文字模式還是Graphical圖形模式,我先選Text。


然後經過一段時間,就能看到登入提示訊息囉。在這個畫面停了滿久的時間,我還以為正在調整分割區,但其實按一下Enter後就會出現登入提示。


試著輸入startx進入X Window,哇哩咧,這什麼鬼。


被踢回終端機介面,看不懂的訊息,哇哩咧。試著安裝一些套件、到網路上搜尋解答,沒找到辦法。難道是因為我剛剛選了Text文字模式嗎?


重新燒錄一遍,這次選Graphical圖形模式,嗯,可成功進入X Window囉。大概有些設定需要更改,有高手不吝賜教嗎?


然後再重新燒錄一次,試試無頭模式,詳細步驟請參考官方說明文件在燒錄映像檔完成後、在第一次開機前,先到SD記憶卡的第一個分割區(FAT32檔案系統)裡新增一個名為「headless」的檔案,無副檔名,若檔案內容為空白,代表你想要使用DHCP取得IP位址,或是自行指定,類似底下的樣子:

IPADDR=192.168.1.105
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

插入插槽,拔除螢幕鍵盤滑鼠,試著第一次開機吧。

2分鐘之後會透過喇叭念出IP位址,然後再經過30秒之後會閃爍OK/ACT LED表示IP位址,閃爍方式如下:

1到9次短閃爍,代表數字1到9,
10次短閃爍代表數字0,
長閃爍代表「.」,
每個數字間會有短暫的暫停。

哇,漏掉的話不就糟糕了。

知道IP位址後,就能以ssh登入,帳號root,密碼raspberrypi,登入後記得更改密碼。

嗯,又多了一個支援Raspberry Pi的Linux發行套件,玩玩看吧。

2013/05/20

Raspberry Pi相機模組開箱文

Raspberry Pi基金會於5月14日推出相機模組正式開賣,二話不說立刻下訂單,我上次到RS Components購買Model B,這次本來想試試看element14/Premier Farnell/e絡盟,購買相機模組沒問題,但我還想買一塊512MB記憶體的Model B,在點了一連串的網址連結後,卻被導引至某網站,無法一次購買兩項產品,所以放棄,最後回到RS Components下訂單。

我在5月14日中午時下訂單,寄來的購買確認郵件中寫著Raspberry Pi HD Video Camera module的價錢是US$25.49,以及Raspberry Pi Type B Single Board Computer 512MB的價錢是US$34.34,另外運費Standard Delivery是US$7.87,總共US$67.70,另外有一封付款確認郵件(應該是由PayPal負責金流)寫著,總計$67.70 USD,原始金額NT$2,092 TWD,匯率1 TWD = 0.0323613 USD。

然後在5月16日晚上,DHL(負責運送的公司)寄來出貨通知郵件。

最後在5月20日早上11:00,收到包裹囉,非常迅速。簽收時還是用數位觸控筆在一台機器上頭簽名,呵。

底下是這款相機模組的規格:
Omnivision 5647 sensor in a fixed-focus module(影像感測器)
5M Pixel sensor(500萬像素)
Still picture resolution: 2592 x 1944
Max video resolution: 1080p(720p或1080p的H.264錄影格式)
Max frame rate: 30fps
尺寸:20 x 25 x 10mm

這是寄來的包裹。


包裹背面。


打開後就是兩個小盒子,底下是Raspberry Pi Model B。


打開後的樣子。


底下是主角相機模組,用個紙盒裝著,被壓到了,有點不爽。


開箱!就是一個防靜電袋子,裡面就是相機模組與排線。相機模組對於靜電非常敏感,取出前先確保你身上沒有殘留靜電。


總長大約17公分。


這就是相機模組,正面。


相機模組,背面。


排線端,要插入Raspberry Pi的相機連接埠。


排線端的另一面。


Raspberry Pi的相機模組連接埠為CSI(Camera Serial Interface)介面,位於HDMI與RJ-45網路線連接埠之間。


接下來要將相機模組與Raspberry Pi板子連接起來,排線頗為細緻,需小心對待,不可強力折彎,官方釋出一段影片介紹如何連接,請務必看一遍。

這是連接埠原本的樣子。


小心地拉起塑膠卡榫,拉起高度只有一點點而已,請小心。


然後插入排線,請注意方向,並保持排線上的鍍金端成為平行狀態。然後壓下塑膠卡榫。


相機鏡頭有貼保護膜,請移除。


移除後的樣子,保護膜在旁邊。


完成囉!


以上便是硬體部分,接下來是軟體部分。我用的是Raspbian(2013-02-09-wheezy-raspbian.img),請先更新韌體與軟體:

$ sudo apt-get update

$ sudo apt-get upgrade
(我個人習慣使用dist-upgrade)

然後執行raspi-config:

$ sudo raspi-config

進入裡頭的「camera」項目,啟用相機模組,再重開機。


接下來,便能使用一些準備好的程式與指令拍攝靜態照片與錄製動態影片。

注意:底下的照片是我用很基本的指令與參數所拍攝的,所以不是最佳狀態,這些指令還有很多可調整的參數,請參閱Raspberry Pi基金會官方的介紹指令的詳細解說文件。而且這些照片經過上傳後,可能會與原本的稍有出入。

以指令raspistill可拍照,如下

$ raspistill -o image.jpg -t 1000

-o指定輸出檔名,-t指定預覽時間(單位為千分之一秒),你會在螢幕上看到預覽畫面。如果你發現相片左右或上下顛倒,可加入參數-hf(horizontal flip)與-vf(vertical flip)調整。

這是我的手與我房間的天花板牆壁。


這是昨天去參觀的Maker Faire: Taipei 2013宣傳單。


這是我喜歡的一本書。


另外可利用指令raspivid進行錄影,如下:

$ raspivid  -o video.h264 -t 20000

-o指定輸出檔名,為H.264格式,-t指定錄製時間(單位為千分之一秒)。

錄製後,我放到Windows上,觀看時卻不太對頭,會出現如下畫面。


但這應該是我電腦與媒體播放器(以及codec)的問題,可利用ffmpeg轉成其他格式,例如:

$ ffmpeg -r 30 -i video.h264 -vcodec copy outputfile.mkv

或是

$ avconv -r 30 -i video.h264  outputfile.avi

(轉檔指令的詳細用法,還請自行參閱文件。)

然後就能正常播放(注意,底下是我轉檔後、上傳後的樣子,絕對不是最佳品質)。


嗯,中間水平方向似乎有一條帶子,奇怪,是不是排線沒插好,還是光線問題呢,或是需要調整參數,就讓我慢慢研究吧。

另外,還可以將影像透過網路傳送到別台電腦上顯示,請參考Raspberry Pi官方部落格介紹的步驟

上述指令所使用的程式API應該都是mmal(其底下就是OpenMAX),嗯,這又是另一項研究的主題了。

有了相機後,可以作些什麼應用呢?先上網找找別人的作品吧,譬如縮時攝影

e絡盟有個比賽,大意就是用Raspberry Pi相機模組拍照參加,詳細辦法請見這裡,截止日期2013年6月14日。

2013/05/18

Maker Faire: Taipei 2013進場參觀的一些照片

今天(5/18),跟兩位朋友前往參觀Maker Faire: Taipei 2013,出展攤位、活動時間表、工作坊,還請參考這一篇

其他分享心得文:
我只拍了幾張照片而已,而且畫質很糟糕,請見諒,這一篇只能說不值一看,請大家看看以上的照片集錦與其他人分享的心得文吧。

一路上都有旗幟引路,非常明顯。


3D印表機(成型機)紅到不行,會場內好幾台。


這一台製作出來的東西滿細緻的。


各種科學玩具。


各種電子機械。


8x8x8的LED,製造出眩目的效果。


當然啦,Arduino的應用也是處處可見,底下是使用Motoduino(Arduino加上馬達控制)製造出來的自走機,加上超音波偵測牆壁。


當然啦,四處也可見Raspberry Pi。


運用Raspberry Pi打造家庭劇院,圖中是OpenELEC的XBMC。


舞台上正在分享演講中。


啊哈,拿水果來當做開關與按鍵,按一下就會發出聲音喔。


人潮絡繹不絕。


我只拍了幾張照片而已(渣畫質,請見諒),其他還有仿生獸、3D月亮週期變化、魔棒、展示各種電子感測元件、音樂水舞、尋寶機器人、各種複雜的機器人、智能小車、萬物可印的平板直噴機、程式交易機器人、投影初音、等等等等,眼花撩亂不可勝數。

有興趣的朋友請務必親自前往參觀喔,明天(5/19)還有喔。