摘要: 1. 概论在过去的近十年的时间里,面向对象编程大行其道。以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象产生之前,在面向对象思想产生之前,函数式编程已经有了数十年的历史。那么,接下来,就让我们回顾这个古老又现代的编程模型,让我们看看究竟是什么魔力将这个概念,将这个古老的概念,在21世纪的今天再次拉入了我们的视野。2. 什么是函数式编程在维基百科中,已经对函数式编程有了很详细的介绍。那我们就来摘取一下Wiki上对Functional Programming的定义:Incomputer science,functional programmingis a 阅读全文
posted @ 2013-11-09 10:37 敲代码的耗子 阅读(458) 评论(0) 推荐(0) 编辑
2014年3月21日
摘要: 建成工程的python程序,经常启动函数在某一个模块下,一旦其中有引用本模块以外的情况,就会报错说某某模块找不到:有两种方式可以解决环境变量的问题:一种是cmd命令执行前加上:1 SET PYTHONPATH=.2 python main\main.py F:/Workspaces/PythonWorkspace/AudioTesting/testAudio/另一种是在python程序内加上环境变量的根目录:1 # === import project path ===2 curPath = os.path.abspath(os.path.dirname(__file__))3 rootPa. 阅读全文
posted @ 2014-03-21 09:26 敲代码的耗子 阅读(1068) 评论(0) 推荐(0) 编辑
2014年1月4日
摘要: 本文是从How to become a proficient Python programmer这篇文章翻译而来。 这篇文章主要是对我收集的一些文章的摘要。因为已经有很多比我有才华的人写出了大量关于如何成为优秀Python程序员的好文章。我的总结主要集中在四个基本题目上:函数式编程,性能,测试,编码规范。如果一个程序员能将这四个方面的内容知识都吸收消化,那他/她不管怎样都会有巨大的收获。函数式编程命令式的编程风格已经成为事实上的标准。命令式编程的程序是由一些描述状态转变的语句组成。虽然有时候这种编程方式十分的有效,但有时也不尽如此(比如复杂性) ―― 而且,相对于声明式编程方式,它可能会... 阅读全文
posted @ 2014-01-04 11:43 敲代码的耗子 阅读(1307) 评论(0) 推荐(1) 编辑
2013年11月30日
摘要: (转载请标明原文地址) 最近在做一个小项目,使用到XML文件解析技术,通过对该技术的了解和使用,总结了以下内容。1 XML文件解析的4种方法 通常解析XML文件有四种经典的方法。基本的解析方式有两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,DOM是基于XML文档树结构的解析。在此基础上,为了减少DOM、SAX的编码量,出现了JDOM,其优点是,20-80原则(帕累托法则),极大减少了代码量。通常情况下JDOM使用时满足要实现的功能简单,如解析、创建等要求。但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan文档。另外一种是DOM4J,是一个非常非常优秀的Jav... 阅读全文
posted @ 2013-11-30 17:10 敲代码的耗子 阅读(16463) 评论(1) 推荐(2) 编辑
2013年11月19日
摘要: 我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出。用程序员喜欢的话来说就是,我们都在for循环,区别在于你是什么情况下break的。有的人退出阈值高,这是能坚持的一类人;有的人退出阈值低,这类人很可能遇到一些障碍就退出了。 过早退出的原因往往在于对于未来的不确定性,对于投资时间最终无法收到回报的恐惧,感受到的困难越大,这种恐惧越大,因为越大的困难往往暗示着这个任务需要投资的时间越多。所以其实我们都是直觉经济学家,当我们说"畏难"的时候,其实我们畏惧的不是困难本身,而是困难所暗示的时间经济学意义。 然而,我们的情绪大脑毕竟比较原始,仅根据 阅读全文
posted @ 2013-11-19 16:24 敲代码的耗子 阅读(373) 评论(0) 推荐(0) 编辑
2013年4月1日
摘要: Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction 、 trigger 和复杂的查询等。python的数据库模块有统一的接口标准,所以数据库操作都有统一的模式,基本上都是下面几步(假设数据库模块名为db):1. 用db.connect创建数据库连接,假设连接对象为conn2 阅读全文
posted @ 2013-04-01 10:14 敲代码的耗子 阅读(487) 评论(0) 推荐(0) 编辑
2013年3月28日
摘要: 这个问题困扰我几天了。网上查了许久,由于说得不到位,一直没解决,今天又折腾了一下,终于搞定。1、下载可到http://www.vim.org/下载最新的7.2。2、安装编译之前,先要configure --help查看一下配置选项,--enable-multibyte Include multibyte editing support.支持多字节编码,这一步很重要。否则,后面如何配置也是枉然。然后,[root@localhost wbl]# vim --version | grep multi-mouse_jsbterm -mouse_netterm -mouse_sysmouse +mous 阅读全文
posted @ 2013-03-28 18:53 敲代码的耗子 阅读(110) 评论(0) 推荐(0) 编辑
2013年3月3日
摘要: 声明:该文章是结合马孔多的日记(http://www.douban.com/note/201767245/)和p418279973的空间(http://hi.baidu.com/enmzqbeadvfhiye/item/4018b4e7775cd3edfa42bad3)中反映的问题以及解决方法进行的整理,希望对通过编程实现微博爬虫的朋友们提供帮助。由于本人使用用的是Python语言,以下内容就在该语言下进行解释说明。有使用Java语言的可以参考IT男杂记(http://marspring.mobi/http-client-weibo/)正文:PC登录新浪微博时,在客户端用js预先对用户名、密码 阅读全文
posted @ 2013-03-03 10:14 敲代码的耗子 阅读(16850) 评论(26) 推荐(2) 编辑
2013年3月1日
摘要: 内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Python的执行效率,因为在Python的运行中,会创建和销毁大量的对象,这些都涉及到内存的管理。小块空间的内存池在Python中,许多时候申请的内存都是小块的内存,这些小块内存在申请后,很快又会被释放,由于这些内存的申请并不是为了创建对象,所以并没有对象一级的内存池机制。这就意味着Python在运行期间会大量地执行malloc和free的操作,频繁地在用户态和核心态之间进行切换,这将严重影响Python的执行效率。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和 阅读全文
posted @ 2013-03-01 22:00 敲代码的耗子 阅读(419) 评论(0) 推荐(0) 编辑
2013年2月1日
摘要: Google1. nosqldbs-NOSQL Introduction and Overview2. system and method for data distribution(2009)3. System and method for large-scale data processing using an application-independent framework(2010)4. MapReduce: Simplified Data Processing on Large Clusters;5. MapReduce-- a flexible data processing t 阅读全文
posted @ 2013-02-01 17:42 敲代码的耗子 阅读(431) 评论(0) 推荐(0) 编辑