分类为‘程序设计’的文章

沉痛悼念我的奶奶

奶奶由于患急性心肌梗,于2010年6月9日逝世,终年81岁,她走的很快,没有什么痛苦,也应了她说的那句话,不给子孙们拖累。奶奶生前身体一直很好,能吸烟喝酒,我们也常劝她少抽点烟,但是她属于那种管不住的人。
奶奶是个苦命人,30岁丧夫,一手把5个子女拉扯大,中间吃的苦自然不是一句两句话就能说的清的,老来丧子,二叔于20多年前患脑瘤病逝,所以她抽烟喝酒我们是很理解的。值得欣慰的是她的子女孙子孙女外孙外孙女对她都很好,这样也让老人能好笑而去
有奶奶在的时候,儿孙们时不时都会聚在她身边,聊聊这个聊聊那个,有她大家就有了个核心,现在奶奶去了,去了一个永远快乐的地方
奶奶永远在我们的心中

More »

iphone4最新试用记录

向来都是万众瞩目的焦点,于是第四代iPhone的华丽登场自然不需要任何夸张的语言来进行赞美,无数苹果粉丝的喝彩以及无与伦比的关注度都让这款苹果最新发布的iPhone 4手机在亮相伊始便注定成为了超人气的偶像。尽管之前的外泄事件让苹果iPhone 4少了许多神秘感,但该机超豪华的高规格配置已经相比上代产品多达百余项的改进,还是让iPhone拥趸们为之倾倒。接下来,就让通过我们现场试用的苹果iPhone 4真机,一起来看看这款苹果新一代手机到底有着怎样的不同凡响之处吧。

尽管是万众期待的新一代苹果iPhone,但由于之前在网络上的频繁曝光,最新发布的iPhone 4客观的说,在外形上已经让人不再新鲜。不过,这并意味该机在设计上没有任何创新之处。从以往的曝光的真机图片或是我们会认为iPhone 4相比过去在整体风格会有显着的变化,但至少从两代iPhone正面对比来看,其实还是基本上延续了过去苹果iPhone的风格特色,包括经典home键及流畅的机身曲线等等。

More »

中国实现世界上最远距离量子态隐形传输

老纪老大不小了,但是对于这些只有在科幻小说里出现的东西尤其感兴趣,可惜老纪只是一介凡人,只有跟着别人高兴了,呵呵
由中国科大和清华大学组成的联合小组成功实现了世界上最远距离的量子态隐形传输,16公里的传输距离比原世界纪录提高了20多倍。实验结果首次证实了在自由空间进行远距离量子态隐形传输的可行性,为全球化量子通信网络最终实现奠定了重要基础。
  据联合小组研究成员彭承志教授介绍,量子态隐形传输是一种全新通信方式,它传输的不再是经典信息而是量子态携带的量子信息,是未来量子通信网络的核心要素。利用量子纠缠技术,需要传输的量子态如同科幻小说中描绘的“超时空穿越”,在一个地方神秘消失,不需要任何载体的携带,又在另一个地方瞬间神秘出现。这一奇特的现象引起了学术界广泛兴趣。1997年,奥地利蔡林格小组在室内首次完成了量子态隐形传输的原理性实验验证。2004年,这个小组利用多瑙河底的光纤信道,成功地将量子态隐形传输距离提高到600米。但由于光纤信道中的损耗和环境的干扰,量子态隐形传输的距离难以大幅度提高。
  2004年,中国科大潘建伟、彭承志等研究人员开始探索在自由空间实现更远距离的量子通信。在自由空间,环境对光量子态的干扰效应极小,而光子一旦穿透大气层进入外层空间,其损耗更是接近于零,这使得自由空间信道比光纤信道在远距离传输方面更具优势。这个小组2005年在合肥创造了13公里的自由空间双向量子纠缠分发世界纪录,同时验证了在外层空间与地球之间分发纠缠光子的可行性。2007年开始,中国科大——清华大学联合小组在北京八达岭与河北怀来之间架设长达16公里的自由空间量子信道,并取得了一系列关键技术突破,最终在2009年成功实现了世界上最远距离的量子态隐形传输,证实了量子态隐形传输穿越大气层的可行性。
  联合小组在自由空间量子通信领域的一系列工作,得到了科技部重大科学研究计划、中科院知识创新工程重大项目和国家自然科学基金项目等支持,并引起了国际学术界的广泛关注,6月1日出版的英国《自然》杂志子刊《自然·光子学》以封面论文形式发表了这一研究成果。英国的《新科学家》、美国的《今日物理》、美国物理学会新闻网站均及时报道了这个研究成果。

More »

看来scala 2.8.0就要正式发布了

scala这个语言被很多大佬所看好,有java的性能、又有ruby的灵活,但是对于初学者又是如此的让人不敢深入,因为它里面涉及的不仅仅是语言语法的层面而却有编程语言原理的东西,要学好它不容易,但是scala又能在保持性能的前提下大大减少代码量,如果可能还是要涉猎一下的
最近scala发布了2.8.0的第三个候选版,而其此版主要是为测试而发,预计最终版发布还有2个星期,scala 2.8.0较之2.7最大的改动就是对集合库进行重写,运行速度会有更大提升

