charles-munger
Charles munger —- 查理芒格 芒格 思考问题总是从逆向开始。在其漫长的一生中, 持续不断的研究、收集关于 各种各样的人物、各行各业的企业、以及政府管制、学术研究 等各个领域中 的人类失败的案例。并将那些失败的案例原因 列为 正确决策的检查清单,使自己 在决策中少犯错误。如果要明白人生如何得到幸福, 查理首先研究的是人生如何才能够变得痛苦 很多一流的专家学者, 能够在自己的...
Charles munger —- 查理芒格 芒格 思考问题总是从逆向开始。在其漫长的一生中, 持续不断的研究、收集关于 各种各样的人物、各行各业的企业、以及政府管制、学术研究 等各个领域中 的人类失败的案例。并将那些失败的案例原因 列为 正确决策的检查清单,使自己 在决策中少犯错误。如果要明白人生如何得到幸福, 查理首先研究的是人生如何才能够变得痛苦 很多一流的专家学者, 能够在自己的...
格雷厄姆之道(如何在中国实践价值投资) 现在已然衰朽者, 将来可能重放异彩;现在备受青睐者,,将来却可能日渐衰朽。 原理 价值投资: 价值投资不会让你一夜暴富,但它可以在保证本金安全的前提下让你的财产增值 价值投资:用远低于公司内在价值的价格购买该公司的股票 金融思维和商业思维: 商业思维 这个公司值多少钱...
A Little Book on Shell 常用 command file cp mv mkdir rm ln 其中ln 命令 ln file link, 默认 创建 hard link, ln -s file link 才 为 soft link, soft link 同样增加 file 的link count Working with Commands (type w...
deep rails stack
deep rails stack
redis 总结: redis 已经看了不少,也写了不少,但是总是 没有一篇文章能够将其贯穿起来。 发现并没有太好的形式 将其总结下来。 曾经使用调用栈的方式将 代码+文档的形式记录下来。但缺少足够的大局观,写大片的理论文章又缺少足够的细节。 Redis Server 整体结构: server.c 中的 main 函数 /Users/lishaohua/Documents/sel...
设计模式 Design Patterns: 是在编写软件时解决常见问题的方法。 Anti-patterns: 反模式是解决这些相同常见问题的方法。 然而,虽然设计模式给我们带来了好处,但反模式却带来了更多的问题。 idioms(惯用方法): 是编码时要遵循的准则。 它们是社区的社会规范。 你可以打破它们,但如果你这样做了,你应该有一个很好的理由。 示例: 使用...
内存管理 因为: 不管存储器多大,程序都可以将其填满。 所以: 分层存储器体系: 在这个体系中,存在 MB 的快速、昂贵、易失性的高速缓存,GB的速度价格适中的同样易失的内存 ,以及 TB的低速、廉价、非易失的磁盘存储。 操作系统的工作之一 就是 将层次存储系统体系 抽象成为一个 有用的模型 并管理这个抽象。 分层存储器系统称为 存储管理系统: 他的任务是 有效的管理内存,即...
现代操作系统: 抽象是管理复杂性的关键, 好的抽象可以把一个 不可能管理的任务 分为 两个可管理的部件。 抽象的定义和实现 + 用这些抽象解决的问题。 操作系统的任务 就是 创建好的抽象 并实现和管理它所创建的抽象对象。抽象内容是理解操作系统的关键。 作为资源管理者的操作系统: 资源管理包括 以下两种不同方式实现 多路复用(共享)资源:时间上 复用 + 空间上复用 。 时...
并发模型 OS threads: 1) 不需要改变代码编码模式 2) 线程间 同步困难 3) 性能开销比较大, 线程池 可以一定程度上减少这些开销, 但是并不能够支撑起 庞大的IO 工作 事件驱动模型(Event-driven): 结合callback, 性能非常好,但是 导致 非线性的控制流, Data flow and error propagation is often...
Mysql Relearn 内存模型: Change BUffer: 缓存 不在Buffer pool 中的 索引页的变动, 变动 可能由 insert update, delete 等操作 导致, 将在以后 页面 被加载到 Buffer pool时 被合并 不同于 聚簇索引, 普通的索引 通常是不唯一的,索引 的插入 删除 更新 通常是 rand...
Redis 建立链接过程
Rust little book rustup: rust complier 的管理工具, 可以方便的切换 stable, beta, and nightly cargo 是rust的包管理工具, 用来 下载 rust的依赖, 编译, 以及 分发 到 crates.io 在安装 rust 之后, cargo 也会被自动安装上 cargo 提供了一些有用的工具有: ...
link & compile 为什么c语言中的 header file *.h 一定需要 防止重复被include 呢? 而为什么一定需要 header file的存在呢? header file 需要存在原因有: 1) .c 文件 变为可执行文件,需要 编译、链接 两个阶段, 而链接中 是可以将 不同的 类型编译过的文件进行 链接的。 随着程序的复杂, 比如 函数参数的 传...
A Little Book on Java 的总结 Basic 编译 与 运行 编译: javac First.java 产生一个 First.class 文件 运行:java First 将运行 编译之后 First.class java 编译器 将 源代码 中的每个 class 转变为 对应的 class file 并存储 其 字节码 有 ma...
入门 三张表: 资产负债表、利润表、现金流量表, 每张表分别存在 合并报表 和母公司报表 上市公司本部的经营情况: 母公司资产负债表、母公司利润表、母公司现金流量表,加上母公司所有者权益变动表 合并报表: 并不是一个真实存在的法律实体. 它合并了上市公司本部经营及其控制的子公司、孙公司经营情况。合并时,会抵销这些母子公司、子孙公司之间的投资、交易和债权债务。 财报中其他用到“母...
Week book 总结、回顾了 Rust语法, 因为rust的语法,实在有些奇怪,rust the book是非常好 指南,然而其 介绍的内容是非常 循序渐进的,缺少一个完整的、提纲挈领的 总结性视角。导致阅读周期很长的话,总是不能够通篇概览,所以有必要写一篇概览的文章。 在总结完成之后,对rust代码也不会存在一个 抵触、懵逼的状态。所以简单的完成了, rune buff的...
Ownership Rules Each value in Rust has a variable that’s called its owner. There can only be one owner at a time. When the owner goes out of scope, the value will be dropped. Scope : { //...
僵尸进程 在父进程执行wait之前, 其子进程就已经终止,这将会发生什么?此处的重点在于: 即使子进程已经结束,系统仍然需要允许父进程在其之后的某一时间去执行wait,来获取子进程的结束状态。 所以内核将子进程转为僵尸进程来完成情况的处理,无法通过信号来杀死僵尸进程,这保证了父进程总是能够使用wait方法。这时候会释放子进程把持的发部分资源。以便供其他进程重新使用,其所保留的仅有内核进程...
文件系统 文件系统是对文件和目录的组织集合 设备 划分 实际设备(键盘、鼠标、磁盘)和虚拟设备(不存在与之对应的硬件,内核为其提供的一种抽象。比如ssh登录?) 字符类型,块设备。字符类型有键盘、终端等。典型的块类型设备是磁盘 设备专用文件: 与系统的某个设备相对应,每个设备类型都有与之相对应的设备驱动程序。用来处理设备的所有I...