Songqian Li's Blog

去历史上留点故事
第 0 章:一些你可能正感到迷惑的问题 摘记 0.28 MBR、EBR、DBR 和 OBR 各是什么 MBR 位于整个硬盘最开始的块, EBR 位于每个子扩展分区,各子扩展分区中只有一个逻辑分区。 MBR 和 EBR 位于分区之外的扇区,而 OBR 则属于主分区和逻辑分区最开始的扇区,每个主分区和逻辑分区中都有 OBR 引导扇区。 操作系统时如何被启动的? 计算机在接电后运行的是 BIOS,BIOS 进行一些简单的检测和初始化工作后,将存在0盘0道1扇区的主引导记录 MBR 加载到内存固定位置0x7c00,此时 BIOS 就把 CPU 使用权交给了 MBR。 MBR 扇区中除了引导...
首先,我们先了解一下什么是 Reactor 模式和 Proactor 模式。 什么是 Reactor 模式和 Proactor 模式? Reactor 模式 Reactor 模式是指主线程负责监听和分发事件,工作线程负责 I/O 以及业务处理。 Proactor 模式 Proactor 模式是指主线程负责监听、分发事件以及 I/O 操作,工作线程只负责业务处理。 为什么会分为这两种事件处理模式? 我们都知道 Proactor 和 Reactor 都是 I/O 复用的两种解决方案,他们的最主要的区别在于 Reactor 是同步 I/O,Proactor 是异步 I/O。 那什么是同步 ...
怎样设计出一个让面试官满意的架构 扩展视野,作者介绍了从一百个到千万级并发情况下服务端架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让读者可以对架构的演进有一个整体的认知。 《Effective C++》笔记 - 条款 18-25 重新过一遍,规范自己的开发习惯。 Linux 下 C++轻量级 Web 服务器 这是一个 C开源项目,帮助初学者快速实践 Linux 网络编程,也能帮助理解 HTTP 请求的过程。更优雅的 C实现:WebServer
科技爱好者周刊(第 180 期):你想住在中国哪里? 如果希望赚取高收入,愿意忍受大城市的高竞争、高压力、狭小嘈杂,那么选择一线大城市; 如果希望竞争小一些、生活轻松一点,可以选择沿海省份和中西部的中心城市; 如果希望享受宁静悠闲的生活,可以选择丽江、大理这样的小城市; 如果希望享受北美澳洲式地广人稀的生活,可以选择东北地区和西北地区。 一个人可以自主决定居住在哪个城市,以什么方式生活,并且不必放弃现代化的生活条件。我觉得,这才是理想的生活,是值得憧憬的奋斗目标。 对于程序员来说,年轻时在大城市打拼,有了积累之后,移居到其它地方,追求自己想要的生活,以后大概会成为一种潮流吧。
滑坡谬误(Slippery slope)指的是使用一连串的因果推论,夸大了每个环节的因果强度,而得到不合理的结论。 它的典型形式是,“如果发生 A1,接着就会发生 A2,接着就会发生 A3,接着就会发生 A4,……,接着就会发生 An”,然后推论“由于 An 不应该发生,因此我们不应允许 A1 发生”。从 A1 推论至 An 的过程就像一个滑坡。它的问题在于,每个“坡”的因果强度不一,有些因果关系只是可能、而非必然,有些因果关系相当微弱,有些因果关系甚至是未知或缺乏证据,因而即使 A 1 发生,也无法一路滑到 An,An 并非必然发生。若有充足证据显示每个“坡”都有合理、强烈的因果连结,...
HDMI 许可管理员: HDMI 2.0 不再存在,设备不应声称符合 v2.0,因为它不再被引用 HDMI 2.0 的功能现在是 2.1 的子集与 HDMI 2.1 相关的所有新功能和特性都是可选的(包括 FRL、更高带宽、VRR、ALLM 和其他所有内容) 这意味着所有 HDMI 2.0 的设备如今都可以并且应该被标记为 HDMI 2.1 的设备。 例如(小米 24.5 英寸 240Hz 高刷版) 中描述: 文章介绍了高清视频 HDMI 2.1 标准,并且讨论了这个外行人容易误解的细节:令人困惑的 HDMI 2.1 因此,消费者应了解商品所支持的 HDMI 2.1 是否支持 FR...
前提 阅读本文之前,需要已经正常搭建好 hexo 博客和语雀账号。同时我们需要准备: 一个 GitHub 账号 一个腾讯云账号 hexo 安装了 yuque-hexo 插件且能正常运行 实现思路: 利用语雀的webhook触发腾讯云云函数,云函数触发GitHub Action,Github Action 执行 hexo 的一系列命令从而实现自动同步。具体步骤详见:https://yichen115.github.io/2020/07/16/gtb5ck/ 注意 云函数是有免费额度的,正常使用不会超出。 日志服务是收费的,建议调试成功后删除日志资源。具体位置:点开具...
GIthub:https://github.com/lisongqian/Scriptable 百度网盘:https://pan.baidu.com/s/1gOCMtNkO10SUhOU6v3RP0w?pwd=41s8 2022-11-14 更新 新增世界杯赛程小组件。 英雄联盟小组件更改为显示最近赛程(不局限赛事类别)。 2022-01-20 更新 百度网盘文件已更新,目前支持 2022 春季赛。 旧版本的小组件用户可在 Parameter 中输入167即可显示 2022 春季赛赛程。 2021-10-11 更新 百度网盘文件已更新,目前支持 2021 全球...
格式化输出的执行顺序 由于 C 语言参数压栈顺序是从右往左,所以 printf 和 cout 函数在执行时是从右往左读入缓冲区,然后从左往右输出。 右值引用和左值引用 C++一共有三种基本值类型: 左值(lvalue), 纯右值(prvalue), 亡值(xvalue); 另外还有两种混合值类型: 泛左值(glvalue),右值(rvalue); 左值(lvalue)简单理解就是可以出现在=的左边,所以是可以被赋值的值;右值(rvalue)类似理解是只可以出现在=的右边,所以是不可以被赋值的值;左值(lvalue) = {泛左值(glvalue)} - {亡值(xvalue)}; 右值...
Promise Promise 最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了 123456789101112131415new Promise((resolve, reject) => { console.log("初始化"); resolve();}) .then(() => { throw new Error("有哪里不对了"); console.log("执行「这个」”"); }) .catch(() => {...