简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2013年10月1日

摘要: 在PHP中有两套正则表达式函数库。一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其使用以“preg_”为前缀命名的函数。另一套是由POSIX(Portable Operation System interface)扩展库提供的。POSIX扩展的正则表达式由POSIX 1003.2定义,一般使用以“ereg_”为前缀命名的函数。两套函数库的功能相似,执行效率稍有不同。一般而言,实现相同的功能,使用PCRE库的效率略占优势。下面详细介绍其使用方法。正则表达式的匹配1.preg_ma 阅读全文
posted @ 2013-10-01 16:43 ggjucheng 阅读(6965) 评论(1) 推荐(0)

摘要: 目前WEB的应用中, UTF-8编码和GB2312编码是并存在的,例如百度(baidu.com)和谷歌(google.com)的URL编码分别是GB2312编码和UTF-8编码。由于编码并存引起的乱码问题给WEB应用开发中带来不少麻烦,因此统一编码是在WEB开发中解决这个问题的主要途径。现在的问题是我们同时得处理UTF-8编码和GB2312,例如我们要统计一个网站由搜索引擎中带来的访问的关键词。比如我们搜“中文”这个词,然后观察浏览器地址栏。用Baidu得到的结果是:http://www.baidu.com/s?wd=%D6%D0%CE%C4用Google得到的结果是:http://www.g 阅读全文
posted @ 2013-10-01 16:35 ggjucheng 阅读(8844) 评论(0) 推荐(0)

