- 博客(38)
- 资源 (3)
- 收藏
- 关注
原创 一个新手用golang重写python rpc框架总结
从前,我是个phper,每天被困在反反复复的增删改查的工作中,后来接触了python后,便对php嗤之以鼻,并且在python中拓宽了眼界,发现了后端世界,于是换了份python游戏服务器的工作,更加后台了。 python开发久了后,我有些腻了,因为python在我心里不再完美了,它的黑魔法实在太多了,导致python入门简单,精通实在太难,这么多语法糖、黑魔法,他们再以各种组合、各种花样实现各...
2018-03-27 20:15:17
3442
原创 python常用内值函数算法复杂度
之前很长一段时间我计算字典长度都是自己维护一个长度变量,每次字典元素有增减就改变变量,今天发现len()对大多数常见数据结构都是O(1)的,我当时就崩溃了,原来我多此一举了。 这里是常见数据结构的函数复杂度: https://wiki.python.org/moin/TimeComplexity stackover相关问题: shttp://stackoverflow.com/question
2017-04-10 10:48:55
2154
原创 concurrent.futures源码解析
concurrent.futures模块在异步编程中非常常用,我常用在tornado里用它将同步操作异步化,这么优秀的模块,肯定很好奇它的内部原理的。 在网上搜了一些资料,感觉附加讲解还不如代码详细,于是就自己去看源码了, 而源码非常优秀,文件结构也非常简单,只有三个文件:_base.py:主要定义了一些常量、类、方法等,为thread和process使用process.py:Process
2017-02-21 16:27:46
1138
原创 如何使用python写一个操作系统
如何使用python写一个操作系统环境准备写一个操作系统所需环境非常简单,我使用的以下环境:ubuntu 14.04 64位virtualenvwarpperpython3virtualenvwarpper介绍virtualenvwarpper是对virtualenv的封装,使用起来更加方便,virtualenv原理是创建一个目录,然后把所有模块都安装在这个目录下面,这样的话就可以和其他环境
2017-02-13 10:53:03
10265
13
原创 protobuf rpc介绍
刚接触protobuf通过service实现rpc真的是一头雾水,相关资料非常少,找到的资料也看不懂,最后找到了两篇博文,非常详尽,看完就懂了。
2016-12-08 15:56:01
8217
3
原创 ctags和virtualenv神级配合
ctags和virtualenv简单介绍:ctags查看代码的时候真的很方便,ctr+shift+鼠标左键就跳转到函数定义的地方了,然后ctr+shift+鼠标右键又能跳转回来,大大提高工作效率。ctags是通过遍历一个目录下所有文件,生成一个.ctags文件来实现这个功能。而virtualenv是在一个目录下模拟python安装环境,然后在这个虚拟环境里面装的所有模块都只供这个环
2016-09-09 10:08:24
1913
转载 关于UNIX和Linux系统下SUID、SGID的解析
因为本人总不能集中注意力,看了好几次suid和sgid都没耐心把这个概念弄明白干嘛的,今天看这个教程,简单清晰,很不错的一篇文章,地址:http://www.linuxeden.com/html/unix/20071031/36892.html如果你对SUID、SGID仍有迷惑可以好好参考一下! Copyright by kevintz. 由于用
2016-07-06 14:49:26
2056
原创 200行python代码实现一个类似django的简单模板引擎
教程原文地址:http://aosabook.org/en/500L/a-template-engine.html大致原理:根据模板语法,通过html生成python函数,这个函数作用就是输出纯html,这样只解析一次html模板就够了,以后直接通过这个python函数来生成html内容,提高效率。以下是我对代码的理解并做出的注释:https://git
2016-07-05 11:35:17
1453
原创 python两种方法实现从1000万个随机数中找出top n元素(附c语言版)
很早之前看到一道面试题:有一个长度为1000w个数组,每个元素互不重复,找出其中top n元素。我感觉重复或者不重复都差不多,所以没管不重复这个条件。我把1000w个结果放在了文件中,方便重复利用,生成代码:import randomwith open("random_number.txt","w") as f: for i in range(1,10000000):
2016-06-22 02:36:59
5457
原创 python深拷贝浅拷贝
import copya = [1,2,3,4,5,[6,7,8]]b = a[:]c = ad = copy.deepcopy(a)e = copy.copy(a)print "id of a :",id(a)print "id of b :",id(b)print "id of c :",id(c)print "id of d :",id(d)print
2016-06-21 10:31:29
428
原创 linux grep通过管道输出到head出现write error: Broken pipe错误
之前做一个分页,利用grep加head加tail实现的:ls /tmp/conf/usergroup/ | grep -P '^(?!auto-)'| head -n 20 | tail -n 20 | awk -F . '{print $1}'grep出来的条数大概有6w条,然后用php的exec去执行这条命令,大概耗时1.3秒,感觉太慢,不能接受。后面发现直接去终端执行
2016-06-13 10:53:57
19693
转载 SHELL 编程之语法基础
这有个教程也很不错,结构清晰简单:http://c.biancheng.net/cpp/view/7005.html#SHELL 编程之语法基础版权声明:本文章内容在非商业使用前提下可无需授权任意转载、发布。转载、发布请务必注明作者和其微博、微信公众号地址,以便读者询问问题和甄误反馈,共同进步。微博 ID : orroz微信公众号: Linux 系统技术##前
2016-05-16 15:44:25
1034
原创 python监听本地目录,并将目录下的文件同步到远端服务器
最近写了个文件监听同步的脚本,查找资料的时候发现大部分都是rsync和inotify的方案粗看了下就是利用这两个工具,再配置来实现,这两个工具都很强大但是考虑到那么多配置,而且两台机子都要配置,部署会很麻烦如果自己写功能,就无需配那么多配置项,只需要安装好python的模块再配置一些简单的项就能用了,还能根据需求自己定制一些功能,只不过性能稳定性什么的也许没有那个成熟的方案好,但是
2016-05-13 18:12:51
5439
原创 pyqt给js赋值,获取form表单值
帮同事写客户端,发现pyqt和wxpython的api何其的多,资料又少,写一个包含各种表单的客户端对我来说难度很大,于是想到使用webkit来渲染html,pyqt自然成了我的选择。但是发现,平时在web开发中,html向web后台获取数据或者提交数据这样简单的事,在pyqt中我完全不知道怎么办,资料又各种少。最后找到了对应的简单例子,但是获取表单数据的那个例子在怎么都不起作用,正在要放
2016-04-28 18:05:30
2590
原创 tornado和beego的helloworld性能对比
测试环境:windows10虚拟机vmware安装的ubuntu14.04内存1g,处理器数量2个,每个处理器核心数量1个测试工具apchebench(ab)python版本:2.7tornado版本4.3go版本1.4beego版本不知道tornado helloworld:import tornado.ioloopimport tornado.we
2016-04-21 10:55:40
14683
2
原创 truncate file python
今天写代码读写文件发现文件内容出现'\x00\x00\x00123',前面多了很多0。最后发现原来是自己truncate的姿势不对先来看看truncate函数用法吧:
2016-04-12 20:27:22
2158
原创 python多线程join方法导致不能接收信号
今天写一个小工具,开启多个线程,在子线程里循环执行任务,发现不能退出程序,然后折腾了半天,还是退出不了,最后发现,原来是个bug
2016-03-30 15:43:02
3396
1
原创 python使用select监听非阻塞socket遇到的问题
昨天学python的select的时候,发现一个非常诡异的事情,到现在也没弄明白,所以在这记录一下服务端实现了一个简单的echo服务器,相关代码如下:#coding=utf-8import select
2016-03-14 19:35:29
5659
转载 How To Create a SSL Certificate on Apache for Ubuntu 14.04
这篇教程简单实用,配置出来默认就是tls1.2了,但是我翻墙不稳定,所以怕以后急用却翻不了墙,所以转载过来了,原文地址:https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04IntroductionTLS,
2016-01-28 10:53:55
958
原创 记PHP第几周和日期转换的坑
项目中有个功能是周报生成,周报里会填写这一周的事件。写周报时,会判断今天属于今年第几周,然后决定写到哪周的周报中,周报简介中会显示这周包含哪几天。。。所以只好自己计算了。。具体计算方法参照outlook的计算方法,不同的是我们这第一周第一天是星期一,outlook第一周第一天是星期天。
2016-01-27 10:16:23
5387
原创 python dist-packages 和 site-packages
dist-packages 和site-packages在我的ubuntu12上都在/usr/local/lib/python2.7目录下今天安装django时发现一个奇怪的现象:我使用 pip install Django==1.8.4安装的django,安装成功,直接在终端使用django-admin也成功,但是进入python:import dnango,却提示no module n
2015-08-26 17:58:10
3082
转载 Linux--进程组、会话、守护进程
原文:http://www.cnblogs.com/forstudy/archive/2012/04/03/2427683.html进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp()eg:显示子进程与父进程的进程组id 1 #include 2 #include 3 #inc
2015-05-17 14:48:28
505
原创 sql实现行列转换
postgresql现有一个表如(表一)想要转换为(表二)sql:select stuName as 姓名,chinese as 语文,math as 数学,english as 英文 from(
2014-10-28 11:02:21
4500
原创 python快速排序
import randomdef rand(n): for i in range(n): yield random.randint(0,1000)#创建一个随机数列表def createList(n): lists=[] for i in rand(n): lists.append(i) return lists#挖坑法快速排
2014-10-14 13:17:20
983
原创 c单链表逆置
#includetypedef struct node{int data;struct node *next;}node,*nodep;nodep createNode(){int i,j;nodep t,q;nodep head=(nodep) new node;head->next=NULL;printf("请输入节点,以0结束\n");scanf(
2014-10-13 18:26:16
737
转载 给window.onload事件赋不同的参数,执行顺序不一样哦!
给window.onload事件赋不同的参数,执行顺序不一样哦!这几天敲例子老看到window.onload,有意思的是,每次赋值不同,界面执行函数显示顺序不一样,为什么呢?一、现象例1: 先弹出框——window.onload成了一个普通变量[html] view plaincopy>
2014-09-09 16:13:34
921
转载 PHP中超全局变量$GLOBALS和global的用法
一、超全局变量$GLOBALSPHP超全局变量有很多,如下的都属于超全局变量(Superglobal):$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。官方说明:$GLOBALS — 引用全局作用域中可用的全部变量。一个包含了全部变量的全局组合数组。变量的名字就是数组
2014-08-31 22:02:10
912
转载 mysql left( right ) join使用on 与where 筛选的差异
有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。 可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来说到底有没有差异。 例如存在两张表结构 表结构1 Sql代码 drop table if EXISTS A; CREATE
2014-08-22 16:59:27
824
转载 dpkg的用法
dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。下面是它的一些命令解释:1)安装软件命令行:dpkg -i 示例:dpkg -i avg71flm_r28-1_i386.deb2)安装一个目录下面所有的软件包命令行:dpkg -R示例:dpkg -R /usr/local/src3)释放软件包,但是不进行配置命令
2014-08-22 14:41:30
707
原创 thinkphp按照汉字首字拼音排序
由于客户需求,需要按照汉字的首字拼音排序,然后就研究了下thinkphp连贯操作的order。例:M(‘Project’)->order(‘name’)->select();这段代码最后转换成原生php代码是这样的:select * from `project` order by `name`;原生代码按照汉字排序是这样的:select * from `project` ord
2014-06-23 16:55:26
2591
原创 反思下该怎样读技术类文章
我对读技术类的书籍有很大的陋习和误解,我总是像阅读试卷上的文章一样看书,咬闻嚼字,非要把所有细节弄懂,而且要记住才罢(英语单词背多了,看到文章里生词句子就想把它背下来),但是技术类的书籍大多都是大头书,这样的速度比蜗牛还慢,便开始着急什么时候才能看得完,一着急就静不下来心了。所以结果往往是一本厚厚的书,只是寥寥的翻了几页便读不下去了,然后我又自责,怀疑自己的能力,渐渐的又对书产生了恐惧,总是觉得看
2014-06-23 16:54:45
913
原创 解惑cookie和session
cookie:因为http协议属于无状态协议,客户端访问了服务器后就关闭连接了,服务器不会留下任何客户端的信息,这会很麻烦,因为当你浏览一个网站的时候,你会对服务器进行多次请求,而每次请求都需要重复输入你的信息(比如现在有一个网站需要登陆了的用户才能访问,这就意味着该网站里的很多页面链接等等都需要你登陆了才能操作访问,这样就会导致你浏览该网站的时候从头到尾都在输入你的信息)。这时候就需要coo
2014-06-23 16:53:50
1228
转载 PHP引用以及误区
作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://weizhifeng.net/php-reference.html
2014-06-23 16:50:48
695
原创 php生成器
在php5.5以前,使用foreach循环一个数组时,这个数组是实实在在存在内存中的,所以当你需要循环一个大的数组的时候,有可能会占很大内存,当人我们希望这样。php5.5实现了生成器来解决这种东西。例子:我们现在要循环一个range函数生成的数组,按照之前的做法:$array=range(1,1000000);foreach ($array as $number) {
2014-06-23 16:49:35
732
原创 一次curl乱弹
下午看上到一个博客,全是图片,真的好喜欢,但不能右键,而且手动下载也好麻烦,于是就想用curl把图片爬下来。思路很简单,先把每页的img地址抓出来,然后通过访问这个地址获取图片。最初我使用的方法:set_time_limit(0);$baseUrl="http://***.com/?page=";$page=9;$ch=curl_init();do{curl_setop
2014-06-23 16:46:00
1159
php pdo和xml留言板
2014-10-02
简易的打分投票系统
2013-10-19
简易办公室借记系统
2013-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人