自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ECHOutopia的专栏

每天都有进步

  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

原创 一个新手用golang重写python rpc框架总结

从前,我是个phper,每天被困在反反复复的增删改查的工作中,后来接触了python后,便对php嗤之以鼻,并且在python中拓宽了眼界,发现了后端世界,于是换了份python游戏服务器的工作,更加后台了。 python开发久了后,我有些腻了,因为python在我心里不再完美了,它的黑魔法实在太多了,导致python入门简单,精通实在太难,这么多语法糖、黑魔法,他们再以各种组合、各种花样实现各...

2018-03-27 20:15:17 3338

原创 python常用内值函数算法复杂度

之前很长一段时间我计算字典长度都是自己维护一个长度变量,每次字典元素有增减就改变变量,今天发现len()对大多数常见数据结构都是O(1)的,我当时就崩溃了,原来我多此一举了。 这里是常见数据结构的函数复杂度: https://wiki.python.org/moin/TimeComplexity stackover相关问题: shttp://stackoverflow.com/question

2017-04-10 10:48:55 2100

原创 concurrent.futures源码解析

concurrent.futures模块在异步编程中非常常用,我常用在tornado里用它将同步操作异步化,这么优秀的模块,肯定很好奇它的内部原理的。 在网上搜了一些资料,感觉附加讲解还不如代码详细,于是就自己去看源码了, 而源码非常优秀,文件结构也非常简单,只有三个文件:_base.py:主要定义了一些常量、类、方法等,为thread和process使用process.py:Process

2017-02-21 16:27:46 1090

原创 如何使用python写一个操作系统

如何使用python写一个操作系统环境准备写一个操作系统所需环境非常简单,我使用的以下环境:ubuntu 14.04 64位virtualenvwarpperpython3virtualenvwarpper介绍virtualenvwarpper是对virtualenv的封装,使用起来更加方便,virtualenv原理是创建一个目录,然后把所有模块都安装在这个目录下面,这样的话就可以和其他环境

2017-02-13 10:53:03 9933 13

原创 protobuf rpc介绍

刚接触protobuf通过service实现rpc真的是一头雾水,相关资料非常少,找到的资料也看不懂,最后找到了两篇博文,非常详尽,看完就懂了。

2016-12-08 15:56:01 8140 3

原创 ctags和virtualenv神级配合

ctags和virtualenv简单介绍:ctags查看代码的时候真的很方便,ctr+shift+鼠标左键就跳转到函数定义的地方了,然后ctr+shift+鼠标右键又能跳转回来,大大提高工作效率。ctags是通过遍历一个目录下所有文件,生成一个.ctags文件来实现这个功能。而virtualenv是在一个目录下模拟python安装环境,然后在这个虚拟环境里面装的所有模块都只供这个环

2016-09-09 10:08:24 1867

转载 关于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 2009

原创 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 1398

原创 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 5355

原创 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 392

原创 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 19072

转载 SHELL 编程之语法基础

这有个教程也很不错,结构清晰简单:http://c.biancheng.net/cpp/view/7005.html#SHELL 编程之语法基础版权声明:本文章内容在非商业使用前提下可无需授权任意转载、发布。转载、发布请务必注明作者和其微博、微信公众号地址,以便读者询问问题和甄误反馈,共同进步。微博 ID : orroz微信公众号: Linux 系统技术##前

2016-05-16 15:44:25 946

原创 python监听本地目录,并将目录下的文件同步到远端服务器

最近写了个文件监听同步的脚本,查找资料的时候发现大部分都是rsync和inotify的方案粗看了下就是利用这两个工具,再配置来实现,这两个工具都很强大但是考虑到那么多配置,而且两台机子都要配置,部署会很麻烦如果自己写功能,就无需配那么多配置项,只需要安装好python的模块再配置一些简单的项就能用了,还能根据需求自己定制一些功能,只不过性能稳定性什么的也许没有那个成熟的方案好,但是

2016-05-13 18:12:51 5318 2

原创 pyqt给js赋值,获取form表单值

帮同事写客户端,发现pyqt和wxpython的api何其的多,资料又少,写一个包含各种表单的客户端对我来说难度很大,于是想到使用webkit来渲染html,pyqt自然成了我的选择。但是发现,平时在web开发中,html向web后台获取数据或者提交数据这样简单的事,在pyqt中我完全不知道怎么办,资料又各种少。最后找到了对应的简单例子,但是获取表单数据的那个例子在怎么都不起作用,正在要放

2016-04-28 18:05:30 2527

原创 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 13603 3

原创 truncate file python

今天写代码读写文件发现文件内容出现'\x00\x00\x00123',前面多了很多0。最后发现原来是自己truncate的姿势不对先来看看truncate函数用法吧:

2016-04-12 20:27:22 1982

原创 python多线程join方法导致不能接收信号

今天写一个小工具,开启多个线程,在子线程里循环执行任务,发现不能退出程序,然后折腾了半天,还是退出不了,最后发现,原来是个bug

2016-03-30 15:43:02 3304 1

原创 python使用select监听非阻塞socket遇到的问题

