自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

果冻虾仁

公众号:编程往事

  • 博客(210)
  • 资源 (9)
  • 收藏
  • 关注

原创 C++后台实践:古老的CGI与Web开发

本文写给C/C++程序猿,也适合其他对历史感兴趣的程序猿。  谈到web开发,大家首先想到的PHP、JavaEE/JSP、.NET/ASP、Ruby on rails、Python的Django等等。可谓百花齐放,你一般不会想到C++和Web开发有什么关系,但其实动态网页的开发(web开发)可是在动态语言发明之前就存在的了。在天地初开,混沌未分之时,动态网页语言尚未出世,要实现动态网站依赖的就是CGI。谷歌/百度一下CGI,可能会出现很多名词:CGI脚本、CGI程序、CGI标准等等。其实这些都是站在不同角

2016-01-25 17:00:03 18135 2

原创 我的2015:感悟篇

就业呢,是个亘古不变的话题,对大学生而言尤其如此。无论你是大一大二也好,无论你是大三大四也好。无论你以后是否读研也好,你始终都是要就业的。关于就业呢,首先要谈的是择业。 理想状态下,择业问题对于大部分毕业生而言归根结底就三个:1. 从事自己喜欢的工作 2. 从事高薪的工作 3.去名企。说白了就是情怀、钱和逼格。       2015年你问我什么概念最火,我会说:“互联网+”。如果你再让我说具体一点,我会说:O2O和互联网金融。如果你是在2014年底问我这句话的话,我可能回答的是O2O和互联

2016-01-21 15:14:21 2775 1

原创 我的2015:行走篇

“2015前程似锦”这是2015年年初的时候我发的一句说说。这一年委实经历了很多,也成长了很多。即遭受过苦难,也享受过喜悦。开拓了视野,进一步清晰了目标。上个学期末的时候,就想好好写写自己的故事了,但是那段时间太忙,期末,然后课设,然后马不停蹄地跑到深圳开始实行。这后来也曾数度提笔,虽胸有千言,然终不成文。终于攒了一年的故事才发一篇。

2016-01-12 22:39:16 2694 2

原创 决胜C++面试:堆、栈面面观

学习C语言,我们都听过堆(heap)和栈(stack)的概念。需要注意的是:有些地方“堆栈”这个词特指的是栈,而不是堆和栈。命名约定:本文中堆栈一次出现的地方,指的是两种东西,而非一种。        在数据结构中,我们也听过栈和堆这两种数据结构,当然和我本文要讲的东西是不同的概念。不过数据结构中的栈(算法、数学意义上的一种抽象),和本文中的栈(实际存在的存储区)有一共同之处就是FILO ——

2015-10-11 23:00:04 2993

原创 详解Redis源码中的部分快速排序算法(pqsort.c)

看标题,你可能会疑惑:咦?你这家伙,怎么不讲解完整的快排,只讲一部分快排……其实“部分快排”是算法的名字。本文几乎与普通快排无异。看懂了本文,你对普通的快排也会有更深的认识了,实际上本文相当详细呢 快速排序算法(qsort)的原理我们大都应该了解。但你真的了解如何高效实现一个快排吗?

2015-06-07 19:08:39 7656 1

原创 Redis源码中探秘SHA-1算法原理及其编程实现

SHA-1算法是第一代“安全散列算法”的缩写,其本质就是一个Hash算法。SHA系列标准主要用于数字签名,生成消息摘要,曾被认为是MD5算法的后继者。如今SHA家族已经出现了5个算法。Redis使用的是SHA-1,它能将一个最大264比特的消息,转换成一串160位的消息摘要,并能保证任何两组不同的消息产生的消息摘要是不同的。Redis的sha1.c文件实现了这一算法,但该文件源码实际上是出自Valgrind项目的/tests/sha1_test.c文件(可以看出开源的强大之处:取之于民,用之于民)

2015-04-28 21:19:55 6029 1

原创 2015腾讯暑期实习武汉站面试经历

不得不吐槽一下腾讯的面试短信。在面试前一天(13号)晚上十点半才收到,通知14号下面四点面试。我赶紧去楼下打印了两份简历。第二天坐上十点半的动车从南昌触发去武汉了。细节不表了。下面给大家讲讲一下我的经历:一个无项目经验的非著名大学的本科生是如何获得腾讯实习offer的。

