carl的修行

坚持做正确的事情, 做时间的朋友

0%

读写锁是作为pthread_rwlock_t数据类型的变量在内存中分配的。当读写锁是在单个进程内的各个线程间共享时,这些变量可以在那个进程内;
当读写锁是在共享某个内存区的进程间共享时,这些变量应该在该共享内存区中。

阅读全文 »

这是读写锁的一种扩展类型,可用于有亲缘关系或无亲缘关系进程之间共享某个文件的读写。这些锁用于不同进程间的上锁,而不是用于同一进程中不同线程间的上锁。

fcntl记录上锁,可以指定文件中待上锁和解锁部分的字节范围。
Posix记录上锁定义了一个特殊的字节范围来指定整个文件,它的起始偏移为0,长度也为0.

阅读全文 »

为什么选择证书登陆?

Mac下原生及主流的ssh终端工具大多不具备保存ssh登陆密码的功能, 通过证书登陆的方式,就可以实现原生终端工具Terminal或第三方明星终端iTerm免密码登录远程系统,并且比单纯的密码验证登陆方式提高了安全性。

阅读全文 »

接收人

  1. 收件人

    事件接棒人, 是需要对事件做出响应及跟进的人, 如果需要老板处理, 那么收件人就加上老板, 而不是抄送

  2. 抄送人

    事件知会人, 只需要知道邮件的内容就可以了, 不必要一定做出响应或去跟进

阅读全文 »

做 Code Review 的正反方观点

首先,我们先来看看正方的观点:

  1. Code review 中,可以通过大家的建议增进代码的质量。
  2. Code review 是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码。
  3. Code review 鼓励程序员们相互学习对方的长处和优点。
  4. Code review 可以被用来确认自己的设计和实现是清楚和简单的。
阅读全文 »

以下内容, 由富途CTO ppchen总结

  1. 【同步编码异步执行】兼顾运行效率和编码效率,希望代码写起来是同步和顺序的,而执行的时候是异步的
  2. 【IDL/RPC】支持IDL(接口描述语言)和RPC,减少网络协议相关的重复工作,协议有比较好的扩展性;远程调用友好且高效。要开发语言无关,因为你用c开发,不表示其他团队也用c调用你的接口,所以IDL要能生成常见语言的RPC。
阅读全文 »

发布环节

在经过一段时间的积累后, 会形成一套完善的发布流程, 此时, 在发布前能让自己提高的空间会越来越有限

发生运营事故后要怎么做

  1. 不是单纯地处理完问题就完事, 然后就阿弥托福以后不会再发生.
  2. 将每次运营事故都当成一次宝贵的学习机会, 仔细检讨为什么会发生该事故, 是什么问题导致的, 从根本上找出原因, 并找到解决方案, 不要再次发生类似的错误.
  3. 事故报告的改进措施, 不能简单的从思想层面去检讨, 下一顿决心就完事了, 事故报告也不是写完发给大家看一眼, 就完事了. 改进措施是必须要能够转化为工作量的实在的事情, 可以是1个周, 一个月, 一个季度, 但是一定要能够量化, 要能够实施, 并且认真地执行完成
  4. 要经常翻看以往的运营事故报告, 从前人的事故中成长, 这样才能避免不同的人去犯类似的错误.

本篇文章主要是参考左耳朵耗子前辈的博文整理而来, 作为自己学习备忘之用.

简介

awk是一个强大的文本分析工具, 相对于grep的查找, sed的编辑, awk在其对数据分析并生成报告时, 显得尤为强大. 简单来说awk就是把文件逐行的读入, 以空格为默认分隔符将每行切片, 切开的部分再进行各种分析处理.

awk有3个不同版本: awk, nawk和gawk, 未作特别说明, 一般指gawk, gawk是AWK的GNU版本.

awk其名称得自于它的创始人Alfred Aho, Peter Weinberger和Brian Kernighan姓氏的首个字母. 实际上 AWK 的确拥有自己的语言: AWK 程序设计语言, 三位创建者已将它正式定义为”样式扫描和处理语言”. 它允许您创建简短的程序, 这些程序读取输入文件, 为数据排序, 处理数据, 对输入执行计算以及生成报表, 还有无数其他的功能.

阅读全文 »

cmake中一些预定义变量

  • PROJECT_SOURCE_DIR 工程的根目录
  • PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/build
  • CMAKE_INCLUDE_PATH 环境变量,非cmake变量
  • CMAKE_LIBRARY_PATH 环境变量
  • CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径
  • CMAKE_CURRENT_BINARY_DIR target编译目录
    使用ADD_SURDIRECTORY(src bin)可以更改此变量的值
    SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对此变量有影响,只是改变了最终目标文件的存储路径
  • CMAKE_CURRENT_LIST_FILE 输出调用这个变量的CMakeLists.txt的完整路径
  • CMAKE_CURRENT_LIST_LINE 输出这个变量所在的行
  • CMAKE_MODULE_PATH 定义自己的cmake模块所在的路径
    SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake),然后可以用INCLUDE命令来调用自己的模块
  • EXECUTABLE_OUTPUT_PATH 重新定义目标二进制可执行文件的存放位置
  • LIBRARY_OUTPUT_PATH 重新定义目标链接库文件的存放位置
  • PROJECT_NAME 返回通过PROJECT指令定义的项目名称
  • CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS 用来控制IF ELSE语句的书写方式
阅读全文 »