This day

這個月做了一個蠻重大的決定,決定自己跟朋友們出來專心闖一闖了。 前幾年都不是很專心。

看看自己到底能做到怎樣的程度呢?  是否可以一直不斷地持續的進步跟成長。

也想要知道自己可以成長的怎樣的程度。人生短短幾十年寒暑啊 !

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()的時候 就又出錯了……。 等解決後再來寫下一篇了!

Rt-n16 &vpn

最近我弟去大陸,跟我詢問vpn的用法,我就大方的開放了我家的RT-N16(哼哼)。 沒想到….。 第一天在桃園機場就連不上了。我本來手機上用3G測試可以連線,但晚間又不行了….=.=  。而且即便連接好vpn 也無法上網….。之前老闆去大陸也是遇到這樣的問題,後來用學弟阿達的居易的router就可以了。

真是太詭異了,不過我弟說他要待到八月底,為了解救手足只好熬夜來更新韌體看看。

更新到最新的beta版本……  無效。

一怒之下,整個洗成蕃茄的版本….😦    到現在我在外面使用都可以很愉快的連線。

官方啊!!怎麼會這樣呢  !!

creative framework 開發進度

名字還是難產….。

我目前把實作processing 1.5 的範例當作目標。稍微計算了一下processing的範例有101個..目前的進度是…4 (T_T)這樣要做到何年何月啊XD 不過後來應該是會越來越快啦!! 前一個在寫hsv ->rgb的時候因為對go data type 不熟 卡住好久…。不過他要一直轉換來轉換去的很繁瑣,像是:

a float64 = 4/3 (X 不行 ) 簡單的說就是一定要相同類型。所以常常會 float64, int, uint8(用在色碼上) 轉來轉去,有點在考慮是不是數字就一律 float64 uint8 就好.. 。 不過寫好 hsv->rgb的時候感覺很開心!! 底下就是目前四個範例的畫面。

p.s go-ui 裡面的qt 的 drawPoint 畫出來的點跟processing的不一樣,怪怪的….

 

Screen Shot 2013-04-28 at 8.37.44 AM

Annotated portfolios and other forms of intermediate-level knowledge

source:  Jonas Löwgren. 2013. Annotated portfolios and other forms of intermediate-level knowledge.interactions 20, 1 (January 2013), 30-34. DOI=10.1145/2405716.2405725 http://doi.acm.org/10.1145/2405716.2405725

本篇文章主要探討中介形式的知識以及設計物。作者認為這些物品以及知識雖不若最終成品一樣完善,但仍舊擁有其價值。設計研究可以在軸向上分成抽象化的通則以及實際的設計物這兩個終端,而中介知識則位於其中間的空白處。

Screen Shot 2013-04-28 at 8.37.44 AM

 

作者在開頭探討了設計研究跟設計實務的不同之處,很巧的是作者的論點跟Epistemic artifacts  [1]相當類似。他們都認為設計"研究" 的目的都是產出知識,也就是上圖中的 General Theory 這個部分,而設計實務所產出的則是設計物。中間的部分作者認為仍舊是有相當的價值,即便它可能沒有實際的產出。Epistemic artifacts  中所提到的中介產物的範圍較小,本文作者提供了中介知識的概觀以及其他的許多形式。 Depth of File [2] 中也提到了用影片這種媒介來做設計。

這幾種種類的中介知識最大的用途是提供其他人一些聯想以及洞見。例如 Annotated portfolios 的方式,使用者將設計物或圖片化約為幾組關鍵字,再通票選選出其中好的一些關鍵字。但除此之外其他的中介知識像是 概念發想的一些記錄,也都可以提供很多知識在裡面。

 

 

 

[1] Epistemic artifacts : 之前寫的報告

[2] “Depth of field". Timo Arnall. http://www.nearfield.org/2010/09/depth-of-field-film-in-design-research

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阿!!

creative coding II

之前提過今年的新希望是想要用google-go寫一個自己的creative coding的framework。 今天想好code name了 就先叫做 Lu_Ban (魯班),正式名字再請老闆來命名。 期望它可以成為一個有用的工具啊!!

