Home

summary of <105 STL Algorithms in Less Than an Hour>

your browser does not support the video tag 1. WHY? STL algorithms can make code more expressive Avoid common mistakes Used by lots of people 2. THE WORLD OF C++ STL ALGORITHMS 2.1. LANDS of PERMUTATIONS 2.1.1. PROVINCE OF HEAPS make_heap push_heap pop_heap 2.1.2. SHORE OF SORTING sort partial_sort nth_element /...

Read more

如何同步网站文章到百家号

2019-02-25 udpate: 连着每天试了几次,每天都是不同的文章,一直返回成功,但是平台上就是看不到,建议还是手动发布图文,感兴趣的可以看下各个坑。 之前通过搜索资源平台提交数据到手百,还是很方便的。最近眼看着手百客户端逐渐下掉了熊掌号之前推送的文章,只留下了个人博客唯一一个入口。因此研究了下如何把网站文章自动同步到百家号。 具体可以参考开发者文档,提供了一个将富文本推送到百家号平台的机制。 文档本身还是很简单的,甚至有些简陋,可以参考这个例子. 这里主要介绍下几次留言咨询了解到的坑: content 必须是富文本格式 cover_imags 必须经过 json_encode,例如 python 代码:json.dumps(cover_images)...

Read more

protobuf之extension

最近看到的代码里, extension 字段使用越来越广泛,因此这篇笔记介绍下 extension 的使用。同时,protobuf反射详解里的 field 接口获取不到 extension 字段,因此也会介绍下关于 extension 的反射。 1. 使用 extension 用于解决字段扩展的场景,例如我们提供一个基础的 message,各个第三方都可以基于该 message 扩展新的字段,例如: // base.proto package base; message Link { optional string url = 1; extensions 1000 to 1050; } // third-party-1.proto package thirdparty1...

Read more

leveldb笔记之12:LRUCache的使用

上篇讲了 leveldb 里 LRUCache 的实现,这篇笔记继续介绍下具体的使用场景。 我最开始的理解,是 leveldb 缓存了用户写入/读取的原始 key:value 数据,实际上是错误的。leveldb 缓存了两种类型的数据:Block及Table. 接下来分别介绍下. 1. Block 通过内存缓存高频访问的 data block,避免从磁盘读取,从而提高数据的访问速率。 1.1. 初始化 在SanitizeOptions函数里初始化 if (result.block_cache == nullptr) { // 默认缓存大小为8M result.block_cache = NewLRUCache(8 << 20); } ...

Read more

leveldb笔记之11:LRUCache的实现

之前介绍multi_index_container时,使用了 LRU Cache 作为一个简单测试的例子。本文介绍下 LRU Cache 的原理以及 leveldb 里的实现。 1. 原理 Cache 用于提供对数据更高速的访问,因此存储上也更昂贵,例如 mem ssd 等,其容量通常都是有限的,因此就需要一定的缓存淘汰策略。LRU(Least recently used)就是其中一种,一句话介绍的话,就是: 淘汰最不常用的数据 wiki上有一个比较直观的例子: 读取的顺序为 A B C D E D F,缓存大小为4,括号内的数字表示排序,数字越小,表示 Least recently. 按照箭头的方向, 读取 E 时,缓存已满,因此淘汰最开始的 A. 读取 D 时,更新...

Read more

诗和远方 - 评《四时之美》

上次看完了无所畏,最后一节说“天用云作字”,想想就感觉意境很美。公司的楼顶是一圈跑道,视野很好。我想起来很多个爬到楼顶的中午,天高云淡,极目远眺,近处看到百望山,远望能看到盘古。不过憋半天,也想不出别的词儿,每次都是一句“真TM蓝啊”,“真TM远啊”🏙 上学时背唐诗,只觉得朗朗上口,大多不解其意;上班了写程序,越来越习惯逻辑思维和方法论,而且厂子越大,什么鸟都有,戾气越来越重,经常一轮开会,心中一万句草泥马飞过。冯唐从他的麦肯锡咨询工作里悟到了很多,譬如《把美一点点找回来》,如何去思考美好的东西。所以看了这本书,《四时之诗:蒙曼品最美唐诗 》。 春有百花秋有月,夏有凉风冬有雪。若无闲事挂心头,便是人间好时节。 二十四首唐诗,对应二十四个节气。一年四季春秋交替,造出不同的景儿;...

Read more

leveldb笔记之10:sstable读取

1. 简介 前面介绍了 sstable,包括 sstable 的结构组成及写入的源码分析,本文主要介绍下对应的读取过程,能够帮助读者更深入的理解一个 sstable 的数据格式。 2. 基本过程 sstable 的读取过程,简单总结就是四个字:按图索骥。 各个索引在这个过程发挥了很大的作用。 首先是 seek 到文件末尾读取固定48个字节大小的 footer,这也是为什么footer是定长的原因. 然后解析出 meta_index_block 以及 index_block。 通过 meta_index_block 解析出 filter block,通过 index_block 解析出 data_block. 查找时,先通过 filter block 查找是否存在,然后通...

Read more

《无所畏》读书笔记

从《万物生长》三部曲喜欢上冯唐的书,然而之后再看《活着活着就老了》、《三十六大》就再也没有惊艳过。 这个人臭牛逼,目空一切,怼天怼地怼空气的文风,最开始读着舒畅,读多了开始疲惫,审美疲劳,甚至觉得哗众取宠,语不惊人死不休。 直到读了这本《无所畏》,对这个垂杨柳长大的京片子、协和医学博士、麦肯锡合伙人、华润大佬、作家,又有了不同的认识,有时候会觉得这个比我大十几岁的人,是一个充满了人生智慧的老流氓,他说的话固然直接,但是真性情。他所写的,确实如他所做。他所做的,确实如他所说。他所说的,确实真知灼见。 换个稍微理性点的说法,他不是无意义的吐槽,他的吐槽,经过思考。 油腻中年男这个词,出自冯唐《如何避免称为一个油腻的中年猥琐男》,《比成为油腻中年更可怕的是成了油腻青年》。奇怪的是,这...

Read more