daily-learn
mysql_conn doam_217_realm1 -e “show tables” > ~/tables.txt cat ~/tables.txt | grep 2019 > ~/i_tables.txt mysqldump $(echo ~/i_tables.txt) -h 10.9.88.246 -pdragonsmobile doam_217_realm1 -u dra...
mysql_conn doam_217_realm1 -e “show tables” > ~/tables.txt cat ~/tables.txt | grep 2019 > ~/i_tables.txt mysqldump $(echo ~/i_tables.txt) -h 10.9.88.246 -pdragonsmobile doam_217_realm1 -u dra...
Rails Timezone TimeZone 是 rails 为ruby扩展的一个 有用工具。 application.rb config.time_zone = “Beijing” 可以指定整个应用的timezone。 然而, 使用timezone依然需要一个特定的方法调用,才能够使用rails 提供的扩展。 相关代码如下: activesupport/lib/active_su...
书籍推荐 深入理解计算机系统 神书, 其令人惊艳的地方在于,真正的做到了漫游了计算机系统,名副其实, 从硬件到软件、从 逻辑硬件到 流水线cpu设计架构,从 指令集 到 高级语言, 从顺序执行到并发执行。。。。 其包罗万象、贯穿了整个计算机,而又不失深度。 这本书大概可以作为计算机各个领域的一个敲门砖,因为计算机发展到今天已经足够深, 所以在单独的领域中依然需要专门的数据来深入探...
Charles munger —- 查理芒格 公用品悲剧的水滴筹与搞笑的德云社 是一種涉及個人利益與公共利益對資源分配有所衝突的社會陷阱 是一类涉及个人利益与公众利益 对资源分配有所冲突的社会陷阱。那由最大人数所共享的事物,卻只得到最少的照顾。 公共草地上,有一群牧羊人,每一个牧羊人都想要多获利一些,所以某个牧羊人就带了大量的羊來放牧,虽然他知道过度放牧,草地可能会承受不住。但他依然...
The linux programming interface 进城组、会话和作业控制 进程组和会话在进程之间形成了一种 两层的层次关系。 进程组: 是 相关进程的集合, 会话: 是 相关进程组的集合。其目的是为了支持shell的作业控制,而定义的抽象概念,使用户通过shell能够交互的在前台或后台运行命令 进程组: 一个或多个共享同一进程组标识PGID的进程组成。PGID的数值为...
The linux programming interface 管道, FIFO 管道是UNIX系统上最古老的一种IPC方法,可以用来在相关进程间传递数据。FIFO 则是 管道 概念的一个变体, 区别在于 FIFO可以用于 任意进程间的通信 管道 shell命令中使用管道最为常见。比如 ls | wc -l, 示意图如下: 为执行该命令, shell创建了两个进程来分别...
The linux programming interface Socket socket是一种IPC方法, 它允许位于同意主机或者网络连接的不同主机 上的应用程序之间交换数据(第一个被广泛接收的socket API 实现于 1983年,现在这组API 已经被移植到了大部分的计算机系统上) socket(domain, type, protocol): 系统调用 ...
The linux programming interface 文件IO 通用的IO模型 文件描述符: 一个非负整数,来指代打开的文件,其中包括: 管道FIFO socket,终端 设备 普通文件 标准文件描述符: 文件描述符 用途 名称 stdi...
The linux programming interface 内存分配 在堆上分配内存, 进程可以通过增加堆的大小来分配内存, 堆就是一段长度可变的连续的虚拟内存,初始于 进程未初始化的数据段末尾,随着内存的分配和释放而增减。通常将堆当前内存边界成为 program break brk(vodi * end_data_segment), sbrk(int in...
The linux programming interface 进程 进程 是可执行程序的实例 进程号 和 父进程号: 每个进程都有一个PID, 唯一标识 某个进程,除了少数(init PID 为1) 之外,多数程序与运行该程序的进程PID没有固定关系。 linux内核限制 进程号小于 32767,当进程号达到这个限制时候,内核将重置进程号计数器,重新从最小的整数开始分配。(进程号计数...
The linux programming interface 深入探究文件IO 原子操作: 将某一系统调用所要完成的各个动作作为不可中断的操作,一次性加以完成, 是许多系统调用的以正确完成的必要条件 竞争状态是这样一种情形:操作共享资源的两个进程或线程,结果取决于 一个无法预期的顺序,即这些进程获取CPU使用权的先后相对顺序 open, 保证进程是打开文件的创建者,对文件是否...
The linux programming interface 系统编程概念 无论何时,执行了系统调用或者库函数,检查调用的返回状态以确定调用是否成功,是一条编程铁律。(消灭nil就好了) 系统调用 借助这一机制,进程可以请求内核以自己的名义去执行动作,以API 的形式,内核提供一系列服务供程序访问。(创建进程, IIO操作等)可以参考 csapp中的 异常控制流章节。 系统...
The linux programming interface 基本概念 内核 通常的定义,1)完整的软件包, 这包括用来管理计算机资源的核心软件 以及附带的标准软件工具(shell,图形用户界面, 文件工具)2) 狭义的层面,是指管理和分配计算机资源的核心软件 职责: 1)进程调度, 2)内存管理, 3)文件系统, 4)创建和终止进程, 5)设备管理, 6)联网, 7)提供系...
redis-rb 为ruby 连接redis的客户端 项目结构 项目本身依赖于 hiredis,而hiredis 本身是一个redis client c的包装。并没有搞懂为什么需要依赖redis client 项目目录结构如下 /lib |---- redis.rb |---- /Redis |---- connection.rb ...
计算机程序的构造和解释 ——— 序 --------- 关注程序的创建、执行和研究。使用Lisp方言书写 本书中讨论的各种问题主要涉及到: 人的大脑,计算机程序的集合,以及计算机本身。每一个计算机程序都是现实中的或者精神中的某个过程的一个模型。通过人的头脑孵化出来,这种过程出现在人们的经验或者思维中。很少能够通过程序将这种过程模拟到永远令人满意的程度。 因为这个原因,程序...
计算机系统漫游 代码从文本到可执行文件的过程(c语言示例): 预处理阶段,处理 #inlcude <stadI/O.h>, #define MAX 100 编译阶段:将文本编译成汇编程序,hello.s 汇编阶段:汇编器将上一步的程序翻译成机器指令。hello.o 链接阶段就:hello 中调用的printf函数,...
The Art of unix programming 哲学 哲学基础: unix 哲学并不算是一种正规设计方法, 不打算从计算机科学的理论高度产生出完美的软件, 那些毫无动力、松松垮垮的,薪水微薄的程序员,能在短短期限内,如同神灵附体般的创造出稳定而又新颖的软件, 这只不过是经理人永远的梦呓罢了。 (社会经济学基础) unix 哲学,是自下而上的,注重实效,立足于丰富的经...
The Definitive Guide css css 和 文档 * 层叠: css中解决样式冲突的规则,称为层叠 * 元素: ```text 替换、非替换元素 替换元素: 用来替换元素的内容部分,并非由文档内容直接表示。<img src='xxx'> 标记片段中不包含任何具体内容,只有一个属性 非替换元素:大多数元素都是非替换元素。 ...
Phoenix 1.3 learn 常用命令 ``` mix phx.new hello mix deps.get mix deps.compile iex -S mix phx.server mix ecto.create mix phx.server ``` lib/hello_web 保存web相关的代码, ``` |-- channels | |-- ...
Design 思考设计 context 是专门用来 组织、暴露 相关的功能的module。比如我们每次调用Elixir标准库 Logger.info, 其实是在接触不同的context, 在内部, Elixir Logger是由 诸如 Logger.Config. Logger.Backends 的module组成的, 但是我们从来不会直接跟这些module交互, 我们使用Logger ...