今天,

天气晴朗,风和日丽;

我事实上在说谎……

爱说谎事实上是我的天性

上个礼拜四我就用景观三元论说了非常多谎话。然后一头大象自己上吊了。

了不起的大象啊,盖茨比也要从坟墓里爬出来了吧,

陈年旧事,

紫露凝烟,

没有了盖茨比的坟墓依旧是遗址公园。景观三元论如是说。

景观三元论问:盖茨比,你为何不用C++写代码?非要用ruby或者python这样的执行非常慢的语言呢?

盖茨比说:

老兄,你要求快,干脆直接用汇编语言去写吧。

举个样例吧。

你用C++写一个实现某个功能的程序,这个程序的执行速度确实非常快。仅仅要0.0001s就可以,

而我用python或者ruby写相同一个程序,它的执行速度确实慢非常多。须要0.01s,确实慢了非常多非常多倍。

可是,

你写那段C++的程序。你花了一天的时间,

而我用python或者ruby写这段相同的代码,仅仅要10分钟,

而0.01s已经绰绰有余地满足了我的功能需求,它和0.0001s对我来说都是一眨眼的功夫。

所以人生苦短,我用python/ruby

接下来我就说python了

由于是散文。所以不会那么系统地说。

主要就点到为止地说说怎样像一个pythonic一样去写python

a, b = b, a

在曾经写排序代码的循环体内。常常会须要单独搞个中间变量,然后z=a,a=b,b=z

如今一句话优雅的搞定了,如上。

[ i*2 for i in xrange(3) ]

列表推导式式这类语法糖可谓凶器啊,不仅简单优雅。并且威力非常大。(相同适用于元组、集合、字典)

>>> isinstance(1, (float, int))
True
>>> isinstance(1.3, (float, int))
True
>>> isinstance("1.3", (float, int))
False

请不要适用type(1.3)去看变量类型,这样不专业,用isinstance吧,isinstance(1.3, float),并且isinstance还能够接受类型的元组从而适用多个类型。非常优雅吧。

>>> print "Hello %(name)s !" % {'name': 'James'}
Hello James !
>>> print "I am years %(age)i years old" % {'age': 18}
I am years 18 years old
>>> print "Hello {name} !".format(name="James")
Hello James !

带关键词的格式化。

有点模板引擎的味道。

def add(x, y):
return x + y lst1 = [1, 2, 3, 4, 5]
lst2 = [6, 7, 8, 9, 10]
lst_sum = map(add, lst1, lst2) # lst_sum == [7, 9, 11, 13, 15]

python对Haskell这样的有趣的函数式编程语言的继承借鉴还是非常多的,在此就点到为止地提一下filter(),reduce(),map(),lambda...由于是散文,就不说细了。

。。。

写代码的习惯。排版上。空格上,注意一些,也非常重要。虽说推荐似乎名叫pep8规则,可是我认为基本上注意到一些这些细节就够了

看过一排how to use python as a pythonic,好像叫这个名字的网页。

事实上我认为最实用的就是注意括号里參数的空格,以及等于号前后加个空格,看起来舒服清爽点

注意就可以

在此推荐一些关于python的好的參考站点:

https://pyzh.readthedocs.org/en/latest/

http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html

不推荐多,就推荐者两个,一个中文的,一个英文的。

至于面向科学计算的,建议学numpy和scipy。忘了还推荐眼下仅仅有4个api的jerkpy,博客中的还有一篇文章介绍了。

做图像识别 建议opencv。骨骼识别openNI

对于网络编程,建议用request代替urllib和urllib2

异步的twisted我还没看。

网络框架嘛。python的网络框架还是有非常多的,比較白话开放。从plone、django(这个词的d不发音,读“江go”,可是在中国。入乡随俗也没问题)、flask、bottle、tornado

基本上都接触过。可是我终于选定了优雅的异步框架tornado

说说吧

django尽管非常多人用,也非常全,非常快,可是太重、耦合性相对较高。不适合做大型站点,用来给普通公司做私活能够;

flask是个比較新的框架,也非常轻,非常新。社区也比較团结新锐,我本来也用这个,可是后来还是决定不用它,原因是综合的,一个是自身喜好吧,我事实上挺喜欢flask的,可是还是似乎认为他位于一个不轻不重的位置。尽管社区非常不错,是牛B团队开发的。可是感觉略微还是有那么一点乱,有种逐步从webpy的量级向django发展的趋势。

