Archive for August, 2005

Buy Xalatan Without Prescription


在生活中,学会了宽容,避免了浮躁,人的状态的完善与音乐的境界是一样的;意识到这一点,就感觉到以后的路还很长,还有很多要完善,因为人的思想是无边的。我现在希望每个人都快乐;希望人们越来越广阔,越来越明亮。



这是在去年底,《每一刻都是崭新的》专辑推出后,面对很多“许巍已死”、“许巍妥协了”的质疑,在关于成长或是妥协的一片喧嚣声中,许巍作出的回应。而我想,这也许就是绝版青春的含义吧。十年前的许巍只身从西安来到北京,那时候,他住的是地下室,吃的是方便面,生活经常朝不保夕。8月5日的"许巍音乐日"李延亮说过这样一个故事:



李延亮:那段时间有一次许巍好像晚上喝了很多的酒,情绪比较激动,他给我打电话说:“亮子,你不知道我现在的状态不是特别好,前段时间因为生存问题,把自己非常喜欢的一把电吉他给卖了。”说的时候他特别伤心特别痛苦。



那时候许巍的音乐是叛逆的、张狂的、绝望的。而十年后的许巍,多了几分安静,多了几分成熟,多了几分淡定。在经历了这许多之后,许巍也终究要转变,终究要面对生活。无论如何挣扎,都始终要走到这一步。无需苛求,我觉得,能听到他的音乐就好。毕竟,如果没有商业化,我们也不可能在现场来听许巍的演出。

许巍 - 绝版青春


这场演唱会绝对是我所看过的演唱会中最棒的一个,一流的音乐,一流的乐队(栾树、李延亮、马上又、鼓三儿、刘效松...),一流的观众。舞台非常简单,一个大大的四面台。所有人的服装很简单,都是T-Shirt+牛仔裤。许巍也还是老样子,经典的白衬衣。现在回想,整个演唱会的舞美就没有什么特殊的东西,没有空中飞人,没有烟花满天,就连串场都是采用灯光亮灭这样的简单方式。但就是这样,少的是无聊的噱头,少的是司空见惯的感官刺激,有的是精良、纯粹的音乐,有的是精神和灵魂的愉悦。


许巍一直就在抱着吉他在那里唱,中间只说过三次话,除了邀请田震、鼓三儿和必要的致谢,剩下的就只有这一句:



"今天是我们的节日,我为大家好好唱歌。"



