剛剛 MIS 大大寄來一封停機公告,重點在那張圖:
各位辛苦的系統開發大大們,
這件事情已經拖了一個多月了,實在不一在拖下去了…
知道各位都相當的忙碌,不過一個多月的時間應該也足夠才對。
剛剛看過黃曆,7/18 是個好日子,我們會設定在 7/18 子時系統自動關機,之後就不再提供服務了!
如果各位還有資料沒有轉到新的測試主機 xx.xxx.xx.xxx 的,請利用這兩週趕快轉移。
感謝您的配合!!
剛剛 MIS 大大寄來一封停機公告,重點在那張圖:
各位辛苦的系統開發大大們,
這件事情已經拖了一個多月了,實在不一在拖下去了…
知道各位都相當的忙碌,不過一個多月的時間應該也足夠才對。
剛剛看過黃曆,7/18 是個好日子,我們會設定在 7/18 子時系統自動關機,之後就不再提供服務了!
如果各位還有資料沒有轉到新的測試主機 xx.xxx.xx.xxx 的,請利用這兩週趕快轉移。
感謝您的配合!!
Open Firefox Library in a Tab
不曉得有沒有人曾想過,把 Firefox 內的收藏庫 (Library, 管理書籤跟歷史的使用界面),開啟於分頁標籤中,而不是獨立視窗中。
如果你也曾想這麼做,那就這麼做吧 -- 在網址列中輸入以下 URL:
chrome://browser/content/places/places.xul
噹噹…
現在收藏庫便開啟於分頁標籤之中了:
TIOBE Programming Community Index 是一個用來評量程式語言受歡迎程度的指標,其排名方式,在頁面上說明如下:
The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, Wikipedia and YouTube are used to calculate the ratings.
我大概每個月初都會略微的瞄一下,了解一下目前各主要程式語言的排名狀況。昨天在檢視的時候,發現了 Sun 推了一陣子的 JavaFX 語言,並沒有在排名裡面。可能原因是 JavaFX 並沒有在百大排名裡面,或者是 TIOBE 並沒注意到這個程式語言。而我發現網頁上有這一行字:
If you have the impression there is a programming language lacking, please notify us at tpci@tiobe.com.
也就是說,如果你發現 TIOBE 可能漏掉某個程式語言的排名,可以寫信告訴他們。因此,我想先確定一下,JavaFX 目前是否有資格擠進百大。我用了一個「比較法」來確認,也就是,如果某語言在 Top 100 或 Top 50,而 JavaFX 的熱門程式與該語言相當,那麼 JavaFX 也該在 Top 100 或 Top 50 左右。
這個用來做比較的語言,最好不要有一字多義的傾向。例如,Ruby、Python、Groovy、Alice 等就都不適合,因為他們不是一字多義,就是菜市場名字。後來我決定以 Erlang 來做比較,比較結果如下:
javafx vs. erlang: 近 12 個月的趨勢。
就查詢量來看,javafx 有超越 erlang 的趨勢。有了這個發現,我便動筆寫了信給 TIOBE 的成員,而沒想到昨天才寄的信,今早就收到回信。而 TIOBE 也把 JavaFX 納入排名,目前排名第 72。另一個值得小小高興一下的是,TIOBE 的回信者 Paul 在信中說道,為了感謝我的建議,他會在最近一期的排名中公提到我的名字。看看 6 月份的排名,哇,真的有提到我耶 ^_^!
irb(main):025:0> a= "abc def"
=> "abc def"
irb(main):026:0> a["def"] = "abc"
=> "abc"
irb(main):027:0> a
=> "abc abc"
irb(main):028:0> a["abc"] = "xyz"
=> "xyz"
irb(main):029:0> a
=> "xyz abc"
irb(main):030:0> a["abc"]
=> "abc"
irb(main):031:0> a["def"]
=> nil
irb(main):032:0>
date = "2009/12/12"
month, day, year = date.split('/')
Technorati : programming, ruby
?? 運算子是在 2.0 版後新增的,至今我在別人的程式中還很少看到有在使用。
它的使用方式如下:
a = b ?? c;
上式的意思是,如果 b != null,那就把 b 的值指定給 a,否則就把 c 的值指定給 a。
照理講,?? 的功能完全可以由 ?: 運算子替代,如上式可以改寫如下:
a = b != null ? b : c;
不過,?? 對於簡化程式碼很有幫助,我相信許多 one liner 會很喜歡它,例如:
if (Session["WEB_TYPE"] == null)
{
Session.Add("WEB_TYPE", "");
}
可以改寫為:
Session["WEB_TYPE"] = Session["WEB_TYPE"] as string ?? "";
?? 的另一個特點是使用上可以串連,例如:
string a = null;
string b = null;
string c = "c";
string d = a ?? b ?? c;
這樣的意思,也就是由左到右,找到第一個非 null 值的變數,指定給 d。
於是,如果有一段程式如下 (抓取系統中的舊程式碼舉個例子):
if (Session["WEB_TYPE"] == null)
{
Session.Add("WEB_TYPE", "");
}
//接收 Web_type
if (!IsPostBack)
{
if (Request.QueryString["WEB_TYPE"] != null)
{
webtype = Request.QueryString["WEB_TYPE"].ToString();
Session["WEB_TYPE"] = webtype;
}
}
可以用 ?? 運算子改寫成以下版本:
Session["WEB_TYPE"] = Session["WEB_TYPE"] as string ?? Request.QueryString["WEB_TYPE"] ?? "";
這樣程式就精簡許多,也更好理解與維護了。
一個皮膚黝黑的男子,兩眼無神的呆坐在餐飲區的一角。
一個體格壯碩的男子帶著一個清瘦的女生走了進來,坐在黝
黑男子的身旁,對他交待了幾句,拍拍了那女生的肩,便走
開了。
那男的哭喪著臉,哀求的詢問著那女生,那女生正顏厲色的
反過來詰問那個男的… 那男的無言以對,熱淚涔涔而下,
這種狀況來回幾次,那男的奪門而出。
那個壯碩的男子回來,再度拍拍那女生的肩,安慰她幾句,
再度離去把那女生留在現場。
最後,另一個面容白晰的男生走了進來,拉著那女生的手,
摟了摟那女生的肩,聊了幾句。那女生嘆了口氣,如釋重負
般的站了起來,那男生也跟著站了起來,兩個人牽著手,漫
步離開現場。
Foxmarks/Xmarks 這類線上書籤同步工具的出現,讓我們在不同的電腦與瀏覽器之間同步書籤。我習慣叫這種應用叫 "書籤帶著走"。但是,不曉得有沒有人和我一樣,想把瀏覽器上的其他設定也帶著走呢?
對我來講,除了書籤之外,"搜尋引擎設定" 也是我想帶著走的。這裡的搜尋引擎,提的是「搜尋工具列」或是「Smart Search」裡面的搜尋引擎。
「搜尋工具列」大家比較清楚,就是網址列旁的搜尋框。而 Smart Search 知道的人或愛用的人可能比較少,有人叫它「智能搜尋」,或叫 Quick Searches,這裡有篇文章介紹;基本上是讓你把書籤當成搜尋引擎使用的一種方式。
過去我一直覺得奇怪,Firefox 為何要有兩套不同的搜尋機制,也不了解這兩者間如何選擇。後來因為有了 ConQuery 及 Context Search 這類套件,讓我可以在右鍵選單上直接使用搜尋功能,這種方便性讓我一直以「搜尋工具列」裡的搜尋引擎作為我的主要搜尋工具。
但是,搜尋工具列裡的搜尋引擎在使用上卻有一個缺點,那就是,他們無法像書籤一樣,可以帶者走… 因此,在 Firefox 2.x 版的年代,我便透過一套叫 FireUploader 的工具,手動將搜尋引擎設定上傳到某個網站,然後再於別台電腦將它們下載回來,但這終究不是長久之計啊!
後來找到一個就叫做 SmartSearch 的套件,這個套件做的事與 ConQuery 或 Context Search 類似,就是讓你可以在右鍵選單上,選擇你要使用的搜尋引擎進行查詢,但不同的地方在於,它的搜尋引擎選單是來自「智能搜尋」的 Quick Searches Bookmarks,這代表著,你的搜尋引擎清單就是書籤連結,是可以「帶著走」的--只要你同時安裝 SmartSearch 及 Foxmarks/Xmarks 即可。
相關連結: