2011年10月14日 星期五

鍵盤,還是cherry的好

.

朋友最近買了Cherry G80-3000這把長青鍵盤,但他是買茶軸的

機械式鍵盤最近很流行,現在很多廠商都用cherry的軸做很多很炫的造型,為何要挑cherry這一路走來,始終如一(簡單講就是一成不變,或是復古)的造型呢?
我的學弟看到我的g80-3000,還會說,哇,學長,這是古董鍵盤呢
……你有看過古董鍵盤有windows key的嗎?
這叫風格,就是cherry style

為什麼挑cherry的茶軸?答案很簡單:女朋友挑的(他買了兩把,一人一把)

PC Home買的,現在cherry台灣有代理商了,想當初,我還只能買水貨呢

借來一敲……大驚,這……這是什麼軸?
這真的是茶軸嗎?怎麼和我印象中的茶軸完全不同
有著青軸80%的鍵入感,卻又有著這幾近無聲的敲鍵聲
回頭敲敲我的Filco茶軸,大概只有青軸60%的鍵入感(也就是說,勉強辨認的出兩段式進程),聲音到是一樣
什麼情況?為什麼同樣是cherry的茶軸,兩者的表現完全不同?

好幾年前,那時候我已經買了一把g80-3000青軸,用得非常爽,然後,就想試一下cherry茶軸,想知道大家為什麼這麼稱讚茶軸

當時Filco也出了Majestouch cherry茶軸,跟原廠cherry比起來,只貴50(如果我沒記錯的話,Filco茶那時一把要2750,但兩者價差不多)
但Filco的造型好看很多,薄邊框,藍光LED,哇勒,價格差不多,傻子才挑Cherry的茶軸
畢竟,g80-3000唯一讓我不滿的就是造型
找了當時的學長一起買,一人一把

收到後,按了按……
真是聞名不如見面
這就是大家覺得很讚的茶軸嗎?鍵入感那麼像薄膜,就連敲鍵聲都那麼薄膜
心裡有著一股淡淡的哀傷
一直到現在,我的Filco A和S key有時候按了會輸入兩次(也就是按一下會輸入aa或ss)也一直沒有動力拿去修

我一直以為,用同樣的軸,會有同樣的表現
但直到好多以後,按了同學的g80-3000茶軸版,我發現,我錯了
同學的g80-3000茶軸, 在非常接近青軸的觸感下,大約有80%的相似度(個人直觀,沒法測量,反正就是非常像青軸),卻又少掉了那腦人的敲鍵聲
還有比這更完美的鍵盤嗎?
我終於明白,為什麼這麼多人推祟cherry茶軸了

未免有人說我唬爛,有圖有真相


兩把一起拍,上面那把是Cherry茶,下面那把是Filco茶,各拔兩個鍵帽以證明是茶軸
為什麼不拔更多鍵?
裝回去很麻煩的@@,而且信的人就會信,不信的人,拔再多鍵也不會信的


下面比較一下前後款g80-3000的差異,顯然的Cherry不想開新的模了(好處是,板子也不用重lay@@)……所以外型都差不多
不過還是有一些差異就是了

印象中,最大的差異是,以前g80-3000只有白色,沒有黑色款可以挑……


前後g80-3000比一比,下面白的是我的cherry青,上面是同學的cherry茶
新版的多了印上的cherry mark,這點讓我很在意,因為舊版的g80-3000只附了一張沒質感的櫻桃小貼紙,我連貼都不敢貼……



兩者的鍵盤連接線,新版的線是直的,而舊版的是像舊式電話一樣的捲捲連接線
我比較喜歡新版的線,舊的線其實很不方便,所以我還把他綁起來,不過以前的鍵盤都是這種設計就是了
可能是因為現在的頭是usb,真不夠長還有usb延長線可以接,但以前ps2接頭的年代,若不夠長就真的完了……所以才要設計成這樣,真的不夠長還可以拉、拉、拉


好了,最後,嚴肅的問題來了
為什麼同樣是cherry原廠的茶軸,為什麼鍵入感會有這麼大的差別?
有三個可能,你自己選

1.生產年份不同,以前生產的茶軸不好敲,現在生產的茶軸好敲
是有這個可能,若我當初買的是cherry茶,而非Filco茶,我們現在可以來驗證這一點
我同學的cherry茶是今年(2011)才生產的,不過我不preffer這個答案,不然,以前的人為什麼就對cherry茶的評價那麼好?我不覺得Filco的茶軸可以讓人有這麼高的評價
另外,前公司的同事在幾年後也買了Filco茶,我也去按過,印象中,手感也沒多大的改變

2.cherry生產給別人用的茶軸,跟自用的茶軸不同
……這是你說的,不是我說的

3.因為其他配合材料不同的關係,例如鐵板的有無,鍵帽材質不同的關係,所以鍵入感相差不多
我們知道,有些牌子的鍵盤(如Filco),會在底部加一塊鐵板,而某些鍵盤討論區又提到鐵板的有無,會影響手感
另外鍵盤討論區也有提到,鍵帽的高低、材質不同等,也會影響手感

我有把鍵帽交換過來A/B test(即,把Filco茶跟cherry茶的鍵帽交換),我只能跟你說,鍵帽雖然有影響手感,但換了鍵帽,Filco茶還是不會變成cherry茶

把Filco鐵板拿掉試試?
……這個工程有點大,我玩不起……


再補個事實,同樣是cherry自己的茶軸,不同的model的鍵入感,還是不同
我學長也……在衝動之下,又敗了一把不同model的cherry G80-1865 茶軸
鍵入感卻也跟g80-3000有所不同,但還是樂勝Filco就是了

一樣,有圖有真相

學長的cherry茶


那麼,我到底想告訴你什麼?
我沒辦法告訴你為什麼同樣用cherry的茶軸,為什麼他牌的cheery牌的有差,我真的不知道為什麼
但我想告訴你,根據三個宅男的金手指鑑定,這是事實,就是有差
然後,即使是cherry自己的茶軸,不同的model間,手感也會有差

