2014/06/30

[廣告] Windows 8.x App市集應用程式開發-使用 C# 與 XAML

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

顧名思義,這本書的主題是在Windows 8平台上,運用C#與XAML來開發App;作者是微軟開發技術傳教士。

Windows軟體市集裡有著各式各樣豐富的App,諸如生產力工具、遊戲以及各種社群軟體p,直接提供給數以百萬計已經在使用Windows 8.x或Surface的人們;Windows市集應用程式擁有許多引以為傲的新特色,包括觸控螢幕與觸控筆輸入介面、程式之間的標準傳輸管道,以及能與網路網站緊密的結合,還有更棒的是,打造Windows市集應用程式時,你能運用原先早已熟悉的工具:C#與XAML。

本書將向擁有傳統桌面程式開發經驗的讀者,介紹最新的Windows 8.x App開發技術,以好幾支精心設計的範例,講解Windows各項特色、Windows Runtime、以及程式設計的最佳實務慣例,在閱讀本書的旅途中,你也將學習部署軟體的技巧,包括上架至Windows市集銷售到全世界。

目錄

第1章:哈囉,Windows新一代Modern介面
第2章:Modern UI
第3章:Windows Runtime與.NET
第4章:XAML
第5章:版面配置
第6章:儀表板
第7章:筆刷、圖形、樣式、資源
第8章:顯示漂亮的文字
第9章:控制項、繫結與MVVM
第10章:檢視控制項、語義式縮放與導覽
第11章:應用程式列
第12章:啟動顯示畫面、APP 標題、通知
第13章:檢視狀態
第14章:協定:和平共處
第15章:檔案
第16章:處處非同步
第17章:SOAP與RESTful網路服務
第18章:以socket開發聊天軟體
第19章:一點點UI作業:使用者控制項與Blend
第20章:透過網路傳送玩家位置
第21章:鍵盤、滑鼠、觸控螢幕、加速度感測器與遊戲手把
第22章:應用程式設定與暫停/回復
第23章:部署與販售應用軟體

2014/06/29

Raspberry Pi情報彙整(30)

我將網路上看到的、感興趣的、跟Raspberry Pi相關的資訊收集如下。如果您發現任何新奇驚人的新聞或專案,還請留言告知。

Raspberry Pi magazines – wow! @Raspberry_Pi #raspberrypi « adafruit industries blog,不得了,介紹討論Raspberry Pi的雜誌居然有這麼多,譬如Linux User & Developer雜誌
Podcast | Raspberry Pi Today,至今已錄製三次的podcast,第一次是訪談Pi基金會教育團隊Carrie Anne Philbin,值得放進你的手機,通勤時可聽一聽。
TiddlyBot fun and simple Raspberry Pi Robot by Agilic — Kickstarter,募資中的自走車,可劃線、尋跡,連接手機或平板後也可操控。
Controlling electrical sockets with Energenie Pi-mote | Raspberry Pi,市面上有各式各樣較先進的電源插座,譬如有些可透過紅外線遠端控制,而Energenie公司也出了許多插座,並且提供Pi-mote這塊Pi擴充板,讓我們可寫程式控制插座,也就是能控制電器。
用Raspberry Pi教小朋友Scratch | CAVEDU教育團隊技術部落格,常常看到世界各國的孩童在玩Raspberry Pi、Scratch、Minecraft,但台灣也有不少學校在教Scratch,真不錯,已經遍地開花啦,連日本也有PEG programming education gathering喔。
PiFox: bare-metal ARM assembly language Star Fox | Raspberry Pi,倫敦帝國理工學院一年級學生以5900行的ARM組合語言!,在Raspberry Pi寫出1993年超任遊戲Star Fox,太厲害了,來這裡看看原始碼吧。
Tetris Duel: Bare Metal Multiplayer Tetris for Raspberry Pi @Raspberry_Pi #piday #raspberrypi « adafruit industries blog,4000行的ARM組合語言程式,使用紅白機的搖桿來玩俄羅斯方塊。
Raspberry Pi meets 1942 Crosley Radio,這種收音機非常古老,我只在漫畫電影裡看過,但對許多人來說是種無法磨滅的往日情懷吧,嘿,自己動手打造吧,Raspberry Pi加上HDMIPi以及喇叭,其實只有外殼是懷舊風。
OBD-Pi: Raspberry Pi Displaying Car Diagnostics (OBD-II) Data On An Aftermarket Head Unit - CowFish Studios,聽說車子都有個標準端子,可監測引擎運轉時的各項資訊,哇,連接Raspberry Pi並寫寫Python,就可以即時得知並檢測引擎,真厲害。
Raspberry Pi PiTFT Weather Station | Jamie Jackson,嘿,Python的強大之處之一就在於有一大堆程式庫可用,向各網站擷取氣象資訊,也是很容易的事情。
How To Make a WiFi Network That Only Transmits Cat Pictures With A Raspberry Pi,Pi可以上網,也能作為router或proxy分享網路讓別台電腦上網,何不順便動手腳把網頁裡的圖片通通換成貓照片呢,嘿嘿。
Forget Me Not Challenge (featuring Raspberry Pi) | element14,家裡門是否沒關、熨斗是否沒拔插頭、盆栽澆水了嗎、貓餵了嗎,該怎麼運用Pi與其他零件,讓你在外頭也能檢查家裡狀況呢;有點子嗎,趕快參加這項競賽吧,優勝獎品很豐富喔。
“Raspberry Eye” Remote Servo Cam | MAKE,非常詳細的步驟,加上webcam,以伺服馬達操控偏轉上下傾斜角度,隨時隨地透過網路觀看。
The Raspberry Pi Photography Awards,Adafruit舉辦的攝影大賽,必須使用Raspberry Pi+相機模組(或webcam)來拍攝照片;不可使用影像編輯軟體,但可使用相機模組的特效。
Compute Module development kits now available! | Raspberry Pi,官方的計算模組套件可供訂購囉,計算模組與計算模組IO板,可到RS或Element14訂購;奇怪,我以前跟RS購買東西的情況都還不錯,但常常聽到有人抱怨RS不好,嗯。

