一切都在變
blog也搬遷了:http://blog.sina.com.cn/liuwendao
來武漢快三年了,留在北京的最后一件物件-電吉它,也被我拿到武漢來了
我們這么混,能成功嗎?
立帖為證
posted @ 2007-09-16 23:21 fisher 閱讀(1464) | 評論 (0) | 編輯 收藏
隨筆 - 59, 文章 - 4, 評論 - 184, 引用 - 7
|
一切都在變blog也搬遷了:http://blog.sina.com.cn/liuwendao posted @ 2007-09-16 23:21 fisher 閱讀(1464) | 評論 (0) | 編輯 收藏 [調(diào)查]國內(nèi)有多少人使用MINA?最近看到越來越多的人使用mina,甚至在線下也碰到合作公司的庫中使用MINA,出于好奇,嘗試一下用自己的blog做一下調(diào)查,訪問本blog的兄弟,如果您使用MINA作為自己的通訊基礎(chǔ)件,請留言介紹一下自己 posted @ 2006-12-27 13:00 fisher 閱讀(4517) | 評論 (20) | 編輯 收藏 隨想
軟件開發(fā)的世界里充滿了不理解,客戶不理解軟件是怎樣開發(fā)的、經(jīng)理不理解開發(fā)人員、開發(fā)人員不理解指揮者。
問題在于軟件開發(fā)驚人的困難,造成很少有開發(fā)人員能夠說出軟件自始至終是怎樣開發(fā)的,并能夠?qū)@個過程中會遇到的不同選擇所隱含的結(jié)果表現(xiàn)出適度的理解。 在軟件開發(fā)人員還很年輕的時候(十幾歲或二十出頭),他們通常集中精力學(xué)習(xí)和使用技術(shù),稱自己為perl程序員、Linux專家、EJB開發(fā)人員、.NET開發(fā)人員等。對他們來說技術(shù)是最重要的事情。因?yàn)榧夹g(shù)在不斷的變化,年輕的程序員傾向于大致學(xué)習(xí)一個技術(shù),在一到兩個項(xiàng)目中使用,然后重新開始學(xué)習(xí)新技術(shù)或者是學(xué)習(xí)以前使用過的技術(shù)的最新發(fā)展。這里的問題是,他們一遍又一遍的重復(fù)的學(xué)習(xí)的不過是同樣的低層次基本技能的不同風(fēng)味。 幸運(yùn)的是,很多開發(fā)人員在經(jīng)過了幾輪技術(shù)學(xué)習(xí)之后逐漸意識到:一旦用COBOL、Java、C#等語言為事務(wù)控制編寫過代碼,就會開始認(rèn)識到基本的、本質(zhì)的東西是不變的。不同環(huán)境下的數(shù)據(jù)庫訪問、用戶界面設(shè)計(jì)等領(lǐng)域也是同樣的情況。不久以后,開發(fā)人員逐漸認(rèn)識到無論具體的技術(shù)怎樣,很多基礎(chǔ)性的東西是保持不變的,這些基礎(chǔ)性的東西有的在學(xué)校里講過,有的沒有。 posted @ 2006-07-24 11:31 fisher 閱讀(2251) | 評論 (6) | 編輯 收藏 今天學(xué)會一個新名詞 - Troll來自pythoncn的maillist,呵呵,挺有意思
另一方面,在郵件列表這種有管理員的公共空間,可以向管理員提出封禁trolls的 提案。
+-------------------+ .:\:\:/:/:. | PLEASE DO NOT | :.:\:\:/:/:.: | FEED THE TROLLS | :=.' - - '.=: | | '=(\ 9 9 /)=' | Thank you, | ( (_) ) | Management | /`-vvv-'\ +-------------------+ / \ | | @@@ / /|,,,,,|\ \ | | @@@ /_// /^\ \\_\ @x@@x@ | | |/ WW( ( ) )WW \||||/ | | \| __\,,\ /,,/__ \||/ | | | jgs (______Y______) /\/\/\/\/\/\/\/\//\/\\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
posted @ 2006-06-13 10:27 fisher 閱讀(13592) | 評論 (9) | 編輯 收藏 程序員的進(jìn)化——從學(xué)生到首席執(zhí)行官(轉(zhuǎn))/*------------------------------------------- ? 程序員的進(jìn)化——從學(xué)生到首席執(zhí)行官 翻譯 2002 王詠剛 http://www.contextfree.net/ 轉(zhuǎn)譯自 Omri's Computer Humor Page http://www.cs.bgu.ac.il/~omri/Humor/ -------------------------------------------*/ -------------------------------------------------------------------------------- 中學(xué)階段 ? ? ? 10 PRINT "HELLO WORLD" ? ? ? 20 END -------------------------------------------------------------------------------- 大學(xué)一年級 ? ? ? program Hello(input, output) ? ? ? ? begin ? ? ? ? writeln('Hello World') ? ? ? ? end. -------------------------------------------------------------------------------- 大學(xué)高年級 ? ? ? (defun hello ? ? ? ? (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 -------------------------------------------------------------------------------- 初級經(jīng)理 ? ? ? 10 PRINT "HELLO WORLD" ? ? ? 20 END -------------------------------------------------------------------------------- 中級經(jīng)理 ? ? ? mail -s "Hello, world." bob@b12 ? ? ? Bob, could you please write me a program that prints "Hello, world."? ? ? ? I need it by tomorrow. ? ? ? ^D -------------------------------------------------------------------------------- 高級經(jīng)理 ? ? ? % zmail jim ? ? ? I need a "Hello, world." program by this afternoon. -------------------------------------------------------------------------------- 首席執(zhí)行官 ? ? ? % letter ? ? ? letter: Command not found. ? ? ? To: ^X ^F ^C ? ? ? % help mail ? ? ? help: Command not found. ? ? ? % damn! ? ? ? !: Event unrecognized ? ? ? % logout -------------------------------------------------------------------------------- posted @ 2006-05-18 17:14 fisher 閱讀(1059) | 評論 (0) | 編輯 收藏 Hello World的196種寫法
還記得孔乙己說:茴香豆的‘茴’字有四種寫法嗎?現(xiàn)在我們的知識份子已經(jīng)進(jìn)步了,看看Hello World的196種寫法:)
http://man.lupaworld.com/content/develop/hello/HelloWorld.shtml posted @ 2006-05-18 16:58 fisher 閱讀(874) | 評論 (0) | 編輯 收藏 趴在窗戶上看長江
下午寫完設(shè)計(jì),趴在武漢辦公室的窗戶上看風(fēng)景,天氣好的時候,左面長江右邊東湖都可以看到,其實(shí)想想在武漢出差也挺不錯的,呵呵
posted @ 2006-05-17 18:03 fisher 閱讀(590) | 評論 (0) | 編輯 收藏 |
|