自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xlisper的专栏

点滴回收站

  • 博客(30)
  • 收藏
  • 关注

翻译 python里的metaclass

本文翻译自[What is a metaclass in Python?]作为对象的类在理解metaclass之前,你需要掌握python中类的知识。python里类的概念借鉴于Smalltalk语言,是一种非常独特的理念。在许多语言里,类只是用来定义怎样创建对象的一小段代码而已。在python中也有点相似。>>> class ObjectCreator(object):... pas

2015-03-30 22:43:26 497

原创 Git分支管理

遇到的问题我们在使用Git flow管理流程进行产品开发与迭代时,常常会在许多个分支上切来切去。有时候分支会被搞乱,本应该在A分支上进行迭代的功能却在B分支上实现,刚开始没有好的解决办法,就将错就错的开发下去。这种行为其实是很不负责的,虽然不会带来严重的问题,但也会污染线上代码,导致模块不清晰,功能不完善。后来意识到这种不合理性,找到了两个小点子对这种情况进行避免和补救。解决方法1、避免的方法,在终

2015-03-26 21:15:05 415

原创 rails+nginx实现高效率文件下载

什么是X-accel?Nginx反向代理服务器会根据服务器返回的header信息实现内部地址重定向,这依赖于X-accel。针对费时的请求,它能够使web服务快速地做一些额外工作(权限验证、日志记录等),然后直接将请求移交给Ngnix处理。这种技术通常被称为X-Sendfile。它的工作方式比较简单,服务器发送一个带 x-accel-redirect的header,ngnix解析出x-accel-r

2015-03-25 22:09:42 1490

原创 解决rails4.0中send_file文件下载两次的问题

遇到的问题之前在开发文件下载的功能时,我遇到了一个很奇怪的问题,点击下载链接,在chrome console中会出现两次请求,第一次返回200,下载的数据缓存在chrome的cache中,第二次返回304,直接从本地获取到下载的数据。查看服务器log,的确返回了两次数据。经过很长时间的定位与搜索,终于找到了问题的原因——rails4.0中引入了turbolink技术——当网页改变时,不会刷新整个页面

2015-03-24 22:09:07 1051

原创 Linux权限管理

创建新用户# 创建用户并添加到sudoerssudo adduser blogsudo adduser blog sudo修改用户组# 创建文件touch script.sh# 查看文件详情ll-rw-rw-r-- 1 blog blog 0 Mar 23 21:18 script.shsudo chgrp root script.sh-rw-rw-r-- 1 b

2015-03-24 21:20:09 486

原创 urllib2实现文件上传

需要做什么?如果使用get方法向服务器发送如下数据: name: zhangsan from: beijingcontent-type为application/x-www-form-urlencoded,则会传输数据: name=zhangsan&from=beijing可以看到两组数据被&分割,这样服务器就能够正确解析客户端上传的数据。那当使用post方法提交数据时,应该使用什么

2015-03-22 10:33:36 6509

原创 如何使用Python实现进程间通信

如何使用Python实现进程间通信socket是什么?在网络通讯中,socket是数据传输通道的节点,控制着数据的传输与接收。socket依靠两个主要的属性控制数据的传输与接收:地址族(address families)与连接类型(socket type)。#socket快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-03-19 23:01:28 1401

原创 搭建rails开发环境(ruby2.1+rails4.1.6)

教程地址

2014-10-25 14:05:53 444

原创 使用RabbitMQ实现带权限的Routing

netstat -ntlp | grep LISTEN

2014-09-18 22:46:30 546

原创 如何将mysql数据导出成excel

SELECT ... FROM ... WHERE ... INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ','

2014-09-17 22:32:17 2061

转载 python里那些有趣有用又低调的特性

1、List里的index方法。list.index('x'),当list里没有'x'时,并非返回-1,ers

2014-09-16 16:18:53 471

原创 Linux设置静态ip

/etc/network/interfacesauto eth0iface eth0 inet staticaddress 192.168.138.31netmask 255.255.254.0gateway 192.168.138.3dns-nameservers 8.8.8.8

2014-09-16 15:42:43 434

原创 页面乱码

刚编写web程序时,会遇到与

2014-09-16 15:19:15 368

原创 crontab定时任务——监听web服务运行状况

一个简单的脚本,用于监听web服务运行状况。

2014-09-16 15:11:42 728

原创 http缓存

1、caching,相对于ji完成一次跟服务器的交互是相当耗时的

2014-09-16 14:38:14 476

