BeginMan的博客

编程是一门思考,总结,创新的艺术!

Python property四部曲

Python property的学习,四步搞定。 1.初级:只当做属性 加个装饰器@property将类方法变成类属性,但是试图修改该属性则发一个AttributeError错误 class Person: def __init__(self): self._fee = None @property def do_something(self)...

Python git钩子

git 钩子与Python操作 一. git 钩子 在本地git项目下,钩子有客户端钩子和服务端钩子,其都在.git/hooks 下,所有*.sample的文件都是示例钩子,如果将.sample去掉并赋予可执行权限则就有钩子了。这些脚本可以使用 shell, python, ruby 等任何可以调用 shell 命令的语言实现。 如果需要使用提交前的 hook 需要将 pre-commi...

TLS,SSL,HTTPS with Python

需要了解的背景知识: 术语 HTTPS,SSL,TLS 长连接与短连接的关系 了解 CA 证书 基本流程 一.术语扫盲 1.什么是SSL? SSL(Secure Sockets Layer, 安全套接字),因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。 2.那么什么是...

理解带外数据

TCP/IP传输中有两类数据: 普遍数据(带内数据) 带外数据(Out Of Band, OOB) OOB就像古代行军打仗的侦查兵,不管前方多艰辛,它都要去报告紧急事情。OOB就是用于迅速通告对端本端所发生的重要事件,当然要比普遍数据权限高啊,它应该总是立即被发送。而不论发送缓冲区中是否有排队等待发送的普通数据(我有权插队,即可以映射到传输普通数据的连接中)或因流量控制而导致...

高性能服务器程序框架

《Linux高性能服务器编程》读书笔记之。高性能服务器程序框架是服务器编程的核心部分。 将服务器解构为如下三个主要模块: I/O处理单元。包含:四种I/O模型和两种高效事件处理模式 逻辑单元。包含:两种高效并发模式,以及高效的逻辑处理方式—有限状态机 存储单元。如db,文件等 将按照如下流程去学习: 服务器模型 服务器编程框架 I/O模型 并...

Unix网络编程Socket基础APi总结

环境提示:本文总结是基于IPv4, TCP socket 总结导航: 理解socket 字节序 socket地址概述 socket地址的创建(IP地址,port端口号的处理函数) Socket创建TCP协议通讯流程图 服务端流程 创建socket, socket() 绑定sock...

爱好与工作一样重要--远离那些“不聪明且勤奋的人”

“要为自己喜欢的而活;健康与自由比一切都重要;业余爱好和工作一样重要;有能力的人绝不加班;远离那些不聪明且勤奋的人。” – Angel Ye 这就是 Angel Ye 的职场箴言,这几句话简直太符合我对工作、对事业、对职场的三观认知了。 再读【夜读】远离那些“不聪明且勤奋的人”受益匪浅。摘录如下: “聪明”只不过是“喜欢”和“合适” 的同义词,如果你每天都觉得你不够“聪明...

Html5移动web开发基础总结

