利用 git 自动部署环境

和 @Leniy 说到利用 git 自动部署的事情, @Leniy 问了句, 怎么配, 既然有人有兴趣, 我就扯几句.

git 无疑是一个很赞的版本管理系统, 简单易用不伤手. 而如果在 VPS 上部署一个 git, 每次提交后, 直接部署到环境中, 不用 ssh 登进去顶着 XXXms 的延迟穷倒腾. 说明一下, 我只是举个栗子, 实现了"自动部署"的要求, 看官可以做的远不止这些.

(more…)

数独问题的解决

前些日子,有人网上说解决了什么最难数独什么的,然后下面一片欢呼 -- 我看了下所谓题目,无非一个普通的9*9的小题目而已,机器完全可以轻松遍历。 感觉很不可思议 -- 在这种信息时代,计算机能轻松遍历的东西,就不算什么难题,让人闲暇时候玩玩就算了,拿来当作学术成就什么来炫耀,实在有些。。。坐什么观什么了。 (more…)

sqlite3 的转义

sqlite 关于 string 类型的数据需要转义。

通过查找规则,可以很容易通过switch拼装一个字符串来搞定。 大致规则是,单引号和双引号要变成两个,其他特殊字符为前面加上'/'。 (more…)

fix记录:注意返回值

sqlite3使用sqlite3_exec,原型如下:

int sqlite3_exec(
    sqlite3*,                                  /* An open database */
    const char *sql,                           /* SQL to be evaluated */
    int (*callback)(void*,int,char**,char**),  /* Callback function */
    void *,                                    /* 1st argument to callback */
    char **errmsg                              /* Error msg written here */
);

其中有个参数是callback类型的。查询到的数据放在callback中处理。 (more…)

隐藏 gedit 的 debug 信息

linux下编辑文件,常用的有vi/vim,emacs,还有gedit -- 当然,还有谁有其他各种喜好。 emacs,vi什么的自然是控制台下搞,干干净净。 但是到了gedit的时候,因为是X display ,所以控制台方面就各种肆无忌惮的放warning

因为是写代码么,所以常常是shell跑到某个位置,然后vi/emacs/gedit一个命令打开文件,开始编辑。 (more…)

元素为N字节的数组放到单位为1byte的数组中,以及重新拼装回去

为了网上传输数据,所以数据最好被拆为单位为1byte大小的数组串(unsigned char 类型恰好是这个大小),然后再进行传输,这样才能不会出现自己无法控制的情况(断网谁都控制不了了当然)。 此外,需要约定好字节序 -- 比如本日志使用的是大端(big endian),以及编码。这样拆解和重组才不会错乱。 (more…)

Linux下怎样禁掉一个用户

这篇小文是讲述在Linux下怎样禁用一个用户的。当你不想永久的移除一个用户,而只是想要让它被禁止,而无法使用此用户登录使用系统的时候,下文可能对你有些用处。这个用户仍然可以做一些事情--比如邮箱自动收到邮件,但他将不能用他的账户登录、接收邮件。

现代linux系统使用/etc/shadow来保存被加密的用户口令,最快的,禁用某个用户的办法是修改在/etc/shadow中保存的口令。一般情况下,一个活动的用户账户在/etc/shadow中可能是像下面这样的: (more…)