原创 ngnix+uWSGI实现python CGI编程

Ngnix是一个开源的web服务器。它嫩

2014-07-04 23:50:38 2460

原创 使用glob和re进行文本批量处理

#-*-coding:utf8-*-import os,re,globdef glob_files(re_file): """获取指定路径下符合要求的文件""" files = glob.glob(re_file) return filesdef file_match(pattern, file): """获取指定文件匹配""" def search_match(pattern

2014-07-02 22:04:47 664

原创 实现斐波那契数列的几种方法

def fib(k): """Compute the kth Fibonacci number.""" prev, curr = 1, 0 # curr is the first Fibonacci number. for _ in range(k - 1): prev, curr = curr, prev + curr

2014-06-23 20:37:11 919

原创 inspect模块小技巧

一、

2014-06-10 14:42:32 1573

原创 webpy+uploadify实现文件异步上传

代码结构:

2014-06-06 16:57:37 1884

原创 python中的__all__与__import__

__all__  __all__属性由列表构成,它规定了模块的所有可见方法,会使属性列表之外的成员全部私有化。  只有在执行语句 from module import * 时,__all__属性才会起作用。此时所有枚举的成员被import,而其他成员被私有化。__import__  __import__(name, globals={}, l

2014-06-05 23:05:59 5591

原创 python多继承与mro

1、深度优先#!/usr/bin/env pythonclass Account: """bank account""" def __init__(self, holder): self.balance = 0 self.holder = holder def deposit(self, amount): self.balance = self.balance + amou

2014-04-14 23:10:48 610

原创 python中的迭代器与生成器

一、迭代器

2014-04-10 21:50:42 572

原创 SICP Section 2.2.1

Exercise 2.17#lang racket(define (last-pair l) (if (null? (cdr l)) l (last-pair (cdr l))))Exercise 2.18#lang racket; (define (reverse list); (define (mid-reverse list midl

2013-04-10 21:28:55 524

原创 SICP Section 2.1.4

Exercise 2.7#lang racket(define (make-interval a b) (cons a b))(define (upper-bound interval) (cdr interval))(define (lower-bound interval) (car interval))Exercise 2.8#lang racket(define

2013-04-09 22:59:36 511

原创 SICP Section 2.1.3

Exercise 2.4#lang racket(define (cons x y) (lambda (m) (m x y)))(define (car z) (z (lambda (p q) p)));(cons x y) return a procedure (lambda (m) (m x y));that takes a procedure m as argument

2013-04-08 22:31:31 620

原创 SICP Sections 2.1.1-2.1.2

Exercise 2.1#lang racket;the greatest common divisor of the two integers(define (gcd a b) (if (= b 0) a (gcd b (remainder a b))));reduce the numerator and the denominator to the low

2013-04-08 00:35:15 524

原创 栈的简单应用——四则运算(三)

待解决问题      如何计算带括号的四则运算?解决方案       一、采用符号入栈的解决方式,只是圆括号的操作方式会有所改变。圆括号的优先级最高,"("入栈后,只有遇到")"后才会出栈,并且要先弹出"("后的遗留操作符,保证"( )"中的表达式先被执行。"( )"中的加减乘除操作保持正常的栈处理方式。      二、采用lisp解决问题的思路。所有的"( )"内的操作都是一样的

2013-02-02 20:26:33 596

原创 栈的简单应用——四则运算(二)

待解决问题     解决任意整数或小数的加减乘除四则运算。解决方法      在后缀表达式中把整数或小数放到圆括号里,将它们作为一个整体来处理,例如,"2+50"会转换为"2(50)+","2.1+1.2"会被转换为"(2.1)(1.2)+"。      程序只需在读到的元素为数字时,继续读取下一个元素,下一个元素为数字或小数点则将它与之前的数字拼接到一起,最后当遇到操作符

2013-02-02 15:32:23 610

原创 栈的简单应用——四则运算(一)

在Java中用堆栈实现四则运算是一种很巧妙的方法。栈的先进后出原理可以很方便地判断并控制加、减、乘、除的优先级,利用这一优势,我们可以很高效的将一个中缀表达式转换为去除符号优先级的后缀表达式。一、基础知识中缀表达式          数学上的四则运算算术式,比如:2+3*4后缀表达式          不考虑符号优先级的表达式,比如:(2+3*4)经过转换之后的结果

2013-01-08 09:36:13 2906 2

空空如也

空空如也

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

TA关注的人

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