2019年2月14日

刚看snl塞隆开场,穿高跟比所有演员都高,特意查了下,塞隆身高177。。

#每日学英语# IRL in real life LGTM looks good to me

2019年2月15日

0==NULL==’\0’ evil c

编译用 -g3 信息更多一些

为啥午休期间排练。还在工位附近的会议室。。

Unix编程艺术这本书当初没有好好看啊。看英文版感觉都是新的(也可能是我英语太差了)

#每日学英语# roughly 也见过多次了

But Unix’s byte-stream metaphor is so central that Unix has trouble integrating software objects with operations that don’t fit neatly into the byte stream or file repertoire of operations (create, open, read, write, delete). This is especially a problem for GUI objects such as icons, windows, and ‘live’ documents. Within a classical Unix model of the world, the only way to extend the everything-is-a-byte-stream metaphor is through ioctl calls, a notoriously ugly collection of back doors into kernel space.

绑上意识形态的东西会让人不适,尤其是在中国。二元观的老铁太多,非黑即白

宁浩:咋没人说公路片元年

2019年2月16日

raw io: 无缓冲的I/ O 则绕过了这种复制操作。用户进程可以使用这种类型的I/ O,它在UNIX 的行话中称为原始I/ O(raw I/ O)。术语“原始I/ O”来源于这一事实,即通过一个缓冲区进行复制的数据被认为是经过处理的,或者说“被加工过的”。因此,没有复制的数据则被认为是“原始的”。在采用原始I/ O 的情况下,I/ O 设备使用DMA(direct memory access,直接内存访问)操作直接把数据传送到用户缓冲区。内核在有缓冲的I/ O 期间所缓冲的数据最终也使用DMA 传送到设备上,或者从设备上传送到缓冲区中。所以,既可以在用户地址空间也可以在内核地址空间执行DMA

文件映射:一旦文件被映射到进程地址空间内,这个文件就可以作为地址空间内一段连续的字节区被直接访问。这就让进程可以使用内存的加载和保存操作而不是系统调用read 和write 来访问文件的内容。映射文件在逻辑上与共享内存类似:映射到同一文件的多个进程可以选择共享映射,从而让一个进程所做的改动也可以出现在其他进程的地址空间内。?内存加载保存操作是啥?

brk:系统调用sbrk 和brk 都可以被一个进程用来分配或者收回它的bss 段空间。这两个系统调用都以bss 段的“BReaK address”(断开地址)而得名。这是在bss 段内进程能够访问的最大合法地址。断开地址和栈顶部地址之间的虚拟存储区不会被映射到任何物理存储器上,进程无法访问到它们(眼下忽略共享内存和映射文件)。系统调用sbrk 和brk 能够让进程改变它的断开地址,从而增长或者缩小bss 段的大小。系统调用sbrk 接受一个代表断开地址增量变化的有符号值作为参数,而系统调用brk 接受一个作为新断开地址的虚拟地址作为参数。如果进程请求增大bss 段,那么内核就正好在原来的断开地址之上分配虚拟内存,从而让进程能够访问到这部分地址空间。新分配的bss 内存被定义用0 来填充。bss 段只能向更大的地址增长,它的起始地址是固定不变的。支持新分配的虚拟内存的物理存储器则根据需要来分配,因为它是由进程来引用的。如果缩小了bss,那么在新老断开地址之间地址范围内的虚拟和物理内存都将被释放。访问权限也变了,于是进程再也不能访问它

只要两个进程都没有企图修改数据,那么就会继续保持共享关系。当两个进程中的一个要写入一个只读页面的时候,就发生了一次保护陷阱(protection trap),内核会截获到这个陷阱。内核复制出进程正在尝试修改的单个页面的一个副本,用它来替换该页面在那个进程的地址空间中被共享的副本。这种做法只用于执行写操作的进程,其他进程的地址空间不受影响。采用这种方式时,可以在父进程和子进程之间共享尽可能多的地址空间,而仅仅根据需要复制那些进程所修改的单独页面的副本。这种处理对于两个进程都是透明的,从而造成复制了整个地址空间的假象。

2019年2月17日

#今日快捷键# virtual box切鼠标 right ctrl

找haikuos资料。看到知乎一个热门答案,列了haiku中文社区网址。我点进去一看,黄网。

#每日学英语# haiku (日本)俳句 hayaku快点

这种泛滥的跟人长镜头如果没有剧情交织就很像stalker

