underscorejs 源码走读笔记

from: http://www.html-js.com/article/2134Underscore 简介Underscore 是一个JavaScript实用库,提供了类似Prototype.js的一些功能,但是没有继承任何JavaScript内置对象。它弥补了部分jQuery没有实现的功能,同时又是Backbone.js必不可少的部分。Underscore提供了80多个函数,包括常用的: map, select, invoke — 当然还有更多专业的辅助函数,如:函数绑定, JavaScript模板功能, 强类型相等测试, 等等. 在新的浏览器中, 有许多函数如果浏览器本身直接支持,将会采用原生的,如 forEach, map, reduce, filter, every, some 和 indexOf.个人感受Underscore 是一个我坚持看完的js源代码,他简单、易懂、实用,细心观察就会发现,每个函数都很简短,作为开源阅读源码,我相信Underscore是不错的选择笔记1:大量的这种方法,应该是 防止原始方法被篡改,同时加快运行速度,而且在严格模式,也不让通过arguments.callee 调用相关方法的原因吧var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;// Create quick reference variables for speed access to core prototypes.varpush = ArrayProto.push, slice = ArrayProto.slice, concat = ArrayProto.concat, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty;2:void 0,开始还好奇为啥用void 0,是undefined 的缩写?后来一打听才知道,原来undefined在旧版本的浏览器中是不可以被赋值的,而新版本的浏览器是可以被赋值的,为了准确的判断,所以就有了void 0_.first = _.head = _.take = function(array, n, guard) { if (array == null) return void 0; if ((n == null) || guard) return array[0]; if (n < 0) return []; return slice.call(array, 0, n);};3:代码短小精干Underscore 代码短小精干没的说,真是精品除了 eq 这个方法长点外 其他方法都很短4:遗憾 这次走读 没记录笔记没调试本菜鸟第一次走读源码 同时欢迎大家把源码走读 放到这个专栏下 O(∩_∩)O~

jnote开源笔记软件

整理了下做的一个笔记软件,以开放开源的态度做的.jnote是一个开源的笔记软件,类似于Evernote,wiz,麦库,界面也是参考他们做的.当初做只是为了做一个自己可以定制的笔记软件.目前完成的功能:1.新建日记,参考wiz的日记功能,这个功能很实用,可以按照年月分类.2.新建笔记,是一个笔记软件最基本的功能.3.编辑支持高级html编辑器 简单html编辑器 markdown编辑器4.分类支持无限级分类5.简单搜索6.缩小到托盘7.支持多标签8.支持笔记阅读模式9.阅读模式是可以和wiz一样,定义阅读的主题.以后的计划1.添加标签功能2.添加附件功能3.搜索功能加强,计划采用lucene,使用OSChina 网站的全文搜索框架源码做了测试,完成可以使用.4.同步,在选择上面,测试过dropbox的api,计划使用dropbox.5.和evernote 有道 麦库打通api接口,这个还没有测试过,evernote应该是首选.6.用户登录,头像…7.跨平台8…….目前存在的问题1.笔记字数,使用sqlite数据库,存储的文字多少还存在考量.2.编辑器还不完美,编辑器的切换还对笔记的格式存在转换问题.3.内嵌浏览器的问题,这个是java的硬伤,目前使用IE内核,Webkit 由于不支持linux就放弃了,打算使用JF X的内嵌浏览器来实现,提高性能和解决跨平台的问题.4……采用的技术1.界面使用BeautyEye,界面很漂亮2.nutzDao,小巧灵活.3.数据库使用sqlite,4.编辑器使用ueditor wysihtml5 pagedown做笔记软件真不容易,特别还是用java来做.在13年3月份差不多已经这个样子了,之后在忙其他事情,有时间就会继续完善的.看几张截图来看看.项目地址:http://git.oschina.net/imzhpe/jnote

身体发肤,受之父母

一大早的来公司,又看到富士康有人跳楼了!前几天刚刚听到有富士康的人跳楼了,今天又有了!这都不知道是多跳了!“身体发肤,受之父母,不敢毁伤”,你不珍惜自己,也得对自己的父母想想啊!多说教义无用,想想他们背后的事情,为什么会接二连三的发生这样的事情呢?个人原因这个就多了去了,自己分析。工厂原因工作时候,谁还能没个这样、那样的烦恼的事情,富士康好几万的工厂,就是个小社会,已经变成了经常性发生的事情,可见富士康已经成了什么样工厂了。现在也没见个富士康的人出来说句话,ai!社会原因这个可以写本书了。

