TypeCodes

准备将博客从Typecho迁移到Pelican

8月份的时候,终于从庞大的WordPress转到了轻量级的博客程序Typecho。简洁的设计和比较出色的Markdown支持,整个Typecho体验还是挺不错的。到10月份的时候,自己了解了一些静态博客程序,包括nodejs的Ghost、Hexo等,ruby写的jekyll以及Python写的Pelican等。

由于当时正好接触到了大蟒蛇,而且对js不熟(ruby都没用过),所以就在本地尝试了一下Pelican。之间折腾了一个从Octopress移植过来的主题Pelican-Octopress未果,后面忙着就没怎么弄了。

前段时间辞职后,闲着就打算把博客 …

- 阅读剩余部分 -

Linux TCP连接Connection Refused和Connection timed out的问题

前段时间和其它系统做联调测试,对方系统采用的是负载均衡模式。调试时采用的是多台手机作为客户端发送到对方负载均衡服务器,然后再把报文转发送到我这边的服务端。在测试的时候,对方测试人员说有的手机客户端会偶尔出现报文发不过来的情况。

故事有点长,先发一张tcp三次握手的过程图镇楼~

Linux tcp三次握手

1 自己服务端的socket监听出现问题

一开始认为可能是自己作为服务端的监听有问题,因为后面排查监听端口的时候发现了close_wait的情况。当时没多想,认为对方负载均衡不会出错(先前跟其它系统联调过了),就急着解决close_wait的问题去了。

可是后面测试的时候,尽管服务端监听没有任何异常 …

- 阅读剩余部分 -

博客MySQL服务惊魂记:Linux磁盘空间不足(Core Dump文件引爆)

昨天在更新完文章《升级博客文章同步微博的插件:PHP正则提取Markdown的图片地址》后,博客突然无法访问了。

MySQL的错误日志

1 查看Nginx的错误日志error.log

惊愕之余,换了多个浏览器打开博客首页无果(一直显示加载状态),最终报内部服务器500的错误。立即查看Nginx服务的错误日志:

[root@typecodes nginx]# vim error.log 
........
[error …

- 阅读剩余部分 -

升级博客文章同步微博的插件:PHP正则提取Markdown的图片地址

作为一个微博控,为了把博客的文章同步到新浪微博上,BZ在新浪微博开放平台申请了一个应用。然后在自己的CentOS服务器上,利用官方PHP SDK搭了个服务端应用。这样通过博客插件作为请求客户端,调用相关API接口把文章同步到微博上。微博发布后,会显示来源,也即应用名称(如下图BZ的是TypeCodes)。

博客文章同步到新浪微博的效果

1 插件升级:增加微博图片模式 …

- 阅读剩余部分 -

Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile

最近写了一个*nix环境下的Makefile文件,支持编译C/C++,同时能够通过参数配置生成ELF目标文件、动态链接库(.so)和静态链接库(.a)文件。

Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile

1 Makefile文件配置说明

首先,根据生成的目标文件类型(ELF可执行文件,动态链接库文件或静态链接库文件),配置GEN_LIBSGEN_DYN_LIBEXCUTE_BIN …

- 阅读剩余部分 -

解决make编译链接动态库错误:libxx.so: undefined reference to xx

最近在写一个Makefile,调试时遇到了libsrcpbl.so: undefined reference to gcProgramName的问题。在这个Makefile脚本里面,终极目标是通过链接一个自定义的动态库libsrcpbl.so生成一个ELF目标文件。

由于链接生成libsrcpbl.so动态库的.o文件比较多,无法定位具体的错误程序文件和位置,所以折腾了较长时间。

1 …

- 阅读剩余部分 -

Unix系统中nm命令展示目标文件符号的方法

在unix系统中,通过gnu开源gcc或者g++工具生成的目标文件(object file),可以用nmobjdumpreadelf这三个命令来查看。

nm:显示目标文件中的符号;
objdump:打印目标文件中的详细信息;
readelf:显示关于 ELF 目标文件的信息。

之前在 …

- 阅读剩余部分 -