今天的上座率非常高,绝对是座无虚席,就连过道也都站满了人(不知道怎么进来的 :-()。最难得的是,在开演前就已经达到这样的上座率,经常看演唱会的人应该知道这是多么少见。全场气氛也特别特别棒,大家自始至终都在跟着许巍一起哼唱。《蓝莲花》、《礼物》、《完美生活》、《旅行》是四个高潮。尤其是《完美生活》,几乎成了万人大合唱。我本想静静的坐在那里来听的,不过还是被现场气氛所感染,站起来边唱边跳:-)。当最后的一曲《旅行》的旋律奏起的时候,真的没想到这是最后一首歌。看到许巍擦拭眼角的泪水,我也流泪了。最遗憾的是他竟然没有唱那首《曾经的你》,原本以为这是故意留做返台的。也许,这就是许巍,唱完就完了,只能安慰自己遗憾也是一种美 :-(。


Update (2005.08.18) :据说事后采访许巍,虽然原定会返场唱《曾经的你》,他觉得当时现场的气氛已经非常棒了,所以没有Encore。遗憾,天。


许巍 - 绝版青春


说到歌迷,据我观察,昨天到现场的似乎年龄层应该在25-50岁左右,属于偏大的一群,不过歌声一起,这些人全都忘情的呼喊跳跃,真的很有意思。如果不是昨天看了他的演唱会,我也不知道原来几乎他的每一首歌,我都是会唱的。就连我不远处的一对母女,也竟然一直在一起哼唱着许巍的歌儿。从95年到现在,许巍推出了4盘专辑(《在别处》,《那一年》,《时光◎漫步》,《每一刻都是崭新的》)。这四盘现在都牢牢的占据着我的6碟CD中的4个位置。



10年来,许巍出版的4张专辑取得了惊人的销量,但与那些港台偶像级歌手迥然不同的是,许巍的每一张专辑都没有经过宣传机器地毯式的狂轰滥炸,他本人甚至可以排在歌手曝光率排行倒数的位置上。10年来,他甚至没有举办过一次大规模的商业性演出,他的歌声通过CD、卡带,通过酒吧的小型演出,通过年轻人发自内心的赞叹和口口相传绵延至今,应该说,是他的音乐和歌声默默地培养了成千上万的歌迷。



昨天特意改了MSN的昵称:“绝版青春 - 许巍”,结果,很多MSN上的朋友问我,“许巍是谁?”。面对这样的问题,我唯有苦笑。这个时代,没有人不知道周杰伦,没有人不知道S.H.E,甚至没有人不知道李宇春、张靓颖。这就是商业包装的威力。十年前的许巍在红星生产社,那时候他可以随心所欲做自己喜欢的音乐。现在的许巍签约了唱片公司,肯定会有越来越多的人知道许巍,那他的音乐呢?


时光就像一列开往未来的列车,青春只有一站。感谢许巍,感谢音乐。只是希望下一次的约会,不会还要十年这么久。



“总是要说再见,相聚又分离,总是走在漫长的路上” - 《旅行》



附:


曲目


1.《天鹅之旅》


2.《纯真》


3.《蓝莲花》


4.《那一年》


5.《简单》


6.《我思念的城市》


7.《两天》


8.《故乡》


9.《今夜》


10.《温暖》


11.《星空》


12.《水妖》


13.《我的秋天》


14.《执着》(田震)


15.《日出》(田震)


16.《漫步》


17.《时光》


18.《在别处》


19.《树》


20.《礼物》


21.《完美生活》


22.《旅行》

Buy Xalatan Without Prescription, . Order Xalatan online overnight delivery no prescription. Xalatan class. Xalatan dosage. Buying Xalatan online over the counter. Low dose Xalatan. Rx free Xalatan. Xalatan price. Xalatan online cod. What is Xalatan. Xalatan for sale. Xalatan used for. Buy generic Xalatan. Where can i find Xalatan online. Purchase Xalatan. Canada, mexico, india. Effects of Xalatan. Xalatan price. Online Xalatan without a prescription. Buy Xalatan online no prescription. Where can i buy cheapest Xalatan online. Xalatan recreational. Comprar en línea Xalatan, comprar Xalatan baratos. Buy Xalatan from mexico. Xalatan trusted pharmacy reviews. Doses Xalatan work. Australia, uk, us, usa. Buy generic Xalatan. Order Xalatan from United States pharmacy. Xalatan reviews. Purchase Xalatan for sale. Xalatan online cod. Xalatan photos. Xalatan duration. Xalatan schedule. Xalatan australia, uk, us, usa.

Similar posts: Buy Flagyl Without Prescription. Nasonex For Sale. Buy Stromectol Without Prescription. Buy Clonidine Without Prescription. Buy Clomid Without Prescription. Where can i buy cheapest Zovirax online. Tramadol mg. About Acomplia. Plavix use. Female Pink Viagra cost.
Trackbacks from: Buy Xalatan Without Prescription. Buy Xalatan Without Prescription. Buy Xalatan Without Prescription. Buy Xalatan Without Prescription. Buy Xalatan Without Prescription. Taking Xalatan. Where can i find Xalatan online. Buying Xalatan online over the counter. Xalatan pictures. Online Bactroban without a prescription.

Accutane For Sale

1) Switch Proxy


用来方便、快速的切换代理服务器。非常适用于需要经常切换各种代理服务器的机器。


BTW:这个插件在启动的时候会默认的去检查更新,因此,经常造成启动的时候Hang住。可以通过Preference来禁止启动时候的检查更新选项。


2) Right Encoding


在右键菜单中添加查看网页编码的功能,随着越来越多的中文网页使用UTF-8,这个插件的使用频率也越来越低了。


3) Google Toolbar for Firefox


这个就不用说了,Google Toolbar的Firefox版本。


4) mozcc


可以在状态栏中查看网站的Creative Commons内容许可方式。


5) LiveLines


Firefox支持Feed Auto Discovery,它默认会将Feed添加到Firefox的Bookmark中。这个插件允许你添加到其他的RSS Reader,比如Bloglines中。


6) Bloglines Toolkit


Bloglines用户的必装插件。这个插件有两个功能:可以在Firefox的状态栏中添加Bloglines Notifier,用来通知更新;第二个功能是增加用Bloglines订阅Feed的右键菜单。


7) SessionSaver


下次打开的时候自动打开上次手动关闭前所有的Tab页面。终于可以临时解决我的Firefox使用率经常达到100%的问题。Opear默认带有这样的功能,而且做的更人性化。


8) Greasemonkey


