用python脚本实现的简易http服务器、客户端和https服务器、客户端

因工作需要,在网上搜罗一圈并拼凑一番之后,做出了一个python脚本实现的简易http/https的服务器和客户端。

我主要是用它来作为一个Internet网络传输文件的机制,经简单测试了一下,运转正常。测试基于debian系统。

不说废话,上代码,有问题欢迎讨论。
Continue reading

为什么标准C++中两个直接字符串常量不能相加

这是《Accelerated C++》一书的第一章的课后题 - 下面的编译是否有问题?

1:

const std::string hello = “Hello”;
const std::string message = hello + “, world” + “!”;

2:

const std::string exclam = “!”;
const std::string message = “Hello” + “, world” + exclam;

第一部分是可以编译成功的,而第二部分是不行的。为什么? Continue reading

More WhiteSpace语言

昨天写了《什么是whitespace》简略介绍了whitespace语言的特点,感觉介绍的太简略了,今天再补充一些内容。

whitespace语言唯一识别的有效字符就是空格(ASC码为32)、Tab制表符(ASC码为9)和换行符(ASC码为10)。之所以只使用LF换行符,是为了避免DOS/UNIX文件转换时发生CR/LF问题。(注:CR/LF问题是指在DOS系统下以CR+LF表示一行结尾的换行符,而UNIX系统下只使用LF,这样在两种系统下交叉处理文件就会出现一些兼容问题)

这种whitespace语言是一种基于栈的命令解释语言。每个命令由一系列上面提到的那三种字符组成。 Continue reading

什么是whitespace?

在英文的计算机书籍上经常看到“whitespace”这个词,它在一般的书籍中表示那些不可打印字符,但是,这个词在其他地方还有另外的含义,它还是一种编程语言的名字。
在打印文本时,这些“whitespace”字符负责移动光标而不会留下什么字迹,因此就在纸上或屏幕上留下一些“白空”。这些“whitespace”语言的字符包括空格、tab制表符、换行回纸符。我们熟知的那些编程语言都会忽略(或者只略微关心)这些“whitespace”,而whitespace编程语言的解释器则会专门关注这些字符进行编译。
为这种语言写注视不用加任何的注释标志符,直接写就行了,你能看到的字符肯定都是编译器不认识的注释。

维基百科

官方主页

OMG! Joel Spolsky这样地贬低Java!

读了一篇博客文章,是博主翻译Joel Spolsky著的More Joel on Software的一篇文章,大意是美国大学大量使用java作为计算机学科的教学语言,相比原来的C语言之类的课程,大大降低了计算机专业毕业门槛,造就了很多不合格的计算机毕业生。作者Spolsky对于这一情况作了警告和批判,其中,对待学习Java语言的技术含量更是做了无情的贬低。

我不想纠缠这样的贬低是否准确和恰如其分,每个人在讲出自己的观点时或多或少会有自己的主观色彩。

带给我思考的是 Continue reading