2015-04-24 19:09:56 6518 4

原创 Redis源码中看伪随机数生成算法

Redis源码中有一个rand.c的源文件,很明显这是一个和(伪)随机数有关的文件。细看该文件代码只有寥寥50行,不过涉及到的算法原理却不简单,读起来虽然有些晦涩,但对于深入理解48位空间中的伪随机数算法是不可多得的范本。作者在该文件的注释中写道:这个伪随机数生成函数是从pysam源码中的drand48()派生过来的。关于pysam是什么项目,并不是重点,其实很多Unix系统中都存在drand48这个函数(SVr4,POSIX.1-2001),我们可在终端中man一下drand48。 可以看

2015-04-05 14:51:09 5752 1

原创 Redis内存管理的基石zmallc.c源码解读(附录):源码结构表

前面两篇博文,细致地介绍了zmalloc.c文件的各个函数,不过大家要想深入学习Redis,还需要自己去看源码才是,我梳理了一下zmalloc.c文件的结构,为大家阅读源码提供便利

2015-04-01 17:45:32 2542

原创 Redis内存管理的基石zmallc.c源码解读(二)

上一篇博文中,我介绍了zmalloc.c文件中几个常用的函数,接下来给大家介绍一下该文件中的其他函数,其实本文中的很多函数要比上一篇文章中的函数要更有趣的,但也更难,并且涉及到很多操作系统的知识。对操作系统,内存分配的底层原理感兴趣的童鞋不容错过。前面几个函数比较简单,一笔带过,后面几个是学习的重点。

2015-04-01 17:04:56 3356

原创 Redis内存管理的基石zmallc.c源码解读(一)

当我第一次阅读了这个文件的源码的时候,我笑了,因为我忽然想起前几周阿里电话二面的时候,问到了自定义内存管理函数并涉及8字节对齐问题。当时无言以对,在面试官无数次的提示下才答了出来,结果显而易见,挂掉了二面。而这份源码中函数zmalloc()和zfree()的设计思路和实现原理,正是面试官想要的答案。本文详细介绍该文件下几个主要函数:zmalloc()、zfree()、zcalloc()、zrealloc()、zstrdup()的源码。

2015-03-31 09:43:18 11242 3

原创 Redis源码中的CRC校验码(crc16、crc64)原理浅析

在阅读Redis源码的时候,看到了两个文件:crc16.c、crc64.c。下面我抛砖引玉,简析一下原理。 CRC即循环冗余校验码,是信息系统中一种常见的检错码。大学课程中的“计算机网络”、“计算机组成”等课程中都有提及。我们可能都了解它的数学原理,在试卷上手工计算一个CRC校验码,并不是难事。但是计算机不是人,现实世界中的数学原理需要转化为计算机算法才能实现目的。实际上作为计算机专业背景人并不会经常使用或接触到CRC的计算机算法实现的原理,通常是电子学科背景的人士会接触的比较多点。计算机当

2015-03-29 21:44:13 26667

原创 恒生电子2015春季校招笔试题

题目皆为不定项选择题,都选对为4分,选不全为2分,选错一个0分。1、 对于 int *pa[5]; 的描述,正确的是()A. pa是一个指向数组的指针,所指向的数组是5个int型元素B. pa是一个指向某个数组第5个元素的指针,该元素是int型变量C. pa[5]表示某个数组的第5个元素的值D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针---------

2015-03-23 08:42:00 10944 2

原创 记一次阿里电面经历

昨天下午(3/19)三点多钟,接到了一个杭州的电话,是阿里的。问我是否方便聊聊,我说我在上课,四点下课。然后他就四点多钟的时候又打了一次过来。项目经历上来就问我有无大型项目的经历,不好意思,我说无。。。又问我代码量如何,我说之前有经常刷ACM的题目,所以代码量还可以。C语言变量问:“函数中的局部变量保存在哪里?”答:“栈”问:“函数中的局部静态变量保存在哪里?”答:“...

2015-03-20 14:43:16 3220 1

原创 System V三种IPC编程巧学巧记