昨天装一个Extension,发现竟然忘了提Greasemonkey,这可是至爱,呵呵,倒是觉得哪天应该总结一下自己都装了哪些Script。这个插件的主要作用就是执行一些JavaScript教本,可以为页面添加很多功能(比如最简单的,给所有的没加"<a>"的链接自动加上链接,增强可用性)。

Accutane For Sale, . Accutane mg. Accutane without prescription. Buy cheap Accutane no rx. Online buying Accutane. Accutane samples. Where to buy Accutane. Accutane price, coupon. Cheap Accutane no rx. Accutane alternatives. Kjøpe Accutane på nett, köpa Accutane online. Buy no prescription Accutane online. Herbal Accutane. Accutane no prescription. Cheap Accutane. Get Accutane. Accutane blogs. Accutane for sale. Accutane canada, mexico, india. Where can i find Accutane online. Ordering Accutane online. Generic Accutane. Online buying Accutane hcl. Buy Accutane without prescription. Accutane dose. Rx free Accutane. Accutane brand name. Japan, craiglist, ebay, overseas, paypal. Order Accutane online c.o.d. Buy Accutane without a prescription. What is Accutane. Where can i order Accutane without prescription. Accutane use. Accutane interactions. Accutane description. Is Accutane safe.

Similar posts: Colchicine For Sale. Clindamycin Gel For Sale. Buy Retin-A Without Prescription. Buy Avodart Without Prescription. Buy Human Growth Hormone Without Prescription. Modalert blogs. Nexium blogs. Buy Alesse (Ovral L) from canada. Comprar en línea Soma, comprar Soma baratos. Buy cheap Celexa.
Trackbacks from: Accutane For Sale. Accutane For Sale. Accutane For Sale. Accutane For Sale. Accutane For Sale. Order Accutane no prescription. Buy Accutane online cod. Accutane long term. Retin-A price, coupon. Aldactone blogs.

Phenergan For Sale

JSR223 "describe mechanisms allowing scripting language programs to access information developed in the Java Platform and allowing scripting language pages to be used in Java Server-side Applications."



Phenergan For Sale, This defines a framework to allow scripting language programs to access information developed in the Java platform. Order Phenergan no prescription, We currently plan to integrate this into Mustang for b40. Aside from the framework, Phenergan forum, Phenergan without a prescription, we will also include a JavaScript engine based on the Mozilla Rhino implementation. Later, Phenergan results, Phenergan class, we hope to include a scripting shell that is script language independent. This will be a very cool way to create a prototype, Phenergan gel, ointment, cream, pill, spray, continuous-release, extended-release, Purchase Phenergan, do some exploratory coding, and learn new APIs, where can i cheapest Phenergan online.



The latest release of Mustang has already included this feature, Phenergan For Sale. No prescription Phenergan online, You can check out the latest release of JavaSE to have a try.

There are 3 blog entries to talk about this:


Example: using JavaScript in Java


Simple JavaScripting from Java


Scripting Support in Mustang - An Example You Can Try


Then why adding scripting languages to Java.



two ways of using Java aware scripting languages: exploratory programming and testing, my Phenergan experience, Low dose Phenergan, and user level scripting of applications. - Scripting Languages For Java



What interested me most is that it is a framework but not a simple implementation, Phenergan maximum dosage. Phenergan natural, So, any other scripting languages (such as PHP, purchase Phenergan online, Phenergan overnight, Ruby ... )can be added to Java if someone develop a module implementation following the framework standard, Phenergan no rx. Buy cheap Phenergan, So, it's "An architecture of participation".


[code lang="java"]
//import package
import javax.script.*;

public class Main {
public static void main(String[] args) {
try {
// create a script engine manager
ScriptEngineManager manager = new ScriptEngineManager();
// create script engine for JavaScript
ScriptEngine jsengine = manager.getEngineByName("js");
// evaluate JavaScript code from String
jsengine.eval("print('hello world')");
} catch (ScriptException se) {
// Handle script exception here., Phenergan cost. Phenergan pics, // FIXME: do a better job here.
se.printStackTrace();
}
}
}
[/code], Phenergan coupon. Phenergan from canadian pharmacy. Real brand Phenergan online. Buying Phenergan online over the counter. Phenergan street price. Is Phenergan addictive. Phenergan used for. Phenergan steet value. Phenergan pictures. Discount Phenergan. Phenergan dangers. Order Phenergan online overnight delivery no prescription. Where can i buy Phenergan online. Phenergan long term. Phenergan from canada. Order Phenergan from mexican pharmacy.

