C#: 双检锁 (Double Checked Locking)

以下内容是我在公司作为新人培训讲师时对于作业的一次评价,简单介绍了双解锁的作用,可以作为一个简单的参考。

大家可以思考这样一个问题,一个程序可以对应多少个日志文件?对于我们这个小程序来说1个就够了,很多同学在设计Logger类的时候都是在构造方法或初始化方法中生成日志文件的,也就是说,这基本上等价于一个Logger的实例对应一个新的日志文件(或重新对同一文件重新开启流)。

Logger myLogger = new Logger(@“D:my.log”);

如何才能阻止Logger被随意的new出实例呢?我们可以修改Logger的构造方法,让构造方法成为private的,这样就能实现谁都不能new出Logger实例的目的了。但是,访问修饰符(如private)只是影响类之外的使用,对于Logger类的内部,是不会受到private的影响的,也就是说,我们依然可以在Logger类中使用new来创建实例,这正是我们想要的,我们可以为用户提前创建好一个实例,并作为这个类的静态成员存在,从而得到这样一个Logger类:
Continue reading

黑夜的路上,远处的车灯让光与物交织成一只发光的矫捷白猫,映在墙上。而让我不得知的是那白猫究竟是想躲藏于黑暗之中,还是想将自己殆尽来代替那些黑色?

Office Delve 初窥 – What is Office Delve?

在此鸣谢 Ted 对于资料的协助/整理。

1 什么是Delve

Office Delve (codename Oslo) 是由微软于2014年7月发布的Office 365的最新成员,它为Office 365用户提供了方便的搜索和邮件、会议、联系人、社交网络等管理功能,并通过用户的行为以及与内容、主题和联系人的关系生成一组分析结果。Delve在具体的实现中,应用了机器学习和人工智能技术,我们可以把它当做一个整合了Office 365各类数据信息源的商务智能搜索工具。同时,Office Delve也是第一款采用Office Graph技术的产品(Delve 背后的大脑就是 Office Graph,当我们通过Office 365工作时,Office Graph在后台会收集和分析用户发送的信息)。在2015年4月,微软为Office 365的订阅用户发布了移动版本(iPhone and Android)的Office Delve,目前还没有本地版本Office Delve的消息
Continue reading

How-to: 百度结构化数据插件 Checkurl 请求失败

WordPress 在安装百度结构化数据插件后,能又快又全的向百度提交论坛网页及内容,帮助百度 Spider 收录我们的站点,对于优质的数据资源,可应用结构化摘要样式优化网站在百度搜索结果页的展现。
我们可以从下方地址下载该插件:
http://zhanzhang.baidu.com/dataplug/index

安装的过程,我们可以参考月光博客的这篇文章,安装过程非常简单,但是在安装并启用百度结构化数据插件后,我们需要对站点进行验证。这一过程经常会出现 Checkurl 请求失败 或 验证 sign 检测失败 等问题,这都是由于 WordPress 内建缓存或第三方缓存插件引起的问题,我们需要在通过验证前,将这些缓存机制临时停止。
Continue reading

(转载) 程序员都应遵守的 11 条规则

转载地址:http://www.oschina.net/translate/11-rules-all-programmers
原文地址:http://dotnet.dzone.com/articles/11-rules-all-programmers

我是一个倾向于生活在规则下的人。
现在,这些规则大部分是我本人为自己设立的-但它们依然是规则。
我发现为自己创建规则可以让我过得更好,因为这样做可以提前决定一些事情,而不是要在匆忙中做出所有的决定。
我今天早上应该去健身房吗?
我的规则告诉我说我要在周三前往健身房,今天是周三,因此我要去健身房,就这么办了!
这周,当我正在思考那些对我施加有影响的规则时,我想到了去制定一系列软件开发者都应该遵守的规则,我认为这可能是一个好主意。
Continue reading

SQL Server: 创建 XML 索引 提升查询效率

Scenario: 最近在工作中遇到一个问题,客户访问公司产品的某报表功能时,速度极慢,在客户环境甚至达到15+分钟的页面载入时间。经分析,问题的原因是多方面的,其中最主要的一项是产品数据库(SQL Server)的一个核心字段采用了XML类型存储,先不讨论其设计的优劣,但大量的XML查询确实大大的影响到了产品体验。
Continue reading

