阿里云服务器搭建个人svn服务

git都是公开仓库,私有仓库收费,然后就想搞一个私有的svn仓库,方便维护管理自己代码
整体下来还是比较简单的,

首先还是安装svn

sudo apt-get install subversion libapache2-mod-svn libapache2-svn libsvn-dev

创建svn项目目录

sudo svnadmin create /alidata/project

进入目录里面后会发现

  • conf 配置用户组和权限 帐号、密码
  • db svn的数据储存
  • hooks 钩子的处理

启动服务

svnserve -d -r /alidata/project 

停止服务

这个是收集上来的,其实我自己只 kill 进程

/sbin/start-stop-daemon --stop --exec /usr/bin/svnserve
or

lsof -i:port
kill -9 pid

本地co项目

svn co svn://ip:port 
输入用户名 密码
文章来源: 阿里云服务器搭建个人svn服务

你用哪种轮训方式

轮训,提到之后大家想必都不陌生,不是那么实时,每隔一段时间就拉取一下数据。
如果对实时性要求高可能就需要建立socket(websocket)连接

每隔10秒获取一下数据

第一种:

function fetchData() {
   axios.get(url).then(ctrlmethod);
   setTimeout(fetchData, 10*1000)
}
fetchData()

第二种:

function fetchData() {
    axios.get(url).then(function(data) {
        // 处理data
     setTimeout(fetchData, 10*1000)
    })
}

第三种:需要服务端支持

更多

gitignore配置规范整理

.gitignore 用于在git操作中自动过滤(不跟踪)文件或目录,包括无需版本管理的目录或文件以及项目开发过程中系统或编译环境自动生成对项目本身无存储意义的文件。

配置语法(pattern规则)

  • / 开头表示根目录,防止递归
  • / 结尾表示指定目录
  • ! 开头表示不过滤(跟踪)此项配置匹配到的文件或目录
  • # 开头表示注释,如需转义在前面加斜杠,/#
  • 配置规则可以使用标准的glob模式匹配(glob模式是指shell所使用的简化了的正则表达式)
  • * 通配符,多字符通配
  • **表示匹配任意中间目录如,a/**/z 表示可以匹配a/za/s/za/a/s/z
  • ? 通配符,单字符通配
  • [] 可以匹配任何一个在方括号中的字符, 如*.[ac] 表示匹配任何以 .a 或者 .c 结尾的文件,如果[]中有短划线 - 分割两个字符,则表示所有两个字符范围内的都可以匹配如 [0-9]

.gitignore 案例解释

更多

图片处理神器ImageMagick

拼图
 montage ./*.png -tile 50x20 -geometry 32x32  icons.png
  • tile x轴50个 y轴 20个
  • geometry 32x32 长宽 各32
合并图片
composite -gravity north src.jpg coverback.jpg des.jpg

其中src.jpg为前景图片

coverback.jpg为背景图片。

des.jpg为叠加后的结果

更多

mongodb学习和实践

mongod 启动进程命令

logpath = log/mongodb.log  日志路径
logappend = false  是否是为添加
dbpath = db/path 数据库路径
fork = true     后台运行
rest = false    是否是简单的api
port = 17090  端口号
auth = true  是否有用户密码验证 

用户角色操作:

db.createUser({user:"username",pwd:"userpwd",roles:[]})
user 用户名
pwd 用户密码
roles  数组类型 
role : readWrite | read
db : dbAdmin |      

更多

nodejs尝试msgpack5数据传输方式

官网称要比json更精简,传输更快,今天尝试下

  • server部分, 基于express 4.x, 安装 npm install msgpack5
    res.set("Content-Type", "application/msgpack");
    res.header("Access-Control-Allow-Origin", "*");   
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
     var m = msg.encode({
        a: 1,
        c: 2,
        d: 5
     });
    var lth = req.get("Content-Length");
    console.log(lth);
    req.on("data",function(e){
        console.log(msg.decode(e));
    })
    res.send(m);

更多