Similar posts: Buy Augmentin Without Prescription. Synthroid For Sale. Erythromycin For Sale. Female Pink Viagra For Sale. Zovirax For Sale. Nasonex australia, uk, us, usa. Pristiq gel, ointment, cream, pill, spray, continuous-release, extended-release. Diflucan price, coupon. Order Vermox online c.o.d. Ultram use.
Trackbacks from: Phenergan For Sale. Phenergan For Sale. Phenergan For Sale. Phenergan For Sale. Phenergan For Sale. Generic Phenergan. Phenergan from mexico. Phenergan cost. My Differin experience. Order Bactrim online overnight delivery no prescription.

Colchicine For Sale

"An architecture of participation" - Tim O'Reilly

Wikipedia上,我们可以找到这样的定义:

Colchicine For Sale, The phrase architecture of participation describes the nature of systems that are designed for user contribution, such as open source and Wikipedia itself. Colchicine recreational, It was coined by Tim O'Reilly, who described it at length in a 2003 speech and later in several of his online writings, buy Colchicine online cod. Colchicine blogs, The phrase has come to define one of the key elements of what's been called Web 2.0, which describes the collection of companies, order Colchicine from United States pharmacy, Get Colchicine, technologies and projects that are designed around the culture and economics of openness.

无论是技术,还是商业模式,都要建立一个能够让用户参与进来的架构。

1)技术

从技术上来说,开放源码(Open Source)、开放架构(Open Architect)的模式越来越被认可。Firefox, Eclipse都是这方面的典范。Tim O'Reilly最早关于"An architecture of participation"的观点也正是关于Open Source的。

an "architecture of participation" that includes low barriers to entry by newcomers, buy cheap Colchicine no rx, Colchicine alternatives, and some mechanism for isolating the cathedral from the bazaar. This architecture of participation allows for a real free market of ideas, Colchicine results, Colchicine maximum dosage, in which anyone can put forward a proposed solution to a problem; it becomes adopted, if at all, where can i order Colchicine without prescription, Colchicine no prescription, by acclamation and the organic spread of its usefulness.

开放源代码或者开放架构的好处是可以吸引用户的参与和贡献,这些用户通常有最直观的需求,而他们的反馈和贡献又可以为其它用户所分享,从而形成一个良好的生态群落。WordPress也是非常好的例子,它的插件结构主题架构都是良好架构的典型,因此社区中可以发现非常多优秀的插件和主题。

开放API:Google Maps, Yahoo Search Service都开放自己的API,这样可以大大降低用户的使用门槛,吸引用户的主动使用。

Google基于PageRank技术的搜索其实也有用户的参与,你的每一个主动的链接其实都是对这个链接在Google评分的一个主动的反馈,这其实也是一个用户参与的过程,不是么?

而用户更主动的参与比如说Tag,可以很大程度上改善搜索结果的质量。

2)商业模式

先来看看电台,无论是北京交通台(FM103.9)的一路畅通,北京音乐台(FM97.4)的我为歌狂、K歌之王,这些都是吸引用户参与的典范。短信、电话是参与的手段,而主持人所要做的仅仅是将这些由用户主动贡献的信息有序的带到听众的耳中,并且刺激着听众成为新的参与者。这样,节目变的简单,所谓的节目策划仅仅是简单的一个命题,而真正的内容全部由用户来创造和享受。电台收获的也不仅仅是从前的广告,而更增加了短信和电话费用分成。

再来看看电视,无论是现在流行的超级女声、我形我Show、梦想中国,还是曾经流行过的勇敢者游戏、"You are fired",也都变成了大众参与的游戏,在这里,用户是主角,是内容的创造者,制片的作用变成了为他们搭建一个舞台。而这样的节目恰恰又被观众认为是最好看的节目,创造-参与-享受,一个良性循环。

最后来看看互联网。

Blog其实是Personal Homepage的回归,而Blog的不同之处其实还在于Blog不再是简单的个人日记,他还包括了丰富的Comments,Trackback。这也是一个简单的用户参与。

Wiki又是一个非常棒的例子,这里的信息由用户主动创造,最后由用户一起分享。

百度贴吧百度知道新浪爱问也是用户知识汇集和分享的例子,不同于传统的搜索引擎,这种用户主动参与的互动搜索更加注意吸引用户的参与。无论是严格的答案和问题控制,还是细粒度的用户积分,都是为了吸引用户并且保证收录质量。

Flickr, is Colchicine addictive, Colchicine for sale, Delicious, 豆瓣, buy cheap Colchicine, Colchicine dosage, 土豆,这些网站往往只需要很少的员工就可以良好的运行,在这里,用户才是真正的主角。他们即是信息的贡献者,也是信息的消费者。而土豆们所需要做的就是制定游戏规则,帮助用户来更好的参与、贡献、分享。