最近的進度還是在追如何產生視窗(其實是go-native window的溝通),今天終於有了一些進展。搜尋之下找到一些go的 gui /drawing framework

https://github.com/skelterjohn/go.wde

https://github.com/skelterjohn/go.uik

https://github.com/zozor/hgui

http://code.google.com/p/draw2d/

http://golang.org/doc/articles/c_go_cgo.html  (用go去叫c)

其中go.wde給我許多啟發,我終於知道怎麼做了。  不過go.wde是採用原生的mac視窗,我想我就直接去接qt看看了。明天一早來試試看啊!!

2145309

People in Books: Using a FlashCam to Become Part of an Interactive Book for Connected Reading

source: Sean Follmer, Rafael (Tico) Ballagas, Hayes Raffle, Mirjana Spasojevic, and Hiroshi Ishii. 2012. People in books: using a FlashCam to become part of an interactive book for connected reading. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work(CSCW ’12). ACM, New York, NY, USA, 685-694. DOI=10.1145/2145204.2145309 http://doi.acm.org/10.1145/2145204.2145309

作者在此篇文章中提出了一個遠距親子間的共讀系統 – people in books。該系統使用了背景裁切技術以及自行改造的 ps3的 攝影機。透過該系統,遠距雙方的影像(特別是前景的頭的部份)可以一起出現在故事書上的某個部分共玩,跟傳統使用視訊會議系統的全景式背景有所差異。透過問卷以及訪談,發現這對於遠距的共讀是相當有幫助的。

2145309

實驗挑選了12個家庭,其中有十對家庭之前有與兒童使用過視訊會議系統,有四對家庭每個月固定都會使用。作者挑選了兩本童書:We’re Going on a Bear Hunt Where the wld things are  來當作實驗的主體。且與傳統的共讀介面來比較。傳統的介面透過webcam 來顯示雙方的影像,以及電子書部分。而實驗的對象主要是3-5歲的兒童。作者原本是希望這樣的共讀方式可以促進在一起的感覺。但後測問卷的結果則否定了這點。但作者發現到其他有趣的部分:

兒童較容易專注:原本使用skype的方式兒童會一下子就跑開,透過本系統兒童可以持續較長時間的專注。

可以融入目前的閱讀行為中。

目前的影像擷取方式有時候會讓家長不知道兒童那方發生什麼狀況。因為一定距離後影像就會被略過。作者提出可能可以顯示出原始的影像來輔佐。

 

======

共讀的這部份研究也頗有趣。不過我覺得這些在目前都難以取代實體上的觸碰。

creative coding I

新年新希望有一個就是寫一套自己的 creative coding framework。順便學習新的語言(google go )以及把圖學阿視覺阿等基礎的東西給弄懂。首先要先研究一下各家framework是怎麼做的,目前的鎖定的對象有: openframeworks, Cinder,  PolyCode (都是C++),processing(這邊只注意框架設計 )。  目前最基礎一課就是弄清楚他們如何產生視窗以及繪製2d/3d圖形。

 

Openframworks

2d使用 cairo來繪製(code), 3d 當然就是 opengl囉。

Cinder:

2d使用  gdi 的樣子(code),3d還是使用opengl。

PolyCode:

2d 使用SDL (code), 3d 一樣是使用opengl。

他們啟動視窗在windows上都是呼叫 windows的api 。

目前看起來各家在2d上都有不同的選擇,我自己這邊的也不知道該選哪種@@ , sdl or cairo都不錯。

 

視窗的部份我想接…..  Qt …。我覺得實際上有gui的需求。舉凡像是想要調整一些參數或什麼的? 或是載入圖片的按鈕之類的。 是說也可以用osc另外做一個來控制,但我覺得還是有一個比較完整的gui 系統比較好, 因為這樣也可以把套件的管理程式給做在裡面。 本來想用XULRUNNER 來做,但是好似繪圖那邊不知道怎麼接起來?不然的話用html/javascript來做gui似乎是很方便的事。

目前大概會先來接 Qt 看看。 接好了再來看看2D繪圖那邊要使用哪一套。