马伯庸:《孔雀东南飞》与建安年间政治悬案

本文乃转载,原作者马伯庸

我对《孔雀东南飞》的兴趣,最早始于陆侃如先生。当时他在做博士论文答辩的时候,有考官问他孔雀为何东南飞,陆先生答曰:“西北有高楼。”以古诗十九首对乐府,有问有答,可谓精妙之极。

《孔雀东南北》这首长诗我很早以前就读过,不过当时只是沉浸在焦、刘二人的爱情悲剧之中,并未有其他想法。在一个晴朗的下午,我厌倦了魔兽、看腻了松岛枫,重新从书架上抽出这首长诗,决定陶冶一下情操。

这一次重读,我发现了一个之前未曾多加注意的细节:这篇诗篇虽然是南北朝时期的作品,但却发生在汉末建安年间。建安年间,那正是三国鼎立前最热闹的二十几年,这让我产生了一些考据的兴趣。

《孔雀东南飞》(以下简称《孔雀》)的序里提到“汉末建安中,庐江府小吏焦仲卿妻刘氏。”可见这个故事发生在庐江,而且能称府的,显然是庐江郡的治所舒城,但这个故事可能发生在皖城。这个后面会有解释。
Continue reading “马伯庸:《孔雀东南飞》与建安年间政治悬案”

详解Javascript中的Url编码/解码

摘要

本文主要针对URI的相关问题做了介绍,对中哪些字符需要编码、为什么需要编码做了详细的说明,并对比分析了中和编解码相关的几对函数escape / unescape,encodeURI / decodeURI和encodeURIComponent / decodeURIComponent。

预备知识

foo://example.com:8042/over/there?name=ferret#nose
\_/  \______________/ \________/\_________/ \__/
|                 |                        |                    |             |
scheme     authority               path             query      fragment

URI是统一资源标识的意思,通常我们所说的Url只是URI的一种。典型Url的格式如上面所示。下面提到的Url编码,实际上应该指的是URI编码。
Continue reading “详解Javascript中的Url编码/解码”

阉党

是谁写下了史家之绝唱,无韵之离骚?/是阉党!是阉党!/

是谁改良了造纸术,传承了人类文明?/是阉党!是阉党!/

是谁伏边定远,为大唐平定西南蛮夷?/是阉党,是阉党!/
是谁操持国政,挽唐廷于既倒?/是阉党,是阉党!/

是谁拓边西北,经略幽燕?/是阉党,是阉党!/

是谁扬帆远航,扬国威于万里之外?/是阉党!是阉党!/

是谁只手擎天,压制祸国殃民的东林党?/是阉党!是阉党!/

阉党垮台了,汉唐宋明就灭亡鸟,介就素历史的真相挖!!!!

史上最冷最经典的自杀案件

*1994年美国报界评出十大最离奇的新闻。*

其中一件新闻是这样的: 这一年的3月23日,纽约警察总局的法医检查了一具尸体,得出结论:此人死于头部枪击。

死者名叫罗纳德·奥普斯,从他留下的遗书中得知,他本来是想从一幢十层高的楼的顶部跳下自杀的。然而,当他跳楼后身子经过第九层楼前时,一颗子弹从窗户里射出,将他当场打死。

警方经过调查发现,死者和开枪的人都不知道一个情况———当时八楼正在施工,工人们在那里刚装了一张安全网,也就是说罗纳德·奥普斯如果不是被枪击而亡,他的自杀计 划其实是不能如愿的。
Continue reading “史上最冷最经典的自杀案件”

浅谈线程池:线程池的作用及CLR线程池

原文地址:http://www.cnblogs.com/JeffreyZhao/archive/2009/07/22/thread-pool-1-the-goal-and-the-clr-thread-pool.html

线程池是一个重要的概念。不过我发现,关于这个话题的讨论似乎还缺少了点什么。作为资料的补充,以及今后文章所需要的引用,我在这里再完整而又简单地谈一下有关线程池,还有.NET中各种线程池的基础。更详细的内容就不多作展开了,有机会我们再详细讨论这方面的细节。这次,还是一个“概述”性质的,希望可以说明白这方面问题的一些概念。

线程池的作用

其实“线程池”就是用来存放“线程”的对象池。

在程序中,如果某个创建某种对象所需要的代价太高,同时这个对象又可以反复使用,那么我们往往就会准备一个容器,用来保存一批这样的对象。于是乎,我们想要用这种对象时,就不需要每次去创建一个,而直接从容器中取出一个现成的对象就可以了。由于节省了创建对象的开销,程序性能自然就上升了。这个容器就是“池”。很容易理解的是,因为有了对象池,因此在用完对象之后必须有一个“归还”的动作,这样便可以把对象放回池中,下次需要的时候就可以再次拿出来使用了。
Continue reading “浅谈线程池:线程池的作用及CLR线程池”

浅谈五子棋的后中先和连续进攻

