心似双丝网,中有千千结

昨晚做了一个颇为奇怪的梦,梦中自己口中吐出许多白丝,似乎是从肺中抽出来的,对着镜子看到自己,感觉莫名的真实。很久没有做过这样奇怪的梦了,似乎也很久都不记得自己做了什么梦了,于是在早上六点多一点便起床了。或许只是嗓子不舒服,所以梦中有所反应吧。或者其实是自己心里面的确结了太多的结,不禁想起那句“心似双丝网,中有千千结”。于是又习惯性得查一查这句的出处,原来是出自宋代词人张先的《千秋岁》

数声鹈鹕,又报芳菲歇。惜春更把残红折,雨轻风色暴,梅子青时节。永丰柳,无人尽日花飞雪。
莫把幺弦拨,怨极弦能说。天不老,情难绝。心似双丝网,中有千千结。夜过也,东窗未白孤灯月。

读来颇有些柳永的感觉,可惜自己似乎并不知道张先,并接着维基百科了一下,这下发现原来他和柳永其名,我真是孤陋寡闻啊。他活到八十八岁,而且就是那句著名的“一树梨花压海棠”中的梨花,他最大的儿子和最小的女儿相差六十岁,的确是风流人物啊。

十八新娘八十郎,苍苍白发对红妆。鸳鸯被里成双夜,一树梨花压海棠。

看来保持好奇心是一件好事情,会发现很多有意思的事情。

不负如来不负卿

早就听说这句“不负如来不负卿”,却从来没有去留心它的出处。今天无意中居然查到是源于六世达赖仓央嘉措的诗句,耳闻过这位多情的活佛,却没有做进一步的了解,我实在是视野太狭隘了。

曾虑多情损梵行, 入山又恐误倾城,
世间安得双全法, 不负如来不负卿。

读起来颇朗朗上口,却又能感觉到作者那种无可奈何,为世俗所不容的心境,又不禁想起元稹的《离思》,都是以意境取胜。

曾经沧海难为水, 除却巫山不是云,
取次花丛懒回顾, 半缘修道半缘君。

看来啥时候有空得找本关于仓央嘉措的书看一看,考虑买入这本http://product.china-pub.com/1694355。

天下最危险者,无过良善暗懦人

我有个习惯,就是在新闻或者别的地方看到一个历史人物相关的文章后,总是要去维基百科上再查一下,今天查了下黎元洪。让我感兴趣的是严复对于黎元洪的评价:

黎公道德,天下所信。然救国图存,断非如此道德所能有效。何则?以柔暗故!遍读中西历史,以为天下最危险者,无过良善暗懦人。下为一家之长,将不足以庇其家,出为一国之长,必不足以保其国”

这个评价其实颇为中肯,他的女儿黎绍芳便是牺牲者之一,1914年与袁世凯第九子袁克玖订婚,这是袁世凯在位时与黎元洪达成的一桩政治婚姻。被迫嫁入袁家时已经二十八岁。因对婚姻不满,忧郁终日而患精神病。1934年与袁克玖完婚, 婚后感情不合,病情加重,被送入精神病院。1945年4月15日抑郁而终,未生育儿女。而张勋复辟也是他一手造成的,却也不是保国的人物。
记得曾国藩家书中有一句,“男儿以懦弱无刚为大耻”,看到这些背后颇有些凉意,自己其实何尝不是一个这样的人呢?善良并非一种过错,但是优柔寡断,懦弱无刚则是致命的缺陷。又想起史记中妇人之仁的项羽,”项王见人,恭敬慈爱,言语呕呕,人有疾病,涕泣分食饮,至使人有功,当封爵者,印刓弊,忍不能予,此所谓妇人之仁也”,终究还是无颜见江东父老。
历史是一面镜子,从中看到别人的经验和教训,也要成为自我反思的一种途径,这也是读书的一个重要目的。自勉!

快乐有时候就是一种简单

