自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kerwin's Blog

一直在路上。。。

  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

转载 世界是数字的重点读书笔记(计算机科普知识)

《世界是数字的》是世界顶尖计算机科学家Brian W.Kernighan写的一本计算机科普类读物,简明扼要但又深入全面地解释了计算机和通信系统背后的秘密,适合计算机初学者和非计算机专业的人读。这真的是一本好书,借Google常务董事长的话:对计算机、互联网及其背后的奥秘充满好奇的人们,这绝对是一本不容错过的好书。对于一个计算机已经学了N年的专业人士来说,这本书也许简单了点,

2014-12-23 19:03:12 905

转载 高性能IO模型浅析

服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(3)IO多路复用(IO Multiplexi

2014-12-16 22:12:43 538

转载 基于用户投票的排名算法

目录  基于用户投票的排名算法(一):Delicious和Hacker News  基于用户投票的排名算法(二):Reddit  基于用户投票的排名算法(三):Stack Overflow  基于用户投票的排名算法(四):牛顿冷却定律  基于用户投票的排名算法(五):威尔逊区间  基于用户投票的排名算法(六):贝叶斯平均  基于用户投票的排名算法(一):

2014-10-30 09:05:24 1681

原创 nodejs以及javascript经典书籍以及源代码打包下载

链接: http://pan.baidu.com/s/1dDd6VOP 密码: 2a7j

2014-07-22 17:38:23 1067

原创 长连接与短连接

TCP的长连接与短连接以及HTTP的长连接与短连接TCP的长连接与短连接当采用TCP协议进行网络通信时,整体过程包括三个部分,1、client与server之间连接的建立;2、client与server之间数据交互;3、client与server之间连接的关闭。连接建立就是经典的三次握手而连接的关闭需要四次握手,连接的建立与关闭都是需要消耗资源和时间的。TCP短连接是说:client向

2014-06-19 17:51:34 745

转载 变量声明与定义,小心别采坑

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:    变量的声明有两种情况:    (1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。     (2) 另一种是不需要建立存储空间的(声明)。例如:extern int

2014-06-06 10:24:19 650

转载 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧

转载自:http://zhuanlan.zhihu.com/wille/19759362

2014-05-29 09:02:53 673

转载 基于用户投票的排名算法(一):Delicious和Hacker News

互联网的出现,意味着"信息大爆炸"。用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。各种各样的排名算法,是目前过滤信息的主要手段之一。对信息进行排名,意味着将信息按照重要性依次排列,并且及时进行更新。排列的依据,可以基于信息本身的特征,也可以基于用户的投票,即让用户决定,什么样的信息可以排在第一位。

2014-05-12 10:40:56 610

原创 【C++再学习】【09】static、const与类

1、类的const数据成员在类内部,const数据成员代表在对象的生命周期内该数据成员不可更改,也就是说这个const修饰的是该对象的一个数据,它是属于对象的,只有在该对象的有效期内起作用。const数据成员不能在类声明时赋初值只能放到构造函数初始化列表中进行,这是因为我们知道const数据只能在被创建时初始化而不能被重新赋值,又由于构造函数体是在对象创建完毕之后调用的函数,所以只有在创建

2014-05-04 21:20:49 719

转载 C++程序组织:.h .cpp与分离式编译

转载自:http://blog.csdn.net/pongba/article/details/19130为什么C++编译器不能支持对模板的分离式编译 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文

2014-05-04 17:02:19 2345

原创 【C++再学习】【08】编译时与运行时

(一)首先来看看const常量相关的编译时与运行时:C++ const常量不同于有些语言,可以是编译时常量,也可以是运行时常量。int func(){int x=0,y=1;return x+y;}int main(){const int i = 0;int * p = (int *)&i;*p =1;int j = *p; const int 

2014-05-04 14:41:42 2071

原创 【C++再学习】【07】自增自减操作符背后的秘密

首先来看一个问题:Y=i++;Y=++i;上边两行语句我们要讨论的问题就是Y是否一样,可能大家都知道结果,但是我还是要说说这其中的道理,因为i++和++i都是表达式,表达式都是有值的,而前增量和后增量的结果是不同的。++i是先去做i=i+1,然后再把i作为表达式的结果;而i++是先把i作为表达式的结果,然后再去做i=i+1。当两种情况作为单独的完整表达式时,效果是一样没什么区别

2014-04-28 11:34:26 1133

原创 【C++再学习】【06】程序以及对象在内存中的布局

首先介绍一下最基本的常识,C++程序占用的内存空间布局情况:1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。2、堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。3、全局区(static):也叫静态数据内存空间,存储

2014-04-18 17:31:53 810

原创 【C++再学习】【05】有关类的一些知识点整理

l 只有在没有自定义的任何构造函数的情况下,编译器才会提供默认构造函数,如果程序员有为类设计了构造函数,那么程序员也必须提供默认构造函数。如果不提供,像这种声明将会是非法的:Person ligang; l 注意如果类的成员函数不需要修改调用对象,那么就尽量将其设计成const成员函数,格式是在函数的最后加上const关键字,例如:char* Person::getName( ) co

2014-04-16 17:30:17 661

原创 【C++再学习】【04】宏与内联函数共同点与不同点

先把宏和内联函数的例子搬上来:    #define square(x) (x*x)     inline int square(int x)   {    return x*x;} 先直接上结论:共同点:由于每次函数调用会有一定的时间和空间开销,如果程序里需要频繁调用某个函数,这样就会带来大量开销,宏和内联函数可以直接替换程序中的函数调用,从而减少开销。不

2014-04-14 17:03:48 1118

原创 【C++再学习】【03】函数形参实参与值传递引用传递新解

一开始没觉得这部分还需要整理一下,仔细看过书之后发现还有点意思,所以整理记录下来。根据传递方法的不同分成两大类整理,分别为继承自C的值传递以及C++新增的引用传递。一、值传递先看两行再简单不过的代码:int a = 10;int b = a;这是用一个变量去给另一个变量赋值的代码,经过这种赋值后b可以随便改变自己的值,但是不影响a的值,我想说的是:函数的值传递方式的本质就是变量

2014-04-13 11:43:46 1568

原创 【C++再学习】【02】C部分一些整理

希望对象执行某种动作,需要向对象“发送”消息,C++提供了两种方式,一种方式是使用对象所属类中定义的方法,另一种方式是重新定义操作符。再整理一下C++基本整型:char、short、int、long,每种类型又分有符号版本和无符号版本,所以一共有8中整数类型。关于他们的长度,不同的系统可能会不同,但是C++有一个标准:short至少16位;int至少与short一样长;long至少32位,且至

2014-04-10 21:45:21 729

原创 【C++再学习】【01】新的开始

首先解释一下为什么叫C++再学习,本人科班出身,本科的时候主要学的语言就是C++,但是没用C++干过什么有意义的事,到现在也忘得差不多了,现在是时候好好重新再学习一下了,就准备写这样一个系列,记录下自己再学习过程中的一些理解,方便日后温习也省的再看几百页的书,同时把这样一个历程记录下来,相信以后回忆这段时光会很有意思。既然是再学习,所以可能很多比较简单没意思的东西就不会写了,尽量记录那些很容易忘记

2014-04-09 21:36:30 888

原创 大端(big endian)、小端(little endian)问题

可能在比较偏上层的程序编写过程中,一般不会遇到大端小端问题,因为都已经被抽象好了,而在编写比较底层一些的程序时,就要考虑大端小端问题。大端小端问题的本质就是字节序问题,说到字节序,就要提到两大CPU体系,Motorola的PowerPC系列以及Intel的x86系列,一般PowerPC系列采用的big endian而x86系列采用的是little endian。这两种模式有什么区别呢?很简

2014-04-09 10:41:32 920

转载 程序员/设计师能用上的 75 份速查表

75 份速查表,由 vikas 收集整理,包括:jQuery、HTML、HTML5、CSS、CSS3、JavaScript、Photoshop 、git、Linux、Java、Perl、PHP、Python、Ruby、Ruby on Rails、Scala、C#、SQLite、C++、C语言、Ubuntu、WordPress、Node.js、Oracle、NMAP、Mac OS X、Has

2014-04-06 09:47:55 1410

转载 大转折:互联时代的商业与管理重构

有正确的认识,才有助于正确的行动!所以,我们需要回答的第一个问题是:如何透过迷雾,把握住互联网精神的本质。但正确的认识,也仅仅是一个起点,还必须能够将“互联网精神”这个名词化为动词。这是我们需要回答的第二个问题:如何以互联网精神驱动商业与管理的重构。下面,我们依次探讨这两个问题。 互联网精神的本质互联网带来的最大变化是什么?信息的爆炸、开放与分享。在PC时代,信息的

2014-04-01 21:56:28 1911

原创 由香农定理看数据压缩的本质

开门见山上结论:所谓的压缩就是在不损失信息量的前提下,用新的描述方式表示原有的数据,而这种方式占用的空间更少。        先来个小例子:有一段文字“我我我我我我有点喜欢喜欢喜欢喜欢xlxlxlxlxlxlxl”一共14个汉字加上14个字符,现在采用某种压缩算法,将其压缩为这样一种形式“6个我1个有点4个喜欢7个xl”一共9个汉字加上6个字符(包括数字跟字母),显然,总的空间变小了,这就是数

2014-04-01 10:40:17 5031

原创 尾递归的本质

先直接上两个例子:求n的阶乘,仔细观察对比一下例子1:int fact(int n){ if(n<0) return 0; else if(n ==0 || n==1) return 1; return n * fact(n-1);}例子2:int fact(int n){ return

2014-03-29 11:38:56 1294

原创 字符数组、字符串与string问题与应用

一、简单介绍相关问题      声明一下,我们从C风格和C++风格来分类讨论字符串问题。      首先说一说C语言中的字符数组与字符串它们所表现的不同点问题:      char str[7] = {‘n’,’i’,’h’,’a’,’o’}      char str[5] = {‘n’,’i’,’h’,’a’,’o’}      char str[] = {“nihao”}

2014-03-28 17:55:35 1032

原创 计算机世界中的编码问题

我们知道,计算机的世界是二进制的世界,无论是在硬盘中还是在内存中,都是0跟1的组合,我们作为人要想更好的与计算机进行交互,一个很重要的问题就是信息的展示,如果是数字,还好理解,仅仅需要把二进制的01转换成十进制就行了,但是我们这个世界信息的显示除了数字还有更重要的一部分就是字符或者说是文字,这些字符或者文字与二进制01之间的转换就是我们所说的编码问题。      编码就相当于是大家约定的一种规

2014-03-27 19:18:54 1391

转载 改变计算技术的伟大算法(带动画演示)

http://blog.jobbole.com/61815/在过去,很多巧妙的计算机算法设计,改变了我们的计算技术。通过操作标准计算机中提供的中间运算符,可以产生很多的高效函数。这些函数导致了计算机程序的复杂性和多样性,这也是今天计算机时代快速发展的重要原因。如下所示,我们列举了一些算法,它们改变了我们的计算机使用。压缩技术哈弗曼编码哈弗曼编码在无损数据压缩中广泛应用。为了

2014-03-20 21:11:01 1008

原创 迷惑解答之C语言回调函数

开门见山直接上结论:回调函数就是函数指针变量(不明白的可以看我上一篇博文)作为另外一个函数的参数而使用的一种应用情形。先来个例子看一看:void fun1(int a,int b){ printf("This is fun1 and parameter is %d ,%d",a,b);}void myCallbackFun(void (* fun)(int,i

2014-03-20 16:00:13 657

原创 迷惑解答之typedef函数指针

先来看看什么是函数指针,直接上例子:void  (*pFun )(int ,int);void  fun1(int a,int b){.......}void main(){pFun=fun1;pFun(2,2);}void (*pFun )(int ,int);void fun1(int a,int b){.......}voi

2014-03-19 18:40:20 735

原创 多个目录频繁切换小技巧之pushd与popd命令

单个目录一次性切换我们可以使用cd命令,同时使用cd - 命令我们可以回到前一个目录,但是有时候会有这样的需求,我们需要在多个目录之间经常频繁的切换,而目录又很长很复杂,如果使用cd命令会感觉很繁琐,下边介绍的几个命令或许很给力。pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中,如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换popd: 弹出堆

2014-03-18 11:29:01 975

原创 迷惑解答之文本文件VS二进制文件

开门见山亮出重点:一切文件都是二进制文件为什么这么说,因为文件一般都是存储在磁盘介质上的,从磁盘的角度看存储都是010101这样的二进制级别的东西,不存在说是有文本直接存到磁盘上,所以可以说文本文件只是上层的表现形式,最终的文件形式都是二进制的。但是,我们可以考虑这样一个情况,如果一个文件里边的所有0101序列可以根据字符编码翻译成字符序列(包括可打印的字符以及空白字符等),这个文件是不是

2014-03-17 20:11:33 2720

原创 迷惑解答之正则表达式与通配符

我们在写shell语句的时候经常会用到*这个符号,可能大家很快会想到的就是正则表达式,但是实际上我们被迷惑了,因为还有一个术语“通配符”也是跟*有关的,下边先直接上核心内容,简单粗暴明了。        1、通配符一般常用在文件名上,它是由shell本身来解析的,也就是说的特殊涵义是由shell这个命令解释器赋予的,比如直接在shell中输入命令语句:            ls /etc

2014-03-14 11:25:40 885

原创 ldconfig功能以及常见用法简介

功能简介:        ldconfig是一个动态链接库管理命令,该命令主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

2014-03-14 10:46:30 2189 1

转载 互联网个人小额理财

互联网时代造就了很多新的事物,这其中就包括互联网理财,有一些是跟技术紧密相关的,比如说P2P投资理财平台        http://jingwentian.com/t-84        » 低风险互联网理财          • 余额宝 年化收益率: 6%左右 (持续在5%-6%之间)          • 微信理财通 年化收益跟余额宝差不多          • 百度理财

2014-03-11 10:18:34 2587

原创 正则表达式 流派(flavor)及差异简介

在使用正则表达式的过程中,大家可能会注意到不同的工具里边正则表达式的语法貌似有些不一样,不同的语言支持的正则表达式语法也会有一些不同,其实出现这些情况的根本原因就是存在几大流派,它们之间存在一些差别。一、流派介绍正则表达式简单来说有三大流派:PCRE、BRE、EREPCRE(Perl Compatible Regular Expression):可以说是正则表达式的老前辈,它是从Per

2014-03-07 11:55:14 2013

原创 Shell中基于数组的栈模拟实现

1、Shell数组基本操作    1)数组定义及初始化         array=(1 2 3)# 注意用空格将各个元素分开而不是逗号或者分号;        另外还可直接赋值实现初始化:        array[0]=1        array[1]=2        array[2]=3    2)数组长度获取        Echo “the lengt

2014-03-05 17:37:48 1174

原创 Shell最全大括号{}、中括号[]、小括号()用法实例

1、大括号{ }用法实例1)纯{ }用法拓展功能:例如:ls {name1,name2}.sh ;touch {1..3}.sh代码组织功能:例如:多条命令在当前shell中执行 { cmd1;cmd2;cmd3;},注意cmd1与{之间有空格,cmd3后边有;2)$结合{ }用法取值拓展功能:例如:var=dreamer;echo ${var}way 此条语句输出drea

2014-03-04 20:04:57 17283

原创 Shell中的空格(space)的“必须有”与“不能有”

“空格”之“必须有”情况    1)条件测试语句中[ ]符号左右两边:        if [ $var = my ];then            .....        fi    2)字符串比较中比较符号左右两边:        if [ $str != string1 ];then            ......        fi    3

2014-03-04 11:23:27 1515

原创 推荐跟Shell有关的有意思网站

向大家推荐几个跟shell有关的有意思网站:http://www.explainshell.com/这个网站提供了一个输入框,可以输入一行shell语句,按Enter后网站后台将会解析输入的语句,很详细,每个选项参数都有解释。我试了一个例子:tar -xzvf example.tar.gz结果如下:http://www.shellcheck.net/这个网站主要是分析s

2014-03-03 21:09:43 949

原创 Shell中空格、双引号与Word Splitting、Double quoting扫盲介绍

在编写shell脚本的过程中,经常遇见跟空格以及双引号相关的问题

2014-03-03 17:39:19 1785

转载 一天能学会的计算机技术

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在Quora中看到一个有趣的问题,题目是"What are some useful computer related technical skills I can learn within a day?",哪些有用的计算机技术,是一天能够学会的?后面的回答很高质量,

2014-03-03 10:23:04 734

Centos6.3下rsync+inotify安装配置

Centos6.3环境下配置文件系统同步更新,主要是用rsync和inotify机制实现

2014-03-07

Spark版本更新信息整理

Spark版本更新情况整理,有利于大家分析Spark的发展历程,并且可以分析Spark需要完善的方向有哪些

2014-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除