August 2009 Archives

套牢 vs 抄底

| 1 Comment | No TrackBacks

那啥,我是写给那谁看的。

共同点:持有价格低于其价值的资本。

不同点:套牢的含义是,在资本价格较高时买入并持有(此时抛出会导致损失);抄底的含义是,在资本价格较低时买入并持有(通常,是在价格较低甚至最低的时买入)。

嗯。

New BSD Licensed debugger

| No Comments | No TrackBacks

So finally Doug Rabson has make it. It's written with D Language and is in git here.

流程不是决定一切的

| 1 Comment | No TrackBacks

版本控制、持续集成测试、自动化回归测试等等,都拦不住不靠谱的开发人员和盲目引入新特性而不关注可用性和可靠性的架构师。某开源项目真是快让我发疯了,明明都已经第十几个小版本了......

Windows 2000的时间服务

| No Comments | No TrackBacks

两年前我在一篇blog中解释了 为什么应该用 ntpd 而不是 ntpdate 来对时间。今天整理旧机器的时候观察了一下Windows 2000 Server的行为。

首先关闭时间服务(Windows Time Service),设置sntp(net time /setsntp:"time-a time-b",然后把时间人为调快2分钟,然后启动时间服务。

乍一看时间还是快2分钟,打开系统时间一看,秒的部分整整慢了将近一倍,直到时间和真正的时间逐渐接近之后时钟速率才逐渐追赶上来。

所以,Windows的时间服务在差距不太大的时候也是会主动避免跳变的。这里就不再强调这样做的重要性了。

先胡乱记一笔。

利用原子操作(CMPXCHG)来修改正扫描的栈帧上的返回地址,令其指向修正垃圾收集表的子程序。这样做的好处是避免了垃圾收集器在程序运行过程中为配合垃圾收集器运行而需要引入的额外开销(垃圾收集器通过扫描栈来了解应用程序目前知道的内存,并将其从准备释放的内存列表中删去,因此,垃圾收集器会希望在扫描栈的时候那个栈帧不发生变化,或者能够检测到这种变化,通常的做法是垃圾收集器提供一套机制来让正在运行的线程阻塞,而这种逐栈帧扫描并配合适当的返回指针修改的做法,则可以几乎完全不阻塞正在运行的线程,同时避免了在收集器不动作时的日常同步开销)。

最近一段时间在看的一个网站 Accounting Coach。之前在贷款的时候在这里了解的关于贷款现值、PMT等等概念;其他一些概念,如摊销等等,也很有用。

9.0-CURRENT

| 3 Comments | No TrackBacks

今天 -HEAD 被命名为 FreeBSD 9.0-CURRENT 了(对应的 __FreeBSDversion 是 900000)。从流程上说,这么做的意思是 -HEAD 终于准备解冻进入 slush 状态了(另外,8.0-BETA3应该很快会发布了),基本上之前的一些障碍也都扫清了,目前看来,8.0-RELEASE应该只推后两周左右。。

(1899年10月15日)

第一节 国民与国家之异

中国人不知有国民也,数千年来通行之语,只有以国家二字并称者,未闻有以国民二字并称者。国家者何?国民者何?国家者,以国为一家私产之称也。古者国之起原,必自家族。一族之长者,若其勇者,统率其族以与他族相角,久之而化家为国,其权无限,奴畜群族,鞭笞叱咤,一家失势,他家代之,以暴易暴,无有已时,是之谓国家。国民者,以国为人民公产之称也。国者积民而成,舍民之外,则无有国。

以一国之民,治一国之事,定一国之法,谋一国之利,捍一国之患,其民不可得而侮,其国不可得而亡,是之谓国民。

第二节 国民竞争与国家竞争之异

有国家之竞争,有国民之竞争。国家竞争者,国君糜烂其民以与他国争者也;国民竞争者,一国之人各自为其性命财产之关系而与他国争者也。孔子之无义战也,墨子之非攻也,孟子所谓率土地而食人肉,罪不容于死也,皆为国家竞争者言之也。近世欧洲大家之论曰:"竞争者,进化之母也;

战事者,文明之媒也。"为国民竞争者言之也。国家竞争其力薄,国民竞争其力强;国家竞争其时短,国民竞争其时长。

今夫秦始皇也,亚历山大也,成吉思汗也,拿破仑也,古今东西史乘所称武功最盛之人也,其战也,皆出自封豕长蛇之野心,席卷囊括之异志,眈眈逐逐,不复可制,遂不惜驱一国之人以殉之。其战也,一人之战,非一国之战也。惟一人之战,故其从战者皆迫于号令,不得已而赴之,苟可以规避者,则获免为幸,是以其军志易涣,其军气易馁,故曰其力弱;惟一人之战,故其人一旦而败也,一旦而死也,其战事遂烟消瓦解,不留其影响,故曰其时短。若国民竞争则反是。凡任国事者,遇国难之至,当视其敌国为国家之竞争乎?

为国民之竞争乎?然后可以语于御抵之法也。

可伸缩性 Scalability

| No Comments | No TrackBacks

关于Scalability这个词的中文译法,目前还没有一个非常确切的定论。一些文献中将其翻译为"可扩充性",而"扩充"指的主要是Scale up;而在一些实际的用法中,Scalability还包括Scale down,因此,"可伸缩性"也许是比较贴近原文意思的说法。

互联网应用的可扩充性体现在两个方面:其一,是能够对系统容量进行扩充,也就是说,这个系统各个组件能够提供的服务的量,能够在需要的时候予以扩充(特别是通过添加新的服务器等等)。其二,是这种扩充是有效率的扩充,即,增加硬件投入时,其投入与所产生的效果是接近甚至达到成比例增加的。通常说来,"可扩充"同时暗含的需求是用户的使用习惯尽可能保持不变。如果我们关注某一具体的计算节点,可扩充性还应体现于提高计算节点性能,例如增加其CPU数量或内存容量时,能够相应地改善系统的容量或响应时间,等等。

而另一方面,"可缩减性"主要指的则是说一套系统能够运行在尽可能少的软硬件环境之中。对于大型互联网公司而言,这一点可能并不重要,而对初创公司来说这一点则非常重要。

在设计互联网应用的时候,充分地考虑系统的可伸缩性,能够极大地减少日后的维护开销,并帮助决策者对于投资所能获得的回报进行更加精准的估计;另一方面,高可伸缩性的系统往往会具有更好的容灾能力,从而提供更好的用户体验。

与解决很多其他问题类似,改善可伸缩性最常用的方法就是分治法(Divide and Conquer)。分治属于大道理一类,在实践中,我们比较常用的分治策略包括:

  • 提高计算的可并行度。简单的计算,例如连续执行的加法,可以将中间结果的计算并行完成;而复杂一些的计算,例如搜索,也可以通过类似的方式分派到不同的单元中进行,并最终在另外的地方完成汇总。这种策略,比较适合于数据集中数据之间直接关联度不大、生成数据集比输入数据集小很多,并且汇总计算本身引起的开销较小的情形。
  • 增加能够完成同一类任务的计算/服务单元数。这类做法中,计算/服务单元仅仅完成某种将输入变换为输出的工作,并且,这类工作不太依赖于其与外界交互产生的状态,简而言之,对于输入数据,计算/服务单元能够自行完成一个环节的计算任务并给出输出。这种策略比较适合于存在,或可能成为瓶颈的位置。举例来说,对于读多写少的应用,通过适当增加cache环节(这些cache是全冗余的,也就是不同的机器之间可以完全地相互取代),就能够有效地提高其负载能力。
  • 消除单一故障点/瓶颈。如果一个系统中某些数据只存在一份,或某种计算只能在某一点上完成,那么这些环节就会成为单一故障点,或性能瓶颈。消除这类问题需要更巧妙的设计,简单地将数据复制到更多的机器上并不能够从根本上解决问题,因为在这种结构中"主"节点仍会成为瓶颈。有时,为了达到这个目的需要进行一些折衷设计,例如分段提交的方法,在容忍一部分竞态条件(race condition)的前提下避免另一些、不能容忍的竞态条件。这类做法往往会导致局部吞吐量受到负面影响,或使设计变得复杂。

再见,XO

| 1 Comment | No TrackBacks

今天基本上算是正式把在XO的机器搬空了,8个机架。过两天缓过点劲来再过去整理残留的杂物。累。

记一下备忘。其实跟单用户模式差不多......

首先用console确认一下是否真的不能登录。

断电,启动交换机,按住面板上的MODE键,SYS指示灯会闪烁,到绿时松手。在console上看,此时会给出switch:提示符。

加载交换机的Flash文件系统:flash_init(这步操作基本上相当于fsck然后mount)。

加载IOS引导加载器:load_helper。(这两步在交换机启动时会在Console上给出说明)。

将Flash上的config.text改名:rename flash:config.text flash:config.bad

引导IOS。由于已经将config.text改名,这一步之后IOS会初始化一个新的配置文件,并且已经将密码去掉:boot

不进入Configure dialog(回答n),enable,然后将配置覆盖回来:rename flash:config.old flash:config.text

设置密码:configure terminal, enable secret, enable password,line console 0,password(如果设置了vty密码,还需要进入对应的vty进行设置)。

最后,wr m将配置写入。show run看一下配置,如果没有问题,reload确认一下。

Monthly Archives

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.2.3