web.py是个不可逾越的轻量级鼻祖,尽管创始人挂了。可是这个经典的框架很经典。只是似乎又太轻了,以及缺乏创始人维护。

做大型站点就应该松耦合,用轻量级的框架来干事,用密斯凡德罗的话。少即是多。以小打大。

bottle可谓一个玩具,上手非常快,非常适合给小学生玩。也算经典吧。

tornado我最推崇。很优雅的一个基于web.py发展而来的异步框架,即使不用他的异步,他也是一个值得推崇的东东。不不过由于其能承受高并发、异步、安全cookie、防止xsrf攻击等。而更是由于这个框架的架构高明,优雅。

在此之前。我实践了ruby on rails,django, flask, web.py, nodejs ,尽管这些都是杰出的框架,可是自从我遇到了tornado,我已经决定tornado是我的归宿。

一把利器啊。经过大半年的实践。我总结到centos+nginx+tornado+memercached+nosql+mysql+python。为何没人从一開始就告诉我这个,这样就不用走弯路了,所以天才都不是凭爹的,而是拼哥的,我真羡慕我堂弟有我这样一个哥哥。等他中考后就去教他这个,瞬间认为自己高中三年,大学四年,研究生两年半真是糊里糊涂地走了好多弯路啊,被三元论这类。

。。

。事实上三元论还不错。是一个不错的思想。可是假设称同济景观为中国最好的景观学,那太不够了。眼下中国根本没有景观学专业,回过头。发现被骗了好多年啊。。

假设上天在给我一次机会,我会在高一后就退学,然后自行软硬兼修外加学规划设计。如今老了。。。。幸亏去年受到了松本行弘的思想的感染,让我断筋再续。尽管不用ruby了。可是这样的思想已然扔不掉了。。

。。

曾经写的都是技术博客,今天写了一篇技术散文,

正所谓形散而神不散。松耦合。强内聚。我又说谎了,事实上想到什么写什么吧,为所欲为。

python上手非常快,未来每一个人都必须会编程,而python和ruby是非常人性化的语言。所以会有大部分人都会python或者ruby的

python上手非常快,可是代码质量以及把代码写得跟机器合二为一还是须要境地的,要充分《深入了解计算机系统》,事实上讲简单点。不说套话,最基础的一个步骤就是充分利用cpu的运算能力,注意内存,异步的核心我原以为仅仅是释放cpu资源,后来发现非堵塞不仅仅是释放cpu,也同一时候释放网络资源,说的比較土,原因非常easy,没学过计算机系统那门课。那本书也没看完。。

只是,换句话说点到为止,慢慢看完那本书足以,汇编语言真的不是必需学了,compilers这样的都是有追求的码农去学的,从一个景观设计师的角度来说怎样像松本所说的那样从人的角度出发,怎样让人更舒服地编码。——给码农捶背,让码农更舒服地编码。这当让是说笑。事实是前一段时间,从一个播客上听了一个腾讯的产品经理说他们团队的敏捷开发,本来看中了腾讯的产品经理的薪资高,可是还没听完那个产品经理的播客。我彻底失望了。打消了去腾讯的念头了——他妈的。就是个工头,当你与什么样的人共事,则意味着未来的高度,我宁愿与一群无业游民共事也不愿与一群号称敏捷开发的包工头共事,工头仅仅知道project,而不关心战略。也不关心产品,更不关心怎样码农地死活与生活。松本行弘作为一个技术大牛的角度,他已经诠释了怎样让程序猿更舒服地编程,而我,作为一名“未知方面”的“自封大牛”也将要诠释怎样让程序猿更舒服地编码“?谷歌一样地舒服的环境,是物质基础。可是真正牛B的方法是少写代码,不写代码。慎重需求提出,用心的架构设计,从产品设计层面就思考怎样尽量少写代码。把时间花在精心设计一个api,让这个api精到能够考虑到后期的迭代开发。

从产品设计层面就考虑到代码架构,从而花时间在画“草图”上,而不是直接拿着“cad来画草图”。尽管是景观与建筑设计的经验,可是这是通用的。

