2008年2月21日
這方面的文章網(wǎng)絡(luò)上一搜一大堆。偶也不引用了。
偶的感覺(jué)是python的安裝和組件安裝亂七八糟。ruby的安裝和插件安裝感覺(jué)比較爽。其理念是學(xué)習(xí)linux的port和apt的包管理思路。
昨天準(zhǔn)備離職了。
其實(shí)在這家公司里面,項(xiàng)目leader對(duì)我很不錯(cuò),時(shí)間也是比較寬松的。給了我很多的機(jī)會(huì)學(xué)習(xí)。甚至曾經(jīng)我有整整一個(gè)星期的時(shí)間去完整的學(xué)習(xí)ruby。對(duì)此我還是非常感激的。不過(guò)因?yàn)轫?xiàng)目的原因以及各種管理上的不如意,我感覺(jué)自己始終不開(kāi)心。
索性這次終于解放,于是我想先靜下心來(lái),思考一下人生未來(lái)的路。順便學(xué)習(xí)一下我所喜愛(ài)的ruby和python。上次學(xué)習(xí)ruby已經(jīng)是幾個(gè)月以前的事情了,學(xué)完以后基本上沒(méi)有得到什么使用的機(jī)會(huì)到現(xiàn)在基本上忘記了。這次一并將python也學(xué)了,并比較列出。
幾乎所有的語(yǔ)言,都包含以下幾個(gè)部分
1,數(shù)據(jù)類(lèi)型 ————被處理的
一般包括數(shù)字,字符串,可能還包括布爾類(lèi)型;復(fù)雜數(shù)據(jù)類(lèi)型;對(duì)oo的語(yǔ)言還要包括對(duì)象等。
2,對(duì)數(shù)據(jù)的處理 ————語(yǔ)法部分,
a,操作符和表達(dá)式
b,條件判斷語(yǔ)句
c,循環(huán)語(yǔ)句
d,跳轉(zhuǎn)語(yǔ)句
f,異常處理
3,代碼的組織
a,文件的組織
b,函數(shù)
c,對(duì)象
4,類(lèi)庫(kù)
a,標(biāo)準(zhǔn)輸出入庫(kù)
b,文件庫(kù)
等
以上前三個(gè)部分,是一個(gè)語(yǔ)言基礎(chǔ)的部分。但是對(duì)一個(gè)語(yǔ)言深入的了解,還必須結(jié)合這個(gè)語(yǔ)言的背景,哲學(xué)理念,才可以達(dá)到比較深刻的地步。是以我們對(duì)python和ruby的學(xué)習(xí)將從這個(gè)地方開(kāi)始。
我曾是個(gè)技術(shù)粉絲
但是多年的開(kāi)發(fā)經(jīng)驗(yàn),使得我對(duì)技術(shù)的本質(zhì)認(rèn)識(shí)的越來(lái)越清楚。至少對(duì)企業(yè)軟件開(kāi)發(fā)人員來(lái)說(shuō),純粹的技術(shù)coding是沒(méi)有多少價(jià)值的。如同建筑行業(yè)一樣,真正有價(jià)值的東西在設(shè)計(jì)階段已經(jīng)完成了。
和傳統(tǒng)建筑行業(yè)開(kāi)發(fā)不同,軟件開(kāi)發(fā)行業(yè)不光是技術(shù)設(shè)計(jì),還包括業(yè)務(wù)的設(shè)計(jì)。業(yè)務(wù)和技術(shù)摻雜在一起,構(gòu)成了軟件開(kāi)發(fā)的復(fù)雜性。
在業(yè)務(wù)上,在技術(shù)上,尤其是在技術(shù)和業(yè)務(wù)的鴻溝之間,存在了太多太多因素。使得我們本來(lái)對(duì)相對(duì)簡(jiǎn)單的軟件開(kāi)發(fā)不敢抱有那么大的樂(lè)觀。更何況真正一個(gè)成功的項(xiàng)目還需要市場(chǎng),客戶(hù)等等各個(gè)方面。
作為一個(gè)軟件開(kāi)發(fā)人員,真的應(yīng)該放棄軟件自大的心態(tài),客觀的去看待軟件開(kāi)發(fā)技術(shù)在整個(gè)軟件開(kāi)發(fā)工程中的位置和地位。以一種推動(dòng)企業(yè)發(fā)展,推動(dòng)項(xiàng)目發(fā)展和成功的心態(tài)和目的去看待整個(gè)項(xiàng)目。就明白了軟件開(kāi)發(fā)的真正意義和任務(wù)。也就能更好的完成自己的工作,甚至可以改變項(xiàng)目的成敗。
所以成敗不由技術(shù),成敗由你我的視野和努力。
最近公司項(xiàng)目經(jīng)理派我研究工作流并考慮在項(xiàng)目中使用。很有一些心得。工作流應(yīng)用我將之分為狹義工作流和廣義工作流。對(duì)狹義工作流而言,你可以將之理解為在工作流設(shè)計(jì)器里畫(huà)畫(huà)節(jié)點(diǎn)以及方向箭頭,設(shè)置好就節(jié)點(diǎn)數(shù)據(jù),動(dòng)作就差不多了。(具體可以參見(jiàn)jbpm的websale這個(gè)demo)。
廣義的工作流是對(duì)服務(wù)之間的整合。核心問(wèn)題是業(yè)務(wù)節(jié)點(diǎn)和工作流節(jié)點(diǎn)之間的映射,以及業(yè)務(wù)數(shù)據(jù)和工作流數(shù)據(jù)之間的映射,和普通工作流一樣還有流程判斷等等服務(wù)。實(shí)現(xiàn)了這些,各個(gè)業(yè)務(wù)模塊之間的數(shù)據(jù)就可以通過(guò)服務(wù),以定好的方式(進(jìn)行方向控制和格式轉(zhuǎn)化)在各個(gè)節(jié)點(diǎn)之間流通,達(dá)到了服務(wù)整合的目的。
IBM為ESB定義了四個(gè)必備的功能:“路由器”——根據(jù)信息內(nèi)容,在不同應(yīng)用和服務(wù)之間進(jìn)行信息傳輸和路由;“轉(zhuǎn)換器”——進(jìn)行應(yīng)用之間的通信協(xié)議轉(zhuǎn)換;“翻譯機(jī)”——進(jìn)行應(yīng)用之間的消息格式轉(zhuǎn)換;“收發(fā)室”——處理來(lái)自不同渠道的業(yè)務(wù)事件(同步傳輸,異步傳輸,發(fā)布/訂閱等方式)。
其中“路由器”和“收發(fā)室”都是針對(duì)服務(wù)的重用而設(shè)計(jì)的,而“轉(zhuǎn)換器”和“翻譯機(jī)”則專(zhuān)門(mén)用來(lái)解決異構(gòu)的通信問(wèn)題。
針對(duì)重用和異構(gòu)這兩個(gè)難題,倪曉兵認(rèn)為ESB提供了兩個(gè)核心的功能,服務(wù)的管理和數(shù)據(jù)的轉(zhuǎn)換。
我們DEC項(xiàng)目的目標(biāo)就是建立一個(gè)全能服務(wù)倉(cāng)庫(kù)(暫時(shí)我在DEC設(shè)計(jì)人員zy哪里得到的信息),而服務(wù)之間如何路由,如何轉(zhuǎn)換,語(yǔ)義的協(xié)調(diào)都沒(méi)有考慮,而后者卻是成敗的關(guān)鍵。
最關(guān)鍵的語(yǔ)義翻譯這一點(diǎn),就現(xiàn)在的技術(shù)上來(lái)說(shuō)還不能做到(需要很高的機(jī)器智能才能達(dá)到使得不同的系統(tǒng)的業(yè)務(wù)詞匯可以正確的映射,更何況是在所有的系統(tǒng)之間進(jìn)行映射,同時(shí)應(yīng)用在企業(yè)級(jí)的應(yīng)用環(huán)境中)
也許真的有這樣的幻想,但是真的能夠做到這一步么?我深深的懷疑。就目前的技術(shù)手段,如果要達(dá)到數(shù)據(jù)映射的高度正確性,必須由人不同系統(tǒng)之間需要協(xié)調(diào)的數(shù)據(jù)進(jìn)行語(yǔ)義確認(rèn)方能進(jìn)行有效的映射。
當(dāng)考慮到還必須做到ESB系統(tǒng)對(duì)其接入的所有的服務(wù)數(shù)據(jù)的語(yǔ)義都這樣做時(shí)。我懷疑真的需要做到協(xié)調(diào)所有的服務(wù)么?
也許ESB的應(yīng)用范圍就是在公司內(nèi)部或者有限范圍內(nèi)的整合目標(biāo)明確的業(yè)務(wù)節(jié)點(diǎn)之間業(yè)務(wù)的整合。
ruby很火,ror很火。但凡一個(gè)東西火,我們要知道他火的原因。
因?yàn)樗_(kāi)發(fā)快,你看
rails project_name
#config db
rake db:create:all
rake db:mirage scoffled table_name [field_name:field_type,.....]
#編輯model
rake db:mirage
#編輯action和route
ruby script/server
然后一個(gè)應(yīng)用程序就生成啦,這個(gè)過(guò)程大概就2、3分鐘;而且他熱部署,所寫(xiě)即所得,語(yǔ)法超級(jí)強(qiáng)大,簡(jiǎn)單幾句話(huà)就可以表達(dá)很復(fù)雜的邏輯,真正讓人把精力集中在業(yè)務(wù)邏輯上和頁(yè)面邏輯上(他的mirage真是太cool了,完美的體現(xiàn)了定義一次schame,到處使用的原則)
坦率的講,這些別的東西——包括java都可以做到~,為什么到現(xiàn)在java還是這么殺手呢(不是應(yīng)用程序殺手,是程序員殺手,開(kāi)發(fā)起來(lái)羅嗦到死。
既然ror出現(xiàn)了,所以我想jor也很快了,不過(guò)ruby使人愉快的是,它從不限制你,包括寫(xiě)的更難懂——如果你真的覺(jué)得別人寫(xiě)的你看不懂的話(huà)——幸運(yùn)的是,它也沒(méi)有限制你寫(xiě)的更簡(jiǎn)單。
那就用ruby去快樂(lè)的編程吧
linux控制臺(tái)分辨率調(diào)節(jié)
2007年12月07日 上午 11:16 | 640x480 800x600 1024x768 1280x1024
-----+-----------------------------------------------------
256 | 257 259 261 263
32k | 272 275 278 281
64k | 273 276 279 282
16M| 274 277 280 283
VESA:
Colors (depth) 640x480 800x600 1024x768 1280x1024 1600x1200
------------------+-----------+-----------+------------+-------------+-------------
256 ( 8 bit) | 769 771 773 775 796
32,768 (15 bit)| 784 787 790 793 797
65,536 (16 bit)| 785 788 791 794 798
16.8M (24 bit) | 786 789 792 795 799
查上面的表,編輯/boot/grub/menu.lst
kernel /boot/vmlinuz-2.6.15-23-386 root=/dev/hdb10 ro quiet splash vga=791
這行最后補(bǔ)上vga=792