#十年静候 幸福模样#-恭喜马京新婚愉快

今天马兄结婚,恭喜马兄新婚快乐!扣了一张他们的照片出来,瞧瞧这一对夫妻相的新人!真可谓是夫唱妇随啊!

工作遇到的问题分析【1】

计划是把工作中遇到的一些典型的问题,做个问题总结,之前遇到的,找时间来写。先把今天遇到的一个问题分析下问题场景:&nbsp;&nbsp; &nbsp; 是项目中有一块的程序数据处理变慢了,而且,现象是中午有变慢,下午的时候,就会趋于正常。查看日志也没有发现出现错误。过程分析:&nbsp;&nbsp; &nbsp;程序流程:&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 问题分析:&nbsp;&nbsp; &nbsp; 现象是表2的数据插入很慢。&nbsp;&nbsp; &nbsp; 分析问题有两点可能出问题, 一个是在读取q1,做数据封装,数据逻辑处理给变慢了;&nbsp;&nbsp; &nbsp; 另外一个是在做删除表1的时候,删除的慢了;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 最后分析的是排除了第一种原因,因为这一步简单,在实际中也就是服务器进行一下交互,服务器和网关都是足够健壮的。&nbsp;&nbsp; &nbsp; 定位在第二种情况,原因是删除表1 和 插入表2是个串行的操作。表1每天中午都会做大量的插入操作,在程序流程处理中也同时在做更新、删除的操作,对表的压力巨大,当删除操作变慢了,同样就影响了对表2的插入,导致插入表2的操作变慢,这样的后果,q2的队列存储容量也长时间处于饱和状态,存入Q2也随之延后,读取Q1,封装数据的逻辑处理也延后了,当然Q1的容量也饱和了,第一步的操作也变慢了。&nbsp;&nbsp; &nbsp; 最终的结果就是整个数据处理都变慢了。&nbsp;&nbsp; &nbsp; 解决办法:&nbsp;&nbsp; &nbsp; &nbsp;a、将表1的删除和表2的插入进行异步操作&nbsp;&nbsp; &nbsp; &nbsp;b、对表1的不做删除,将表1的删除做记录id的操作,每天晚上定时进行删除。

闲谈一下

  闲谈一下  本来是打算睡了,最近一段时间,都是12点以后睡觉的,和一哥们聊天,勾起了我想乱侃一下的虫子,不说不痛快啊!  和哥们谈到了权利和感情,是权利的诱惑,还是感情的不舍。权利这玩意,是个诱人的东西,是谁都追求,我也追求,追求也需要看看这个权利的价值了,追求那些无用的东西,就是在浪费生命,真不如去做些自己能做到的事情。  派系的竞争啥地方都有,”与人斗,其乐无穷“是我听到很经典的一句,能玩你们玩,能斗你们斗。虽然自己一直安慰自己,自己是不想玩,也不原斗,可也明白,曾经自己也是牺牲品。再次面对这样的局面,态度依旧,不想趟这趟浑水,做好事情,心安理得。愿意一起做事情,就把事情做好,其他啥的别去沾惹,省的结果对谁都不好。这个道理,对想做事情的人,哪里都一样。  自己的经历没什么跌宕起伏,也没什么大风大浪,平平淡淡的事情也经历了一些,承认自己的悟性比较差,不够灵活,属于笨人的一类。自己也迷茫的,浑浑噩噩的也过过一段时间,现在也能明白一些,没有什么条件不能答应的,也没有什么结果不能接受的。  看过的朋友,认识也别硬套,不认识也别挑毛病,这个是自己乱侃而已,不对针对任何人,随意而说而已!

小步接着走

