09 2017 档案
摘要:1 什么是convex hull 就是凸包,是计算几何中的一个概念,计算几何是计算机图形学的基础之一。 对于二维平面来说是这样的:对于二维平面上的点集,凸包是位于最外层的点构成的包围其它所有的点的凸多边形。 2 Graham's scan算法 第一,找initial点 y最小的点,如果有多个,选择x
阅读全文
摘要:1 编译gcc需要的依赖 gmp mpfr mpc isl binutils 将它们都安装在同一个目录下即可。 2 --disable-nls 将native language support关掉,只用english,可以加快编译,而且也没有用。 3 编译的时候指定gmp、mpfr、mpc的安装目录
阅读全文
摘要:1 filter(function, iterable) 等价于(item for item in iterable if function(item)) 就是说,filter会遍历iterable中的每个元素,如果function以该元素为参数的返回值为true的话,就留着。 filter函数的返
阅读全文
摘要:1 很好记忆 partial的第一个参数是函数,后面都是该函数的参数。 2 特殊的地方 partial第一个参数是函数名,但是第二个参数是另外一个函数名。 比如partial(filter, func, XXX)
阅读全文
摘要:1 什么是最大heap 最大heap是一棵完全二叉树。每棵子树的根比它的两棵子树上的节点都要大。 2 建堆的过程 function max_heaptify(A): for (i = n/2向下取整;i > 0; i--): max_heaptify_one(A, i) function max_h
阅读全文
摘要:1 有冲突的hash函数 当多个input被hash到同一个integer的时候,就会产生冲突,同一个key的冲突可以放在一个bin中。 当冲突的数目比较小时,可以直接使用list,当冲突的数目比较大时可以用一颗红黑树来存放所有的冲突,这样可以加速查找。 2 无冲突的hash函数 2.1 如果被se
阅读全文
摘要:1 any 如果iterable object至少有一个元素是true的时候,返回为true。空的iterable object返回为false。 2 all 如果iterable object中的每个元素都是true的时候返回true,空的iterable object也返回true。 3 什么叫
阅读全文
摘要:1 什么是comprehension list、set、dict、generator等本质上是集合。所以,数学上的集合的表示引入到python中,{x| x属于某个集合}。 所以,comprehension本质上是用来表示集合。 2 comprehension的共同特征 最前面的表达式是集合中的元素
阅读全文
摘要:1 iterable object list、dict、set、tuple、file(在每行上iterate)等都是iterable object,但是它们不是iterator。但是它们可以转换成iterator,通过两种方式: 第一,显式的使用iter()函数; 第二,隐式的使用for 2 ite
阅读全文
摘要:1 string对象的内存的分配和回收 如果string很短,那么内存是在栈上面分配的。如果string很长的话,在堆上分配内存。 string生命周期结束的话,会自动调用string的析构函数释放内存。 2 string对象作为函数的形参 这个时候会隐式调用复制构造函数,复制实参对象,创建一个新的
阅读全文
摘要:1 no malloc no free 2 no new no delete 如果对象不是new出来的,那么这个对象在生命周期结束后会自动调用析构函数自己释放自己的内存,不需要delete。 但是如果是new出来的,就一定要在某个时候delete。
阅读全文
摘要:1 安装python和python3的方法 如果是python,那么直接python setup.py install; 如果是python3,那么直接python3 setup.py install。
阅读全文
摘要:1 dns域名的分层和授权 被授权了之后,自己可以架设dns服务器。 2 dns解析类似于http的rewrite的过程 local dns服务器逐层的剥掉域名,一个服务器一个服务器的去查询,得到最终的ip地址。
阅读全文
摘要:1 什么是CDN cdn最主要的目的就是提高网络访问速度。经过1跳就能够访问的数据的速度比要经过10跳才能够访问到数据的速度快很多。 2 CDN的基本架构 cdn主要由四部分构成: 2.1 client 2.2 请求路由 2.3 分布于各地的镜像服务器 2.4 原服务器 3 CDN的各个部件常见实现
阅读全文
摘要:1 什么是forward proxy 一句话,client的proxy就是forward proxy。 2 什么是reverse proxy 一句话,server的proxy就是reverse proxy。 3 difference between them 3.1 forward和reverse
阅读全文
摘要:1 为什么一些函数的参数指定要iterable object的,但是也可以传入list为参数? 因为list、dictionary都是iterable object。 在iterable object前面加上iter(),就会返回一个iterator。 2 iterable object和itera
阅读全文
摘要:1 product 1.1 一个generator函数 因此它的返回值是一个iterator,可以用for遍历。 1.2 计算product的参数分类 1.2.1 dict和list 只用了dict的key,没有用dict的value。 例子: >>> d1={'x1':1, 'y1':2, 'z1
阅读全文
摘要:1 yield作为函数的返回值 当yield作为函数的返回值的时候,这个函数就是一个generator,函数的返回就是一个iterator了,这个时候就可以用next函数遍历了。 yield每次会返回一个值,next会去取下一个值,直到遍历完yield生成的最后一个值为止。 而python的for循
阅读全文
摘要:1 双引号和单引号是一样的 用的时候,随便用,不需要区分。
阅读全文
摘要:1 什么是apt-pkg python的apt库,可以做apt可以做的任何事情。 2 apt_pkg.parse_depends(depends, strip_multiarch=True) 这里的depends指的是当前package的depends,包括了pre-depends和depends,
阅读全文
摘要:1 由于对象都是在堆上存放的,所以,返回值可以任意返回。 这样看来,闭包里面的外部函数的内部变量也是对象,所以,当返回的内部函数被调用时,这个外部函数的变量就没有被释放。 这样看来,返回时,不需要考虑是不是局部变量了,直接返回就可以了。 2 一切都是指针的例子 这里5也是一个指针、a是一个指针,它们
阅读全文
摘要:1 全局变量的表示 全局变量写成变量赋值放在最开始的地方,前面加修饰关键字global。后面凡是用到它们的地方都加global,和局部变量、函数参数以视区分。 2 类的成员变量的表示 类的成员变量放在全局变量的后面,前面加修饰关键字class。 3 函数参数 函数参数写成变量赋值放在全局变量的后面,
阅读全文
摘要:1 set 1.1 不变集合,frozenset 也就是说,集合中的元素不能删除,也不能增加。 1.2 两个集合之间的关系 isdisjoint()函数。 2 各个数据结构的不同显示 2.1 set 大括号,但是大括号里面是一个一个的element,不像dict那样element是用冒号分隔的key
阅读全文
摘要:1 基本概念 1.1 健康的安装 在端系统中的一次健康的安装指的是,在安装的包的集合中,所有的依赖都满足,并且没有冲突存在。 这的健康的安装是相对于端系统而言的,并不是相对于整个repo而言的。对整个repo而言,肯定是存在conflict的包的。 1.2 包的可安装性 端系统中存在至少一个健康的安
阅读全文
摘要:1 checking whether a single package P can be installed, given a repository R,is NP-complete
阅读全文
摘要:1 debian包之间存在两大类关系 第一,依赖 第二,冲突 2 依赖类关系 2.1 depends 2.2 pre-depends 2.3 recommends 2.4 suggests 2.5 enhances 3 冲突类关系 3.1 conflicts 3.2 breaks 3.3 repla
阅读全文
摘要:1 aarch64 它armv8-A架构的一种执行状态,之所以说它是一种执行状态是因为,armv8-A还有aarch32这个执行状态。aarch64是64位执行状态,aarch32是32位的执行状态。 armv8-A架构的优势在于64位和32位都是兼容的。 2 alpha axp 美国DEC公司64
阅读全文
摘要:1 翻页 ctrl+f,向下翻到新的页。 ctrl+b,向上翻到旧的页。 2 vim的配置文件 2.1 vim的配置文件有哪些 个人用户范围配置文件:$HOME/.vimrc 系统范围配置文件:/usr/share/vim/vimrc 也可以将配置文件放在/etc/vim/vimrc,然后建立/us
阅读全文
摘要:1 curl比wget支持更多的协议 2 wget是支持递归的,而curl不支持
阅读全文
摘要:1 对https进行抓包,或者说抓包经过了ssl加密的包 只要有rsa private key就可以了。 https://wiki.wireshark.org/SSL 2 对浏览器访问的https的网页抓包 可以直接用firefox的httpfox插件。
阅读全文
摘要:1 使用rvictl工具 这是mac下的一条命令。ios usb连mac,然后创建虚拟网络接口。 2 使用wireshark抓包 wireshark可以抓这个虚拟网络接口上的数据包。
阅读全文
摘要:1 浏览器发起https请求 2 https服务器发送自己的公钥给浏览器 3 浏览器用https服务器发送过来的公钥加密一个用于双方通信的的对称密码 4 https服务器用自己的私钥解密,获取对称密码 5 浏览器和https服务器双方用该对称密码进行通信
阅读全文
摘要:1 服务器端重定向 客户端想要访问的内容不在该服务器上,该服务器自己去另外的服务器请求到该内容,然后还是由该服务器将内容返回给客户端。称为rewrite。 2 客户端重定向 客户端想要访问的内容不在该服务器上,该服务器告诉客户端要去哪个服务器上去请求,然后客户端向新的服务器发起另外一次请求。也称为r
阅读全文
摘要:1 hostname是什么,有什么用 2 怎么查看hostname 直接有hostname命令。 2 怎样命名hostname 3 怎样修改hostname http://www.cnblogs.com/kerrycode/p/3595724.html
阅读全文
摘要:1 基本原则如下 1.1 原则1 变量的普通赋值是有先后顺序的,后面的赋值会覆盖掉前面的赋值。 1.2 原则2 使用的时候,用的是其前面最后的赋值,就算其后面有使用了override指令的赋值也不会影响这条原则。 1.3 原则3 当使用了override指令定义赋值了变量后,其后对该变量的所有的赋值
阅读全文
摘要:1 规则的先后顺序问题 规则的先后顺序只会影响默认的目标,没有其它的影响。 2 make对具有相同目标的规则的处理方式 2.1 如果是单冒号 只能有一个规则是有命令的,然后对它们进行合并,即依赖合并。 2.2 如果是双冒号 分别单独处理,顺序按照makefile中的顺序。这种情况下,只有各个规则的命
阅读全文
摘要:1 eval的返回值是空字符串,因此它可以用于Makefile的任何位置而不引起错误 2 eval函数的作用效果 生成Makefile的动态部分,即eval用于增加Makefile的构成部分。 也就是说,经过eval扩展之后的text部分,完全可以看成是Makefile的一部分,在make的时候,由
阅读全文
摘要:1 call递归扩展变量 本质上仍然是变量扩展,等价于$(),只不过扩展的时候带了参数,$(call xxx)返回的是xxx扩展之后的值。参数依次赋值给$(1),$(2)......,但是参数要在赋值之前完成扩展。 2 call define定义的多行变量 本质上仍然是变量扩展,参数依次赋值给$(1
阅读全文
摘要:1 ls命令支持通配符* ls */configure ls会去匹配当前目录下所有子目录中有configure文件的目录,并输出。
阅读全文
摘要:1 在开始执行eval后面的命令之前eval主要做了哪些事情 1.1 去掉反斜杠的quoting 比如\$ac_optarg,会变成$ac_optarg。 1.2 去掉单引号的quoting 比如: a=10 b=a //这里只是给b赋值为a,并没有扩展a。 eval y='$'$b -->10 首
阅读全文
摘要:1 ranlib的缩写 random access library 2 ranlib的作用 为静态库的符号建立索引,可以加速链接,因此称用ranlib处理过的library为random access library。 注意,ranlib只是用来处理静态库的。
阅读全文