读论语的时候,看到孔子与弟子讨论人生理想的时候,提到了“莫春者,春服既成,冠者五六人,童子六七人,浴乎沂,风乎舞雩,咏而归”。在我看来应该是强调人和自然地接触很重要,一种超然的心态也是儒家非常重视的。
暮春,是指农历三月,今天应该是农历三月三。正好前几天同事热心组织今天出去爬鹫峰,想到孔子的理想,于是便欣然同意。这次出游又一次证明了计划赶不上变化,约好了九点半的聚会在十点半的时候还是没有到齐,终于还是分头行事了。七八个人便决定去颐和园玩三国杀。
门口自然还是有兜售便宜门票的,20块钱,是通过在公园年票上作假来实现的,比正式的门票要便宜15块钱。以我以前的性格自然是不会做这种事情的,总有一种做贼的感觉。但是既然有人同意这样那也便随大流了,毕竟做人还是要灵活一些。只是感慨一下,只要有漏洞就一定会有人钻,到底是制度的问题还是人的本性如此?
颐和园里面依旧熙熙攘攘的人流,在下坡的小路中撞到正在亲热的一对,我们便自觉绕开了,只是感慨春色满园关不住啊,春天毕竟是春天啊,万物发春啊。
终于找到一块地方,在一起玩三国杀和杀人游戏,输了的人翻跟头或者做30个俯卧撑,颇吸引了不少游客的眼光。以前的我是很难在大庭广众之下翻跟斗的,但是现在看来似乎的确没啥,毕竟,简单点,自己开心才是最重要的。学会放松,学会坦然的生活。很多事情远比你想象中的简单和随意。

自助者天助之,自弃者天弃之

最近颇有些自暴自弃,花费了不少时间在网上玩三国杀,甚至还完全打乱了自己的生活作息规律和学习的计划,心里面总是有些事情堵着在。如果这样继续下去,你到底要往哪里去呢?
想起那句话性格决定命运,如今的处境和你的性格有莫大的关系。如果你不解决问题,你自己就会成为问题,你现在自己就是一个大问题。你知道现在的生活不是你想要的,但是却没有任何行动去改变现实,而是坐视时光一天天溜走,每次打电话回家之后总是内心充满了愧疚。
自助者天助之,自勉!不要等到以后再后悔!

[Powershell] Script to install software

Today I want to check whether the Windbg is installed on the target machine with expected version, and if not, install the correct version with Powershell. It turns out that Powershell is really powerful to do such things.

$dbgApp = get-wmiobject -class "Win32_Product" -namespace "root\CIMV2" | where {$_.Caption -like '*Debugging Tools for Windows*'};
if ($dbgApp -eq $null -or !$dbgApp.Version.StartsWith("6.13"))
{
    msiexec /passive /i D:\Debug\dbg_amd64.msi;
}

Windbg + SOS complains Failed to load data access DLL, 0x80004005

When I debug one .Net 4.0 program with SOS. After .loadby sos clr then run any SOS command results in following errors:

Failed to load data access DLL, 0x80004005 Verify that
1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of mscorwks.dll is in the version directory
3) or, if you are debugging a dump file, verify that the file mscordacwks_.dll is on your symbol path.
4) you are debugging on the same architecture as the dump file. For example, an IA64 dump file must be debugged on an IA64 machine.
You can also run the debugger command .cordll to control the debugger's load of mscordacwks.dll. .cordll -ve -u -l will do a verbose reload. If that succeeds, the SOS command should work on retry.
If you are debugging a minidump, you need to make sure that your executable path is pointing to mscorwks.dll as well.

By google, some posts were found with same error info. But most of them are focus on the debugging dump on another machine with differnt mscordacwks version. This is not the case as I’m doing living debug. From the 1) hint of the error message I check the Windbg version is 6.6 and then install the newest version 6.13.0006. It works!
~~~~~~~
The same error happened during debug a Waston dump. The solution is

0:000> .cordll -ve -u -l
CLRDLL: Unable to find mscordacwks_AMD64_AMD64_2.0.50727.5005.dll by mscorwks search
CLRDLL: Unable to find 'mscordacwks_AMD64_AMD64_2.0.50727.5005.dll' on the path
CLRDLL: Unable to find mscorwks.dll by search
CLRDLL: ERROR: Unable to load DLL mscordacwks_AMD64_AMD64_2.0.50727.5005.dll, Win32 error 0n2
CLR DLL status: ERROR: Unable to load DLL mscordacwks_AMD64_AMD64_2.0.50727.5005.dll, Win32 error 0n2

The version we are trying to find is 2.0.50727.5005, while check the attribute of file mscordacwks.dll under D:\Windows\Microsoft.NET\Framework64\v2.0.50727 it turns out its version is 2.0.50727.4454. Copying the mscordacwks.dll from the machine where the dump was generated to the root path where Windbg is installed and rename it to mscordacwks_AMD64_AMD64_2.0.50727.5005.dll. It works!