Script
文章平均质量分 82
阳光岛主
阳光、快乐、创新
展开
-
Django 搭建blog
Django+python+eclipse 快速搭建博客blog原创 2013-11-25 22:15:40 · 6820 阅读 · 1 评论 -
Clojure 学习入门(12)—— map/pmap
map 各种排序(println (sorted-map-by > 1 "a", 2 "b", 3 "c")) ;; {3 c, 2 b, 1 a};; 相等 value 取一个(let [results {:A 1 :B 2 :C 2 :D 5 :E 1 :F 1}] (println (into (sorted-map-by (fn [key1 key2]原创 2013-12-29 23:23:30 · 10474 阅读 · 0 评论 -
Python 学习入门(27)—— 服务器
有人说表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作。而我的想法是,掌握一个类似于框架的高级工具是有用的,但是基础的东西可以让你永远不被淘汰。不要被工具限制了自己的发展。今天,我在这里想要展示的,就是不使用框架,甚至不使用Python标准库中的高级包,只使用标准库中的socket接口(我不是很明白套接字这个翻译,所以使用socket的英文名字),写一个P原创 2013-12-15 00:25:10 · 8042 阅读 · 6 评论 -
Python 学习入门(28)—— 服务器实例
在Python 3.x中,BaseHTTPServer, SimpleHTTPServer, CGIHTTPServer整合到http.server包,SocketServer改名为socketserver,请注意查阅官方文档。在上一篇文章中(用socket写一个Python服务器),我们在不依赖框架和CGI的情况下,仅使用socket接口,完成了一个可以处理HTTP请求的Python服务器。基于原创 2013-12-17 00:01:32 · 8463 阅读 · 5 评论 -
Python 学习入门(14)—— logging
一、从一个使用场景开始 开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件 Python代码 import logging # 创建一个logger logger = logging.getLogger('mylogger') logger.setLevel(logging.DEBUG) # 创建一个handler,用于写入日志文件 fh = logging.Fil原创 2013-11-30 08:18:47 · 7516 阅读 · 1 评论 -
Python 学习入门(1)—— PyDev
eclipse新建python项Project interpreter not specified安装好pydev后新建python项目时提示”Project interpreter not specified“的错误,这是因为没有导入python开发环境所致解决方法如下:1.找到eclipse---->window----->freference.找到左侧栏边得pydev,展开,点击Interp原创 2013-10-25 23:47:24 · 16142 阅读 · 7 评论 -
Clojure 学习入门(13)—— binding
Clojure里面是不支持变量的。Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)binding, 以及函数内的本地binding, 以及一个表达式内部的binding。def 这个special form 定义一个全局的 binding,并且你还可以给它一个”root value” ,这个root value在所有的线程里原创 2014-01-05 10:21:20 · 10947 阅读 · 1 评论 -
Python 学习入门(29)—— 消息队列
nakeMQ是一个跨平台的Python消息队列库。消息队列让不同主机间通信变得简单可靠。使用snakeMQ,只需要发送消息,剩下的事都交给snakeMQ处理。特色:纯python实现,跨平台自动重连接可靠发送--可配置的消息方式与消息超时方式持久化/临时 两种队列支持异步 -- poll()symmetrical -- 单个TCP连接可用于双工通讯多数据库支持 -- SQLite、MongoDB…原创 2013-12-21 19:18:23 · 14957 阅读 · 1 评论 -
Python 学习入门(30)—— 多态
以前写过一篇文章讲了一下python中的多态,最后得出结论python不支持多态,随着对python理解得加深,对python中得多态又有了一些看法。首先python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。以下是维基百科中对鸭子类型得论述:在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类原创 2013-12-21 21:55:50 · 4728 阅读 · 0 评论 -
Python 学习入门(32)—— xrange/range
在Python中range和xrange是不同的,两者的区别是微妙的。为了简单起见,这里省略两个函数的可选参数start和step。range返回值和想象的一样:一个从0开始指定长度的连续整数序列。然而,xrange返回一个"xrange 对象",该对象非常类似于迭代器。如果你曾经研究过迭代器,则两者的区别就很明显。下面是个例子:range(1000000)xrange(1000000)range原创 2013-12-21 22:25:05 · 6104 阅读 · 0 评论 -
Python 学习入门(31)—— 序列化
Python内置marshal, cPickle等序列化库,但cPickle效率不太理想,marshal文档也说不保证版本兼容性。今天在列表中看到几个第三方库,故自己测试下:测试脚本:#!/usr/bin/env pythonimport sys, os, timeimport cPickleimport marshalimport shelveimport tnetstringim原创 2013-12-21 22:02:40 · 3903 阅读 · 0 评论 -
Clojure 学习入门(3)—— 数字类型
一、算术运算 加法+: 加法函数(+)接受任意数值类型的参数,返回它们的和;没有参数时返回0。 Java代码 user=> (+) 0 user=> (+ 1) 1 user=> (+ 1 2 3 4) 10 减法-: 减法函数(-)接受任意数值类型的参数。如果只有一个参数,则返回它相反的数。当有多个参数时,返回第一个参数减去后面所有参数的结果。 Java代码 user=> (-原创 2013-12-22 19:32:14 · 6799 阅读 · 2 评论 -
Python 学习入门(34)—— PyDev 调试
运行程序要运行 Python 源程序,有两种方法可供选择。下面以一段代码 example.py 为例介绍这两种运行方式。在 Pydev Package Explorer 中双击 example.py,选择 Run -> Run As -> Python Run。程序example.py 立即被运行,在控制台 Console 里显示出程序的执行结果。图 13. Python 程序及运行结果 在 Py原创 2013-12-22 00:12:37 · 21082 阅读 · 1 评论 -
Clojure 学习入门(5)—— 关键字
一、创建: Keyword: 关键字是一个内部字符串; 两个同样的关键字指向同一个对象; 通常被用来作为map的key。 user=> (keyword 'foo) :foo user=> (keyword "foo") :foo user=> (keyword "user" "foo") :user/foo user=> (keyword "abc def") :abc def原创 2013-12-22 21:23:53 · 7964 阅读 · 0 评论 -
Clojure 学习入门(8)—— 连接mongodb
参考推荐:Monger, a Clojure client for MongoDBclojure简单操作mongo原创 2013-12-22 23:00:18 · 9295 阅读 · 0 评论 -
Clojure 学习入门(4)—— 字符串
一、创建 函数str: 函数 (str) 接受任意数量的参数。如果参数不是字符串则将其转换为字符串,返回创建的新字符串。如果没有参数或为nil,则返回空字符串,""。 user=> (str 1) "1" user=> (str -2.5) "-2.5" user=> (str "a") "a" user=> (str "abc" 123) "abc123" user=> (str原创 2013-12-22 20:21:42 · 6879 阅读 · 0 评论 -
Clojure 学习入门(6)—— 函数定义
一、创建函数: fn: fn是一个宏(后面进行详细描述),用于定义一个简单的函数,如下: user=> (fn [] "hello") #@eabd2f> user=> ((fn [] "hello")) "hello" user=> ((fn [x] x) "hello") ; 带参数 "hello" 简短的函数可以使用#(),%表示唯一的参数;%1、%2 ..表示第1、2、..个参原创 2013-12-22 21:50:18 · 8800 阅读 · 0 评论 -
Clojure 学习入门(7)—— 连接mysql
Clojure的contrib包中实现了对现有JDBC的封装,在wiki上有连接,该页面上包含了对不同的数据库的连接方法和基本的操作,但是这个页面上没有提供足够的信息,足够一个初学者能够使用Clojure来完成一个SQL操作。本文中我们将利用Clojure和Lein工具,简介一下做开发的基础。当然网上也有非常多对Clojure的SQL操作进行封装的库,我们这里没有使用。首先,如何配置你的MySQL原创 2013-12-22 22:30:53 · 9415 阅读 · 1 评论 -
Clojure 学习入门(9)—— 连接redis
project.cli 添加redis依赖: [clj-redis "0.0.12"](defproject myClojure "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :license {:name "Eclipse Public License"原创 2013-12-22 23:34:09 · 9634 阅读 · 0 评论 -
Python 学习入门(33)—— 内置函数
python的内置函数可以直接调用,无需import。有很多 我在平时常用到的,int()将字符串或者小数转换成整数str()将其他类型转换是字符型len(X)返回X的长度。The argument may be a sequence (string, tuple or list) or a mapping (dictionary).print()输出type(X)返回X的数据类型open(f)打原创 2013-12-21 23:09:40 · 6116 阅读 · 0 评论 -
Clojure 学习入门(10)—— httpkit
Http-kit 是主要由Java 和 Clojure开发,为Clojure定制的零依赖的HTTP lib,仅用3000多行代码,实现了高性能 Server,Client,Timer。代码量少,实现简单,对Hacker友好。在普通的PC上进行性能测试时,http-kit server每秒能处理数万个请求,并能轻松保持数十万并发,每个连接消耗几k内存,并发数仅与内存大小有关,高并发不影响 laten原创 2013-12-23 00:02:05 · 12899 阅读 · 1 评论 -
Clojure 学习入门(14)—— 循环控制
一、基于函数的流程控制 repeatedly: repeatedly字面意思为重复函数。一般的用法如下: Java代码 user=> (repeatedly 5 #(rand-int 11)) (6 8 2 6 6) 重复产生5次随机数。rand-int 11表示0至11的随机数。 这里顺便提一下repeat函数:repeat函数接受一/两个常量参数,用法如下: Java代码 user=>原创 2014-01-06 23:04:21 · 14090 阅读 · 0 评论 -
Linux 有趣命令
1. sl 命令sl是指“steam locomotive(蒸汽机车)”,你会看到一辆火车从屏幕右边开往左边。。。。。。安装 $ sudo apt-get install sl 运行 $ sl可以通过设置别名,给别人来个恶作剧,搞个关联让他一敲ls就跑出个火车出来,不知道的肯定很有效果$alias ls=sl2. fortune 命令输出一句话,有笑话,名言什么的,中文版有唐诗宋词,英文版有翻译 2013-12-26 23:35:41 · 17624 阅读 · 12 评论 -
Clojure 学习入门(16)—— 正则表达式
一、创建正则表达式 re-pattern函数: 函数 (re-pattern) 接受一个字符串参数,返回一个正则表达式样式(java.util.regex.Pattern类的实例)。这个样式能用于正则表达式匹配 Java代码 user=> (re-pattern "\\d+") #"\d+" 也可以使用读取宏来直接用文本的方式输入正则表达式:在字符串前使用#符号。和用re-pattern函数原创 2014-01-12 07:38:23 · 12136 阅读 · 2 评论 -
Clojure 学习入门(11)—— 宏 macro
` 原原本本地直译过去,不用`,let语句不被翻译,例如: (let [datastr '{:a 1 :b 2}]) ~' 后面的变量被直接翻译过去,例如:(let [~'conn "meta"] (with-mongo ~'conn)) '~ 变量名本身而非值,例如:(defn f1 [x] (println '~x ":" ~x)) (let [a 10] (f1 a)原创 2013-12-27 23:59:51 · 11212 阅读 · 0 评论 -
Python 学习入门(35)—— 模块
模块概念和基本使用 python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题。模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块不需要导入外。导入直接使用如下语法: import 模块名称(不要.py后缀) 这样导入成功后,就可以在另外一个模块原创 2013-12-22 01:26:11 · 24505 阅读 · 7 评论 -
Python 学习入门(26)—— 装饰器
装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。装饰器最早在Python 2.5中出现,它最初被用于加工函数和方法这样的可调用对象(cal原创 2013-12-14 00:09:14 · 11283 阅读 · 8 评论 -
SAE 搭建微信公众平台
参考推荐:利用SAE搭建微信公众平台SAE Python环境(SAE官方)微信开发者接入平台(微信官方)原创 2014-01-21 23:09:47 · 17157 阅读 · 1 评论 -
Clojure 学习入门(2)—— eclipse 插件
最近学习Storm,并且是源码级的,所以开始学习Clojure。以前听说过函数式编程,也听人说Erlang的牛逼,接触了Clojure才知道,原来Clojure就是JVM中的Erlang。网上基于Ubuntu环境下开发Clojure的资料太少,在这里整理总结,分享给大家。1. 安装Clojure可以手动的方式:java -cp /opt/clojure-1.5.1/clojure-1.5.1.ja原创 2013-12-22 17:40:49 · 12200 阅读 · 0 评论 -
Python 学习入门(37)—— @classmethod函数
@classmethod : 类方法@staticmethod : 静态方法类方法和静态方法的调用一样,都是通过类就可以直接调用。区别:类方法,需要传入该类,定义类方法的时候要传一个默认的参数cls。静态方法则不用。示例:#!/usr/bin/env python# -*- coding: utf-8 -*-# blog.ithomer.netclass Test(object):原创 2014-02-21 23:33:05 · 11369 阅读 · 1 评论 -
Python 学习入门(36)—— @property属性
@property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的假设定义了一个类:C,该类必须继承自object类,有一私有变量_xclass C: def __init__(self): self.__x=None 1.现在介绍第一种使用属性的方法: 在该类中定义三个函数,分别用作赋值、取值和删除变量(此处表达也许不原创 2014-02-15 01:01:00 · 31707 阅读 · 4 评论 -
Python 学习入门(38)—— @functools模块
利用@functools对函数运行时间,进行计时代码示例:#!/usr/bin/env python# -*- coding: utf-8 -*-# blog.ithomer.netimport time, functoolsdef timeit(func): @functools.wraps(func) def __do__(*args, **kwargs):原创 2014-03-01 00:06:03 · 12301 阅读 · 1 评论 -
Clojure 学习入门(17)—— 异常处理
二、异常处理 Clojure代码里面抛出来的异常都是运行时异常。当然从Clojure代码里面调用的java代码还是可能抛出那种需要检查的异常的。try,catch,finally 以及throw 提供了和java里面类似的功能: try、catch、throw、finally: Java代码 user=> (try (throw (Exception. "error")) (finally (p原创 2014-03-10 22:44:32 · 10494 阅读 · 0 评论 -
Python 学习入门(18)—— 字符串
Python判断字符串只包含数字一种方法是 a.isdigit(),但这种方法对于包含正负号的数字字符串无效,更为准确的为:#!/usr/bin/python# -*- coding:utf-8 -*-## http://blog.ithomer.netimport sysimport math# 判断是否为数字def isNum(value): try:原创 2013-12-06 19:21:28 · 12672 阅读 · 0 评论 -
Python Supervisord 进程管理工具
Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。环境centospython2.4安装 wget http://pypi.python.org/packages/ ... 87301296b7a597fb68etar zxvf supervisor-3.0a10.tar.gzcd supervisor-3.0a10python setup.py原创 2014-03-08 20:59:34 · 18616 阅读 · 0 评论 -
Clojure 学习入门(1)—— 学习资料
官方文档: http://clojure.org/documentation 中文资料(强烈推荐): 1.clojure入门教程 http://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/ 2.clojure文档翻译 http://code.google.com/p/c原创 2013-12-22 08:38:20 · 13648 阅读 · 1 评论 -
Python 学习入门(6)—— 网页爬虫
Python抓取网页&批量下载文件方法[Python]网络爬虫(一)(系列教程)开源python网络爬虫框架ScrapyPython之HTML的解析(网页抓取一)详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)原创 2013-11-02 19:25:09 · 20220 阅读 · 0 评论 -
Python 学习入门(12)—— 文件
python进行文件读写的函数是open或filefile_handler = open(filename,,mode)Table mode模式描述r以读方式打开文件,可读取文件信息。w以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容a以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建r+以读写方式打开文件,可对文件进行读和写操作。w+消原创 2013-11-28 23:50:23 · 5372 阅读 · 0 评论 -
Clojure 学习入门(18)—— 数据类型
如何表示和处理数据Clojure是一种动态类型语言,这意味着你在程序中永远不需要明确定义符号、函数、或者参数的数据类型。但是,所有的值仍然有一个类型。字符串时是字符串,数字是数字,列表是列表,等等。如果你尝试执行一个类型不支持的操作,将会在运行时产生错误。写代码时避免这种事情,是程序员的责任。对于有动态语言背景的人来说是很自然的事情,而那些只使用静态语言的人需要一些转变。Clojure的类型既简单原创 2014-04-10 22:31:29 · 10617 阅读 · 0 评论 -
Clojure 学习入门(19)—— 数组
1、创建数组1.1 从集合创建数组 into-arrayinto-array(into-array aseq) (into-array type aseq)返回包含aset中所有元素的数组。数组的组件类型为type(如果指定了type),或aset中第一个元素的类型(如果aset不为空),或Object。aset中所有元素的类型必须兼容数组的组件类型。type可以使用基本类型的类对象,例如Inte原创 2014-04-27 22:30:31 · 10026 阅读 · 1 评论