5.09.2007
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item
I am get this information when I want to install VSTS SP1 in windows 2K3. Why I need to install the VSTS in Windows 2K3, that's because I want to develop a program that refer to Windows SharePoint Service 3.0 Tools to VS 2005 extension. Windows SharePoint Service 3.0 Tools to VS2005 extension ONLY can install in the machine that installed SharePoint Service … so silly.
So, the message base on the conditions: Windows 2K3 R2, VSTS 2005, want to install VSTS 2005 SP1.
The error message: as title.
Process: First, I search Microsoft KB and google to find the resolution. Here is the best discussion list about this problem.
First is the digital signature and second is the problem with permission.
But, after I do as both url, I could not resolve the problem still. Moreover, I could not see the ACCESS DINED in the tool mention by second url.
After 4 hours, I find something that I forget to check….
As the the picture below, just so easy to click and every thing is going find.
Just “unlock” the file.
So, the message base on the conditions: Windows 2K3 R2, VSTS 2005, want to install VSTS 2005 SP1.
The error message: as title.
Process: First, I search Microsoft KB and google to find the resolution. Here is the best discussion list about this problem.
First is the digital signature and second is the problem with permission.
But, after I do as both url, I could not resolve the problem still. Moreover, I could not see the ACCESS DINED in the tool mention by second url.
After 4 hours, I find something that I forget to check….
As the the picture below, just so easy to click and every thing is going find.
Just “unlock” the file.
1.06.2007
萬巒豬腳
這次綠島行回程是走南迴回台北, 經過萬巒的時候跑去吃豬腳, 到了台中跑去吃向日葵豬排飯, 豬腳真的不錯吃, 不過除了豬腳, 其他的東西就讓我後悔點, 尤其是虱目魚肚湯...湯清到沒魚味...鹹蛋苦瓜我是不清楚客家人是不是都這樣煮的, 但是一堆苦瓜跟形狀大塊到不行鹹蛋好像就是希望你一口苦瓜一口鹹蛋再一口飯的吃法似的...還是台北的餐廳弄得好吃.
至於向日葵豬排, 老闆好像身體不好, 那天剛好有開張...要去吃的朋友記得先打通電話. 至於味道就不多講了.
這是豬腳跟鹹蛋苦瓜的圖:
至於向日葵豬排, 老闆好像身體不好, 那天剛好有開張...要去吃的朋友記得先打通電話. 至於味道就不多講了.
這是豬腳跟鹹蛋苦瓜的圖:
![]() |
| From 20070101跨年綠島行3/4 |
| From 20070101跨年綠島行3/4 |
12.18.2006
.NET 漫談 (1)
.NET的程式開發過程裡,New這個動作到底代表了甚麼,我想這個要從Object life cycle(物件的生命週期)講起。
在電腦的世界裡面,我們定義的Class代表的就是一個我們設定好的記憶體模型,可以把它當作一個模子,我們可能準備了許多的模子,但是不代表我們有用模子壓出東西來,這個時候算是準備時期,程式開發的術語叫做Design-Time。
當程式開始執行之後,這時候的狀態叫做Run-Time。這個時候電腦會根據你想要的東西,找到相對應的模子在記憶體裡面壓出你所想要的東西,這個東西叫做Object,你也可以稱它為Instance,不管Object或是Instance都是佔有記憶體的。
好啦,假設我們有兩個模子,要壓出小白兔跟花,所以一個叫做Rabbit,另一個叫做Flower,那我們要怎麼叫電腦幫我們做產生Object的動作呢?我們需要寫下像下面的的程式碼:
Rabbit melody=new Rabbit();
Flower rose=new Flower();
沒錯,New就是建立Instance的動作。但是你的內心一定有一些疑惑,那為甚麼有些東西需要New,但是有些東西不用New。
這個問題就回到我們以前討論的Value Type與Reference Type的差異。這兩個形態的分別就是因為Value Type夠簡單,夠單純,.NET可以完全掌控它,所以一般來說它是不需要New的,但是你可以試試看下面的程式碼:
Int32 i = new Int32();
然後Build看看,IDE應該只會吐一個warning CS0219: The variable 'i' is assigned but its value is never used警告訊息給你,還是可以過的。
所以說Value Type也是可以New的,只是.NET本身認為他很單純,簡單,所以Value Type才可以略過。再進一步的說來,.NET將(Type)區分成兩種大類,一種是所謂的Primitive Type, 也就是我們剛剛講的Value Type,不管是Primitive Type還是Reference Type的Instance都是在Runtime配置在記憶體中,但是兩者之間配置的位置是不一樣的,Reference Type是位在Heap裡面,受GC的管理,但Primitive Type是不在GC Heap裡面。
所以相對的Primitive Type的Instance在使用上會比較沒有額外的負擔,但是要記住,Primitive Type是記憶體大小不可變的,也就是當你宣告變數是Int32的型別之後,並無法改變它的大小,這部分我們就要注意System.String這個型別,這個型別的特殊的地方是它是個Reference Type,但它的狀態也是記憶體大小不可變,這個有看過String與StringBuilder比較的Demo都應該可以快速的體認到差異並懂得避免非效率的Coding行為。
在電腦的世界裡面,我們定義的Class代表的就是一個我們設定好的記憶體模型,可以把它當作一個模子,我們可能準備了許多的模子,但是不代表我們有用模子壓出東西來,這個時候算是準備時期,程式開發的術語叫做Design-Time。
當程式開始執行之後,這時候的狀態叫做Run-Time。這個時候電腦會根據你想要的東西,找到相對應的模子在記憶體裡面壓出你所想要的東西,這個東西叫做Object,你也可以稱它為Instance,不管Object或是Instance都是佔有記憶體的。
好啦,假設我們有兩個模子,要壓出小白兔跟花,所以一個叫做Rabbit,另一個叫做Flower,那我們要怎麼叫電腦幫我們做產生Object的動作呢?我們需要寫下像下面的的程式碼:
Rabbit melody=new Rabbit();
Flower rose=new Flower();
沒錯,New就是建立Instance的動作。但是你的內心一定有一些疑惑,那為甚麼有些東西需要New,但是有些東西不用New。
這個問題就回到我們以前討論的Value Type與Reference Type的差異。這兩個形態的分別就是因為Value Type夠簡單,夠單純,.NET可以完全掌控它,所以一般來說它是不需要New的,但是你可以試試看下面的程式碼:
Int32 i = new Int32();
然後Build看看,IDE應該只會吐一個warning CS0219: The variable 'i' is assigned but its value is never used警告訊息給你,還是可以過的。
所以說Value Type也是可以New的,只是.NET本身認為他很單純,簡單,所以Value Type才可以略過。再進一步的說來,.NET將(Type)區分成兩種大類,一種是所謂的Primitive Type, 也就是我們剛剛講的Value Type,不管是Primitive Type還是Reference Type的Instance都是在Runtime配置在記憶體中,但是兩者之間配置的位置是不一樣的,Reference Type是位在Heap裡面,受GC的管理,但Primitive Type是不在GC Heap裡面。
所以相對的Primitive Type的Instance在使用上會比較沒有額外的負擔,但是要記住,Primitive Type是記憶體大小不可變的,也就是當你宣告變數是Int32的型別之後,並無法改變它的大小,這部分我們就要注意System.String這個型別,這個型別的特殊的地方是它是個Reference Type,但它的狀態也是記憶體大小不可變,這個有看過String與StringBuilder比較的Demo都應該可以快速的體認到差異並懂得避免非效率的Coding行為。
11.15.2006
I am back
Finally, The Integration of database is completed.
I spent almost half year to complete this case, wrote a new program to transfer data without dependence upon database’s schema. Dynamically Database choice, Error message flow…
Maybe this program do not perfect, it also excellent for me, now.
And now, I give a course to training my colleague. I am trying to broach the O.O concept and introduce to difference method of development.
Up to now, Polymorphism is the bottleneck of learning for my most colleagues. I am trying to slow down and present more demo, next, I thought the better to comprehend the concept is practice.
In the end, The next post would be the note of my course.
8.14.2006
獨占性的好用與勉強可以的相容
過了很久,總算有空寫了。
工作忙到一定程度,人生就不知不覺得消失,想想真可怕。
獨占性的好用與勉強可以的相容。我想說的是軟體的類型。
老實講,我不知道哪一個比較好,但是個人的立場是 勉強可以用,卻相容其他軟體的工具 最討我歡心。
Picasa推出了Web Albums,亮眼的程度可以跟Yahoo的Flickr相比,雖然只有250MB,不過感覺還真的不錯。不過,兩者互不相容,無法同步。我的朋友裡面有用Yahoo的就很少會用Picasa,那怎麼辦,一定要我人工同步嗎?
那個Google Calendar能跟Outlook同步嗎?要是Google不肯作,MS願意做嗎?
看到最近的Israel-Lebanon,好像到處都不相容...
--------------------
WWW,從Netscape對IE,Java對.NET,一路走來紛亂不已,讓我很害怕,所以就算Ajax跑出來,老實講,我還是寧願把Indigo搞清楚再說。
這是我的Picasa Web Albums
http://picasaweb.google.com/Robert.Yu.Tw
這個則是Flickr
http://www.flickr.com/photos/robertyu-tw/
至於MSN Live Space...耶....我喜歡那個Windows Live Favorites,尤其新出的Live Toolbar,不過其他的要是有.NET 1.0剛出來的氣勢,我想會好很多,畢竟MSN Messenger有他的市場優勢。
工作忙到一定程度,人生就不知不覺得消失,想想真可怕。
獨占性的好用與勉強可以的相容。我想說的是軟體的類型。
老實講,我不知道哪一個比較好,但是個人的立場是 勉強可以用,卻相容其他軟體的工具 最討我歡心。
Picasa推出了Web Albums,亮眼的程度可以跟Yahoo的Flickr相比,雖然只有250MB,不過感覺還真的不錯。不過,兩者互不相容,無法同步。我的朋友裡面有用Yahoo的就很少會用Picasa,那怎麼辦,一定要我人工同步嗎?
那個Google Calendar能跟Outlook同步嗎?要是Google不肯作,MS願意做嗎?
看到最近的Israel-Lebanon,好像到處都不相容...
--------------------
WWW,從Netscape對IE,Java對.NET,一路走來紛亂不已,讓我很害怕,所以就算Ajax跑出來,老實講,我還是寧願把Indigo搞清楚再說。
這是我的Picasa Web Albums
http://picasaweb.google.com/Robert.Yu.Tw
這個則是Flickr
http://www.flickr.com/photos/robertyu-tw/
至於MSN Live Space...耶....我喜歡那個Windows Live Favorites,尤其新出的Live Toolbar,不過其他的要是有.NET 1.0剛出來的氣勢,我想會好很多,畢竟MSN Messenger有他的市場優勢。
5.26.2006
[閒聊]鐵軌寬度的由來
經濟學中有個名詞稱為「路徑依賴」,它是類似於物理學中 的"慣性",一旦選擇進入某一路徑(無論是 「好」的、還是「壞」的),就可能對這種路徑產生依賴。以下美國鐵軌的故事也許有助於我們理解這一概念,並且加深對其後果的印象。
美國鐵路兩條鐵軌之間的標準距離是四點八五英尺。這是一個很奇怪的 標準,究竟從何而來的?
原來這是英國的鐵路標準,因為美國的鐵路最早是由英 國人設計建造的。那麼,為什麼英國人用這個標準呢?
原來英國的鐵路是由建電車軌道的人設計的,而這個四點八五英尺正是電車所用的標 準。電車軌標準又是從哪裡來的呢?
原來最先造電車的人以前是造馬車的。而他們是用馬車 的輪寬做標準。好了,那麼,馬車為什麼要用這個一定的輪距離標準呢?
因為如果那時候的馬車用任何其他輪距的話,馬車的輪 子很快會在英國的老路上撞壞的。為什麼?
因為這些路上的轍跡的寬度為四點八五英尺。這些轍跡又是從何而來呢?
答案是古羅馬人定的,四點八五英尺正是羅馬戰車的寬 度。如果任何人用不同的輪寬在這些路上行車的話,他的輪子的壽命都不會長。我們再問:羅馬人為什麼用四點八五英尺為戰車的輪距寬度呢?
原因很簡單,這是兩匹拉戰車的馬的屁股的寬度。故事 到此應該完結了,但事實上還沒有完。
下次你在電視上看到美國太空梭立在發射臺上的雄姿 時,你留意看,在它的燃料箱的兩旁有兩個火箭推進器,這些推進器是由設在猶他州的工廠所提供的。如果可能的話,這家工廠的工程師希望把這些推進器造得再胖一些,這樣容量就會大一些,但是他們不可以,為什麼?因為這些推進器造好後,要用火車從工廠運到發射點, 路上要通過一些隧道,而這些隧道的寬度只比火車軌道的寬度寬了一點點,然而我們不要忘記火車軌道的寬度是由馬的屁股的寬度所決定的。
因此,我們可以斷言:可能今天世界上最先進的運輸系 統的設計,是兩千年前便由兩匹馬的屁股寬度決定了。這就是路徑依賴,看起來有幾許悖謬與幽默,但卻是事實。
=====================
上面是轉貼的東西,老實講我念經濟系的,卻也不知道有啥路徑依賴的理論,後來有一天終於受不了,上網找了找。
真的有這個東西耶,看來我的大學生涯真是...。
一開始想說應該可以用使用者成本就可以解釋掉這一塊。但是後來越想越不對,要是這麼簡單的話,不就沒有人去做這一塊的論析。
再上網找了找,看到Amazon一本書,作者是我熟悉的W. Brain Arthur...果然有人在討論這個東西了,還出書了咧...
下面是Arthur那本書的的Amozon網址
http://www.amazon.com/gp/product/0472064967/ref=si3_rdr_bb_product/102-2614839-5381743?%5Fencoding=UTF8
P.S. 因為我不知道上面轉貼的文章是哪來的,有人知道的話請告訴我,我比較希望上面只是個聯結,而不是完整的一篇文章。
美國鐵路兩條鐵軌之間的標準距離是四點八五英尺。這是一個很奇怪的 標準,究竟從何而來的?
原來這是英國的鐵路標準,因為美國的鐵路最早是由英 國人設計建造的。那麼,為什麼英國人用這個標準呢?
原來英國的鐵路是由建電車軌道的人設計的,而這個四點八五英尺正是電車所用的標 準。電車軌標準又是從哪裡來的呢?
原來最先造電車的人以前是造馬車的。而他們是用馬車 的輪寬做標準。好了,那麼,馬車為什麼要用這個一定的輪距離標準呢?
因為如果那時候的馬車用任何其他輪距的話,馬車的輪 子很快會在英國的老路上撞壞的。為什麼?
因為這些路上的轍跡的寬度為四點八五英尺。這些轍跡又是從何而來呢?
答案是古羅馬人定的,四點八五英尺正是羅馬戰車的寬 度。如果任何人用不同的輪寬在這些路上行車的話,他的輪子的壽命都不會長。我們再問:羅馬人為什麼用四點八五英尺為戰車的輪距寬度呢?
原因很簡單,這是兩匹拉戰車的馬的屁股的寬度。故事 到此應該完結了,但事實上還沒有完。
下次你在電視上看到美國太空梭立在發射臺上的雄姿 時,你留意看,在它的燃料箱的兩旁有兩個火箭推進器,這些推進器是由設在猶他州的工廠所提供的。如果可能的話,這家工廠的工程師希望把這些推進器造得再胖一些,這樣容量就會大一些,但是他們不可以,為什麼?因為這些推進器造好後,要用火車從工廠運到發射點, 路上要通過一些隧道,而這些隧道的寬度只比火車軌道的寬度寬了一點點,然而我們不要忘記火車軌道的寬度是由馬的屁股的寬度所決定的。
因此,我們可以斷言:可能今天世界上最先進的運輸系 統的設計,是兩千年前便由兩匹馬的屁股寬度決定了。這就是路徑依賴,看起來有幾許悖謬與幽默,但卻是事實。
=====================
上面是轉貼的東西,老實講我念經濟系的,卻也不知道有啥路徑依賴的理論,後來有一天終於受不了,上網找了找。
真的有這個東西耶,看來我的大學生涯真是...。
一開始想說應該可以用使用者成本就可以解釋掉這一塊。但是後來越想越不對,要是這麼簡單的話,不就沒有人去做這一塊的論析。
再上網找了找,看到Amazon一本書,作者是我熟悉的W. Brain Arthur...果然有人在討論這個東西了,還出書了咧...
下面是Arthur那本書的的Amozon網址
http://www.amazon.com/gp/product/0472064967/ref=si3_rdr_bb_product/102-2614839-5381743?%5Fencoding=UTF8
P.S. 因為我不知道上面轉貼的文章是哪來的,有人知道的話請告訴我,我比較希望上面只是個聯結,而不是完整的一篇文章。
3.29.2006
About System.Security.SecureString
SecureString的特性很迷人,在記憶體裡是加密的字串,可以Dispose掉,不會在CLR下很輕易的被反組譯。
詳細特性可以看http://msdn2.microsoft.com/en-us/library/7kt014s1.aspx,或是在MSDN裡找到。在應用上的特點你可以看MSDN Magazine裡的資料,http://msdn.microsoft.com/msdnmag/issues/06/00/SecurityBriefs/default.aspx,裡面提到的安全性加強真是令人血脈僨張。
不過,當你看到MSDN也好,MSDN Maganize也好,都沒有相關的範例,怎麼辦。好吧!向Google大神求助吧!
http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx
shawnfa的Blog算是最清晰的一個了,有教你怎麼把該加密的字串送進去,有教你怎麼把他從記憶體裡清掉。
但是那怎麼把字串弄出來送到Connection.ConnectionString呢?
這裡就是我試出來的答案,不過還是有疑慮,那ConnectionString安全嗎?在轉出到ConnectionString的期間,安全嗎?我不知道,這兩天會找找答案在哪裡。
//Insert String into SecureString in Constructor, I dont try this
SecureString password = new SecureString(char[],length);
//Append String into SecureString
foreach(char c in s) {
SecureString.AppendChar(c);
}
//GetString, Apply, And Dispose
void RunXX(){
IntPtr ptr = Marshal.SecureStringToBSTR(SecureConnectionString);(*1)
try {
SqlConnection conn = new SqlConnection();
conn.ConnectionString = Marshal.PtrToStringBSTR(ptr);(*2)
conn.Open();
... Run Query or something....
} finally {
Marshal.ZeroFreeBSTR(ptr);(*3)
}
}
以下是我的想法啦,畢竟對於Unmanage Code的使用真的不太熟,請盡量糾正錯誤,不要客氣。
*1: 這裡算是把SecureString的資料解到一個Unmanage的指標下。
*2: 把Unmanage的字串解到Connection的ConnectionString裡,就是這裡有安全性疑慮。
*3: 最後要把放在Unmanage的指標字串清掉,就沒人能反組譯到了。
詳細特性可以看http://msdn2.microsoft.com/en-us/library/7kt014s1.aspx,或是在MSDN裡找到。在應用上的特點你可以看MSDN Magazine裡的資料,http://msdn.microsoft.com/msdnmag/issues/06/00/SecurityBriefs/default.aspx,裡面提到的安全性加強真是令人血脈僨張。
不過,當你看到MSDN也好,MSDN Maganize也好,都沒有相關的範例,怎麼辦。好吧!向Google大神求助吧!
http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx
shawnfa的Blog算是最清晰的一個了,有教你怎麼把該加密的字串送進去,有教你怎麼把他從記憶體裡清掉。
但是那怎麼把字串弄出來送到Connection.ConnectionString呢?
這裡就是我試出來的答案,不過還是有疑慮,那ConnectionString安全嗎?在轉出到ConnectionString的期間,安全嗎?我不知道,這兩天會找找答案在哪裡。
//Insert String into SecureString in Constructor, I dont try this
SecureString password = new SecureString(char[],length);
//Append String into SecureString
foreach(char c in s) {
SecureString.AppendChar(c);
}
//GetString, Apply, And Dispose
void RunXX(){
IntPtr ptr = Marshal.SecureStringToBSTR(SecureConnectionString);(*1)
try {
SqlConnection conn = new SqlConnection();
conn.ConnectionString = Marshal.PtrToStringBSTR(ptr);(*2)
conn.Open();
... Run Query or something....
} finally {
Marshal.ZeroFreeBSTR(ptr);(*3)
}
}
以下是我的想法啦,畢竟對於Unmanage Code的使用真的不太熟,請盡量糾正錯誤,不要客氣。
*1: 這裡算是把SecureString的資料解到一個Unmanage的指標下。
*2: 把Unmanage的字串解到Connection的ConnectionString裡,就是這裡有安全性疑慮。
*3: 最後要把放在Unmanage的指標字串清掉,就沒人能反組譯到了。
Subscribe to:
Posts (Atom)
