自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

认知 行动 坚持

涛哥不知何许人也,亦不详其姓字。闲静少言,不慕荣利。好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终...

  • 博客(38)
  • 资源 (19)
  • 收藏
  • 关注

原创 漫话Redis源码之二十

/* set current thread cpu affinity to cpu list, this function works like * taskset command (actually cpulist parsing logic reference to util-linux). * example of this function: "0,2,3", "0,2-3", "0-20:2". */void setcpuaffinity(const char *cpulist) ...

2021-11-28 18:58:04 875

原创 漫话Redis源码之十九

#if __linux__ if (!(tmp = strdup(program_invocation_name))) goto syerr; program_invocation_name = tmp; if (!(tmp = strdup(program_invocation_short_name))) goto syerr; program_invocation_short_name = tmp;#elif __APPLE__ if (!(tmp = strdup(...

2021-11-28 18:56:58 656

原创 世乒赛又开始了,小胖加油

预祝小胖拿下世乒赛单打冠军。加油。先mark一下。

2021-11-28 18:55:52 501 2

原创 漫话Redis源码之十八

#else for (i = 0; i < 8; i++) { finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)] >> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */ }#endif c = 0200; SHA1Update(context, &...

2021-11-28 18:53:58 464

原创 漫话Redis源码之十七

