- 博客(60)
- 资源 (3)
- 收藏
- 关注
原创 如何写一个Web服务器
最近两个月的业余时间在写一个私人项目,目的是在Linux下写一个高性能Web服务器,名字叫Zaver。主体框架和基本功能已完成,还有一些高级功能日后会逐渐增加,代码放在了github。Zaver的框架会在代码量尽量少的情况下接近工业水平,而不像一些教科书上的toy server为了教原理而舍弃了很多原本server应该有的东西,在本篇文章中,我将一步步地阐明Zaver的设计方案和开发过程中遇到的困难以及相应的解决方法
2015-05-18 20:07:25 6877 2
原创 Asynchronous vs Nonblocking
在I/O模型中有两个概念特别容易混淆,就是同步和异步(synchronous vs nonsynchronous),阻塞和非阻塞(blocking vs nonblocking)的区别在什么地方。同步非阻塞可能吗,异步阻塞有可能吗? 这几个概念在stevens的《UNIX网络编程(卷一)》6.2节写得很清楚,这里写个总结吧。阻塞I/O最流行的I/O模型就是阻塞模型,如果数据
2014-04-04 13:35:50 1523
原创 知乎爬虫
长久以来一直想解决一个问题,就是知乎上最高赞同的Top10是哪些答案,知乎内部的人可能查一下数据库就可以了,而外部的人只能通过爬虫。可能这个问题对很多人而言意义不是很大,但我一直非常好奇…于是开始写了。在写具体细节之前,先给一个爬的结果吧,截止至2014年3月7号的知乎Top10如下:1. 你觉得自己牛逼在哪里? 18279票2. 精神分裂症患者眼中的世界是什么样的? 15
2014-03-08 15:35:19 6413 4
原创 C++中用函数返回值初始类对象时的一个问题
问题:有一个类,名字是C,假设有一个函数,它的定义为:C func(){ C tmp; return tmp;}即返回C类型的函数,那么考虑表达式C newC = func();将调用几次构造函数?分别是什么类型的构造函数?解答:>里有提到这个过程,首先会创建一个临时的类对象,该对象是由复制构造函数生成,参数是tmp。然后再调用复
2013-08-01 23:32:01 7432 5
原创 什么是可计算理论
这个学期刚好上这门课,此课绝对是CS课程中的神课,需要一定的决心和耐心才能啃下来。这篇文章可以说是一篇科普文,争求通俗易懂。可计算理论是计算理论的一个分支,还有两个分支分别是自动机和计算复杂性。这些名词都顾名思义,自动机讲的是计算的模型,比如图灵机,它是由无限长磁带,读写磁头和一些状态转移序列组成;可计算理论,研究的是一个函数(或程序)是不是能被计算,但是什么叫能被计算呢,
2013-06-28 14:44:01 5514 2
原创 几道关于计数的趣题
1. 用PEPPER的6个字母进行排列,一共有几种不同的排列顺序?这题和传统的排列不同,不是单纯的6!就好了,因为有重复元素,即每一个P和E都是相同的,若给所有字母标上下标,则以下三种排列P1E1P2P3E2R1,P2E1P1P3E2R1和P3E1P2P1E2R1都是相同的,这三种排列只能算是一种情况。所以现在我们要做的就是在6!种排列顺序中,挑出所有不同的排列顺序。对于一种给定的顺序比如说P
2013-06-03 18:20:17 1856
原创 基础排序算法总结
首先要理解的几个概念:1. 在原序列中,若Ri = Rj,且i2. 排序可分为:内排序(数据在内存中)和外排序(数据在外存中)。本文重点在一些内排序的思想。不贴代码和细节考虑。1. 插入排序基本思想:每次都将一个待排序的数据元素,按其关键字大小,插入到前面已排好序的一组数据元素中的适当位置上,直到所有数据插入完成。直接插入排序:适用于少量数据元素的简单方法,复杂度O
2013-02-20 21:01:21 1146
原创 读书摘录(四)
保持快乐的六件事:0.早起1.每日健身2.放松自己3.帮助他人4.学习新技术5.准备多种"赢"的途径五岁时,妈妈告诉我,人生的关键在于快乐。上学后,人们问我长大了要做什么,我写下“快乐”。他们告诉我,我理解错了题目,我告诉他们,他们理解错了人生。——约翰·列侬其实人活着就挺好,至于生命有没有意义另当别论。活着每天都会有太阳升起来,每天都会看到太阳落下
2013-02-08 20:46:36 1252
原创 学期小结5:大三上学期
如果用一个字来概括这一学期,就是累。哪个学期不累呢?紧张的课程,繁忙的实验室使我的心灵和身体同时在旅行着,找不到休息的时间和地方。这个学期我开始刻意做了每日记录,睡前花几分钟的时间,敲下一天的历程和感受。刚刚回看这些记录,一天天的真实感仿佛就在昨天。先来说学习方面:这个学期和上学期一样,保持着高强度的学习。一周的大部分时间都在图书馆或者自习室里,大三活动参加的比
2013-02-08 12:08:20 2034 1
原创 《Algorithms》第8章:NP完全问题 学习笔记
/** 第0~第8章的全部笔记已经整理在http://zjsblog.com/ALGO/index.html* Algorithms 是一本很经典的算法入门书,希望对朋友们有所帮助*/Chapter 8:NP-完全问题8.1 一些搜索问题:搜索问题定义:一个搜索问题是由一个算法C描述的,以问题实例I和一个可能的解S为输入,运行在关于|I|的多项式
2013-02-02 18:31:18 13533 3
原创 《Algorithms》第7章:Linear programming and reductions 学习笔记
Chapter 7:Linear programming and reductions1、任何一个线性规划问题都将涉及一组变量。我们的目的是找出这组变量的某种赋值,使得其同时满足下面两个条件:满足一组由这些变量构成的线性方程或不等式极大或极小化某个给定的线性目标函数2、举例说明:3、通常,目标函数的极值在可行区域的
2013-01-30 20:56:38 2028
原创 USACO Chapter2 The Castle
The CastleIOI'94 - Day 1In a stroke of luck almost beyond imagination, Farmer John was sent a ticket to the Irish Sweepstakes (really a lottery) for his birthday. This ticket turned out to have on
2013-01-10 21:21:27 2254
原创 大二暑期小结
明日开学,进入大三。今天是个周末清闲的下午,能让我好好思考一下这近两个月假期做了什么和新学期的打算。假期从7月14号周六开始到今天9月9日周日结束。受到了李笑来老师《把时间当作朋友》的影响,每天都会写50字左右记录当天做了什么,所以整个暑假回顾起来还算比较轻松。关于学习:通常,早上平均学习3小时左右,前一个月,背单词半小时和看算法,并作了学习笔记;后一个月背单词半小
2012-09-09 16:03:05 3178
原创 我的信息获取途径
我们已经进入了信息爆炸的时代,每天数以万计的新信息出现在网上,但其中很多都是垃圾信息。以前我从来没有认真思考过这个问题,认为有信息总归是好的,谁知道以后有没有用呢,点进去看了再说。然后花费了大量的时间花在了过滤无用的信息上的。举个例子,我以前常上人人网(题外话,调查显示人人网的主要用户是87年~92年出生的学生,人人网在逐渐没落?),休闲五分钟,结果一下子半个小时就过去了,
2012-09-06 19:26:07 5963 3
原创 读书摘录(三)
Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.爬山是为了看世界,而不是为了让世界看见你。所谓成熟,就是以包容之心站在别人的角度看问题。If you
2012-09-04 17:16:30 1649 1
原创 xhtml & css 简易学习笔记(三)
1、Child Selectors.what is a child, what is a parent? for example , is child of , is parent of 例: p > a{ color:red; font-size:30px; }
2012-08-27 17:33:12 1184
转载 酒桌上的计算机网络
酒宴开始。 酒杯盛酒,酒杯碰撞,这是物理层;你要根据不同人的外貌特征找到你要敬酒的人所坐的位置,这是IP协议(网络层);你明白,敬酒的实际目的是加深感情,这在应用层,而这酒中的感情,才是报文的数据部分。 你和某位新见面的兄弟互相来回敬酒,这叫TCP;你给同一位好兄弟敬酒好多次,死命灌他,他也不回礼,这叫UDP;你对全桌的人说,来,咱们
2012-08-22 10:42:41 1281
原创 斐波那契数列的几种计算机解法
斐波那契数列传说起源于一对非常会生的兔子。定义:这个数列有很多奇妙的性质(比如 F(n+1)/F(n) 的极限是黄金分割率),用计算机有效地求解这个问题的解是一个比较有意思的问题,本文一共提供了4种解法。解法一:递归这是最最最直观的想法,是每个人都能编写的简单程序,优点是非常明显的:简单易懂,清晰明了。但是缺点就是效率非常低,时间复杂度是指数级的。举
2012-08-17 18:58:58 8507 4
原创 二分查找 的一些讨论
一、折半查找版本一:递归/*说明:v为数组,low为数组的下界,high为上界,x为需要查找的元素*/int binsearch(int v[],int low, int high, int x){ int mid = (low+high) / 2; if(x == v[mid]) return mid; if(low >= high) return -1;
2012-08-16 19:27:12 1040
原创 xhtml & css 简易学习笔记(二)
1、List:unorder List: apple banana orange pineappleorder List: apple banana orange pineapple2、If xhtml is a core foundation, css is
2012-08-10 18:48:02 1742
原创 读书摘录(二)
人们只能听到自己喜欢听的,只能看到自己喜欢看的。博弈论中的一个关键教训:你需要了解对方的想法。你需要考虑他们知道些什么,是什么在激励着他们,甚至他们是怎么看你的。无论你多努力,你都很有可能完全没有机会做到富有富足。往往只有优秀的人才拥有有效的人脉。专心打造自己,把自己打造成一个优秀的人,一个有用的人,一个独立的人,比什么都重要。很多人拒绝学习,本质上
2012-08-01 19:36:50 894
转载 网关、路由器、DNS 等网络术语的通俗比喻
假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也
2012-07-31 13:18:33 1811
原创 《Algorithms》第6章:Dynamic Programming 学习笔记
本章通过了较多个例子来说明动态规划。1、动态规划问题的特征:最优子结构重叠子问题2、动态规划解决问题的方法就是通过解决很多的小问题而解决大问题。因此,动态规划的效率将取决于两个因素:子问题的数量和子问题的解决效率。实际上,动态规划的时间效率就是:子问题的数量*子问题的时间效率。以下是具体例子:3、有向非循环
2012-07-30 18:43:22 1710
原创 读书摘录(一)
nothing replaces hard work.Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.不能只专注于专业里面的东西,生活是多彩多样的。尼采说:“人们无法理解他没有经历过的事情”。有些东西就在
2012-07-27 20:39:43 2074
转载 ACM入门之新手入门
第一章 新手入门1.ACM国际大学生程序设计竞赛简介1)背景与历史1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕。1977年,该项竞赛被分为两个级别:区域赛和总决赛,这便是现代ACM竞赛的开始。在亚洲、美国、欧洲、太平洋地区均设有区域赛点。1995至1996年,来自世界各地的一千多支s代表队参加了ACM区域竞赛。ACM大学生程
2012-07-20 10:09:38 2722
原创 xhtml & css 简易学习笔记(一)
xhtml和css是用来制作网页的语言。1、推荐编辑软件: Notepad++2、一般格式 ....... ....... 3、给网页加title: xxxxxx
2012-07-19 19:56:09 1806
原创 n个元素进栈,共有多少种出栈顺序?
近日在复习数据结构,看到栈的时候,发现1个元素进栈,有1种出栈顺序;2个元素进栈,有2种出栈顺序;3个元素进栈,有5种出栈顺序,那么一个很自然地问题就是n个元素进栈,共有多少种出栈顺序?说来惭愧,以前学数据结构的时候竟然没有考虑过这个问题。最近在看动态规划,所以“子问题”这3个字一直在我脑中徘徊,于是解决这个问题的时候我也是用类似“子问题”的方法,说白了就是递推公式。我们把
2012-07-18 13:41:28 54387 19
原创 学期小结4:大二下学期
这个学期总算在前天结束了,正常学期加上一个月的小学期真是一个漫长的过程。正好昨天所有分数也都出了,是时候总结一下这半个学期了。这半个学期对我而言影响很大,抽象来讲要面临很多选择,人总是怕选择的,怕选择了错路,怕会后悔。这学期有42学分虽然比上学期多,但明显要比上学期学得轻松了,因为自己适应了这样的节奏,以至于暑假了都闲不下来,整天抱着本计算机网络在看,应该让自己好好放松一下,旅旅游什么的。有一
2012-07-15 20:15:35 2477 1
原创 《Algorithms》第5章:Greedy Algorithms 学习笔记
Chapter 5:Greedy Algorithms1、Greedy algorithms build up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit.2、每步只看眼前效果最好的做法就是
2012-07-12 12:47:14 1647
原创 《Algorithms》第4章:Paths in graphs 学习笔记
Chapter 4:paths in graphs本章讨论寻找最短路径的算法。1、The distance between two nodes is the length of the shortest path between them.2、无权图中,用Breadth-first search寻找单源最短路径的伪码(适合有向和无向):3
2012-07-05 17:35:16 2017
原创 《Algorithms》第3章:Decompositions of graphs 学习笔记
Chapter 3:Decompositions of graphs1、图有什么应用?解决四色问题时,忽略地图中的次要因素,把四色问题抽象成图论问题解决安排考试问题(需要安排最短的时间考完所有的试,假设有一个学生需要参加两场考试,则这两场考试需分不同的时间段),把每门考试抽象为顶点,把需要参加两门考试的学生抽象成边并连接这两个顶点,则这个问题又变成了四色问题。
2012-07-02 19:02:01 1297
原创 《Algorithms》第2章:Divide-and-conquer algorithms 学习笔记
1、2、高斯发现两个复数乘法初看涉及4次实数乘法运算,但实际上可以简化为3次乘法运算。例:(a+bi)(c+di) = ac - bd + (bc+ad)i ,其中bc+ad = (a+b)(c+d) - ac - bd所以只需计算(a+b)(c+d) 、 ac 和 bd。这条原理可以帮助我们实现更好的乘法运算,将n位的x、y分成n/2位长,于是:
2012-06-29 15:28:23 1301
原创 《Algorithms》第1章:Algorithm with numbers 学习笔记
1、二进制乘法的两个算法:这两个算法本质上是一样的。讲到分治的时候,还会介绍新的算法。2、乘法运算、指数模运算、欧几里得最大公约数:3、欧几里得算法的几个引理:if a >= b, then a mod b if d divides both a and b, and d = ax + by for
2012-06-29 15:24:53 1171
原创 《Algorithms》第0章:Prologue 学习笔记
1、算法的时间复杂度是我们选择算法的主导要素,但决不是唯一要素。其它考虑的因素还包括:算法对存储空间的需求、算法实现的难度等等。 2、算法复杂度的表示法:here are some commonsense rules that help simplify function by omitting dominated terms:3、Fibon
2012-06-28 11:48:13 1872
原创 大二暑期学习计划
最近几天一直在捣鼓wordpress,在本机上部署wordpress就遇到了很多麻烦,现在终于成功了,又面临了域名和服务器的问题了。突然想想其实csdn也是很不错的,虽然页面不是那么简洁,广告又那么多,至少没有wordpress那么麻烦,另外用户体验感觉还是不错的。一星期前刚考完,没来得及休息,又得上小学期了(小学期是一种中国大学为了效仿国外大学而采用的一种东施效颦的措施)。小学期相对
2012-06-23 16:57:50 2464 2
原创 一些思考的问题
一天中总会有那么几个时刻在脑海中突然冒出一些奇怪的问题,所以以后我会把一些困惑的问题发到这里。一、交通卡的原理? (先乘地铁,然后在规定时间内乘公交免费 等等措施)自己能不能做出一张交通卡?二、如果把你扔到古代,你怎么做出一台计算机?(没有工业就没有集成电路,就没有PN结、晶体管,就不可能做出来现代计算机的硬件结构,且不能靠电来驱动。那靠什么组成冯诺依曼式计
2012-06-01 16:58:00 1313
转载 抽象代数学习心得
正在学习抽象代数,但不知抽象代数的学习方法和具体的存在意义(虽然老师和我们说抽象代数能解决很多问题,但他还是没有演示给我们看到底如何怎么解决,还停留在一个抽象认识的层面),网上搜索时发现这篇文章,转载分享。 这是我个人的一篇随谈性的文章,目的是和大家一起分享我学习抽象代数的体会。我只是一个刚学完抽象代数没多久的本科生,这篇文章自然谈不上什么含金量。不过我也曾长期处于菜鸟的阶段,也曾经苦闷过
2012-05-12 20:17:06 14257
转载 泰勒公式与人生
我特别喜欢由数学上升到哲学的文章,转来分享。 如果一个函数如果可以用等号后面的东西表示出来的话,那么这个函数就是说,可以用泰勒展开式的方法展开来的。 在人类历史上,人类对泰勒展开式的兴趣之所以那么高,完完全全是因为(x-a)的n次方,(x-a)的n次方是多项式,多项式是当时人类最熟悉的函数形式之一。 但是在比较高等的数学里,我们有兴趣的完完全全是f(x)在a处的n阶导数这一项。
2012-04-21 13:46:54 3283 1
原创 2012/4/2 近期小结
精神紧绷大概忙了大约有3个星期左右的时间,今日放假,稍稍回顾一下吧: 操作系统课程设计:花了大部分的时间,前几个星期晚上一直和君弢在图书馆或东中院钻研,经过长时间的查阅资料,终于完成了老师布置的project。其中有一个题目是自己写一个shell,能处理所有命令,并把shell写成一个server。我竟然做了好久好久。当时实在没什么经验,现在回想起来,正是这些查阅资料的过程,使我对li
2012-04-02 23:28:26 989
原创 用python写的图形计算器
和同学一起写的。时间紧,写得不太好,勿喷,其中有好几百行的重复代码看得自己都不好意思。 一、使用说明及运行效果:运行程序后首先进入功能选择界面,如图: 分别指引四个功能区。 1.第一部分:基本运算部分(BasicOperation)主界面如图:除基本运算外,可计算三角函数、双曲函数及其反函数等。运算示例如下。 2.第二部
2012-02-22 13:45:27 6783 43
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人