五一非常无聊的在家呆着, 最近在google资料时, 查到的一些技术blog, 发现好多都在github里, 也就是好多人都把github当作保存技术文章的的管理器, 然后用比如Markdown等语法形式写, 自己弄个简单的程序读出来, 展示就可以变成一个基本的blog站点了.
我的这个blog也是这个意思, https://github.com/liutaihua/yyu.me.git, 写好的article放在post目录, 一个tornado的web框架, 读出这些article, 加个html围绕就变成现在这个样子了, 不过我还给它增加了在线编辑器, 是一个Markdown语法的在线编辑器, 可以试试预览Markdown
继续阅读 »
zmq push--pull 方式
在ZMQ中是淡化服务端和客户端的概念的:
相对的服务端:
创建一个SUBer订阅者bind一个端口, 用来接收数据
创建一个zmq.PUSH
创建一个zmq poller轮询对象,
将sub注册到poller, 并赋予zmq.POLLIN意味轮询进来的msg
创建sock=poller.poll()开始轮询
当有msg发送到suber订阅者的监听端口后, sock.recv()方法将会收到msg,
最后使用之前创建的pusher, 使用pusher.send(msg)将消息推送到连接到的puller, 如果无puller, 此msg将被丢弃
继续阅读 »
hubot 机器人, 居然今天才去了解了下它, 用nodejs运行, coffee javascrpit写的.
记录下安装方式
如果是redhat系列的linux, 使用yum 安装即可, centos6后的nodejs版本已经很新了.
实在不行就搞源码安装.
继续阅读 »
使用datetime, 构造一个cron task定期执行给定的函数方法
一个Plan类, 包含next_datatime, execute, 两个方法, init方法指明在实例化的时候,需要给定一个func作为参数, 其他参数可以是时间间隔, 或具体的时间点,
继续阅读 »
说起来题目比较拗口, 比较常见到的是IP地址, 由8个2进制位, 转换成十进制最大为255, 这都知道.
以前学网络的时候, 经常碰到, 一个ip的一段, 比如 192.168.1.211中的211, 211转换成2进制是11010011,
继续阅读 »
FlameGraph的例图,解释如下:
图中每一个方块代表栈里的一个函数。
Y轴代表调用深度,最上面的是当前正在CPU上执行的函数,下面的都是其祖先。每个函数都是由它下方的函数调用的。
X轴不是按照时间先后排列的,它只代表样本数目。方块越宽,代表该函数出现的次数越多。
在有多个并发线程同时被采样,样本总数可能超过采样所用的时间。
继续阅读 »
源码里的结构:
tornado
├── auth.py
├── autoreload.py
├── ca-certificates.crt
├── curl_httpclient.py
├── database.py
├── escape.py
├── gen.py
├── httpclient.py
├── httpserver.py
├── httputil.py
├── init.py
├── ioloop.py
├── iostream.py
├── locale.py
├── netutil.py
├── options.py
├── platform
│ ├── auto.py
│ ├── common.py
继续阅读 »
kvm的guest镜像可以mount到本地
首先使用qemu-img info img_file查看镜像使用的文件格式, 通常默认的是raw
[root@ttt data]# qemu-img info vm1.img
继续阅读 »
hubot的announce通知所有在线联系人
hubot在使用挂接到其他平台时, 是支持room的方式了, 这样就支持了由一个用户发送announce通知所有在线联系人的方式了.
因为想到以后或许可以使用hubot来作为监控通知, 当你指定的监控项目告警时, 使用hubot把信息发送到所有在线订阅人.
继续阅读 »
2.6.16后的内核, 对于查看进程内存使用分布, 更方便了. 在/proc/{pid} 路径下有一个smaps文件, 记录了进程内存使用情况, 在老的内核系统上, 这个文件是maps或memap , 而且老的内核下maps或memap文件记录的数据真不是人读的.
继续阅读 »