安装支持speedy(spdy)协议的nginx web 服务

安装支持speedy(spdy)协议的nginx web 服务

spdy协议是google提出的当前http协议的扩展协议,
主要目的用于多网页请求的合并发送,
提高页面响应效率,改善网页请求处理的用户体验。

这两天尝试安装了一下,对于nginx来说,安装还比较简单。
安装步骤:
*) 下载nginx-1.3.x源码包,并解压
*) 下载spdy协议补丁文件,http://nginx.org/patches/spdy/patch.spdy.txt
*) 进入源码目录,给nginx源代码打补丁
patch -p1 *) 开始编译,
对于比较新的系统,直接使用以下参数编译安装
$ ./configure --with-http_ssl_module --with-http_spdy_module

Category: 

GCC 4.8 发布,提升 C++11 的支持

GCC 4.8 正式版发布!!!该版本包括通用的优化、新语言以及语言规范提升,提升 G++ 对 C++11 的支持,改进新的 ISO C++ 标准库、C++11 的支持,支持更多平台,详情请看发行说明
GCCGNU Compiler CollectionGNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划 的关键部分,亦是自由的 类Unix 及苹果计算机 Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

Category: 

使用Tokenizer做简单PHP代码静态分析

这是PHP的核心功能。

检测扩展模块是否完整:

读取所有的代码,查找到所有的定义的类

对所有new的类到定义类中查找,

如没找到,则测试是否是扩展类,

如再没找到,则是没有任何定义的类,可能是扩展安装不全。

可以通过字符串的近似匹配算法,查看是否是手误。

检测扩展函数是否完整:

读取所有的代码,查找到所有的定义的函数

对所有函数调用到定义函数表中查找,

如没找到,则测试是否是自带函数,或者是扩展函数,

如再没找到,则是没有任何定义的函数,可能是扩展安装不全,或者有手误。

检测类方法调用:

是否定义了方法,定义的public/private是否合适。

检测没有使用的函数、类、变量。

PHP代码静态分析工具列表:

hiphop

Category: 

C11的内建线程支持

C语言走过30年,依旧在不停发展进步。

语言级内建线程支持是C11语言标准引入的新特性之一。

C11内建线程头文件在c11/threading.h

C11内建线程包括mutex锁的实现,临界资源的应用,

mtx_init

mtx_destroy

mtx_lock

mtx_unlock

tss_create

tss_set

tss_get

thrd_current

C11内建线程与linux pthread的比较

Category: 

Qt 5的Android版预览

原文链接:Eskil Abrahamsen BlomfeldtPreview of Qt 5 for Android

迁移Qt 4到Android的第一个代码变更(commit)发生在2009年圣诞节,来自于BogDan Vatra的“Android mkspecs and semaphore”。

Category: 

又试用了一把google appengine

头一次试用还是两年前了吧,不过由于只提供了python的SDK,没有怎么用,并且那时提供的python SDK还只是支持python-2.5版本的。

今天偶然想起来,原来还有个google appengine的账号,登陆看了下,现在已经支持了python-2.7,java SDK,还有试验性的go 语言支持。

对于免费资源,小的试验项目,无论从磁盘的存储容量,网络带宽,使用的CPU资料都是够用的。

去年的时候,借着go语言的推广,了解了一下go语言,感觉还比较有意思。

一直想学点go语言,做些东西试试,由于项目语言的选择保守、人员学习新语言的成本、平台转换新语言框架的成本,在工作上一直没有相关的项目去实践。

准备在google appengine上使用go语言做些小项目,像书签,RSS集成订阅等工具,熟悉下go语言。

同时也熟悉下google appengine作为一个平台的运行机制,为打造自己的PHP做些基础理解。

附注:
个人感觉go语言的HTML模板功能看上去别扭极了,是刚开始接触的原因还是事实如此,等再深入学习再说。

Category: 

一个非常好用的windows命令行程序

windows的命令行非常难用,窗口大小限制,命令历史支持烂的不行,

滚动行数支持烂的没法说,复制粘贴超级神经等。

今天找到一个好用的命令行程序:conemu

主页面地址:http://code.google.com/p/conemu-maximus5/

这是一个可以最大化的命令行程序,支持多tab,

无障碍使用linux上的命令行编辑器vim和emacs。

有点linux上强大的命令行终端的感觉了。

Category: 

支持自动重连接的PHP PDO类完善

PHP的PDO是取代原来的php-mysql、php-mysqli模块的统一数据库访问模块,

比直接使用各自数据库提供的原始扩展函数相比,PDO的好处是移植性更好些。

最近在使用PDO开发框架过程,对其有了更多些的认识。

*)对长连接的支持

*)异常的使用

*)连接的自动关闭控制

*)连接中断的重连接(MySQL has gone away)

*)

最近遇到特别麻烦的问题,使用长连接是,全出来 MySQL Server has gone away的问题。

这种情况下PDO没有办法检测并重连接,也没有提供重新连接的相关方法。

这样对长连接的使用有点悲催了,开始运行的很正常的系统,运行一段时间后,却因为数据库连接的问题系统瘫痪了。

经过很多的代码测试与查找资料,实现了一个能重连接的PDO封装。在此分享思路与主要代码,补充PDO在实际应用中遇到的问题。

Category: 

Qt 又将有新成员

今天看到texmaker升级到了Qt5版本了。
另外还想起来前几天看到ubuntu的unity也将移植到Qt版本。
还有现在正在使用的WPS OFFICE也是用的Qt。

成熟的Qt以后会带给我们更多成熟的使用Qt的软件。

Category: 

gcc与clang内置原子操作函数研究

原子操作在实现多线程并发操作时非常重要的功能。

在现有的线程库中,一般通过提供锁的功能实现线程的互斥与同步。

但是锁的粒度比较大,在性能要求非常高的软件中可能会受限制。

原子操作函数则能在最小粒度上实现并发的互斥与同步,很多的无锁数据结构(lock-free data structure)库皆使用这些函数实现的。

不同的编译器提供的原子操作函数不相同,但总结下来,也就几种模式,包括:

*)原子加、减并返回操作结果,或者返回当前值后再加、减

*)原子与、或、异或并返回操作结果,或者返回当前值后再与、或、异或

*) test and set类功能,测试标识并设置相应的值

*) exchange/swap类功能,比较并交换值

*)

目前最新版本的gcc、clang的原子操作实现均符合c++11定义的原子操作6种内存模型:

Category: 

Pages

Subscribe to www.qtchina.net RSS