这两天把收藏了好久的文章,还有收藏夹中的链接做了整理。现在我的做法是文章的收藏一般都会放到麦库里面,我麦库的公开地址是http://note.sdo.com/u/dapeng&nbsp;现在公开地址的访问还有些问题,访问子栏目需要输入密码,可我没有设置密码,麦库的客服说只能到下一周解决了,等待解决吧!另外是对一些链接的管理办法是,建立收藏网站,使用新浪的SEA提供的typecho搭建了收藏的网站http://zptools.sinaapp.com&nbsp;收藏网站是模仿阅微草堂的想法建的,部分的链接也是来源那里的。使用新浪的SEA来搭建是为了服务器的稳定,毕竟我自己的用的服务器在国外,说不定哪天给和谐了,不放心啊!在做网站收藏整理的时候,发现国内优秀的JAVA网站没多少,网站的收藏还需要继续的更新整理,才能符合自己的需要。方向是java相关、企业服务SOA、数据库、linux、前端设计、项目管理、互联网等等吧!&nbsp;选择了一款比较简单的主题,对主题也做了修改,主要是增加css3的使用,使用了css3的圆角、还有阴影。在chrome、ie9、opera、firefox5测试都通过了,很可惜firefox3没有通过,当然ie6是不会通过了。还增加使用了一个jquery的插件scrolltotop,当页面向下滚动的时候,就会出现返回上面标记。修改好了,也就把博客主题也替换一样了,统一风格吧!现在瞧瞧两个站点吧!http://zptools.sinaapp.com&nbsp;http://dapeng.me&nbsp;

人人网的开源框架paoding-rose(2)

人人网的开源框架paoding-rose(2) 上次写过rose,说到文档不全,其实不是文档不全,而是我没有细细看,文档还是写的很详细的,而且源码注释很规范,加上源码注释和文档,rose框架还是很容易的掌握的。 在安全性设计上面打算采用spring security来实现的,把spring security集成到系统用了几天的时间,这样系统就是spring + spring security + rose的设计了。 其中的遇到的问题是spring security 需要配置自己的过滤器,而在rose的系统中只需要配置一个过滤器,配置两个过滤器就出抛出已经有过滤器的异常,我把spring security的过滤器去掉了,只配置了一个rose的过滤器,再按照配置spring security的方式配置好了。在配置过程中,就是一个不断尝试,试着配出来的。 配置好了,就是项目启动不再出现异常情况,运行也不报错了。可预期的结果并不是我要的结果。我过滤的方式是通过url来控制权限的,spring security对正常的url是可以进行控制的,对pathinfo格式的url就不能做控制。这个问题纠结了好久,我还询问过开发rose框架的作者,他给我的解释是rose本身就是一个独立的context,它的parent是root context,这样说来,rose就和spring security是属于两个context了,当然不能控制了。 根据日志记录,这样的解释说不过去,从日志记录中,spring security对url都是做过滤的,首先是rose对url进行过滤,接着是spring security进行过滤。在看rose源码的时候,有这样的一段注释。“如果一个请求在Rose中没有找到合适的类来为他服务,Rose将把该请求移交给web容器的其他组件来处理。” &nbsp;这样才能解释通道理,也可以和日志记录对应起来。rose先做了处理,无法处理的时候才交给其他容器做处理的。 我想尝试先让spring security先来处理,这样处理之后,spring security却不会请求交给rose来处理,这块尝试了好久,没有找到解决的办法,最终只跟踪到spring security中的一个异常对象,在rose处理了,就不会把异常抛出,这个也是spring security不能处理rose请求的原因的。结果是我解决不了,引入spring security就放弃了。 引入spring security我是想偷工的,没有偷成。反过来也想想,引入了新框架进来,就会增加系统的负担,我还是希望系统轻巧一点。 可安全性总是要做的,了解spring security的原理,同理写一个了。spring security是按照面向切面的思路,通过过滤器来实现的。rose的过滤器很好用,不仅可以设置过滤器,还可以设置局部和全局的过滤器,还可以设置过滤器的权重,满足什么时候,什么场景,采用什么过滤器。 我写的基本可以用起来,满足了我的基本要求了。现在也仅仅是满足需求,对一些漏洞还需要继续的修补。

愚人节快乐

愚人节到了,是个很特殊的日子,哈哈!今天用blueprint重写了页面,页面是个大杂烩,弄成了四不像,四不像总算有点样子吧!只写了主页、注册、和登录的页面,明天有时间,把核心的一个页面写了!哈哈!

我在项目中的笔记1【开篇】

我在项目中的笔记1【开篇】&nbsp;&nbsp; &nbsp; 工作也很久了,说大点,给别人还能吹吹,说自己还带过团队,管过项目,可实际肚子里面装了多少,自己最清楚,能骗了别人,骗不了自己,所以啊,就把自己在项目中的经历记下来,或许是经验,也有可能是教训,还有可能记录的是失败。很阿Q的说,是比不小的财富。&nbsp;&nbsp; &nbsp; 笔记的内容会很杂,围绕的主题是自己的项目经历,其中我会找些项目方面的资料,也会加进来,做为自己的学习笔记。&nbsp;&nbsp; &nbsp; 作为开篇,做个卷首语。