自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个程序员的成长之路。。。

你可以不自己造轮子,但应该了解轮子的构造,而且越详尽越好

  • 博客(23)
  • 资源 (5)
  • 收藏
  • 关注

转载 中国经济衰退 周期投资风向标

美林投资时钟投资时钟从从左下角开始,沿顺时针方向循环,依次经历衰退期、复苏期、过热期和滞涨期,并周而复始,相对应各时期,债券、股票、 大宗商品和现金组合的表现依次超过大市,但通常总会有特例,需要我们根据最新情况做出判断。投资时钟体现的是实体经济运行与投资策略的基本联系,由于各国 经济所处的不同发展阶段以及经济政策的不同,以上四个阶段的持续时间并非一致,甚至会跳过某个阶段,但投资时钟可以给我们一个大致

2017-04-30 15:48:53 2110

原创 浅谈CSRF攻击方式

CSRF 简介:CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。其缺点包括以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。CSRF的原理从上图可以看出,要完成一次CSRF攻击,受害者必须依次完

2017-04-23 20:22:03 384

原创 Python的全局锁(GIL)问题

CPU-bound(计算密集型) 和I/O bound(I/O密集型)计算密集型任务(CPU-bound) 的特点是要进行大量的计算,占据着主要的任务,消耗CPU资源,一直处于满负荷状态。比如复杂的加减乘除、计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU

2017-04-23 19:57:00 4948

原创 Python之生成器详解

可迭代对象(iterable) 与 迭代器(iterator)关系如下图:对一个iterable用for … in …进行迭代时,实际是先通过调用iter()方法得到一个iterator,假设叫做X。然后循环地调用X的next()方法取得每一次的值,直到iterator为空,返回的StopIteration作为循环结束的标志。for … in … 会自动处理StopIteration异常,从而避免了

2017-04-23 19:17:18 2890

原创 分而治之(D&C)

分而治之(D&C)并非可用于解决问题的算法,而是一种解决问题的思路。分而治之算法是递归的,使用分而治之(D&C)解决问题的过程包括两个步骤:找出递归边界条件,这种条件必须尽可能简单不断地将问题分解(或者说缩小规模),直到符合递归边界条件。 注意:假设要将一块地均匀地分成方块,确保分出的方块最大的条件,应采取D&C策略:适用于这小块地的最大方块,也是适用于整块地的最大方案。原因可参考欧几里得算

2017-04-23 15:10:46 3762 3

原创 递归

递归只是让你解决方案更加清晰,并没有性能上的优势。实际上,在有些情况下,使用循环的性能更好。正如,在Stack Overflow 上,Leigh Caldwell 说了一句话:“如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。”递归函数包括两个部分: 边界条件:函数不再调用自己,从而避免形成无限循环。 递归条件:函数调用自己调用栈的定义:存储多

2017-04-23 14:45:37 445

原创 常见的排序

选择排序理解该代码前提条件:必须熟悉数组、链表、大O表示法 运行时间:O(nlog n)示例代码:#coding: utf-8def find_smallest(arr): smallest = arr[0] #存储最小的值 smallest_index = 0 #存储最小元素的索引 for i in range(1, len(arr)): i

2017-04-23 14:00:51 297

原创 常见的查找