System V(“系统五”)系统上发明了三种IPC机制(消息队列、信号量和共享内存),通常称为System V IPC。C语言是一门面向过程的语言,与OO语言不同,它没有做到数据和操作的封装。因此在编写C语言程序的时候暴露在你面前的是一大堆函数。由于缺少OO的那层抽象,增加了记忆时的复杂度,因此如果你对函数分不清的话,常常会使你在编程的时候焦头烂额。本文不会详实地介绍各个函数的参数、返回值等等这些细节,本文的目的是帮助你打通三种IPC之间关系的任督二脉,从而强化理解,减轻记忆难度。看了本文希望您也能引申

2015-02-19 16:07:49 4950

原创 菜鸟运维笔记:编写crontab计划任务

管理主机的时候,我们每天有些事情是经常要做的,为了避免每次都手工操作,我们可以编写计划任务,来让主机周期性地按照计划来自动执行。安装启动CentOS下:yum install vixie-cronyum install crontabs安装前者一般会同样安装上后者。 启动服务。 service crond start要启动该服务才行。用ls /etc/cron然后敲两下TAB...

2015-02-13 11:59:26 3300

原创 virtualbox中配置CentOS的本地磁盘镜像作为其软件源

CentOS有yum软件源的概念,即在终端通过命令可以直接从软件源下载软件并安装。除了网络上的软件源外,也可以使用下载好的CentOS镜像作为软件源。它包含了大部分常用软件。因为很多人是在虚拟机里配置Linux的,所以这里介绍一些如如何在virtualbox中配置CentOS本地磁盘镜像作为其软件源。学会了这个,即使不是虚拟机,是在实体机上安装的CentOS,你也会配置你光驱里的磁盘作为软件源了

2015-02-05 18:54:23 6064

原创 玩转Bash脚本:循环结构之while循环

和其他语言一样Bash的循环结构中也有while语句。它的基本结构为 while 条件;do 循环体;done 和其他语言不同的是,bash脚本中的while条件很丰富,可以是方括号[]就像if那样的条件,也可以是终端的命令作为条件。bash的死循环结构十分简洁不用while(1)不用while(true),只要while :。此外bash的while还能和重定向符号>和<联用。怎么样,有趣吧。

2015-01-31 16:27:56 122731 2

原创 编写C语言跨平台函数(以清屏和休眠函数为例)

支持C语言的平台有许多,常见的编译器如VC、gcc、Clang等。不同的编译器共同点是都支持标准C(ANSI C),但是各自却又有自己独立的、平台相关的功能以及函数接口。这通常为程序的移植性带来很多问题。比如清屏函数,Windows里面我们调用System("cls");而Linux下这段代码不能使用。还有休眠,Linux下有sleep函数,它的粒度是秒,usleep函数它的粒度是微妙。Windows下休眠函数Sleep,它的粒度是毫秒。

2015-01-08 18:44:11 6791

原创 我的2014:迭代的岁月,重构的人生

不破不立,破而后立。又是一年,过去了,回望去年的“我的2013”征文活动还历历在目。如今又到时间给2014做个总结了。这一年,我深刻体会了,不破不立,破而后立的概念。拿技术来说,2013的时候,上半年我用的语言是C,在钻研数据结构和算法,下半年的时候,用的语言是Java,学习Android的app制作。2014开始的时候,我以为我以后就是个Java程序员了。但是谁知世事无常,未来的发展,总是你我所不能预料的。

2015-01-05 15:00:10 4460 8

原创 玩转Bash脚本:循环结构之for循环

暌违多日。为大家奉上《玩转Bash脚本》系列的第7篇,这次我来介绍一下Shell脚本中循环结构里面的for循环。shell脚本除了自身风格的for循环外,还支持C语言风格的for循环哦

2014-12-13 19:56:09 62343

原创 菜鸟运维笔记:配置Apache二级域名及WWW访问

介绍Apache下二级域名的配置方案。其实配置域名的www访问和二级域名访问是一个道理的

2014-11-19 19:00:14 5483

原创 菜鸟运维笔记:小记编译安装Nginx所遇到的坑

