代码改变世界

Go语言_函数学习篇

2012-06-03 08:38 by 轩脉刃, 10208 阅读, 收藏, 编辑
正文内容加载中...

Go语言_基础学习篇

2012-06-02 07:36 by 轩脉刃, 17427 阅读, 收藏, 编辑
摘要:GO文件目录结构该图是go-windows的目录结构如图,go的程序应该是在gopath文件夹下的,分为bin, pkg, 和src三个子文件夹src文件夹:每个次级文件夹(如demo)就是代表一个go项目,里面存放源程序bin文件夹:go的每个项目生成的二进制可执行程序。windows下会生成.exe文件,linux下会生成可执行文件。Go的最大特色之一就是可移植性,就是说,当生成一个demo.exe之后,将这个exe文件放在任意一台windows系统上(即使没有安装go安装包),也是可以执行的。这是让PHP,Python等脚本语言望成莫及的。pkg文件夹:第三方库。里面存放你的项目中引用的 阅读全文

服务器性能查看常用命令

2012-06-01 06:35 by 轩脉刃, 20585 阅读, 收藏, 编辑
摘要:最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。 注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考 free –m 查看内存使用情况 这个命令比较简单,-m 代表下面的是以M为单位 Mem是表示物理内存,主要看 Mem free代表还有多少内存可以 说一下第二行的 -/+ buffers/cache: used = 第一行的used - buffers - cached (表示实际使用的内存总数) free = 第一行的free + buffer... 阅读全文

Linux IO模型漫谈(2)

2012-05-31 09:57 by 轩脉刃, 2998 阅读, 收藏, 编辑
摘要:不管Linux的IO模型的阻塞同步分类是如何分类,几种IO模型的具体实现是确定的。这里借用《Unix 网络编程:卷一》的图片说明。 1 阻塞式IO模型 这个模型也是最容易理解的 程序调用和我们基本的程序编写是一致的: fd = connect() write(fd) read(fd) close(fd) 程序的read必须在write之后执行,当write阻塞住了,read就不能执行下去 2 非阻塞IO模型 从图中可以看出来,这是一个轮询的过程 每次用户询问内核是否有数据报准备好(文件描述符缓冲区是否就绪),当数据报准备好的时候,就进行拷贝数据报的操作。当数据报没... 阅读全文

Unix家族编年史

2012-05-30 13:30 by 轩脉刃, 2886 阅读, 收藏, 编辑
摘要:Unix是多用户、多任务的操作系统,它的历史悠久,也有多种版本。在Unix接触过程中常使用到的词,BSD,Linux等。初学者,甚至是接触unix很久的用户也未必对其家谱了如指掌。这篇文章描述的是Unix的族谱和发展历史。 1969年,Unix的前身Unics出现 作者: 肯·汤普逊(左)和丹尼斯·里奇(右) Unix版本是由美国电话电报公司(AT&T)进行维护升级的。他们两位是AT&... 阅读全文

Linux IO模型漫谈(1)

2012-05-29 11:20 by 轩脉刃, 3361 阅读, 收藏, 编辑
摘要:基础知识 Linux将所有外部设备都看做一个文件来进行操作。因此,linux对所有外部设备的操作都可以看做是文件的操作。文件的操作当然需要有个标示描述它,这就是文件描述符(file descriptor)。 linux的IO操作如何形象理解呢? 我们说网络socket的read()是一个IO操作命令,具体流程是这样的: 应用程序调用read命令,通知内核需要做读取数据操作 内核创建一个文件描述符 内核从物理层收到读数据的命令,从网络中获取数据包 数据包传递到TCP/IP层,解析数据包的头 内核将数据包缓存在文件描述符的读缓存区(接受缓存区)中,注意这里的读缓存区是在内核中的 ... 阅读全文

Lua的协同程序

2012-05-28 15:39 by 轩脉刃, 9524 阅读, 收藏, 编辑
摘要:Lua是一种简单,可扩展,可移植及高效的脚本语言。在嵌入式系统,移动设备,web服务器,游戏等方面都能见到它的身影。lua其中最吸引人的一点事它能很方便地与C语言或者其他语言。 这里说的是lua语言中的协同程序(coroute),也有人翻译成为协作程序 基本函数和语法 coroutine就是lua的协同程序 先讲一下coroutine的语法: coroutine.create() 创建coroutine,返回coroutine, 参数是一个函数,当和resume配合使用的时候就唤醒函数调用 coroutine.resume() 重启coroutine,和create配合使用... 阅读全文

Windows Live Writer插件开发

2012-05-13 19:07 by 轩脉刃, 1634 阅读, 收藏, 编辑
摘要:WLW(windows live writer)是我在博客园发博客必用的博客编写工具。它的插件编写就是WindowsLive.Writer.Api接口的使用,接口API文档在MSDN上有 。如果你有时间,可以按照文档的教程一步步学习。 这里就照着一个插件的实现步骤进行记录: 需求说明 开发准备 开发步骤 参考文章 需求说明 需求:将文章中的<h1></h1>标题自动生成目录,并插入到... 阅读全文

nginx模块_使用gdb调试nginx源码

2012-05-10 16:45 by 轩脉刃, 15548 阅读, 收藏, 编辑
摘要:工欲善其事必先利其器,如何使用调试工具gdb一步步调试nginx是了解nginx的重要手段。 ps:本文的目标人群是像我这样初接触Unix编程的同学,如果有什么地方错误请指正。 熟悉gdb的使用 这里就不说了,谷歌一搜一堆,这里推荐一篇文章:GDB 命令详细解释 请重点看一下step,run,break,list,info,continue命令 下载nginx源码 这里使用nginx-1.0.14 src是源代码,auto文件夹是configure运行时候的各种命令集合 修改config并编译 由于gdb需要gcc的时候加上-g参数,这样生成的文件才能使用gdb调试,因此... 阅读全文

UltraEdit高级使用技巧

2012-05-02 17:22 by 轩脉刃, 17552 阅读, 收藏, 编辑
摘要:UltraEdit是众多IDE中颇有亮点的一款,它功能强大,这里说一下它的一些很好用的功能。 列模式 很多人喜欢上UltraEdit最初就是由于它的列模式。 进入列模式: Alt + C 如何对多个行进行注释 1 进入列模式 2 选定多个行 3 增加注释符 计算列的多个数的和 1 进入列模式 2 选择统计的列 3 列 -- 列选择统计 更多列模式的操作可以参考这里 UltraEdit中的脚本 脚本只支持ASCII/ANSI files编码,UTF-8是会出错的 几个常用的命令 var str = UltraEdit.ge... 阅读全文