2016年3月12日 星期六

Windows 10 IoT Core on Raspberry Pi 3

前言

之前只有 Raspberry Pi 沒有購買第二代主機,所以當微軟推出 Windows 10 IoT 的時候,沒有辦法裝來玩玩看。
這次買了Raspberry Pi 3就來試試看Windows IoT Core可以做到什麼程度。

Requirement

  • windows 10 : 你的電腦必須升級到 windows 10
  • Visual Studio 2015

Set up

基本上官方網頁寫得很清楚,所以這邊直接給連結:
首先是下載並安裝 Windows 10 IoT Core Dashboard
參考連結:https://ms-iot.github.io/content/en-US/GetStarted.htm
接下來的步驟是將IoT Core flash到SD卡,如果你是Raspberry Pi 2,那麼直接按照連結就可以。
但是我們這次要安裝在Raspberry Pi 3,所以必須要額外取得Insider Preview的版本才行。
所以按照官方的安裝教學:https://ms-iot.github.io/content/en-US/win10/GetStarted/SetUpYourDeviceManually.htm
底下稍微說明流程:
  1. 下載Windows 10 IoT Core Insider Preview iso 檔,iso檔在win10可以直接掛接,並且執行裡面的應用程式來安裝。
  2. 執行IoT Dashboard 設定新的裝置,在裝置類型選擇"Custom",之後點選"瀏覽"按鈕,選擇在路徑:C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2 底下的 flash.ffu 檔案。
  3. 然後點選安裝,把 IoT Core 安裝到 SD 卡。
  4. 安裝完成之後就可以把 SD 卡插到 Raspberry Pi 3,插上電源線就可以啟動了。

Connect the board

請注意目前 IoT Core 還不支援 RPI 3 上面的 Wifi 以及 Bluetooth,所以建議使用Ethernet來連接你的RPI3
基本上插上網路線之後,你就可以在Dashboard上面看到你的裝置。詳細網路連接步驟在官方教學
Connect the board to the network一節

Configure your board

在Dashboard上面可以看到我的裝置如下圖,說明如下:
image
  1. 開啟基本設定:直接修改裝置名稱以及設定管理者密碼。
  2. 更多的資料以及設定都可以採用網頁的方式來查看以及設定,而不需要連接螢幕。
須注意這邊預設的管理者帳號以及密碼為:Administrator / p@ssw0rd

Run Express Node.js (Windows Universal) Sample

在開始執行 sample 之前,除了 Visual Studio 2015 之外,還必須額外安裝以下套件:
  1. Windows IoT Core Project Templates
  2. NTVS 1.1
  3. Node.js Tools for Windows IoT 1.5.1
接下來就可以按照官方教學來部屬以及察看結果。
到這邊你會發現,如果把Visual Studio關掉,那麼原本的 App 就會停止運行。
如果要讓 App 可以持續運行,需打開裝置的網頁介面,網址應該是http:// <your RPI ip address>/AppManager.htm
就可以看到如下圖的介面:
image
編號1為我們剛剛部屬的App,可以看到前面有一個開始執行的箭頭符號,如果點選,則會出現錯誤視窗如下:
image
所以我們改點選Add to Startup,會跳出下面的警告視窗,點選確定。
image
就可以發現App成功執行啦!!
image

結論

這次試用 Windows 10 IoT ,它的優點在於設定以及安裝快速,可以讓開發人員專注在開發應用程式上面,但是畢竟不算是一個OS移植到上面,只是移植一個UWP的平台,所以如果要額外安裝一些套件,相較於其他執行在RPI上面的OS,可能會顯得綁手綁腳。
另外,我也嘗試安裝一些 node mudle,但是在部屬的時候,遇到了路徑的問題,看來還是需要執行額外的設定,改天找到解決方法在更新網誌。

2015年6月12日 星期五

2015年2月19日 星期四

如何使用 IFTTT

如何使用 IFTTT

目前這篇教學是參考底下 Youtube 連結所猜測的可行方式,未來正式上線會再測試與修改



補充:
         如果你本身就沒有在用 twitter ,或是 twitter 上面的文章全部轉貼到 facebook 也沒關係的人,那麼就建議參考底下推文的建議,直接在 facebook 搜尋 twitter ,就 會找到 twitter app 。授權之後, twitter 上面的文章就會直接轉貼到 facebook 啦!!

2015/02/25 補充:
        實際測試的結果,台灣伺服器會分成兩種 hashtag ,分別是:#魔獸世界 以及 #魔獸世界裡的截圖 ,個人猜測應該要是 #魔獸世界 (空格) 裡的截圖,但是沒處理好的樣子...
