發表文章

目前顯示的是 7月, 2010的文章

婆婆,你在吃ㄣㄣ喔~

話說我岳母,也就是單單的外婆,單單都叫她婆婆,上次帶他的時候,弄了南瓜派,因為剛弄好的時候會燙,軟軟的,所以沒有立刻吃。 過了一會,我岳母吃吃看已經冷了,她就對單單說:「單單,南瓜派變硬硬了,趕快吃~」結果單單就很驚訝(認真貌)的看著我岳母說:「婆婆,妳再吃ㄣㄣ(大便)喔!」

Synergy, Input Director, QuickSynergy 多桌面應用

我的工作環境還滿複雜的,為了因應能同時使用 Windows、MacOSX、Ubuntu 10.4/9.04 所以我用了三個螢幕 (quicksynergy, synergy,inputdirector,三個軟體,一個KVM 先說說硬體設備: 一台Windows 7 (娛樂機) 一台Windows 2008 Server (主要文書機器) 一台MACOSX,裡面有一個VM--Ubuntu 9.04 (開發機) 一台Ubuntu 10.4(開發機) 四台機器分別接到KVM的四個Port 共有三個實體螢幕,從左到右是一到三,但我想要的是每次切換到一台電腦的時候,可以同時控制兩台機器,這樣複製貼上很方便,或是快速回個MSN訊息,不用一直KVM在那邊逼來逼去 當我切到Port 1 的時候,硬體鍵盤滑鼠是接到 Windows 7上面,顯示在第二個螢幕,然後我第三個螢幕是顯示 2008,所以這時候我這兩台機器安裝了 Input Director,比Synergy 好用,可以熱鍵快速切換焦點到不同機器,就不用動滑鼠了。 當我切到Port2 的時候,硬體鍵盤滑鼠接到 2008,這時候第二第三螢幕都是2008的雙螢幕輸出。 當我切到Port3 的時候,硬體鍵盤滑鼠接到 OSX,這時候第一第二螢幕都是OSX的雙螢幕輸出,第一螢幕顯示Ubuntu 9.04,第二螢幕顯示 OSX,第三螢幕是2008,所以兩邊要安裝 Synergy,這是我唯一可一一組鍵盤滑鼠可控制三個螢幕的。 當我切到Port4 的時候,硬體鍵盤滑鼠接到 Ubuntu 10.4,第二螢幕顯示Ubuntu 10.4,第三螢幕顯示2008,所以還要安裝 quicksynergy,然後2008 再啟動一個 synergy client。 不管我切到甚麼模式,這樣至少都有兩個螢幕可以用,查資料我還是喜歡用Windows,做筆記比較方便~

電梯控制系統

2010/07/14 更新 最近去內湖某家公司拜訪,他們的電梯系統還滿神奇的,所有電梯都沒有按鈕,但在入口處會有一堆數字鍵盤讓你按你要到幾樓,輸入完成之後,就使用螢幕顯示你要做哪一台電梯,ABCDEF六台某一個字母這樣~還滿帥的。 2006/01/05 記得,愛因斯坦在思考相對論的時候有藉助到電梯,在我學過程式設計之後,對電梯也多了一份思考。一直以來都有一個很想做的電梯系統在我心中。 從小時候,要往上坐到底是要按下還是上呢?有一陣子我兩個都按,接下來又懷疑為什麼有些地方所有電梯的開關會相連接,也就是按一下就全部都會亮了。 現在,身為一個設計師,想設計一套最有效率的電梯控制系統。第一套系統:早期的電梯是每一部都做一個按鈕,於是,常常見到有人兩部電梯都按,不管另一部能不能做的到?雖然這樣可能會節省自己的一點時間,但我覺得整體卻會浪費能源而且也可能浪費別人的時間。 第二套系統:則是所有電梯使用同一個開關,我們的浩然圖書館就是使用這種系統,當你按了一個開關之後,所有開關都會亮起,但不一定每部電梯都會朝你靠近,而是由系統算出每部電梯該不該靠近,這種方式可能會讓你等很久,例如:你在七樓,A電梯在二樓,B電梯在八樓,於是A電梯不會動,B電梯往下移動,但若此時八樓有大長官在電梯門口敘舊,你可能會等很久仍等不到電梯下來,很不幸的,我至今仍未遇過此種情況,所以我覺得這是最好的方式。於是,我懷疑為什麼不把所有的電梯系統都改成這種的? 第三種系統是最近想到的,每次早上去坐電梯時,如果電梯在六樓的話,我就必須等他下來,我就必須等他下來,有沒有辦法,讓電梯在我到達之前就先下來呢?想到兩種解法,第一種,在大廈的入口處也設置一個電梯的開關,於是當我走進工三大門的時候就先讓電梯定位了,這樣就不用在電梯口等待。這種解法不牽涉到系統設計,問題只是在實際接線而已,所以不討論,或許以後RFID發達可以直接透過無線控制,就不用拉那麼遠的線了。第二種解法使用Heuristic演算法,由系統統計每個時間的上下移動情況,例如早上,常常會有空電梯往下移動,代表往上的人多,所以系統可以考慮將電梯移至一樓。而在吃飯時間,可能空電梯往上的機會多,所以便自動往上(可能到三樓)。此套系統需要的應該是統計跟機率的知識。此系統節省的應是人等待的時間,但有可能會浪費些許能源。 高樓大廈的電梯系統又有點不一樣,例如:1

開站文

最近看到人家再推薦blogspot,所以又試了一下,恩,可以自訂的樣式還真多,所以我覺得搬到這邊來了,而且這邊對 AdSense 的支援應該比較好~ 最近要慢慢手動搬移文章了,順便回憶一下之前的心情 :)