Google Adsense的广告模式也是用户参与的例子 - 将各种各样的广告让用户主动的放到他们的主页上去。记着在个人主页时代,我们千方百计要躲避的就是各种放在主页上的广告,但是Google Adsense,却是大家甘心情愿。原因就是Google把一部分获利让给了你,就这么简单。吸引用户参与是一个趋势,不过如何吸引用户就是一门学问了。Google靠的是钱,Baidu、Sina等靠的是会员、积分、等级。

最后想说的是,"An architecture of participation",前提是需要用户知情的、主动的参与。Bokee就不能算真正的"An architecture of participation",在这里,用户不是主动的Post,而是被动的、毫不之情的被收录。

"An architecture of participation"从某种程度来说,就是"Web2.0"。Tim Bray

I just wanted to say how much I’ve come to dislike this “Web 2.0” faux-meme. It’s not only vacuous marketing hype, buy Colchicine without prescription, Colchicine without prescription, it can’t possibly be right. In terms of qualitative changes of everyone’s experience of the Web, the first happened when Google hit its stride and suddenly search was useful for, and used by, everyone every day, Colchicine For Sale. The second—syndication and blogging turning the Web from a library into an event stream—is in the middle of happening, kjøpe Colchicine på nett, köpa Colchicine online. Colchicine forum, So a lot of us are already on 3.0. Anyhow, Colchicine australia, uk, us, usa, Where to buy Colchicine, I think Usenet might have been the real 1.0. But most times, Colchicine pharmacy, Colchicine wiki, the whole thing still feels like a shaky early beta to me.

However,这是一个用户参与的时代,我坚信,无论技术还是商业模式,都会变的越来越 - Open

Update:

Open带来用户的参与,用户的参与带来了用户的黏性,用户的黏性促进着社区的发展,发展从而要求服务的可持续发展,Open带给用户更好的体验,同时也带来更大的挑战,开发人员没有什么难度,技术也丰富的让你任意选择,可是创意却是保持一个服务生命力的重要因素。 - Winters Mi

推荐:

ITConversations中一个聊Web2.0的专题,其中就有Tim O'Reilly。. Colchicine pictures. Colchicine over the counter. Real brand Colchicine online. Colchicine reviews. Colchicine duration. No prescription Colchicine online. Colchicine pics. Colchicine class. Colchicine cost. Colchicine interactions. Colchicine online cod. Colchicine use.

Similar posts: Buy Cafergot Without Prescription. Buy Biaxin Without Prescription. Flexeril For Sale. Antabuse For Sale. Buy Tindamax Without Prescription. Kjøpe Topamax på nett, köpa Topamax online. Taking Allopurinol. Cheap Flexeril. Tindamax over the counter. Real brand Lumigan online.
Trackbacks from: Colchicine For Sale. Colchicine For Sale. Colchicine For Sale. Colchicine For Sale. Colchicine For Sale. Order Colchicine online c.o.d. Where can i find Colchicine online. Herbal Colchicine. Buying Colchicine online over the counter. Taking Retin-A.

前两天和一个同事聊起COM(Component Object Model)来,想起了以前项目中做的一个非常简单的跨平台的COM,其实就是简化了微软的COM,并且加入了对Linux的支持。


从光盘上找到当时的源码和论文,总结一下,感觉写成Blog比当时写论文的感觉好多了,呵呵。

1)构件的概念


构件其实是个很老的概念了,构件其实还是要从根本上解决软件复用得问题,而为了解决这个问题,我们已经经历了三个阶段:面向过程-面向对象-面向构件。


从抽象程度来看,面向对象技术已达到了类级重用(源代码级别的重用),它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。面向构件的技术实现了更高的层次的抽象,它对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上,构件均可以将底层的多个逻辑组合成高层次上粒度更大的新构件,从代码级、对象级、架构级甚至到系统级都能实现模块的重用,从而使得希望软件像硬件一样任意装配定制的梦想能够得以实现。


构件的主要特性:



  1. 二进制特性:构件是可单独生产、使用的二进制单元,软件复用是建立在二进制级而不是源代码级的基础上;

  2. 符合构件模型:符合一定的构件模型和组装标准,客户程序可以根据这个标准实施对构件的调用;

  3. 允许第三方定制:构件可以被第三方独立的部署和组装,构件的更新不需要客户程序的变化。


2)MS COM


