本周(05/12 ~ 05/18)是5月份第三周,距离月底端午假期还有两周,而且马上就要陪产假了

Life

#1

这周五晚上和 Hogan 约了乐刻的 Body Combat 团课,周六跑了一次常规的 7.5km 有氧,周日继续 Body Pump 团课。

感觉这周强度有点大,还是需要好好休息以快速恢复体力和维持状态。

#2

这周五把媳妇儿接回家之后媳妇儿就进入产假状态了,所以下周也不用早起送她去上下班了,对我来说算是个利好。

毕竟天天 6:55 起床不是每次都能保证睡眠良好有充足的体能的。

有一次我记得就睡了六个半小时,嘉明的 body battery 显示只恢复到了48还是44就起来了。果不其然这一天都感觉累的要死。

周日整理好东西之后开车送老婆去她家,进入待产状态。

不过老婆发现她家的床垫实在太硬了她睡得关节疼 😂 现阶段只能先忍忍了。。。

#3

周三电影俱乐部和同事一起看了 warfare

  • warfare 3/5 就还行把,没什么突出的点也没有什么太烂的点,非常不加兰

Work

#1

CppCon 2022 | Fast, High-Quality Pseudo-Random Numbers for Non-Cryptographers in C++ - Roth Michaels https://www.youtube.com/watch?v=I5UY3yb0128&list=PLHTh1InhhwT6c2JNtUiJkaH8YRqzhU7Ag&index=118

  • 某些非密码学安全级别得场合,可以使用 xorshiro128+ 这种更快的 PRNG;talk 里,xorshiro128+ 要比标准库的 mt 快好几倍;不过 seeding 是需要专门处理
  • 搭配标准库自带得 distribution 即可

C++ Weekly - Ep 479 - final (and when to use it) https://www.youtube.com/watch?v=NoFQnqUZLdA

  • 当从某个类A派生是一个 program error 的时候用 final
  • 用 final 可能会导致性能提升也可能会有下降,所以不要无脑用;视频里给了一个有提升的例子,编译器确信这个类的虚函数不会有派生类重写,所以就不用走虚表了

C++ Weekly - Ep 346 - C++23’s bind_back https://www.youtube.com/watch?v=pDiP2frdMnI

  • C++ 20 引入了 bind_front,于是 C++ 23 也有了 bind_back
  • 区别就是 bind_back 的参数 params… 按顺序填充到参数尾,即 bind_back(fn(a, b, c), x, y)(z) 等价于 fn(z, x, y);注意 x y 还是按顺序
  • bind_back 和 bind_front 一样实现都是利用了 lambda 搭配 variadic templates

C++ Weekly - Ep 345 - No Networking in C++20 or C++23! Now What? https://www.youtube.com/watch?v=v6m70HyI0XE

  • 实际就是可以从 conan/vcpkg 安装的一些网络相关的 lib 的介绍

C++ Weekly - Ep 344 - decltype(auto): An Overview of How, Why and Where https://www.youtube.com/watch?v=E5L66fkNlpE

  • 介绍 decltype(auto) ;作为函数返回类型的时候,返回值,返回类型就会推导为值类型,引用的话就会推导成引用,可以作为 perfect returning 的用法(和 perferct forwarding 对应)

C++ Weekly - Ep 343 - Digging Into Type Erasure https://www.youtube.com/watch?v=iMzEUdacznQ

  • 展示了一下一个简单的 type erasure 怎么做
  • 感觉这个 sample 亮瞎了,值得吃透,实际的 impl 通过 captureless lambda 简化好多

Go: the Good, the Bad and the Ugly https://www.bluxte.net/musings/2018/04/10/go-good-bad-ugly/

  • 这篇长文还不错,讲了很多 golang 的优点和设计上的坑点
  • 坑点中我觉得大多数都还好,毕竟搞后端业务来来回回就那些,别用 golang 做一些不合适的需求就行;不过那个 interface 存一个 nil 但是 interface 自己不为 nil 确实挺坑的,还好日常中会遇到的概率低

GCC’s new fortification level: The gains and costs https://developers.redhat.com/articles/2022/09/17/gccs-new-fortification-level#

  • gcc-12 开始引入 _FORTIFY_SOURCE=3 可以对 glibc 和一些内建库做加固;level-3 是有 runtime check,引入了一点 runtime overhead 但是 cover 的范围更广了

Reducing Signed and Unsigned Mismatches with std::ssize() https://www.cppstories.com/2022/ssize-cpp20/

  • 没啥好说的,就是引入了 std::ssize() 可以把容器的大小返回为有符号

#2

在给 http-router 的 locate 加 tests 时发现了很早之前写的 insert path 部分的逻辑有问题,也不知道当初是咋写的。。。

在老婆家用笔记本配合 vscode 的 mscpptool debugger 定位到了问题,然后把相关的代码给 fix 了


好了这周就这样,下周见