Wraecca 小學生技術筆記

Disable screensaver in command line (Mac OSX)

用VMWare跑OSX總有許多額外的問題需要注意。有時cpu會被screensaver吃光,打開System Preferences也crash掉無法處理,只好繞道用command line把它關掉。

defaults -currentHost write com.apple.screensaver idleTime 0


idleTime就是要閒置多久進才進入screen saver,設為零則是永不。

XCODE4下看不到NSString

debug時想看NSString卻一直顯示summary unavailable,其實NSString根本沒問題!混帳!

將box2D新增XCode至既有專案

Targets的Build Settings底下Search Paths勾選Always Search User Paths,並加一個Header Search Paths為Recursive的Path一點(one dot only)

ex. Header Search Path: .

動態更新dijit.Tooltip的connectId時抓不到id

dijit.Tooltip需要指定connectId來作為叫出tooltip的觸發id,想要動態改變觸發tooltip的目標dom如下所示,卻無法順利捕捉到新的connectId。

JS:


var tooltipNode = dijit.byId("tooltip");
tooltipNode.attr("connectId", "more");


HTML:
<div id="tooltip" dojotype="dijit.Tooltip" label="tip!!"></div>
<span id="cMHaobuIMg-shit">More</span>


結果把dojo從1.2.0升到1.3.1就沒事了。
此外,在1.2.0的環境下,如果id只有一個字元竟然就抓得到connectId!?

dojo.attr() 的ie錯誤

dojo.attr裡parse的屬性名稱,竟然無法處理class和for。class屬性改為className,for屬性則改為htmlFor。
詳情請參考這張票

Dojo Ajax更新頁面後dijit失效

在用dojo這個javascript library時,以ajax更新部份頁面後傳送回來html,其中包含dijit的部份卻無法正確顯示。這是因為dijit是在頁面載入完之後再parse整份文件來render各個widget,djConfig="parseOnLoad:true"就是在設定這件事,所以ajax傳回來的那份html當然也要給dojo來parse一下,此外每個dijit該有的require也不要忘了load-on-demand進來。

var formSubmit = function(e) {
e.preventDefault();
dojo.xhrPost({
url: "Loader",
form: "mainForm",
handleAs: "json",
load: function(data, args){
if(typeof data == "error"){
console.warn("error!",args);
} else {
//假設傳回來的data是一個包含head和body的json,
//其中head包含了一些load-on-demand的script
dojo.query('head').addContent(data.head);

//dojo.parser.parse()吃DomNode,
//所以先create一個id設為updated的div
var updated = dojo.doc.createElement("div").attr("id", "updated");

//把data.body就是要拿來render的html
updated.innerHTML = data.body;

//再用dojo.byId()拿#updated來餵給dojo.parser吃
dojo.parser.parse(dojo.byId("updated"));
}
}
});
}

x86 -64下的編譯錯誤

/usr/local/lib/libcharguess.a(charguess.o): relocation R_X86_64_32 against `__gxx_personality_v0@@CXXABI_1.3' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libcharguess.a: could not read symbols: Bad value


我是在裝libcharguess的時候遇到的問題。她叫你recompile with -fPIC,那就乖乖聽他的話。

在make之前,先手工編輯Makefile,在CFLAGS或CXXFLAGS後面加個參數-fPIC。

CXXFLAGS = -g -O2 -fPIC

改玩之後再make && make install。

Author