维瓦尔第 —— 巴洛克音乐的传奇

Antonio Lucio Vivaldi

Antonio Lucio Vivaldi

安东尼奥 · 维瓦尔第 (Antonio Lucio Vivaldi) (1678-1741) —— 巴洛克时期意大利著名作曲家、小提琴家、神父。他出生在威尼斯一个普通乐师的家庭里,昵称红发神父,后人也有称他为“协奏曲之王”,他最著名的作品为《四季》。

* 巴洛克文化

巴洛克(Baroque)一词来源于西班牙语,意指形态不够圆或不完美的珍珠,最初是建筑领域的术语。巴洛克文化最早起源于意大利,与反对宗教改革有关,其为宗教服务。巴洛克时期主要是指1600年-1750年间的150年的时期,在1300-1500年(14-16世纪)文艺复兴时期之后,巴洛克时期来到,这受到文艺复兴支持者的反对,这两个时期的艺术方面区别极大。文艺复兴时期强调人文主义(humanism,指社会价值取向倾向于对人的个性的关怀,注重强调维护人性尊严,提倡宽容,反对暴力,主张自由平等和自我价值体现的一种哲学思潮与世界观),而巴洛克时期是一种缓冲,是一种由过度的凸显人文主义向宽松和奢华过度。

巴洛克风格的特征是精致细腻的装饰以及华丽的风格,造成这种现象的主因,是因为巴洛克时期是贵族掌权的时代,富丽堂皇的宫廷里奢华的排场正是新的文化以及艺术的发展中心。巴洛克文化极具奢华,既有宗教特色又有享乐主义色彩。打破宁静的艺术,具有浓郁的浪漫主义色彩,强调运动和想象力。

巴洛克特点:复杂、奢侈、浮夸、宗教、浓郁、浪漫、动态。
Continue reading

等有时间

等有时间 ,早点起床,
我们一同去海边,吹吹海风,看看帆点,幻想远方海岛上休憩的飞鸟;
等有时间 ,晚些出发,
我们一起去山顶,抬头望着蓝色的天,踏实地踩踩脚下的泥,然后等待日落时分;
等有时间 ,打开车窗,
我们一起漫无目地游走,在城市,在乡村,在我们曾一起走过的风景旁;
等有时间 ,我们一起去看电影吧,
一起开心,一起流泪;
等有时间 ,天黑的时候,
我们一起回家;
等有时间 ,我们放弃一切不忍、一切追逐,一切不愿放弃的,
然后,不再一起等待——有时间的那天。

Continue reading

修复 OneNote 截屏 快捷键

Office OneNote 是 Windows 平台下一款比较好用的笔记软件,其中自带的 截屏 功能也相对轻便好用。不过,在 Windows 8 操作系统下,OneNote 的 截屏 快捷键 Win + S 会与操作系统的搜索快捷键发生冲突,这一点比较令人无语… 不过 OneNote 的截屏功能还是难以舍弃的,尤其对于我这种长期依赖 OneOnte 活着的人…

我们可以通过修改注册表,来完成冲突快捷键的修改工作。
Continue reading

阿里云 购买与部署: 流程拾遗

这两天终于有了些时间,索性把毕业时那个花生壳弄的站点迁移到阿里云上。没有选择轻云或者虚拟主机,一方面是因为之前的工作项目主要基于 Microsoft Azure 开发,比较习惯于云端环境,更主要的是云端拥有更大的扩展性。

而选择阿里,是因为相对 Azure 便宜许多,相对其他国内运营商,阿里拥有全套的运营体系(从万网的域名管理、备案审批到ECS、SLB、OSS… 甚至其自身的支付系统),另一方面,阿里云的服务体系也是相当完善的,例如,网站备案用的幕布从索取到接收只相差1天,服务态度也是极好的(这里给个赞,之前由于不明原因,阿里和万网的客服被手机360确认为电话推销…  所以前两个域名确认电话我都没接,没想到阿里的小妹妹又换了第3个号码打过来… 难道是 True Love ?!),在这些方面,相对于其他国内的运营商,优势还是很大的。(本人不是阿里5毛…,不过若愿给我5毛,我也是接受的,您可以扫描页面最下方的二维码,捐助5毛钱~,非常感谢!)
Continue reading