Vitrum's Blog

Vitrum@Shanghai China

用上了彩色墨水屏电子书

用上了新设备,希望可以多多使用。


BOOX nova3color上用微信阅读,感觉不错。网易云音乐和QQ音乐都能用,电子书听歌有点怪怪的感觉,而且喇叭的位置是在屏幕背面,比较奇葩,壳子装上就压着了,不知道为啥这么设计。


看彩色漫画感觉只能说还行,不过我平时也不看漫画。用来看书还行,会有些彩色的底纹,不过很淡,可以忽略。能看彩色的PPT确实很舒服。

webpack-dev-server 的一些报错调整

webpack-dev-server –version
YError: Too many arguments provided. Expected max 2 but received 3.

at argsert (…/node_modules/webpack-dev-server/node_modules/yargs/lib/argsert.js:31:13)

升级node,升级webpack,升级webpack-dev-server

删除项目内node_modules目录重装npm install.

有些和dns.js相关的报错可能是本地没有配置localhost解析。在host 文件中添加

127.0.0.1 localhost

用GO写爬虫脚本抓去拉勾上的职位信息

偶然看到一个用GO写的爬虫项目:Pholcus(幽灵蛛),支持并发,支持脚本配置,可以使用GO和JAVASCRIPT写脚本。

稍微研究了一下。

首先,安装Pholcus的爬虫:

“`
go get -u -v github.com/henrylee2cn/pholcus
“`

下载试例脚本:
“`
go get -u -v github.com/vitrum/pholcus-lib-lagou
“`

使用demo目录的demo.go

“`
cd demo
go run demo.go
“`

参考文章:
https://mp.weixin.qq.com/s?__biz=MzI3MjU4Njk3Ng==&mid=100000223&idx=1&sn=9e72f16d5879efb8963118fce0ff4c69&chksm=6b3100505c468946a2812ef3f82959c1c9fd037c4c51451c022d5b1c4da9809fb5b77885e842&mpshare=1&scene=23&srcid=1220xbaPVRVPIpq40af5lQDv#rd

参考资料:https://github.com/henrylee2cn/pholcus

Switch in JavaScript

偶然看到一篇讲GO语言中Select 和Switch的区别,觉得挺有趣,GO里Switch的用法也挺自由,一直以来以为javascript中Switch是用字符和数字来判断条件的,限制很多。

后经提醒,仔细看了一下规范 发现原来在javascript中也一样可以玩的飞起。

发现有下面的用法之前没有注意过:

1,判断变量为布尔值

var a = 100;
var b = NaN;
switch (true) {
  case isNaN(a) || isNaN(b):
    console.log('NaNNaN');
    break;
  case a === b:
    console.log(0);
    break;
  case a < b:
    console.log(-1);
    break;
  default:
    console.log(1);
}

这样在case中就可以写条件了。

2,多个条件符合的判断

如果多个条件,都走相同的逻辑,以前用笨办法复制代码,显然是可以优化的,由于Switch是用break作为一个逻辑块的结束,那么想实现类似:

case "afshin", "saeed", "larry": 

的方案,可以这么操作

switch (varName)
{
   case "afshin":
   case "saeed":
   case "larry": 
       alert('Hey');
       break;

   default: 
       alert('Default case');
}

文档中更有花哨到不行的实例

var foo = 1;
var output = 'Output: ';
switch (foo) {
  case 10:
    output += 'So ';
  case 1:
    output += 'What ';
    output += 'Is ';
  case 2:
    output += 'Your ';
  case 3:
    output += 'Name';
  case 4:
    output += '?';
    console.log(output);
    break;
  case 5:
    output += '!';
    console.log(output);
    break;
  default:
    console.log('Please pick a number from 0 to 6!');
}

Output from this example:

Value Log text
foo is NaN or not 1, 2, 3, 4, 5 or 10 Please pick a number from 0 to 6!
10 Output: So What Is Your Name?
1 Output: What Is Your Name?
2 Output: Your Name?
3 Output: Name?
4 Output: ?
5 Output: !

6到飞起啊~

 

Add a new thing in life at 30th days.

Try some 3D webGL things~~~