其他:

2014/06/28

Age is a question of mind over matter. If you don't mind, it doesn't matter.

Age is a question of mind over matter. If you don't mind, it doesn't matter.

我的翻譯是:

年齡是心理問題而非身體問題,心若無罣礙,身便無障礙。

2014/06/22

Raspberry Pi情報彙整(29)

我將網路上看到的、感興趣的、跟Raspberry Pi相關的資訊收集如下。如果您發現任何新奇驚人的新聞或專案,還請留言告知。

Raspberry Pi at Buckingham Palace, 3 million sold | Raspberry Pi,之前英國Prince Andrew曾到Pi總部拜訪,現在則是Raspberry Pi到白金漢宮晉見英國女王啦;此外,rpi銷售也突破300萬片板子囉,真可怕。這邊有更詳細的報導
Mikronauts.com » RoboPi,哇,這塊擴充板居然有8核心100 MHz的32位元微控制器,而且功能極多,相當高級。
NAVIO: Autopilot Shield for Raspberry Pi | Indiegogo,自動導航擴充板,總之什麼感測器都有,包括加速度、氣壓、溫度、GPS定位、等,也有ADC、PWM、PPM等功能。在Indiegogo募資,結束日期是2014/07/07。
Case4-Kits and HapPi-Robot for the Raspberry Pi by TLBRC and Kre8 — Kickstarter,有外殼(是紙作的嗎?)也有馬達擴充板,看起來很可愛,已募資成功。
Art Showcase: Binaudios | Raspberry Pi,大家去遊樂區風景區時,應該都玩過雙筒望遠鏡吧,而這個作品則是「聲音」,讓你能聽見城市的聲音喔。這裡有影片
How-To: Build a Solar Powered Raspberry Pi - Julian Sarokin,太陽能充電板加充電電池,全部都是使用Adafruit的產品。
Raspberry Pi Photo Booth • Drumminhands Design,拍四張照片、結合成GIF圖檔,上傳到Tumblr。
thisoldgeek: Back in Black - a DIY raspberry pi Boombox: Inspiration,很久以前曾流行過扛在肩上的巨大音箱boombox,自己做一個吧。
MobileWill: Live Raspberry Pi Power Usage!,嘿,整天開著,到底耗了多少電啊,量一量並記錄吧,包括電壓、電流、CPU溫度、GPU溫度。
Raspberry Pi with stroke and Gesture Recognition,手勢辨識,哇賽,真強啊。

另外還有:

2014/06/13

Banana Pi:試用Raspbian映像檔

大致了解Banana Pi之後,讓我們試試看安裝軟體部分吧。在Banana Pi官網的下載頁面,可找到四個映像檔,Lubuntu、Raspbian、Android、Scratch。

