2009年6月19日 星期五

VB.Net 還是 C#

今天某位總是在公司留到最後負責關燈的一位MVP抛出一個問題:
 
「你選擇的開發語言是 VB.Net 還是 C#」
 
這問題以前肯定會引起兩派的筆戰,不過可能是我們的品德教育做得很好(咦?),所以看起來大家都很理性的在討論,哈。
 
坦白說,我是VB的基本教義派,尤其是當Microsoft的應用程式進化到 .Net 的那一年,根本就是直接把 Basic 扶正,讓 Basic 不再只是拿來「教學用」。
 
VB.Net 和 C# 在 Micrsoft 內部是兩個 Team 在開發各自的語言,只能說 VB.Net Team 真的非常用心在造福 Programmer,很多便利的功能,像是 My、直接幫你匯入 Root 的 Namespace ... 等等(光一個 intelliSense,VB.Net的撰寫速度和避免敲錯的機率就比C#好上太多了),我都超愛,只能說我不是很認同 C# 那種把事情搞得很複雜,再解釋這個叫做嚴謹的說法。

2009年6月18日 星期四

使用 EFS 的兩三事

因為近來比較頻繁將筆電、隨身碟什麼的帶在身邊,就很怕如果這些3C設備不小心遺失的話,有些機密檔案會外流出去,所以昨天開始試用Windows內建的EFS(Encrypting File System, 加密檔案系統)。
 
基本上,EFS的使用算是很方便,只要在「資料夾(或檔案)/內容/進階」勾選「加密內容,保護資料」即可,按確定之後,如果是對整個資料夾做加密,系統會再詢問是不是要套用到該資料夾底下所有的子資料夾和檔案,大概就是這樣,使用上沒什麼難度。
 
不過檔案加密後千萬記得第一時間要去備份憑證但是不要自以為聰明的想說憑證很重要、要設定安全性,所以把備份的憑證檔案存到加密的資料夾,這種情況就跟你出門的時候把鑰匙留在房間,再把房門鎖上一樣慘,更慘的是房門鎖上還可以找鎖匠,檔案鎖上了,只要沒憑證,誰都解不回來呀 ......。
 
我自己目前備份憑證的方式,會將憑證檔案用7-zip壓縮,並設定解壓縮密碼,然後丟到Gmail上,提供給大家參考一下。

2009年6月15日 星期一

設計師的悲哀

昨晚在Plurk上看到朋友在推這則影片,看完之後不覺潸然淚下,喵的,我想不只是美術、廣告類的設計人員,包括系統設計人員看了都很有感覺,大家其實都是這樣被惡搞過來的呀。
 

2009年6月12日 星期五

全球瀏覽器市佔率變化 (一)

從去年開始,全球的瀏覽器市場的變化實在是很微妙,FireFox因挾其大量優秀的擴充元件,不斷地在蠶食IE的市場,另一方面Google的Chrome在改版提昇穩定性之後,市佔率也略有提昇。
 
說實話,IE8雖然提出許多看起來創新的功能,但是坦白說沒什麼新意,很多功能都是其它瀏覽器早就有,只是不會特別放大來看,或是擴充元件社群三、五天後就推出相同的套件的功能,如果擴充元件只要三、五天就能推出相同的功能,那真的不知道微軟有什麼好拿來說嘴的。
 
StatCounterGlobal

Source: StatCounter Global Stats - Browser Market Share

Sprite Create

今天看到以前同事的MSN上掛了一串網址,點進去之後發現是一個CSS的產生網站,上傳一張圖片後,可以自由劃定一個指定的可視範圍,它就會自動幫你產生對應的CSS code。
 
很多網頁設計師的朋友都很愛指定可視範圍這個作法,因為可以把眾多小圖全部放在同一個圖檔,之後再用可視範圍位移的方式,來決定讓顯示哪一張小圖,不管是管理還是設計都非常的方便。
 

2009年6月9日 星期二

Javascript 被吃掉了??

2009-06-10_133016 早上建立一個測試頁面想測一些 UI 功能,手工把 HTML 完成之後(如左圖),執行時卻發現 Javascript 沒有正常執行。
 
 
祭出 Http Watch 追蹤後發現,明明匯入了兩個 .js 檔,但是瀏覽器卻只下載下來一個(如下圖),而且之後的 Javascirpt 彷彿通通被吃掉了一樣,完全不見作用,因為匯進來的 .js 是 jQuery 的說明檔,將它跟主程式調換順序後,這次反而變成說明檔被吃掉。
2009-06-10_133424
 
怪了,先前用 jQuery 也沒遇過這個問題啊,Google 了一下,發現這似乎是 HTML 的 bug。
 
問題的起因是因為我在手工 coding 的時候,習慣直接用 <tag /> 來描述一個 tag,而不是用 <tag></tag> 這樣的方式,因為這樣,造成瀏覽器不明原因會直接忽略下載第一個 <script /> 之後的 javascript 文件(包含你寫在頁面上的)。
 
真相大白之後,將 <script /> 改成 <script></script> 問題就解決了,至於為什麼會產生這種問題,還有待後續了解。