More »

C++右值引用-好东西

解决C++中临时变量的好方法-右值引用,可在visual studio 2010中试试

右值引用和移动语义(rvalue references, move semantics)
该特性比较晦涩,但用途很明确。
* 移动语义 考虑swap函数template <class T> swap(T& a, T& b){ T tmp(a); // now we have two copies of a a = b; // now we have two copies of b b = tmp; [...]

More »

nginx目前所有版本存在的高危漏洞

这个漏洞是国内的安全组织80sec发现的,经过测试老纪博客也存在这个问题,这个漏洞适合现在所有nginx+php服务器,有使用的朋友赶快进行修改
漏洞介绍及补救方式
漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。
漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
那么假设存在一个http://www.80sec.com/80sec.jpg,我们以如下的方式去访问http://www.80sec.com/80sec.jpg/80sec.php将会得到一个URI /80sec.jpg/80sec.php,
经过location指令,该请求将会交给后端的fastcgi处理,nginx为其设置环境变量SCRIPT_FILENAME,内容为 /scripts/80sec.jpg/80sec.php
而在其他的webserver如lighttpd当中,我们发现其中的SCRIPT_FILENAME被正确的设置为
/scripts/80sec.jpg
所以不存在此问题。
后端的fastcgi在接受到该选项时,会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理,一般情况下如果不对fix_pathinfo进行设置将影响使用PATH_INFO进行路由选择的应用,所以该选项一般配置开启。Php通过该选项之后将查找其中真正的脚本文件名字,查找的方式也是查看文件是否存在,这个时候将分离出SCRIPT_FILENAME和PATH_INFO分别为/scripts/80sec.jpg和80sec.php
最后,以/scripts/80sec.jpg作为此次请求需要执行的脚本,攻击者就可以实现让nginx以php来解析任何类型的文件了。
POC: 访问一个nginx来支持php的站点,在一个任何资源的文件如robots.txt后面加上/80sec.php,这个时候你可以看到如下的区别:
访问http://www.80sec.com/robots.txt

HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:05:30 GMT
Content-Type: text/plain
Content-Length: 18
Last-Modified: Thu, 20 May 2010 06:26:34 GMT
Connection: keep-alive
Keep-Alive: timeout=20
Accept-Ranges: bytes

访问访问http://www.80sec.com/robots.txt/80sec.php

HTTP/1.1 [...]

More »

visual studio 2010和注册码

老纪不鼓励也不赞同使用破解的软件,尤其是共享软件,因为自己是程序员可能将来自己也会开发出能够让广大用户使用的好的共享软件(但我宁愿做免费的软件),但是对于像visual studio和photoshop这种恐龙级的软件而且是我们每天必用的贵的买不起的软件,能有破解的使用也是一种权宜的happy的事
4月12日, visual studio 2010发布,相应的微软官方也提供了下载,正好看相关文章时看到一个注册码,也就是Product Key,很好使(微软的东西好破解,这可能是他们的商业用意),这样我们这帮没钱的主就可以用号称微软最完美的开发软件了。
破解方式:Product Key为YCFHQ9DWCYDKV88T2TMHG7BHP,用这个key替换安装盘中setup目录中的setup.sdb中[Product Key]的内容,重新保存即可,这是针对Visual Studio 2010 Ultimate版,其他版本的应该也适用,之后的安装就一路顺风了。good luck!

More »

google的开源项目,对大家可能有用

google内部人弄得几十个开源软件,可供我们学习,也可以直接拿过来用于工作之中
学习程序设计的一个比较好的方式就是阅读优秀项目的源代码,从而能够了解作者的方法、思路、技巧,另外阅读源代码对于一些朋友是枯燥乏味的,这是就可以看看项目的readme,找到项目的闪光点,我们不做开拓者那我们就做实践者和使用者,呵呵

More »

qtcreator代码研究

这段时间对qtcreator 1.3.1源代码研究了一下,发现它的架构设计的非常好,以模式和插件两种方式进行各种功能的组织,对于功能扩充及增强都极为方便,老纪决定用它的构架做一个软件,正好利用到它的这些特性,期待!

More »

flash builder 4

开心农场等现在非常热门、非常赚钱的sns网络游戏都是用什么来做的呢?flash! 现在一个重量级的flash开发工具登场了- Flash Builder 4
在Flash Builder 4之前adobe的flash开发工具叫Flex Builder,这个搞过flash开发的肯定比较熟悉,它是和微软的那个Silverlight 对着来的,都是为快速构建富 Internet 应用程序而搞的东西。可能是因为Flex Builder名字让人感到不舒服,所以又改回来Flash Builder,以字达意,这才是正解
老纪对flash开发还不太熟、留着做个纪念,Flash Builder 4可以免费下载
给个Flash Builder 4 正式版的注册码:Flash Builder 4 sn : 1424-4008-9664-3602-3439-1711

More »