星期六, 8月 31, 2013

20130829 Android 先修旁聽小記


20130829

張庭禎老師

上課檔案
  • Android 專案程式基本組成(2 Day).pdf
  • jdk-7u21-windows-x64.exe
    • 確認機器內有 java 環境, 如果沒有就裝 jdk
  • adt-bundle-windows-x86_64-20130717.zip

執行解開資料夾內的 adt-bundle-windows-x86_64-20130717\eclipse.exe

* 新增模擬裝置
在 eclipse 內
點選 Window → Android Virtual Device Manager



點選 New
輸入相關資訊 (AVD Name / 選取 Device / 輸入SD Card 大小)
點選 OK





選取剛剛建立的裝置
點選 Start → 點選 Lanuch


Notes:
  • package 在 java 以及 Android 代表的不同
    • java: folder
    • Android: 程式安裝進去的名稱(主索引)
  • uses-sdk: 使用的 Android 版本
    • 18: 4.3
    • 17: 4.2
    • 15: 4.0.3
    • 8:  2.2

* 建立 一個新的專案
File → New → Android Application Project


並輸入相關資訊
開啟專案資料夾下 src/com.example.app20130829/MainActivity.java




刪除以下區段
@Override
   public boolean onCreateOptionsMenu(Menu menu) {
       // Inflate the menu; this adds items to the action bar if it is present.
       getMenuInflater().inflate(R.menu.main, menu);
       return true;
   }


觀察 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.app20130829"
   android:versionCode="1"
   android:versionName="1.0" >

   <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="17" />

   <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       <activity
           android:name="com.example.app20130829.MainActivity"
           android:label="@string/app_name" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>

</manifest>

有關於 @string/app_name
可以觀察 res/values/strings.xml


Resource Files
  • 檔案名稱必須使用英文小寫字, 不然會產生錯誤
  • drawalbe-hdpi 高解析圖片
  • drawalbe-ldpi 低解析圖片
  • drawalbe-mdpi 中解析圖片



嘗試執行程式
在專案上面按滑鼠右鍵  →  RunAs → Run Configurations
輸入名稱, 選取專案



Target 標籤點選 Always prompt to pick device


點選 Apply →  點選 Run
選取裝置 →  點選 OKLab: 修改App 的圖示

可以修改 AndroidManifest.xml 內的設定
在 Application 標籤內修改 Icon 的相關設定(可以點選 Browse, 然後 Create New Icon)


介紹三種程式的撰寫方式


-- Class End --

星期五, 8月 09, 2013

GUADEC 2013 小記 - 遇見 Andrea Veri


今年很開心可以參加 GUADEC 2013, open source 以及 freeware  的小圈圈是很小很美妙的(笑).

在還沒有參加GUADEC 之前, 我並不認識 Andrea Veri, 倒是常常在 mail list 上面看到他.  第一次看到他名字的時候是因為 nagios 的 jabber (google talk)整合
(http://www.dragonsreach.it/2012/02/18/nagios-xmpp-notifications-for-gtalk/), 他有一篇 blog 有提到這方面的實作. 我們跟自由軟體鑄造廠 OSSF 有很多工作坊的合作, 其中有部分是結合 openSUSE 以及 nagios 的實作.

實做筆記可以參考這篇 blog 其實也有寫了英文版的實作筆記

但是真的非常開心遇到Andrea Veri本人, 還讓他幫我很多的問題

能夠參加GUADEC 真是太好了

:-)



星期日, 8月 04, 2013

GNOME.Asia 報告於 GNOME基金會年度會議 AGM

這次很開心可以參加 GUADEC 2013
看這個照片應該是很開心吧(雖然讓我聯想到鬼太郎裡面的妖怪)


但是覺得很興奮, 因為可以代表 GNOME.Asia 在年度會議中報告 5分鐘

下面是我的簡報

還有影片檔


再次謝謝來參與的所有人
也謝謝GNOME 還有所有GNOME.Asia團隊還有韓國的團隊

:-)


星期六, 7月 13, 2013

第四屆全球華人探究學習創新應用大會


第四屆全球華人探究學習創新應用大會


 


這次很榮幸團隊可以與佛光大學許惠美老師共同投稿
第四屆華人探究學習創新應用大會論文發表

此次主要是針對Ezilla 以及探究學習環境建置方案進行探討
在會中也認識了許多在教育現場的先進, 包含北京, 香港以及不同地區研究探究學習的前輩, 另外也針對目前自由軟體教育軟體以及數位平台進行交流.

今年大家很多的焦點都集中在雲端, 資訊融入以及Project Base Learning 的結合, 在會場也得到很多的回饋, 大家也對 Ezilla 以及 ezgo 這樣的結合充滿了高度的興趣.


非常感謝國立台南大學舉辦此研討會, 讓我們有機會認識很多先進, 並向他們請益, 也希望有更多的機會可以參與這樣的研討會來與其他教育現場的老師們交流.



也期望之後Ezilla 能為探究學習以及資訊融入教學貢獻更多的心力.