莫急,莫急,到用的时候再多查细看做总结。 最近被迫无奈搞了一段时间前端的东西,虽然之前写过点,但都是半瓢水的样子,今天趁着写移动端web的机会,走马观花看了下Html5的相关知识,参考书籍是借同事的《HTML5移动web开发指南》这本书(不推荐看,H5和Css3语法特性没讲多少,倒是讲了一堆jqueryMobile, Sencha Touch, PhoneGap的东西,这不完全抄人...

Python Mixin 扩展类功能

mixin是 mix in的意思,就是混入,可以就任意一个对象的全部或部分属性拷贝到另一个对象上。,在很多将设计模式中都有涉及。在 SocketServer.py中,常见Mixins模式: class ThreadingMixIn: """Mix-in class to handle each request in a new thread.""" daemon_threa...

Python访问者模式

访问者模式是一种将算法与对象结构分离的软件设计模式。, 解决数据结构和易变的操作耦合问题。 应用场景:处理大量不同类型的对象组成的复杂数据结构,每个对象进行不同的处理。如您在朋友家做客,您是访问者,朋友接受您的访问,您通过朋友的描述,然后对朋友的描述做出一个判断,这就是访问者模式。 流程如下: 定义由许多对象构成的对象结构,这些对象的类都拥有一个accept方法用来接受访问者对象...

Python __get__, __getattr__和__getattribute区别

在看tomorrow发现一段代码如下: class Tomorrow(): def __init__(self, future, timeout): self._future = future self._timeout = timeout def __getattr__(self, name): result = sel...

Python描述器的理解

大概几小时前总结了Python get, __getattr__和__getattribute区别,大概理解了__getattr__和__getattribute__的区别。在理解__get__时,其实涉及 到更加复杂的知识点,那就是描述器(descriptor)的概念。于是从1. Python描述器引导(翻译)这篇文章开始学习。于是有了下面对这篇文章知识点的理解,简单说这是一篇对上篇文章的...

python 函数高级应用

高级?我也不知什么才算高级,应该是难点吧。汇总如下: 函数使用技巧 闭包 装饰器 函数式编程 匿名函数与lambda 内建函数 apply()、filter()、map()、reduce() 偏函数应用 回调 生成器与协程 递归 这真是个大工程啊,算是复习总结吧。这里涉及python2.x和py...

python 导入机制

python的导入就是猜猜我在哪?… 读开源项目代码最高效的学习之一, 推荐:如何更有效地学习开源项目的代码? 一.python模块导入机制 每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包,只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用。 python模块导入时按优先级高低的搜索...

《jQuery基础教程第四版》学习总结

jQuery利用CSS选择符的能力轻松进行DOM操作。 通过$()函数创建jQuery对象,接受CSS选择符作为其参数。$是jQuery的别名。 三种基本选择符:标签名、ID和类。 包装在jQuery对象中的元素会被自动、隐式地循环遍历,这就避免了js DOM操作forloop显式迭代。 $(document).ready()或简写$(function(){})时,位于其中的所有代码...

Web框架列表-循序渐进的学习

无论什么时候都不要乱了阵脚,保持清醒,清楚你现在正做什么,想要做什么,如何做好更好。而不是心猿意马,草草了事。 –自勉. web框架太多了,在Github上的Web application frameworks就有一大堆,不可能每一个都从头到尾学一遍,web框架其实也是有章可循的。 从torando的快速入门User’s guide和flask的快速入门和Getting star...

Python 项目工具构建

对于项目开发,一整套pythonic规范应该是: pip工具使用,更加方便,通过更改PyPI源安装第三方package更加省时省力 目录结构规范,需求明确后开始编写项目代码 单元测试 代码规范检查,如Pylint工具的使用 代码审查 打包 为包编写单元测试 包发布到PyPI,或私有 pypi 服务器上 自动化测试 自动化部署 ref: ...

Mongodb设计与优化

多看优秀的代码,参与开源项目才能更快的提升自己! 一.应用程序设计 在关系型数据库中特别强调的是范式, 之前看慕课网《数据库设计那些事》教学视频,总结了一篇文章数据库设计小结来说明关系型数据库设计步骤与规范。奈何没有这个学习和实践的环境,导致现在我的mysql技能还是马马虎虎的,想想都头疼。 在mongodb中也有范式与反范式,一般就是内嵌数据和引用数据的比较,其指导原则如下: ...

Python 位操作

沉下心,打好CS基础是多么重要!理论和系统编程都要兼顾。

位操作是程序设计中对位模式按位,或二进制数的一元和二元操作。计算机里面所有数据都存储为0,1串,所有的运算归根到底都转为二进制数的运算。 PS: 我该好好回去多啃基本CS教材了,之前总结的笔记《计算机科学概论》算他妈白瞎了~ 一.概念性总结 几个基本概念 机器数:一个数在计算机中的二进制表示形式,最高位存放符号, 正数为0, 负数为1 真值:将带符号位的机器数对...

Python迭代器和生成器

重点: 理解迭代原理 理解生成器原理,yield使用方法 itertools模块的掌握 一.迭代协议 我们常用 forloop 用来遍历一个可迭代对象,如果需要对迭代做更加精准的控制,必须要了解底层迭代机制。 调用iter(items)或items.__iter__()来获取iterator。 使用next() 或 it.__next__() StopI...

Mongodb聚合

图片来源:纪录片《轮回》 人类对光的渴望与生俱来,在《圣经·创世纪》中被神第一个创造出来的便是光,从而区分明暗。人类通过光观察宇宙与尘埃,通过固定光的痕迹来记录时间与历史,用光重现过去演绎未来。人类对光的研究与控制也从未停止。 –《品质德国》 聚合的本质:分析结果集, 如下工具和命令: 聚合框架 筛选(filtering) 投射(...

Mongodb固定集合和特殊索引

图片来自纪录片《轮回》 德国哲学中的德意志精神,始终与人密切相关。黑格尔认为,国家是人自由的真正体现。马克思则相反,说只有消除国家,人的本质才能真正恢复。– 《品质德国》 一.固定集合 固定集合就是创建一个指定大小的集合,有如下特点: 有序排列,插入速度快 大小固定,当插满后最老的数据会被删除,然后插入新数据 固定集合不能分片 一旦创建完成就不能再更改...

Mongodb索引小结

摄于元旦晚天安门 2016/1/1 只要你还在担心别人会怎么看你,他们就能奴役你;只有你再也不用从自身之外寻求肯定,才能成为自己的主人。 –尼尔·唐纳德·沃尔什 索引如同书籍目录,有则择页,无则翻书(如关系型数据库的全表扫描)。 比如我们插入10w数据,测试下: > for(i=0;i<100000;i++){ ... db.foo.insert( ......

Python 数据结构和算法小结

“只要你还在担心别人会怎么看你,他们就能奴役你;只有你再也不用从自身之外寻求肯定,才能成为自己的主人。” – 尼尔·唐纳德·沃尔什 内置数据结构,包括列表,集合以及字典等,对于理论性学习(算法,数据结构)不是一蹴而就的,我个人总结对Python数据结构和算法的学习流程如下(这也是我下一步要学习的): 打牢基础,熟悉内置数据结构的使用方法,在《Python核心编程》和《Pyt...

Mongodb常用查询

find&findOne和各种查询条件

大图是我个人编程环境。 不胡思乱想就是禅,一旦你明白这点,走路,站着,坐着或躺着,你所做的一切都是禅。 –达摩(Red Pine, 1987) Summary 大纲之. find基础 查询条件 特定类型的查询 null 正则 数组 内嵌文档 $where查询 游标 一.f...