程序技术 |

抓包神器 tcpdump 使用介绍

tcpdump 命令使用简介简单介绍tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上。熟悉 tcpdump 的使用能够帮助你分析、调试网络数据。 要想使用很好地掌握 tcpdump, 必须对网络报文(TCP/IP 协议)有一定的了解。不过对于简单的使用来说,只要有网络基础概念就行了。 tcpdump 是一个很复杂的命令,想了解它的方方面面非常不易,也不值得推荐,能够使用它解决日常工作中的问题才是关键。 选项tcpdump 的选项也很多,要想知道所有选项的 ...

  • Cizixs Wu
    Cizixs Wu
14 min read
程序技术 |

linux 系统启动过程

Linux 系统的启动过程简介我们都知道:操作系统运行的代码是在硬盘上的,最终要跑到内存和 CPU 上,才能被我们使用。 那从摁下电源键到看到系统界面,操作系统是怎么霸占了所有的硬件资源,把自己加载到内存开始运行的呢?可以想到有两个可能性:操作系统自己实现的,或者有其他贵人帮忙。如果是操作系统自己启动的,就有了一个“鸡生蛋,蛋生鸡”的问题;如果是后者的话,一定有在操作系统启动之前就能工作的神力,把沉睡在硬盘的操作系统变到工作状态。 事实上,Linux 系统的启动正是上面第二种 ...

  • Cizixs Wu
    Cizixs Wu
8 min read
程序技术 |

解析 python decorator

首次看到 python 的 decorator 的时候,感到非常新奇,也非常困惑。这个看起来很酷,在各种源码里经常出现的家伙到底是什么意思,怎么使用? @myDecorator def aFunction(): print("inside a Function") 这篇文章就解释一下自己的这个疑惑。 从函数开始函数可以看做一个容器,它根据接受的参数进行运算,并返回出结果(没有返回的函数可以看做返回值是 None )。 在 Python 这样的高级 ...

  • Cizixs Wu
    Cizixs Wu
21 min read
程序技术 |

凯撒密码和维吉尼亚密码

在开始之前,先定义一些基本的概念。 明文P(Plain text):指没有经过加密的普通文本 密文C(Cipher text):指加密后的文本 加密(Encryption/Encipherment):将明文转化为密文的过程 解密(Decryption/Decipherment):将密文还原为明文的过程 加密钥匙Ek(Encryption Key):加密时使用的钥匙(配合加密算法的数据) 解密钥匙Dk(Decryption Key):解密时使用的钥匙(配合解密算法的数据) ...

  • Cizixs Wu
    Cizixs Wu
9 min read
程序技术 |

wsgiref 源码解析

图片来源 介绍要很好地理解下面的代码,最好有一定的 socket 编程基础,了解 socket 的基本概念和流程。 wsgiref 是 PEP 333 定义的 wsgi 规范的范例实现,里面的功能包括了: 操作 wsgi 的环境变量 应答头部的处理 实现简单的 HTTP server 简单的对程序端和服务器端校验函数 我们先看一个简单的代码实例,然后跟着例子去理解源码: app.py # pep333 定义的程序端可调用对象 def hello_world_app(e ...

  • Cizixs Wu
    Cizixs Wu
15 min read
程序技术 |

python wsgi 简介

基础知识Python 知识 iterator 和 generator 函数的高级用法:嵌套函数,作为参数传递等等 了解 decorator 会对理解 wsgi 有很大的帮助 python 的 callable 概念 classmethod 和 staticmethod 的概念 web 编程的基础 HTTP 基础 对于 web 应用程序来说,最基本的概念就是客户端发送请求(request),收到服务器端的响应(response)。 下面是简单的 HTTP 请求: GET / ...

  • Cizixs Wu
    Cizixs Wu
17 min read
程序技术 |

Linux 文本处理

这篇文章记录了 Bash 中常用的文本处理的程序,但是并不对每个程序做很详细的解释,只是列出来一些实用的用法。算是读书笔记,也可以看做一个备忘。 1. 查看cat(concatenate) -A 选项可以显示非打印字符,这个在调试 MS-DOS 的回车符时比较有用。 cat 主要用来查看文件和拼接文件。cat file1.txt file2.txt file2.txt > file.txt 会把三个文件的内容输出到file.txt。 cat > foo.txt ...

  • Cizixs Wu
    Cizixs Wu
5 min read
程序技术 |

【翻译】curl自动化http操作

HTTP 脚本背景这篇文档假定读者熟悉HTML和简单的网络知识。 大量应用转到网络使得HTTP 脚本被大量使用,自动化地从网络获取信息、伪装成用户、上传数据到网络服务器也变得至关重要。 curl是进行各种 url 操作和转换的命令行工具,这篇文章只关注curl在 http 请求中的应用。我想你已经知道使用curl --help或者curl --manual 来初步了解curl。 curl不能保证完成你所有的任务。它能发出请求、获取数据、发送数据和获得信息,你或许需要通过其他 ...

  • Cizixs Wu
    Cizixs Wu