昨天学python的select的时候,发现一个非常诡异的事情,到现在也没弄明白,所以在这记录一下服务端实现了一个简单的echo服务器,相关代码如下:#coding=utf-8import select

2016-03-14 19:35:29 5569

转载 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 894

原创 记PHP第几周和日期转换的坑

项目中有个功能是周报生成,周报里会填写这一周的事件。写周报时,会判断今天属于今年第几周,然后决定写到哪周的周报中,周报简介中会显示这周包含哪几天。。。所以只好自己计算了。。具体计算方法参照outlook的计算方法,不同的是我们这第一周第一天是星期一,outlook第一周第一天是星期天。

2016-01-27 10:16:23 5282

原创 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 2889

转载 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 469

原创 我的找工作心酸奇葩史

这次找工作找了一个多月才找到,面试时间加起来最多两个小时,真的奇葩的不行

2014-11-15 09:34:56 1850 1

原创 sql实现行列转换

postgresql现有一个表如(表一)想要转换为(表二)sql:select stuName as 姓名,chinese as 语文,math as 数学,english as 英文 from(

2014-10-28 11:02:21 4441

原创 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 947

原创 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 697

原创 论如何高效学习新知识

逛知乎的时候看到一段话,感觉真的就像给我说的一样

2014-09-21 00:55:28 971

转载 给window.onload事件赋不同的参数,执行顺序不一样哦!

给window.onload事件赋不同的参数,执行顺序不一样哦!这几天敲例子老看到window.onload,有意思的是,每次赋值不同,界面执行函数显示顺序不一样,为什么呢?一、现象例1: 先弹出框——window.onload成了一个普通变量[html] view plaincopy>  

2014-09-09 16:13:34 881

转载 PHP中超全局变量$GLOBALS和global的用法

一、超全局变量$GLOBALSPHP超全局变量有很多,如下的都属于超全局变量(Superglobal):$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。官方说明:$GLOBALS — 引用全局作用域中可用的全部变量。一个包含了全部变量的全局组合数组。变量的名字就是数组

2014-08-31 22:02:10 833

转载 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 767

原创 关于thinkphp关联模型的效率问题

以前听说过thinkphp关联模型效率比较低,但是一直没去kan yuan dai ma

2014-08-22 15:45:07 3793 1

转载 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 623

原创 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 2530

原创 反思下该怎样读技术类文章

我对读技术类的书籍有很大的陋习和误解,我总是像阅读试卷上的文章一样看书,咬闻嚼字,非要把所有细节弄懂,而且要记住才罢(英语单词背多了,看到文章里生词句子就想把它背下来),但是技术类的书籍大多都是大头书,这样的速度比蜗牛还慢,便开始着急什么时候才能看得完,一着急就静不下来心了。所以结果往往是一本厚厚的书,只是寥寥的翻了几页便读不下去了,然后我又自责,怀疑自己的能力,渐渐的又对书产生了恐惧,总是觉得看

2014-06-23 16:54:45 872

原创 解惑cookie和session

cookie:因为http协议属于无状态协议,客户端访问了服务器后就关闭连接了,服务器不会留下任何客户端的信息,这会很麻烦,因为当你浏览一个网站的时候,你会对服务器进行多次请求,而每次请求都需要重复输入你的信息(比如现在有一个网站需要登陆了的用户才能访问,这就意味着该网站里的很多页面链接等等都需要你登陆了才能操作访问,这样就会导致你浏览该网站的时候从头到尾都在输入你的信息)。这时候就需要coo

2014-06-23 16:53:50 1183

转载 PHP引用以及误区

作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://weizhifeng.net/php-reference.html

2014-06-23 16:50:48 647

原创 php生成器

在php5.5以前,使用foreach循环一个数组时,这个数组是实实在在存在内存中的,所以当你需要循环一个大的数组的时候,有可能会占很大内存,当人我们希望这样。php5.5实现了生成器来解决这种东西。例子:我们现在要循环一个range函数生成的数组,按照之前的做法:$array=range(1,1000000);foreach ($array as $number) {

2014-06-23 16:49:35 690

原创 一次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 1105

php pdo和xml留言板

使用方法:详见readme.txt 基本功能:登陆,注册,留言 特色功能:有pdo和xml两种存储方式,登陆错误次数达到五次则锁定ip,不能登陆,防sql和xss注入,留言能上传图片,密码加盐处理

2014-10-02

简易的打分投票系统

因为班上要从12个选出8个人,而且8个人要分三种,普通的投票系统很容易出现得票结果相同的情况,便写了这个简易的评分投票系统。投票给每个选手打分,然后通过分数得出评选结果。一些功能:只能输入80-99的分数之间,统计投票人数,统计投票结果,不能重复刷分。使用很简单,按照或修改install.php文件,建立相应的数据表.加我qq953694678一起交流。

2013-10-19

简易办公室借记系统

管理员和普通会员在一个登录界面。管理员能添加删除老师,添加删除办公用具。而老师可以查看借记信息,可以去借东西。使用时更改install.php和conn.php文件更改相应的数据库名和密码。

2013-09-15

空空如也

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

TA关注的人

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