這一篇要嘗試Raspbian_For_BananaPi_v2.0,釋出日期2014-05-27,下載後的檔名是
Raspbian_For_BananaPi_v2.0.tgz,大小1.2 GB,解壓縮後得到3.7 GB的映像檔Raspbian_For_BananaPi_v2_0.img,所以至少需要4 GB的SD記憶卡,不過我用的是SanDisk 8 GB Ultra UHS-I Class 10。

關於Banana Pi需要的基本周邊設備,跟Raspberry Pi差不多,5V/1A或2A的電源供應器(官方論壇建議使用2A,但我用1A勉強還行,或許再加入其他東西、跑大程式時就不行了吧)、HDMI線(或轉接頭)、鍵盤、滑鼠、網路線、SD記憶卡。
映像檔頗大,下載後最好先檢查一下SHA1或MD5對不對,至於如何燒錄映像檔,咳咳,還請參考拙作「Raspberry Pi從入門到應用」。

燒錄完成後,發現它把記憶卡分成好幾個分割區,原本Raspberry Pi用的Raspbian只會有兩個,嗯,因為Banana Pi用的是NOOBS,可安裝多個OS,但只安裝Raspbian。
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.9 GB     disk1
   1:             Windows_FAT_16 RECOVERY                118.8 MB   disk1s1
   2:                      Linux                         33.6 MB    disk1s3
   3:             Windows_FAT_32 BOOT                    62.9 MB    disk1s5
   4:                      Linux                         3.7 GB     disk1s6


插入Banana Pi,開機!先看到紅色電源LED燈亮起、然後是藍色以太網路指示燈閃爍。哇,跟Lubuntu不一樣,看得到螢幕輸出耶。
也可以使用預設帳號pi、密碼banana,透過SSH登入。
安裝xrdp,遠端桌面登入。Banana Pi的硬體規格比Raspberry Pi好,執行時的速度也較順,真不錯。
既然這是Raspbian,所以原本Raspberry Pi專屬的東西也都有,譬如Mathematica(但需要啟動碼)、Sonic Pi、Pi Store、Scratch。
哇,可以透過Pi Store安裝Freeciv耶,我很久以前沉迷的遊戲。
然後我想試試Pi版本的Minecraft,不過會出現錯誤訊息「failed to open vchiq instance」,vchiq應該是介於CPU與GPU之間的底層溝通機制,既然Banana Pi與Raspberry Pi採用不同的SoC(CPU與GPU),所以大概也不能玩了。


參考資料:

2014/06/11

Banana Pi:試用Lubuntu映像檔

大致了解Banana Pi之後,讓我們試試安裝軟體部分吧。在Banana Pi官網的下載頁面,可找到四個映像檔,Lubuntu、Raspbian、Android、Scratch。

這一篇嘗試的是Lubuntu_For_BananaPi_v2.0,釋出日期2014-05-16,下載後的檔名是Lubuntu_For_BananaPi_v2.0.tgz,大小516 MB,解壓縮後得到3.61 GB的映像檔Lubuntu_For_BananaPi_v2_0.img,所以至少需要4 GB的SD記憶卡,不過論壇上有人說4 GB空間不足,所以我用的是SanDisk 8 GB Ultra UHS-I Class 10。

關於Banana Pi需要的基本周邊設備,跟Raspberry Pi差不多,5V/1A或2A的電源供應器(官方論壇建議使用2A,但我用1A勉強還行,或許再加入其他東西、跑大程式時就不行了吧)、HDMI線(或轉接頭)、鍵盤、滑鼠、網路線、SD記憶卡。
映像檔頗大,下載後最好先檢查一下SHA1或MD5對不對,至於如何燒錄映像檔,咳咳,還請參考拙作「Raspberry Pi從入門到應用」。

燒錄完成後,發現它把記憶卡分成兩個分割區,都屬於Linux形式的檔案系統,所以插入Windows或Mac OS X看不到,但下指令後得知如下資訊:

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.9 GB     disk1
   1:                       0x81                         19.9 MB    disk1s1
   2:                       0x81                         3.9 GB     disk1s2

完成後,插入Banana Pi,開機!

螢幕黑黑一片,什麼都沒有,我也不知道怎麼解決。不過在論壇裡找找後發現,因為我的螢幕只有DVI、用了HDMI轉DVI轉接頭,好像會出問題,哇哩咧。