所以怕麻煩的可以採用上面補充的方法,或者是建立兩種 Recipes ,或是截圖的分享記得空白、或是額外多加上 #魔獸世界 的 hashTag 。

一、前言

魔獸世界 (World of Warcraft) 在 6.1 版本加入一個有趣的玩具,以及提供與 twitter 整合的功能。但是對於台灣的大部分玩家而言,使用 facebook 的人數遠大於 twitter,因此希望透過這一篇教學教導大家使用 IFTTT 自動將 twitter 發布的文章,轉貼到 facebook 上面,藉以達成魔獸世界與 facebook 的互動。

2014年11月2日 星期日

月光果汁的插件列表


月光果汁的插件列表

一、 安裝CURSE

請至官方網站:http://www.curse.com/client 下載最新用戶端程式。
安裝與使用教學可以參考:http://wolfcatofdawn.blogspot.tw/2011/01/curse-client.html

二、 下載插件自動安裝檔

1. 下載自動安裝檔

點選連結:https://drive.google.com/file/d/0B8CALfbBR0IkaEY5aGx6T3BzUHM/view?usp=sharing 下載moonjuice's addon pack.ccip檔。接下來直接點兩下剛剛下載下來的檔案,他就會自動開啟CURSE程式,並且自動下載與安裝插件。

2. 成就自動拍照插件

請參考PTT文章:https://www.ptt.cc/bbs/WOW/M.1385712036.A.2B3.html 下載插件,並且解壓縮到Addons資料夾。


2014年10月13日 星期一

Facebook Login for Android v2.1 中文


一、 Android 環境以及Facebook SDK

  1. 首先你應該有Android的開發環境,如果還沒有,請至官方網站下載:http://developer.android.com/sdk/index.html
  2. 下載FaceBook SDK:https://developers.facebook.com/docs/android/downloads,目前最新版本為3.18.1:

2013年9月23日 星期一

[Git] Synology 使用 Git Server 套件

= update note =
2016.01.28 更新 DSM5.2 說明
========================

在 DSM4.3 , Synology 已內建 Git Server 套件,方便使用者安裝使用。底下列出使用心得以及步驟:

==在 DSM5.2 之後,直接跳到步驟3即可 ==
  1. 新增套件來源 (synocommunity):http://packages.synocommunity.com

2010年5月31日 星期一

[GWT]現在,你想吃什麼?? V1.0

在PTT上面剛好看到有人在求決定晚餐的程式
於是利用一點閒雜時間,試著用GWT寫出來
--------------以上是前言------------------------
常常不知道晚餐想要吃什麼嗎??
有了這個小程式 就可以幫你決定今天晚餐要吃什麼

範例:http://moonjuice-sample.appspot.com/

說明:
1.將想要吃的食物放在list.txt檔案裡面,並且用半型的","分開
2.直接用瀏覽器執行Food.html即可 (需打開java script功能)
3.可自行編輯Food.css來稍微改變樣式,但是你可能會發現有改跟沒改差不多 >_^
4.預設食物清單是參考PTT jakevin 建立的宵夜簽名檔
5.若是有網頁空間者,可以將整份上傳至空間即可以使用

下載:
http://sites.google.com/site/moon80362/download/food.zip?attredirects=0&d=1

下次改版:(如果有改版的話)
新增上傳清單功能

未來展望(意思就是未來的事情只有未來人知道)
作一個777的一天吃什麼

2010年4月23日 星期五

[GWT]在GWT中使用JSON

為什麼會想用JSON呢??

