自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stpeace的专栏

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

原创 printf("%02x\n", c) 之坑------浪费0.5小时

实际上, 在不久前, 我聊过这个, 为了再次强调(因为踩了坑, 浪费0.5小时), 故再次来玩一遍: #include using namespace std; int main() { char c1 = -1; printf("%02x\n", c1); // ff...

2016-06-30 23:24:52

阅读数 9514

评论数 3

原创 自己生成随机序列号, 便于串起来

我们知道, 后台基本上可以大致分为接入层, 逻辑层, 存储层。 现在要在三层都记录流水操作。 每次请求对应3条流水信息, 但是, 当多次请求在很短时间内进行时, 流水的顺序会被打乱(网络流水涉及到网络操作, 先发送的, 不一定先到达流水机器), 那怎么办呢?         我的思路是: 在每次...

2016-06-29 23:39:23

阅读数 7746

评论数 0

原创 用srand, rand产生的随机数有隐患------还是用利用linux的/dev/urandom文件产生随机数吧

我们知道, rand是伪随机的, 每次都会产生相同的序列(因为种子相同),  而srand可以产生种子, 我们经常用srand(time(NULL))来产生种子, 当种子随着时间变化时, 就会产生不同的序列, 然而这就够了吗?         今天碰到这样一个问题: 在很短时间(比如1s)内, 需...

2016-06-29 23:31:27

阅读数 7305

评论数 0

原创 淡疼的itoa和abs: 'itoa' was not declared in this scope; 'abs' was not declared in this scope

