程序技术 | 2015-03-12 抓包神器 tcpdump 使用介绍 tcpdump 命令使用简介简单介绍tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上。熟悉 tcpdump 的使用能够帮助你分析、调试网络数据。 要想使用很好地掌握 tcpdump, 必须对网络报文(TCP/IP 协议)有一定的了解。不过对于简单的使用来说,只要有网络基础概念就行了。 tcpdump 是一个很复杂的命令,想了解它的方方面面非常不易,也不值得推荐,能够使用它解决日常工作中的问题才是关键。 选项tcpdump 的选项也很多,要想知道所有选项的 ...
程序技术 | 2015-01-18 linux 系统启动过程 Linux 系统的启动过程简介我们都知道:操作系统运行的代码是在硬盘上的,最终要跑到内存和 CPU 上,才能被我们使用。 那从摁下电源键到看到系统界面,操作系统是怎么霸占了所有的硬件资源,把自己加载到内存开始运行的呢?可以想到有两个可能性:操作系统自己实现的,或者有其他贵人帮忙。如果是操作系统自己启动的,就有了一个“鸡生蛋,蛋生鸡”的问题;如果是后者的话,一定有在操作系统启动之前就能工作的神力,把沉睡在硬盘的操作系统变到工作状态。 事实上,Linux 系统的启动正是上面第二种 ...
程序技术 | 2014-12-21 解析 python decorator 首次看到 python 的 decorator 的时候,感到非常新奇,也非常困惑。这个看起来很酷,在各种源码里经常出现的家伙到底是什么意思,怎么使用? @myDecorator def aFunction(): print("inside a Function") 这篇文章就解释一下自己的这个疑惑。 从函数开始函数可以看做一个容器,它根据接受的参数进行运算,并返回出结果(没有返回的函数可以看做返回值是 None )。 在 Python 这样的高级 ...
程序技术 | 2014-12-20 Sublime Text: python 程序员不完全指南 1. 插件Package Control唯一需要手动安装的插件,官方介绍: The Sublime Text package manager that makes it exceedingly simple to find, install and keep packages up-to-date. 安装的话官网上有自动安装脚本。 GitGit 和 Sublime 的深度集成,直接执行 Git 命令,轻松告别 Terminal。 GitGutter实时查看 git di ...
程序技术 | 2014-11-30 凯撒密码和维吉尼亚密码 在开始之前,先定义一些基本的概念。 明文P(Plain text):指没有经过加密的普通文本 密文C(Cipher text):指加密后的文本 加密(Encryption/Encipherment):将明文转化为密文的过程 解密(Decryption/Decipherment):将密文还原为明文的过程 加密钥匙Ek(Encryption Key):加密时使用的钥匙(配合加密算法的数据) 解密钥匙Dk(Decryption Key):解密时使用的钥匙(配合解密算法的数据) ...
程序技术 | 2014-11-09 wsgiref 源码解析 图片来源 介绍要很好地理解下面的代码,最好有一定的 socket 编程基础,了解 socket 的基本概念和流程。 wsgiref 是 PEP 333 定义的 wsgi 规范的范例实现,里面的功能包括了: 操作 wsgi 的环境变量 应答头部的处理 实现简单的 HTTP server 简单的对程序端和服务器端校验函数 我们先看一个简单的代码实例,然后跟着例子去理解源码: app.py # pep333 定义的程序端可调用对象 def hello_world_app(e ...
程序技术 | 2014-11-08 python wsgi 简介 基础知识Python 知识 iterator 和 generator 函数的高级用法:嵌套函数,作为参数传递等等 了解 decorator 会对理解 wsgi 有很大的帮助 python 的 callable 概念 classmethod 和 staticmethod 的概念 web 编程的基础 HTTP 基础 对于 web 应用程序来说,最基本的概念就是客户端发送请求(request),收到服务器端的响应(response)。 下面是简单的 HTTP 请求: GET / ...
程序技术 | 2014-10-19 Linux 文本处理 这篇文章记录了 Bash 中常用的文本处理的程序,但是并不对每个程序做很详细的解释,只是列出来一些实用的用法。算是读书笔记,也可以看做一个备忘。 1. 查看cat(concatenate) -A 选项可以显示非打印字符,这个在调试 MS-DOS 的回车符时比较有用。 cat 主要用来查看文件和拼接文件。cat file1.txt file2.txt file2.txt > file.txt 会把三个文件的内容输出到file.txt。 cat > foo.txt ...
程序技术 | 2014-05-14 【翻译】curl自动化http操作 HTTP 脚本背景这篇文档假定读者熟悉HTML和简单的网络知识。 大量应用转到网络使得HTTP 脚本被大量使用,自动化地从网络获取信息、伪装成用户、上传数据到网络服务器也变得至关重要。 curl是进行各种 url 操作和转换的命令行工具,这篇文章只关注curl在 http 请求中的应用。我想你已经知道使用curl --help或者curl --manual 来初步了解curl。 curl不能保证完成你所有的任务。它能发出请求、获取数据、发送数据和获得信息,你或许需要通过其他 ...
程序技术 | 2014-04-10 apt 背后的故事 这篇文章介绍的是ubuntu系统的apt-get软件包的格式、管理,和其他系统可能会有出入。 1. debian sources list 格式sources.list是debian系统用来指定软件源的文件,它的基本格式为: deb uri distribution [component1] [component2] […] 我们使用国内的163源来说明每一行的具体含义下面是来自163源ubuntu帮助页面的条目: deb http://mirrors.163.com/u ...
程序技术 | 2014-03-05 c string function implementation 本文主要讲述一下c语言里的字符串常用的函数以及一些经典的实现,讲解了数组和指针的用法。 C 中的字符串文字的处理是计算机重要的功能之一,C语言自然也提供了完备的机制。 字符串 VS 数组c语言中并没有字符串类型,使用的字符串都是用数组实现的。比如,下面定义的str字符串, char str[] = "Hello,world!" 实际上是如下的数组: ————————————————————————————————————————————————————— ...
article | 2013-12-08 why evolution is true 在Quora上看到有人问了这样的问题,关于进化论为什么是对的,正好解开了自己很久的心结。为了更多人看到,就翻译下来,放在这里。 问题 既然进化论只是一个理论,为什么说它一定是对的呢? “进化论永远也不能确定地被证明是正确的或者是错误的。没错,现在是有很多证据,但我们永远不可能完全确定。” 上面的话,换成“上帝”也同样适用。为什么说进化论是正确的,宗教是错误的? 几个世纪以来,很多智者坚信自然发生学说的正确性,什么让进化论与此有别呢? 但现在,人们却近乎狂热甚 ...
article | 2013-12-04 我是怎么跑完21km的? 今年是我第一次跑马拉松(半程),成绩还算符合预期的要求,可惜差一点没进2小时。先晒一下成绩证书吧! 上马的结缘和准备跑马拉松的想法主要来自两位同事:大浪和张良,在报名前被他们俩感染,索性也报了,至少有个伴,跑步的动力会大些。 练习之前跑步最好的成绩是大学的时候2400m,拼死在十分钟内完成,腿疼了三天才好,所以多少担心这次半马能不能坚持下去。准备从十月份开始,几乎每周要跑2-3次,每次的距离是5-10km,大约累计跑了70km;十一月份的时候因为天气转冷,自己变懒,加上工作 ...
article | 2013-11-02 谁在这个世界更重要? 正文之前如果真的把人分为平凡的和不平凡的话,陀思妥耶夫斯基一定是不平凡的那类。俄国出了不少文豪级的作家,对人性认识得深刻入骨,陀思妥耶夫斯基是其中有深度的一位。 王小波在一本书里这样谈及长篇小说的创作: 我相信如果不能把已写出的每一根线索都记在心里,就不能写出好的结构,如果不能把写出的每一句话记在心里,就不能写出好的风格 此外,语言的张力和思想的纵横自不必说。一个作家用心完成一部长篇,是对精神和身体的双重折磨。说这句话真的不夸张,路遥三部《平凡的世界》和病魔一起夺去了他的 ...
article | 2013-09-15 小王子 星空、男孩、玫瑰、蛇,狐狸,沙漠…… 童话的浪漫和诗意,丝毫不能掩盖《小王子》哲思和生命意义的追寻。故事从相遇开始,以别离结束,事情放佛如一场梦,一切都回到原点。飞行员继续先前的职业,我们闭上书本周围的一切都丝毫未变。但是谁能否定心里受到的洗礼呢?小王子已经变成我们心中独一无二的玫瑰,当我们仰望星空,谁会说一切都和原来一样呢? 关于大人和孩子 所有的大人都曾经是孩子,尽管他们几乎不记得这一点。 大人们永远没有半点独立理解能力,而孩子们又懒得随时随地向他们耐心解释 大人们 ...
程序技术 | 2013-09-07 Python 编码那些事 似曾相识?如果你经常使用Python的话,对下面这种情况应该很熟悉: UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 1: ordinal not in range(128) 你当然知道这是编码错误,也能根据提醒知道默认的ASCII码无法解析这里的数据,但是却不知道到底为什么会出现这种情况,并且应该怎么解决。那么这篇文章就是为你而准备的,请继续往下读。 认识编码计 ...
程序技术 | 2013-09-06 RESTful API design 这篇文章主要介绍RESTful的基本概念和设计时需要注意的事项。所有的内容仅针对刚接触RESTful的同学,其他人请移步。 RESTful, WTF?如果你遇到问题会主动上网查找的话,你会在wikipedia上发现这样的定义: Representational state transfer (REST) is a style of software architecture for distributed systems such as the World Wide Web. ...
程序技术 | 2013-08-14 solve sudoers error problem Tricky ProblemToday I tried to install openstack in my ubuntu12.04 with devstack.It should be simple, but a lot of trouble occured while doing it. The main one is about privileges.As I only work in ubuntu default user, and use ‘sudo’ somtim ...
程序技术 | 2013-08-10 Use Jekyll to Write Blog Quick StartUse jekyll to write posts is as easy as play Fruit Ninja, there is barely learning process.To create a new post: rake post title="post title" It will automatically create a post under _post folder with format ‘date-titl ...
程序技术 | 2013-08-10 Python ConfigParser Module Python ModulePython has a rich library which is clear, simple and easy-to-use.It covers all subjects you might think of, from text process to network parser, from email to UI.About python libraries and modules, you can refer to python wiki, ...
article | 2013-08-04 Problems Working with Github+Jekyll DeclarationGithub Pages really helps me a lot with this blog. It relieves me of so much trouble struggling withhtml, css etc. Despite of all benefits, it also strikes some know-nothing-about-jekyll-and-html guys like me. During the period o ...
article | 2013-07-31 程序员、黑客、自由即其他 什么是黑客?黑客的英文是hacker,它的本意在维基百科)上如此定义: Hacker, who combines excellence, playfulness, cleverness and exploration in performed activities. 指的是那些做事卓越,方法优雅富有趣味性,并且有很强探索精神的人。在计算机领域的早期,这也是本来黑客的意思,只有真正掌握先进的技术,风格别树一帜的程序员才能成为黑客,比如c语言之父 Dennis Ritchie ...
程序技术 | 2013-07-29 Basic Regular Expression What is Regular Expression and Why?Regular Expression(Regex for simplicity) is a sequence of characters that forms a search pattern, mainly for use in pattern matching with string, or string matching. There is a very famous quote about rege ...
article | 2013-07-22 Why I Write Blog? The Road to BloggingIt has been a long time since I intented to start my won blog.Due to lack of money and other factors, this didn’t happen until I find github pages which is convenient and free to build and host my blog. So,many thanks to ...