原因很簡單,就只是因為XML一直出現錯誤,讓我很不爽(炸

廢話不多說

1. 在gwt.xml中
"<inherits name="com.google.gwt.json.JSON">"
2.JSON範例 (如果不清楚JSON的格式,可以參考這篇)
{
"products": [
{ "name": "name1", "type":"type1","info":"info1" },
{ "name": "name2", "type":"type2","info":"info2" },
{ "name": "name3", "type":"type3","info":"info3" }
]
}

3.程式碼:
private void parseJson(String text)
{
JSONObject json = (JSONObject) JSONParser.parse(text);
JSONArray ary = json.get("products").isArray();
for (int i = 0; i < ary.size(); ++i) {
RootPanel.get().add(new Label(ary.get(i).isObject().get("name").toString()));
RootPanel.get().add(new Label(ary.get(i).isObject().get("type").toString()));
RootPanel.get().add(new Label(ary.get(i).isObject().get("info").toString()));
}
}

2010年3月24日 星期三

[閒聊]FCU_TALK板

哼哼

我只能說太淺了!!

想當初我在印專題報告,也是一百多頁

也是學弟要印實驗報告,

但是他的報告在我的後面

礙於快要上課了,我就叫他去另一台先印

他原本的報告我付錢!!

我人真好!!

2010年1月11日 星期一

[ASP]codepage

<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8

2009年12月21日 星期一

[道歉]關於下面那一篇文章

由於本人疏忽

忘記在文章上面附上原作者ID

特此向原作者 tkcn 道歉

[GWT]利用 HandlerManager 實作共用的 Event Bus

原作者:tkcn

利用 HandlerManager 實作共用的 Event Bus

GWT 從版本 1.6 開始提供了新的 Event Model - Handler,並捨棄了原先的 Listener 方式。

關於 Listener 與 Handler 的差別,我推荐看這篇文章: GWT’s new Event Model – Handlers in GWT 1.6 [1]。

在這篇文章中,我將兩者與本篇文章有關的部份做介紹:


Listener:
  1. 對於每一個 Event Source 會有一個對應的 Listener,例如 MouseListener, KeyboardListener...等。
  2. 在每一個 Widget 中,針對每一種 Event Source 的 Listener,都會用一個獨立的 ListenerCollection 去紀錄。
Handler:
  1. 每一個 Event Type 都會有一個對應的 Handler,因此原先 MouseListener 相關的事件,將會被重新區分成 MouseDownHandler, MouseUpHandler...等。這樣做的一個額外的好處是,當只需要針對一種 Event Type 做處理時,實作 Handler 的類別只需要 over-ridding 一個對應的 method,而不需要像寫 Listener 時,仍然需要 over-ridding 其他沒用到的 method。
  2. 每一個 Widget 中,都只會有一個 HandlerManager,負責紀錄所有的 Event Handler。

由於 HandlerManager 能夠針對不同的 Event,dispatch 其對應的 Handler 去處理,因此我們也可以利用 HandlerManager 來做為整個 Web App 共用的 Event Bus。[2], [3]


先說明一下本篇文章欲使用的例子:
在一個 Web App 上,有許多的 Panel,我們現在希望當按下 A Panel 上的 Button 時,B Panel 上的 TextBox 會輸出文字。

在原本的做法裡,我們會讓 A panel 實作 ClickHandler,當 A panel 收到事件時,就去呼叫 B panel 所提供的方法。

這個作法會使得 A panel 必須持有 B panel 的 reference(就 UML 的角度來說就是 A 對 B 有 Aggregation 關係),這樣會使得 A, B 之間的耦合度高,造成未來擴充、修改的困難。

接下來就是解決辦法啦!

  1. 首先,於 EntryPoint 建立 HandlerManager 物件,並且將 Reference 傳給所有的 sub-component,這個部份可以利用 Constructor 達成。
    HandlerManager eventBus = new HandlerManager(null);
  2. 然後在 B panel 裡頭寫上事件處理,並且向 Event Bus 註冊。

    @Override
    protected onLoad(){
    // register event handler
    fooRegistration
    = eventBus.addHandler(FooEvent.TYPE, new FooHandler(){
    @Override
    public void onFoo(FooEvent event) {
    textBox
    .setText("A panel's button click!");
    }
    });
    }

    @Override
    protected onUnload(){
    // unregister event handler
    fooRegistration
    .removeHandler();
    }

  3. 最後是 A panel 的事件觸發,當按下按鈕時:

    eventBus
    .fireEvent(new FooEvent());


這樣一來,A 與 B 彼此可以完全不知道對方的存在,將可以大大的降低耦合度。

2009年9月27日 星期日

[閒聊] 台南一日遊

就已經知道要去古蹟風景 結果沒有人帶相機是怎樣!!

老實說這一趟行程因為卡到他們要去吃丹丹,所以變的超級不順的XDD

不過順便繞一下台南市也不錯

原本約好11點要在台南集合的,不過條臨時有事情耽誤了

大概11點半才集合完畢!

第1站:丹丹漢堡 崇德店

第2站:孔廟

第3站:國家文學館

第4站:赤崁樓 祀典武廟 大天后宮

第5站:中正路 度小月擔仔麵

第6站:億載金城

第7站:周氏蝦捲 依雷特布丁

第8站:四草大橋看夕陽

第9站:花園夜市

這次實在有點可惜,原本想說一些古蹟大家應該逛一下子就結束了

不過大家還是都逛了一圈,拍拍照片

所以,要去安平古堡跟延平老街的行程就臨時取消了。

原本還擔心說,一下子就逛完,然後有時間再去逛安平樹屋或洋行的

看來是白擔心了,呵呵。

相片貼在這邊:http://picasaweb.google.com.tw/moon80362/RisfyK#

2009年9月18日 星期五

[閒聊]白目國中生

以下是我同學的故事 將他簡稱為A


有個白目的國中生

撿到A的錢包

裡面大概1千1左右


他把錢花光之後...

想錢想瘋了 於是腦筋就動到A的證件身上


這下好了

拿A的身分證不知道幹嘛

然後就被抓包 被送到警局

據A說 刑事訴訟跑不掉了....

然後警察也很白爛

警察:你的皮夾是什麼顏色?

A:黑色!!

警察: 可是白目國中生說是藍色,你是不是記錯了...

口供硬是寫藍色...

(A很確定他的皮夾是黑色的 因為他弟跟他用同一款 然後A弟的皮夾顏色是藍色的)

為什麼不是懷疑白目國中生記錯勒??


真不知道要不要可憐那個白目國中生...

年紀輕輕就有案底了??

結論是 身分證不見真的要到警察局備案!!

然後那個國中生真他媽的腩殘沒藥醫!!

2009年8月18日 星期二

[閒聊] 第一次裝CPU...

安裝過程 都還蠻順利的

第一次裝CPU呢 顆顆

裝INTEL CPU風扇是一件很恐怖的事...

感覺一不小心,主機板就會斷掉= =

小插曲是 後來要幫他重灌的時候

發現他家的光碟機只能讀VCD....

於是又跑去買光碟機 囧

P.S. 這也是我第一次碰到SATA介面的光碟機!! XD 好多第一次

2009年8月10日 星期一

[閒聊]月光家大搜密之我家在威尼斯

好害羞...居然要讓大家看到我家附近了耶....

那我不多說了...直接看相簿吧!!!

這次是有史以來淹最高的一次...

http://picasaweb.google.com.tw/moon80362/wGaahD#

2009年8月3日 星期一

[閒聊]去麥當勞都比22K便宜??

最近跟朋友聊天剛好聊到政府的22K政策

朋友說:你看2.2w 表面還不差,實際上 每天工作8小時 還要加班到9點,

說不定去麥噹噹打工還比較爽勒

於是我打開小算盤 95*8*30 = 22800

也就是說,去麥當當打工做30天還可以多800?!

31天的話 95*8*31 = 23560 足足多了13560呢!!

當然,扣掉勞健保,麥當當可能就輸22K了

不過....據我所知,有黑心的老闆,22K還是要扣勞健保 (政府說扣掉勞健保的薪水為22K)

所以.... 有沒有政府規定時新95 結果正職薪水比打工的薪水還低的八卦阿

總之...去當家教的薪水是最多的!!!!!

[閒聊]風味堂 - ナキムシのうた (愛哭鬼之歌)


因為人是沒有眼淚就不能活下去的生物
所以不要掩飾自己的脆弱 想哭就盡情地哭吧
那些淚水將來一定會變成某人堅強的守護
所以現在為了知道痛苦 想哭就盡情地哭吧
與其忍耐著露出笑容 倒不如一切通通遺忘 哭泣也是必要
有精神了之後就來歌唱

shalalalalala...你唱著最喜歡的歌曲 臉上就綻放了笑意
shalalalalala...唱到你覺得好過些許 唱到傳達給明天的你

因為人是只能向前進的生物
所以不要陷在過去裡 想哭就盡情地哭吧
那些淚水將來一定會畫成記憶的地圖 人生也不必須要拋棄什麼
所以請趁現在盡情地哭吧


在遙遠的那方 你流下的所有淚水 都有幸福的花香
所以有元氣的話就來歌唱

shalalalalala...你唱著最喜歡的歌 臉上就綻放了笑意
shalalalalala...唱到你覺得好過些許 直到傳達給明天的你


everybody let's sing a song・・・
everybody let's sing a song for your life, for your smile
everybody let's sing a song・・・
everybody let's sing a song for your life ,for your smile for your dream ,for yourself

shalalalalala...

你唱著最喜歡的歌 臉上就綻放了笑意
shalalalalala...
唱到你覺得好過些許 直到傳達給明天的你

直到明天的你也綻放了笑意