我只想告訴你,如果你手上有他牌的cherry茶,又或者曾按過他牌的cherry茶,然後因此感到失望,覺得見面不如聞名,那麼請再給正牌的,cherry自己的茶軸一次機會
因為,你過去按的,有可能誤會,也有可能是幻覺(囧)
甚至有可能只是將顏色塗成茶色(brown)的薄膜(毆飛)

也許結論應該是,cherry自己的茶軸比他牌的茶軸好(見ps1)
但真正的結論應該是,如果你真的對cherry的茶軸感到失望,也請等到按過Cherry g80-3000的茶軸後,再來感到失望,如果按過g80-3000茶後,你還是不喜歡茶軸,那就這樣吧
(最起碼,我現在喜歡上了g80-3000茶,但買不起啊,泡麵漲,麵包漲,鍵盤也漲,另外,為什麼g80-3000到現在還是要做那麼大一塊……)


ps1:在好幾年前,我買了cherry g80-3000青後不久,強照鼓吹學長買cherry青軸,學長買了笙美(SM,據說前幾年倒了)做的cherry青,雖然手感跟g80-3000青略有差異,但還是很不錯,唯一的缺點就是那個StrongMan(強壯人,囧,縮寫也是SM)的Logo,買來後學長馬上把StrongMan logo的銘牌撕掉,也還好他logo是用銘牌貼上去的,不是印刷上去的……
也因為這個美麗的誤會,讓我覺得,只要用相同的軸,不同家做出來的鍵盤,大致上手感應該是一致的,從此種下了買Filco茶的因,學長,我對不起你(是的,就是這位苦主跟我一起買了Filco茶)
.

2011年6月9日 星期四

查無此網站的安全性憑證撤銷資訊,要繼續?

.

上網時,偶爾會遇到瀏覽到某個網站時,跳出來一個警告視窗:查無此網站的安全性憑證撤銷資訊,要繼續?


日子久了,也很煩
畢竟連某些確定安全的網站也跑出來這個視窗就很無言
上網找了解法,發現答案也莫衷一是
自己找了一下,在IE中,工具->網際路選項->進階中,
將"檢查伺服器憑證撤銷"這個選項取消即可,如下圖


.

2011年6月3日 星期五

是該離開的時候了

.

最近走在學校的湖邊,看著湖邊的優美風景
心中突然冒出一句:是該離開的時候了

不禁想到當初第一次來清大的時候
第一次到清大的時候,就是考研究所
一到清大,我發現,這個校園很美,如果能在這讀書,感覺會很不錯
這個心情,久久不能懌懷,特別是那天我寫得很不錯

果然一放榜,清大正取,交大備取
然而,其實到清大就讀的故事也頗具轉折性
我並不知道上研究所要找指導教授這回事
等到補習班的同學跟我講,我才知道
他們說,有信心上的人都會前一天就到學校,隔天一放榜確定上榜就馬上找教授
然而,這時已經過去一個禮拜了……
我還是前去

過程蠻心酸的,所有的教授全拒絕我
作為一個非本科系的學生,中間還受到一個教授羞辱,被罵了三十分鍾,其實過程中雖然被罵,但我蠻高興的,畢竟肯花時間罵我,代表有意願收我,沒想到最後的答案是對不起,我收滿了
我傻眼了,不收我你還罵了我三十分鍾?

另一個教授是我敲門,探個頭進去,他正在講電話
他摀住電話筒,然後問我:找教授?我收滿了,再見
我摸摸鼻子,關上門
我一句話都沒出口,就被拒絕了,沒有談話,時間不到一分鐘,這個教授很有效率

懷著喪志的心情,直到遇到現在的指導教授
一敲門,他先問我有沒有預約?
我傻了,找教授還要預約?
然我我說,沒有,就準備要出去了
他說,沒關係,只是說因為要找他很難找,所以一般要先約
聊了一陣子,覺得這個教授人很好,雖然心裡也是覺得沒希望,但也是對這個人風度很欣賞
他問我,有沒有上其他學校
我說有,交大備取55
他說,55?有希望
我其實不太懂他想說什麼,在暗示我不該留在清大嗎?
最後走的時候,他讓我留下我的email,說會再通知,一個很標準的,很客氣的婉拒
為什麼我知道?因為他讓我寫下email的紙,是從旁邊隨便一個地方抽出來的一張紙,還不是白紙,我只能寫在空白的地方
但即使是這樣,他已經是那天我所找過所有的教授中,最客氣的,給我最多時間的(一個小時),最有希望的(沒直接拒絕)

後續果然沒有消息
中間雖然也有寫信去問,一樣石沈大海
我一直在想,我有沒有可能,成為一個沒有指導教授的研究生

中間,我耍了一次心機
信有可能沒看到
但當面遇到,總不能裝做看不見

那個老師因為在外面開公司,所以他會把三節課集在一起,並在晚上開課
我找了他的課表
再一次坐車到了新竹
那天晚上第一次聽研究所的課,我發現,不難嘛其實
我還真的聽得懂
課堂上學生還真不少(後來我才知道,原來他是名師,課也真的上得很好,研究所的課,學生要那麼多是有點難的)
趁著中間的課堂休息,我想去找他問問題,以表現我對他的課的理解
讓他知道,即使是大學在不同的領域,但我能通過研究的考試,某種程度上隱含了其實我具備同樣的基礎
即使這個基礎可能比別人弱了一些,但那只代表我會比別人幸苦,不代表我會完全不具備做他學生的資格
他匆忙的走出教室,想回到他位在五樓的實驗室
我在走廊上攔住了他
一看到我,他竟然還叫得出我的名字,我很驚訝
但我還是按照原定計劃,問出問題,讓他先留個印像先,以展開後續計劃

在三堂課上完後,我打算再攔截一次,問說能不能給我一個確定的答案
雖然已經是晚上九點,但學生問問題的熱情不減
我在旁邊等到所有人都問完問題,才向前
具體的對話過程我忘了
他還是沒答應收我,但留給我他的手機號碼
嗯,有進步