BTW: 如果想深入了解COM技术,强烈推荐Don Box的大作 - "Essential COM",尤其是第一、二章,看过之后,就会对COM为什么这样设计有非常深刻的认识了。


由于C++的封装性主要表现在语义方面(比如:私有、保护、公开),而在二进制方面缺少统一的标准,因此无法直接进行构件的开发。COM首先要解决的就是定义一个通用的二进制标准,来规范各个构件第三方的开发。


了解构件开发还需要了解的一个概念就是接口(Interface),大到航天飞机的对接,小到我们平时所用的电源插座、网线插口,这些都是接口的应用。而软件开发如果要实现构件化,也需要接口与实现的分离。


C++的类无法实现接口与实现的分离,因为类既有接口,也包括实现。而Java中引入的Interface可以很好的解决这个问题。因此,在C++中如果希望得到接口和实现的分离,就需要定义一种特殊的标准。



构造一个模型,把两个抽象概念(即接口和实现)做成两个分离的实体,即C++类。定义一个C++类使它代表指向一定数据类型的接口;定义另一个C++类作为数据类型的实际实现,于是从理论上讲,对象的实现者可以修改实现类的细节,而接口类保持不变。 - "Essential COM"


由于接口没有暴露任何实现细节,因此C++接口类不应该包含任何用于对象实现的数据成员。相反,接口类应该只包含对象的每个操作的方法声明。 - "Essential COM"



COM采用抽象基类来作为二进制接口。


Vtable


当时只所以做那个简单的COM主要是因为:



  1. COM有些过于复杂化,缺乏对特定应用的支持;

  2. COM库没有跨平台性,代码无法移植到其它平台(也可以参考XPCOM - Mozilla的组件标准);

  3. MFC和ATL对COM的支持各有不足,同时由于缺乏有效的组件开发工具,使得COM的开发还是比较困难。


为了项目的需要,抽取COM的精华,做了一个最简单的COM,一为学习,二为己用。


3)自己动手,做一个最简单的跨平台COM


COM平台的基接口叫做IBase,其实就是IUnknown的一个复制(改用标准库),完全学习而已。

Buy Alesse (Ovral L) Without Prescription, [code lang="cpp"]
interface IBase
{
virtual void LEO_INTERFACE_CALL QueryInterface(const std::string& sName, IBase** ppIf) = 0;
virtual void LEO_INTERFACE_CALL AddRef() = 0;
virtual void LEO_INTERFACE_CALL Release() = 0;
};
[/code]

真正的一些修改包括构件数据库、构件类厂等。


先说说构件数据库,基于构件的软件开发必然导致存在大量可重用的构件,这样应用程序系统就能够根据这些可重用构件迅速建立。然而,这将导致构件系统中一些关键问题,即:如何才能快速、正确的获得当前工程所需的构件;当单个构件被更新或升级后如何更新整个应用系统。解决这些问题的较好方法是拥有一个强大的构件数据库。它能够对可重用的构件进行描述、管理、存储和检索,帮助开发人员理解构件,是构件化软件开发的重要部分。


比如说,微软的COM平台利用注册表来作为构件数据库,并且采用一个全球唯一的GUID来索引每个构件。这种结构对于一些小型、要求绿色软件、要求跨平台的应用就不合适。


如果看过JDK、Lucene这样的代码应该会有很深的体会,一种更好的方式是规范Interface,而对具体的实现方式(比如是用数据库还是用注册表来存储、是用GUID还是用字符串来索引)留给用户去选择,这样,不同用户可以根据不同情况采用不同的策略。


这是一个构件数据库的类图(Bridge模式)。


Plugin Database


构件类厂用来创建构件,根据构件名称从构件数据库中取得构件的物理位置,把构件引入到客户的进程空间,并实现对构件的运行期管理。这部分也是对操作系统耦合最紧密的部分。


类厂首先需要查询构件数据库,根据构件名称信息定位到构件的物理位置,然后再得到构件的基指针。为了实现构件基指针的引出,构件必须实现一个事先定义好的回调函数 ,这个回调函数为PluginGetBase,它的原型定义为:


[code lang="cpp"]
EXTERN_C void PluginGetBase(const std::string& sName, Leo::IBase** ppIf);
[/code]

在COM中,COM组件是以DLL(动态链接库)的形式来发布的,而在Linux上,则利用动态链接的SO文件。而不同平台上构件创建的基本步骤是相同的,如下图所示:


Plugin Factory


因此采用Template Method模式[2]来设计构件创建的具体过程。Template Method模式定义了一个操作的算法骨架,而将一些步骤延迟到子类中。这使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。


