摘要:
当程序以Windows Services形式启动时当前路径不对@(操作系统)[博客|dotNet]很多时候我们需要将我们的程序写成利用Windows服务的形式来让它能够自启动。今天遇到一个问题,当一个程序注册成Windows Services的形式启动的话,当前程序的CurrentDirectory... 阅读全文
摘要:
.NET中Dictionary是非常常用的key-value的数据结构,也就是其实就是传说中的哈希表。.NET中还有一个叫做Hashtable的类型,两个类型都是哈希表。这两个类型都可以实现键值对存储的功能,区别就是一个是泛型一个不是并且内部实现有一些不同。今天就研究一下.NET中的Dictiona... 阅读全文
摘要:
计算机性能有点像一个骗局,你肯定在等待下面某个东西:硬盘CPU内存网络但是到底室哪一个?你会等多久?在等待的时候你会作什么?这些就各有不同啦。你看过电影《Her》 么?如果没有,强烈建议你去看一下。这是一部很好电影,我最喜欢的一幕是AI在描述和人类沟通是多么困难的一件事情:It's like I'm... 阅读全文
摘要:
MX Record补充MX记录有优先级的概念,数字越小表示优先级越高。所以一个域可以配置多个不同优先级的MX记录,如果邮件通过第一优先级记录无法递送,则采用第二优先级,以此类推。TXT RecordTxt记录用来保存域名相关的描述,可以是任何文本。也就是说可以有任意用途,只要你能够想得到。我知道的用途包括:验证域的所有权。通过修改Txt来验证你对这个域的所有权,Google Apps就是通过这种方式做的。更加多的用途是用来防止电子邮件滥用。通过SPF、DKIM或者DMARC来防止恶意电子邮件。基本上就是收到邮件的服务器,通过读取域的Txt记录,然后根据其中的值并结合发送者的一些信息来判断这个邮 阅读全文
摘要:
最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念。常用概念:TTL:TTL为Time to live的缩写,网络相关地方存在于两个地方,一个是IP协议里,一个是DNS服务器上。TTL in IPIP协议里表示存活的时间,比如说TTL为126表示,这个IP包最大的存活时间为126秒。但是!IP包每经过一个路由器都会减一,也就是说一个IP包有可能因为两种情况而超时。一个是时间超时,一个是经过的路由太多(每经过一个路由叫做hop,中文貌似叫跳)。这个值是发送数据包的那方设置的,也就是说我们每个人的系统里都有这么一个默认 阅读全文
摘要:
原文链接:http://csharpindepth.com/Articles/Chapter12/Random.aspx随机数当你在Stack Overflow上看到看到某个问题标题当中有“随机”这个词,你几乎能够肯定这和其他很多问题类似的基础的问题。这篇文章讲述了为什么随机这个概念引起了这么多的问题,以及如何去解决它们。问题Stack Overflow上的问题通常是这样的:我使用Random.Next去产生随机数,但是方法一直返回同一个值。每一次跑这个随机数都会改变,但是这个方法会产生很多相同的随机数。代码如下:// Bad code! Do not use!for (int i = 0; 阅读全文
摘要:
所有程序员都有为一个bug而调试”三天三夜”的经历,调试过程就如同破案,疑点重重线索时短时续,最后揪出臭虫那一瞬间的痛快的感觉。常常会大叫一声:“What the fuck!”但是,有时候最后会发现其实并非真正的bug,而是由于自己犯的一些很SB的错误而导致了问题的存在。记得有一次,在写一个C++程序的时候需要使用一个DLL中的类,但是编译能通过链接的时候却总是出错。为这个问题,自己上网搜了很多解决方案,也尝试了很多方案,最后还找来了组里的大牛来帮忙一起看。历经大半天最终发现问题是我在工程里设置的是一个debug版本的lib文件路径,然后我修改并且编译DLL的时候一直是以Release的模式进 阅读全文
摘要:
前段时间杭州雾霾严重,已经严重到能见度只有几百米(PM2.5 500+),走在路上我发现街上很多行人都带起了口罩。过了几天雾霾消退了人们也就都不戴了,这几天雾霾又重新来袭,只是这一次没有之前的严重,但是还是处于严重污染的范围(300+)。然后今天走在街上基本上只能看到很少数的几个人有戴着口罩,由此现象引发了我的思考。人们总是愿意去做一些有显著效果的事情,比如说在人们感觉到不适的情况下大多数人选择带口罩,然而在污染一样严重但是没有感到明显不适的情况下大多数人选择不戴口罩,因为觉得戴了和不戴不会带来显著的区别。我觉得这个可能是人类长期进化过程中形成的一个特性,反正在在恶劣的环境中不知道未来如何所以 阅读全文
摘要:
Coding Kata简介如何进行Kata练习亲身感受Coding Kata简介前段时间听到一个比较有意思的概念叫做Coding Kata,今天试了一下来说说一些想法和思考。Kata是一个日语,意思大体上是日本武术的套路,没有找到比较好的中文翻译来解释Coding Kata这个词。Coding Kata是一种练习编程能力的一种方法,它要求程序员在拿到一个简单的联系以后进行重复的编码。比如说,第一次快速的按照需求写出来了能工工作的程序,然后抛弃可以工作的第一个版本,重头开始第二轮的编码,然后进行第三次。如果Coding Kata只是这样子重复打代码的话除了练习打字以外那么没有任何意义了,这个方法 阅读全文
摘要:
我遇见了Markdown我喜欢的地方我要吐槽的地方适用人群和使用场景Markdown使用简介如何入门?Markdown编辑器们如何在博客园中使用Markdown引用我遇见了Markdown在很久很久以前,听说过几次叫做markdown的东西,但是一直没有去尝试。第一个接触到markdown实在Stack Overflow的留言版上,当时还不知道这个叫Markdown,当时只是觉着这个语法肿么这么奇葩。最近有机会试了一下发现爱不释手,越看越喜欢。什么?还不知道Markdown是什么?Markdown是一种轻量级的标记语言1。不要一说语言就被吓到,这玩样真的很简单,只要十分钟就能够看完所有语法,而 阅读全文