- 博客(65)
- 资源 (2)
- 收藏
- 关注
原创 刘未鹏 - 我在南大的七年 有感
最近这段时间我也开始想着记录写东西,尤其是近段时间对创业的想法愈发强烈,内心活动一直在不断变化,也看了很多大佬的访谈、视频等,比如雕爷、周鸿祎、徐皓天,这些人口才非常好,逻辑非常清晰,讲的也很通透,尤其是徐皓天,非常能一针见血的描述一件事,也从中学到非常值得学习琢磨人、销售(接下来要好好琢磨,后续也要写一篇关于从徐皓天学习到的文章),推荐了很多书籍。但是,父亲对我的影响还是有的,比如父亲爱家,父亲做很各色各样的生意,是一个生意人,父亲的口才很不错。不管是学习新事物,还是生活中遇到问题,去书本里找答案。
2023-10-09 19:33:20 785
原创 刘未鹏 - 我在南大的七年 有感
最近这段时间我也开始想着记录写东西,尤其是近段时间对创业的想法愈发强烈,内心活动一直在不断变化,也看了很多大佬的访谈、视频等,比如雕爷、周鸿祎、徐皓天,这些人口才非常好,逻辑非常清晰,讲的也很通透,尤其是徐皓天,非常能一针见血的描述一件事,也从中学到非常值得学习琢磨人、销售(接下来要好好琢磨,后续也要写一篇关于从徐皓天学习到的文章),推荐了很多书籍。但是,父亲对我的影响还是有的,比如父亲爱家,父亲做很各色各样的生意,是一个生意人,父亲的口才很不错。不管是学习新事物,还是生活中遇到问题,去书本里找答案。
2023-10-09 19:31:02 384
原创 git 一个分支完全替换另一个分支
git push origin develop:master -f把本地的 develop 分支强制(-f)推送到远程 master但是上面操作,本地的 master 分支还是旧的,通常来说应该在本地做好修改再去 push 到远端,所以我推荐如下操作git checkout master // 切换到旧的分支git reset --hard develop // 将本地的旧
2017-10-11 16:02:01 2834 1
原创 OSX anaconda虚拟环境py27,安装编译MySQLdb出现fatal error: limits.h: No such file or directory
(py27) ➜ MySQL-python-1.2.3 python setup.py buildrunning buildrunning build_pycopying MySQLdb/release.py -> build/lib.macosx-10.7-x86_64-2.7/MySQLdbrunning build_extbuilding '_mysql' extensiong
2017-09-29 11:40:39 4867
转载 redis数据丢失及解决
Redis的数据回写机制Redis的数据回写机制分同步和异步两种,同步回写即SAVE命令,主进程直接向磁盘回写数据。在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的。异步回写即BGSAVE命令,主进程fork后,复制自身并通过这个新的进程回写磁盘,回写结束后新进程自行关闭。由于这样做不需要主进程阻塞,系统不会假死,一般默认会采用这个方法。个人感觉方法2采用fork
2017-09-26 22:02:41 2261
转载 数据库的一致性?一致性弱意味着什么
一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。而一致性又可以分为强一致性与弱一致性。强一致性可以理解为在任意时刻,所有节点中的数据是一样的。同一时间点,你在节点A中获取到key1的值与在节点B中获取到key1的值应该都是一样的。弱一致性包含很多种不同的实现,目前分布式系统中广泛实现的是最终一致性。所谓最终一致性,就是不保证在任意时刻任意节点上的同一份
2017-09-23 11:36:37 2524
转载 python爬虫的最佳实践(五)--selenium+PhantomJS的简单使用
Ps:又到了我们的ps环节,不知道上次大家尝试的如何,这次我们将简单介绍如何使用selenium+PhantomJS来抓取异步加载的网页数据信息。当然,selenium是一个非常强大的自动化工具,可以做非常多的事,有兴趣的同学可以自行了解一下。这次我们的顺序稍稍变化一下,因为牵扯到配置环境。环境配置seleniumpip install -U selenium建议采用pyc
2017-09-19 20:20:33 1318
转载 协程的好处有哪些?
我觉得线程是很丑陋的东西。线程不过是反映了当前硬件技术的物理限制瓶颈。单个cpu的计算能力不足,所以要多核。内存的容量太小太昂贵,所以需要硬盘。无须敬畏,当你认识到线程不过是个妥协的产物,学习的难度就低多了。比如计算能力低引入了多核,多核引入了并发,并发引入了竞态,竞态引入了锁,一层又一层的引入了复杂性,我等程序员的饭碗才能保住。当然有些问题确实不是单纯的计算能力或存储能力极大提升就能解决的,不是
2017-09-16 22:38:20 5508 3
转载 Python黑魔法 --- 异步IO( asyncio) 协程
python asyncio网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法。下面将简单介绍asyncio的使用。实现协程的不仅仅是asy
2017-09-15 19:53:41 1233
转载 触类旁通,从400错误看Nginx常见故障与修复
故障简述小明某天中午在线优化一个敏感服务的Nginx配置时,发现5分钟内Nginx errorlog里出现了大量400错误,于是迅速回滚了Nginx配置。故障详情原来的Nginx配置存在重复或者需废弃的内容,于是在多次diff了新旧两份配置内容后,小明认为最新配置是不影响业务的,因此在线推送更新配置后,直接reload了Nginx,出于double
2017-09-15 15:03:54 25531 1
原创 什么是Monkey Patch猴子补丁
猴子补丁是一个概念,不是python中发明的,其他动态语言也有这么个概念。《松本行弘的程序世界》这本书,里面专门有一章讲了猴子补丁的设计,所谓的猴子补丁的含义是指在动态语言中,不去改变源码而对功能进行追加和变更。猴子补丁的这个叫法起源于Zope框架,大家在修正Zope的Bug的时候经常在程序后面追加更新部分,这些被称作是“杂牌军补丁(guerilla patch)”,后来guerilla就渐渐
2017-09-14 22:17:52 2800
转载 Linux下logrotate日志轮询操作梳理
对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!logrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用
2017-09-14 21:57:41 2373
原创 uwsgi引入gevent模块报错
将uwsgi日志加入:gevent=100 #gevent协程支持,最大100个gevent-monkey-patch=true #gevent协程补丁发现django出现以下错误:django.db.utils.DatabaseError: DatabaseWrapper objects created in a thread can only be used in th
2017-09-14 17:51:01 3643 1
转载 Web worker耗尽原因定位
在我们的 Web 服务器中,当我们接收到服务器短信报警 LVS 监控 Real Server offline 的时候,你的第一反应会是什么?我一般都会从以下几个方面来诊断 offline 的真实原因:机器是否死机。CPU 负载是否很高。内存是否不足。磁盘 IO 是否过高。网络是否有问题。操作系统资源限制,比如 open file limit 或者 ip_conntrack: table
2017-09-13 20:16:24 906
转载 select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用
2017-09-13 19:12:33 447
转载 HTTP——了解Web及网络基础
一、了解Web及网络基础1、使用HTTP协议访问Web 客户端在浏览器地址栏输入URL之后,信息会被送到相应的服务器处,从服务器处得到回复,内容就会显示在Web页面上。 Web使用一种名为HTTP的协议作为规范,完成从客户端到服务器端等一系列运作流程。而协议是指规则的约定,可以说Web是建立在HTTP协议上通信的。 (HTTP:HyperText Transfer Proto
2017-09-13 13:04:37 589
转载 Apache和Nginx的优缺点
Nginx相对于Apache的优点:轻量级,同样引起web服务,比apache占用更少的内存及资源抗并发,Nginx处理是异步非阻塞的,而Apache是阻塞的,在高并发下Nginx能保持低资源低消耗性能支持更多的并发连接,体现更多的效率配置简洁,启动容易最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程Apac
2017-09-12 21:52:45 401
转载 Nginx是如何处理每一个请求的
Nginx架构nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker进程。Nginx以多进程形式工作,也支持多线程方式,但nginx默认采用多进程方式,也是主流方式。Nginx多进程模式多进程模式,会有一个master进程和多个worke进程 Master进程管理worker进程,包括: 接收来自外界的信号; 向各
2017-09-12 21:51:46 5389 1
转载 分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型
分布式缓存特性:1) 高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟.分布式缓存将高速内存作为数据对象的存储介质,数据以key/value 形式存储,理想情况下可以获得DRAM 级的读写性能;2) 动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性;同时,最大限度地提高资源利用
2017-08-29 15:25:46 1054
转载 Redis与Memcached的区别
传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.M
2017-08-29 15:25:05 418
转载 「Chris Richardson 微服务系列」微服务架构的优势与不足
编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJOS IN ACTION》一书的作者,也是 cloudfoundry.com 最初的创始人,Chris Richardson 与 Martin Fowler、Sam
2017-08-24 13:46:49 362
转载 WebSocket与http的区别,以及它的原理
一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通
2017-08-22 15:59:09 623
转载 关于代码解耦
烂的代码,都有各自烂的地方,不过基本都有一个共同的特点:耦合重,各个模块各个类各个功能点之间关系牵扯不清,经常你调用我调用你,或者全局变量漫天飞;对于怎么理清这些模块或者类,《代码大全》讲了很多,比如要形成金字塔型的调用层级关系,如果不能保证,也一定要保证单向的调用关系,绝对不能形成环状的调用关系;即:A->B->C而不能是 A->B->C->A,尤
2017-08-06 17:37:56 1731
转载 流媒体技术服务器常用部署方式
流媒体网站的服务器主要分为两个部分:流服务 与 web服务。流服务器使用常crtmpserver作为原型,为主播提供推流服务,为用户提供拉流服务。流服务分为源管理节点(SM),源节点(SP)以及边缘节点(EP)。三种类型的节点为层级关系。一般主播通过dns获取源节点的ip,向源服务器推流。源服务器收到主播流之后,向源管理上报该主播的流信息(每个主播有唯一的id号)。用户从边缘节点拉
2016-03-22 18:47:12 999
原创 2015中国数据库大会Mongodb分享
本次分享由MongoDB大中华区技术顾问分享。“老人家”上来就问Mongo是什么意思,猜中有奖,还号称自己是最牛的MongoDB专家(在风筝冲浪圈子里…大家都懂的)。相信大家都不知道,容易理解为芒果(英文应该是mango)。实际上mongo是由这个英文humongous演变来的,表示“巨大的”的意思。本次分享主要是介绍了MongoDB的3.0版本,对其性能提升进行内幕解密。首先介绍
2015-04-26 23:01:34 1681
原创 python中的__new__()方法
先看下object类中对__new__()方法的定义:class object: @staticmethod # known case of __new__ def __new__(cls, *more): # known special case of object.__new__ """ T.__new__(S, ...) -> a new object
2015-04-02 19:18:25 1331
转载 Python 一些特别函数 __getitem__ __getattr__
Python 内置的一些函数,通过重载它们,可以定制自己想要的功能。特别说明一下包含 item 类的函数是通过下标[]操作字典的,包含 attr 类函数是通过 . 操作属性的。class A(object): def __init__(self, *args, **kwargs): print 'call func init' self.item = {
2015-04-02 16:43:36 947
转载 Six提供了Python 2和Python 3的兼容库
地址:http://packages.python.org/six/Six provides simple utilities for wrapping over differences between Python 2 and Python 3.Six can be downloaded on PyPi. Its bug tracker and code hosting is on
2015-04-02 12:19:51 3145
原创 python defaultdict
Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会带来很多的便利,多看看很有好处。defaultdict是其中一个方法,就是给字典value元素添加默认类型from collections import defaultdictdef default_factory(): return 'default val
2015-03-30 15:13:03 820
转载 python - __str__ 和 __repr__
内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好(故被print调用),而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串
2015-03-30 10:52:52 613
转载 Python yield 使用浅析
清单 1 简单输出斐波那契數列前 N 个数清单 2 输出斐波那契數列前 N 个数第二版清单 3 通过 iterable 对象来迭代清单 4 第三个版本清单 5 使用 yield 的第四版清单 6 执行流程清单 7 使用 isgeneratorfunction 判断清单 8 类的定义和类的实例return 的作用另一个例子
2015-03-26 16:23:47 637
转载 常用社交网络(SNS、人人网、新浪微博)动态新闻(feed、新鲜事、好友动态)系统浅析
转载:http://blog.renren.com/share/117462957/15084000902#nogo最近见几个朋友都在说人人网新鲜事排序的问题,恰巧对这方面也较感兴趣,于是打算顺便把手头收集到的资料梳理学习一下。由于本人也只是新手,很多内容仅仅是参阅资料后的个人猜测与纸上谈兵故难免存有错误与纰漏,感谢大家指正。一、 什么是feed“Feed,本意是“饲料、饲
2015-03-26 15:02:56 1194
转载 [Python]一个有趣的库:pipe
pipe并不是Python内置的库,如果你安装了easy_install,直接可以安装它,否则你需要自己下载它:http://pypi.python.org/pypi/pipe之所以要介绍这个库,是因为它向我们展示了一种很有新意的使用迭代器和生成器的方式:流。pipe将可迭代的数据看成是流,类似于linux,pipe使用'|'传递数据流,并且定义了一系列的“流处理”函数用于接受并处理数据流
2015-03-18 15:51:35 1117
原创 安装独立Python虚拟环境:virtualenv
virtualenv Python有着庞大的开源社区的支持,很自然就产生这么一个问题:第三方包参差不齐,如果我们想在服务器测试,或者升级某个包,就会导致生产环境产生杂乱,多余的第三方依赖包。virtualenv就是来解决这个问题的,virtualenv可以生成多个的Python环境,各个环境相互独立,互不影响,且和正式环境一模一样。1、安装pip install virtualen
2014-07-08 23:51:47 17632
原创 Python垃圾回收机制
Python GC主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来提高垃圾回收效率。引用计数在Python中,大多数对象的生命周期都是通过对象的引用计数来管理的。从广义上
2014-07-06 18:20:29 1807
原创 Linux下使用pdb简单调试python程序
python自带调试工具库:pdb# -*- coding:utf-8 -*-def func(num): s = num * 10 return sif __name__ == '__main__': print 'debug starting...' print '*' * 10 print ‘debug ending…’ num
2014-06-20 23:56:09 6766
原创 OAuth
简介:OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用(典型:第三方登录),目前的版本是2.0版。没有OAuth的时代:假设我们有这么一个场景:有三个角色,分别是“用户”,“第三方应用”,“服务提供商,比如google”用户有很多照片都存放在google服务器,这时候,用户需要借助第三方应用“云冲印”,将存放在google服务器的照片打印出来,
2014-06-15 00:04:48 2116 1
原创 python的setup.py文件
最近工作需要,用Cython写了*.pyx扩展,并将其编译成C文件,最后转换为so扩展,供python引用使用 distutils 编译,建立一个setup.py 的脚本from distutils.core import setupfrom distutils.extension import Extensionfrom Cython.Distutils import b
2014-06-14 23:19:04 13718 1
转载 Cython 快速入门
我最喜欢的是Python,它的代码优雅而实用,可惜纯粹从速度上来看它比大多数语言都要慢。大多数人也认为的速度和易于使用是两极对立的——编写C代码的确非常痛苦。而 Cython 试图消除这种两重性,并让你同时拥有 Python 的语法和 C 数据类型和函数——它们两个都是世界上最好的。请记住,我绝不是我在这方面的专家,这是我的第一次Cython真实体验的笔记:编辑:根据一些我收到的反馈,大家
2014-06-07 00:50:09 1383
转载 公钥和私钥
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和
2014-06-01 21:07:06 737
protobuf-2.5.0.tar.gz
2014-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人