這次 Firefox 7來了, 感覺的確有更快, 那之前說的快是怎樣?!
Firefox 7的更新, 似乎又更短的更新週期了, 好快又跳下一個版本, 真是驚人的速度啊, 不過這次升級上來, 好多 extension 又不能用了, 還好 Firebug 有 1.8.3 支援, 沒有問題, 但還有蠻多不能用的, 希望能快點跟上來才好.
話說回來, 這次的更新, 明顯有感覺變快不少, 希望能愈做愈好用, 加油.

這次 Firefox 7來了, 感覺的確有更快, 那之前說的快是怎樣?!
Firefox 7的更新, 似乎又更短的更新週期了, 好快又跳下一個版本, 真是驚人的速度啊, 不過這次升級上來, 好多 extension 又不能用了, 還好 Firebug 有 1.8.3 支援, 沒有問題, 但還有蠻多不能用的, 希望能快點跟上來才好.
話說回來, 這次的更新, 明顯有感覺變快不少, 希望能愈做愈好用, 加油.

在解析 xml 資料時, 若只是取出一些固定欄位資料, 除了用 regular expression 或是指令字串比對方式外, 利用 XPath 來操作算是比較正規的作法.
有效利用 XPath 可以快速地選擇到需要查詢出來的資料, 而且更正確更有效地取出資料. 例如想要取出下面資料(bb.xml):
<root>
<app>
<name>test1</name>
<tick>20</tick>
<pt>12</pt>
</app>
<app>
<tick>test2</tick>
<value>32</value>
<pt>15</pt>
</app>
</root>
若要取出的是 app name=test1 的資料, 並讀出 value 的方式, 可以如下操作(以asp/vbs為例):
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "GET", "http://localhost/bb.xml", False
xmlhttp.Send
Set root = xmlhttp.responseXML
Set app = root.selectSingleNode("//app[name=""test1""]")
Set tick = app.selectSingleNode("//tick")
Response.Write tick.text
也就是利用 XPath 的 //app[name=”test1″] 來取出 app node 內容有 name 值是 test1 的 node 出來, 之後再利用 //tick 將該 node 下的 tick node 取出, 再用 text 讀出該值為 20.
若只需要取出 value 的值, 而不是要將 app node select 出來使用, 可以一行搞定, 如下:
Response.Write root.selectSingleNode("//app[name=""test1""]//tick").text
這樣操作很快也很有效, 而且可以找對各節點的關連關係. 在操作 xml 時, 得要好好學習的一個工具.
參考資料:
http://www.w3schools.com/xpath/xpath_syntax.asp
http://zvon.org/xxl/XPathTutorial/General/examples.html
http://msdn.microsoft.com/en-us/library/d271ytdx.aspx
[2011/9/16 17:23]
補充若有 xmlns (xml namespace) 的狀況下, 取不出 node(s) 的問題:
http://www.dotblogs.com.tw/rainmaker/archive/2011/09/16/36457.aspx
快快升級到 Firefox 6 後, 發現檢視原始碼功能不見了, 原本在 “檢視” 選單下的 “頁面原始碼” 消失了, 先來看看在 Firefox 5 的檢視功能表內還在的 “頁面原始碼”:
但在 Firefox 6 下, 這個功能不見了:
雖然有快速鍵 Ctrl+U 可以快速叫出來, 不過還是得來找看看到底跑到哪裡去了, 原來是放到”工具” 下的 “網頁開發者” 下的 “頁面原始碼”, 如下圖:

真是的, 藏在這麼裡面, 真是不太方便啊, 看來之後得用快速鍵 Ctrl+U 來叫出可能會快一些了, 不然藏得如此深的地方, 光要去點到, 都要花一點時間.
不過也可能是讓不是做網頁開發的人少點麻煩, 從檢視中移出來吧.
相關閱讀:
http://por.tw/Website_Design/index.php?load=read&id=67
現在 Firefox 拼了命的升級, 奇怪耶, 又沒有多大的功能改善, 主版本號一直往上跳, 這不是個好現象吧. 雖然說這是一個持續在前進的軟體專案, 不過這樣跳躍式的版本號大躍進, 似乎是想證明我們很積極地在改善及進步.
今天的 Firefox 5 提出了要升級到 Firefox 6 的升級通知, 於是就順手升級上來, 不過又是有一些 plugin 不能用了, 看看有沒有它宣稱的速度變快.

最近因為有台主機的 mysql cpu 異常變高許多, 所以要來進行查詢問題所在.
因為 mysql 沒有像 mssql 的 sql profiler 那麼方便的工具, 所以利用 mysql 本身的 log 來進行, 也就是 slow query log 這個功能, 步驟如下:
1. 先將 /etc/my.cnf 中的 [mysqld] 內多加入下面資料:
log-slow-queries = /var/log/slow-query.log #slow query記錄檔的位置
long_query_time = 2 #query執行超過2秒時才記錄
2. 重啟 mysql 服務, 指令如下:
/usr/local/etc/rc.d/mysql-server restart
3. 執行一陣子後, 就可以看看該 log 檔內的 query , 接下來就是針對這些 query 來調整效能
以上是在 FreeBSD 環境下的作法. (其他環境其實也類似)
其實執行時間長不一定是效率不好, 不過若是常常發生的查詢是需要長時間的, 就有改善的必要, 簡單地說, 就是若一個查詢需要 5秒, 但一天跑不到 10次, 那根本不用管他, 不過若一個查詢需要 0.02 秒, 但一天要用到數萬次, 即使從 0.02 改善到 0.015 就會有很明顯的效能改善, 所以要看發生的頻率及所花費執行的時間, 平衡來看.
另外, 若是該 log 沒有產出, 記得權限要給對, 因為是 mysql service account 去執行寫入的動作, 就算沒有任何 log 也會有 mysql 啟動的資訊, 不會沒有任何產出的 log.
參考資料:
http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
http://blog.lansea-chu.com/index.php/archives/238
http://homeserver.com.tw/mysql/mysql%E7%9A%84%E6%9F%A5%E8%A9%A2%E6%99%82%E9%96%93log-slow-queries/
http://ezkuan.blogspot.com/2010/05/freebsd-mysql.html
這個是個蠻好玩的應用, 由於全台的街景服務已經有蠻大的覆蓋率了, 所以用這樣的方式來模擬導航駕駛, 相信會讓不熟地址路況的人更容易上路.
這個算是整合 google maps api 出來的一個應用, 網址在:
http://gmaps-samples.googlecode.com/svn/trunk/streetview/streetview_directions.html
進來之後, 其實也就是簡單地輸入出發地地址, 目的地地址就可以按下 route 產生導航, 並利用 drive 按鈕來模擬駕駛的街景.
例如輸入台北市政府到總統府地址, 台北市市府路1號, 台北市重慶南路一段122號, 按下 route 後, 產生如下畫面:

