Feeds:
文章
留言

Archive for 六月 13th, 2006

一個簡單的範例,建立一個具名的 Mutex,讓需要協調同步的程式使用同一個名稱,如果要避免與其他 Process 使用相同的名稱,也許可以使用 GUID 作唯一的識別碼。接著再需要協調同步的地方使用 Mutext.WaitOne(),等候其他 Process 釋放資源,範例是採用無限制的等候直到其他 Process 釋放使用權為止。如果你需要設定一段等候時間, 可以使用其他版本的 WaitOne()。當資源使用完畢必須使用 Mutex.ReleaseMutex(),其他 Process 的 WaitOne() 才會甦醒。
下面範例的作流程是執行兩個或多個程式,其中一個 Process 先點選 Button2,然後其他 Process 再點選 Button2,你會發先除了第一個 Process 還可以正常運作之外,其他 Process 程式會"當"在哪裡,不會接收任何 UI 事件,等到將第一個 Process 的 Button4 按下後,其他 Process 中的一個會甦醒並取得檔案控制權。因此不同 Process 之間可以透過 Mutex 協調共用資源的使用。
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Threading;
namespace WindowsApplication3 {
    public partial class Form1 : Form {       
        private Mutex m = null;       
        private StreamWriter sw = null;
        public Form1() {
            InitializeComponent();
            m = new Mutex(false, "APPMUTEX"); 
        }
        private void button2_Click(object sender, EventArgs e) {
            m.WaitOne( );                       
            sw = new StreamWriter("c:/append.txt", true);
            sw.WriteLine("******");
            MessageBox.Show("GET"); 
        }
        private void button4_Click(object sender, EventArgs e) {
            sw.Close();
            m.ReleaseMutex();
        }
    }
}
 

Read Full Post »

很棒的 RssToolkit

透過 RssToolKit 可以很簡單的撰寫 RSS Reader,只要輕輕鬆鬆的一行
GenericRssChannel rssSource = GenericRssChannel.LoadChannel("http://spaces.msn.com/chuiwenchiu/feed.rss");
就可以將 RSS 資料 Parse 完成,然後透過 GenericRssElement[] elem = rssSource.Items.ToArray();  
就可以將資料轉換成 GenericRssElement 陣列,讓開發者容易處理資料。下面的程式片斷可以將 RSS 上的 Title 傾印出來
            GenericRssChannel rssSource = GenericRssChannel.LoadChannel("http://spaces.msn.com/chuiwenchiu/feed.rss");
            GenericRssElement[] elems = rssSource.Items.ToArray();
            string v;
            foreach (GenericRssElement elem in elems) {
                elem.Attributes.TryGetValue("title", out v);
                Debug.WriteLine(v);
            }
 
 

Read Full Post »

原文出處:http://epaper.pchome.com.tw/adm/brief_left.htm?s_code=0263

 


 
◎神秘的網際網路企業

我們曾在各式媒體看見對Google這間股價接近美金四百元的網際網路企業報導。辦公室裡隨手可得的食物,輕鬆活潑充滿創意的企業文化,聚集一流人才但扁平而充滿效率的組織等,簡直是終極的工作環境。

科技業人人艷羨要進入這公司,想必應徵者履歷表一定如狂風暴雪般飛來。然而對於到底要怎麼樣才能進入這間公司工作,之前一直是個謎,因為頂多只能到Google的徵才網站上寄寄履歷表而已。

