2015年2月27日 星期五

Ubuntu下samba安裝設定

  • 安裝Samba
sudo apt-get install samba

設定Samba 
編輯 /etc/samba/smb.conf

(1)
[global]
workgroup = root
security = share

(2)尾部加入
[分享資料夾的名稱]
path = 分享資料夾的路徑
writable = yes
guest account = root
force user = root
public = yes
force group = root

[3]重新啟動 Samba Server
sudo /etc/init.d/samba restart

[4]Windows設定
在網路上的芳鄰圖示下按右鍵,
"連線網路磁碟機"
磁碟機: 任選

資料夾: \\Ubuntu下所設IP\分享資料夾的名稱

基於QEMU 在 Mac OSX 上模擬 樹莓派(Raspberry pi)


許恆修 / 9/02/2014 12:33:00 下午 / NO COMMENTS


目錄

  1. 安裝好Xcode 以及 Macport
  2. 安裝QEMU
  3. 下載 Raspbian image 還有 working kernel.
  4. 第一次BOOT
  5. 修改內核
  6. 第二次BOOT
  7. 享受樹梅派 
安裝好Xcode 以及Macport

  1. 先至App store 或是  Apple Developer 下載並安裝好 Xcode
  2. 接著安裝 MacPorts 
  3. 第一階段大成功~~~
  4. 什麼? 你說英文看不懂? 免緊張,下方會有圖片解說

打開自家的終端機(Terminal)



輸入以下指令 “xcode-select --install


接著就是無腦安裝到底



下載對應自家的Macport就可以了
到目前為止我們已經建置好安裝QEMU 的環境
讓我們開始安裝QEMU吧

安裝QEMU
打開Terminal 輸入 “sudo port install qemu +target_arm


接著讓它自動去跑一下,就安裝成功了,夠簡單吧~~

下載 Raspbian image 還有 working kernel.
這裡沒有什麼困難,就純粹把這兩個準備好
記得一定要是 Raspbian


並創立一個資料夾將 Raspbian 還有 Kernal 放入,等等要用到
第一次BOOT
先打開Terminal cd 至剛剛的資料夾
接著輸入 “qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -kernel kernel-qemu -hda raspbian.img

!!raspbian.img 請改成剛剛下載Raspbian !!

如果以上步驟都正確的話,會很開心地看到QEMU在跑,事情還沒有結束,讓我們來修改內核吧


修改內核
輸入“vi /etc/ld.so.preload

在該文件的最前面加上一個 “#”字號,這裡要操作 vi ,沒學過的朋友要加油XDD
這裡結束之後,我們就快結束了噢!
可以參考以下網站來使用與學習 vi






好的,恭喜你回來了,讓我們繼續往下走吧,希望你沒被 vi 給阻擾
順帶一提,我就是那個沒學過vi的 orz
第二次BOOT
接著輸入“qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -kernel kernel-qemu -hda raspbian.img

!!raspbian.img 請改成剛剛下載Raspbian !!

與上面的指令差別就在於少了“init=/bin/bash” 而已

接著你就會看到令人興奮的過程


享受樹梅派(Raspberry pi) 
開始使用樹梅派吧!


?你說為什麼在Mac桌面上的Terminal 會有 raspberry login的字樣?
我要沒記錯的話,這是處在文字界面下的的模式,與直接在Raspberry pi 中打開 LXTerminal 是一樣的使用效果,預設帳號為:pi,密碼為:raspberry

參考資料


  1. http://thomasvanta.es/raspberry-qemu-osx/
  2. http://www.royvanrijn.com/blog/2014/06/raspberry-pi-emulation-on-os-x/
  3. http://briian.com/8189/mac-record-screen.html
  4. http://linux.vbird.org/linux_basic/0310vi.php
  5. http://guildwar23.blogspot.tw/2012/11/qemu-raspberry-pi.html

2015年2月26日 星期四

iOS volume button press detect & bluetooth headset play / next / prev / volume button, change song info display

prepare a mp3 file for testing

here is the source code:

AppDelegate, default

ViewController.h 改成這樣

如果需要背景也能播放 改一下plist


