行内技术
什么是node.js的事件驱动编程
Node.js现在非常活跃,相关生态社区已经超过Lua(基本上比较知名的功能都有nodejs模块实现)。但是我们为何要使用Node.Js?相比传统的webserver服务模式,nodejs有什么优点优势?Node.Js是基于javascript语言,建构在googleV8engine以及Linux上的一个非阻塞事件驱动IO框架。nodejs是单进程单线程,但是基于V8的强大驱动力,以及事件驱动模型,nodejs的性能非常高,而且想达到多核或者多进程也不是很难(现在已经有大量的第三方module来实现这个功能)。这里主要不是介绍nodejs具体应用代码,而是想介绍一下事...
2013-3-3279
PHP合并、追加与连接数组
合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:arrayarray_merge(arrayarray1array2…,arrayN)将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。实例如下...
2013-3-3461
非阻塞式JavaScript脚本及延伸知识
JavaScript倾向于阻塞浏览器某些处理过程,如HTTP请求和界面刷新,这是开发者面临的最显著的性能问题。保持JavaScript文件短小,并限制HTTP请求的数量,只是创建反应迅速的网页应用的第一步。一个应用程序所包含的功能越多,所需要的JavaScript代码就越大,保持源码短小并不总是一种选择。尽管下载一个大JavaScript文件只产生一次HTTP请求,却会锁定浏览器一大段时间。为避开这种情况,你需要向页面中逐步添加JavaScript,某种程度上说不会阻塞浏览器。非阻塞脚本的秘密在于,等页面完成加载之后,再加载JavaScript源码。从技术角度讲,这意味着在wi...
2013-3-3327
PHP自动判断字符集并转码
原理很简单,因为gb2312/gbk是中文两字节,这两个字节是有取值范围的,而utf-8中汉字是三字节,同样每个字节也有取值范围。而英文不管在何种编码情况下,都是小于128,只占用一个字节(全角除外)。如果是文件形式的编码检查,还可以直接checkutf-8的BOM信息。话不多说,直接上函数,这个函数是用来对字符串进行检查和转码的。<?phpfunctionsafeEncoding($string,$outEncoding='UTF-8'){$encoding="UTF-8";for($i=0;$i<strlen($string);$i++)...
2013-3-3317
原生JavaScript如何实现淡入淡出效果?
window.onlo...
2013-3-3368
MFC的一些实用的基础知识
一、_T()函数_T("")是一个宏,他的作用是让你的程序支持Unicode编码。因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。WindowsNT的所有与字符有关的函数都提供两种方式的版本,而Windows9x只支持ANSI方式。如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于,_L不管你是以什么方式编...
2013-3-3433
如何获知PHP程序占用多少内存
想要知道编写的PHP脚本需要占用多少内存么?很简单,直接使用PHP查看当前分配给PHP脚本的内存的函数memory_get_usage()就可以了。下面是使用示例:<?phpechomemory_get_usage(),'<br/>';//313864$tmp=str_repeat('http://www.goorder.net/',4000);echomemory_get_usage(),'<br/>';//406048unset($tmp);echomemory_get_usage();//313952?>上面的程序后...
2013-3-3267
什么是极大极小博弈树?
极大极小博弈树(MinimaxGameTree,简写为MGT)用于编写电脑之间的游戏程序,这类程序由两个游戏者轮流,每次执行一个步骤。当然,所有可能的步骤构成了一个树的结构。例如下面的图就是一个MGT,它表示了Tic-Tac-Toe游戏的前两步所有可能的步骤。Tic-Tac-Toe是一种简单的九宫格游戏,玩法是使用3*3的9个方格子,每人下一次看谁先连成一行3个,以下称ttt游戏。我们注意到这棵树不同于其他的树结构,比如二叉树,23树以及堆树,根据游戏规则,一个MGT节点上可能有很多个子节点。图中的树有三级,不过在编码中,极大极小树的级通常被称作层(级:leve...
2013-3-3549
如何进步?程序员的自学指南
如果你是一个程序员初哥,刚从大学迈进公司却没有人指导,要么公司给你指定了导师,却不好意思大事小情都问他。你想提高自己的编程水平,却不知该如何下手。如果你想提升自己,成为一个合格的天天向上的程序员,这篇文章就是为你准备的。学什么?有些人对什么都感兴趣,硬盘上存着几百G的教学视频电子书破解软件,却只是仅仅保存着,没有转化成知识。有些人只知道自己刚进公司的那点东西,JDK一定要1.4.2,VC++一定要6.0,系统一定要WindowsXP,否则就是大逆不道。前一种是不知道自己想要什么,后一种是固步自封眼界短浅,都不是一个程序员应该有的学习态度。常见的程序员有Windo...
2013-3-3352
如何使用帝国CMS自带的数据库类
帝国CMS封装了一个SQL,文件位置是e/class/db_sql.php;使用程序本身的类库可以给我们的开发带来便利和效率,同时可以减少增设文件数量等。首先,做下准备工作:
    在e目录下建立测试目录,例如我建立的是e/trylife/td-test/在1中目录下建立个PHP文件,例如我建立的是e/trylife/td/test-db_sql.php文件中写入代码如下:
<?php/*引用文件*/include("../../class/connect.php");include("../../class/db_sql....
2013-3-3378
互联网信息传递的变化趋势
互联网的创新和应用日新月异,纷繁复杂,为在千头万绪中理一线索,我们做一个假设,网民的信息处理能力是互联网的发展动力,我们从这一假设出发去探求互联网的创新轨迹。分三个阶段互联网的历史,当前阶段,未来的方向,对网民的信息处理能力与创新的关系分别阐述。根据假设进行的逻辑推演具有自我生长和反证性质,得出自成体系的结论,能够自我验证,不需要大量实践案例予以证明,不同于研究大量案例得出结论的论证思路。在逻辑上不能对假设证伪,反证假设的正确性,可以对我们的实践进行指导。互联网的发展历史个人计算机的普及1946年世界上第一台电子计算机问世,1981年,IBM推出世界上第一台个人...
2013-3-3259
JavaScript的lazyload延迟加载是如何实现的
懒加载技术(简称lazyload)并不是新技术,它是js程序员对网页性能优化的一种方案.lazyload的核心是按需加载.在大型网站中都有lazyload的身影,例如谷歌的图片搜索页,迅雷首页,淘宝网,QQ空间等.因此掌握lazyload技术是个不错的选择,可惜jquery插件lazyload官网(http://www.appelsiini.net/projects/lazyload)称不支持新版浏览器。涉及到图片,falsh资源,iframe,网页编辑器(类似FCK)等占用较大带宽,且这些模块暂且不在浏览器可视区内,因此可以使用lazyload在适当的时候加载该类资源。...
2013-3-3316
重温Google彩蛋Letitsnow的温馨效果
window.google={kEI:"T_fuTq3MD4iA2wXqqrSoDw",getEI:function(a){varb;while(a&&!(a.getAttribute&&(b=a.getAttribute("eid"))))a=a.parentNode;returnb||google.kEI},https:function(){returnwindow.location.protocol=="https:"},kEXPI:"18167,30316,31215,33492,33526,33527,33902,34864,35213,35300,35357",kCS...
2013-3-3433
追随自己的心,将想做的事情变成自己的工作
这是一个重要的练习,它能让你勇敢地去梦想,去了解自己。当我们不知我们要什么时,我们如何去要?所以,这个生涯规划的练习,是让我们去了解自己所要的,以及要如何去要。建议找一个时间,静静地坐下来,拿起你的纸与笔,一步一步来做。也许,你没有一次做完所有的步骤,没有关系,第二天再找一个时间,继续你未完的内心历程。建议,在一周内完成这个练习。然后经常拿起来看看,你会慢慢发现。你的眼光开始变得敏锐起来,你能在生活、工作、人际关系中快速地发现有助于自己目标实现的因素,并引为已用。几周内,你的内心会越来越稳定而有方向感。别人会开始注意到你的改变。几个月内,你会发现自己的一些目标在一步一步变在现...
2013-3-3382
浅析JavaScript的垃圾回收机制
JavaScript语言是一门优秀的脚本语言。其中包含脚本语言的灵活性外还拥有许多高级语言的特性。例如充许构建和实例化一个对象,垃圾回收机制(GC:GarbageCollecation)。通常我们使用new创建对象,GC负责回收对象占用内存区域。因此了解GC,可以加深对javascript垃圾回收机制的理解。GC在回收内存时,首先会判断该对象是否被其它对象引用。在确定没有其它对象引用便释放该对象内存区域。因此如何确定对象不再被引用是GC的关键所在。<scripttype="text/javascript">functionaa(){this.rr="弹...
2013-3-3449
如何改善你的程序代码质量
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧:
    尽量保持方法简短尽管很多人都遵循这个规则,但它仍然非常的重要。你写的方法要始终能在一个屏幕里放得下。如果你需要去滚动屏幕,这会分散你的注意力,而且你看不到整个的上下文。最佳长度是5-20行,这根据你的情况而定。当然,getters/setters通常是一行代码的方...
2013-3-3380
CSS网页宽度怎么定比较合适
设计网页的时候,确定宽度是一件很苦恼的事。以goorder.net为例,根据GoogleAnalytics的统计,半年多以来,访问者的屏幕分辨率一共有81种。最小的分辨率是122x160,这应该是手机;最大的分辨率是3360x1050,天知道是什么设备。一张网页要在大小如此悬殊的各种屏幕上,都呈现令人满意的效果,难度可想而知。举例来说,一张400px宽的图片,在800px的屏幕上会占据50%的宽度,而在1920px的屏幕上(WindowsVista的流行设置),只占据20%。目前,常见的屏幕分辨率宽度大概有6种:800px,1024px,1280px,1440px,1...
2013-3-3409
程序员的简历应该这么写
英文原文:http://niniane.org/resume_howto.html这几年,我在Google工作,是一名软件工程师(之前是在微软做一个开发团队的队长),我曾浏览过成百上千的简历,从中挑选出可以进行下一步面试过程的应聘者。有些人的简历给我留下了很深的印象,而另一些则没有感觉。慢慢的,有越来越多的朋友和亲人向我咨询如何优化他们的简历,所以我就收集了一些我见过的简历中出现的最常见的问题,并给出了如何避免这些问题的建议:1. 简历里要有你工作的技术细节:编程语言,你的个人成就和水平我有时会看到一些简历,里面的工作描述就只有一行话,像这样:在一个3人组成的团队里...
2013-3-3290
IE8的兼容渲染模式X-UA-Compatible
X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE>指令,都像是使用了WindowsInternetExplorer7的标准模式。而content="IE=EmulateIE7"模式遵循<!DOCTYPE>指令。对于多数网站来说,它是首选的兼容性模式。X-UA-Compatible是针对IE8版本的一个特殊文件头标记,用于为IE8指定不同的页面渲染模式。由于当下IE6和IE7使用率依然较高,综合考虑,启用IE8版本的X-UA-Compatible兼容...
2013-3-3449
PHP将微博短地址还原为实际网址
由于微博中有字数限制,所以如果你发的是网址,会自动将其变为短网址。之前我的几篇文章介绍了如何将网址转为短网址,这里我们反过来,把短网址还原为实际网址。请参照下面的程序,用PHP实现:<?php$url="http://163.fm/1QLJ8U";echounshorten($url);functionunshorten($url){$url=trim($url);$headers=get_headers($url);$location=$url;$short=false;foreach($headersas$head){if($...
2013-3-3351