geyingqiの博客

正在通往 steins gate 的道路当中.......

客户/服务器程序设计范式

unix 网络编程第30章读书笔记, 这里只记录大致实现方式, 具体代码实现还请阅读此书 TCP 迭代服务器 完全同步方式, 完全处理某个客户的请求之后才专向下一个客户,优点是代码简单,并且没有进程控制所需的时间 TCP 并发服务器程序, 每个客户一个子进程 传统上并发服务器调用fork 派生一...

2019-04-07 12:42:22

阅读数 23

评论数 0

raft 简介

分布式一致性算法(Distributed Consensus) 首先我们有一个单点系统 你可以认为这个系统是一个database server 并且只存储一个value 我们有一个client 可以send value to this server 对于一个节点,达成协议 or 保...

2019-06-05 12:34:02

阅读数 6

评论数 0

数据推送方式- polling vs Websocket vs SSE

我们可以使用以下三种方式来创建一个实时的web应用程序 Long polling or short polling(client pull) WebSocket(server push) Server-Sent Events(server push) client pull: 客户端以一定的间...

2019-04-11 00:19:11

阅读数 28

评论数 0

tcp要点总结之链接篇

TCP 三次握手 sequenceDiagram client->>server: SYN J server->>client: SYN k, ack J+1 client->&a...

2019-03-10 22:29:31

阅读数 14

评论数 0

代码编写原则

避免重复原则(DRY – Don’t repeat yourself)   编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。 抽象原则(Abstraction Principle )   与DRY原则相关。...

2018-12-20 16:51:50

阅读数 101

评论数 0

modern python dictionaries

本文是pycon 2017上的演讲, 主要涉及python 字典的实现,以及如何实现一个更加高效的字典, 主要改进的地方就是讲key的hash值进行保存,当rehash的时候不用重新计算所有的key值,可以大大提高效率 视频地址: YouTube import array impo...

2018-08-23 11:52:03

阅读数 47

评论数 0

避免使用 Python 的 hasattr()

不要使用 python 中的 hasattr() 除非你只在python3环境中使用它并且知道它的内部原理 总的来说,不要以如下方式使用 if hasattr(x, "y"): print x.y else: print &quo...

2018-07-16 20:23:02

阅读数 98

评论数 0

tornado ioloop

初步解析 socket 流 import socket EOL = b'\n\n' response = b'HTTP/1.0 200 OK\r\nDate: Mon, 1 Jan 1996 01:01:01 GMT\r\n' response += b'Content-Type: t...

2018-07-09 21:06:45

阅读数 277

评论数 0

python OrderedDict 详解

OrderedDict 是 collections 提供的一种数据结构, 它提供了有序的dict结构。 先把源代码贴一下 class OrderedDict(dict): '记住插入顺序的字典' # 一个继承自dict的键值对字典 # 继承的字典提供 __getit...

2018-07-06 14:18:22

阅读数 9481

评论数 0

计算机基本组成原件— 加法器, 振荡器,触发器

基本元件 加法器 origin: + 0 1 0 00 01 1 01 10 add: + 0 1 0 0 1 1 1 0 这个是由一个或门与与非门组成的...

2018-06-05 14:57:42

阅读数 384

评论数 0

关于生成器在类中作用域混乱的问题

第一种方式: python 2: class A(object): x = 4 gen = (x for _ in range(5)) a = A() print(list(a.gen)) result: Traceback (most recent c...

2018-06-05 14:54:14

阅读数 47

评论数 0

A Curious Course on Coroutines and Concurrency 翻译

这是David Beazley 在 Pycon 2009 做的讲座,下文是初步的翻译 总体概述 协程是什么? 我们可以用协程做什么? 我们应该在意协程吗? 使用协程是否是一个好主意? 图片概述 头部爆炸指数图表, 随着本文的持续推进, 难度逐渐上升 纵轴分别是 起...

2018-04-28 10:58:26

阅读数 139

评论数 0

why numbering should start at zero 部分翻译

去表示一个由自然数组成的序列2, 3, …12, 有以下四种表达方式 a) 2 <= i < 13 b) 1 < i < 12 c) 2 <= i <= 12 ...

2018-02-27 19:37:31

阅读数 62

评论数 0

深入理解Global Interpreter Lock

本文是David Beazley 在chipy上演讲的ppt, 深入的介绍了GIL的相关表现及原理, 此文是在简单翻译的基础上加上了一些其他地方查看的资料组合而成 先让我们做一个实验 如下是一个CPU-bound的方法 def countdown(n): while ...

2018-01-26 20:50:43

阅读数 358

评论数 0

编码相关整理

基本名词 编码 是信息从一种形式或格式转换成另一种形式的过程。 解码 是编码的逆过程 以上是维基百科上对编码与解码的解释,可以说这是一个通俗的解释,但是这个地方要是放在计算机编码上可以说是有些歧义。 编码(Encoding)专门是指从字符转变成字节(位元组),解码(Decodi...

2017-09-14 21:09:40

阅读数 220

评论数 0

securecrt 远程映射端口

使用securecrt 做远程端口映射,使得本地应用程序可以远程访问服务器的服务 拿robomongo为例,如果身在内网环境还好说,直接填写ip即可连接mongol数据库。但是如果不在内网环境,又或者无法直接通过ip来链接远程数据库,这时候就可以使用securecrt 的本地端口转发功能。 他...

2017-01-17 00:21:05

阅读数 1194

评论数 0

mac下Ctrl 系快捷键

最近入手了hhkb,深感其键位设置精妙,目前已经离不开了。 Ctrl+p shell中上一个命令,或者文本中移动到上一行 Ctrl+n shell中下一个命令,或者 文本中移动到下一行 Ctrl+r 往后搜索历史命令 Ctrl+s 往前搜索历史命令 ...

2016-12-22 20:43:06

阅读数 1858

评论数 0

python中静态方法和类方法

方法是作为类属性保存的函数 def get_size(self): pass在python2, 3中的不同点。 2: Pizza.get_size(), 会报一个未绑定的函数的错误 3: Pizza.get_size(), 会报一个缺少参数的错误, 即,pyth...

2016-09-30 15:02:06

阅读数 222

评论数 0

python 中set为何不是hashable

>>> set([set()]) traceback(most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type:...

2016-09-30 14:32:19

阅读数 797

评论数 0

python OrderedDefaultDict 的实现

ordereddefaultdict

2016-08-31 10:54:31

阅读数 430

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