ViewController.m 改成這樣,以便接收藍芽事件

ViewController.m 改成這樣,以多緒播放音樂,監聽音量事件,並設定曲目資訊

ViewController.m 改成這樣,音量改變時,改變曲目資訊
ViewController.m 改成這樣,接收到事件,改變曲目資訊

2015年2月25日 星期三

xmpp學習筆記 之一

首先,要看電子書
http://professionalxmpp.com

Professional XMPP Programming with JavaScript and jQuery

然後下載source code
https://github.com/metajack/profxmpp

然後建立一個副本於我的bitbucket
https://bitbucket.org/my account/professional-xmpp_code

然後local電腦也有一個git離線庫
@mac pro 15, ~/professional-xmpp_code

然後用sourcetree這個工具負責兩邊同步

第一章主要是講 XMPP的協定

XMPP全文是extensible messaging and presence protocol
大多數社群網站如Facebook, MySpace, Twitter均使用此協定

每個用戶都有聯繫人組成的花名冊,當聯繫人上線或是離線均會自動發出通知
XMPP定義了通信實體間所使用的資料格式,XMPP使用XML格式,在XMPP中XML組成一對data stream,每個stream前後均有開始與結束字,例如

<message to='somebody1@xmppdomain2'
    from='somebody2@xmppdomain2'
    type='chat'>
<body>some messages</body>
</message>

XMPP也支援TLS (transport layer security) ,SASL (simple authentication and security layers)
實現身份驗證機制

Ejabberd, Openfire, Tigase是三種能夠於Windows, Mac OSX, Linux上使用的開源伺服器

XMPP的尋址
XMPP每個實體都有一個或多個JID,看起來就像電子郵件格式,JID有兩種格式,包含資源或不包含

XMPP的節
三種基本節分別為<presence>, <message>, <iq>
XMPP stream由兩份XML組成,通信每一方向均有一個XML,以<stream:stream>包住要傳送的資料,例如

<stream:stream>
<iq type='get'>
    <query xmlns='jabber:iq:roster'/>
</iq>

<presence/>

<message to='somebody1@xmppdomain2'
    from='somebody2@xmppdomain2'
    type='chat'>
<body>some messages</body>
</message>
<stream:stream>

<presence type='unavailable'/>
<stream:stream>

iq節中用來請求花名冊,presence用來表示目前上線,message用來發出聊天請求,另一個presence用來表示目前無法訪問

在XMPP中,出席訂閱是單向性的,如果某甲訂閱某乙的出席訂閱,可以看到某乙的上線情形,不表示同時某乙可以看到某甲的的上線情形,某乙必須自行訂閱
另外,訂閱有關的presence type有 subscribe, unsubscribe, subscribed, unsubscribed

請求使用 subscribe, 接受使用 subscribed

另外有一種定向出席,可直接發給某沒有訂閱出席的用戶,用於多人聊天很有用

message節中可附加thread用來標誌線索
多人聊天的識別字是groupchat

iq表示info/query,有兩種請求 (get, set) 和兩種響應 (result, error)

stream的建立

<?xml version='1.0'?>
<stream:stream xmlns='jabber:client'>
    xmlns:stream='http://server domain/streams'
    version='1.0'
    to='...'>

伺服器的回應

<?xml version='1.0'?>
<stream:stream xmlns='jabber:client'>
    xmlns:stream='http://server domain/streams'
    version='1.0'
    from='...'
    id='...'

>

2015年2月10日 星期二

如何使用gist與sublime

gist可以幫你管理程式片段,
sublime是好用的程式編輯器,
如今可以兩者結合使用。


  1. 請先裝好sublime的gist套件 (利用package control安裝,先把package control裝好)
sublime -> preferences -> package control -> install package

search Gist & install it

    2.  change gist setting

sublime -> preferences -> package settings -> Gist -> setting - default

set token (get token from github website: https://github.com/settings/applications)

Personal access tokens


generate new token, copy & paste it to gist setting

    3. use gist in sublime

shift + command + p -> hotkey for use package
select gist function & do something

for example, "Open Gist" will open existed gist snippet in new sublime tab, then you can copy & paste it into your current editing code tab