嘛,算了,SSH伺服器預設已開啟,找出Banana Pi自動取得的私有IP後,使用預設帳號linaro、密碼linaro,以SSH登入,耶!
不過沒看到圖形介面總是有點不爽,安裝xrdp套件後,試著遠端桌面登入吧,呃,連接時出現問題,什麼問題啊?
懶得找,試試看vnc吧,執行tightvncserver後,以vncpasswd設定密碼,從Windows執行vnc viewer連線。
哇,成功啦,看到香蕉囉。
試著執行裡頭的磁碟工具,可看出我的SD記憶卡被分割成兩個分割區,還有約4.1 GB的未用空間。
試著執行各種應用軟體,嗯,速度滿不錯的,畢竟硬體規格比Raspberry Pi好很多。
也有Scratch喔,有些老師應該很需要這個吧。
開啟Chromium瀏覽器,逛逛Banana Pi官網,速度也還不錯。
到處玩玩一陣子後,試著安裝Arduino並執行,再加上AbiWord與Gnumeric,嗯,看看記憶體用量,總共可用約900 MB(有些應該分給GPU了),已用約650 MB,剩餘可用約250 MB。
初步試用後並無發現大問題,照理說底層的核心與驅動程式移植完成後,就有了一套Linux系統,剩餘的就是上層的事情了。


參考資料:

2014/06/10

Banana Pi:開箱簡介

承蒙不棄,獲贈Banana Pi一塊,在此發一篇開箱文,並簡單介紹。

什麼是Banana Pi呢?簡言之就是一塊很小的單板電腦,類似於Raspberry Pi,但硬體規格更強、執行速度更快;使用AllWinner的系統單晶片A20,1 GB的DDR3 SDRAM記憶體。

我手上這塊板子,應屬於早期生產版,只送不賣,供各領域maker試用回饋意見,相當珍貴。Banana Pi開發團隊已完成少量生產與品質測試,想必再過不久就會開始量產,逐步推廣。
拿到的東西,就是一個白白的盒子,裡頭防靜電袋裝著板子。
另外還有一張紙。
嘿,這是板子的正面,可以看到各種連接端子。
這是背面,其中刻著A20的是主晶片,含有ARM Cortex-A7雙核心,屬於ARMv7架構,向後相容於Raspberry Pi較舊的ARMv6架構,主晶片還包含GPU(ARM Mali400MP2,支援OpenGL ES 2.0/1.1) ,左邊兩個黑色的晶片則是DDR3 SDRAM記憶體(CPU與GPU共享),右邊則SD記憶卡插槽。
板子上有三個LED指示燈,1:使用者自己定義的綠色LED,2:電源指示紅色LED,3:以太網路狀態藍色LED。
1:SATA電源,2:Micro USB插座(板子的電源),3:SATA,4:HDMI,5:LVDS(將來應會推出此介面的顯示器、觸控螢幕),6:U-Boot鍵。
1:電源鍵,2:CSI相機連接端子(目前不能使用Raspberry Pi的相機模組,將來呢?),3:重置鍵,4:USB OTG。
1:3.5mm音訊輸出,2:麥克風,3:AV端子視訊輸出,4:2x13排針(GPIO、UART、I2C、SPI、CAN、ADC、PWM、3.3V、5V、GND),腳位功能與Raspberry Pi相同。
1:Gigabit(10/100/1000M)以太網路RJ-45插槽,2:兩個USB 2.0插座,3:紅外線接收器。
除了標示為CON3的2x13排針,標示為CON1的CSI相機連接端子,標示為CON2的LVDS端子,另外還有1x2 J11(UART)與2x4 J12排針(UART、3.3V、5V、GND),各針腳的功能可到此查詢
尺寸是92mm × 60mm,跟Raspberry Pi(85.60mm x 54mm)比一比吧,稍微大一點,不能直接使用Pi的外殼。
光從規格來看,Banana Pi比Raspberry Pi強,但其實比Pi強的板子很多,但價格也較貴,若以性能價格比而言,Pi仍具有不錯的優勢,而且它紅了,社群廣大資源多。但是,據我不負責任的小道消息指出,Banana Pi的價格將會非常便宜,嘿嘿,且看今後誰哭誰笑囉。

Banana Pi比Raspberry Pi多出不少周邊功能,諸如麥克風、SATA、IR接收器、USB OTG、電源鍵與重置鍵,更為便利。

根據官網的下載頁面,可用的作業系統有Lubuntu、Raspbian、Android、Scratch,但只要底層的Linux核心與驅動程式移植完成後,將來應該會有更多選擇。


參考資料: