ssh相关 ssh登陆分两种,一种是密码登陆,一种是公钥登陆。密码登陆:当本地发送 ssh someuser@someip命令后,远端机器将把尝试把自己的私钥的指纹发回,用户确认该指纹和远端机官网贴出的内容一致之后,选择同意,远端机器则将自己的公钥发送给本地。此时,该公钥将被保存在本地的.ssh/known_hosts文件中。有了该公钥之后,用户输入自己的登陆密码,ssh会用远端机器的公钥
Javascript那些烦人的细节 for in循环遍历所有该对象enumerable的properties,包括原型链上继承过来的,但不包括symbols。Object.keys返回给对象上所有的自己的额numerable properties(即不返回原型链上的)Object.getOwnPropertyNames返回所有该对象上的属性名,包括不可枚举的(不返回原型链上的)Object.get
Lan内部是如何完成通信的 以太网是数据链路层的一种通用协议,以太网包的标头里包含发送方和接受方的Mac地址。数据包里存放IP(网络层)的东西。网络层的标头里存放发送方和接受方的ip地址,数据长度,数据包里存放tcp/udp(传输层)的东西UDP的表头里存放发送方和接受方的端口,TCP的话除此之外还会放置保证传输的各种属性。传输层的数据包里存放http,smtp,ftp等应用层的消息。当一台机器连接上一个
NodeJs ReadStream机制分析 读了一下午源代码,作者写的代码太难懂了,洋洋洒洒,勉强看懂。ReadStream有两个模式,即flow模式和readable模式,一旦设定成一种模式,最好不要切换成另一种。1.当一个stream被调用了on("data",..)后,即进入flow模式。2.stream.flow被设置成true,并且调用resume方法,下图是resume方法的截图function resume(s
将回调函数转换成promise(粗糙版) var q = require("q");function Q(outerFunc) { return function () { // 避免上下文丢失 var context = this; var args = []; for (var i in arguments) { args.push(a
自己动手写co function co(func) { var it = func(); var first = it.next(); var value = first.value; var done = first.done; move(it, value, done);}function move(it, value, done) { if (!done
Karma for angular module.exports = function (config) { 'use strict'; config.set({ // enable / disable watching file and executing tests whenever any file changes autoWatch: true, // ba
Docker 在Ubuntu下安装docker curl -sSL https://get.docker.com | sudo sh默认情况下Ubuntu需要使用docker的话,要加上sudo可以创建docker组sudo groupadd dockersudo gpasswd -a #user docker sudo reboot #重启docker run ubuntu echo
Spring 1.除了property之外,还可以通过contructor-arg给bean设置属性 <constructor-arg value="Loulan" index="0" type="java.lang.String" >因为Java支持多重载,遇到参数有歧义的时候可以使用index或者type属性加以限制2. 属性若为list
ActiveRecord 设已经有一个model User,他继承自ActiveRecorduser = User.create(attributes) 创建一个用户user.destroy() 删除User.find(id)User.find_by(conditions)User.all() 返回全部User.firstUser.last//updateuser.name =
Ruby元编程 1. [].methods == Array.instance_methods //true[].methods.grep /re/obj.instance_variables //访问一个对象的所有域Array.instance_methods //访问一个类的所有实例方法(不是在对象而是在类上调用的)Array.instance_methods(false)//不显示父类以
js 1.js正则表达式多个匹配项,通过这种方式最方便。var text = "hello1-hello2-hello3";var regG = /(he(ll)o\d)\-?/g;// skip hello1regG.lastIndex = 5;var globalResult = null;while ((globalResult = regG.exec(text))
markdown&grunt grunt&markdownMarkdown1._this_将this变成斜体2.#hello->hello3.[click me](www.a.com) -> click me引用型链接[a][fun place][fun place]:www.baidu.com4.**aaa** -> aaa5.在一行后面加入
angular 1.自己实现ng-modelreturn { restrict: 'A', link: function ($scope, element, attr) { var modelName = attr["model"]; $(element).val($scope.$eval(modelName)); //从v
ruby小记 1.print打印语句时不带换行符,puts带换行符,gets()用于获取用户输入2.双引号字符串可以插入变量或者表达式,“hello #{name} #{10 * (1 + 2)}”3.注释是#,多行注释以=begin开始,=end结尾4.定义一个方法def add(param1, param2) return param1 + param2end
在Heroku中配置Sendgrid邮箱 1.在项目底下输入heroku addons:create sendgrid:starter(事先需要在Heroku处设置信用卡信息)在config/environemtns/production.rb下加入以下代码 config.action_mailer.raise_delivery_errors = true config.action_mailer.
rails小记1 1.print打印语句时不带换行符,puts带换行符,gets()用于获取用户输入2.双引号字符串可以插入变量或者表达式,“hello #{name} #{10 * (1 + 2)}”3.注释是#4.定义一个方法def add(param1, param2) return param1 + param2end5.字符串转换成数字string.to_i,stri
lodash摘要 1.forEach=each ,forEachRight _.forEach(collection, function(name, index) { if (name === 'Kelly') { console.log('Kelly Index: ' + index); return false;//退出循环
async注意点 1.如果在第二个function中不使用异步的话,end会先被打印。原因如下 parallel(any function in async) is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or pe
对于async的错误理解 /** * Created by qiucheng on 15/8/27. */var async = require("async");var arr = [1, 2, 3];var transformed = arr.map(function (ele) { return ele * 3;});console.log(transformed);async.ma