void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len){ WORD i; for (i = 0; i < len; ++i) { ctx->data[ctx->datalen] = data[i]; ctx->datalen++; if (ctx->datalen == 64) { sha256_transform(ctx, ctx->data); ct...

2021-11-28 18:52:15 302

原创 漫话Redis源码之十六

/* Test of the CPU is Little Endian and supports not aligned accesses. * Two interesting conditions to speedup the function that happen to be * in most of x86 servers. */#if defined(__X86_64__) || defined(__x86_64__) || defined (__i386__) \ || def...

2021-11-28 18:50:27 498

原创 漫话Redis源码之十五

#include "server.h"#include "slowlog.h"/* Create a new slowlog entry. * Incrementing the ref count of all the objects retained is up to * this function. */slowlogEntry *slowlogCreateEntry(client *c, robj **argv, int argc, long long duration) {...

2021-11-28 18:48:53 280

原创 漫话Redis源码之十四

/* The SORT command is the most complex command in Redis. Warning: this code * is optimized for speed and a bit less for readability */void sortCommand(client *c) { list *operations; unsigned int outputlen = 0; int desc = 0, alpha = 0; ...

2021-11-28 18:47:52 1320

原创 漫话Redis源码之十三

/* Render part of a sequence, so that render_sequence() call call this function * with different parts in order to create the full output without overflowing * the current terminal columns. */sds sparklineRenderRange(sds output, struct sequence *se...

2021-11-28 18:45:29 282

原创 漫话Redis源码之十二

#include "server.h"/* ----------------- Blocking sockets I/O with timeouts --------------------- *//* Redis performs most of the I/O in a nonblocking way, with the exception * of the SYNC command where the slave does it in a blocking way, and * ...

2021-11-28 18:43:39 308

原创 漫话Redis源码之十一

#define HASH_SET_TAKE_FIELD (1<<0)#define HASH_SET_TAKE_VALUE (1<<1)#define HASH_SET_COPY 0int hashTypeSet(robj *o, sds field, sds value, int flags) { int update = 0; if (o->encoding == OBJ_ENCODING_ZIPLIST) { uns...

2021-11-28 18:42:12 345

原创 蓝桥杯大赛获奖选手,可获研究生推免加分啦,挺好的呀

大家好,我是涛哥。我一直关注着各类大会和各类比赛,之前也写过蓝桥杯大赛的一些攻略,并用实际的题目和案例,为大家准备蓝桥杯比赛提供了指导。蓝桥杯大赛其实并不难,但好处很多。有的朋友可能对蓝桥杯还不太了解,不过没关系,我简单来跟大家说说,希望广大IT爱好者能了解更多,从中受益。

2021-11-22 20:52:47 15561 10

原创 人在长大,心情在变化

人在长大,心情在变化,有同感的吗?

2021-11-21 23:21:56 746 1

原创 很多事情,与决心有关

很多时候,我总是倾向于相信决心。事情到底能不能做成,这源于决心。后来,有人跟我说,仅仅有决心是不够的。年轻的我反驳道:那是因为决心不太大。逐渐长大后,意识到有些事情确实无能为力,跟决心无关。而且,这样的事情还很多。虽然有很多事情我们无法左右,再大的决心也无济于事。但是,我还是要说,决心在很大程度上能影响结果。就这样吧。加油。...

2021-11-21 23:14:26 720 2

原创 漫话Redis源码之十

#include "server.h"/* ----------------- Blocking sockets I/O with timeouts --------------------- *//* Redis performs most of the I/O in a nonblocking way, with the exception * of the SYNC command where the slave does it in a blocking way, and * th...

2021-11-21 23:09:38 640

原创 漫话Redis源码之九

/* This is a helper function for the COPY command. * Duplicate a hash object, with the guarantee that the returned object * has the same encoding as the original one. * * The resulting object always has refcount set to 1 */robj *hashTypeDup(robj ...

2021-11-21 23:07:42 531

原创 漫话Redis源码之八

if (!(flags & STREAM_RWR_RAWENTRIES)) arraylen_ptr = addReplyDeferredLen(c); streamIteratorStart(&si,s,start,end,rev); while(streamIteratorGetID(&si,&id,&numfields)) { /* Update the group last_id if needed. ...

2021-11-21 23:06:31 389

原创 漫话Redis源码之七

void getrangeCommand(client *c) { robj *o; long long start, end; char *str, llbuf[32]; size_t strlen; if (getLongLongFromObjectOrReply(c,c->argv[2],&start,NULL) != C_OK) return; if (getLongLongFromObjectOrReply(...

2021-11-21 23:03:43 419

原创 漫话Redis源码之六

/* Return a ziplist element as an SDS string. */sds ziplistGetObject(unsigned char *sptr) { unsigned char *vstr; unsigned int vlen; long long vlong; serverAssert(sptr != NULL); serverAssert(ziplistGet(sptr,&vstr,&vlen,&am...

2021-11-21 23:02:18 476

原创 漫话Redis源码之五

void tlsCleanup(void) { if (redis_tls_ctx) { SSL_CTX_free(redis_tls_ctx); redis_tls_ctx = NULL; } if (redis_tls_client_ctx) { SSL_CTX_free(redis_tls_client_ctx); redis_tls_client_ctx = NULL; } #if OPE...

2021-11-21 23:00:57 680

原创 浅聊选择和努力

大家好,我是涛哥。又到周末了,愿大家开心。昨天是七夕节,你是否约到了心仪的另外一半呢?不管怎样,愿有情人终成眷属。最近在玩画画,在我的文章中,大家以后可以看到我的手绘画画哦,挺有意思的,文章封面图不愁了。最近有几件重要事情,其中一件是:我续约了。我平时很少公开谈职场相关的话题,今天这篇,聊作随笔。 涛歌手绘再过几年,我就35岁了,这是IT圈疯传的尴尬年龄,网上...

2021-11-21 22:59:54 714 5

原创 漫话Redis源码之四

/* Modify the buffer replacing all occurrences of chars from the 'from' * set with the corresponding char in the 'to' set. Always returns s. */char *memmapchars(char *s, size_t len, const char *from, const char *to, size_t setlen) { for (size_t...

2021-11-21 22:57:35 336

原创 漫话Redis源码之三

} zlentry;#define ZIPLIST_ENTRY_ZERO(zle) { \ (zle)->prevrawlensize = (zle)->prevrawlen = 0; \ (zle)->lensize = (zle)->len = (zle)->headersize = 0; \ (zle)->encoding = 0; \ (zle)->p = NULL; \}/* Extract the en...

2021-11-21 22:55:58 338

原创 漫话Redis源码之二

/* Decode the encoded length pointed by 'p' */static unsigned int zipmapDecodeLength(unsigned char *p) { unsigned int len = *p; if (len < ZIPMAP_BIGLEN) return len; memcpy(&len,p+1,sizeof(unsigned int)); memrev32ifbe(&len...

2021-11-21 22:53:30 778 3

原创 阿里终面:如何才能盛下最多的水?

大家好,我是涛哥。又到周末了,愿大家开心。今天不聊复杂的技术问题,来看一道阿里巴巴的终面题目。有趣,而且有一定难度。编程求max{|i-j|*min{a[i], a[j]}}的值,其中a是正整数数组,i和j的区间为[0, n-1].初次看到这个题目时,可能处于懵圈状态,怎么有min又有max呢?到底如何下手?我一直的观点是:既然要找工作,那就要做万全准备,LeetCode题型又岂能不刷?问题转化很显然,这是非常典型的“盛水容器问题”,我来翻译一下,原题等价于如下的问题:n 个正整

2021-11-21 22:52:01 1401 1

原创 漫话Redis源码之一

static void (*zmalloc_oom_handler)(size_t) = zmalloc_default_oom;/* Try allocating memory, and return NULL if failed. * '*usable' is set to the usable size if non NULL. */void *ztrymalloc_usable(size_t size, size_t *usable) { ASSERT_NO_SIZE_OVERFL.

2021-11-21 22:50:51 1716

原创 华为面试:判断2的n次方

大家好,我是涛哥。今天,我们来看华为的一道面试题目:如何判断一个整数是否为2的n次方,其中n为非数整数,要求效率尽可能高。这是一道非常典型的面试题目,它有很多发散的形式,比如:如果把上述的2换成3、4、5,该怎么做才能高效呢?接下来,我们从不同的角度分析,并给出上述所有情况的算法思路和代码验证,希望大家有所收获,顺便通过面试。 涛哥在华为松山湖闲逛所拍判断2的n次方2的n次方的判断,是一个比较常见的问题。容易看出,2的n次方的二进...

2021-11-15 22:34:56 1837 3

原创 写了一个网络聊天软件(Windows版UDP程序)

大家好,我是涛哥。TCP网络编程是很重要的,那么,你有使用过UDP网络编程吗?部分朋友的第一反应是:UDP不可靠,所以实际很少用。真的是这样吗?其实不然!对于很多内网通信而言,基本不存在时延和数据丢包的问题,而且有的应用场景要求并不高。据我所知,在腾讯的QQ后台,就大量使用了UDP通信,而且并没有做应用层的可靠性保证,照样跑得好好的,没问题。今天,我们以最简单的UDP编程为例,来实战一下网络编程,实现一个简单的聊天软件,你可以基于本文程序进行修改。涛哥手绘服务端程序服务.

2021-11-15 22:34:05 1207

原创 Google浏览器和trie树的那些事儿

大家好,我是涛哥。今天来聊一种重要的数据结构:trie树。大家经常使用google, 当输入搜索内容后,有自动提示的功能,节省了时间。那么,这个自动提示功能是怎样实现的呢?trie树之初见关于搜索的匹配,可以用哈希表,也可以用红黑树,其实,今天要说的trie树更适合这种场景,因为trie树能实现前缀匹配,具有天然的优势。trie树,就是retrieval树,也即检索,名如其实,我们先来看看trie树的数据结构。以"cat", "dog", "cattle", "bag"为例,t.

2021-11-15 22:33:37 422

原创 古今计算机精彩简史

大家好,我是涛哥。最近下雪了,深圳肯定是没有下雪的,是北方下雪了。朋友知道我在做公众号,也经常看到我的手绘漫画。所以,这位朋友很有创意地在雪地写了我的公众号名,并发给我,很走心哦,感谢这位朋友的拍照和用心。我在学校的专业不是计算机,后来花了很多精力去学习计算机相关的课程和知识,挺多东西要学。在整个学习过程中,我个人对计算机的发展历程很感兴趣,总想知道计算机为什么是今天这样子。我用一气呵成的方式,把计算机发展历史快速缕一遍。文章详实、精彩且有趣,希望大家喜欢哦。小时候,见过

2021-11-15 22:32:24 1348 4

原创 写了一个网络聊天软件(Windows版TCP程序)

大家好,我是涛哥。最近,一位读者对网络编程很感兴趣,想写一个网络聊天软件,问我如何下手。对于网络编程,我是很熟悉的,而且也写过很多网络相关的程序。对于想学网络编程的人而言,我的建议是:写程序,调试,修改。据我所知,很多人为了面试而背诵了八股文,熟知TCP三次握手、四次挥手,用过网络调用,但却没写过socket编程,哎,哎,哎。今天,我们以最简单的TCP编程为例,来实战一下网络编程,实现一个简单的聊天软件,有兴趣的朋友可以基于本文程序进行修改。由于读者用的是Windows,所以我打开了几年

2021-11-15 22:31:24 1140 1

原创 大学换专业

今天有读者私信我,作为一名刚接触编程的大学生,想让我推荐几本关于前端或者后端的书。因为读者没有提供更多的信息,所以简单的分类讨论一下哈:如果本身就是IT专业的,那我的建议是,先好好跟着学校的课程安排,把课本学扎实,在学有余力的情况下,再找些相关进阶的书籍进一步学习;如果本身不是IT专业,是想转IT方向,并计划将来要靠这个求职挣钱的,首先第一个,还是要学好本专业,有个不错的成绩能够顺利毕业,其次,可以找一些浅显、入门级的书籍来看,由浅至深,由易到难。具体的书籍呢,再次我就不多做推荐了,目前世面

2021-11-15 22:30:36 881 2

原创 双11之前好累,要进行很多准备

最近终于可以稍微歇歇一口气了,双十一真是不轻松,提前好一阵子就开始各种准备,各种会议,各种调试,真是事情多的不得了。双十一每年的玩法都不一样,看网上大家都看玩笑说买家都计算不过来了,非常考验计算能力,我们这些做后天的程序员也不轻松。对于买家来说,买买买的快乐还是非常吸引人的。老伴守在直播间的状态就让我觉得一个字,牛,跟打仗似的。前一阵子看脱口秀,呼兰有一段我觉得挺经典的:直播卖货是经济学奇迹你知道吗?就是顾客和商家都觉得自己赚了。不对啊,有赚有亏啊,你们怎么说?那谁亏了呢?没看直播的那些人亏

2021-11-15 22:29:43 650 3

原创 程序员要保持学习,持续学习

最近在工作和生活中不断感悟了这句话“保持学习”,对程序员更是如此,技术更新的快,行业也卷的厉害,业务形态也在不断调整变化,以经验主义来做事情是不行的,自己要不断打破自己的认识,不断接受新事务,不断尝试新事务才可以。经验主义容易坏事儿。...

2021-11-15 22:27:51 1390

原创 写了一个网络聊天软件(Linux版TCP程序)

大家好,我是涛哥。在局域网内写TCP聊天程序,真的很简单。你可以通过TCP和你的女朋友聊天,图示如下: 涛歌手绘然而,如果你的女朋友在别的城市,你想写一个软件跟她聊天,那么上面的图示就不行啦。想一下,这是为什么呢?因为你们都身处在寝室的局域网中,这两个局域网是无法连通的。那怎么办呢?必须借助一个公网将网络打通。为了进行实际验证,我用的是阿里云的机器。这个阿里...

2021-11-15 22:26:38 1091

原创 读《半小时漫画计算机》

最近朋友送了一本书给我,就是下面这本

2021-11-15 22:25:06 2656 4

原创 最近在学习各种各样的数据库,发现只懂Mysql根本不行

最近在学习各种各样的数据库,发现只懂Mysql根本不行。Mysql相信大家都不陌生,要想深入的学习也是要花大力气。每个语言都有不同的适用场景,也很难说有一种是万能的。现在工作中面对千差万别,数据量也非常的庞大,只懂Mysql短期内也许可以应付一二,但不是长久之计。...

2021-11-15 22:23:20 911

原创 腾讯又有大动作啦

今天腾讯的朋友们告诉我,公司推出了“退休福利”,就是到法定退休年龄退休的腾讯员工,可以拿到 6 个月固定工资奖励;并可选择基于工作年限的奖金或 50% 未解禁股票期权。财大气粗,respect。不过我的那位朋友倒还是比较冷静,他在思考,如果从现在来说,如果想拿到退休福利,至少还要在腾讯再干30年,还要做到这些年里自己仍然有竞争力,绩效得OK,公司也要持续发展那么长时间。末了,他还开玩笑说,自己还得身体好。想想他说的也不无道理,对于普通员工来说还是很现实的。腾讯作为互联网大厂,各

2021-11-08 23:18:32 1202 6

ipscanner.rar

获取网络的ip, host name和mac地址。我想免费让大家下载, 但csdn规定了必须设置积分, 没办法。

2017-12-01

linux protobuf安装文件

linux, google protobuf, 安装文件。 使用方法:http://blog.csdn.net/stpeace/article/details/53029812

2016-11-04

linux tree命令的源码

很多linux上没有tree命令, 该资源提供了tree命令的源码, 大家可以下载, 编译并安装, 具体请参考:http://blog.csdn.net/stpeace/article/details/49524273

2015-11-01

编译好的openssl库和头文件

编译好的openssl库, 欢迎使用, 具体使用方法, 请见http://blog.csdn.net/stpeace/article/details/41921287

2014-12-14

入门数据库sqlite3的最佳实践资料

入门数据库sqlite3的最佳实践资料, 里面是我打包好的程序, 附加一些数据库工具, 非常可以。 当然你也可以参考我的博文http://blog.csdn.net/stpeace/article/details/38503843

2014-08-12

Wireshark抓包工具

Wireshark抓包分析工具, 非常好用, 非常实用。

2014-06-08

优秀的截图软件

截图软件fast stone. 解压即可使用。 解压后, 可能会产生一些依赖性文件, 请不要轻易删除。

2014-05-25

获取网卡信息所需的头文件和库

获取网卡信息所需的头文件和库:IPEXPORT.H Iphlpapi.h IPHLPAPI.LIB IPRTRMIB.H IPTYPES.H

2013-10-19

哈希值计算软件

可以计算md5, sha1, sha256等哈希值的工具软件,我无法形容它的优秀。

2013-10-18

在Windows下学习Linux命令

在Windows下想学linux命令的同志,你终于找到了该资料。用法:解压,然后双击其中的cmd.exe, 然后就可以输入linux命令了,比如ls等(千万要注意,不要进行路径切换,否则linux命令就执行不了,总之,要确保相应文件在当前目录下)。

2013-08-08

计算机网络第5版谢希仁编配套光盘资料

计算机网络第5版谢希仁编配套光盘资料,这是计算机考研的指定教材对应的资料,你应该拥有它。

2013-07-19

OllyDBG反汇编工具

OllyDBG反汇编工具,非常强大。深化功底,需此工具。

2013-07-19

masm汇编器

微软的汇编器,其中有关键的masm.exe和link.exe,我试过,发现可用。

2013-07-19

word转pdf的插件

word转pdf的插件,直接安装即可,安装完后,“另存”word文档的时候,可以选择pdf(我用的word版本为2007)。

2013-07-18

音频处理软件Gold Wave

一款强大的音频处理软件,可以对音频进行各种处理。例如:如果你在准备某考试,需要听音频资料,但是,你嫌音频太慢,而且你的MP3播放器无法加速,那么你可以用该软件对音频本身进行加速,即改变音频本身,使之变快。另外,在处理的时候,可以实现批处理(我亲自实践过,发现可行)。

2013-07-17

H.264visa软件

一款非常强大的H.264视频码流的解析软件,可以看到解码后视频的像素值,运动矢量,宏块等非常多的信息(也可以打开原始的YUV视频,并看到像素值,但必须先用该软件打开某一H.264视频码流),比Elecard StreamEye软件(有bug)更为强大,我一直用H.264visa,目前没有发现有什么bug. 另外,该软件安装后1个月就会过期,没有关系,1个月后,你重新安装一次即可。

2013-07-13

Elecard StreamEye

Elecard StreamEye,一款分析H.264视频码流的工具,如果你在学习H.264,那么,你应该拥有它。

2013-07-13

YUVviewer :原始的YUV视频的播放器

原始的YUV视频的播放器(软件不是我写的),如果你做视频处理、视频压缩编码、视频通信、视频检索、视频取证,那么你很可能需要它。该软件的缺点是:你无法看到YUV视频的像素值。

2013-06-24

经典的C语言编译器:TC2.0

一款经典的C语言编译器:Borland Turbo C 2.0. 怀念Borland产品的人可以用一下,体验一下DOS下的编程。如果是C语言初学者,建议用MS的VC++6.0. 我试过,该TC2.0可以正常使用。

2013-06-23

空空如也

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

TA关注的人

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