時間繼續往前
直到我收到交大資工(那時候,資科和資工還沒合併,要考資科還是資工的研究所,這是個很掙扎的問題……)的錄取通知
是的,我備上了
上面寫著,在那個禮拜內,我必需前去交大報到,不然名額就會遞移到後面
我心中想著,反正清大已經沒人指導了,我去交大碰碰運氣
再糟也不濄是再被羞辱一次
但不試試看,總沒有機會

如果清大有人收我,我幹嘛再去交大撞個頭破血流?
如果交大有人願意收我,我就改去交大
如果同樣沒人收,在資工這個領堿,我為什麼不去交大?
大學畢業證書?我再去清大拿回來就好了
比起被教授的鄙視,教務處的白眼,會讓我更難過嗎?
兩家學校就在旁邊
我要做的,不過就是在清大拿回畢業證書
再走到交大,連同錄取通知交上去,就這麼簡單
清交小徑?名字取得好啊,當我走上去,我真的,就在一條從清大往交大的路上
雖然我從沒走過,但我相信一定找到到

我跑到清大,再走到當初和我談最久的那個老師的研究室門口,沒人在
他沒有騙我,原來他真的不常在學校
打手機問答案,其實沒有當面問來得禮貌
但不問,我不甘心
拿出電話,鼓起勇氣,撥了出去
電話那頭,他似乎正在開會
我再次問出我的問題
等待的過程有點緊張,因為他如果回達不,我就該去交大了
他沈吟了良久,然後說:恭喜你,加入我的研究室

跑到新竹來打手機,其實有點傻
因為在台北打不就好了?
但誰知道結果會這樣?
直接找本人,總是顯得比較有誠意,機會也就較大一點
而且不到新竹,怎知他不在實驗室?

本來被拒絕的二手準備就是到交大報到,那不是還得再跑一趟新竹?
好吧,真實的原因其實是,我早就覺得教授收我的希望不大,所以我其實早就做好到交大報到的準備
只是試了那麼多次,行百里路半九十,最後不再問一次,我不甘心,即使我知道有很大的可能再被拒絕
只是沒想到結果那麼戲劇性

故事到此就結束了嗎?
沒有

到了研究所,我發現,我沒有比別人差,相反的,還不錯呢
然後,我做了一件傻事,我簽了博士班
到初初來清大的心情,找指導教授的挫折,已經過去了好幾年
直到我散步在清大的湖邊
心底徒然的冒出那一句話:是該離開的時候了
然後,我又想起初到清大時,心中冒出的那句話:能夠這個環境下讀書的話,很棒
我知道,我可以離開了

拿破崙說:I see, I come, I conquer
是的,我看到了,我來了,我,該走了
老朋友,雖然我們認識了好多年,但是
我該離開了

.

2011年6月2日 星期四

將桌面工具叫出來的hotkey

.

Win7裝了很久,最近為了想要看天氣,開始使用Win7提供的桌面工具
我的桌面上放了:日曆、時鍾、天氣等三種桌面工具
想要看到這些資訊,我就必需把所有視窗全縮小,才看得到
本來Win7在Alt + Tab時視窗會變透明,這樣就可以不用把視窗縮小即可看到桌面資訊
但就是因為種種原因,因此我把視窗透明這個功能關掉了,所以我想看到桌面工具的話,還是只能將全視窗全縮小 (Win + M)才能看到,這個麻煩的地方在於,視窗全縮小有個過程,要花一小段時間,看完桌面小工具後,要將工作視窗叫出,又有個視窗還原的過程,又要花一小段時間,我不喜歡

在偶然的情況下,我發現了一個熱鍵: Win + G
這個熱鍵可以將桌面小工具浮到最全面,等於暫時的蓋住前景
因此,在任何時候,只要我想看"時間、日期、天氣",我只要按 Win + G,這三個小工具就會跑出來
看完了,我只要滑鼠點一下我的工作視窗,將focus轉移,這三個小工具又跑回桌面
這樣的結果豈不完美?

有圖有真相

原本的小工具在桌面


按Alt + G後,這三個小工具浮出在我的工作視窗(IE:Google)之上



.

2011年5月27日 星期五

Evernote的熱鍵

.

在使用Evernote edit note,某些常用的功能會希望有熱鍵可以按,但Evernote和其他軟體不一樣的是,將游標移到功能的icon上,放再久都不會出現熱鍵

然後,其User Manual裡面也沒有提到熱鍵

上網找了一下,找到了熱鍵的文件(Evernote自己叫shortcut)
將我自己常用的擷取出來

增加縮排:ctrl + M
澸少縮排:ctrl + shift + M
增加check box(即行事曆用的可以打勾的框框):ctrl + shift + c
將剪貼薄的內容以純文字(plain text)格式貼上:ctrl + shift + v

最後是偶然發現,我覺得在寫日誌形式時很有用的熱鍵(但沒有功能按鍵哦)
插入現在的日期和時間:alt + shilf + d(或是ctrl + ;)
輸出格式如右:2011/5/27 下午 03:41
這個功能可是只能透過熱鍵按出來的,沒有功能按鈕可按(但Personal Brain就有此功能,也有功能按鈕)

.

2011年5月17日 星期二

