斯卡雷特单推委员会

数十億もの 鼓動の数さえ あなたには 瞬き程度の些事な等級

用 RedShift 调节色温

给你的晶状体和视网膜续命

为什么蓝光会伤害你的眼睛 广义的蓝光泛指波长范围在 400nm-460nm 之间的具有相对较高能量的可见光, 长时间且高强度的蓝光照射会对视网膜细胞造成不可逆的损伤. 发表在眼科学顶级期刊 Progress in Retinal and Eye Research 中的论文 Do blue light filters confer protection against age-relate...

关系型数据库(二)

事务的隔离级别与并发控制

事务 什么是事务, 数据库系统概论中的定义 mylsam不支持事务, 引入innodb之后才支持事务 原子性 mysql中如何保证原子性? undolog 一致性 从一个正确的状态迁移到另一个正确的状态, 但这种学术化的定义在实际中几乎无法满足 数据库本身无法保证 一致性一般有应用层的业务逻辑来保证 隔离性 并发数据问题与对应的隔离级别 1 脏读 不可重复读 幻读...

关系型数据库(一)

自顶向下的体系结构分析

从文件到数据库系统 关系型数据库出现之前的历史 1945年, ENIAC 在曼哈顿计划结束后,这些女性之后很多都投入到了电子计算机的研发之中, 成为了著名的“The Ladies of ENIAC”。 曼哈顿计划 现代电子计算机 但ENIAC没有外部存储 而作为曼哈顿计划参与者的冯诺依曼也备受这无存储 在诞生之初, 很多概念都是对现实事物的抽象. 例如文件就对应现实中的纸质文件...

分布式爬虫(二)

高级搜索与爬虫框架

高级搜索与简单静态爬虫 高级搜索关键字 通过使用高级搜索关键字可以有效限定搜索范围, 进而过滤得到指定的内容. 常用的关键字及对应用法如下: contains:文件后缀 - 确保搜索结果指向包含指定文件后缀的页面. 搜索CODEX破解的单机游戏种子codex contains:torrent 搜索软件压缩包nginx contains:gz ...

分布式爬虫(一)

Linux多任务编程

分时操作系统中的多任务编程 早期的可编程电子计算机都遵循串行单任务模型, 即单个程序运行期间无法同时执行其他任务, 所有的运算资源都被当前运行的程序所独占. 然而串行程序在运行过程中访问外部存储设备、网络以及数据库时造成的CPU运算资源大量浪费也逐渐引起了人们的重视, 以多任务思想为核心的多进程模型就在这样的背景下诞生了. 并行与并发 在实际应用中, 并发(concurrency)的出...

Bash 中命令的种类

身经百战见得多 哪种命令没用过

命令的种类 Bash 中支持以下三类命令: shell 函数: 按照 shell 编程的语法构造的可多次调用的特殊代码块, 与其他语言不同的是, shell 中的函数没有形参列表, 但却可以在调用函数时传递任意数量的参数, 函数内部通过 $N 的方式获取传入的第 N 个位置的参数. 我们可以用 typeset -f 命令查看当前 shell 中定义的所有函数, 通过下列命令可以直接显示函...

深入理解数据结构(五)

从分治法到动态规划

案例1: 分治算法 分治思想是并行计算的理论基础基础, 只有能被合理拆分并独立计算的任务才能被并行化处理 Karatsuba 算法 分治算法 例题 归并排序 快速傅里叶变换 数组中的逆序对 顺时针打印矩阵 案例2: 贪心算法 所谓的贪心策略, 就是在求解问题的每个步骤时都做出当前情况下的局部最优选择. 显然, 使用这种重视局部而忽略整体的策略并不一定能得出全局最优解, 但...

深入理解数据结构(四)

哈希表中的数学原理

哈希表 哈希表(Hash Table)是经典的键值存储(Key-Value)数据结构, 其特点是随机访问时需要先通过哈希函数计算每个键所对应的哈希值, 再通过索引映射函数得到哈希值在哈希表中的真实索引, 最后根据键的真实索引得到其对应的值. 令哈希函数为$hash()$, 索引映射函数为$index()$, 则在给定的哈希表$T$中, 得到键$k$所对应的值$v$的过程可以描述如下: ...

深入理解数据结构(三)

集合与链表

集合型结构 十九世纪末集合论的出现让百家争鸣的近代数学得以形式化的统一, 集合论的强大之处就在于大部分现实问题都可以抽象为集合之间的运算. 在离散数学中, 确定性: 互异性: 无序性: 可散列结构: 不可变类型 特点: 空间换时间 现代计算机编程语言中的集合型结构都是基于哈希算法实现的 理想情况下, 哈希算法应该保证所有不同的输入都能映射出唯一确定的 更多关于哈希表 可以参考哈...

深入理解数据结构(二)

序列的排序与查找

在任何一本数据结构教材中, 排序与查找都会被当做最基础的算法来介绍. 对序列型结构而言, 熟练掌握高性能排序与查找算法将显著提升业务处理效率. 在本节中, 我们将从Python为序列类型提供的sort方法以及针对所有可迭代对象的sorted高阶函数入手, 探索其内部实现的TimSort算法与常见的快速排序算法之间的差异. 而在查找算法方面, 本节将通过大量案例介绍双指针技巧和二分查找在序列结...