Ghost搭建博客个人折腾总结

  之前用ghost搭建好博客后,发现有些主题有问题,今天把博客升级到0.5.8,终于折腾完毕,写写总结吧。 简单教程:http://www.chinaz.com/design/2013/1113/326471_2.shtml 主题:http://docs.ghost.org/zh/themes/ markdown语言:http://wowubuntu.com/markdown 更详细的安装,以及设置nginx:http://www.vpsee.com/2014/03/install-ghost-with-nginx-on-ubuntu/ 升级版本:http://support.ghost.org/how-to-upgrade/ 设置about页面和contact页面方式:自己写两个文章,然后把文章链接改为about和contact,这样就可以链接到这两个文章了 流量…

Read more

About me

工作经验 2016.7-2018.3 百度系统部网络平台团队 后台开发工程师 业务方向:SDN研发 2018.3-Now 阿里云飞天八部数据库团队 后台开发工程师 业务方向:SaaS平台开发 欢迎投递简历 阿里云飞天八部数据库团队招人,包括数据库内核研发和平台研发,欢迎投递简历或者咨询:[email protected]

Read more

linux下进程调度

  linux 2.6之后内核的进程调度算法是CFS:完全公平调度算法。 1.策略 1.1 I/O消耗性和处理器消耗型的进程   调度策略通常要在两个矛盾的目标中间寻找平衡:进程响应迅速和最大系统利用率了。 1.2 进程优先级   linux采用了两种不同的优先级范围。第一种是用nice值,范围从-20到+19,默认值为0;越大的nice值意味着更低的优先级。相比高nice值的进程,低nice值的进程可以获得更多的处理器时间。nice值也代表时间片的比例。可以通过ps -ef查看系统中的进程列表,结果中标记NI的一列就是进程对应的nice值。   第二种是实时优先级,其值是可配置的,默认情况下它的变化范围从0到99。与nice相反,越高的实时优先级数值意味着进程优先级越高。对应的Linux下是PTPRIO。 1…

Read more

linux下进程管理

1.进程   进程提供两种虚拟机制:虚拟处理器和虚拟内存。   fork()系统调用从内核返回两次:一次回到父进程,另一次回到新产生的子进程。通常,创建新的进程都是为了立即执行新的,不同的程序,而接着调用exec()这组函数就可以创建新的地址空间,并把新的程序载入其中。在现代linux内核中,fork()实际上由clone()系统调用实现。   最终,程序通过exit()系统调用退出执行。这个函数会终结进程并将其占用的资源释放掉。父进程可以通过wait4()系统调用查询子进程是否终结。 2.进程描述符及任务结构   内核把进程的列表存放在叫做任务队列(task list)的双向循环链表中。链表中每一项都是类型为task_struct,称为进程描述符的结构。 2.1分配进程描述符   linu…

Read more

红黑树和AVL树的个人总结

  以前一直想好好看看红黑树,但看着看着认为这种实现的东西直接调别人的包就可以了,我只要知道大概的时间空间复杂度就ok了。好吧,我承认我理解肤浅了,今天没啥事就把红黑树好好复习了一下。   红黑树(RB-Tree)用途真是太广了,Linux内核,STL中的关联容器,nginx的实现……太多地方用到了。目前的AVL树已经快走入博物馆了,红黑树开始在历史舞台上发挥光和热了。好吧,废话扯多了。move on! 二叉搜索树   首先回顾一下平衡二叉搜索树的祖先:二叉搜索树。它具有以下性质: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。   它的优点我就不说了,缺点就是可能导致不平衡:某一边的子树高…

Read more

Linux socket跨局域网聊天和文件传输

  一直想写一个跨局域网聊天和文件传输,以及视频聊天的软件,这两天刚好闲着没啥事就把代码写完了,代码已经上传至github:https://github.com/vinllen/chat   其实之前想法P2P模式,P2P的话必须穿透NAT,现在的NAT有4种模式: 完全圆锥型NAT 受限圆锥型NAT 端口受限圆锥型NAT 对称NAT(双向NAT) 维基百科给出的定义如下: 1.Full cone NAT,亦即著名的一对一(one-to-one)NAT   一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机都能通过给eAddr:port2发包到达iAddr:port1 2.Address-Restricted…

Read more

Solve error "libgtk2.0-dev and pkg-config" when install opencv

There is a problem happen when i install opencv according the document which given by Official. Here comes the error: OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/je…

Read more

linux pdb调试总结

1.首先gdb编译: gcc -g xxx.c -o xxx 2.然后 gdb xxx进入调试 break 行号 添加断点 (1)然后run就可以跑到下一个断点 (2)step(或s)单步跟踪 (3)print可(或p)以查看当前程序的运行数据 比如:print a 输出a变量的值 输出格式可以设置: 比如p/d a 十进制输出a变量的值 (4)也可以设置display,比如display a 这样以后每次调试都会输出a变量的值 (5)examine(或x)查看内存地址中的值 语法:x/ (6)list查看原程序 (7)print x=8 在调试过程中修改变量x的值,下面生效 (8)jump 实现跳转,可以是文件的行号,也可以是file:line,也可以是+num这种格式 jump address是代码行的内存地址 (9)signal 产生信号量 (10) return 强制返…

Read more

正则表达式与通配符总结

  就适用范围来说,正则表达式适用于文本内容,而通配符适用于文本名字。 正则表达式 . 匹配任意字符 \ 对字符转义 | 选择操作(或) ^ 行起始字符 $ 行终止 ? 匹配0个或1个的量词 *匹配0个或多个的量词 +匹配一次或多次的量词 grep要转义\ [ 字符组开始 ] 字符组结束 { 量词或代码的开始 } 量词或代码的结束 ( 分组开始 ) 分组结束 反斜杠后面加大写字符为小写字符的取反,比如\b为单词边界,\B为非单词边界 \b 单词边界 grep里要加引号 [\b] 退格符 \cx 控制字符 \d 数字 \dxxx 字符的十进制 \oxxx 字符的八进制 \x xx 字符的十六进制 \f 换页 \r 回车 \n 换行 \s 空白符 \t 水平制表符 \w 单词字符 \0 空字符 \\ 表示转义,只匹配一个斜杠。举例:\\. 编译器解析后将会变成\.,将只匹…

Read more