不管是CentOS,或是Debian/Ubuntu,甚至是Windows。Nginx都有已编译好的安装包可用。通常只需要在终端上潇洒地输入apt-get install ...或是yum install ..就可以了。但是对于我这个源码编译狂来说,那样一键安装,显然无法满足我心理需求。当然了,编译源码肯定会遇到各种坑的,我给各位看官一一道来。

2014-11-09 15:35:13 13555

原创 Java拾遗

问题一:子类何时调用父类的构造方法问题二:静态成员可以被this引用吗问题三:静态成员会被默认初始化吗问题四:接口中的方法能动态绑定吗

2014-11-03 17:46:16 1700 1

原创 菜鸟运维笔记:安装MySQL,PHP及phpMyAdmin

LAMP经典架构。之前的博文中介绍了Apache的安装。这次我们介绍MYSQL,PHP,phpMyAdmin的安装。。。喜欢一键安装包的网友,请无视此文。

2014-11-01 22:58:07 12130 4

原创 菜鸟运维笔记:Windows上用Xshell管理你的云主机

Windows下登录远程主机。有很多选择方案,这里我介绍一下Xshell。除了基本的配置外,还介绍了关于改变主机的目录颜色的方法,还有弥补Xshell的不足,自定义快捷键Alt和. 使之能完成自动补全上一个命令的最后一个参数的功能。最后还介绍了一下关于配置免用户名和密码,用SSH公钥登录的方法,这是一种安全的做法。

2014-10-30 13:28:26 11884

原创 菜鸟运维笔记:安装与配置Apache服务器

前几天在在阿里花了49.5买了一个月的主机。安装apache服务器apache下载压缩包http://mirrors.hust.edu.cn/apache/httpd/下载最新的版本吧,有*.gz和*.bz2的。bz2算法压缩的文件更小一点,不过这个文件也不大,差不多。通过ftp上传两个下载好的文件到服务器......配置过程中可能出现很多问题,一一解决

2014-10-27 22:57:06 3132

原创 玩转Bash脚本:数值计算

Bash中的数学运算并不如其他语言般简便,因为Bash把所有变量都视作字符串,所以a=1+2,a并不等于3,而是等于字符串1+2。为了解决这一问题,有如下几种方案。$[ ],$(()) ,expr,bc,let

2014-10-22 11:36:55 29311 1

原创 玩转Bash脚本:选择结构之case

之前讲过if结构,本文讲到了bash脚本选择结构中的case语句,本以为case内容不多。然而在写作过程中才发现,可以写的内容这么多。包括一些不常见的用法,比如用 ;& 或 ;;&来代替;; 结束一个条件。还有条件中(也就是右括号里面)支持的正则表达式,*、?、[ ]、()。还有POSIX的字符类。

2014-10-05 12:32:34 21377

原创 玩转Bash脚本:特殊变量

在前面博文中我讲过了变量基础部分《变量基本概念及其初始化》。我们知道假如我们有初始化一个变量a=hello,那么如果我们想打印它的值,我们需要使用echo $a。但是除此之外还有很多特殊的变量,可供 $ 使用。本文讲到了$0 # * @ _ ? ! -这几个特殊变量的含义。脚本的参数正如同C语言中有main(int argc,char **argv),Java中有main(String[]args)一样,Bash同样能对执行脚本时附加的参数做操作。

2014-09-25 20:56:07 4023

原创 玩转Bash脚本:选择结构之if

几乎所有的编程语言中都有流程控制的概念,即顺序结构、选择结构和循环结构。选择结构也称分支结构,比如C类语言中的 if 和 switch语句。if的条件前面我已经讲过了test表达式及其简化版 [ ] 运算符的使用,这些判断的语句即可作为if结构的条件。Bash shell中我们可以使用的任何能够有真假判断功能的命令(无论是内部命令,还是外部命令)都可以作为判断的条件。

2014-09-17 09:42:54 4203

原创 hdu1559,1081最大子矩阵和的两种题型

最大子矩阵是一种典型的dp问题。某种程度上说是最大连续子序列和问题的扩展。这里选取了两个HDU上的最大子矩阵和问题来解读。

2014-08-13 15:22:01 2294

原创 hdu1159 LCS模板题

LCS最长公共子序列模板题。。

2014-08-06 22:41:36 1816

原创 玩转Bash脚本:变量基本概念及其初始化

