- 博客(18)
- 资源 (7)
- 收藏
- 关注
原创 redis源码解析,不定期更新记录
redis 源码解读,1. event loop2. command table3. store struct
2015-09-09 17:58:52
512
原创 nodejs 模块查找一起缓存机制
nodejs在加载外部自定义模块时对模块有查找顺序,找到后还会进行缓存。查找顺序:1. 相对路径,比如提供./ 或者../这种以'./'和‘..’开始的路径,简单的,就是相对当前位置的路径。2.绝对路径,这时候将按以下顺序查找:假设执行路径为C:\Intel\research\subFolder那么查找顺序为[ 'C:\\Intel\\research\\subFo
2015-01-18 01:30:59
1280
原创 为什么C++中stack的pop()函数不返回值而返回void
C++中stack,其中有两个方法:pop(), 返回void,top(),返回栈顶的引用。看起来非常pop函数非常的浪费,为什么不再pop是返回值呢。我收集到两个原因:1.安全原因:假设有这个stack类class Stack{ public: T pop(); //let pop to change the st
2015-01-07 23:21:41
15776
1
原创 CVE-2014-6271: BASH 漏洞记录
原理BASH除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量!当前版本的bash通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变量。此次爆出的漏洞在于BASH处理这样的“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的shell命令
2014-09-26 10:50:20
1288
原创 《后会无期》首映 感受
去年开始决定要看完一部电影之后记些感受,免得看过之后什么都没有留下。今天开始,记些东西吧。《后会无期》前些天跟同事随便聊到:“你觉得看电影首映有意思吗”“没意思”“我也觉得”谁知道几天后我就有了看一部电影首映的强烈的冲动。怕自己中途改变注意,还提前买好了不能退的首映票。张露问道:"为什么要看首映",答:"为什么要看世界杯直播"。一样吧。
2014-07-24 15:03:57
946
原创 你为什么而去兼职
我有个姐姐在兼职,我有个同学想要去兼职,还有个同学曾经一直在兼职。我很想说说我对这一现象的看法。让我们走上这条路的主要是因为缺钱(不主要的理由我最后会提到)。这是兼职不同于实习的主要区别,实习者为的是希望实际地学习让自己的下一份工作能更好,而兼职者仅仅是为了钱(其他个别理由我真的到后面会提到的)。为了钱而干活这一点没什么不好意思承认的。从学校到工作一直都有人希望通过兼职让自己生活的
2014-03-22 01:20:07
1509
原创 canvas的文字自动换行
canvas的文字是不能自动换行的,这里我做了一个自己计算文字宽度并收动换行的方法,调用者也就可以认为是自动换行了;var Canvas = require('canvas');function text2png(text,callback){ if(typeof text != 'string' || text.trim().length ===
2014-03-08 22:10:12
4972
原创 关于ubuntu中node-canvas不能显示中文的解决方法
关于ubuntu中node-canvas不能显示中文的解决方法:比如我用如下方法设置文字内容:var canvas = new Canvas(width,height);var ctx = canvas.getContext('2d');ctx.font = '16px Impact, serif';//Impact, serif这是英文字体名,ctx.fillStyl
2014-03-08 21:59:13
4499
原创 Nodejs源码的阅读-事件循环的过程
Nodejs源码的阅读-事件循环的过程 解读基于node V0.2.0 Unknown Watcher首先在“Nodejs源码的阅读-事件循环的建立”中我们看到有几个初始化但是没有start的watcher,这些watcher的作用有助于理解事件循环的过程。“Nodejs源码的阅读-事件循环的建立”见 http://blog.youkuaiyun.com/sxyizhiren/art
2014-02-06 23:05:35
1315
原创 Nodejs源码的阅读-事件循环的建立
Nodejs源码的阅读-事件循环的建立 解读基于node V0.2.0 我们知道nodejs在c++这一层面主要的工作是建立事件循环,随后加载命令行的js文件交给V8执行,同时启动循环。所有异步操作都会扔到事件循环中,一旦事件队列空了,程序就会退出。建立事件要从main函数开始看。 Main函数这个函数完成4个动作/***********1.解析参数2.
2014-02-06 17:10:13
2766
原创 jsoncpp的安全使用
jsoncpp是一个c++使用的json库,他通过重载中括号[]来实现json的语法。但是由于c++是一个强类型的语言,所以,这个库在遇到类型不正确的时候就会强制断言,把程序挂掉。这在调试中是个好事,但是实际使用中,由于属于不可预期,被断掉成了常有的事情。为了解决这个问题,我做了一个safejson的类,可以方便安全的使用jsoncpp。使用过这个库的人应该清除,为了安全获
2014-01-21 22:22:04
3178
原创 javascript块级作用域变量的声明
遇到一个问题:if(1==1){var a=11;}else{var a=2;}{var a=3;}console.log(a);你才打印什么?如果你的答案不是3,那么就有跟我一样的问题。js中块级作用域变量怎么互相影响了。块级作用域就是用{}括起来的区域。在c系列语言中,这里面定义的都是块级域变量,或者说局部变量,不会影响外部,也不能被外部引用到。下面这段
2014-01-15 13:53:23
962
原创 node循环引用简单测试
今天代码遇到方法未定义has no method问题。发现是循环引用的问题。nodejs在遇到循环require时,会把require结果得到的结果变成空对象{}。这个结果包括的是循环引用链中的每一个。例子:a.jsconsole.log('a.js');var b = require('./b');console.log('a+.js');console.lo
2014-01-14 13:20:24
2032
原创 记录nodejs中async的几个接口用法
这些天使用async用的较多,确实简化了代码。这里记录使用到的几个接口,给自己和需要的人参考。1.async.waterfall用法:async.waterfall(tasks, [callback]);task是函数组成的数组,callback是中途出错或者全部执行完后的回调函数。它的特点是串行执行函数,并且前一个函数的结果会传给下一个函数,比较类似Step模
2014-01-14 01:00:56
26481
2
原创 记一个自己写nodejs实现的树洞
最近实现了一个树洞(匿名发秘密的一个主页)。nodejs写的。总体结构是这样的:HAND负责接收数据,数据来源有微信,留言板和站内信。FOOT负责处理数据,图片的话就上传相册,文字就发布状态,这两者都会记录由日志进行记录。至于过滤器是对数据到达FOOT之前进行过滤或者加工。HAND和FOOT我分别写一个:HAND中微信这个功能模块主要由wechat这个组件完成,通过npm in
2013-06-29 08:13:04
1453
原创 AVI文件格式完整解析
首先AVI是一种RIFF文件,所以先介绍一下RIFF文件一、RIFF文件简介RIFF是Microsoft提出的一种多媒体文件的存储方式,不同编码的音频、视频文件,可以按照它定义的存储规则保存、记录各自不同的数据,如:数据内容、采集信息、显示尺寸、编码方式等。在播放器或者其它提取工具读取文件的时候,就可以根据RIFF的规则来分析文件,合理的解析出音频、视频信息,正确进行播放。常见的RIFF文
2012-03-19 16:54:08
2278
手动整合struts2+spring3.
2011-01-23
python写的socket聊天室程序,包括客户端和服务端
2010-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人