2009年4月24日 星期五
NB換購記憶體DDR2 633 4G後的兩三事
Survey SUPERCACHE & RAMDISK 二個議題:
關於記憶體的使用方式思考與設定
SuperCache設定心得
RAM Disk搭配OS開關機
(轉載自 http://id-phatman.spaces.live.com/Blog/cns!CA763CA8DB2378D1!561.entry)
用了gavotte的ramdisk半年了,逐漸琢磨出了一些好的使用方法,順手分享下
在ramdisk的目錄,創建兩個批次處理, ramdiskload.bat 和ramdisksave.bat, 然後點開始/運行,輸入gpedit.msc, 會出來組策略管理器,在“windows settings”下的"scripts(startup/shutdown)"下有"startup"和"shutdown"兩個子項,分別把ramdiskload.bat和ramdisksave.bat載入,然後關閉組策略管理器,這樣windows就會在啟動的時候運行ramdiskload.bat,關閉的時候運行ramdisksave.bat.在ramdisk的目錄,創建兩個批處理, ramdiskload.bat和ramdisksave.bat,然後點開始/運行,輸入gpedit.msc,會出來組策略管理器,在“windows settings”下的"scripts(startup/shutdown )"下有"startup"和"shutdown"兩個子項,分別把ramdiskload.bat和ramdisksave.bat載入,然後關閉組策略管理器,這樣windows就會在啟動的時候運行ramdiskload.bat,關閉的時候運行ramdisksave.bat.
這樣做有什麼好處呢?這樣做有什麼好處呢?
部分朋友主要是用ramdisk把IE cache和TEMP指向ramdisk,其實很多小東東都可以這樣的,比如我就是把Maxthon放到了ramdisk上,比如放到R:\Max部分朋友主要是用ramdisk把IE cache和TEMP指向ramdisk,其實很多小東東都可以這樣的,比如我就是把Maxthon放到了ramdisk上,比如放到R:\Max
這樣在ramdiskload.bat寫入這樣在ramdiskload.bat寫入 代碼代碼
rar.exe x -o+ E:\RamDisk\max.rar r: rar.exe x -o+ E:\RamDisk\max.rar r:
在ramdisksave.bat寫入在ramdisksave.bat寫入 代碼代碼
if Exist E:\RamDisk\max.rar.bak del E:\RamDisk\max.rar.bak if Exist E:\RamDisk\max.rar.bak del E:\RamDisk\max.rar.bak
if Exist E:\RamDisk\max.rar ren E:\RamDisk\max.rar max.rar.bak if Exist E:\RamDisk\max.rar ren E:\RamDisk\max.rar max.rar.bak
rar.exe a -r -m0 E:\RamDisk\max.rar r:\max rar.exe a -r -m0 E:\RamDisk\max.rar r:\max
這樣系統啟動的時候就把Maxthon解壓到ramdisk,關閉的時候就自動保存Maxthon到硬碟這樣系統啟動的時候就把Maxthon解壓到ramdisk,關閉的時候就自動保存Maxthon到硬盤
如果ramdisk夠大,還可以把一些頻繁磁片操作的程式放到ramdisk上,比如我就是把雷電ftpd整個放到ramdisk上,因為雷電的log檔寫入頻繁如果ramdisk夠大,還可以把一些頻繁磁盤操作的程式放到ramdisk上,比如我就是把雷電ftpd整個放到ramdisk上,因為雷電的log文件寫入頻繁
看股票的朋友,如果用的是通達信的版本,也可以全部放到ramdisk上,這樣就不會聽到程式獲取股票資訊的時候哢哢響了看股票的朋友,如果用的是通達信的版本,也可以全部放到ramdisk上,這樣就不會聽到程式獲取股票資訊的時候哢哢響了
最後提醒一句,系統崩潰或別的任何原因系統未進入正常關機流程您存在RAMdisk裏的資料會丟失!最後提醒一句,系統崩潰或別的任何原因係統未進入正常關機流程您存在RAMdisk裡的數據會丟失!
2009年4月23日 星期四
2009年4月7日 星期二
關於架構
2009年2月7日 星期六
從Silverlight開發架構看到的一些感慨
最近在撰寫Silverlight的文稿(書稿和雜誌稿)、範例、和一些課程教材的時候,
看到Web 開發技術的發展回頭對比台灣的開發環境實在有一些感慨。
先講第一個,話說從頭,有一陣子我介紹了ASP.NET上的MVC,MVC這個
架構是個好的 Pattern,可以幫助開發人員達成建構出有架構、便於更新維護、
便於抽換的應用程式, 問題是這是(只是)一個規範、一個樣式,所謂的規範就
表示,你應該遵循藉以得到一些好 處,但是有趣的是,規範這個東西在台灣
不見得一定會被遵循,老實說我本來以為在全世 界都是這樣,但是根據我的
觀察,在台灣這個狀況比較明顯,反觀我在台灣以外的一些合 作夥伴和團隊,
對於 "規範" 這個事情的嚴謹度和遵守(你也可以說是死板),超過了我的想像
和期待。 我舉幾個簡單的例子:
1.估時程:我常常看到,為了爭取到某一個案子,在時程評估的時候,
就已經放棄架構了,我們給了客戶一個若要遵循架構就根本不可能達成的
預計完成時間。
2.當進度落後:當進度落後的時候更慘,本來SA,SD花時間想好的架構,
可以因為進度理由一夕之間失效,更有趣的是,這個架構可能是先前花了
兩三個月決定的,但是Developer+PM可以在一天內推翻。
3.當客戶要求不合理:一樣的狀況, 有時候客戶會有一些超越常態或是超越
技術可能性的要求,為了成案,往往PM答應的莫名其妙,而怪的是,
最後還是可以做得出來,天知道這後面隱藏了哪些可怕的東西。
剛講到MVC和所謂的規範,可能很多人對我說的 "規範" 的定義不清楚,
舉個ASP.NET開發人員應該要知道的例子,有幾個我所謂的規範簡單的
具體例子就是:
1.ASP.NET 頁面(.aspx和.aspx.cs 或.aspx.vb)當中,不得有
ConnectionString or SQL 指令。(你應該寫在一個表(不管是資料表或是
對照表)當中,以便於後續維護。(但是,誰敢說自己的.vb或.cs中沒有
SQL指令碼?我看是一堆吧...)
2.ASP.NET程式碼當中不該有商業邏輯,只能有處理UI的Code, 也就是說,
你應該要有一個Business object。
3.超過100行的Method或Sub, Function 應該再切割。
類似像上面這樣的說習慣也好, 說規範也行,是不應該被打破的,但是,
有多少因為時程關係而破壞規範的例子? 多的慘不忍睹。
在連續幾次課程中我被問到MVC之後,我的回答開始變成:如果你(或你的
開發人員),無法嚴守上面這幾個規範,那就不應該去想ASP.NET MVC,
因為這(MVC)不符合你的需求。
MVC是一個保持(證)系統架構清晰、具有延展性、可抽換性的開發架構,
以降低維護成本 提高重用性,但是如果你的Code是上面這樣的寫法,
那完全不可能接受MVC的規範。
好,回來談Silverlight, 上課時,我很清楚的跟學員介紹了Silverlight RIA
抓取後端資 料庫的方式,大致上如下:
1.撰寫一個Business Object(包含Data Access Class)來抓取資料庫中的資訊,
例如請假資料...(這邊應當是 AP層)
2.利用WCF或WebService撰寫一個Service,來調用剛才寫的
Business Object,這是Service層。
3.在Silverlight應用程式當中,調用遠端的Web Service來存取並顯示資料。
(這邊是展示層)
曾經有幾個學員問到說,怎麼會這麼麻煩呢?
我為什麼不能像以前寫Windows應用程式和Web應用程式時一樣,用一個
SqlDataSource或是"直接"撈DB中的資料呢?
當我聽到這個問題之後大為震驚,這表示
1.原來以前大家都是在處理展示層的UI上,直接抓取後端資料?
2.原來過去大家很少撰寫Business Object或是Service,都是透過ADO.NET
直搗狂龍式的取得DB中的內容?
(不過, 我欣賞學員願意問的求知慾, 只有這樣才能持續成長, 比起在心裡覺得
怪怪的但總是沒問出問題的學員, 他們會進步得較快)
如果是這樣,那怎麼同樣的學員會問MVC的問題呢? 這沒道理啊, MVC的概念
根本不是這樣啊? 原來,學員提到準備要導入MVC開發架構,但是他心裡其實
對MVC還沒個底,並不知道改成MVC之後,比起他現在的開發方式額外要
撰寫很多、很多很多的Class...
真的是 "變得" 比較麻煩嗎?還是其實是過去為了一時的便利, "省去了"
太多太多 本來其實應該要做的工作呢?
我的一個前輩告訴我,先前他對Design Pattren概念雖然很清楚,
但是總是覺得彆扭,和台灣的架構師們討論起來也覺得沒那麼自然,
似乎很難應用。後來有一次,他參與國外的一個開發團隊,發現在這個團隊
當中,有著來自世界各國的優秀成員,在當中討論系統architecture的時候,
在會議中,每個人討論起開發架構,其中Design pattrene觀念似乎是理所當然
的,像喝水一樣,很多的爭辯只會到某人提出應該要用某種Pattern來解決為止
,不會有任何其他的疑問,架構和規範像聖經一樣牢不可破。
我並沒有說(我也沒資格說)怎樣一定比較好,坦白說我以前寫的一些範例也並
不敢說全然依照上面的規範,只是回頭想想覺得有點感慨,當我們在討論RIA
或是Silverlight的時候,好像一直講的都是你的程式可以怎樣炫、可以怎樣讓人
感覺不同、有怎樣的使用者體驗...但是卻忽略了開發架構是一切的根本,
為何我要建議學員考慮把一些ASP.NET的應用程式改以 Silverlight來開發,
原因不是炫、是這樣的開發架構才較為合理。
Silverlight有清楚的展示層、服務層、AP層、DB層的觀念, 除了展示層之外的
東西,都應該是與UI無關的,和過去ASP.NET開發人員習慣(但不應該)把所有
東西綁成一坨混在一起是不一樣的。
我還是這麼說,應該把技術應用在適當的場合,技術本身有延續性,
很多新技術的出現,都是因為要解決過去的一些問題,UI只是其中之一,
除了UI之外,開發架構是一個開發Team的核心競爭力,否則我們的開發團隊
很可能只能持續的從勞力苦工中獲取很低很低很低的毛利,很類似台灣的代工
製造業現在面對的問題,開發團隊中沒有一些累積出可重用的元件其實是一件
很可怕的事情...
從團隊到個人也是,過去的經驗的累積(包含知識、專案、成品、元件),會是
開發人員與其他開發人員不同之處,我知道每一個開發人員現在其實都很累,
面對專案、面對一些其他有的沒的,但是如果可以,還是建議大家,
多花一點時間在架構上,對於開發人員來說,這應該是只有好處的。