Puppetsho's blog

「虽千万人吾往矣」

存在主义

“世界上只有一种真正的英雄主义,那就是在认清生活的真相后依然热爱生活. ” ​ 最近一直在看书,《小王子》、《月亮与六便士》、《暴雪中的山庄》、《没有杀手的暗夜》,还有一本最近才彻底读完的《存在主义心理学的邀请》。其实一直想就读过的书写一些感想,但是可能是由于工作占据了太多的时间,从而导致只写了些零零散散的碎末。最近看完了一本心理学书《存在主义心理学的邀请》,让我想起了罗曼罗兰说过...

奇迹和魔法,是需要付费的

"轻而易举,还能称之为奇迹吗?"

“而沙尘暴偃旗息鼓时, 你恐怕还不能完全明白自己是如何从中穿过而得以逃生的, 甚至他是否远去你大概都无从判断。 不过有一点是清楚的: 从沙尘暴中逃出的你已不再是跨入沙尘暴时的你。 是的,这就是所谓沙尘暴的含义。 ————《海边的卡夫卡》”

Effective C++ 改善程序与设计的方法

"改善程序与设计的方法"

“不适合人类阅读,非常水的自我笔记. ” 前言 ​ 最近在读《Effective C++》,学习研究关于如何改善C++的程序与设计,笔者之前是在C语言的基础上,产生了对C++这门面向对象编程语言的浓厚兴趣,为了进一步提升自己的程序设计水平,于是拿出了这本《Effective C++》来作为学习、记录以及反思,这里就主要选取个人认为比较常用或比较有用的改善C++程序与设计的方法。。...

计算机图形学基础——GAME101

"学点东西吧 求求了"

“学吧,学无止境! ” 最近想整理一下之前关于计算机图形学相关的基础知识,因此开了这篇博客,顺便对本人起到一个提醒作用,博客中提到的知识,大部分可以从GAMES相关课程中找到,感兴趣的可以再自己去论坛找相关课程看看。 1、矢量变换以及相关运算 ​ 计算机图形学中,最基础的知识就是矢量变换相关的运算,所谓变换最关键的,就要要找出向量在变换前和变换后的转换关系,在此之前,已经默认各...

一丝真实的光亮足以对抗整个时代的荒诞

"一丝真实的光亮足以对抗整个时代的荒诞"

“作为自由前提的信念”——《圆圈正义》 ​ 今天读完了罗翔的《圆圈正义》,总的来说这是一本我非常喜欢,并且对我的一些观念有着指导意义的书。虽然我不是学法的人,但是我也很喜欢去查阅一些书本提到的案件,让我去感受现实的荒诞和残酷。 ​ 书中提到了理查德·巴克斯特的一句话:我们时常妒忌比我们地位高的人,藐视地位不及我们的人;垂涎别人的名望、财富,或者傲慢、冷酷地看待别人的贫寒窘迫。看到...

浅谈C++安全缺陷

"C++的安全缺陷以及注意点"

“不适合人类阅读,非常水的自我笔记. ” 前言 ​ 在程序设计的过程中,开发人员有意或无意的行为,以及C/C++固有的一些特性,会使得所开发的程序中存在某些瑕疵或安全缺陷,而这些瑕疵或安全缺陷就有可能造成被攻击者所利用的漏洞。当前,在使用C/C++语言开发的程序中存在的漏洞主要分为以下五种: ​ 后面我们对这五种安全缺陷进行分析总结。 C/C++安全缺陷分析 (1)缓冲...

Google Leveldb --- Coding

"学习谷歌开源项目Leveldb的一些笔记"

“不适合人类阅读,非常水的自我笔记. ” 前言 ​ coding里面包含了变长(Varint,Google的Protocol Buffer就是采用的这种编码方式)编码与定长(Fixed)编码格式。 1.定长编码 涉及的函数包括: 1 2 3 4 5 6 void PutFixed32(std::string* dst, uint32_t value); void PutFi...

Google Leveldb --- Random

"学习谷歌开源项目Leveldb的一些笔记"

“不适合人类阅读,非常水的自我笔记.” 1.随机数生成算法 A、B、M都是常数(一般取质数)。 1 seed = (seed * A + B) % M 当B = 0时,叫做乘同余法。B != 0 时,叫做线性同余法。 再random中的实现均是采用 B = 0。 这里提一下,凡是通过一定算法程序生成的都是伪随机数,目前来说只有通过物理现象产生的随机数才是真随机数...

Google Leveldb --- Status

"学习谷歌开源项目Leveldb的一些笔记"

“不适合人类阅读,非常水的自我笔记.” 1. Status类 ​ 首先来看一下Status内的基本介绍。Status内部含有Code枚举值,可以看到Code里面含有0-5个状态。 ​ 私有成员status_为const char *,其前4个字节代表消息长度,对应[0,3],第4个字节代表消息码,对应[4],5个字节之后代表实际的消息体,对应[5,…]。 1 2 3 4 ...

Google Leveldb --- Arena

"学习谷歌开源项目Leveldb的一些笔记"

“不适合人类阅读,非常水的自我笔记. ” 源码相关文件<util/arena.h> <util/arena.cc> 1. 什么是Arena? ​ Arena是leveldb的一个内存池,申请内存时,将申请的内存块放入动态数组中,在Arena生命周期结束,循环该动态数组,将其释放掉,其内部结构如下图所示。 2. 基本结构 ​ 这里主要分...