我的vim黑科技

用以记录我的vim技巧。 回到屏幕中间NORMAL模式下按zz,可以使当前光标所在行处于屏幕中间。 ctrl-o, zz在INSERT模式下,按ctrl-o将会回到NORMAL模式,此时将可以执行一次NORMAL命令,执行完毕后回到INSERT模式,可与zz配合使用 将外部命令执行结果放到当前文本中来试试1:.!ls1:.!dir 执行python代码在任何格式的文本中,想插入一些数据,只需写一小

个人开发者如何巧用消息队列

提起消息队列,我们很容易就想到redis,rabbitmq等在企业中很常用的消息队列。但是在“个人开发者”这个属性前提下,我们可能根本没有服务器去部署redis或者rabbitmq,即使有个vps/云服务器,也无法保证其稳定性——可能哪天嫌维护麻烦就直接停掉了。当我们开发一些有意思的小工具,并且需要用到消息队列时,往往会操碎了蛋。 今天我就介绍两种方案,寻找身边的资源做消息队列。 云盘前段时间我在

Restful api url设计建议

基本CRUDGET /users - 获取user列表GET /users/12 - 获取id为12的userGET /users/12/address 获取id为12的user的address字段GET /users/12?fields=id,name,address 获取id未12的user,并只返回id,name,address字段POST /users - 创建userPUT /users

利用Unity进行AOP编程: 概念介绍(一)

前言在读这篇文章之前,建议大家要对Unity容器进行依赖注入有一定了解与实践,并且了解一些常用的设计模式。这里我们主要介绍如何利用Unity进行AOP编程。面向 Aspect 的编程(AOP)是一种新的编程技术,它允许程序员对 横切关系(crosscutting concerns)(跨越典型职责界限的行为,例如日志记录)进行模块化。 横切关注点(Crosscutting Concerns)传统的程

利用反射映射数据库对象(二)

在上一篇文章里,我们里用反射,将数据库的查询结果集映射到对象中,以减少代码。现在我们就利用相同的原理来完成更新记录的操作。 更新记录时,我们需要知道表名,主键名,主键值,以及需要更新的字段信息。最初阶段,这些信息我们只要通过参数传递到方法中。1234public int Update(string tableName, string primaryKeyName, object entity)&#

在Docker中部署nodejs应用

介绍 & 安装关于Docker的介绍与安装,这里就不再细写,请利用搜索引擎,或者参考What is docker, 安装手册。为了方便,我直接在DigitalOcrean部署了一个docker环境。 获取应用代码准备一个应用,这里我用了一个简单的express应用,并侦听4000端口。https://github.com/NeilQ/cTemplate。将代码获取到本地目录,并进入。12g

web api 对[serialiable]特性的对象序列化问题

web api 2 中, 假如返回对象加了[serializable]特性,返回的json、xml数据都是包含对象的私有变量,而非公有属性,如:12345678910111213141516171819{ "Total": 1, "Data": [ { "_ticketnumber": "

gitlab 7.13 502 issue

单核服务器在gitlab重启之后常常会出现502错误,是因为”unicorn”启动比较慢,造成延迟引起的。我们可以手动执行以下命令解决:12sudo gitlab-ctl hup unicornsudo gitlab-ctl restart sidekiq

CentOS上安装配置MySql

安装并开启执行命令:12sudo yum install mysql-serversudo /sbin/service mysqld start配置安全信息:1sudo /usr/bin/mysql_secure_installation 设置iptables以启用远程登陆执行命令:12345iptables -A INPUT -p tcp --dport 3306 -m state --stat

web api 2 - 自定义help page的返回类型

当我们用HttpMessageResponse或者IHttpActionResult作为返回api的返回类型时,帮助页面的返回类型相应得也变成了HttpMessageResponse或者IHttpActionResult,而这不是我们所期望的Product、User等实际的返回实体。幸运的是,这是可自定义的, 简单得我都不好意思讲。 方法一(推荐)为方法添加一个属性[ResponseType(ty