在EC2 中搭建node.js 环境

1,为什么用EC2搭建node.js环境。

首先,本地虚拟机装centOs是很好的选择,但是需要在家里和公司同时搭好相同的环境比较麻烦,而且也不方便小团队一起折腾。
亚马逊的免费虚拟机只要不跑太复杂的运算大概不会有额外的费用,而且亚马逊么有被墙,国内的托管目前cnode的邀请号求不到啊,还是自己动手丰衣足食吧。

2,如何申请免费一年的EC2

在http://aws.amazon.com/上注册。
网上有很多教程,请自行GOOGLE。
3,EC2虚拟机简单的管理和设置
新建KEY,保存。
For MAC & Linux
很简单,只要一句话
ssh -i user.pem ec2-user@ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com
以上user.pem可以是你的KEY的路径。
For PC
putty 链接ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com
注意需要在connection->SSH->Auth里选上你的KEY,之前需要转pem到ppk。
怎么看DNS名:在管理界面里,先点击你要查看的虚拟机,点右键,再弹出的菜单上点“connect”就可以看到如下图:
其中ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com是你的DNS名
一般不太需要调整什么,可能要改的就是端口8080要开启。
4,搭建node前的准备
默认的liunx中不会吧所有工具都装好,一些基本的工具,需要我们自己装。
以下:
a. make
b.gcc++
c.curl
d.git
一句话安装:
sudo yum install gcc-c++ openssl-devel make curl git

5,安装node

wget http://nodejs.org/dist/node-v0.4.12.tar.gz
tar -xvf node-v0.4.12.tar.gz
cd node-v0.4.12
./configure
make
由于是在云里跑的,所以make可能会花上30多分钟, 我出去吃了个中饭,回办公室发现好了的。所以,不用在屏幕前傻等,出去走走,预防一下颈椎病。
make install
其他调整,由于EC2中path的问题,node装完了不一定能直接跑。所以有时候需要做些映射。
sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
6,测试第一个静态文件服务
先在/home/ec2-user/上建个nodeweb目录,里面放静态页面,然后可以测试了~~
var libpath = require('path'),
    http = require("http"),
    fs = require('fs'),
    url = require("url"),
    mime = require('mime');
var path = "/home/ec2-user/nodeweb";
var port = 8080;
http.createServer(function (request, response) {
    var uri = url.parse(request.url).pathname;
    var filename = libpath.join(path, uri);
    libpath.exists(filename, function (exists) {
        if (!exists) {
            response.writeHead(404, {
                "Content-Type": "text/plain"
            });
            response.write("404 Not Found\n");
            response.end();
            return;
        }
        if (fs.statSync(filename).isDirectory()) {
            filename += '/index.html';
        }
        fs.readFile(filename, "binary", function (err, file) {
            if (err) {
                response.writeHead(500, {
                    "Content-Type": "text/plain"
                });
                response.write(err + "\n");
                response.end();
                return;
            }
            var type = mime.lookup(filename);
            response.writeHead(200, {
                "Content-Type": type
            });
            response.write(file, "binary");
            response.end();
        });
    });
}).listen(port);

7,推荐阅读:

8,其他~

求推荐操作简单的配合node用数据库。

我的微博:http://weibo.com/vitrum

转载:外国电商网站

来源:http://www.shui-mo.com/daohang/

国外部分

伊伊(项炜伊)还不知道,她的父亲项余岸@闲坐不谈语文、母亲施李虹@一一成长回忆录 均已遇难。

此幻灯片需要JavaScript支持。

女孩的眼睛里还透露着惊慌,发生了什么?她还不知道,她的父母已经遇难了。本来幸福的一家人,欢乐的去旅行,就在回家的路上,悲剧就这么发生了。

我只想说,这不是天灾,这一定是人祸。

作为一个几乎和这个伊伊同岁的小女孩的爸爸,我绝对不能答应这事就调查调查就算了,绝对不能接受任何粉饰太平,因为今天发生在她身上的惨剧,也有可能发生在我女儿身上,发生在所有人身上。

开源中最好的Web开发的资源-转贴

http://www.css88.com/archives/3697