摘要: 今天网站出现一个BUG,然后直接在数据库类里面写日志,看是哪条SQL出了问题,SQL语句到是找到了,但是不知道这条SQL语句来自何处,于是就想啊,如果能有一个办法,查看当前正在运行的这个方法是被哪个方法调用的,以及上一个方法又是哪个方法调用的,以此类推,找到入口地址多好啊。不过以前自己也想过,也在网上去搜过,就是没有找到相关的办法,今天一同事(前辈)说JAVA里面这种调试用得很普遍,叫这种堆栈调试,我是就在网上搜PHP堆栈。居然被我找到了,然后把自己的办法写出来。function print_stack_trace(){ $array =debug_backtrace(); //pri... 阅读全文
posted @ 2013-10-01 15:52 ggjucheng 阅读(10733) 评论(0) 推荐(1)

摘要: # ci server { listen 80; server_name my.clb.com; root /var/website/ci; index index.php index.html index.htm; access_log logs/my.clb.com_access.log main; location / { index index.php root /var/website/ci; if ($request_filename !~ (js|css|images|robots\.txt|index\.php) ) { rewrite ^(.*)$ /index.php/$1 阅读全文
posted @ 2013-10-01 15:41 ggjucheng 阅读(3825) 评论(0) 推荐(0)

摘要: 配置多个ip简单的说,打开httpd.conf 在最后加入如下内容: DocumentRoot d:/AppServ/www2 ServerName 127.0.0.2:80 Options Indexes FollowSymLinks Multiviews AllowOverride All Order Allow,Deny Allow from all"d:/AppServ/www2" 为你的站点存放目录:重启apache2以后,你的虚拟主机就配置好了,以后就可以通过127.0.0.2,和127.0.0.3进入不同的站点了。配置虚拟主机 Server... 阅读全文
posted @ 2013-10-01 15:37 ggjucheng 阅读(12194) 评论(1) 推荐(0)

摘要: 下载和配置php 下载php:http://windows.php.net/download/ php-5.4.16-Win32-VC9-x86.zip 下载apache: http://httpd.apache.org/download.cgi#apache22 一、首先将php5内的所有dll文 阅读全文
posted @ 2013-10-01 15:33 ggjucheng 阅读(32965) 评论(0) 推荐(2)

摘要: IO调度器(IO Scheduler)是操作系统用来决定块设备上IO操作提交顺序的方法。存在的目的有两个,一是提高IO吞吐量,二是降低IO响应时间。然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平衡这两者,IO调度器提供了多种调度算法来适应不同的IO请求场景。其中,对数据库这种随机读写的场景最有利的算法是DEANLINE。接着我们按照从简单到复杂的顺序,迅速扫一下Linux 2.6内核提供的几种IO调度算法。1、NOOPNOOP算法的全写为No Operation。该算法实现了最最简单的FIFO队列,所有IO请求大致按照先来后到的顺序进行操作。之所以说“大致”,原因是NOOP在FIFO的基 阅读全文
posted @ 2013-10-01 15:10 ggjucheng 阅读(1902) 评论(0) 推荐(0)

摘要: 我们经常需要在机器之间传输文件。比如备份,复制数据等等。这个是很常见,也是很简单的。用scp或者rsync就能很好的完成任务。但是如果文件很大,需要占用一些传输时间的时候,怎样又快又好地完成任务就很重要了。在我的测试用例中,一个最佳的方案比最差的方案,性能提高了10倍。复制文件如果我们是复制一个未压缩的文件。这里走如下步骤:压缩数据发送到另外一台机器上数据解压缩校验正确性这样做会很有效率,数据压缩后可以更有效的利用带宽使用ZIP+SCP我们可以通过ZIP+SCP的组合实现这个功能。gzip -c /home/yankay/data | ssh yankay01 "gunzip -c 阅读全文
posted @ 2013-10-01 15:05 ggjucheng 阅读(11634) 评论(0) 推荐(2)

摘要: 用ssh连其他linux机器,会等待10-30秒才有提示输入密码。严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因:1. DNS反向解析的问题OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。解决办法:在目标服务器上修改sshd服务器端配置,并重启sshdvi /etc/ssh/sshd_config,设置UseDNS为no即可当然也可以通过提供DNS正确反向解析的方法解决,有如下两种思路(1) 在s 阅读全文
posted @ 2013-10-01 14:57 ggjucheng 阅读(25552) 评论(0) 推荐(2)

摘要: TCP正常建立和关闭的状态变化TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做 四次握手。建立连接在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入EST 阅读全文
posted @ 2013-10-01 14:53 ggjucheng 阅读(9460) 评论(1) 推荐(3)

摘要: 工作中,一些程序,需要随机启动,但是不是以root用户运行,于是需要在rc.local中通过shell,从root用户切换到其他用户运行程序,命令如下:su -c 'command' - usersudo -u peter /home/blue/hi.sh实例在/etc/rc.d/rc.local中加入如下内容:#vi /etc/rc.d/rc.local su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/lsnrctl start" su - oracle -c "/u01/app/oracl 阅读全文
posted @ 2013-10-01 14:14 ggjucheng 阅读(8733) 评论(0) 推荐(0)

摘要: 名称: pmap - report memory map of a process(查看进程的内存映像信息)用法 pmap [ -x | -d ] [ -q ] pids... pmap -V选项含义 -x extended Show the extended format. 显示扩展格式 -d device Show the device format. 显示设备格式 -q quiet Do not display some header/footer lines. 不显示头尾行 -V show version Displays version of program. 显示版本扩展格式和设备 阅读全文
posted @ 2013-10-01 13:59 ggjucheng 阅读(34204) 评论(0) 推荐(0)

摘要: ubuntu命令行模式操作svn首先要安装SVN客户端到你的系统才能操作各种命令apt-get install subversion1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svn add file例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)3、将改动的文件提交到版本库svn commit -m "LogMessage&q 阅读全文
posted @ 2013-10-01 12:59 ggjucheng 阅读(2548) 评论(0) 推荐(2)

摘要: 单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些事实将导致代码失败,原因是双重检查锁定难于跟踪。在本文余下的部分里,我们将详细介绍双重检查锁定习语,从而理解它在何处失效。单例创建习语要理解双重检查锁定习语是从哪里起源的,就必须理解通用单例创建习语,如清单 1 阅读全文
posted @ 2013-10-01 12:41 ggjucheng 阅读(1505) 评论(1) 推荐(0)

摘要: 引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能帮助我们正确的使用Volatile变量。术语定义术语英文单词描述共享变量在多个线程之间能够被共享的变量被称为共享变量。共享变量包括所有的实例变量,静态变量和数组元素。他们都被存放在堆内存中,Volatil 阅读全文
posted @ 2013-10-01 12:32 ggjucheng 阅读(799) 评论(0) 推荐(0)