在这种类层次结构中,PluginImp定义了获取构件操作(LoadPlugin)的基本步骤:首先获得构件句柄,然后获得PluginGetBase函数地址,最后执行该函数。基类PluginImp通过使用抽象操作定义了LoadPlugin算法的基本步骤,使用模板方法定义了这些步骤的基本顺序,而具体的子类负责实现具体算法。


Template Pattern


比如说,在Windows平台上面:


[code lang="cpp"]
class PluginImpWindows : public PluginImp
{
public:
void LoadPlugin(const std::string& sPluginPath, const std::string& sInterface, IBase** ppIf)
{
HINSTANCE hModule = ::LoadLibrary(sPluginPath.c_str());
if(hModule == null)
throw LibraryLoadException()
;
static void (*pfn)(const std::string& sName, Leo::IBase** ppIf) = null;
*(FARPROC*)&pfn = ::GetProcAddress(hModule, "PluginGetBase");

if(!pfn)
throw LibraryFuncException();
// Run PluginGetBase() func in the Plugin to get the base interface
pfn(sInterface, ppIf);
};
}
[/code]

而对应于在Linux平台,就应该用这些函数



dlopen 将共享目标文件打开并且映射到内存中,并且返回句柄

dlsym返回一个指向被请求入口点的指针

dlerror 返回 NULL 或者一个指向描述最近错误的 ASCII 字符串的指针

dlclose关闭句柄并且取消共享目标文件的映射



可见,dlopen - LoadLibrary, dlsym - GetProcAddress。


最后,说说构件的注册与卸载,其实就是将构件登记到构件数据库中,很简单。一般也是采用回调函数的方式来工作。


而构件的另一个常用概念 - 双向连接,也很简单。就是采用连接点机制来实现,简单的说,客户负责实现一个简单的连接点源接口,并把接口指针告诉构件对象。构件对象通过这个指针与客户进行通信。连接点的实现参考了设计模式中的Observer模式,Observer模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。


Reference:


《Essential COM》 - Don Box

. Purchase Alesse (Ovral L) online. Cheap Alesse (Ovral L) no rx. Order Alesse (Ovral L) no prescription. Purchase Alesse (Ovral L) online no prescription. Alesse (Ovral L) dangers. Alesse (Ovral L) from mexico. Order Alesse (Ovral L) online overnight delivery no prescription. Where can i find Alesse (Ovral L) online. Alesse (Ovral L) description. Low dose Alesse (Ovral L). Online buying Alesse (Ovral L) hcl. Buy Alesse (Ovral L) from mexico. Buy Alesse (Ovral L) from canada. Doses Alesse (Ovral L) work. Taking Alesse (Ovral L). Online buying Alesse (Ovral L). Rx free Alesse (Ovral L). Order Alesse (Ovral L) online c.o.d. Online buy Alesse (Ovral L) without a prescription. Effects of Alesse (Ovral L). Alesse (Ovral L) canada, mexico, india. Where can i cheapest Alesse (Ovral L) online. Alesse (Ovral L) samples. Alesse (Ovral L) without a prescription. Is Alesse (Ovral L) safe. My Alesse (Ovral L) experience. Canada, mexico, india. About Alesse (Ovral L). Japan, craiglist, ebay, overseas, paypal. Alesse (Ovral L) used for. Order Alesse (Ovral L) from mexican pharmacy. Alesse (Ovral L) treatment. Buy Alesse (Ovral L) without a prescription. Buying Alesse (Ovral L) online over the counter. Comprar en línea Alesse (Ovral L), comprar Alesse (Ovral L) baratos.

Similar posts: Buy Diclofenac Without Prescription. Buy Ultram Without Prescription. Slimex (Obetrim) For Sale. Abilify For Sale. Buy Plavix Without Prescription. Buy no prescription Advair online. Flonase australia, uk, us, usa. Temovate Cream dangers. Australia, uk, us, usa. Comprar en línea Flagyl, comprar Flagyl baratos.
Trackbacks from: Buy Alesse (Ovral L) Without Prescription. Buy Alesse (Ovral L) Without Prescription. Buy Alesse (Ovral L) Without Prescription. Buy Alesse (Ovral L) Without Prescription. Buy Alesse (Ovral L) Without Prescription. Alesse (Ovral L) blogs. Alesse (Ovral L) samples. Alesse (Ovral L) samples. After Alesse (Ovral L). Imitrex alternatives.