寫iPad 終於有寫嵌入式的感覺了 (UIScrollView subviews many image memory)

  以前寫視窗都用微軟的記憶體管理,頂多只是加個非同步,讓UI 順一點,然後如果記憶體用太多的時候,偶爾強制釋放一下記憶體,最近寫的ComicMinus2 for iPad,因為自己一直在用,所以也遇到不少之前沒想到的問題。 先說說我一開始的設計,點選某一部漫畫之後,會出現這部漫畫的所有本數,我用了ScrollView 第一版:裡面放上很多個UIImageView,沒想到子目錄大概20個以上就掛了。 第二版:改為使用UIImage,然後自己畫,但是速度太慢了,載入都滿快的,但在開始畫的時候就會停頓很久 第三版:想說在載入UIImage的時候順便縮圖,這樣可能會畫的快一點,結果時間大部分都花在縮圖了 第四版:改為間隔更新目錄預覽圖,每0.5秒去畫一個子目錄,速度OK,也可以看海賊王了,大概有五十本。缺點大概沒辦法一瞬間看所有預覽圖 第五版:看絕代雙驕,結果目錄太多了,560個,全部載入完,就直接被系統關掉了,於是改為動態載入移除控制項,我只保留三個頁面的控制項,假設現在移到第四頁,就保留第三四五頁,然後把第二頁移掉 第六版:既然都沒辦法一次載入所有控制項了,乾脆自己實做 Reuse 機制,這種設計在 Android 的Source裡面有,Apple 的 TableViewCell 也是一樣,做法:先弄三個PageView出來,上面都先填滿預覽的Control,接著根據滑動的方向,把 Left/Center/Right PageView 移來移去載入不同的內容 目前這種方法還OK!

Reflection & Serialization 學習記錄

  這兩個東西好像是研一上那一段時間學到的,早期用VB6 的時候,系統提供一個SaveSetting & GetSetting讓你可以保存設定到Registry,所以我每次為我的程式增加一個設定的時候,都要加上這兩行,覺得有點麻煩。 當我第一次看到Reflection這個東西的時候,令我驚為天人Orz(成語是這樣用嗎?)我第一個想到的應用就是不用再自己手動寫很多行 SaveSetting了。我可以用foreach 然後找出此Class的所有變數,接著儲存。所以我又馬不停蹄的寫了一個元件,只要傳進某個物件,就可以把他的狀態全部存下來。還原的方式也是一樣。當我寫完之後,我很滿意~程式設計師總是懶的。 可是再過不久之後,我又學到了Serialization,天啊~原來我之前做的那個元件就是Serialization的功能,而且系統元件做的比我好。難道我又浪費了不少時間了嗎?非也非也,研一下,我應徵了北京微軟研究院的實習生項目,在電話面試的時候,我記得沒有問到甚麼難的問題,後來主管問我說:「你知道Refection?」我一顆心快飛起來了,因為我之前寫過那個元件,所以有研究過一些東西,於是啪啪啪  跟他解釋起來,後來就順利錄取了 ^^ 在Cocoa Framework裡面Serialzation叫做 Archive~ NSCoding