- 博客(317)
- 资源 (7)
- 收藏
- 关注
转载 ecshop修饰符preg_replace/e不安全的几处改动
主要集中在 upload/includes/cls_template.php 文件中: 1:line 300 : 原语句: return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source); 修改为: return preg_replace_callback("/{([^\}\{\n
2015-07-22 11:24:29
2369
原创 编写leetcode测试用例时所用的辅助函数
在做leetcode题目(https://oj.leetcode.com/problemset/algorithms/)的时候,我们总要自己写测试用例,常常要生成vector, list, tree,我将这些常用操作封装了一下,方便大家使用
2015-01-31 17:10:31
9076
1
原创 编译原理:tiny语言
描述真实的编译器非常困难。“真正的”编译器——也就是希望在每天编程中用到的——内容太复杂而且不易在本教材中掌握。另一方面,一种很小的语言(其列表包括1 0页左右的文本)的编译也不可能准确地描述出“真正的”编译器所需的所有特征。为了解决上述问题,人们在( A N S I)C中为小型语言提供了完整的源代码,一旦能明白这种技术,就能够很容易地理解这种小型语言的编译器了。这种语言称作T I N Y
2015-01-24 16:01:01
6671
原创 C++ string,删除字符串中的首尾空格
直接上代码: void EraseSpace(string &s) { //ch可换成其他字符 const char ch = ' '; s.erase(s.find_last_not_of(" ") + 1); s.erase(0, s.find_first_not_of(" ")); }够简单吧,亏我以前还一个字符一个字符地数空
2015-01-23 17:05:03
6846
3
转载 Linux定时任务设置
配置步骤:1.Linux下必须编译安装PHP解释器,在安装完成后,要将安装目录下${PHP}/bin/php 文件复制到/usr/bin/下,并使用chmod +x ./php 为其添加可执行权限,ok了,然后在linux命令行下输入:php -q *.php执行一个php程序,以验证是否解释器工作正常2.发布php文件:将编写好的php程序发布到apache的发布目录:如:/
2015-01-15 10:45:03
1226
原创 推荐一个代码行数统计工具cloc
代码行数统计工具cloc,它不但能统计代码行数,还能自动过滤掉代码中的注释,使用起来也很方便,强力推荐。安装很方便,Ubuntu上直接udo apt-get install cloc就可以了
2015-01-08 10:51:05
5450
转载 皇帝的新衣:Node.js
现在有很多人非难Node.js(例如著名的Node.js is cancer),但是反对者往往误解其中所传达的信息并用一些无关的观点进行反驳。更麻烦的是现在有两类人在使用Node.js,第一类人需要一个高并发的服务器来同时处理大量的连接(例如HTTP代理、Websocket聊天服务器等等),第二类人是重度依赖于JavaScript,他们在浏览器、服务器、数据库甚至洗衣机上都用JS。我想
2014-12-06 10:04:22
1397
原创 计算代码段的运行时间
计算代码段的运行时间,这段代码用得太多了,决定将其封装成两个宏,方便以后使用。代码很简单,就不解释了。#include #include //计时器开始,//使用时,要将要计时的代码段放入TIMER_START和TIMER_STOP之间,详情请看测试例子//加入do{ }while(0)是为了尽量减少命令冲突#define TIMER_START() \ do \
2014-11-11 15:47:52
1396
转载 站在巨人的肩膀上,C++开源库大全
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX library : POSIX系统
2014-10-28 19:13:21
1618
转载 Visual Studio 调试小技巧(1)-根据字符串内容添加断点
在用Visual Studio调试程序时,我们经常需要根据数值添加断点。比如需要当i == 2时中断运行,我们可以添加如下的断点: 有些时候,我们需要根据字符串的内容来添加断点。比如我们在调试如下代码:void CVSDebugTricksDlg::OnBnClickedButton1(){ char* string; for(int i = 0; i
2014-10-23 11:41:07
1371
转载 基本unrar用法
unrar使用帮助用法: unrar - - e 解压压缩文件到当前目录 l[t,b] 列出压缩文件[技术信息,简洁] p 打印文件到标准输出设备 t 测试压缩文件 v[t,b] 详细列出压缩文件[技
2014-09-20 13:13:33
5271
转载 linuxmint 16 国内源
linuxmint 16 国内源先将/etc/apt/sources.list 及deb http://mirrors.oschina.net/linuxmint/ petra main upstream importdeb http://mirrors.oschina.net/ubuntu/ saucy main restricted universe multivers
2014-09-19 21:30:53
2131
原创 魔兽世界服务器Trinitycore分析四:auth server网络事件的处理
authserver在初始化时,会创建一个AsyncAcceptor对象,在它的构造函数中,会调用AsyncAcceptor::AsyncAccept()准备监听指定端口,当然,正式开始监听要等开始事件循环之后,即调用_ioService.run()之后。
2014-09-05 15:50:26
5397
原创 魔兽世界服务器Trinitycore分析三:日志模块
一:日志接口TrinityCore的日志有六个级别,Trace,Debug,Info,Warn,Error,Fatal它们分别对应以下这六个接口,(filterType__也是在配置文件中指定的)#define TC_LOG_TRACE(filterType__, ...)#define TC_LOG_DEBUG(filterType__, ...)#define TC_LOG_I
2014-09-03 17:51:04
4633
原创 魔兽世界服务器Trinitycore分析二:auth server的main函数
TrinityCore由生成两个执行文件authserver和world server以及一堆DLL(或so)文件的子项目组成(先忽略map_extractor等几个工具项目)。 authserver是登录验证服,它主要提供登录验证和获取服务器(区服)列表的功能。world server是真正的游戏服务器,提供游戏里的一切功能。相对而言,auth server比较简单,那我就从它入手啊,先看一下它的main函数,在源码的基础上,我加上了注释。
2014-09-02 10:55:09
5593
原创 Visual Studio 2013去掉讨厌的红色下划波浪线
1:VA助手的问题(网上大部分都是这个答案)2:但我设置之后,该死的下划线依然存在,经过查找,可以在 工具--选项 里设置搞定!!
2014-09-01 17:44:37
7953
1
转载 MFC、WTL、WPF、wxWidgets、Qt、GTK的对比
WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设计思路也没摆脱MFC的影响,实际上用泛型做UI Framework也只能算是一次行为艺术,这个思路下继续发展就会变得没法用了,比如 代码过于复杂,编译太慢,出错不好调试等问题难以解决。而且封装得也不完全,还是随处可见 HWND HDC之类的东西。用途主要是写一些很小的程序,或者作为其他UI框架的后端实现
2014-07-26 09:39:03
5337
原创 将格式化字符串赋给stl::string
代码很简单,就不解释了,直接上代码:#include #include #include using namespace std;//功能:将格式化字符串赋给stl::string//参数:和printf的参数一样//返回值:返回格式化后的string类string StringFormat(const char *format, ...){ string result;
2014-07-25 15:57:28
3264
原创 记录一下我的GDB配置
一:为了更好的在GDB中显示STL容器,我们首先要下载一个python脚本PS:要确定你所安装的GDB可以执行python脚本cd ~mkdir .gdbcd .gdbsvn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python二:修改用户目录下的.gdbinit文件(将以下文本复制一份就行)#为了更好的在GDB中显示STL
2014-07-21 12:01:25
1636
原创 C++的一种业务分发方案(另类的工厂模式)
在C++中,传统的业务分发,总要写一大串的switch-case,而且每次增加新业务时,都要在原有的switch-case里加一个分支,这就违反了设计模式中的开放封闭原则,以下这种方案,就完全去除了switch-case,每当要添加业务模块时,只要写一个TEST_MODULE(index, name)就可以了。思路很简单,直接上代码:#include #include #inclu
2014-07-11 13:03:17
2241
转载 linux中vi命令的常用参数使用总结
1.*关于退出:*:wq! ----强制保存退出:wq ---- 保存退出: x ----- 作用和:wq 一样ZZ ---- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式):q ---- 退出:q! --- 强制退出========================================================2.*关于移动
2014-07-04 15:50:35
2208
转载 Node.js 异步异常的处理与domain模块解析
异步异常处理异步异常的特点由于node的回调异步特性,无法通过try catch来捕捉所有的异常:try { process.nextTick(function () { foo.bar(); });} catch (err) { //can not catch it}而对于web服务而言,其实是非常希望这样的: //express风
2014-06-13 10:17:54
1506
转载 webstorm和phpstorm的注册码
WebStorm注册码User Name:EMBRACE License Key:===== LICENSE BEGIN =====24718-1204201000001h6wzKLpfo3gmjJ8xoTPw5mQvYYA8vwka9tH!vibaUKS4FIDIkUfy!!f3C"rQCIRbShpSlDcFT1xmJi5
2014-06-10 10:13:55
2665
转载 Socket.IO 和 Node.js 入门
Node.js 并不能做所有事情,但它可通过 Socket.IO 库轻松实现 WebSockets。使用 WebSockets 可轻松构建实时多用户的应用程序或游戏,今天我们将讲述如何使用 Node.js 和 Socket.IO 构建简单的聊天程序。注意: 在阅读文章之前你应该先安装好 Node.js,同时你需要一个自己喜欢的文本编辑器,本文提及的一些源码有些改自 http://boo
2014-05-27 14:59:26
1361
转载 推荐一款cpp解析json工具--rapidjson
项目地址:http://code.google.com/p/rapidjson/上面有很详细的介绍:http://code.google.com/p/rapidjson/wiki/UserGuide作者介绍说:" Rapidjsonis an attempt to create the fastest JSON parser and generator. "这是一个试图
2014-05-15 14:42:36
1325
转载 epoll的高效实现原理
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。
2014-05-07 11:36:25
1006
转载 TCP状态转移图学习总结
上两周无意中讨论起这个话题,发现andy同学对此甚为熟悉,于是叫他给大家分享了一下,在这里做一个沉淀。这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析:1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。2.LISTEN:svr端在等待连接过来时候的状态,svr端
2014-05-07 11:25:57
1009
转载 为什么你还一直在穷打工?
摘要:同样是打工,为什么你一个月只有2、3K,而唐骏的身价却可以高达10亿?很多人都喜欢抱怨,觉得这个世道不好。但现实是,在同样世道不好的情况下,为什么有的人成功,而你却碌碌无为?差距在哪里?有人问我成功有没有捷径,我告诉他,唯一的捷径就是不走弯路。以下的8条如果你做到了,成功对你而言,只是个时间问题。 同样是打工,为什么你一个月只有2、3K,而唐骏的身价却可以高达10亿?或
2014-05-01 21:54:07
1510
转载 使用forever运行nodejs应用
何为foreverforever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。官方的说明是说:A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).// 一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具Githu
2014-04-30 09:50:42
1266
转载 35岁的职场恐惧!出来混,迟早是要还的!
你所有不曾料想过的问题,都会随着时间的推移而与你不期而遇;你所有曾经潇洒的随遇而安,同样也会随时间流逝而让你承担那些似乎命中已经注定的代价。 在这个世界上,“唯一不可阻挡的是时间,它像一把利刃,无声地切开了坚硬和柔软的一切,恒定地向前推进着,没有任何东西能够使它的行进产生丝毫颠簸,它却改变着一切。” 我始终相信一句话:出来混,迟早要还的。 虽然你我皆是凡人,只是这芸芸
2014-04-30 09:48:48
1774
转载 使用zlib实现gzip格式数据的压缩和解压
代码简介本身这段代码也是从网络上找来的,但是网上的内容都没有针对gzip做特别说明,所以直接拿来用的时候出了些问题,现将我修改后的发在这里。注意代码中的注释部分,这里设置是专门针对gzip的,缺少了就不行了,gzip压缩格式和其他格式的区别就在这里。Bytef 就是 unsigned char,uLong就是 unsigned long,这些别名的设置都在zconf.h文件里面。
2014-04-16 13:50:20
2568
转载 开源日志库<log4cplus+VS2008使用>整理
一.简介 log4cplus是C++编写的开源的日志系统,功能非常全面.本文介绍如何在Windows+VS2008中使用该日志库。 二.下载 可从网站[url]http://log4cplus.sourceforge.net[/url]上去下载 log4cplus 1.0.3 rc9,具体地址[url]http://downloads.sourcef
2014-04-03 17:01:01
1484
转载 C语言判断文件夹或者文件是否存在的方法
C语言判断文件夹或者文件是否存在的方法方法一:access函数判断文件夹或者文件是否存在函数原型: int access(const char *filename, int mode);所属头文件:#include filename:可以填写文件夹路径或者文件路径mode:0 (F_OK) 只判断是否存在 2 (R_OK) 判断写
2014-03-31 18:04:56
1403
转载 搭建最简单的Nginx/Tengine tcp反向代理
原文地址:http://blog.csdn.net/teaey/article/details/19114465,转载请注明作者!1. 下载nginx或者tengine这里我下载的是tengine-2.0.0,下载地址http://tengine.taobao.org/download/tengine-2.0.0.tar.gz 2. 解压nginx或者tengine
2014-03-27 15:59:08
2097
转载 libcurl之curl_easy_getinfo的使用教程
执行结果代码[cpp] view plaincopy// getinfo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; #include "curl/curl
2014-03-21 15:36:30
4357
原创 LINUX C:创建与监控多个子进程
先鄙视一下自己,这个简单的功能也搞了一个上午,看来我的基础不扎实啊,写个DEMO记录一下先。这个程序很简单,创建多个子进程,并开启(父子进程的)事件循环,当一个子进程意外退出时(如被KILL掉),父进程会重新启动一个子进程上代码:#include #include #include #include #include //子进程个数#define SUB_PRO_COUN
2014-03-14 13:34:50
4654
2
转载 从 bufferevent 实现学习 Libevent 的使用
Libevent 2 提供了 bufferevent 接口,简化了编程的难度,bufferevent 实际上是对底层事件核心的封装,因此学习 bufferevent 的实现是研究 Libevent 底层 event、event_base 用法的一个好办法。本文假定你已经对 Libevent 有一定的认识,否则可以先阅读我关于 Libevent 的介绍:Libevent(1)— 简介、编译、配置
2014-03-06 16:23:49
3081
原创 libevent2.0分析:事件循环的一生
对于一个网络框架而言,其中的事件循环无疑是重要的组成部分,下面,我们就来分析一下libevent的事件循环。
2014-02-22 14:36:05
3862
redis网络事件框架的使用
2013-11-22
hao IM 0.20更新补丁
2011-04-22
我自己写的聊天软件haoIM的源代码(utf-8)
2011-04-17
我自己写的聊天软件haoIM的源代码
2011-04-17
有问题的QT程序,请大家帮忙看一下吧
2011-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人