March 12, 2016
node出现“dyld: bad external relocation length”的解决办法
"mac下有时候在执行 npm的过程中,我们强制中止了操作或者一些命令出现问题会提示“dyld: bad external relocation length”这个错误,这个时候只要将未下载完的文件删除即可,我这里使用 n 4.4.3下载的时候,网络出现异常,提示这个错误,只要删除 /usr/local/n/versions/node/4.4.3 这个目录即可。\n如果还是不行的话,可以试着执行一下\nbrew doctor 命令,根据提示操作就可以了。\n我遇到的情况是使用node版本控制n安装新版本号的时候,好像安装包下载的不完整,但提示安装成功了,在最后提示这个错误。试了好多方法卸载重装也不行,最后根据 brew doctor 的提示,执行了\nbrew link --overwrite node 彻底解决了。"
March 12, 2016
nodejs中package.json文件说明
"推荐: http://jingpin.jikexueyuan.com/article/34254.html\npackage.json 中包含各种所需模块以及项目的配置信息(名称、版本、许可证等)meta 信息。\npackage.json文件可以通过npm init 来创建\n包含可配置项 name 名称 应用描述 description 版本号 version 应用的配置项 config 作者 author 资源仓库地址 respository 授权方式 licenses 目录 directories 应用入口文件 main 命令行文件 bin 项目应用运行依赖模块 dependencies 项目应用开发环境依赖 devDependencies 运行引擎 engines 脚本 script 简单模式\n==========================\n{ name: \u0026#34;myApp\u0026#34;, version :\u0026#34;0.0.1\u0026#34; } 完整模式\n===========================\n{ \u0026#34;name\u0026#34;: \u0026#34;myApp\u0026#34;, …"
March 12, 2016
windows平台下的PHP的线程安全版本与非线程安全版本的区别
"Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分(Linux/Unit平台没有这个概念的东西的),这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。\nPHP有2中运行方式:ISAPI和FastCGI。\nISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;\n而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。\n对于apache服务器来说一般选择isapi方式,而对于nginx服务器则选择FastCGI方式。\n1.Non Thread Safe版本php适用在使用CGI以及fastCGI的web服务器上,如nginx,lighttpd以及IIS的CGI …"
March 12, 2016
PHP底层工作原理
"从图上可以看出,php从下到上是一个4层体系\n①Zend引擎\nZend整体用纯c实现,是php的内核部分,它将php代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的处理方法、 实现了基本的数据结构(如hashtable、oo)、内存分配及管理、提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕zend 实现。\n②Extensions\n围绕着zend引擎,extensions通过组件式的方式提供各种基础服务,我们常见的各种内置函数(如array系列)、标准库等都是通过 extension来实现,用户也可以根据需要实现自己的extension以达到功能扩展、性能优化等目的(如贴吧正在使用的php中间层、富文本解析 就是extension的典型应用)。\n③Sapi\nSapi全称是Server Application Programming Interface,也就是服务端应用编程接口,sapi通过一系列钩子函数,使得php可以和外围交互数据,这是php非常优雅和成功的一个设计,通过 sapi成功的将php本身和上层应用解耦隔离,php可以不再 …"
March 10, 2016
NPM 命令介绍(转)
"NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:\n允许用户从NPM服务器下载别人编写的第三方包到本地使用。 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 **“npm -v” **来测试是否成功安装。命令如下,出现版本提示表示安装成功:\n$ npm -v 2.3. 如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:\n$ sudo npm install npm -g /usr/local/bin/npm -\u0026gt; /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@2.14.2 /usr/local/lib/node_modules/npm 如果是 Window 系统使用以下命令即可:\nnpm install npm -g 使用 npm 命令安装模块 npm …"
March 10, 2016
nodejs学习资料
"修改npm包管理器的registry( registry.npmjs.org)为淘宝镜像( npm.taobao.org),参考nam config -h 相关命令\nnpm config set registry “https://registry.npm.taobao.org“ http://npm.taobao.org\n七天学会NodeJS http://nqdeng.github.io/7-days-nodejs/\nNode.js Style Guide https://github.com/dead-horse/node-style-guide\n深入Node.js的模块机制 http://www.infoq.com/cn/articles/nodejs-module-mechanism/\n学习ES6生成器(Generator) http://www.toobug.net/article/learning_es6_generator.html\nrequire() 源码解读 http://www.ruanyifeng.com/blog/2015/05/require.html …"
March 10, 2016
nodejs中exports与module.exports的区别
"对于两者的理解只要记住一句话:“exports就是module.exports****的引用”即可。\n推荐易理解的文档: http://cnodejs.org/topic/5231a630101e574521e45ef8\n原文:\n你肯定非常熟悉nodejs模块中的exports对象,你可以用它创建你的模块。例如:(假设这是rocker.js文件)\nexports.name = function() { console.log(\u0026#39;My name is Lemmy Kilmister\u0026#39;); }; 在另一个文件中你这样引用\nvar rocker = require(\u0026#39;./rocker.js\u0026#39;); rocker.name(); // \u0026#39;My name is Lemmy Kilmister\u0026#39; 那到底Module.exports是什么呢?它是否合法呢?\n其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。\n所有的exports收集到的属性和方 …"
March 7, 2016
Node.js框架比较: Express vs. Koa vs. Hapi
"http://www.nodejs.net/a/20141223/191626.html http://www.zhihu.com/question/25388201 https://cnodejs.org/topic/56936889c2289f51658f0926"
February 23, 2016
jQuery.extend和jQuery.fn.extend的区别-转
"jQuery.extend和jQuery.fn.extend的区别,其实从这两个办法本身也就可以看出来。很多地方说的也不详细。这里详细说说之间的区别.\n我们先把jQuery看成了一个类,这样好理解一些。 jQuery.extend(),是扩展的jQuery这个类。\n假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑能跳,现在我们用jQuery.extend这个方法给这个类拓展一个能唱歌的技能。这样的话,不论是男人,女人,xx人…..等能继承这个技能(方法)了。\n可以如下图这样写着:\n然后:$.liu();这样就能打印出来”liu“这个字符串 代码在下面:\n3. 这说明啥啊,这说明.liu()变成了jQuery这个类本身的方法(object)嘛。他现在能”唱歌“了。但是吧,这个能力啊,只有代表全人类的 jQuery 这个类本身,才能用啊。你个人想用,你张三李四王五麻六,你个小草民能代表全人类嘛?\n所以啊,这个扩展也就是所谓的静态方法。只跟这个 类 本身有关。跟你具体的实例化对象是没关系滴。\n我们再看看jQuery.fn.extend()这个方法。\n从字面理解嘛,这个拓展的 …"
February 23, 2016
Git-svn命令对比表,svn用户必看
"提供给从svn转git的开发人员参考\nGit与Subversion的命令对比表\n操作 GIT SUBVERSION 复制数据仓库 git clone svn checkout 提交 git commit svn commit 查看提交的详细记录 git show svn cat 确认状态 git status svn status 确认差异 git diff svn diff 确认记录 git log svn log 添加 git add svn add 移动 git mv svn mv 删除 git rm svn rm 取消修改 git checkout / git reset svn revert (※1) 创建分支 git branch svn copy (※2) 切换分支 git checkout svn switch 合并 git merge svn merge 创建标签 git tag svn copy (※2) 从服务端更新本地 git pull / git fetch svn update 推送到远端 git push svn commit (※3) 忽略档案目录 ."