在visio中輸入引號(')後再按空白會被拉開的解決方案

.

在使用visio時,在文字框中輸入文字的時候,一旦鍵入引號('),如gdemon's blog
visio會自動幫你變成Gdemon’s blog
在某些字型下,引號(')後面的空白會被拉開得更跨張

找了許久,終於找到解決方法
解法就是將自動校正選項中的一個選項取消:"將「一般引號」取代為「智慧引號」"

在visio 2003中
工具->自動校正選項->tab sheet:"輸入時自動套用格式"->將"將「一般引號」取代為「智慧引號」"此選項的勾勾取消
在visio 2010中
檔案->選項->校訂->自動校正選項->tab sheet:"輸入時自動套用格式"->將"將「一般引號」取代為「智慧引號」"此選項的勾勾取消

而visio(或者說,所有office系列)中另一個煩人的功能是,在輸入英文字母時,第一個字會自動幫你變成大寫,問題是當我們在做簡報(ppt)或畫圖(visio)時,因為我們不是在word寫文章,不是在寫一個完整的句子,大部份的情況下,首字不需大寫,這個功能就變得很煩,因為你還要手動回頭將首字改成小寫

這個功能一樣可以透過將自動校正選項中的一個選項取消來關掉:"英文句子第一個字母大寫"

在visio 2003中
工具->自動校正選項->tab sheet:"自動校正"->將"英文句子第一個字母大寫"此選項的勾勾取消
在visio 2010
檔案->選項->校訂->自動校正選項->tab sheet:"自動校正"->將"英文句子第一個字母大寫"此選項的勾勾取消

Visio 2003




Visio 2010




.

2011年3月30日 星期三

windows上用TortoiseSVN command line commit code

.

如果常常在windows上用TortoiseSVN commit code的話,你會發現GUI還是有其不方便的地方
找了一下如何用command line使用TortoiseSVN commit的方法

TortoiseSVN的中文說明書附錄(對,是簡中,我找過了,沒有繁中)

我用的批次檔內容如下:

"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"D:\vm\vbsf\ns-2.29_svn" /closeonend:2


command:commit => commit code
path:"D:\vm\vbsf\ns-2.29_svn" => 這是我要commit code的位置,請自行置換
/closeonend:2 => 如果沒發生錯誤和衝突則自動關閉對話框

closeonend的參數有下列幾種:
/closeonend:0 不自動關閉對話框
/closeonend:1 如果沒發生錯誤則自動關閉對話框
/closeonend:2 如果沒發生錯誤和衝突則自動關閉對話框
/closeonend:3如果沒有錯誤、衝突和合併,會自動關閉
/closeonend:4如果沒有錯誤、衝突和合併,會自動關閉

我將其存成批次檔(如commit_ns229.bat),然後將該批次檔拉個連結到Launchy的utility folder中
之後要commit code時,只要alt + tab叫出Launchy,然後再輸入commit_ns229,perfect,就跳出commit code的視窗
你還是要按OK,按完OK後自動commit,commit完後自動關閉,放在以前還要手動再按一次OK將該progress dialog視窗關掉

你可能要問,為什麼不能全自動commit code,而是要再按一次OK
我也想問為什麼,因為我也想這麼做
但我實在找不到選項省略那一次OK,也許他們就是這樣設計
無論如何,我已經省掉過去GUI用滑鼠操作,和按第二次OK的時間

至於update?
將 /command:commit換成 /command:update即可(add,revert也一樣)
其他細節可參造中文說明文件

.

當gdb遇到SIGKILL……

.

在ns的開發階段,執行時遇到segmentation fault是很正常的
這時gdb非常的好用
但若gdb沒法用呢?

之前用gdb debug時遇到一個case……
在戴入ns的script file後,系統會hang住,過了好一陣子後出現下列的error msg:

Program terminated with signal SIGKILL, Killed.
The program no longer exists.

然後就停了,怎樣都跑不起來
上網查了一下,也沒什麼好答案

在解問題的過程中,我有注意到,一旦開啟gdb並戴入ns的script file時,系統會變得很慢,用top看了一下,ns的mem%衝到了93%,然後virtual和res還一直在漲上去,這是怎麼一回事?ns怎會用到那麼大量的記憶體?


最後我找到了問題的所在,因為我變數initialize錯誤,導致某個class的constructor配置了巨量的變數
然後gdb為了追蹤程式,又要為ns allocate的變配置對應的變數以做追蹤的動作,顯然的,他配置的變數也不少,結果導致gdb一直一直在配置memory,然後超過os的界限,os送個kill的signal給gdb正在trace的程式(也就是ns),將他kill掉
我想,這應該是gdb無法追蹤的原因

所以,下一次若你也遇到相同的問題,可以查查看是哪裡配置了太多、太大的記憶體囉

.

2011年3月29日 星期二

拯救你的滑鼠按鍵

.

去年中,兩顆羅技火星軌跡球(一顆公司用,一顆家裡用)的按鈕陸續出問題
情況不外乎這兩個(有時候兩者都有):
1.左鍵連點
2.左鍵拖曳到一半自己會放掉
當時要求零售商幫我送修,零售商說要有發票才能幫我修……
哇勒,這兩顆快五年了,誰發票會留五年的?

打電話給羅技,沒有發票,行,以出廠日期為主(我是OK啦,不然怎麼辦)
以前一顆火星要1600,保固五年
現在一顆火星要1000,保固剩三年
很幸運的,這兩顆都是五年保固,都在保固內
自己寄出桃園龍潭,幾天後會寄回個良品給我

如果故事到這裡結束了那也還好……
最近公司用的火星左鍵又出現同樣的症狀了,才修回來不到一年就有問題是怎樣?
這次不爽了,上網查了一下,發現決定按鍵觸發機制的是微動開關
大部份都買omron的微動開關回來自己換,就是將舊的解焊,再焊上新的
可是我真的不會焊接

然後從這篇文章看到另一個solution
我選擇把蓋子打開,然後把接點磨一磨..

會產生連點或者是拖曳到一半自己會放掉
都是接點上面氧化產生的....
每次只要遇到這種的...蓋子打開,拿砂紙磨一下接點,接回去又跟新的一樣了


既然知道問題只是出在接點氧化,那就好辦了
印象中也看到有人噴接點清除劑的
但有方向就好了

我最後選擇在微動開關上噴WD-40
火星的左鍵又復活了,而且觸感變得更有彈性,非常的Q呢

看倌啊,如果只是左鍵出了上述問題又過了保固,你可以先選擇簡單的解法:噴接點清除劑或是磨接點,過程不麻煩
真的不work了再換一顆新的微動開關,你的滑鼠或軌跡球就又復活囉,在不景氣的年代,你需要更經濟的方案
(其實在survey的過程中發現,大部份都只是按鍵的微動開關出問題,這imply一件事,手上這兩顆軌跡球沒有意外,也許再戰幾十年也沒問題,只要我會焊接的話……)

.

2011年3月23日 星期三

D2000的耳罩掉下來之維修

.
這其實是我先前在別的網站的文章,現在備份回來

[前言]
暨sr80的耳罩掉下來後,Filco majestouch的某些key會double output後
發生了3c產品的第三件慘事.....那就是是D2000的的耳罩掉下來了

麻煩的是我是跟網友買的二手水貨,不知該送去哪修……
看PTT好像有人修這個花了1000元,不過那是另外一個事件(是店家沒報價就直接維修,跟本文較無關係)
Mobile01也是有人掉下來,不過他說沒差,一樣可以帶,想想也是……

一直找不到適合的縲絲起子將縲回去
最去一直在找solution,找啊找,找到D5000的mod,看了看拆解圖,看起來應該是要整個拆掉才能鎖回去
沒有D2000的拆解圖,看來只能相信它跟D5000的架構是一樣的
不過看圖片看不出耳罩跟支架相接的地方的縲絲是怎麼接的,可能要等到拆了才知道

另外,D2000的耳罩會掉下來是常態,不是偶發,奇怪的是,似乎只有D2000會,D5000不會

Head-Fi辦了一個投票,2007八月前買的D2000,縲絲鬆掉的比例為2:17(鬆掉:沒鬆掉),不過2007八月後的比例就高多了,12:11,超過一半.....…
http://www.head-fi.org/forums/f4/denon- ... ll-258528/


Head-Fi的這篇有人說他為了要將D2000換線,拆開來後發現D2000"似乎"已經修正該問題(It looks like Denon has fixed the issue of the loose screw),不過有人follow說,問題根本不在耳罩內的縲絲,所以問題還是沒解,有一個人掉了兩次,第二次要鎖回去時縲絲斷了 :ale: ,所以他現在用綁的……,另一個人是直接放一坨expoxy(這不知啥東西)……(I just put a bead of epoxy on top of the screw/nut after it fell off and it's been golden ever since. Lock-tight would probably work even better)
http://www.head-fi.org/forums/f4/denon- ... ed-332823/


另外,有人賭爛到極點,乾脆將縲絲換掉,換成長的縲絲,他說D2000原本用的縲絲非常便宜,他全換掉,有圖有真相,他說:雖然圖片中縲絲突出一截,不過他們真的很小……另外他換了mogami的線,有差(The sonic differences from stock to new.)
http://www.head-fi.org/forums/f4/denon- ... ue-344869/


目前還在考慮是要學Mobile01的那位將就著帶,還是下定決心拆掉鎖回去,亦或是,等另一邊掉下來了再修 :mad: ,還是既然都要拆了連線一起換算了……

所以,要買D2000的可能要稍微考慮這情況了
要嘛衝D5000/D7000(其實沒爬文,也許D5000也有這個issue?)
要嘛,買公司貨,縲絲鬆了就送回去鎖

買水貨的話,你就要有心理準備要有能力維修,看起來拆解不難,只是麻煩

20091123更新
後來陸續用一陣子,發現沒有上螺絲的話,D2000帶不久就會自己滑下來(就是漸漸的解體),不會突然掉下來,而是在完全分離前會有一段慢慢變形的過程
所以證明了直接帶是不行的

一氣之下想要動手維修,從大家的回文中推測縲絲上面那個圓圓的東西是蓋住(套住?)縲帽的東西,是可以拆下來的(也可以自己掉下來 = =;)
一開始的想法很簡單,若我能把螺帽拆下來,鎖螺絲這件事就變得很簡單了
不過那個圓圓的蓋子實在是蓋太緊了,跟框架間沒有間隙,加上造型是圓的加上斜角,我實在撬不下來
好吧,山不轉路轉,我決定不鎖螺絲了
我用束帶……

有圖有真相

手上沒相機,用手機拍出來就這樣了,請大家見諒
圖中藍框是原來耳罩的螺絲和耳機框架接合處,最上面的就是那個"圓圓加斜角"的蓋住螺帽的蓋子,紅框就是束帶了
之後D2000就可以正常使用了,用起來沒什麼差,不過有一次D2000被學長拿起來把玩時,束帶跑到最右邊,所以導致耳罩又掉下來了(再裝回去把束帶調到最左邊就好了)
當然,也可以多綁幾條束帶讓束帶沒有空間可以滑動,只綁一條的話,束帶會滑來滑去
不過我覺得,只有自己在用的話,綁一條束帶就夠了,滑到右邊去就再拉回來就可以了
不完美但可行的workaround,野人獻曝一下


[維修]
今天,趁著心血來潮,我就動手了,鎖回縲絲花不了多少時間,只是找工具反而花不少時間(因為心血來潮,所以沒有先準備工具)

工具:鎖眼鏡用的小縲絲起子一把

一開始其實也沒想要拍照,後來想到了不拍照沒有幫到其他人,就拿實驗室的DV來拍照,但由於已經鎖上去了,所以過程中的一些照片就少拍到了

1.如下圖,將接觸耳朵的海棉逆時鐘轉一下,海棉就會掉下來,然後如圖中的藍色圓圈的地方的縲絲,有四顆,將其鬆開後,耳罩就會和框體分離,千萬不要鬆到紅色方框中的縲絲(也是四顆),那是用來取下耳罩外殼的(耳罩外殼取下後就會看到單體),我們只是要鎖縲絲的話,取下耳罩就行了



2.將耳罩取下後,把框架轉到一個角度,就可以動用縲絲起子將縲絲鎖回框體了(圖中紅色圓圈處)



3.縲絲鎖回後長這樣



4.最後將耳罩鎖回框架,每棉裝回耳罩,大功告成

其實過程比想像中的簡單,扣掉找工具的時間,過程大概十分鍾不到
若是有人幫忙固定框體和撐開頭帶的話,將根架鎖回框體的過程會更簡單,這是因為D2000的頭帶/支架有彈性,若沒人幫忙固定(撐開頭帶/支架),左右耳會靠在一起,這樣就不是很好鎖
但一個人也是ok的啦,我就是獨立完成作業

希望能對耳罩也掉下來的同好一點幫助
另外,縲絲不見的話,應該找到同樣縲紋和大小的縲絲就可以了

20110324補充
耳罩又掉下來一次了,這次去電子材料行找螺絲,我把規格記下來了
我買了兩個
M2 x 3 (3mm)
M2 x 4 (4mm)
我最後裝的是M2 x 4

.
.

在看到電腦玩物對Firefox4.0的介紹中所下的這個註解:

Firefox 4不是完美的瀏覽器,他只是一款可以為妳而改變的瀏覽器。

我深有所感,想要脫穎而出,一定要有自己的定位
google chrome給我的感覺就是:快
但我不會想用
FireFox的plugin有很多很實用的,但其實我常用的就是ScrapBook+和同文堂
ScrapBook可以把你喜歡的網頁抓下來,存在local
而DropBox則是可以自動幫你在不同的電腦同步資料夾(免費最多可以到3G的空間)
ScrapBook+和DropBox結合,對我來說非常方便,我在各地不同的電腦,一打開FireFox加上ScarpBook,我可以看到一模一樣的,我在不同地方電腦所抓的網頁
光這個功能就沒有瀏覽器可以取代

FireFox慢,其實我不覺得 = =;
我到現在,還在用Maxthon 1.0 (要不是Windows Update會自動偷偷幫我升級IE,我連IE都在6.x)和FireFox 3.6

.

2011年3月22日 星期二

一時迷失了,就再也回不到當初

.
關於「這輩子,只能這樣嗎?」這本書
我已經看完三遍了,但我暫時還無法寫下心得
勵志的書我看過很多,但我覺得這本最能touch我
為什麼?我自己也在找,也許等我找到為什麼了,我就能寫出心得

這本書的原文書名為:Your own worst enemy
亞馬遜的評價為4.5顆星
博客來的評價也為4.5顆星
為什麼推薦這本書,兩個網站的書評有很多人寫了他的理由


在這裡我只想分享一個故事,這個故事浮現在我心理很久了


阿圓是我讀研究所認識同實驗室的同學,他是我最好的朋友之一
我們研究所時的成績都很好,也一起唸博士班
二年級時,他決定不唸了,於是去找國防役(他是國防役的最後一屆)
那時候我問他要不要留下來再跟我拼一次
不知道為什麼,那時候的我,比起最初決定讀博士班的意氣風發,當時的我狼狽的像條狗
我跟他說:不知道為什麼,現在的我對於唸博士這件事,沒有任何信心,再也沒有當初能做到任何事的信心


我忘了當初阿圓如何回答,不過也不用猜,我們這種人,所做的決定,不會是一時衝動,我的問題在問出來之前其實就已知道結果了
不過有時候我一直在想,在讀博士的這條顛跛之路,能有阿圓同行,我們會不會比較快走完

書中提到,很多人,只是一時迷失了,就再也回不到當初
當時的我,當然知道得了顏面神經麻痺對我的生活影響很大
但我沒想到對我的人生也影響那麼大
是的,一時迷失了,就再也回不到當初

到現在,臉上的肌肉雖有進步,但其實還是不自然
有時候我一直在想,是不是我顏面神經麻痺完全好的那天,就是我博士畢業的那天……

另外,按照熱血漫畫的結局,我應該要對著大海大喊:阿圓,你的畢業證書,我一起替你拿到了,這份畢業證書,是兩人份的重量~~~~~~~
(阿圓:喂喂喂,我又還沒死)
.

「這輩子,只能這樣嗎?」精進計畫的15項任務

.
「這輩子,只能這樣嗎?」我已看完三遍了,對我幫助很大

節錄書中提到的精進計畫的15項任務

1.先找樂趣,快樂是不能省的東西
2.一件夢想很久,卻沒有付諸行動的事
3.下定決心,並且堅定到不近人情
4.在洪流中學習規畫時間
5.想清楚,你到底是個什麼樣的人
6.自己有這些「弱點」嗎?
7.從現在起,別再自我設限
8.重複六千次,建立新習性
9.改變你說話的模式
10.看一看,自己進步了嗎?
11.打造一份夢想企畫書
12.訂立目標,別再「這樣就可以了」
13.失誤率不可能是「零」,擬好備用方案吧
14.使出渾身解數,選擇並完成一個計畫
15.終極大躍進

.

2011年3月21日 星期一

在ns中使用delay_bind() bind var (export var form c++ to tcl space)

.

想要將一個tcl的var和c++的var綁定(binding),按照NS by Example的範例,要在c++ clas的constructor中將想要bind的var透過bind這個function將c++的var address export到tcl space(畢竟兩個是在不同的記憶體空間)

但是ns的us manual 24.4.2中提到,在C++中使用bind()會使你創建的每個物件都消耗記憶體,若你創建許多相同的物件時,使用bind的代價太高。將bind()代換成delay_bind(),使得所需要的記憶體降到per-class level而非每個物件,從ns/object.cc參考如何binding的範例

那要如何使用delay_bind?

google了一下,其實沒有答案(中文的我就不期待了)

自己試了一下,簡單的說
1.在class對應的header file(.h)中,在protected下宣告兩個virtual function:
2.在class的實作中(.cc)實作此兩function
delay_bind_init_all的實作中,要call delay_bind_init_one() initialize tcl space的var,最後要記得call繼承者的delay_bind_init_all()
delay_bind_dispatch的實作中,要call delay_bind()來實現binding,最後同樣要記得call繼承者的delay_bindl()

我提供了一個範例(download),這個範例是從NS by Example的ex-linkage.cc改過來
可以直接放到ns的目錄中,將ex_link_delaybind.o加入Makefile的object list(OBJ_CC)中,重新make

make

再下載script file(download),同樣的,這個script file也是從NS by Example的ex-linkage.tcl改過來的,執行即可看到binding結果,結果就是在tcl中任意改var,class中對應的var也會變

ns ex_link_delaybind.tcl


大概解釋一下程式,我的C++ class為:MyAgentDelBind,繼承自Agent,該class中有兩個private data member:my_var1_、my_var2_想要跟tcl的data member連結
c++的my_var1_要跟tcl的my_var1_otcl連結
c++的my_var2_要跟tcl的my_var2_otcl連結

具體做法為
1.在class對應的header file(.h)中,在protected下宣告兩個virtual function:

virtual void delay_bind_init_all();
virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer);




2.在class的實作中(.cc)實作此兩function

delay_bind_init_all()的實作如下,這裡是主要initialize tcl space的var,因為此class是繼承自Agent,所以最後要記得call agent的delay_bind_init_all()

void MyAgentDelBind::delay_bind_init_all()
{
delay_bind_init_one("my_var1_otcl");
delay_bind_init_one("my_var2_otcl");
// MyAgent inherit from Agent => remember to call the ancestor's delay_bind_init_all()
Agent::delay_bind_init_all();
}


delay_bind_dispatch的實作如下,delay_bind就是在這裡被call來做tcl space跟C++ space var的連結,因為此class是繼承自Agent,所以最後要記得call agent的delay_bind_dispatch(),如此,就完成了cl space跟C++ space var的連結,跟以前在class constructor中call binding的做法不同

int MyAgentDelBind::delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)
{
if (delay_bind(varName, localName, "my_var1_otcl", &my_var1_, tracer))
return TCL_OK;
if (delay_bind(varName, localName, "my_var2_otcl", &my_var2_, tracer))
return TCL_OK;

// MyAgent inherit from Agent
// if delay_bind_dispatch matches none of above => remember to call the ancestor's delay_bind_dispatch()
return Agent::delay_bind_dispatch(varName, localName, tracer);
}
}


然後我在BTSim注意到,BTSim的parameters在tcl跟c++ space的var name相同,驗證了一下
確實tcl的var name可以跟c++ binding的var name同名(其實蠻理所當然的,兩個var在不同space,事實上addr也不同,也各自有自己的instance)

另一個問題是,針對export出去的var,若同時在c++ constructor給定初始值,又在script file中assign該export var,那麼結果會是怎樣?
同樣的,做了一下實驗
結果是,C++的constructor會先被執行,script file會接著overwirte該var
所以當script file有assign value時,以script file的value為準,否則,就是constructor assign的value為準

另外,delay_bind還有其他一些變化
delay_bind_bool:用來將c++的int連結到tcl的booling值 (FullTcpAgent有用到),但是實驗顯示,其連結的變數型態只能是int,只是可以在tcl裡設定true或是false而已
delay_bind_time:用來連結c++的double到tcl的time value(FullTcpAgent有用到,但型態還是dobule)
delay_bind_bw:用來連結c++的double到tcl的bandwidth value(雖沒人用到,但我試過,這個api是存在的,且有用)

.

ns節省記憶體的小技巧

.

在ns user manual 24.4.2中介紹了一些節省記憶體的小技巧:

  1. 避免trace-all:$ns trace-all $f會使得trace objects被塞到所有links,若你只想trace一個link,這個overhead是可以避免的,每個link約可節省14KB
  2. 在使用系列的var時,盡量用array:ns中的每個var都有overhead,如set n$i [$ns node]中的n$i(就像n1, n2, n3, ...),若需要系列的變數時,使用array取代,如n($si)(就像n(1), n(2), n(3), ...),那麼其實只有一個變數會被使用(即n),每個變數可以節省40+Btye
  3. 避免宣告不需要的變數:若一個物件在後面不會再用到,那麼避免為該物件取名,每個變數可省約80B,如下列會為CtrMcast的物件指定一個變數:cmcast(1),但這其實是不必要的set cmcast(1) [new CtrMcast $ns $n(1) $ctrmcastcomp [list 1 1]]
    可以代換成:
    new CtrMcast $ns $n(1) $ctrmcastcomp [list 1 1]
  4. 在FreeBSD上run:在FreeBSD上malloc的overhead比其他的OS小,ns2的作者們最後還是會將FreeBSD的allocator port到其他平台
  5. Dynamic binding: 在C++中使用bind()會使你創建的每個物件都消耗記憶體,若你創建許多相同的物件時,使用bind的代價太高。將bind()代換成delay_bind(),使得所需要的記憶體降到per-class level而非每個物件(我個人的解讀時,bind會使得所有物件都用到它,不管需不需要,就像global variable的宣告,而delay_bind則是當宣告的物件有用到它時,也就是宣告的物件為該class時,這時才真的宣告=>這時才秏記憶體),從ns/object.cc參考如何binding的範例
  6. disabling packet header:在大量packet的simulation中,將你simulation中不會用到的packet header取消將會大量的節省記憶體(ns default是將所有packet header打開
    可在宣告ns前(set ns [new Simulator])輸入:
    remove-all-packet-headers,將所有packet header關閉(在ns宣告前輸入才有用)
    再將需要的packet header加回來,如IP、TCP:
    add-packet-header IP TCP Flags

原文如下:

Some tips to saving memory (some of these use examples from the cmcast-100.tcl script): If you have many links or nodes:
  1. Avoid trace-all : $ns trace-all $f causes trace objects to be pushed on all links. If you only want to trace one link, there’s no need for this overhead. Saving is about 14 KB/link.
  2. Use arrays for sequences of variables : Each variable, say n$i in set n$i [$ns node], has a certain overhead. If a sequence of nodes are created as an array, i.e. n($i), then only one variable is created, consuming much less memory. Saving is about 40+ Byte/variable.
  3. Avoid unnecessary variables : If an object will not be referred to later on, avoid naming the object. E.g. set cmcast(1) [new CtrMcast $ns $n(1) $ctrmcastcomp [list 1 1]] would be better if replaced by new CtrMcast $ns $n(1) $ctrmcastcomp [list 1 1]. Saving is about 80 Byte/variable.
  4. Run on top of FreeBSD : malloc() overhead on FreeBSD is less than on some other systems. We will eventually port that allocator to other platofrms.
  5. Dynamic binding : Using bind() in C++ consumes memory for each object you create. This approach can be very expensive if you create many identical objects. Changing bind() to delay_bind() changes this memory requirement to per-class. See ns/object.cc for an example of how to do binding, either way.
  6. Disabling packet headers : For packet-intensive simulations, disabling all packet headers that you will not use in your simulation may significantly reduce memory usage. See Section 12.1 for detail.


.

2011年3月18日 星期五

里爾克《給青年詩人的信》

.

摘錄自「這輩子,只能這樣嗎?」

拜傳統之賜,人們傾向用最簡單的方法解決事情,越簡單越好。但很明顯的,我們要把握的是艱難的部份;適者生存的贏家,往往都能堅持到底。

.

2011年3月17日 星期四

關於"秩序"

.

以下節錄至"這輩子,只能這樣嗎?"

作者引述艾米爾的話:

「秩序」代表光和和平、內在的解放,以及對自己的完全掌控;秩序是一種力量。內心的真善美來自你對周圍與內在一切秩序的認知、接受與體悟。秩序是人類最大的需求,也是內在真我的極致表現。

.

2011年2月15日 星期二

水之鏡抗反光保護貼

.

現在主要使用notebook在寫paper,但微星CR420是鏡面的螢幕
用久了,眼睛真的會非常不舒服
雖然我想挑霧面螢幕,但無奈的是,CR420並沒有出霧面螢幕的model……

終於,我受不了了,稍微搜尋一下,大概找到一些資料
簡單說,鏡面螢幕成本真的比較低,因為少了一層AG(Anti-Glare)鍍膜

解決方法是買保護貼
網路上有人推薦的是人因的愛目之鏡跟水之鏡

我在新竹nova附近找,只有順發有賣水之鏡的現貨,而且尺寸齊全,人因的愛目之鏡到是找不到,其他的就是一些雜牌,或是3M的防窺鏡片,但我不要防窺……

保護貼同樣是14W還有分16:9和16:10的
量了一下,CR420是16:9,size是310*174mm,剛好跟水之鏡的規格一模一樣

而水之鏡又有分AR跟AG
AR是比AG又多一層AR(Anti-Reflection)鍍膜,簡單說效果就會像是反光比較低的鏡面螢幕(我猜跟Toshiba的CSV一樣?Toshiba的csv也是號稱多一層鍍膜)
我就是要霧面,所以買AG,AR比AG貴100

貼的不是很好,因為我保護膜有掉到地上,雖然還未拆,但因為是靜電式吸冷,吸了一堆灰塵,而這些灰塵在貼的過程中掉到螢幕上,害我貼的一堆氣泡,即使事前先把螢幕擦乾淨也沒有……
因為灰塵在螢幕上,就會鼓起來,導致保護貼沒法密合
我是再拿貼布把灰塵黏走,但貼得很累
還好保護貼是靜電吸附式,可以一直撕撕貼貼

綜合一下心得,下次再貼肯定可以貼很好:
1.需要一個乾淨的桌面,我就是桌面不夠乾淨,保護貼才會掉到地上,導致後來的慘況
2.我覺得手比廠商附的推氣泡用的工具好用多了

貼完的心得是:有差
反射的部份改善很多,已經很接近霧面螢幕了(很接近的意思是,還是會反射一部份)
但螢幕會變得有顆粒狀,也就是看起來會有一粒一粒的感覺,畫質降低
但,我寧願畫質下降,也不要反光
.

2011年1月20日 星期四

關於"warning: deprecated conversion from string constant to ‘char*"這個warning

.

印象中,至從某個版本gcc(應為gcc4.3)更新後,就會出現這個warning
原本不會有warning的code,根新後,一堆這種warning

我記得原因是,當你宣告一個字串常數char *str = "xxx";
可是,你卻把他當成char *給別人,而非const char *,於是別人就可以改該常數
正確的解法是改code,該constant就傳constant

程式是該有任何warning的,沒錯!

但問題是不是我寫的code,又即將要淘汰,而又有很多很多warning,怎辦?
從某個地方找到solution,將該特定warning濾掉吧,先focus在別的warning吧

在make file或gcc指令加入該參數(來源出處):

-Wno-write-strings

這個solution我試過,有用,它會濾掉該特定warning

當然,最根本的解法是寫出沒有warning的code
如果是需要maintain的code,時間又充裕,還是花時間改吧

同一個網頁提供使用sed批次處理的解法,他沒試過,我也沒試過,但有5人投票他票,這個解法不能解全部,但能大幅減輕warning數量

find . -exec sed -E -i .backup -n \ -e 's/char\s*\*\s*(\w+)\s*= "/char const* \1 = "/g' {} \;


.

2011年1月7日 星期五

將windows 7的alt tab換回winxp的style

.

最近都在NB上寫code,實在沒辦法習慣win7 style的alt tabl
今天被惹毛了,決定試看看能否將windows 7的alt tab換回winxp的style
結論是可以

方法是按"win + break"這組熱鍵,呼叫出系統管理台
然後依序點"進階系統設定"->"進階"tab"->效能中的"設定"->"視覺效果"tab->將"啟用桌面轉譯緩衝處理"的勾勾取消,按下確定
alt tab就變回winxp的style囉



原本win 7的alt tab長這樣


現在長這樣


.

2011年1月5日 星期三

Breaking Night - Liz Murray

-

曾經好幾度想要放棄博士班的學業

Breaking Night講的是Liz Murray的故事,算自傳吧
Subtitle中,有一句是"My journey from homeless to harvard"

是的,曾經無家可歸的她(曾經還在街上流浪),不僅讀到哈佛,還拿到哈佛的博士
除了她,還有另一個類似的例子,也是進哈佛,還拍成電影:風雨哈佛路

請友人幫我從美國回來時帶回來(Amazon收我7NT的海外購物費,不厚道啊,我明明是寄到美國)
才看到第一頁就很悲慘

不僅是她媽的悲慘
我也很悲慘
生字一堆……
誰能告訴我:Mary-friggin-Poppin到底是什麼意思啊?(我猜是一首歌……)

第一頁在回憶她媽的悲慘青年時
主要是回憶她媽的話,第二頁從她媽的話中再間接描述她爸
我想,因為她媽和她爸如此悲慘,她的童年才會如此悲慘
她媽說的Pumking,應該是是在叫主角(一開始我以為是她爸的暱稱)

希望看了這本書能讓我有繼續的動力
人生的機會不多,有就要好好把握和珍惜
如果情況如此悲劇的她,都能唸到名校的博士
狀況好得多的我沒理由撐不下去

但我首先要先撐下去在寫論文的餘暇把書看完……Orz

-