摘要: 根据Java语言规范中的说明,JVM系统中存在一个主内存(Main Memory),Java中所有的变量存储在主内存中,对于所有的线程是共享的(相当于黑板,其他人都可以看到的)。每个线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中变量的拷贝,(相当于自己笔记本,只能自己看到),工作内存由缓存和堆栈组成,其中缓存保存的是主存中的变量的copy,堆栈保存的是线程局部变量。线程对所有变量的操作都是在工作内存中进行的,线程之间无法直接互相访问工作内存,变量的值得变化的传递需要主存来完成。在JMM中通过并发线程修改的变量值,必须通过线程变量同步到主存后,其他线程才能访问到 阅读全文
posted @ 2013-10-01 12:01 ggjucheng 阅读(1067) 评论(0) 推荐(1)

摘要: 基础类1、 Dinkumware C++ Library参考站点:http://www.dinkumware.comP.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C+ +的产品中采用Dinkumware的库。2、 RogueWave Standard C++ Library参考站点:http://www.roguewave.com这个库在Borland C++ Builder的早期版本中曾经被采用,后来被其他的 阅读全文
posted @ 2013-10-01 11:37 ggjucheng 阅读(3931) 评论(0) 推荐(0)

摘要: 教程 html教程 CSS 教程 JavaScript 教程 参考手册 HTML 4.01 / XHTML 1.0 参考手册 CSS 参考手册 JavaScript 参考手册 PHP 手册 CodeIgniter 用户指南 开发常用 php5.5+apache2.4+mysql5.7在windows 阅读全文
posted @ 2013-10-01 11:26 ggjucheng 阅读(5894) 评论(0) 推荐(0)

摘要: 1.安装软件apt-get install ifenslave2.修改配置文件/etc/network/interfacesauto loiface lo inet loopbackiface eth0 inet dhcpiface eth1 inet dhcpauto bond0iface bond0 inet staticaddress 64.0.177.20netmask 255.255.255.0gateway 64.0.177.254up ifenslave bond0 eth0 eth1down ifenslave -d bond0 eth0 eth13.加载模块vi /etc/m 阅读全文
posted @ 2013-10-01 11:07 ggjucheng 阅读(1585) 评论(0) 推荐(0)

摘要: 【PConline资讯 】从算盘到计算器,从大型机到个人PC,再到当今火热的移动终端和云计算,人类计算史已经走过了千年之久,现代IT计算领域也经过了百年浮沉。在世界工业领域,IT技术应该是诞生时间最短却对当今人类影响最大的。 如果让读者您列数你所熟知的十大IT巨头,大部分人会脱口而出苹果、IBM、联想、华为、三星、索尼如此等等。其实整个IT行业虽然只有百余年的历史,但是已经几经浮沉,无数曾经的王者已经伴随被收购、破产等退出历史的舞台,令人不甚唏嘘。盘点已经逝去的IT巨头 下面,笔者就和大家聊聊不为当前很多消费者熟知知名IT巨头,了解一下王安电脑、北电、SUN等品牌在百年IT舞台上的浮沉史... 阅读全文
posted @ 2013-10-01 10:34 ggjucheng 阅读(1765) 评论(0) 推荐(0)

摘要: 开始介绍前先膜拜之~密尔沃基市,是美国威斯康辛州最大的城市。1938年1月10日,圣诞刚过不久,密尔沃基市民像往常一样平静地生活着。咖啡店里,有人在议论着罗斯 福总统的救市新政策,有人在议论着到底该不该限制公民持枪。而更多的人呢,则一边品尝着密尔沃基闻名全国的啤酒,一边听着广播里面的实时战况:侵华日军登 陆青岛了。谁也没有想到,这个平静的日子将载入这座城市的史册。这天,密尔沃基路德教会高中的一名印刷管理员,高兴地迎来了一个健康的儿子。他为儿子取了 一个响亮的名字,这个名字在不久的将来,成为了计算机编程艺术的旗帜:Donald Ervin Knuth。为了方便讲述,请各位读者允许我先剧透一件39 阅读全文
posted @ 2013-10-01 10:23 ggjucheng 阅读(3332) 评论(0) 推荐(2)

