隨筆 - 59, 文章 - 4, 評論 - 184, 引用 - 7
          數據加載中……

          程序員的進化——從學生到首席執行官(轉)


          /*-------------------------------------------

          ? 程序員的進化——從學生到首席執行官

          翻譯 2002 王詠剛
          http://www.contextfree.net/
          轉譯自 Omri's Computer Humor Page
          http://www.cs.bgu.ac.il/~omri/Humor/
          -------------------------------------------*/


          --------------------------------------------------------------------------------
          中學階段

          ? ? ? 10 PRINT "HELLO WORLD"
          ? ? ? 20 END
          --------------------------------------------------------------------------------
          大學一年級

          ? ? ? program Hello(input, output)
          ? ? ? ? begin
          ? ? ? ? writeln('Hello World')
          ? ? ? ? end.
          --------------------------------------------------------------------------------
          大學高年級

          ? ? ? (defun hello
          ? ? ? ? (print
          ? ? ? ? (cons 'Hello (list 'World))))
          --------------------------------------------------------------------------------
          初級程序員

          ? ? ? #include <stdio.h>
          ? ? ? void main(void)
          ? ? ? {
          ? ? ? ? char *message[] = {"Hello ", "World"};
          ? ? ? ? int i;

          ? ? ? ? for(i = 0; i < 2; ++i)
          ? ? ? ? printf("%s", message
          );
          ? ? ? ? printf("\n");
          ? ? ? }
          --------------------------------------------------------------------------------
          編程老鳥

          ? ? ? #include <iostream.h>
          ? ? ? #include <string.h>

          ? ? ? class string
          ? ? ? {
          ? ? ? private:
          ? ? ? ? int size;
          ? ? ? ? char *ptr;

          ? ? ? public:
          ? ? ? ? string() : size(0), ptr(new char('\0')) {}

          ? ? ? ? string(const string &s) : size(s.size)
          ? ? ? ? {
          ? ? ? ? ptr = new char[size + 1];
          ? ? ? ? strcpy(ptr, s.ptr);
          ? ? ? ? }

          ? ? ? ? ~string()
          ? ? ? ? {
          ? ? ? ? delete [] ptr;
          ? ? ? ? }

          ? ? ? ? friend ostream &operator <<(ostream &, const string &);
          ? ? ? ? string &operator=(const char *);
          ? ? ? };

          ? ? ? ostream &operator<<(ostream &stream, const string &s)
          ? ? ? {
          ? ? ? ? return(stream << s.ptr);
          ? ? ? }

          ? ? ? string &string::operator=(const char *chrs)
          ? ? ? {
          ? ? ? ? if (this != &chrs)
          ? ? ? ? {
          ? ? ? ? delete [] ptr;
          ? ? ? ? size = strlen(chrs);
          ? ? ? ? ptr = new char[size + 1];
          ? ? ? ? strcpy(ptr, chrs);
          ? ? ? ? }
          ? ? ? ? return(*this);
          ? ? ? }

          ? ? ? int main()
          ? ? ? {
          ? ? ? ? string str;

          ? ? ? ? str = "Hello World";
          ? ? ? ? cout << str << end

          ? ? ? ? return(0);
          ? ? ? }
          --------------------------------------------------------------------------------
          編程高手

          ? ? ? [
          ? ? ? uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
          ? ? ? ]
          ? ? ? library LHello
          ? ? ? {
          ? ? ? ? // bring in the master library
          ? ? ? ? importlib("actimp.tlb");
          ? ? ? ? importlib("actexp.tlb");

          ? ? ? ? // bring in my interfaces
          ? ? ? ? #include "pshlo.idl"

          ? ? ? ? [
          ? ? ? ? uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
          ? ? ? ? ]
          ? ? ? ? cotype THello
          ? ? ? {
          ? ? ? interface IHello;
          ? ? ? interface IPersistFile;
          ? ? ? };
          ? ? ? };

          ? ? ? [
          ? ? ? exe,
          ? ? ? uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
          ? ? ? ]
          ? ? ? module CHelloLib
          ? ? ? {

          ? ? ? ? // some code related header files
          ? ? ? ? importheader(<windows.h>);
          ? ? ? ? importheader(<ole2.h>);
          ? ? ? ? importheader(<except.hxx>);
          ? ? ? ? importheader("pshlo.h");
          ? ? ? ? importheader("shlo.hxx");
          ? ? ? ? importheader("mycls.hxx");

          ? ? ? ? // needed typelibs
          ? ? ? ? importlib("actimp.tlb");
          ? ? ? ? importlib("actexp.tlb");
          ? ? ? ? importlib("thlo.tlb");

          ? ? ? ? [
          ? ? ? ? uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
          ? ? ? ? aggregatable
          ? ? ? ? ]
          ? ? ? ? coclass CHello
          ? ? ? {
          ? ? ? cotype THello;
          ? ? ? };
          ? ? ? };

          ? ? ? #include "ipfix.hxx"

          ? ? ? extern HANDLE hEvent;

          ? ? ? class CHello : public CHelloBase
          ? ? ? {
          ? ? ? public:
          ? ? ? ? IPFIX(CLSID_CHello);

          ? ? ? ? CHello(IUnknown *pUnk);
          ? ? ? ? ~CHello();

          ? ? ? ? HRESULT __stdcall PrintSz(LPWSTR pwszString);

          ? ? ? private:
          ? ? ? ? static int cObjRef;
          ? ? ? };

          ? ? ? #include <windows.h>
          ? ? ? #include <ole2.h>
          ? ? ? #include <stdio.h>
          ? ? ? #include <stdlib.h>
          ? ? ? #include "thlo.h"
          ? ? ? #include "pshlo.h"
          ? ? ? #include "shlo.hxx"
          ? ? ? #include "mycls.hxx"

          ? ? ? int CHello::cObjRef = 0;

          ? ? ? CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
          ? ? ? {
          ? ? ? ? cObjRef++;
          ? ? ? ? return;
          ? ? ? }

          ? ? ? HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
          ? ? ? {
          ? ? ? ? printf("%ws\n", pwszString);
          ? ? ? ? return(ResultFromScode(S_OK));
          ? ? ? }

          ? ? ? CHello::~CHello(void)
          ? ? ? {

          ? ? ? // when the object count goes to zero, stop the server
          ? ? ? cObjRef--;
          ? ? ? if( cObjRef == 0 )
          ? ? ? ? PulseEvent(hEvent);

          ? ? ? return;
          ? ? ? }

          ? ? ? #include <windows.h>
          ? ? ? #include <ole2.h>
          ? ? ? #include "pshlo.h"
          ? ? ? #include "shlo.hxx"
          ? ? ? #include "mycls.hxx"

          ? ? ? HANDLE hEvent;

          ? ? ? int _cdecl main(
          ? ? ? int argc,
          ? ? ? char * argv[]
          ? ? ? ) {
          ? ? ? ULONG ulRef;
          ? ? ? DWORD dwRegistration;
          ? ? ? CHelloCF *pCF = new CHelloCF();

          ? ? ? hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

          ? ? ? // Initialize the OLE libraries
          ? ? ? CoInitializeEx(NULL, COINIT_MULTITHREADED);

          ? ? ? CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
          ? ? ? ? REGCLS_MULTIPLEUSE, &dwRegistration);

          ? ? ? // wait on an event to stop
          ? ? ? WaitForSingleObject(hEvent, INFINITE);

          ? ? ? // revoke and release the class object
          ? ? ? CoRevokeClassObject(dwRegistration);
          ? ? ? ulRef = pCF->Release();

          ? ? ? // Tell OLE we are going away.
          ? ? ? CoUninitialize();

          ? ? ? return(0);
          ? ? ? }

          ? ? ? extern CLSID CLSID_CHello;
          ? ? ? extern UUID LIBID_CHelloLib;

          ? ? ? CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
          ? ? ? ? 0x2573F891,
          ? ? ? ? 0xCFEE,
          ? ? ? ? 0x101A,
          ? ? ? ? { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
          ? ? ? };

          ? ? ? UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
          ? ? ? ? 0x2573F890,
          ? ? ? ? 0xCFEE,
          ? ? ? ? 0x101A,
          ? ? ? ? { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
          ? ? ? };

          ? ? ? #include <windows.h>
          ? ? ? #include <ole2.h>
          ? ? ? #include <stdlib.h>
          ? ? ? #include <string.h>
          ? ? ? #include <stdio.h>
          ? ? ? #include "pshlo.h"
          ? ? ? #include "shlo.hxx"
          ? ? ? #include "clsid.h"

          ? ? ? int _cdecl main(
          ? ? ? int argc,
          ? ? ? char * argv[]
          ? ? ? ) {
          ? ? ? HRESULT hRslt;
          ? ? ? IHello ? ? *pHello;
          ? ? ? ULONG ulCnt;
          ? ? ? IMoniker * pmk;
          ? ? ? WCHAR wcsT[_MAX_PATH];
          ? ? ? WCHAR wcsPath[2 * _MAX_PATH];

          ? ? ? // get object path
          ? ? ? wcsPath[0] = '\0';
          ? ? ? wcsT[0] = '\0';
          ? ? ? if( argc > 1) {
          ? ? ? ? mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
          ? ? ? ? wcsupr(wcsPath);
          ? ? ? ? }
          ? ? ? else {
          ? ? ? ? fprintf(stderr, "Object path must be specified\n");
          ? ? ? ? return(1);
          ? ? ? ? }

          ? ? ? // get print string
          ? ? ? if(argc > 2)
          ? ? ? ? mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
          ? ? ? else
          ? ? ? ? wcscpy(wcsT, L"Hello World");

          ? ? ? printf("Linking to object %ws\n", wcsPath);
          ? ? ? printf("Text String %ws\n", wcsT);

          ? ? ? // Initialize the OLE libraries
          ? ? ? hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

          ? ? ? if(SUCCEEDED(hRslt)) {

          ? ? ? ? hRslt = CreateFileMoniker(wcsPath, &pmk);
          ? ? ? ? if(SUCCEEDED(hRslt))
          ? ? ? hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

          ? ? ? ? if(SUCCEEDED(hRslt)) {

          ? ? ? // print a string out
          ? ? ? pHello->PrintSz(wcsT);

          ? ? ? Sleep(2000);
          ? ? ? ulCnt = pHello->Release();
          ? ? ? }
          ? ? ? ? else
          ? ? ? printf("Failure to connect, status: %lx", hRslt);

          ? ? ? ? // Tell OLE we are going away.
          ? ? ? ? CoUninitialize();
          ? ? ? ? }

          ? ? ? return(0);
          ? ? ? }
          --------------------------------------------------------------------------------
          黑客初階

          ? ? ? #!/usr/local/bin/perl
          ? ? ? $msg="Hello, world.\n";
          ? ? ? if ($#ARGV >= 0) {
          ? ? ? ? while(defined($arg=shift(@ARGV))) {
          ? ? ? ? $outfilename = $arg;
          ? ? ? ? open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
          ? ? ? ? print (FILE $msg);
          ? ? ? ? close(FILE) || die "Can't close $arg: $!\n";
          ? ? ? ? }
          ? ? ? } else {
          ? ? ? ? print ($msg);
          ? ? ? }
          ? ? ? 1;
          --------------------------------------------------------------------------------
          黑客有成

          ? ? ? #include <stdio.h>
          ? ? ? #define S "Hello, World\n"
          ? ? ? main(){exit(printf(S) == strlen(S) ? 0 : 1);}
          --------------------------------------------------------------------------------
          黑客高手

          ? ? ? % cc -o a.out ~/src/misc/hw/hw.c
          ? ? ? % a.out
          --------------------------------------------------------------------------------
          黑客大蝦

          ? ? ? % cat
          ? ? ? Hello, world.
          ? ? ? ^D
          --------------------------------------------------------------------------------
          初級經理

          ? ? ? 10 PRINT "HELLO WORLD"
          ? ? ? 20 END
          --------------------------------------------------------------------------------
          中級經理

          ? ? ? mail -s "Hello, world." bob@b12
          ? ? ? Bob, could you please write me a program that prints "Hello, world."?
          ? ? ? I need it by tomorrow.
          ? ? ? ^D
          --------------------------------------------------------------------------------
          高級經理

          ? ? ? % zmail jim
          ? ? ? I need a "Hello, world." program by this afternoon.
          --------------------------------------------------------------------------------
          首席執行官

          ? ? ? % letter
          ? ? ? letter: Command not found.
          ? ? ? % mail
          ? ? ? To: ^X ^F ^C
          ? ? ? % help mail
          ? ? ? help: Command not found.
          ? ? ? % damn!
          ? ? ? !: Event unrecognized
          ? ? ? % logout
          --------------------------------------------------------------------------------

          posted @ 2006-05-18 17:14 fisher 閱讀(1058) | 評論 (0)編輯 收藏

          Hello World的196種寫法

          還記得孔乙己說:茴香豆的‘茴’字有四種寫法嗎?現在我們的知識份子已經進步了,看看Hello World的196種寫法:)

          http://man.lupaworld.com/content/develop/hello/HelloWorld.shtml

          posted @ 2006-05-18 16:58 fisher 閱讀(874) | 評論 (0)編輯 收藏

          趴在窗戶上看長江

          下午寫完設計,趴在武漢辦公室的窗戶上看風景,天氣好的時候,左面長江右邊東湖都可以看到,其實想想在武漢出差也挺不錯的,呵呵

          posted @ 2006-05-17 18:03 fisher 閱讀(588) | 評論 (0)編輯 收藏

          關于人.....

          彼得·德魯克在他的《卓有成效的管理者?》當中,闡述了知識工作者管理的秘訣,那就是知識工作者的工作效率來自于對其工作的有效性以及他的工作是否有所成就。這本1966年出版的管理學書籍經過近50年的時間,反而越發顯得適應潮流。
          而卓有成效的知識工作管理者現在顯得比過去任何時候都要短缺,也比現時任何人才都要短缺。在現時這個信息爆炸,案例豐富的年代,戰略眼光與部署格局對于一個企業人才不再如此重要,對于企業戰略,任何有管理常識、了解企業實情的人大都可以分析得很到位,關鍵是要找到合適的人去實施。知道什么樣的人合適,以及找到這個合適的人,成為企業家最需要做的事情。而成為那個合適的人,則成為草根階層走入舞臺中央的必備能力。

          附一篇來自經濟觀察報劉軍的《笨蛋,最重要的是人!
          ---------------------------------

          ????? 2005年10月8日管理大師彼得·德魯克曾經講過一個他和《時代》《財富》等雜志的出版人亨利·魯斯交往的故事。魯斯有個很好的新雜志方案——試圖創辦“從美國人思考角度出發”的高格調文化雜志,他去向德魯克求教。德魯克分析了一番說,“這份企劃案很棒,不過晚了50年。”接著,他對魯斯說出了最重要的話:“此外,《時代》的人也無法勝任。我猜,你想鼓勵一些外面的作家來為這本雜志執筆,并以一般大眾為讀者群。但是你的專長卻是叫自己手下人搞定,因此大有不同。”?
          ????? 魯斯回答說,“我來向你請教,正因為我猜想你會這么說。”他因而放棄了這個計劃,因為他深知人的重要性。經過十多年的西方管理教育和知識傳播,中國企業管理者已經熟知戰略的理性分析,與重視人比起來更重視事,另外先建立制度、而不是依靠人的觀念也被廣泛接受。不過,我卻逐漸感覺到,在這些問題上我們可能有點矯枉過正,對于知識型工作、對于管理,或許人更重要,是應該優先考慮的。?
          ????? 9月底,索尼新任CEO、美國人霍華德·斯特林格(Howard?Stringer)宣布索尼的戰略調整計劃:全球裁員一萬人,縮減工廠數目,出售1200億日元的不動產與股票等非核心資產,對消費電子業務進行架構調整、將權力集中到這一業務的最高主管手中。在過去五年中,索尼逐漸失去消費電子霸主地位,業績很不理想,這背后的根本原因正是這些戰略調整所觸及的問題。對于這一點,大概稍微有點管理常識的人都知道,我想索尼前CEO出井伸之自然了然于心,他之下的索尼高管也清楚。不過,大概只有霍華德·斯特林格、索尼歷史上第一個外國人CEO、這個日本文化的局外人才能推行上述改革。?
          ???? 戰略,有管理常識、了解企業實情的人大都可以分析得很到位,但真正去做,就需要“合適的人”。我一直相信,選擇霍華德·斯特林格作為繼任者,是出井伸之的最重要的決策,體現這個亞洲最優秀的商業領袖的領導才能。卡洛斯·戈恩已經因成功在日產汽車(Nissan)實現大逆轉而成為全球最知名的管理者之一,他當初所做的關閉工廠與裁員、破除日本式企業聯盟等措施,都是眾所周知的弊端,但惟有他這個合適的人才能推動變革。斯特林格和戈恩都是在這種情境下最合適的人,只是恰巧他們都是外國人。?
          ????? Google、微軟和李開復之間的紛爭一直沒有停息的跡象。在這個過程中李開復把自己再次塑造成了最優秀的技術專家形象,但如果相信這一點,我們就錯誤理解了Google的智慧。如果要一流的中文搜索研發人才,Google的最佳人選絕對不是李開復,而可能是李彥宏。如果它的戰略訴求點是這個,它可以百度買下,從而得到李彥宏。但是,Google在中國,需要的哪里是什么技術專家、研發中心?現在Google中國戰略要的合適的人是據稱是“技術專家”的李開復,但他在公眾心目中的號召力和政府公關能力才是Google所看重的。?
          ????? 我們也可以循同樣的視角來看待雅虎和阿里巴巴之間的聯姻。這一次是把雅虎中國的業務交道馬云手中去讓他照料,因為對于誰了解中國市場和能夠幫助雅虎發現中國市場潛力這個問題,馬云是最佳答案。雅虎在中國的最近兩次戰略行動目標都首先是為了“人”。上一次是雅虎在中國收購3721,反而讓其老板周鴻一擔任中國區總裁,從而讓雅虎中國從跨國公司在華分支機構這樣的角色變成勇猛的中國本土企業。但在經歷一段發展時期之后,雅虎中國就需要更合適的人。我們可以認為,這是雅虎、阿里巴巴聯姻的主要原因之一。?
          ????? 先建立制度、體系,而不是“因人設事”這樣的觀點被廣泛接受,可是,我們忘記了這個觀念背后的工業化背景:所有人的都被當成了可替換的零件,所以制度體系最重要。但是,對于知識型工作來說,特別是非重復的創造性工作,每個人的工作方式、結果都截然不同。?
          ????? 我們所設計的制度體系,在當前的人員安排下也似乎運轉正常。但是,由于這些人是無法替換的,人走了,看似精妙的體系也就出現出現問題了。這個時候,是去做不可能完成的任務:尋找適合制度體系的一摸一樣的人?還是更改體系?或者看得更遠點,在現在的情境下,我們根本就不該把制度體系的重要性神話到這種程度?針對知識型工作的討論,和上文對最高管理者的討論并非沒有聯系,因為在我看來,管理工作是最重要的、最具創造性的知識工作。?
          ????? 吉姆·柯林斯在《從優秀到卓越》說卓越公司是“先人后事”:這些公司的主管不是先確定目的地(先有方向、愿景、戰略),然后才把人們引向那里;他們首先讓合適的人上車(不合適的人自然請下車),然后才決定去向何處。他所說的雖是方向、遠景,但大體上和制度是同一類型的事物。我們都應該了解,合適的人更重要,那些看似嚴密的戰略分析和完善的制度體系有時候會變成令人難以忍受的障礙,因為它們和“合適的人”可能是完全矛盾的,這些人通常都難以放到一個既定的模子中去。?

          posted @ 2006-04-25 23:19 fisher 閱讀(1047) | 評論 (0)編輯 收藏

          webwork2.2.2的dtd解析問題(感謝飛云小俠)

          今天將webwork2.2.1更換成webwork2.2.2,出現了一個奇怪的異常,每次啟動后,都會報出:
          org.xml.sax.SAXParseException:?Element?type?"global-exception-mappings"?must?be?declared.
          com.opensymphony.xwork.config.ConfigurationException:?Caught?exception?
          while?loading?file?xwork.xml
          ????with?nested?exception?
          org.xml.sax.SAXParseException:?Element?type?
          "global-exception-mappings"?must?be?declared.
          如果將xwork.xml中的global-exception-mappings注釋掉便好

          頭疼了幾個小時解決不了,不得不求助飛云小俠
          飛云小俠一出手果然不同,馬上定位了問題所在
          就是這句:
          <!DOCTYPE?xwork?PUBLIC?"-//OpenSymphony?Group//XWork?1.1.1//EN"?"http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">

          原來雖然幾次升級webwork.jar,但是xwork.xml的DTD解析還是用的原來的DTD,頂多就是改了DTD的地址,也就是將這句
          ?"http://www.opensymphony.com/xwork/xwork-1.1.dtd">
          改為這樣
          ?"http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">

          而實際上解析DTD是靠的前面那句
          <!DOCTYPE?xwork?PUBLIC?"-//OpenSymphony?Group//XWork?1.1.1//EN"?>
          原來一直是
          <!DOCTYPE?xwork?PUBLIC?"-//OpenSymphony?Group//XWork?1.0//EN"?>
          于是就出現了上面的問題
          多謝飛云小俠的幫助^_^

          posted @ 2006-04-21 15:07 fisher 閱讀(1274) | 評論 (0)編輯 收藏

          僅列出標題
          共12頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
          主站蜘蛛池模板: 莲花县| 马关县| 淮南市| 中方县| 客服| 山阳县| 三穗县| 鄂托克前旗| 河北区| 南平市| 通河县| 东丽区| 辽宁省| 牡丹江市| 上思县| 辰溪县| 鹤壁市| 台南县| 咸宁市| 丰都县| 舞钢市| 徐水县| 徐闻县| 通州市| 岢岚县| 美姑县| 沁水县| 邛崃市| 都安| 瓦房店市| 汝南县| 梅州市| 陕西省| 绥江县| 昭通市| 芦山县| 鹿邑县| 阳信县| 大余县| 万载县| 辽阳市|