松本行弘,他让程序猿更加舒服地编程。

弓长一苇,他让程序猿更少乃至不用编程。

跳出圈圈看世界。无所谓你是码农。还是建筑师。无所谓你是vc还是cto,无所谓你是教授还是学生,

那些都不重要。

重要的是生活。

生活乃天赋人权。

所谓名利乃身外之物,

无法舍弃追求的不是名利,

而是那种自我的成就感,

可是,我时常提醒朕,

生死由命

富贵在天

人之生,

乃天赋人权。

我并不是生来为了写论文,

我生来也并不是为了写代码,

我生来也并不是为了做设计绘图。

这些不是必须的,

这些是没有必要的,

关键在于你是否有勇气去选择。

选择在于每一个人的自己手中。

发现写的太直白了,

不能这样。

我应该写的高深一点。

清晨,我撞死一辆卡车。

可惜这首我的成名诗,失传了,可惜。。

我自己也忘了当年怎么写的。

散文说python半篇——景观三元论与盖茨比的对话的更多相关文章

  1. Python提高篇

    Python提高篇 1.模块 1)模块定义 模块就是py文件,可以是你自己写的,也可以是python当中自带的工具,当你在某个py文件下想要引用其他模块的功能,就需要你把你把该py文件导入. 2)导入 ...

  2. python基础篇(五)

    PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...

  3. Python入门篇-基础语法

    Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...

  4. python基础篇(四)

    PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...

  5. 面试题之第一部分(Python基础篇) 80题

    第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...

  6. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  7. 【Python五篇慢慢弹】数据结构看python

    数据结构看python 作者:白宁超 2016年10月9日14:04:47 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...

  8. 【Python五篇慢慢弹(3)】函数修行知python

    函数修行知python 作者:白宁超 2016年10月9日21:51:52 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...

  9. 【Python五篇慢慢弹(4)】模块异常谈python

    模块异常谈python 作者:白宁超 2016年10月10日12:08:31 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondo ...

随机推荐

  1. POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)

    Gone Fishing Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 30281   Accepted: 9124 Des ...

  2. QT+vs2010下改变可执行程序的图标

    原地址:http://blog.163.com/tijijun@126/blog/static/6820974520134209457308/ 在解决方案下面的工程里,点击右键 ->选择[添加( ...

  3. Linux chmod权限管理需要小心的地方

    档案的权限管理和简单,比如chmod 775 /tmp/test.sh 另外使用chmod +w /tmp/test.sh,会给档案的拥有者,群组,其他人的权限都加上了可编辑.这样就有安全隐患了.所以 ...

  4. android花屏效果的实现(ViewPager的基本使用)

    1.程序运行效果图 二.代码实现 1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  5. Spring Boot Mongodb

    Spring注解学习,有助于更好的理解下面代码: @ConditionOnClass表明该@Configuration仅仅在一定条件下才会被加载,这里的条件是Mongo.class位于类路径上 @En ...

  6. Raspberry pi raspbain系统下使用vim

    一开始 apt-get install vim不好用. 在putty中执行这条命令就可以了. sudo apt-get update && sudo apt-get install v ...

  7. qt槽函数中,窗口镶嵌窗口的问题,求解

    my_label=newQLabel(ui->widget); my_Label->setText("yvhvv"); 我把这插入到构造函数中,正确显示. 我把这插入到 ...

  8. QT解析命令行(QCommandLineOption和QCommandLineParser类)

    Qt从5.2版开始提供了两个类QCommandLineOption和QCommandLineParser来解析应用的命令行参数. 一.命令行写法命令行:"-abc" 在QComma ...

  9. c#(winform,webform通用)利用npoi将xls文件复制为xlsx文件(excel的修改,保存,包括excel2003-office2007+的处理)

    1.程序界面 每次需要处理excel文件的时候,都是去百度找方案,真是气一头火,今天好好总结一下,下次就不用度娘了. 我是用winform来试验的,因为winform比较方便测试,实际上只要是在.ne ...

  10. win7下不能收到窗口hook消息的问题

    win7下由于UIPI的限制, 高权限进程无法收到底权限进程发来的消息, 因此对窗口消息hook时无法接收到消息,解决办法是在调用SetWindowsHookEx之前先调用ChangeWindowMe ...