在2017年1月番《小林家的龙女仆》里的康娜真的萌得不行,特别是她那小圆脸小圆腿搭配着哥特萝莉绝对领域套装让萝莉控口水直流啊(¯﹃¯),好想有个这样的女儿啊(๑•̀ㅂ•́)و✧。
正常视觉≡ω≡
(゚Д゚≡゚Д゚)
分享我的发现、想法与心得
最近4月番剧想看的都不在b站,然而其他平台均要收费而已也不全,唯独逼着看盗版了(老实说能支持正版就支持,我可是为了看幼女战记买了1个月的优酷土豆的:))。
看盗版麻烦也多,需要翻墙又需要下载。。。为了节省这些麻烦,准备写个脚本去扒种子。
答案是可以下载的,但是下不了bt
在网上逛了一圈能看到推荐使用thunderdl
比较多,然后尝试着找到thunderdl
源头(需翻墙)。
使用也很简单一步到位。
下载运行文件并下载迅雷mini或迅雷VIP尊享版(当然系统需要.Net Framework 4.5支持才开运行)
比如用的是迅雷mini,便使用ThunderMini
下的ThunderDL.exe
。
1 | # 进入有ThunderDL.exe的目录 |
看到这个没有url
,博主有点儿绝望了。后续也没尝试比较种子用迅雷也下不下来…
去逛了一圈的确有,马上安装bitcomet,并把他弄到系统变量上。
1 |
|
哇,这个实在是太方便了
亲测一下,发现虽然没提示,但是bitcomet上的确添加了任务并在下载了,棒(๑•̀ㅂ•́)و✧
1 | BitComet F:\download\1986-adfbs.torrent -so F:\download |
最近研究node后端相关内容,发现每次编码后都需手动重启有点不太科学,再加上看到有文章说可以使用chrome的debug工具进行调试就突然有了兴趣,今天就尝试了一番。
node-inspector就是可以帮助你的使用调试工具调试项目的工具,具体是使用很简单:
1 | # 安装 |
运行后自动打开浏览器并默认访问地址http://127.0.0.1:8080/?port=5858
,这是可以开始调试你的程序了
虽然它并没有热更新功能,但是可把调试工具编辑的内容同步记录到文件!
还有一点,它可以只运行调试平台(即:http://127.0.0.1:8080/?port=5858
),并同时调试多个项目。
具体操作如下:1
2
3
4
5# 运行调试台
node-inspector -p 5859
# 运行调试程序
node --debug app.js
虽然能调试了,却并不能满足文章开头的需求:热更新。
这时我发现了node-supervisor
node-supervisor 是一个提供热更新的好插件,当你代码更新后会自动重启你的程序。
如何使用?1
2
3
4
5
6
7
8# 安装
npm install supervisor -g
# 使用
supervisor app.js
# 监控目录
supervisor -w ./src -- app.js
简单!
1 | # 运行调试台 |
如果你需要自定义运行方式可以这样:1
supervisor --debug -w -x babel-node -- app.js
完美!享受你调试之旅!
如题,es6 新增的fetch
真的简单易用,感觉现在这一个支持完全可行。
虽然兼容性问题还是存在,但是打上polyfill
后就基本解决了。
1 | Browser Support |
这里说明一下,fetch
必须配合promise
一起使用,这会得到更佳效果。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# get
fetch('/api/user/1', {method: 'GET'}).then(res => res.json).then(console.log).catch(console.error);
# console.log ######
# {id: 1, username: 'Packy', email: 'packy@uxfeel.com'}
# post
var formData = new FormData();
formData.append('username', 'cathy');
formData.append('email', 'cathy@uxfeel.com');
fetch('/api/user', {method: 'POST', body: formData}).then(res => res.json).then(console.log).catch(console.error);
# console.log ######
# {code: '0', msg: '', data:{}}
跨域问题并不难只需加上 mode:'cors'
参数,如:1
2
3
4
5
6
7
8
9
10
11
12
13
14# cross post
var formData = new FormData();
formData.append('username', 'cathy');
formData.append('email', 'cathy@uxfeel.com');
fetch(
'http://192.168.1.120/api/user',
{
method: 'POST',
body: formData,
// 设为跨域请求
mode:'cors'
}
).then(res => res.json).then(console.log).catch(console.error);
想详细了解,请记住CORS
关键词并看这里
想使用起来更舒心,你还得引用以下这两个包解决兼容:
具体使用例子:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54# api.js
require('es6-promise').polyfill();
require('fetch');
// 此判断在某些浏览器并不能正常检查,导致URLSearchParams不可用,如果你知道具体问题联系以下博主
//if ('searchParams' in HTMLAnchorElement.prototype) {
var URLSearchParams = require('url-search-params');
//}
function handle(response){
return new Promise(function(resolve, reject){
if(response.status === 200){
resolve(response.json())
}else{
var message = defaults.serverError[response.status];
var e = new Error(message || '未知请求错误!');
e.response = response;
reject(e);
}
});
}
module.exports = {
// 登录
login: function(data){
var url = '/user/login';
var formData = new FormData();
Object.keys(data).map(function(attr){
formData.append(attr, data[attr]);
})
return fetch(url, {
method: 'POST',
body: formData,
}).then(handle).catch(handle);
},
// 发送手机验证短信
sendCode: function(data){
var url = '/user/sendCode';
var params = new URLSearchParams('');
Object.keys(data).map(function(attr){
params.append(attr, data[attr]);
})
url+='?'+params.toString();
return fetch(url, {
method: 'GET',
}).then(handle).catch(handle)
}
}
微信小程序使用起来感觉像写h5一样,对于新手估计会有比较多疑惑,如果撇去这些想法应该是很快就能上手的一套开发方案。
但是它自身的限制也比较大,如不提供window对象会导致一些功能实现起来比较麻烦。我这次开发的小程序就遇到了,虽然比较快找到解决办法(可能都是比较标准化的东西),希望之后不会有其他大坑。
需要其实比较简单,就是两页文章列表及文章详情页,刚上手却遇到下面的坑:
刚开始一脸懵逼…后来赶紧去github看看各大牛例子及一些工具就解决了。
由于博主最近又闲下来了,之前觉得webpack的官方文档比较难啃一直放到现在。细心阅读多个webpack配置案例后觉得自己写个手脚架,当然这个案例是基于vue的,但是并不影响你使用其他库(jquery这些)。文章会逐步分析每个处理的用意(当然是博主自己的理解),不足之处欢迎指出沟通交流。
一个通用简单的手脚架,只需修改简单配置就可使用,同时满足多页面需求。
https://github.com/lpreterite/multiple-page-vue-webpack-example
1 | # 安装依赖 |
1 | build/ #构建配置目录 |
去官网下载一个就好,注册输入下面的就可以使用了
注册码:P427L-9Y552-5433E-8DSR3-58Z68
适用于ubuntu 16.04
进程1
2#表示查看所有进程里CMD是java的进程信息, -aux 显示所有状态, grep 是搜索
ps -aux | grep java
解决运行shell存在\r
问题,win下编辑的文档会包含\r
实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)
安装完即可,现在你已经可以进行文本格式的转换了。1
sudo apt-get install tofrodos
1 | sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 |
添加服务
(Ubuntu 16.04-only) Create systemd service file
Create a new file at /lib/systemd/system/mongod.service
with the following contents:1
2
3
4
5
6
7
8
9
10
11
12[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
前一段时间忙完公司的项目开始闲下来,打算自己写个todolist什么的小应用,然后就跑去调研了一下nodejs环境下有那些比较好的框架写后端服务,本打算用express
+sequelize
写restful风格API的,可惜没找到更方便的工具快速制作,然后就遇到meteor。
##meteor
meteor比起express还是使用restful规范的服务端来得更先进,用起来更舒服。
简单使用,只需要在服务端定义发布数据,在客户订阅的数据并能获得,当然这是归功于基于DDP
协议的socket服务。
总结一下特点:
##快速上手教程
教程坚持使用vue和webpack,所以这里有个问题,怎么才能跟meteor很好地结合一起呢?
答案:使用在meteor安装webpack支持!尤大的证言
先学基础,不喜欢的跳过也可以。
meteor基础教程传送门
###快速开始
请git clone以下
运行只需1
2$ npm i
$ meteor
下文要讲的是,那些东西事必须的,比如在package.json这段:1
2
3
4# 设置的客户端与服务端入口文件
"main": "src/server.js",
"browser": "src/client.js",
webpack.config.js需要指定root
和热更新设置devServer
1
2
3
4
5
6"root": "./src",
"devServer":{
"host": "localhost",
"hot": true,
"inline": true,
},
定义你的数据对象1
2
3
4# collections.js
export const Tasks = new Mongo.Collection('tasks')
export const Tags = new Mongo.Collection('tags')
发布1
2
3
4
5
6
7
8# publications.js
import {Meteor} from 'meteor/meteor';
import {Tasks} from './collections';
Meteor.publish('tasks', function() {
return Tasks.find();
});