<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一个手艺人的专栏]]></title><description><![CDATA[一个奋斗在一线的，普通的软件工程师的文章集。]]></description><link>https://blog.youkuaiyun.com/xiaonanAndroid</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaonanAndroid]]></copyright><item><title><![CDATA[我的新博客--nanxiao.me上线了]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40535051</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40535051</guid><author>xiaonanAndroid</author><pubDate>Tue, 28 Oct 2014 08:34:01 +0800</pubDate><description><![CDATA[终于有了一个以自己名字命名的域名（nanxiao.me），以后de]]></description><category></category></item><item><title><![CDATA[学习Bash shell编程资料推荐]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40214391</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40214391</guid><author>xiaonanAndroid</author><pubDate>Sat, 18 Oct 2014 19:48:25 +0800</pubDate><description><![CDATA[我一直觉得写好Bash shell脚本是一件很cool的事，短短几行代码，就能完成其它编程语言几十行甚至上百行代码才能完成的功能，可惜我自己写Bash
 shell脚本能力实在不敢恭维。在这篇文章，我把自己认为一些比较好的Bash shell编程资料分享出来，希望可以给大家一点帮助。

我个人看过的最好的Bash shell编程入门资料是《Linux程序设计》的第二章：shell程序设计，看]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（九） —— 第二章（八）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40189033</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40189033</guid><author>xiaonanAndroid</author><pubDate>Fri, 17 Oct 2014 18:03:10 +0800</pubDate><description><![CDATA[1. Workload Characterization: workload characterization is a simple and effective method for identifying a class of issues: those
 due to the load applied. It focuses on the input to the system, rath]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（八） —— 第二章（七）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40075385</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/40075385</guid><author>xiaonanAndroid</author><pubDate>Tue, 14 Oct 2014 13:10:49 +0800</pubDate><description><![CDATA[1. Tools Method: A tools-oriented method is as follows:
1) List available performance tools (optionally, install or purchase more).
2) For each tool, list useful metrics it provided.
3) For each me]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（七） —— 第二章（六）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39992687</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39992687</guid><author>xiaonanAndroid</author><pubDate>Sat, 11 Oct 2014 13:18:17 +0800</pubDate><description><![CDATA[1. Ad Hoc Checklist Method: Step through a canned checklist is a common methodology used by support professionals when asked to check and tune a  system,
 often in a short time frame. These checklist]]></description><category></category></item><item><title><![CDATA[在Solaris上使用LD_OPTIONS环境变量诊断编译链接问题]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39970543</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39970543</guid><author>xiaonanAndroid</author><pubDate>Fri, 10 Oct 2014 21:56:14 +0800</pubDate><description><![CDATA[最近在Solaris上编译一款开源软件，在最后链接阶段出了问题，导致ld程序core
 dump。由于没有ld程序源代码，导致完全没思路，没办法，只好在stackoverflow上求教：http://stackoverflow.com/questions/26009192/why-the-ld-crash-in-building-libgd。从回复中我才知道可以通过设置LD_OPTIONS环境变]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（六） —— 第二章（五）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39960745</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39960745</guid><author>xiaonanAndroid</author><pubDate>Fri, 10 Oct 2014 13:14:40 +0800</pubDate><description><![CDATA[1. Streetlight Anti-Method: This method is actually the absence of a deliberate methodology. The user analyzes performances by choosing observability
 tools that are familiar, found on the Internet, ]]></description><category></category></item><item><title><![CDATA[2014“十一”回家之旅]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39826605</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39826605</guid><author>xiaonanAndroid</author><pubDate>Mon, 06 Oct 2014 11:06:40 +0800</pubDate><description><![CDATA[眨眼之间，]]></description><category></category></item><item><title><![CDATA[tcpreplay（3.4版本）程序显示统计结果的一个问题]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39641377</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39641377</guid><author>xiaonanAndroid</author><pubDate>Sun, 28 Sep 2014 14:46:36 +0800</pubDate><description><![CDATA[最近，我在Solaris系统上用tcpreplay程序（sunfreeware网站提供的3.4.4版本的安装包，目前sunfreeware已经不再提供免费的Solaris系统安装包下载了，但还是可以通过其它ftp下载到）辅助测试。发现tcpreplay输出是这样的：
Actual: 400000 packets (78200000 bytes) sent in 18.03 seconds.   ]]></description><category></category></item><item><title><![CDATA[提高个人能力的几个小建议]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39613143</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39613143</guid><author>xiaonanAndroid</author><pubDate>Sat, 27 Sep 2014 19:36:27 +0800</pubDate><description><![CDATA[（1）拥有一个云笔记]]></description><category></category></item><item><title><![CDATA[gcc的 "-fpack-struct" 编译选项导致程序core dump的分析]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39608815</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39608815</guid><author>xiaonanAndroid</author><pubDate>Sat, 27 Sep 2014 08:42:52 +0800</pubDate><description><![CDATA[最近team引入gcov来做代码分析。编译好的程序在Solaris上运行的好好的，结果在Linux上一运行就会产生core
 dump文件。这篇文章就介绍整个分析过程。

首先用gdb分析core文件,显示是strlen调用出了问题：
(gdb) bt
#0  0x00000034e433386f in __strlen_sse42 () from /lib64/libc.so.6
#1 ]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（五） —— 第二章（四）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39550805</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39550805</guid><author>xiaonanAndroid</author><pubDate>Thu, 25 Sep 2014 13:40:12 +0800</pubDate><description><![CDATA[1. There are two common perspectives for performance analysis, each with different audiences, metrics and approaches. They are  workload
 analysis and resource analysis. They can be thought of as eit]]></description><category></category></item><item><title><![CDATA[往GNU邮件组发邮件要用纯文本格式]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39549489</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39549489</guid><author>xiaonanAndroid</author><pubDate>Thu, 25 Sep 2014 13:17:54 +0800</pubDate><description><![CDATA[昨天遇到gcc使用方面的一个问题，就往gcc-help（gcc-help@gcc.gnu.org）邮件组发了一封求助邮件。但是通过浏览归档（https://gcc.gnu.org/ml/gcc-help/）找不到我发的邮件，应该是没有发送成功。今天在hellogcc的IRC里请教了一下，才知道应该用纯文本格式发送。我用的是QQ邮箱，没找到设置纯文本。于是就改用gmail的邮箱发送，果然一下就成功了]]></description><category></category></item><item><title><![CDATA[Windows/Unix文本格式转换导致“/usr/bin/env: No such file or directory”]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39519281</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39519281</guid><author>xiaonanAndroid</author><pubDate>Wed, 24 Sep 2014 09:36:03 +0800</pubDate><description><![CDATA[今天在用同事写的一个python脚本，一运行就出现了以下错误：


/usr/bin/env: No such file or directory


用ls命令查看了一下，“/usr/bin/env”明明存在：


bash-3.2# ls -lt /usr/bin/env
-r-xr-xr-x 1 root bin 5780 Jan 23  2005 /usr/bin/en]]></description><category></category></item><item><title><![CDATA[如何写gdb命令脚本]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39451381</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39451381</guid><author>xiaonanAndroid</author><pubDate>Sun, 21 Sep 2014 14:07:17 +0800</pubDate><description><![CDATA[作为UNIX/Linux下使用广泛的调试器，gdb不仅提供了丰富的命令，还引入了对脚本的支持：一种是对已存在的脚本语言支持，比如python，用户可以直接书写python脚本，由gdb调用python解释器执行；另一种是命令脚本（command file），用户可以在脚本中书写gdb已经提供的或者自定义的gdb命令，再由gdb执行。在这篇文章里，我会介绍一下如何写gdb的命令脚本。  


]]></description><category></category></item><item><title><![CDATA[UNIX/Linux C 程序员需要掌握的七种武器]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39449491</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39449491</guid><author>xiaonanAndroid</author><pubDate>Sun, 21 Sep 2014 10:27:49 +0800</pubDate><description><![CDATA[我是一名普通的软件工程师，不是什么技术大牛。这篇文章所提到的“七种武器”只是我这些年工作经验的一点体会和感悟，如果有错误的地方，还请大家指正。


（一）C语言


作为一名C程序员，熟练掌握C语言是最基本的一项技能。关于如何学好C语言，以及C语言话题的讨论，网上有很多经典的文章，我就不一一列举了。在这里，我只想谈一点我个人的体会：刚毕业时，我来到一家比较大的软件公司工作，而公司的工作]]></description><category></category></item><item><title><![CDATA[我心目中理想的软件开发过程]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39433197</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39433197</guid><author>xiaonanAndroid</author><pubDate>Sat, 20 Sep 2014 17:03:50 +0800</pubDate><description><![CDATA[我心目中理想的软件开发过程是这样的：  


（1）RD（程序员）写完一段代码后，会review两遍，这样很多基本的问题就都能被发现。在完成整块代码功能后，通过使用gdb等工具，改变程序的执行流程，以保证每个分支，每条语句都能执行一遍。在这个过程中，要检查变量的值和代码逻辑，看看是否和预期的一样。最后写测试用例，执行集成测试，确保不会出现很低级的bug；执行稳定性测试，确保程序可以长时间运行]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（四） —— 第二章（三）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39401255</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39401255</guid><author>xiaonanAndroid</author><pubDate>Fri, 19 Sep 2014 17:47:51 +0800</pubDate><description><![CDATA[1. The degree to which more work is requested of a resource than it can process is saturation. Saturation begins to occur at 100% utilization
 (capacity-based), as extra work cannot be processed and ]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（三） —— 第二章（二）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39337853</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39337853</guid><author>xiaonanAndroid</author><pubDate>Wed, 17 Sep 2014 09:25:51 +0800</pubDate><description><![CDATA[1. The notion of known-knowns, known-unknowns and unknown-unknowns is important for the field of performance:
a) Known-knowns: These are things you know;
b) Known-unknowns: These are things you know]]></description><category></category></item><item><title><![CDATA[《Systems Performance: Enterprise and the Cloud》读书笔记系列（二） —— 第二章（一）]]></title><link>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39273205</link><guid>https://blog.youkuaiyun.com/xiaonanAndroid/article/details/39273205</guid><author>xiaonanAndroid</author><pubDate>Sun, 14 Sep 2014 21:04:07 +0800</pubDate><description><![CDATA[分析术语简介]]></description><category></category></item></channel></rss>