你确信你了解时间吗?
你还记得“软件真的好难做”中的那个有意思的例子吗?那个例子告诉我们软件开发中假设可能会是致命的事。今天,我又在StackOverflow上看到一个关于时间的问题——为什么1927年12月31日的午夜时间这么奇怪?提问题的这个人给了下面的一段java代码(我做一些修改,保证让你可以copy过去就可以编译运行)
我在其中高亮了几行,这个程序就是想比较一下“1927-12-31 23:54:07” 和 “1927-12-31 23:54:08” 差几秒,很明显,是差一秒。但是程序的输出却不是这样的。
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.TimeZone;
class time{
public static void main(String[] args) throws ParseException {
SimpleDateFormat sf = new Simple ...
Stack Exchange 的架构
近日,Stack Exchange系统管理员blog上发布了一篇关于Stack Exchange的架构一瞥,其包括了Stack Overflow, Server Fault 和 Super User的 Stack Exchange 网络。注意最后一个关于人员的配置。希望能给大家一些相关的参考。
目录
网络流量
数据中心
生产服务器
使用了的相关的软件和技术
程序员和系统管理员
网络流量
每月9千5百万个PV
每秒800 HTTP 请求
每秒180 DNS 请求
每秒55Mb 的带宽
数据中心
1 机柜 位于俄勒冈的 Peak Internet (用于chat 和Data Explorer)
2 机框 位于 纽约的 Peer 1 ( 用于其它的 Stack Exchange Network)
生产服务器
12 Web Servers (Windows Server 2008 R2)
2 Database Servers (Windows Server 2008 R2 and ...
StackOverflow的404错误页
不知道大家有没有注意到StakeOverflow的404错误页面?其显示了下面的这个图片:
这个是一个很有意思的图片,不知道你看懂了吗?看上去像Python,又像 Ruby,还像 Perl,当然也有 C的影子,还有Brainfuck。是的,这是一个杂交程序,杂交了Python,Ruby,Perl,C,还有Brainfuck(注意其中的#号),所有的语句都是输出“404”字符串。
关于这种杂交程序,本站以前也发布过《C语言和sh脚本的杂交代码》,大家可以前往一看。这样的有趣的玩法叫“Polyglot”,也就是说,把N种语言写在一个文件中,然后,该文件在任何编译器下都可以运行,上述的那段代码在Python,Ruby,Perl,Brainfuck下都可以正常运行,也可以被C和的编译器编译通过,并被运行。
下面是这个图片的字符码,以供各位试试。
# define v putchar
# define print(x) main(){v(4+v(v(52)-4));return 0;}/*
#>+++++++4+[>++++++<-]&g ...
23,148,855,308,184,500
上个月VISA信用卡出事了,某个美国人在加油站买了一包香烟,于是他的信用卡里就有了标题那个数字的钱“$23,148,855,308,184,500”,注意这可以美刀啊,相当于美国整个国家国债的N倍。
程序员们开始疯狂了,他们在stackoverflow.com上开始人肉debug这个问题(贴子)。排名第一的回答(564 votes)说,这个数字转成十六进制是:0x2020 2020 2020 1250,很明显,前面的若干个0X20表示的是空格,也就是说,程序错误地处理了空格。于是本回答后的跟贴把这个回答推举成了本年度最牛的debug——”best debug of the year”,后面还有人说这个人应该在NASA工作,继而有人跟贴,应该是VISA而不是NASA……
当然,也有人有不同的意见……
排名第二个贴子(仅有排名第一的零头 67 votes)发表了不同的意见,贴主说,VISA报道说当时全球在那个星期内发生了大约13000起这样的事情,而且,全世界在报道相似的事情(报道一,报道二),但所有的报道都是相同的数字——23,148,855,308,184,500。如果 ...