本来今天就被几个问题折腾得够呛, 结果下午写代码, g++又提示我:'itoa' was not declared in this scope,  尼玛, 我用itoa怎么啦? 后来发现:itoa函数不是ANSI(American National Standards Inst...

2016-06-29 23:20:28

阅读数 10735

评论数 0

原创 bufToHexStr的C++实现------将buffer转为对应的16进制形式(与坑同在)

bufToHexStr还是很常见的, 也非常常用, 写个代码玩玩(别乱拷贝如下代码): #include #include using namespace std; string bufToHexStr(const char *pBuf, int bufLen) { if(NULL == ...

2016-06-26 23:24:51

阅读数 7375

评论数 0

转载 为什么寄存器比内存快?

转载地址:http://www.ruanyifeng.com/blog/2013/10/register.html 作者: 阮一峰 日期: 2013年10月14日 计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 ...

2016-06-25 23:37:25

阅读数 6953

评论数 0

原创 用内存做缓存

先看这样一个问题, 客户端需要前后三次请求服务端, 但在第三次请求的时候, value3的值可能为空, 也就是说, 会有大量无效的请求, 浪费网络流量和带宽, 那怎么优化呢?        可以采用缓存的思路, 先把value3是否存在的标示flag在value2中附带过去, 缓存在client...

2016-06-25 23:35:20

阅读数 6641

评论数 0

原创 cache(缓冲)是一个广义的概念

在以前面试的时候, 经常会遇到这样的题目, 以至于有些宁愿背诵下来:           今天, 我们就不说题目了, 而是来说说缓存(cache).          我快研究生毕业的时候, 第一次听说了cache命令率这个词, 听着学计算机的同学讲这个东东, 瞬间觉得高大上, 其实也不过...

2016-06-25 23:23:08

阅读数 5862

评论数 0

原创 那点代码, 谁都会写!------以后我会在博客中多加入一些思路方面的东东, 少写一些实际的代码

我在第一家公司工作了两年, 当时非常注意代码的各种规范。 公司要求代码必须符合各种规范, 各种圈复杂度, 各种安全函数, 各种静态检查, 动态检查, 各种review, 各种提交前的本地构建, 如此等等等等, 后来我就有代码洁癖了, 仿佛感觉搞软件就是搞代码。 而且, 思维也依赖于僵化式的流程。 ...

2016-06-25 21:48:01

阅读数 5825

评论数 2

原创 map如何按value来排序------用带pair的vector吧

我们知道, map是按照key来排序的, 那么, map如何按value来排序呢?------用带pair的vector吧。 看代码, 不说话: #include #include #include // pair #include #include using namespace st...

2016-06-25 21:11:34

阅读数 6195

评论数 1

原创 做好参数校验, 不要过分信息前端传过来的值

最近遇到这样一个问题, 后台服务的某接口收到了异常的参数值, 导致后端服务异常。 而在用户正常访问的情况下, 前端肯定会进行参数校验的, 那为什么传到后端的参数是异常的呢?        原来, 不仅是前端在调后台服务, 某些坏人也经常来刷后台的服务, 妈蛋。 其实, 对于每一个参数输入, 咱都不...

2016-06-25 20:47:56

阅读数 7270

评论数 0

原创 source很重要

之前做了一个通用的写接口, 每个参数的修改都需要经过这里, 为了方便定位定问题, 我们通常需要知道修改的来源是哪里。        在软件开发时, 其实很大程度上是在维护这套软件, 所以, 要为后续维护做准备。        最近定义一个写接口, 没有注意加source字段, 定位问题的时候, 很...

2016-06-25 20:39:01

阅读数 5533

评论数 0

原创 循环跑号码包的一个小建议

举个例子, 中国移动要对所有移动用户发送一条消息, 中国移动的程序猿准备些脚本来搞起, 我们看看最简单的方案:for循环一下, 对每个用户发消息。        打断一下, 这里有什么隐患呢? 假设, 该脚本因为某不可抗因素, 中断了, 那怎么知道哪些用户没有送, 哪些用户已经送了呢?      ...

2016-06-24 22:13:55

阅读数 5720

评论数 0

原创 栈溢出导致的core dump的定位------千年等一回

某服务在跑的时候, 从来没有core dump过, 某次, core dump了。 老大收到core dump告警后, 在群里贴了一下, 我开始着手定位。 这是个低概率的core dump, 重现原来问题几乎没有可能。         那就去看core吧, gdb xxx core一下发现, 程序...

2016-06-24 22:07:17

阅读数 7791

评论数 0

原创 何时更新缓存?

缓存是为了有更快速的访问, 那一般什么时候更新缓存呢?        如果需要拉取到实时信息, 那么每次写操作, 都要更新一下缓存, 如图:        如果不需要拉取到实时信息(比方说, 这个信息并不经常变动, 如年龄, 生日), 那么可以这么搞:

2016-06-20 23:56:47

阅读数 6304

评论数 0

原创 缓存的本质是什么?

缓存的本质是让热数据接近目的地, 用简单程序结束本文: #include int a[100] = {0}; // 缓存 int jieCheng(int n) { if(0 == n || 1 == n) { a[n] = 1; return a[n]; } if(0 ==...

2016-06-20 23:30:52

阅读数 6007

评论数 4

原创 推写拉读

很多事情,只要把本质弄透彻, 其余的都是细节了。 正如爱因斯坦所说: 我需要知道的是宇宙的设计理念, 其余的都是细节。       比如说网络编程, 其本质是buffer内容的传递。        在后台开发中, 也就是推拉读写了, 这是我的感悟。 刚喝了一瓶啤酒, 头还没晕, 但愿不是胡说八道。

2016-06-19 22:52:27

阅读数 5700

评论数 0

原创 第一次去游泳

昨天第一次去游泳, 和老伴一起, 我们都不会游泳, 但在好友的帮助和陪伴下, 我们感觉还是很安全的。         老伴学会了憋气, 我大概能游15米左右, 虽然动作很不标准。初学游泳的时候, 最重要的是安全。         第一次在1.2米的水中, 水的感觉很奇妙, 并不如我想象...

2016-06-19 22:18:20

阅读数 5693

评论数 0

原创 六年级数学期中考试只考了88分, 但试卷被老师写下:Good! very good!! very very good!!!

        我读小学六年级的时候, 数学老师是夏老师, 人很严, 不过本文暂时和他没有什么关系。        那是一次期中数学考试, 最后一题, 我用了初中的二元一次方程组(初一才学)解决了一个应用题, 结果不知被哪位老师在最后写下:"Good! very good!! very ...

2016-06-18 18:26:39

阅读数 7856

评论数 14

原创 3分钟搞定杀手级的coredump问题

刚入职的时候, 遇到了一个必然出现的coredump问题, 当时查代码, 完全正确, 某哥在帮我调试, 后来我也没有改什么代码, 也不知道怎么滴, 那个coredump问题居然就消失了。 当时没有搞明白, 反正没有coredump了就OK了. 现在想起来, 呵呵哒。        后来, 就生硬地...

2016-06-17 23:35:20

阅读数 6524

评论数 0

原创 重启是“万能”的

之前说过后台某台服务的内存泄露问题, 如果实在解决不了, 那就定时重启呗。 后台服务那么多, 重启一个没啥问题。        最近, 工作得好好的某服务器出现了dumping message, 消息队列中的消息处理不及, 出现大量超时, 当时我的处理方式是将机器上的服务做下线处理, 也就没有超时...

2016-06-17 23:20:04

阅读数 5897

评论数 0

原创 linux中的wget命令

最近, 某同学给我一个url : http://xxx/xxx/xxx.js,  我要把这个下载下来, 哎哟, 还在那里思考怎么去下载, 是登录到对应的机器上取吗?  是用迅雷吗?         我晕, 还是用linux的wget命令吧“: wget http://xxx/xxx/xxx.js...

2016-06-13 23:35:35

阅读数 5896

评论数 0

原创 求证调和级数发散

自娱自乐一下, 看看调和级数为什么会发散:

2016-06-10 22:51:23

阅读数 6263

评论数 0

原创 求椭圆的切线方程------很有对称美

最近高考, 我在家闲着也是无聊, 来搞个题目玩玩, 虽然十年过去了, 但宝刀不老, 数学不在话下哈, 来看看椭圆切线:

2016-06-10 22:25:54

阅读数 11419

评论数 2

原创 《解密中国女CEO董明珠》米晓海

听说我欣赏董阿姨, 老伴就给我买了这本书。        书没啥内容, 和常规的商业书一样, 就是扯, 以后不看类似的书了。

2016-06-09 22:27:27

阅读数 6431

评论数 0

原创 《X光下看腾讯》 蓝狮子

今天端午节, 也出去玩了一下, 回来顺便finish了之前买的一本书。        OK,  看完了, 不想写读后感, 没啥想写的, 就说这么多。

2016-06-09 21:50:00

阅读数 6019

评论数 0

原创 ascii控制字符(不可见字符)和可打印字符(可见字符)------浪费15分钟的一次经历

       系统工作得好好的, 但某次却异常, 花了十多分钟, 才定位出是加载文件中包含了不可见字符导致的。 最后解决方法是: 增强系统的兼容性。        今天我们来聊聊ascii控制字符(不可见字符)和可打印字符(可见字符), 以后碰到类似问题就很敏感了。         网上有人...

2016-06-09 09:36:10

阅读数 35232

评论数 2

原创 两次碰到编译错误: crosses initialization of...

在实战中, 遇到过两次crosses initialization of... 编译错误, 这很easy啦, 两次的原因分别是:      1. switch的case中有定义变量      2. goto跳过了变量的定义      简单, 解决办法也很简单, 仅作备忘。

2016-06-09 08:48:03

阅读数 9226

评论数 0

原创 const导致的编译错误, 浪费了10分钟

最近写了几个函数, 参数我是用const的, 但调用更底层接口的时候, 接口中对应的参数没有const, 结果编译错误cannot find ...  居然花了10多分钟才看出问题, oh, my god.       算好, 对const的用法比较熟, 不然就呵呵哒了。       先来记录一下...

2016-06-09 08:40:32

阅读数 6029

评论数 0

原创 C/C++中的%010u是个什么东东?

遇到这样一个小需求, 需要将无符号的整数(最大值是4294967295, 是个10位数)转为字符串, 不足10位时, 前面补0.  比如: 0000000000   0000000001   0000000002   0000000003   0000000004   000...

2016-06-05 12:12:07

阅读数 7592

评论数 0

原创 传p还是传*p

刚学指针那会儿, 没太搞明白p和*p的区别, 后来搞清楚后, 发现这个东西确实是太简单了。       在实际生活中, 有很多类似的例子:       某某某是收藏某片的高手, 收藏了很多很多, 大家都找他要资源, 他怎么提供资源呢? 有两种思路:       1. 分别把资源传给每个人, ...

2016-06-05 11:17:31

阅读数 5808

评论数 0

原创 C/C++为什么要短路求值?

我们知道, 在C/C++中有短路求值机制, 那为什么要这么做呢, 我自己思考,有两点:       1. 效率       2. 代码的优雅       如下: #include using namespace std; int main() { string s = "abc...

2016-06-05 10:56:41

阅读数 7037

评论数 0

原创 截包与重放是个技术活

周六在家, 画两幅图, 不说话:

2016-06-04 11:27:05

阅读数 6339

评论数 4

原创 http的refer头------说说最近遇到的http 403错误

最近遇到这样一个问题, 用php吐出html, 在html中, 用<a>指向了一个视频资源的url, 但是, 当去点击这个链接的时候, 视频的url地址出现在浏览器新窗口的地址栏中, 只是没有播放, 抓包看了一下, 原来, 在访问url时, 对端返回403错误码。 然后我在浏览器...

2016-06-01 23:41:45

阅读数 8050

评论数 0

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