长镜头拍车能理解,长镜头拍群戏交互也能理解,长镜头拍一个人从村子里走到河边船上这有啥用?胶片不要钱吗是吗

长镜头买菜

ifttt在国内这些微博客平台无效,那有没有一种还是微博同步多平台方案,想到用便签工具分享。我现在用锤子便签写一次分享两次,复制粘贴问题是解决了。 新问题

  • 字数限制,转发不能超过140,一到超过同步以及ifttt都不行了。忍忍也行。
  • 一键分享多平台?一个一个分享有点傻逼。

又遇到 sram(cache) dram(memory) 以及ddr4到底是什么意思。大学白学了。

在这种架构下,在一个配有四核的机器中,不需要一个复杂的北桥就能将内存带宽增加到以前的四倍。当然,这样的架构也存在缺点。该系统中,访问内存所花的时间和处理器相关。之所以和处理器相关是因为该系统每个处理器都有本地内存( Local memory ),访问本地内存的时间很短,而访问远程内存( remote memory ),即其他处理器的本地内存,需要通过额外的总线!对于某个处理器来说,当其要访问其他的内存时,轻者要经过另外一个处理器,重者要经过 2 个处理器,才能达到访问非本地内存的目的,因此内存与处理器的“距离”不同,访问的时间也有所差异,

为了改善对内存的访问瓶颈,出现了另外一种系统设计,内存控制器并没有被集成在北桥中,而是被单独隔离出来以协调北桥与某个相应的内存之间的交互,这样的话,北桥可以和多个内存相连。 这种架构增加了内存的访问带宽,缓解了不同设备对同一内存访问的拥塞问题,但是却没有改进单一北桥芯片的瓶颈的问题。为了解决这个瓶颈,产生了NUMA (Memory Architecture ,非一致性内存架构)系统

“信心游戏“心理学。通常人们认为受骗的都是傻子,所以很多人不愿意承认自己上当了

2019年2月18日

Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下, 这些命令将降低 Redis 集群的性能, 并导致不可预测的行为。fuck mset

关系模型由三部分构成:表单 (form) 、功能 (function) 和一致性 (consistency) 。表单表示信息的结构。在关系模型中只使用一种单独的数据结构来表达所有信息,这种结构称为关系 (relation ,在 SQL 中被称为表、 table) 。关系由多个元组 (tuples ,在 SQL 中被称为行、记录、 rows) 构成,每个元组又由多个属性 (attributes ,在 SQL 中被称为列、字段、 columns) 构成。

2019年2月19日

#每日学英语# Cardinality 基数 数据的一种度量,high cardinality 数据范围分散比如名字邮箱,low cardinality 数据范围窄比如性别

#sqlite#除了知道什么函数做什么,你还需要从比 API 高的角度来看问题,看看所有这些函数在事务 (transactions) 中是如何操作的。 SQLite 的所有的工作都是在事务中完成的。于是,你需要知道在 API 之下,事务如何按照锁的约束来工作。如果你不知道锁是如何操作的,这些锁就会导致问题。当对锁有所了解之后,你不仅可以避免潜在的并发问题,还可以通过编程控制它们来优化你的查询。

#sqlite#关系操作 SELECT 中使用 3 大类 13 种关系操作:基本的操作 Restriction( 限制 ) Projection Cartesian Product( 笛卡尔积 ) Union( 联合 ) Difference( 差 ) Rename( 重命名 ) 附加的操作 Intersection( 交叉 ) Natural Join( 自然连接 ) Assign( 指派 OR 赋值 ) 扩展的操作 Generalized Projection Left Outer Join Right Outer Join Full Outer Join

#sqlite#SQLite 使用锁逐步上升机制,为了写数据库,连接需要逐级地获得排它锁。 SQLite 有 5 个不同的锁状态:未加锁 (UNLOCKED) 、共享 (SHARED) 、保留 (RESERVED) 、未决 (PENDING) 和排它 (EXCLUSIVE) 。每个数据库连接在同一时刻只能处于其中一个状态。每种状态 ( 未加锁状态除外 ) 都有一种锁与之对应

#每日学英语# ad hoc,生活就是一团ad-hoc

#golang#map是一个由make函数创建的数据结构的引用。make slice map channel 特例让人不适 而且 for range <- ch我迷惑一晚上。到底是啥

#每日学英语# pivot 中心,枢纽,目标

#每日学英语# Cardinality 基数 数据的一种度量,high cardinality 数据范围分散比如名字邮箱,low cardinality 数据范围窄比如性别