<(_ _)>


星期六, 7月 06, 2013

20130531 雲端 SUSE Linux 虛擬化應用實機訓練課程 筆記

20130531 雲端 SUSE Linux 虛擬化應用實機訓練課程 筆記

講師 Leo

上課架構
  • node 1  -- Xen 虛擬化
  • node 2  -- Xen 虛擬化
  • iSCSI Server -- 提供 share storage 掛載



Notes:
  • vnc=1 vncpassword=xxxxxx    (在開機安裝的時候於 boot option 指定, 可以使用 VNC Viewer 連接方便多人共同視察)
  • 第一台Server 規劃為iSCSI Server, 3-4 人為一小組分別規劃不同的server, 以下為iSCSI Server 的硬碟規劃
    • /    80GB  sda2
    • swap   4GB    sda1
    • LVM  所有的空間(381GB)  sda3
  • Xming - 用來連接 Linux 的X window 到 windows (http://www.straightrunning.com/XmingNotes/)
  • JuiceSSH - Android 上面連接 SSH 的 App (因為自己當天沒有帶電腦)
早上的進度為安裝 iSCSI Server, 介紹基礎概念

=====================================================================

下午進行 node 1 以及 node 2 的建置
  • 安裝的部分依照預設值, 但是選擇 Xen Virtualation, 取消 “change HOSTNAME via DHCP”
  • 確認使用 xen 的核心開機 (#uname -r)
  • 使用 #yast2  bootloader 來指定 xen 核心開機, 並重新開機
  • 使用 #yast2  點選 software  →  Add-On  Products  →  Add → DVD (HA 那片光碟)
    • 安裝 ocfs2-tools-o2cb
    • 安裝 ocfs2console
  • #yast2  sw_single  安裝  yast2-iscsi-client
  • 使用 #yast2  iscsi-client 連接 iSCSI Server, 並以 fdisk  -l 確認有看到 iSCSI 的LUN
  • 建立filesystem(格式化) #mkfs.ocfs2  /dev/sdb  (iSCSI 的磁碟掛載, 這個指令 node 1 執行即可, node 2 不需要執行)
  • #mkdir   /share  (建立 iSCSI 的 mount point)
  • #rm  /etc/ocfs2/cluster.conf  (如果之後有發生錯誤, 刪除這個檔案然後執行 #ocfs2console)
  • #/etc/init.d/o2cd  enable
  • #vi   /etc/hosts
加入 node1 以及 node 2 的IP
192.168.150.11     node1
192.168.150.12     node2

  • #ocfs2console    (也可以自行 #vi  /etc/ocfs2/cluster.conf 來達成)
點選 Cluster  → Configure Nodes  → Add → Add Node 1 / Add Node2
Mount  → Assign   /share  for mount

  • #/etc/init.d/o2cb  configure
cluster to start on boot (Enter “none” to clear)[ ]:  ocfs2 (這邊輸入的名稱要與 /etc/ocfs2/cluster.conf 內的 cluster區段的 name = ocfs2 相同)

  • #/etc/init.d/ocfs2   status

PM 3:30 ~ 3:50  Ask Node 2 install package (Same process with node 1)
#mkdir   /share/iso
(Download  or get  SLES / Win iso from ftp site)

#rm   -rf   /var/lib/xen/images     (這個是預設的目錄)
#ln  -s   /share/images    /var/lib/xen/images  (Setting up xen for save VM in share storage)
#cd  /etc/xen
#rm  -rf  /etc/xen/vm   (這個是預設的目錄)
#ln  -s  /share/configs    /etc/xen/vm   (Setting up xen for save VM config  in share storage)

#mkdir  /share/images
#mkdir  /share/configs

#vi  /etc/xen/xend-config.sxp
修改相關設定讓 xen 允許migrate(relocation)
(xend-relocation-server  yes)
(xend-relocation-port  8002)
(xend-relocation-address  ‘ ‘)
(xend-relocation-hosts-allow  ‘ ‘)

#/etc/init.d/xen   restart

星期三, 7月 03, 2013

台南資訊輔導團研習





這次很榮幸可以受邀到台南資訊輔導團介紹 Ezilla 雲端簡單龍
首先由 OSSACC 執行秘書介紹 ezgo 還有介紹我們國網中心相關專案.

Max 也將目前火紅的 Raspberry Pi 以及相關資訊跟在場的老師們分享


也跟在場的老師介紹 Ezilla 簡易的建立介面以及目前可以使用的虛擬機器


並針對目前虛擬教室與實體教室配置的情境跟台南的老師們進行交流



台南的天氣還有老師們都很熱情
當天成功大學的楊中平老師也有到場, 也跟台南資訊輔導團的老師們交換了很多意見
也期望之後有機會將成功大學資工系的學生與台南這邊的在地資訊服務結合.

希望之後還有更多機會來拜訪老師們
^___^

星期三, 5月 29, 2013

花蓮縣教育網路中心


花蓮縣教育網路中心




很開心可以來到好山好水的花蓮分享 Ezilla 專案, 還有其他相關雲端運用.
這個場次以"零元, 練就雲端時代的螢舞者" 來進行分享

比較有趣的是, 這次我們採取雙螢幕, 比較對比商業軟體以及自由軟體的應
用, 並介紹目前雲端服務相對於商業軟體的替代方案.



現場也讓花蓮的老師們現場操作以及體驗 EasyCloud 的服務, 也引起老師們的興趣.



老師們也期望有些共同性的服務(Web, 數位教學平台), 應該是大家可以共同的來開發及使用, Ezilla 團隊也會朝這個方向來提供老師們更好的服務.

也希望有機會可以再來好山好水的花蓮.




星期五, 2月 22, 2013

使用BigBlueButton API


使用BigBlueButton API 文件 written by Max

官方wiki
https://code.google.com/p/bigbluebutton/wiki/API


測試主機
http://x.y.z.w/

測試主機的salt : dfc658adec2de8a5d56b06ea51089883

Step 1:
建立會議的方式

舉例來說
http://x.y.z.w/bigbluebutton/api/create?name=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap&checksum=5bb1dd0a153abffedb7abd96825fbecb32fef020

要建立會議, 要給建立聊天室的資料
create?name=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap 取出
拿掉?號
createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap

name=Test 會議名稱, 如果有空白字元使用+來串聯
meetingID 會議ID
moderatorPW 主持人密碼
attendeePW 參加人密碼

createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap 加上 salt

結果為
createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=apdfc658adec2de8a5d56b06ea51089883

將此一字串藉由SHA1演算法產生雜湊值
可以使用網頁的方式來產生雜湊值
將上面的 createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=apdfc658adec2de8a5d56b06ea51089883  
貼入 http://pajhome.org.uk/crypt/md5/ 網頁內的 Input 欄位
點選 SHA1 按鈕, 產生雜湊值

結果如下
5bb1dd0a153abffedb7abd96825fbecb32fef020
createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=apdfc658adec2de8a5d56b06ea51089883  

去除 salt , 結果為
createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap

加上剛剛產生的雜湊值 &checksum=5bb1dd0a153abffedb7abd96825fbecb32fef020

結果為
createname=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap&checksum=5bb1dd0a153abffedb7abd96825fbecb32fef020

將這串字串貼於BigBlueButton 主機 URL /bigbluebutton/api 下, 並加上 ?

create?name=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap&checksum=5bb1dd0a153abffedb7abd96825fbecb32fef020


完整URL 如下

http://
x.y.z.w/bigbluebutton/api/create?name=Test&meetingID=test01&moderatorPW=mp&attendeePW=ap&checksum=5bb1dd0a153abffedb7abd96825fbecb32fef020

此時Server 會回應 建立成功

<response>

<returncode>SUCCESS</returncode>
<meetingID>test01</meetingID>
<attendeePW>ap</attendeePW>
<moderatorPW>mp</moderatorPW>
<createTime>1359709413228</createTime>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<messageKey>duplicateWarning</messageKey>
<message>
This conference was already in existence and may currently be in progress.
</message>
</response>

Step 2:
接下來加入聊天室

http://
x.y.z.w/bigbluebutton/api/join?meetingID=test01&password=mp&fullName=John&checksum=091148f421ce895dcd333fbe34f514050f9adaca

給入加入聊天室的資料
joinmeetingID=test01&password=mp&fullName=John
meetingID 加入聊天室的ID
password 進入聊天室的密碼
fullName 人員姓名

joinmeetingID=test01&password=mp&fullName=John 加上 salt

結果為 joinmeetingID=test01&password=mp&fullName=Johndfc658adec2de8a5d56b06ea51089883

將此一字串藉由SHA1演算法產生雜湊值
可以使用網頁的方式來產生雜湊值
將上面的 joinmeetingID=test01&password=mp&fullName=Johndfc658adec2de8a5d56b06ea51089883  
貼入 http://pajhome.org.uk/crypt/md5/ 網頁內的 Input 欄位
點選 SHA1 按鈕, 產生雜湊值

結果如下
091148f421ce895dcd333fbe34f514050f9adaca

joinmeetingID=test01&password=mp&fullName=Johndfc658adec2de8a5d56b06ea51089883

去除 salt 部分

結果為
joinmeetingID=test01&password=mp&fullName=John  

加上剛剛產生的雜湊值 &checksum=091148f421ce895dcd333fbe34f514050f9adaca

結果為

joinmeetingID=test01&password=mp&fullName=John&checksum=091148f421ce895dcd333fbe34f514050f9adaca

將這串字串貼於BigBlueButton 主機 URL /bigbluebutton/api 下, 並加上 ?

http://
x.y.z.w/bigbluebutton/api/join?meetingID=test01&password=mp&fullName=John&checksum=091148f421ce895dcd333fbe34f514050f9adaca

即可開啟聊天室參加會議