徵才網站( http://www.google.com/jobs/international.html )也很怪,你僅能對任何工作機會寄履歷到 jobs@google.com 這個唯一地址,無需在網站上依欄位填寫,與一般企業徵才網站設計大不相同。

以美國微軟為例,你得先註冊帳號後開始依欄位填寫履歷。人事負責人整理和搜尋很方便,應徵紀錄也好管理。我只能想像Google或許在 jobs@google.com 背後有個可怕的系統,能處理上噸的求職履歷。

◎他不是秦王,我卻是荊軻

然而履歷寄出後Google並不保證回信。石沉大海的焦慮想必每個求職者都深有感受。或許跨國公司總是慢一點,或是投履歷到Google的人太多,或是那個想像中的系統不夠Powerful。總之,它就是沒有回音。

2006年四月底,Google中國區總裁李開復先生的新書「做最好的自己」(Be Your Personal Best )正體中文版在台灣上市。出版社安排他回台灣與網路界知名人士詹宏志先生及馬英九市長進行對談。

機會來了,我告訴自己。先前曾想過透過認識的朋友去跟李先生聯繫,網路產業待這麼久,這種關係只要去找並不難。然而此種「內線交易」卻可能欠下巨額人情債。這次演講,變成唯一能接近他的機會。

我興奮的在網路上報了名,參加這場週六的演講暨座談會。將履歷寫成了英文與簡體中文,附上個人作品後裝入紙袋密封。心情有點像戰國時期的荊軻,等著要成大事的那一天來臨,當場把這包交出去。

◎命運絕不可掌握在別人手裡

演講暨座談會開始前,現場報到的人已經擠得水瀉不通。這也難怪,如此重量級的對談,自然有廣大的慕名者。我在一旁焦慮的想著,這樣下去我該怎麼見到李先生呢?我連他現在在哪裡都不知道。

而且遞送履歷的場合絕對不可以像古代草民攔轎喊冤一樣,會給對方太過突兀的感覺(例如他正在與媒體或者身旁的貴賓交談時冒然切入),反而是大大的不禮貌,也給人負面印象。

透過現場的服務人員轉交應該可以吧?他們絕對知道李先生在哪裡。於是我抓到一個看起來較高階的工作人員,請他將我手上的文件轉交給李先生。工作人員狐疑的問裡頭是什麼?我只好尷尬的老實回答。

回到聽眾座位上稍微安心。然而進場的人越來越多,我越想越不對。那個人會不會一忙就忘了拿給李先生?遞交後李先生會不會隨手就擱著沒看?我從座位上跳起來,衝到門口去把履歷奪了回來。

我的命運絕不可以掌握在別人手裡,我必須親手遞交這個東西!

◎我不想等Google來找我,所以我自己來了

此時剛好廣播的聲音響起,大體上是說等等演講會後有李先生的新書簽名會。簽名會?我靈機一動,趕忙去買了一本李先生的新書「做最好的自己」。拿書給他簽名,這種接近真是再自然不過了!

演講開始了。李先生以風趣幽默的方式談了何謂成功以及如何才能成功等較為嚴肅的問題。其中有一段小故事,提到他當時離開微軟前,其實是主動去跟Google接洽表達求職意願的。

記者問,像他這麼有名的人理當在家裡等著別人來挖角,自己跑去求職會不會很丟臉?他回答,認為值得爭取的就該主動去爭取。事實上如果不是他主動表明,Google還以為他並沒有離開微軟的打算哩。

他說:「我不想等Google來找我,所以我自己來了。」這,這句話真的說得太好了,這不正是在說我的情況嗎?在台下的我暗自決定等一下也要這麼跟他說。

◎圖窮匕現!

演講與對談結束,新書簽名會馬上開始。只見要求簽名的人已經排成一個長龍,繞到演講廳外頭去了。我在隊伍中忐忑不安看著講台上埋頭苦簽的李先生,由於人數眾多已經變成簽名機器,頭也不抬的猛簽。

我刻意排在隊伍的較後面。理由是輪到我之後可能再簽幾個人李先生就可以休息離開,對我的記憶會比較深刻,也可以減少他忘記閱讀甚至忘記帶走我履歷的機會。我不斷從隊伍中離開去排最後一個位置。

輪到我了。如同每個簽名者,我打開書本的簽名頁放在他面前。正當他反射性的要簽下去時,我把履歷放在書本上,大聲的說:「李先生,我不想等Google來找我,所以我自己來了!」

他好像有點回過神來的感覺,抬頭看看這個人是誰。我說:「這是我的履歷,請多多指教!」他說了聲好,順手把我的履歷擱在旁邊並在我書上簽名。旁邊工作人員有些尷尬,後頭還有人呢,我趕忙下臺。

李先生在我背後喊著:你還是要上網登記履歷喔!googl.com/jobs

◎Google,再見!

總之,我還是乖乖的依照李先生所言再次上網登錄履歷。不知道是不是這次的行動起了些許作用,一個月後我終於收到來自Google美國總部的回信,標題是Thank you 。

內容就不必多說了,大意是Google發現他們目前沒有合適我工作經歷的工作職位,感謝我並希望我以後仍然會考慮在Google工作云云。算是替這次的「行刺」劃下句點。

事後回想起這段經歷,或許對李先生造成小困擾,但是對我而言卻是有趣的心境和過程。在台下謀畫著要如何才能在恰當的時機接近名人,並發動奇襲般的一擊。那種緊張感一度讓我遞出履歷的手有些發抖。

朋友說我在科技界也算是小名人,這樣做會不會太自貶身價(怎麼跟李先生同一個問題!),我倒認為如果自以為有了點小成就,就開始有身價跟身段問題,那才是要不得的事。

一直到最近我才發現,Google所有的應徵程序都在美國總部控管,十分嚴格,並非李先生可以插上手。完全排除人治的因素,如此兼融了制度化與創意的企業,讓我再次感受到Google的成功不是沒有道理。

只是,唉,要進這間公司真是困難啊!什麼?你說你想看看Google的拒絕回信內容長什麼樣子?來來來我告訴你,google.com/jobs,你自己上網投投履歷,運氣好的話就能看到了。(撰文:黃彥達

Read Full Post »


 
微軟表示,.Net Framework一直以來都是WinFX的核心,但WinFX的品牌名稱卻未能傳遞此訊息,.Net Framework 3.0才能正確表達其概念。

微軟為了避免在他的核心開發者技術名稱上產生混淆,以及能正確反應微軟的發展方向,上周宣布將WinFX更名為.Net Framework 3.0

WinFX是微軟新一代作業系統Windows Vista的程式設計模型,也是微軟下一代的Win32技術。更名後的.Net Framework 3.0包含Web服務平台─Windows Communication Foundation(WCF)、展示層技術─Windows Presentation Foundation(WPF)、專為工作流程設計的Windows Workflow、進行身份管理的Windows CardSpace,以及目前的.Net Framework 2.0元件等。

微軟擁有兩個成功的開發品牌,分別是WinFX及.Net,而WinFX則被視為.Net Framework的下一代版本,自去年11月以來,WinFX的下載次數達32萬,並有700名使用者簽署GoLive授權,但同時.Net Framework的下載次數則超過了3500萬。.Net看起來成功贏得使用者的心,而且朝著自己的方向前進,微軟希望WinFX也能達到同樣的規模。

微軟開發者部門共同副總裁S.Soma Somasegar表示,.Net Framework一直以來都是WinFX的核心,但WinFX的品牌名稱卻未能傳遞此訊息,.Net Framework 3.0才能正確表達其概念,包括為微軟下一代開發者架構的版本;不過,Somasegar也強調此一改變單純是品牌名稱的轉換,並不影響內含的技術或是.Net Framework的發表時程。

.Net Framework 3.0仍然將與Windows Vista一同發表,而且也計畫支援Windows XP及Windows Server 2003。

除了品牌的改變外,Somasegar上周也在他的部落格宣布微軟推出了MSDN Wiki測試版,MSDN Wiki是微軟首次開放開發人員捐贈程式至微軟開發者檔案。

Somasegar說明,MSDN Wiki測試版讓程式開發人員可以直接在Visual Studio 2005與.Net Framework 2.0檔案的社群內容(Community Content)部份加入的程式樣本及內容。Somasegar表示這可讓微軟的開發過程更透明化。(編譯/陳曉莉)


那看來明年1月就可以開始轉用 .Net Framework 2.0

Read Full Post »