DDS

最近因緣際會 知道了這個通訊協定,非常的有趣。 主要的特色應該區域內裝置對裝置的大量聯絡。

這篇講的很清楚:

http://thinkingiot.blogspot.tw/2016/08/understanding-protocols-behind-internet.html

最近應該會開始寫一些這個東西來試試看,畢竟現在是物聯網的世界  !!

 

 

廣告

creative framework 開發進度(回到原點之一)

有種回到原點的感覺…。 因為啊,底層用的go-ui 不更新了。 作者的新作github上也都沒有commit 。等了一段時間後覺得不行了,還是得自己動手。但沒想到這麼複雜…。

第一步呢就是模仿go-ui 來建立一個qt的 dynamic lib ,光這邊就弄一段時間了…。首先要改出可以產出  .dylib的.pro檔案,找了老半天 後來才發現是修改TARGET 即可。不過還是有點怪怪的問題,暫時先不想理他,所以現在是用….go-ui 的 .pro檔案來產生 dylib 檔案….。(感謝open source 啊!!)  之後再來看看怎麼修正這個問題。

第一關就是寫在註解裡面的C程式  Go找不到,後來才發現 寫完之後要緊接著 import “C" …也就是說

/*

void hello();

*/

import “fmt"

import “C"

這樣是錯的,一定要

/*

void hello();

*/
import “C"

甚至多一行空白也不行勒。

第二關就是呼叫編譯好的lib了,一開始一直出錯,一直跟我說找不到這個函式。後來想起來之前看過的 程式設計師的自我修養:連結、載入、程式 一書中有提到可以dump出dll裡面的symbol,於是搜尋一下 發現在mac上可以用 nm  -gU  libname  來看。 我比照一下列表跟程式碼。才發現原來是需要…. extern “C" 來把他匯出成全域的函式…(看來C/C++ 還有一段長路要走勒)。 到這邊終於可以呼叫函式了,感覺很棒!!。

 

但是下一關開始呼叫 qt的 qappliction.exec()的時候 就又出錯了……。 等解決後再來寫下一篇了!

go-framworks

Screen Shot 2013-04-26 at 3.07.24 PM今年雖然沒有寫展望,不過一直有一個目標在我的心中,就是自己寫一套自己的 creative coding framework 。之前一直卡在 跟qt去對接。目前最近有高手寫了一個很完整的版本 – qt-ui ,初步都可以使用。所以我就得以繼續下去了!!  上面就是仿造processing 教學的第一個作品(http://processing.org/learning/gettingstarted/ )。 程式碼長這樣(go還沒非常熟!!):


package main
import (
 "../goframework"
)
func Draw(){
 goframework.Fill(0,255,255)
 if goframework.MousePressed() {
 goframework.Fill(0,0,0)
 }else{
 goframework.Fill(255,255,255)
 }
 goframework.Ellipse(goframework.MouseX(),goframework.MouseY(),80,80)

}
func main(){
 goframework.FrameRate(60)
 goframework.Draw(Draw)
 goframework.Win(400,400)
}

不過我還是修改了qt-ui的幾個部分。

  1.  設定背景繪圖的時候不會會清除。
  2. 設定滑鼠 move事件 在不按下左右鍵的時候也會觸發。

未來大概還要改不少吧@@  qt 這邊對我就比較難了 。 目前的計劃是先把2D的部分api給完成。再來是參數化設計 , 影像處理的api  , 內建使用go 寫的 簡易的電腦視覺的lib(像是找邊緣之類的。) ,  最後跟硬體 Arduino對接。  最後是3D的部份,要有3D的部分才有辦法做投影校正的lib阿!!

[processing] open-processing.org

openprocessing.org 是一個可供使用者上傳分享他們的processing 作品的網站。不過網站功能面上感覺很少更新,介面也會有跑掉的問題,速度也很慢。

不過網站的開發者 Sinan Ascioglu 今天發表了一篇文章: On the weeks ahead: The Road Plan 

裡面提到他已經離職(@@ 難怪!! 真是辛苦了 )之後會專心在openprocessing.org的改良。 文章裡面提到了幾點希望做到的改良:

  • new navigation
  • collections will be open to public (instead of  ’request via email’).
  • better user thumbnail integration (gravatar being optional).
  • some other improvements for performance and security.
  • migrating to a new server (faster, better)..
  • follow user functionality.

還有一點我覺得更重要的是開發者目前是用她自己的經費在支援這個計畫,他希望在不跟使用者收費的情況下找到足夠的經費來支撐這個網站~~~  。

期待!!  不過其實我希望可以跟processing做整合 可以透過processing直接搜尋觀看 跟管理,應該會很方便!!

[vim] powerline

前幾天看到這個 vim的plugin真的覺得好棒!!  。

他的安裝有點小麻煩,因為需要修改一下字型檔案(主要是塞了還是更換了一些符號進去)。如果沒有正確的置換字型,會像是下圖這樣:

不過如果你這步驟有問題也可以使用unicode的模式來模擬,也是堪用了。安裝上建議搭配 Pathogen/Vundle 來安裝。README上是說mac下有點問題,不過github的issue 上有人測試出來了,我也試過可以正常安裝。

網路上也有人把patch過的字型放出來了   https://gist.github.com/1595572  如果你不介意字型的話。

底下是patch font的步驟。

  1.  從字體庫中複製字型-假設叫做 A  放到   bundle/vim-powerline/powerline
  2. fontforge -script fontpatcher MyFontFile.ttf
  3. 把修改過的字型放回去,mac上要放到 /Users/xxxx/Library/Fonts  底下
  4. 更改iterm的字型到   A for PowerLine 即可

#

tagbar

在ptt的editor討論版看到網友推薦這個 taglist的替代品(?)  tagbar。一用之下驚為天人!!

以 java 程式來說,原本打開 taglist 是長這樣:


可以看到一個檔案裡面有兩個class的時候 method & attribute 會混在一起,不好辨認。

如果安裝 tagbar 之後會長這樣:

* 視窗從左至右依序是  tagbar,taglist,source

預設tagbar是開在右邊,如果你希望開在左邊要在 vimrc中加上  let g:tagbar_left=1

有一些我覺得蠻好用的功能:

s: 更換排序方式(依照出現順序或是字母順序,預設是字母順序)

x: tagbar 視窗最大化

space:  顯示定義

 

還等什麼呢,各位捧油!! 快換吧!!

 

build vim on mac lepord

想要裝  command-T 的plugin 但是vim 需要啟用 ruby 介面,隨機器來的不支援,網路上都叫大家用macvim。 ㄟㄟ 可是我沒有要gui阿….

弄了老半天 終於找到可用的 configure 參數

 

./configure –enable-gui=no –without-x –disable-gpm –disable-nls –with-tlib=ncurses –enable-multibyte –enable-rubyinterp