吴浩 – Web开发技术

May 20th

Nodejs 0.7.X的安装及并发测试

由于新版本 Nodejs 要求使用 Python 2.6+ 进行编译,在老版本CentOS下默认使用的是 Python 2.4,故需调整编译时使用的Python: 1. 修改 ./configure 文件第一行 改为 python26 2. 修改 ./tool/gyp_node 文件第一行 改为 python26 修改完成后即可正常编译。 使用中发现 0.7.x 使用服务端SOCKET要比0.6.x系列耕升资源。 目标压测要达到500k左右的量,看看效率如何。 目前压力达到 970k 的长连接数量,服务器占用在 1G左右,效果相当好: 并发 内存 325000 341Mb 975195 973Mb 发送消息效率测试: 1. 单进程,直接从SOCKET服务器发送50w数据(20byte),耗时 12.6s

, , , , , ,

GOOGLE发布HTML5游戏,以及我对 HTML5 的一点点学习

GOOGLE最近接连合作发布了好几款HTML5的游戏,刚进去觉得太牛逼了,跟客户端查不了多少。有兴趣大家可以看看: http://beta.coreonline.com/mini-ninjas/level_1/ 受到强烈感化之下,抽出点时间学习一下HTML5,简单做了个黑白棋的游戏。http://blog.terrywh.net/wp-content/uploads/2012/03/othelo/index.html 游戏中简单用到了: Canvas 路径绘制(beginPath/stroke) Cavnas 贴图(drawImage) 简单的实现了反转动画 实现了两个简单的AI程序 Audio/Image 使用回调函数控制资源的加载

, , ,

Mount共享无法分配内存(Cannot allocate memory)

原文:http://jlcoady.net/windows/how-to-resolve-mount-error12-cannot-allocate-memory-windows-share 在CentOS上mount Windows的共享,用着用着出现一个无法分配内存的错误[ Cannot allocate memory ],就不能使用了,几经查询,尝试了两个方案: 1. http://linux.derkeiler.com/Newsgroups/comp.os.linux.networking/2006-10/msg00629.html 修改:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer \Parameters\IRPStackSize DWORD 为 15->18 重启后,重新mount还发现同样问题。 2. http://jlcoady.net/windows/how-to-resolve-mount-error12-cannot-allocate-memory-windows-share 解决了问题,且不用重启。 设置:“HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache” 为 “1″. DWORD 设置:“HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size” 为 “3″. 重启: Server 服务即可。

Netbeans Cdt 输出窗口UTF8时乱码

1. 向 etc\netbeans.conf 添加-J-Dfile.encoding=UTF-8参数 2. 由于强制使用UTF-8,JAVA的字体配置会无效,可以使用下面的文件代替: fontconfig 主要是在sequence节增加了UTF-8的相关设置。 Netbeans/Java的字体 设置可参考: http://blog.terrywh.net/develop/213/

Windows PHP 5.3 编译yaf

编译过程可参考 http://www.laruence.com/2011/06/28/2088.html 原作者的博客上的文章。 在5.3下,小有区别,首先 编译过程中出现缺失config.w32.h 头文件,该头文件需要使用 configure 进行生成(buildconf.bat / configure.bat / VisualStudio2008). Configure过程中又提示缺失 bison.exe ,该文件可以从 http://www.php.net/extra/win32build.zip 下载获得。其余编译过程与5.2相同,请参考原文。 Windows 下编译 PHP 官方网站有一些参考说明: http://www.php.net/manual/zh/install.windows.building.php 我在测试将yaf和PHP一起进行编译时发现作者填写的说明信息中电子邮件两侧有尖括号“”,此项会导致一起编译时生成的Makefile运行过程中会出现故障。 Linux下不存在问题。

, , ,

VirtualBox 精简版CentOS

1. 下 CentOS6.0的精简版安装ISO http://mirrors.sohu.com/centos/6/isos/i386/ 国内镜像有好几个,除搜狐外163的那个速度也很不错。 我这里下载的 32位minimal 版本的iso。 2. 增加虚拟主机,并挂在该虚拟光盘文件,按照提示一步一步往后走,一直按提示默认操作即可完成安装。 3. 修改网卡设置 /etc/sysconfig/networking-scripts/ifcfg-eth0 文件,配置网络: DEVICE=”eth0″ HWADDR=”08:00:27:EF:D0:3A” BOOTPROTO=”dhcp” ONBOOT=”yes” reboot 虚拟主机。 4. 建立端口映射和安装 VBoxAudition并文件夹共享。 通过命令行 VBoxManage.exe controlvm “CentOS-6″ poweroff 停止虚拟主机 通过命令行 VBoxManage.exe startvm “CentOS-6″ –type headless 后台启动虚拟主机 4.1 增加端口映射: 到这里就已经可以通过外部ssh工具连接虚拟主机了。 (如果映射其他端口,请注意防火墙 iptables 设置) 4.2 安装 VBoxAudition: yum -y install kernel-devel-2.6.32-71.29.1.el6.x86_64 make gcc perl # kernel-devel 一项的具体版本我是根据错误提示进行安装的 [...]

, , , , ,

HTML UI 的C#程序

1. 首先是使用WebBrowser组件; 2. 定义静态文件; 3. C#中调用页面中的Script,使用: webBrowser1.Document.InvokeScript(“eval”,new string[] { “alert( $(‘li.select’).text() );” }); 4. Script中调用C#中的程序使用: [System.Runtime.InteropServices.ComVisibleAttribute(true)] // Com Visible 将某个共有类变为Com可见,同时设置WebBrowser的ObjectForScripting属性为该类的实例; 页面中即可使用 window.external 或 external 来访问该对象了。 注意: 嵌入的WebBrowser组件使用系统IE,如果为IE8以上版本,可能会自动进入兼容模式,可以调整下面注册表项,进行变更: 在这中,加入exe文件的说明,并写明使用的版本号: DWORD 8000 0x1F40 — IE8 DWORD 9000 0×2328 — IE9 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 可以参考 lingll 博客中的文章: http://blog.csdn.net/lingll/article/details/5892478 上述内容还可参考:

记一下做的XDevelop、WNPM的几款启动命令行

mysqld.exe –defaults-file=my.ini nginx.exe php-cgi.exe -b 127.0.0.1:9005 -c php.ini mount -t cifs -o username=XXXXXXX,password=YYYYYYYYY,dir_mode=0755,file_mode=0755,uid=501,gid=501 //192.168.138.12/htdocs /opt/xdevelop/XXXXXXXXXXXXXX

, , , , ,

php 功能比较完整的 CURL HTTP 请求函数

这个函数较为完整的模拟了一般HTTP的GET和POST请求,根据参数自动切换请求方法,并能够防止进行https证书验证,同时在POST大数据时防止出现100 continue响应: function curl($url,$data=NULL){ $ch = curl_init($url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_TIMEOUT,5); if($data != NULL){ // 自动POST数据 curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_HTTPHEADER, array( ‘Expect:’ ) ); //可选: 防止 100 continue 交互 } if(substr($url,0,5)==’https’){ //可选: 阻止证书验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); } $r=curl_exec($ch); curl_close($ch); return $r; }

, , , , , , ,

php lcfirst 5.2兼容函数

lcfirst(首字母小写) 函数在5.3版本中已经提供,但5.2版本中没有。以下始终兼容写法: if(!function_exists(‘lcfirst’)){ function lcfirst($str){ $cstr = ord($str[0]); if($cstr > 64 && $cstr < 90){ $str[0] = chr($cstr+32); } return $str; } }

, , ,

Previous Posts

Performance Optimization WordPress Plugins by W3 EDGE