与其他语言不同的是Bash属于无类型语言,如果强要说一种类型,可以认为都是字符串。本文介绍Bash变量基本概念以及初始化的三种方式。另外还有赋随机值的方法。

2014-08-06 17:26:05 8385

原创 hdu1243 最长公共子序列(LCS)

这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值。架构还是不变的。可作为LCS问题的模板题。时间复杂度O(N^2)。注意题目中的字母都是小写字母,也就是只有26种字符。不需要开太大的数组。所以hash就是很好的一种保存权值的方法。另外吐槽一下。子弹序列和恐怖分子序列的长度太坑了,因为题目没有给出长度。我开了个2000个数组,wa了n次。改成2005就AC了。

2014-08-06 12:24:24 2610

原创 玩转Bash脚本:test测试语句

之前写的这篇博文,最近发现讹误太多,又被多家网站(比如推酷,51CTO)转载过了。为避免误人子弟,贻害苍生。今特此更正:关于真值的讨论,尤其关于test测试字符串时的一些错误。还有莫名其妙的 -n 选项。 并且更改了排版。test就是测试的意思,常用在流程控制语句中作为条件。本文涉及test用于整数,字符串,文件比较时的一些选项。还有test的简化版 [ ]的一些介绍。

2014-08-05 10:26:06 7159

原创 hdu1087最长递增子序列

简单dp题,LIS。不同之处是这里要求得的不是最长的子序列,而是权重和最长的子序列。其实大同小异。状态数组就是到达每个位置的最大权重。LIS问题常用解法就是两个: 人人为我 我为人人

2014-08-03 23:07:24 2102

原创 hdu1257 LIS模板题*

原题地址

2014-08-03 19:35:30 1650

翻译 开发婚恋交友类网站的13条军规

现在在线婚恋交友行业成了社会最大的经济来源之一。几乎零成本就能赚到钱,当然了,这个“零”比你想象的要多一点点——你需要为今后的工作搭建一个完美的网站。你可能会想什么才是完美的网站呢?现在我就来为您详解这类网站最有价值的构成要素,还会为您精确解读开发过程中的每个阶段,所以请不要错过这篇文章的任何一个字!如何创造一个优秀的婚恋网站1.做一个竞争力的调查在每一片商业红海竞争都极其惨烈,这

2014-07-28 21:42:16 4244

原创 为网站翻译各类文章汇总

2014Oracle Linux 7.0发布

2014-07-25 15:46:47 1301

poj编程指导

北大在线评判系统,推荐用书。系统介绍ACM各种算法。并结合poj真题题解。

2013-03-28

python3.1入门指南

python3.x学习资料,帮你从python2.x过渡到3.x

2013-05-02

Qt5学习资料

QT5入门指导书,只有一百多页,短小精悍。适合初学者,更适合qt4到qt5的过度者。

2014-02-10

Qt计算器项目开发源码

这是本人Qt计算器开发系列博文的工程源码。欢迎大家下载,免积分。 以下是关于这个开发技术的相关博文,请参考。 (一)后缀表达式实现完整数学表达式的计算 http://blog.csdn.net/guodongxiaren/article/details/24648839 (二)信号槽实现数学表达式合法性检查 http://blog.csdn.net/guodongxiaren/article/details/26006201 (三)运行效果及项目总结 http://blog.csdn.net/guodongxiaren/article/details/26046543

2014-05-17

更新centos的mysql安装源

默认centos使用yum install安装的mysql版本很低,需要更新远程mysql仓库 适用于RedHat7/Centos7/Oracle Linux7

2014-11-01

just for fun乐者为王

linux之父的自传。在网上找了好久才找到的。所以一定要共享出来。励志书籍吧。总之,兴趣就是最好的老师

2013-04-23

正则表达式测试器

用于测试您写的正则表达式能否匹配出您的目的串。

2014-01-25

入门Java网络编程

java是伴随网络而兴起的语言,学习java的网络编程尤为重要。国内讲解java网络编程的优秀书籍不多。这本是国外的优秀书籍,讲了各种网络编程,以及io,泛型,集合等概念。最后还讲解了网络编程的一些成熟框架。

2013-12-19

空空如也

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

TA关注的人

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