25 min read
程序技术 |

c string function implementation

本文主要讲述一下c语言里的字符串常用的函数以及一些经典的实现,讲解了数组和指针的用法。 C 中的字符串文字的处理是计算机重要的功能之一,C语言自然也提供了完备的机制。 字符串 VS 数组c语言中并没有字符串类型,使用的字符串都是用数组实现的。比如,下面定义的str字符串, char str[] = "Hello,world!" 实际上是如下的数组: ————————————————————————————————————————————————————— ...

  • Cizixs Wu
    Cizixs Wu
12 min read
article |

why evolution is true

在Quora上看到有人问了这样的问题,关于进化论为什么是对的,正好解开了自己很久的心结。为了更多人看到,就翻译下来,放在这里。 问题 既然进化论只是一个理论,为什么说它一定是对的呢? “进化论永远也不能确定地被证明是正确的或者是错误的。没错,现在是有很多证据,但我们永远不可能完全确定。” 上面的话,换成“上帝”也同样适用。为什么说进化论是正确的,宗教是错误的? 几个世纪以来,很多智者坚信自然发生学说的正确性,什么让进化论与此有别呢? 但现在,人们却近乎狂热甚 ...

  • Cizixs Wu
    Cizixs Wu
4 min read
article |

我是怎么跑完21km的?

今年是我第一次跑马拉松(半程),成绩还算符合预期的要求,可惜差一点没进2小时。先晒一下成绩证书吧! 上马的结缘和准备跑马拉松的想法主要来自两位同事:大浪和张良,在报名前被他们俩感染,索性也报了,至少有个伴,跑步的动力会大些。 练习之前跑步最好的成绩是大学的时候2400m,拼死在十分钟内完成,腿疼了三天才好,所以多少担心这次半马能不能坚持下去。准备从十月份开始,几乎每周要跑2-3次,每次的距离是5-10km,大约累计跑了70km;十一月份的时候因为天气转冷,自己变懒,加上工作 ...

  • Cizixs Wu
    Cizixs Wu
5 min read
article |

谁在这个世界更重要?

正文之前如果真的把人分为平凡的和不平凡的话,陀思妥耶夫斯基一定是不平凡的那类。俄国出了不少文豪级的作家,对人性认识得深刻入骨,陀思妥耶夫斯基是其中有深度的一位。 王小波在一本书里这样谈及长篇小说的创作: 我相信如果不能把已写出的每一根线索都记在心里,就不能写出好的结构,如果不能把写出的每一句话记在心里,就不能写出好的风格 此外,语言的张力和思想的纵横自不必说。一个作家用心完成一部长篇,是对精神和身体的双重折磨。说这句话真的不夸张,路遥三部《平凡的世界》和病魔一起夺去了他的 ...

  • Cizixs Wu
    Cizixs Wu
11 min read
article |

小王子

星空、男孩、玫瑰、蛇,狐狸,沙漠…… 童话的浪漫和诗意,丝毫不能掩盖《小王子》哲思和生命意义的追寻。故事从相遇开始,以别离结束,事情放佛如一场梦,一切都回到原点。飞行员继续先前的职业,我们闭上书本周围的一切都丝毫未变。但是谁能否定心里受到的洗礼呢?小王子已经变成我们心中独一无二的玫瑰,当我们仰望星空,谁会说一切都和原来一样呢? 关于大人和孩子 所有的大人都曾经是孩子,尽管他们几乎不记得这一点。 大人们永远没有半点独立理解能力,而孩子们又懒得随时随地向他们耐心解释 大人们 ...

  • Cizixs Wu
    Cizixs Wu
4 min read
程序技术 |

Python 编码那些事

似曾相识?如果你经常使用Python的话,对下面这种情况应该很熟悉: UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 1: ordinal not in range(128) 你当然知道这是编码错误,也能根据提醒知道默认的ASCII码无法解析这里的数据,但是却不知道到底为什么会出现这种情况,并且应该怎么解决。那么这篇文章就是为你而准备的,请继续往下读。 认识编码计 ...

  • Cizixs Wu
    Cizixs Wu
8 min read
article |

程序员、黑客、自由即其他

什么是黑客?黑客的英文是hacker,它的本意在维基百科)上如此定义: Hacker, who combines excellence, playfulness, cleverness and exploration in performed activities. 指的是那些做事卓越,方法优雅富有趣味性,并且有很强探索精神的人。在计算机领域的早期,这也是本来黑客的意思,只有真正掌握先进的技术,风格别树一帜的程序员才能成为黑客,比如c语言之父 Dennis Ritchie ...

  • Cizixs Wu
    Cizixs Wu
2 min read