摘要: 最近,上海一直在下雨,断断续续,一点一点一滴滴,本该是有几分清雅,打开Google,方知却是Alan Turing的百年诞辰,所有猥琐程序员的师祖,今天几千万人的手里,还捧着他自杀的那个苹果,让我突然记起大学的时候,还是在浦口金坛,邓建明院长的第一节离散数学,邓开篇即是三四节课述说Turing,还有史上那些图灵奖的获得者,从Dijkstra到姚期智,还扬言在不久的将来,软件学院在座的学生中,或将出现一位图灵奖的中国人。可惜的是,之后邓的离散数学课便平淡无味,而中国也没有人获得过图灵奖,而我们当年的各位同学,或者终日加班赶release,或者依然漂泊海外,或者才刚刚读研毕业,找到了一份差意糊口的 阅读全文
posted @ 2013-10-01 10:19 ggjucheng 阅读(860) 评论(0) 推荐(1)

摘要: 技术-信仰 算法的上帝——Donald E.Knuth 华人曾与IBM抗衡! 盘点已远去的IT巨头 淘宝华黎:毕业后的十一年 谈谈阿里系的技术积累 冯大辉:十年莽撞 IT 路 it降级论 Facebook怎样开发软件:工程师驱动的文化 开发者如何提升和推销自己 一些对程序员的建议(不要轻易的让人帮你 阅读全文
posted @ 2013-10-01 10:18 ggjucheng 阅读(4348) 评论(0) 推荐(2)

摘要: 此文的作者是新浪微博平台架构师杨卫华(timyang)大师,如果关注了新浪一些牛人微博的同学应该知道,timyang前段时间正在对Redis进行一些研究和测试,也分享出了不少成果。下面一篇文章相信是timyang这段时间对Redis研究的一个总结,澄清了一些认识上的误区,值得一读。原文链接:http://timyang.net/data/redis-misunderstanding/前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概 阅读全文
posted @ 2013-10-01 10:10 ggjucheng 阅读(974) 评论(1) 推荐(1)

摘要: 在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。(本文主要讨论Redis未启用VM支持情况)1. SchemaMySQL: 需事先设计Memcached: 无需设计Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划数据项: value保存的内容是什么,如用户资料Redis数据类型: 如String, List数据大小: 如100字节记录数: 如100万条(决定是否需要拆分)⋯⋯上面的规划就是一种schema,为什么Redis在大型项目需要事先设计schema?因为Redis服务器有容量限制,数据 阅读全文
posted @ 2013-10-01 10:06 ggjucheng 阅读(1905) 评论(0) 推荐(0)

摘要: Redis提供了丰富的数据类型,比起关系型数据库或者简单的Key-Value存储(比如Memcached)来,Redis的数据模型与实际应用的数据模型更相近。比如下面说到的好友关系的存储,原作者使用了Redis的 Sets(集合)数据结构。具体存储方式如下:对于每一个用户,其关注关系存储两份列表,一份为此用户关注的人的UID列表,另一份为此用户粉丝的UID列表,这两个列表都使用Sets(集合)。比如对于用户ID为123的用户,graph:user:123:following 保存的是其关注人的列表,graph:user:1:followed_by 保存的是关注他的人的列表。下面是一个PHP代码 阅读全文
posted @ 2013-10-01 10:04 ggjucheng 阅读(1918) 评论(1) 推荐(1)

摘要: 丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。用户登录系统记录用户登录信息的一个系统, 我们简化业务后只留下一张表。关系型数据库的设计mysql> select * from login;+---------+----------------+-------------+------------------- 阅读全文
posted @ 2013-10-01 09:57 ggjucheng 阅读(4552) 评论(0) 推荐(0)

摘要: 毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。下面是一篇新鲜出炉的文章,其作者是Redis作者@antirez,他描述了Redis比较适合的一些应用场景,NoSQLFan简单列举在这里,供大家一览:1.取最新N个数据的操作比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取使用LPUSH latest.comments命 阅读全文
posted @ 2013-10-01 09:53 ggjucheng 阅读(460) 评论(0) 推荐(0)