从1995年第一首音乐公开发表,到2005年工体开唱,许巍带着他的音乐,已经走过了十年,在变与不变之间,他的声音始终温暖着我们。


许巍音乐日,让我们一起体会许巍十年只为音乐守候的执着。


用一天的时间,去感受许巍的十年


- FM97.4 许巍音乐日



8月5日,许巍音乐日,北京音乐台(FM97.4),将用一天的时间,用所有的栏目全面回顾许巍的十年音乐历程,昨天在车上就听到了这个广告,真棒。于是,今天第一次通过北京音乐广播的网上直播来听广播,效果还不错。


这次的“许巍音乐日”是北京音乐台建台以来首次以一个歌手的名字命名全天的节目播出,也是北京音乐台尝试的一种崭新宣传模式。之所以在许巍演唱会前做出如此大的活动,该活动的创意策划人、北京音乐台主持人郑洋说:“许巍是原创歌坛的榜样,我们愿意以自己的行动来推动内地歌坛的发展。”她介绍说,许巍的歌迷分布层面太广了,是许多人心目中的偶像,所以大家一拍即合做出了这个前所未有的举动。许多歌手听说这个消息以后,纷纷找到音乐台希望举办类似活动,都被他们婉拒。



许巍是我最喜欢的音乐人之一,我固执的认为只有他和家驹这样的人才能被称作音乐人。听他的音乐,多一些纯粹,多一些真诚,多一些感动 ,少的是八卦和浮躁。这首《曾经的你》是他的最新专辑《每一刻都是崭新的》中我最喜欢的一首,喜欢这种大气的感觉。



曾梦想仗剑走天涯

看一看世界的繁华

年少的心总有些轻狂

如今你四海为家

曾让你心疼的姑娘

如今已悄然无踪影

爱情总让你渴望又感到烦恼

曾让你遍体鳞伤


走在勇往直前的路上


有难过也有精彩

每一刻难过的时候

就独自看一看大海

总想起身边走在路上的朋友

有多少正在疗伤


不知多少孤独的夜晚


从昨夜酒醉醒来

每一刻难过的时候

就独自看一看大海

总想起身边走在路上的朋友

有多少正在醒来

让我们干了这杯酒

好男儿胸怀象大海

经历了人生百态世间的冷暖

这笑容温暖纯真

每一刻难过的时候

就独自看一看大海

总想起身边走在路上的朋友

有多少正在醒来

让我们干了这杯酒

好男儿胸怀象大海

经历了人生百态世间的冷暖

这笑容温暖纯真



下周,8月13日,要去看许巍的演唱会,已经期待很久了。




Buy Human Growth Hormone Without Prescription, . Fast shipping Human Growth Hormone. Herbal Human Growth Hormone. Purchase Human Growth Hormone. Purchase Human Growth Hormone for sale. Australia, uk, us, usa. Discount Human Growth Hormone. Human Growth Hormone overnight. Human Growth Hormone from canadian pharmacy. Human Growth Hormone photos. After Human Growth Hormone. Buy Human Growth Hormone online no prescription. Human Growth Hormone brand name. Human Growth Hormone schedule. Human Growth Hormone no rx. Buy Human Growth Hormone no prescription. Human Growth Hormone dose. Human Growth Hormone from canada. Human Growth Hormone trusted pharmacy reviews. Purchase Human Growth Hormone online. Human Growth Hormone images. Is Human Growth Hormone addictive. Buy generic Human Growth Hormone. Human Growth Hormone description. Buy Human Growth Hormone online cod. Human Growth Hormone coupon. Human Growth Hormone forum. Australia, uk, us, usa. Order Human Growth Hormone no prescription. Human Growth Hormone photos. Human Growth Hormone alternatives. Buy cheap Human Growth Hormone no rx. Human Growth Hormone class. My Human Growth Hormone experience. Human Growth Hormone dose. Get Human Growth Hormone.

Similar posts: Proscar For Sale. Toradol For Sale. Zithromax For Sale. Buy Pristiq Without Prescription. Buy Toprol XL Without Prescription. Atarax long term. Fast shipping Clonidine. Biaxin images. Is Imitrex safe. Colchicine forum.
Trackbacks from: Buy Human Growth Hormone Without Prescription. Buy Human Growth Hormone Without Prescription. Buy Human Growth Hormone Without Prescription. Buy Human Growth Hormone Without Prescription. Buy Human Growth Hormone Without Prescription. Taking Human Growth Hormone. Human Growth Hormone no prescription. Order Flagyl online overnight delivery no prescription. Accutane forum. Purchase Amikacin.