简单查找对于包含 n 个元素的列表,用简单查找最多需要 n 步二分查找:前提条件:列表必须是有序的 操作过程:若要查找的元素包含在列表中,二分查找返回其位置;否则返回None 结果:对于包含 n 个元素的列表,用二分查找最多需要 log n步示例代码:'''若猜的数字小了,就相应地修改 low若猜的数字大了,就相应地修改 high'''def binary_search(list, it

2017-04-23 13:43:42 314

原创 算法简介

算法是一组完成任务的指令。任何代码片段都可视为算法运行时间:一般而言,应选择效率最高的算法,以最大限度地减少运行时间或占用时间。 算法的速度指的并非时间,而是操作数的增速,即随着输入的增加,其运行时间将以什么样的速度增加大O表示法算法的运行时间用大O表示法表示,例如O(n),n代表了操作数,指出了最糟情况下的运行时间。例如,在最糟的情况下,通过简单查找,查看电话簿中的每个条目,对应的运行时间为O(

2017-04-23 13:21:39 418

转载 Redis的持久化方案都有哪些?各有什么优缺点?

Redis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrit

2017-04-23 12:24:43 1571

转载 收集的一些Redis面试题,欢迎挑战

一、 mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据相关知识: redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略: volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰volatile-ttl:从已设置过期时间的数据集(s

2017-04-23 12:17:32 4962

原创 RabbitMQ的使用总结

RabbitMQ介绍 说明:Consumer (消费者):使用队列 Queue 从 Exchange 中获取消息的应用。Exchange (交换机):负责接收生产者的消息并把它转到到合适的队列。Queue (队列):一个存储Exchange 发来的消息的缓冲,并将消息主动发送给Consumer,或者 Consumer 主动来获取消息。Binding (绑定):队列 和 交换机 之间的关系。Exch

2017-04-18 18:19:03 9620

原创 Celery 消息队列

简介在不同系统(或物理设备)之间,应用软件之间,程序进程之间,常常会有各种互相的信息传递;为保证消息传递的可靠性,对所传消息引入一个保存的容器:一方面用来接收发送者产生的信息,一方面在接收者正常的情况下完成消息的派送,并在无法接收消息时对信息进行存储,然后在适当的时机完成信息的派送。一般称该容器为消息队列。适用场景对于部分需要较长时间处理的任务类型,采用传统的同步处理方式会带来较长时间的性能损耗或是

2017-04-15 03:25:04 9290

原创 celery分布式

Celery的分布式实际包含两个层次:Distribute work on a given machine across all CPUsDistribute work to many machines先说第一点,默认情况下,Celery在一台机器上启动worker,worker的进程数量和机器的CPU个数一致。比如你的机器只有一个CPU,例如,同时启动5个worker进程,其中concurr

2017-04-15 02:41:01 2082

原创 celery 分布式框架详解

Celery 结构图如果没有celery,让你自己设计一个异步任务队列你怎么做。首先,要有一个发起任务的client,选定一定保存任务信息的媒介,由一个worker去一直监听这个信息媒介,这个worker最好是多进程的,另外可以兼容尽可能多得信息媒介。好吧,这个不就是celery所做的事儿么,celery兼容多个broker,既是任务发起者又是执行者,另外支持多进程…还有好多通用功能考虑。celer

2017-04-15 02:11:53 2315

原创 Python开发必备神器之一:virtualenv

virtualenv 安装windows/ubuntu系统下安装pip install virtualenv基本用法创建项目的虚拟环境 在某个目录下,运行如下命令,即可创建virtualenv zhangsan # zhangsan是虚拟环境名称,可替换为别的虚拟环境名称默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境

2017-04-05 22:25:26 647

原创 Python 解析式

列表解析式列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。其结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。单个循环有条件子句的列表解析式numbers = [1, 2, 3, 4, 5]d

2017-04-05 21:26:23 994

原创 pickle 模块

简介:通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。基本语法:pickle.dump(obj, file, [,protocol]) #以某种格式将对象obj保存到文件file中去参数:obj:序列化对象file:要写入的文件,即拥有 write() 方法的对象,或者是 St

2017-04-05 21:03:55 509

原创 openpyxl 模块

简介openpyxl 模块是解决 Microsoft Excel 2007/2010 之类的版本中扩展名是 xlsx/xlsm/xltx/xltm 的文件的读写的第三方库。openpyxl 的安装sudo pip install openpyxlopenpyxl 的写操作from openpyxl import Workbookwb = Workbook()ws

2017-04-04 23:23:11 1444

原创 ubuntu下的关于搜狗输入法出现崩溃的解决办法

rm -rf sogou-qimpanel/ rm -rf SogouPY rm -rf SogouPY.users/

2017-04-04 22:51:30 1471

原创 MongoDB常用的操作命令详解

简单的的增删改查数据

2017-04-04 18:14:53 274

原创 并发和并行抓取数据总结

首先介绍并发、并行、异步和同步的概念,然后介绍 Python 中实现这些技术的主要方式,包括多线程、多线程、协程 gevent 、asyncio、及 futures 等实现方式。并发与并行并发是指在一个时间段内发生若干时间的情况。 并行是指同一时刻发生若干事件的情况。下面用单核和多核 CPU 的工作方式来说明这两个概念。并发:在单核 CPU 的情况下,多任务操作系统的各任务是以并发的方式运行的,因

2017-04-02 19:08:20 1607

原创 redis-cli远程连接redis-server服务器的问题

在本地,使用客户端远程连接Redis服务,运行命令如下:redis-cli -h xxx.xxx.111.168 -p 6379出现如下错误信息:Could not connect to Redis at xxx.xxx.111.168:6379: Connection refused 解决办法:首先,使用ssh工具远程登录,若 redis-server 服务已启动,首先通过如下命令关闭服务:ps

2017-04-02 17:42:30 13009

mysql的python驱动

python操作mysql所需的驱动,适用于python的64位版本

2016-08-13

Mongo绿色版

免费、好用

2016-06-27

mongovue免费版

MongoVUE是个免费版,可以无限使用

2016-06-25

pywin32工具

适用于python2.7.0版本

2016-06-18

pywin32-215-py2.7

pywin32-215-py2.7

2016-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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