下棋当一方出现胜利的机会时,很多同学尤其是初学者都会选择连续进攻,能够顺利的杀出来当然是件非常愉悦身心的事,因为vct本身就是一件快乐的事。但实战当中,很多时候实际上并没有vct,只是具有潜在的杀机而已。又或者确实有vct,但非常复杂,步数比较多,目算难以看清,这时候强攻的话,出错的机会就变大了,可能一不小心就把唯一的取胜手顺给浪费了,也就顺便把胜利拱手相让了。我在qq游戏里看到很多这种强攻然后崩盘的情况了。记住一句很老的话:己落一子,敌增一兵。下棋是双方的,你每攻一步,对方就多一个防子,这些子既减少了你攻击的路数,使你少了一个可以落子的点位,也是潜在的反击力量!
btw:如果你是高手,棋盘上出现了vct,只要不是几十手那么变态,你就能看出来的话,本文后面的内容你可以不看了。初学者请继续。
下面说后中先,啥意思呢?其实说穿了就是牵制,也可以叫控制。如果连续攻击是出鞘的利剑,那么后中先就是拉满弦的弓箭,蓄势待发。表面上我没有攻击你,局面上也也只有vct而没有vcf,有时甚至连vct也没(但极可能再做一手棋就彻底无防),对方理论上可以不防,而去选择进攻。而实际上呢,对方可能的攻击路线上,都被留了一道后门,就是攻击是会被反先,对方的攻击实际上不会奏效,反而会因为盲目的攻击给你又添加了反击的子力。这就是所谓的后中先,表面上是丢掉了先手,实际上牢牢把握了先手。
Continue reading “浅谈五子棋的后中先和连续进攻”

Finalizer线程对Object生命周期的影响

这期博客的话题有些沉重,我们来讨论.net对象的生生死死。首先,要给生死下个定义。在这篇博客中,每当谈及一个对象是死了的对象,指的是用户无法再获得其引用。这个定义是个对用户友好的定义,因为有很多时候,对象还残存在托管堆上,CLR依旧可以通过一些手法来获得它(比如RCW缓存中通过SyncBlk),但是这种“生不如死”的状态不在今天的讨论范围之内。
言归正传。众所周知,.NET倚仗GC管理分配在托管堆上的对象(也就是new出来的东东)。为了提供类似c++中析构函数的功能,也就是在对象即将死去的时候,执行一段用户代码来做一些清理工作,比如在一个COM组件上调用它的Release方法。
出于性能的考虑,CLR使用一个独立的线程来执行对象的Finalize方法,所以Finalize方法的执行并不是GC.Collect的一部分。下面一个程序验证了这个说法。

using System;
using System.Threading;

class ObjectWithFinalizer
{
    ~ObjectWithFinalizer()
    {
        Thread.Sleep(1000);
        Console.WriteLine("Finalize in thread {0}", Thread.CurrentThread.ManagedThreadId);
    }
}
class Program
{
    public static void Main()
    {
        Console.WriteLine("Run in thread {0}", Thread.CurrentThread.ManagedThreadId);
        ObjectWithFinalizer owf = new ObjectWithFinalizer();
        GC.Collect();
        Console.WriteLine("GC.Collect() end");
    }
}

Continue reading “Finalizer线程对Object生命周期的影响”

老鼠嘲笑猫的时候,身旁必有一个洞

1,绅士无非就是很有耐心的狼。
2,老鼠嘲笑猫的时候,身旁必有一个洞。
3,女人吻男人是一种幸福,男人吻女人是一种口福。
4,男人:二十岁的时候,是半成品;三十岁的时候,是成品;四十岁的时候,是精品;五十岁的时候,是极品;六十岁的时候,是样品;七十岁的时候,是纪念品。
5,站在山顶和站在山脚下的两人,虽然地位不同,但在对方眼里,同样的渺小。
6,结论就是你懒得再想下去的地方。――路的尽头,仍然是路,只要你愿意走。
7,使我们不快乐的,都是一些芝麻小事,我们可以躲闪一头大象,却躲不开一只苍蝇。
8,最好的与最坏的创造了历史,平庸之辈则繁衍了种族。
9,在这世上惟一件事比别人议论更糟,那就是无人议论你。
10,一颗将爆的炸弹比一颗已爆的炸弹恐怖得多。
Continue reading “老鼠嘲笑猫的时候,身旁必有一个洞”

死亡巧合

  • 在亚伯拉罕·林肯遇刺98年之后,美国总统肯尼迪也遇刺了刺客同样,姓约翰!而肯尼迪的秘书姓林肯而林肯的秘书姓肯尼迪.
  • 两人的继任者都是南方人,都叫JOHNSON. 林肯的继任者,ANDREW JOHNSON,生于1808.肯尼迪的继任者,LYNDON JOHNSON,生于1908.
  • 刺杀林肯的凶手布思(John Wilkes Booth)生于1839年,刺杀肯尼迪的凶手奥司华德(Lee Harvey Oswald)生于1939年
  • 两人都在星期五被暗杀
  • 两人都是头部中弹
  • 两人的凶手都是南方人
  • 刺杀林肯的凶手从一间戏院跑出,在一间仓库被抓获 ,刺杀肯尼迪的凶手从一间仓库跑出,在一间戏院被抓获
  • 两个凶手都是在审判尚未开始时遭人枪杀