分類
Javascript

Javascript已強大到可以執行linux

這篇是在 zdnet 看到的:

http://www.zdnet.com.tw/news/software/0,2000085678,20149826,00.htm

利用 javascript 模擬 pc 執行 linux , 因為 javascript 的處理能力已經相對強大了, 可以跑模擬 pc 後執行 linux, 網址在這裡:

http://bellard.org/jslinux/

這樣看起來, 一般 develper 使用的 javascript 還真是用不了他的功能的 1/10 吧, 看來, 愈來愈強大的 javascript engine 可以做更多更多的事了!

分類
.net

C# Operator ??

今天看到這個 operator ?? , 雖然可以了解前後文他的功能, 不過還真是第一次看到.

於是查了一下, 在 msdn 上的說明:

http://msdn.microsoft.com/en-us/library/ms173224.aspx

這個運算子的應用情境如下:

string mytest = "";
if(Request.QueryString["test"]==null){
  mytest = "";
}else{
  mytest = Request.QueryString["test"];
}

若在取得變數時, 會有 null 的狀況, 又要給定預設值時, 可以利用上面程式碼, 不過是不是又臭又長呢? 可以利用這個運算子 ?? 來簡化, 如下:

string mytest = Request.QueryString["test"] ?? "";

當然, 和三元運算子的寫法同義, 只是上面的 ?? 更精簡一些:

string mytest = Request.QueryString["test"] == null ? "" :  Request.QueryString["test"];

相關閱讀:
http://demo.tc/Post/414

分類
Database

MySQL的Log

在 MySQL 運行時, 若想要了解執行時期, 對資料庫下達指令的狀況, 可以利用 my.ini 中的參數來達成, 在 [mysqld] 中多加一行 log=路徑/檔名, 再重起服務即可.

這個目的對於在追蹤應用程式執行指令很有幫助, 不過若是繁忙系統下, 很可能會有大量的資料, 而難以閱讀, 建議使用在開發環境, 再執行對應的 application 記錄下來的 log 就會單純許多, 以方便追蹤.

在 MSSQL 中可以利用 SQL Profiler 來達成, 不過 MySQL 無法過濾那麼多資訊, 只能整個記錄下來. 記得這些操作對於系統效能都會有一定的衝擊, 開起來之後, 記得要關掉, 否則將會影響效能.

另外還有一個好用的參數, 就是一樣在 [mysqld] 中, 加一行 log_slow_queries=路徑/檔名, 這個將會讓系統記錄執行時間較長的 query, 也方便做效能調校及追蹤使用, 預設是執行時間超過 10秒的會被記錄下來, 參數是 long_query_time 可以參考:

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_long_query_time

這兩種方式分別做完整記錄及長時查詢記錄, 對於想要了解資料庫執行時期的問題及效能調校, 都可以提供不少幫忙.

相關閱讀:
http://blog.wabow.com/archives/54

分類
Javascript

表單上傳檔案取得檔名問題

在前端網頁上, 若要上傳檔案, 是利用一個 <input type=file>的標籤來進行的, 這個 UI 看起來的長像在不同瀏覽器會有不同的結果, 也因為這樣, WEB DESIGNER 常常需要做一些設計來美化及一致化這個長相.

這篇文章不是在討論這個上傳檔案的長相, 而是要探討在前端程式碼取出上傳檔案的名稱, 這個也在不同的瀏覽器有不同的結果, 尤其新的瀏覽器又增加了一些特異功能. (如隱藏路徑)

這樣一來, 若是要對上傳檔案名稱欄位取出做一些判斷的話, 可要注意這些狀況的差異, 這裡寫了個小程式, 取出 <input type=file>的值, 在不同瀏覽器下可以測出不同的結果, 連結在這裡:

http://sample.diary.tw/25

我們以上傳 C:\test\1.txt 為例, 在不同瀏覽器下的結果如下:

IE9:
Firefox 4.01
Google Chrome 5:
Safari 5:
從上面畫面的結果來看, 發現 IE9 及 Google Chrome 會有含路徑的檔名, 但會隱藏路徑, 而 Firefox 4.01及 Safari 5則只會出現檔名而已, 不會有路徑, 而 IE6, IE7, IE8 的狀況則是 IE8 會像 IE9 一樣, 但 IE7, IE6 則是真實的檔案路徑, 如下:

IE6:
IE7:
IE8:
這樣就清楚啦!

分類
好用軟體

Firefox更新到4.01

今天工作的電腦上的 Firefox 3.6.17 提出要更新到 4.01 的版本, 於是就更新下去了, 原本是打算 3.6 和 4.0 並存, 先不更新, 再另外裝一個 4.0, 不過既然 Firefox 已將 4.0 放到 3.6.17 版本的更新之後, 所以就乾脆升級了.

還好常用的 Addons 都相容或有更新相容於 4.0 的版本, 包含一個 theme 是 classic compact 也都相容 (classic compact 資訊可以參考: https://diary.tw/archives/698), 這樣更新下來還蠻愉快的.

之所以更新, 是因為在更新宣傳上的比 3.6 版本速度快 6倍, 如下圖:

不用錢這件事應該大家都同意, 不過快 6倍的速度更讓人興奮啊, 因為現在的網頁對於瀏覽器的需求愈來愈高, 都是一堆 css 和 javascript 及 jQuery, 瀏覽器更需要的是速度. 不過對於全新外觀我可是敬謝不敏, 因為也都是抄 google chrome 的, 而且把分頁放在上頭還真是不習慣, 不過都可以調整回原來的長相, 所以就沒問題了!

接下來就要好好體驗他的快 6倍的效能, 來試試看囉!