接下來可以點 driver 或是右下的導航點, 都可以更新上方的街景到所在位置, 也可以直接操作上方的街景, 來進行前後移動(如原來的 street view一樣的操作方式), 這樣就可以模擬了.
嫌開的速度太慢? 可以調整一下 speed 到 fast 會快一點, 不過這個導航是個安全駕駛, 所以即使是 fast 也還是很慢!
這篇文章要介紹的是一個 PhET 線上教學網站.
以往我們在學習物理, 化學, 地球科學等科學時, 看文字教材遠不如看影片或是互動活教材, 這個網站提供了線上(也有離線版本), 分門別類整理好的互動式活教材, 而且還有繁體中文. 先來看看首頁:
http://phet.colorado.edu/zh_TW/
開始用就直接按下”開始玩教學”, 若是要下載離線版本可以點右下方的”完整執行”後, 即可下載教學離線版本. 由於所有的教材都是使用 flash 及 java 在瀏覽器環境下使用, 所以可以很方便地在各種作業系統及瀏覽器上使用, 方便又好用.
點入開始玩教學後, 左邊看到的是完整的分類, 右邊則是目前分類項目的內容(預設在最新):
而且還有區分年級的方式整理, 讓小朋友也能找到適合的教材, 點下”依年級區分教學主題:
有區分為國小, 國中, 高中, 大學幾個分類, 來點個國小的看看吧, 選了裡面的”繩波”:
繩波的連結: http://phet.colorado.edu/sims/wave-on-a-string/wave-on-a-string_zh_TW.html
用互動的方式來呈現的教學, 相信最容易也記憶最深, 大家可以好好利用, 趁暑假, 可以讓自己或小朋友多學一些科學觀念.
是的, Firefox 5 來了, 記得沒多久前才 Firefox 4, 而且也就才 4.0.1 而已, Firefox 5 已經於之前更新的 Firefox 4.0.1 上提出新的版本更新提示, 於是又再更新到 Firefox 5, 目前的版本是 5.0
不知道為什麼更新的這麼快, 而且這次更新的主要功能似乎不多, 或許是希望能藉由更新版本數字來活絡一下這個社群持續的求新求快求變的特質吧.
但是這次更新, 有一些 plugin (或稱 extension) 又不能用了, 像是 google 的 toolbar 就是個列子, 不過這些小問題應該很快會獲得解決.
隨著瀏覽器版本的更新, developer 們與 designer 也就必須快速地來適應這個相容性的考驗, 不過也正因為如此, 也讓標準能更標準, 大家能依循著標準來開發及設計, 這樣也是件好事!
你應該開始在網路上說謊嗎?
原文在這裡: http://pccillin.pixnet.net/blog/post/31750516
其實應該換個方式說更容易理解一點, 你是否在網路上洩露太多隱私呢?
如同文章內容提到的, 你不太會和朋友提到自己的薪水, 但為什麼要在網路的資料上揭露呢? 其實這件事的本質回歸到一件事, 隱私的重要.
有時候, 或許會覺得這些資料不是太敏感或太重要, 或是少部分少部分的沒什麼影響, 但是有心人士(像是詐騙集團, 或是賣個人資料的公司), 因為有供給有需求的狀況下, 是很值得去挖出來賣的, 所以很可能拼拼湊湊得出來一定的資料.
說到這裡, 在原文內容也提到, 像是寵物名字叫多吉, 這些資料在網路上看得到, 但若落入有心人士眼裡, 是可以藉由這樣的方式來把帳號密碼重設而取得, 無論是要獲取個資, 或是取得該用戶的內容(文中提及的是裸照), 對用戶來說, 都是很大的損失.
適度的保護自己, 把不必要的個人資料保留不填, 在網路上也要謹言慎行, 這些事不是都在實體社會上一樣的嗎? 別把網路想得好像是另一個世界, 更可怕的是網路的資料是存放及保持時間更久呢.
也請參考之前的舊文章: https://diary.tw/archives/724
這篇是在 zdnet 看到的:
http://www.zdnet.com.tw/news/software/0,2000085678,20149826,00.htm
利用 javascript 模擬 pc 執行 linux , 因為 javascript 的處理能力已經相對強大了, 可以跑模擬 pc 後執行 linux, 網址在這裡:
這樣看起來, 一般 develper 使用的 javascript 還真是用不了他的功能的 1/10 吧, 看來, 愈來愈強大的 javascript engine 可以做更多更多的事了!