node.js - stream笔记1

这些日子跑去学了一下OC,但是还没有学成。离转行的时间还有很长,顺便回顾一下node的知识。

每种语言来来去去的人很多,但我就离不开node。我并不是使用它开发,只是使用js相对多一些,因此还是研究node比较好,stream在node的地位是很高的。闲时也来看看这个内容,在node的路上,我还是新手。

今天下载了nodeschool的课程看,其中有一个例子。(我修改了一点点)

var concat = require('concat-stream');
var http = require('http');
var qs = require('querystring');

    var server = http.createServer(function (req, res) {
        if (req.method === 'POST') {
            req.pipe(concat(function (body) {
                body = qs.parse(body.toString())
                res.end(Object.keys(body).join('\n')); 
            }));
        }
        else res.end();
    });
    server.listen(5000);

这题的意思是,让你把post数据反转,我就不做了,原理是一样的,只是需求不同。我们利用concat这个插件,当表单提交时,就把数据流导向concat,这个例子是取from表单post的数据。

为了测试,我使用request库。


var request = require(‘request’)

request.post(‘http://127.0.0.1:5000‘, {form:
{
“name”: “ryan”,
“age” : 23
}
}, function(err,res,body){
console.log(‘接收成功:’)
console.log(res[‘body’]) // name age
})


启动server,然后运行测试,可以看到我们把这个对象post过去了。concat-stream这个模块主要是做buffer的连接,我的理解是,当你以buffer的形式传输,这样就可以传输任何的类型了,在npmjs,它传输的是一个图片,由于我们接收完之后,就得到了这个图片的数据,我们就可以利用这个做上传,复制,道理都相通的。

包袱

人随着岁数慢慢增加,想的东西就会越来越多。当我发现,想着有关钱的事就烦的时候,我就跟他们说不要跟我说钱。因为不谈钱的话,真的感觉轻松了不少。我是一个理想主义者,我知道钱是重要,但是我也知道钱也不是必需的。结合二者,就是钱到用时方恨少。钱的作用就是不时地提醒你,你走的路还是为了要赚钱。我也不知道为什么人类要设计这种模式,或许只有过上原始人的生活才不需要跟钱有关系。再说深层次,也是社会的问题。我们老说我们国家很强大,但是为什么辛苦劳动之后,得到的这么少。大部分都是到了谁的手里?

最新想着要转型,做IOS开发。但是为了学好一点,还要先复习一下C语言,或者说学习吧,毕竟当年也是没学C语言。有了语言的基础学起来其实没有什么难度,主要是经验吧,就是你写一门语言写了几年,你学习一门新语言,你可以很快写得出来,但是你少了很多东西,这些东西叫坑或者叫经验。再说回工作,工作也是一个问题,整天想着升级。回到公司不想做事,这样两头不到岸不好受。我觉得是时候要转变一下想法,上班时候还是尽量做工作的事情,然后下班时间充实自己。

去年买了一个跑步机,当时很坚定要锻炼好身体。结果跑了一个月左右就没有坚持了,今晚回去就要重新开始了。没有好的身体怎么继续下去,会生活会工作才是好的样子。我们都好习惯把包袱全部丢一边或者全部带上,做这样的事情都会慢慢让我们感觉到疲惫,人累心疲惫。迟早都是要放弃的,那样就是要前功尽弃了。我做人喜欢随性,但是后来发现随性也要有度,而且可能做的不好就会倒入万劫不复的深渊。最后下场就是极端的,没有才能的人是没有办法游走到好的极端,结果是相反的。

总结前言:
1.公(工作)私(生活)分明
2.身体是革命的本钱,要注意身体。
3.成功不是一天的事,要坚持。

密码的简单保存策略 - KeePass

今年QQ好友已经有2个被盗,这里说的是直接影响到我的。目前被盗的大部分都是叫你付款的,一般智商没问题的都不会去付款。但是,从另一个角度来说,为什么你的QQ密码如此不堪一击。你有没有想过,是你的密码有问题。如果密码跟其他的帐号是相同,很大可能密码已经被公开了。通过这种撞库的方法,他们已经成功开启了很多人的各种帐号。

你可以在网上搜54社工库,这个网站可以查到你用过什么密码。

下面介绍一个比较简单的密码保护的方法:

在地球上有几个帮你管理密码的工具,我这里只选了几个说说。第一个是1password(1p),也是最方便的一个。功能强大,几乎没有什么不好的,它加密后的文件是保存在本地,所以不会上传你的密码。尽量不要用破解版,也就是说它其实是要钱买的。价格还有点小贵,mac和win两大平台一起买,要$70左右。如果你不喜欢花钱的,那么可以使用lasspass和keepass,前者因为是加密后上传网络,大部分人都不使用了,我也用过,很难用的一个工具。感觉跟1p比起来就是渣渣,剩下的你只能选keepass了。

下面我们来说说keepass,它有什么好?它是开源的,所以跨平台,移动端都是优点。但是有一个不好的是它没有像1password可以做到密码自动填充,其实我深有体会,太方便了,也许是一个漏洞。说是漏洞其实也是一种疏忽吧,其实用哪个软件都会出现。keepass相对于1p来说,只是少了浏览器填充的功能。因为我本来是要买下1p。钱总是不够花,所以还是用免费的吧。从1p切换过来,我竟然没有发现很难用。这也是写这篇文章的目的,然后就说这个软件我的用法吧。

新建一个数据库,跟1p一样也有一个主密码,就是用来打开你的数据库的,里面是各种密码。我推荐你使用密钥,密钥就是一把你自己知道的钥匙。少了它有密码也是打不开的。这就涉及到了密钥的保存了,方法有很多。你可以把它放在其他目录或文件夹,伪装成其他的名字,例如LICENSE,LICENSE是大部分软件都有的。还可以伪装成README,这个也是大部分软件有的。总之你可以把它藏好就对了,一个主密码+密钥。你的密码已经足够安全了,就算密码数据库被别人拿了也是没用的。

最后就说说密码的共享,密码不能共享给其他人。1p似乎有这个功能,但我这里说的共享只是共享给自己。如果你有mac、windows、手机等设备,你可以很方便的通过使用一个数据库就能得到所有密码。也就是说,只要同步这个数据库就好了,可以通过dropbox,或者其他网盘。但是你的网盘帐号一定不能是以前使用过的,原因前面已经说了。因为keepass是开源的,mac上可以使用Macpass,windows可以使用keepass2。移动端我没有试过,应该也是非常多实现的版本了。