Shell's Home

Oct 23, 2012 - 1 minute read - Comments

pycon2012

今天第一天在大型会议上演讲,其实挺紧张的。不过还不错,虽然临场反应并不热烈,但是至少不冷场。下面是我今天看到内容的回忆,有些印象不神,记得不清楚了。

第一天上午

视频播放

上来先是sting先给我们放了一堆视频,我基本啥都没记住。就记住一个在日本的pythoner说教孩子编程时大家的评语了——python穷三代,编程毁一生。我后面接的是,用scheme子子孙孙都完了。

python产品构建和发布指南

沈游侠的主题,彻底干货。基本要点就是利用cython和pypy来编译类python语言,变成C语言代码。这样不但速度快,而且C代码都是可以跨平台的。后面又列举了如何用cython和pypy来编译库。这样基本可以完成python到多数平台的移植。

我做了一下简单测试。cython对速度的增加主要是静态类型编译,如果保持代码不动,速度反而会略微下降。因此在速度提升上,作用并不如想像中那么明显。但是在跨平台上,效果就非常好。rpython则完全相反,经过rpython编译的代码,在基本不修改的情况下(当然,前提是你需要符合rpython),执行比C还快。

不过游侠在后面的答疑中也说了,pypy的rpython编译把握难度比较高,不建议在产品中使用。

另外,他后面也提了溜宝的例子,在python和js之间可以远过程调用,还可以回调。熟悉http的应该可以听出来,这个在现在浏览器中必然是要用到long pull技术的。因此底层框架不肖说,必然是Eurasia。

让程序运行更快

我们几个都在说,土豆的一贯风格是分享内容是和技术有关的干货,但是都和python不搭边。最多在最后说一句,这个技术在我们这里是利用python做的。上次黄东的演讲就是,讲如何算流量带宽费,最后来一句,这个是python实现的。这次李小红的分享也是,很技术,但是和python没啥关系。讲到一半还来了一句,“我对python不熟悉,前几天特意看了一下,dict是利用开放地址法实现而不是开链实现的,这让我对python顿时有了信心”。微薄上无数吐槽高级黑啊。

土豆的分享其实很简单,核心就是如何通过代理让网站的响应速度更快。干货是干货,但是不是非常熟悉http协议,能够将http本身优化到相当程度的,听了等于白听。因为上面讲的大部分,都是内存命中和交换,磁盘写出,cpu调度,poll和epoll内核模式差异之类的话题。在python下面,poll和epoll基本都看不出差别,大部分优化都围绕着模式打转。研究这种命中技巧不是南辕北辙么?

但是这不表示这个主题没用,只是如果你不把其他方面的问题解决的很彻底,先没头没脑在CPU和内存缓存命中上下功夫,多半是做不过别人的。

第一天下午

OpenERP 即将推出的第 7 版的功能和新的编程框架介绍

演讲者是个法国人,中文相当不错。不过和Thomas比起来还是差点。旁边的老外哥们说,那是因为Thomas有个好中国老婆。

基本是广告。除了让我们体验了一把openerp的风格外,啥都没看着。不过openerp看起来确实够屌的,直接去下一个插件,应用,然后就直接换掉了语言。这基本和php差不多。还有一堆的良好的交互特性,看起来非常像应用。此外,啥技术都没有。

元编程在 Redis ORM 中的应用

我自己的题目,会场反应并不很热烈。总共两个选项,我问认为是1的举手,几个。认为2的举手,几个。剩下的是啥?

其实元编程本身就不好讲,这个题目我写完文档算了一下,大概1个小时到一个半小时。问题是我问sting多要点时间,没有。好容易给我加到45分钟。我对着文档左砍右砍,还是紧紧张张的25分钟讲完。要在30分钟出头讲完整个题目,也难怪听众反应不良。

具体我也就不展开了,希望看到的可以看我的slide。另外我说一下,这个slide也是我用python做的。

用 Tornado 开发 RESTful API 应用

其实以这个应用而言,是适合GAE的项目。不过飞龙只是借这个题目讲Tornado而已。

阿里云之移动开发者上云

纯粹广告。不过既然是lighting topic,也不算太难受。我也顺便看了一下阿里云的架构。不过主讲完全没讲到要点,他们到底是卖IaaS业务,还是卖PaaS业务,还是云存储,还是三者都有?另外,用IaaS来做PaaS的可伸缩?我还真不觉得这是个好主意。。。

Python如何帮助「逆转三国」获得成功

广告中的广告。今天唯一一个妹纸上场的主题,我还在想,终于有妹纸上去做分享了,还是个美女。结果介绍完了心里就凉了半截——市场总监,这姐们是个非技术的角色。演讲的主要内容是,python很好,python没出过乱子。完了,总共15分钟不到,我连拍第二张照片的机会都没有。其余时间全在说游戏是如何成功,左右还有海报助阵。最后还出来一个美女发传单。

最后主办方出来道歉,他们也以为这个topic是正规演讲,没想到讲成了lighting topic。

网页游戏的跨界开发

董诣的题目,主要讲他如何训练公司的策划使用python。他用的方法基本就是元编程的路数。

策划将配置写入excel,然后他们的程序读取excel,写出一个python的文件,再由服务器加载。这是典型的字符处理型元编程的例子。早知道他们这么用,我满可以顺手拿来举例的。

最后他的例子倒是让我们吐槽了一把。print后面可以不加空格,这是他们公司美工教的。

实战游戏客户端

林伟每年来都是带来大量干货。今年他是特别从北京飞过来,在演讲前刚刚到场。

他的题目是用python做客户端,并不是很好讲。因为python做游戏客户端不是很多。他举了一个pygame的例子,超级玛丽的企鹅复刻版,玩的挺欢乐的。

后面他大概讲解了一下游戏界面编程的几代模式变化。不过我印象最深的还是说到flash在苹果上。后面他运行flash的那个模拟的时候,我彻底吓一跳。我偷偷和沈游侠说,林伟说的完全没错,乔帮主抹黑flash完全是为了抢app的地位。

大家可以想象一下,如果flash拿到了硬件驱动加速会如何?Apple Store上的程序还有谁会花钱?都直接用网页跑一个Flash游戏就直接玩了。PC上能跑的,在苹果上自然也能跑,效果还不差。那还用Objective C做什么?只有性能要求特别高的才会用到。如果不需要Objective C,那Apple Store还怎么赚钱?从Flash能够做到这点,还有Adobe的战略布局,以及Apple Store目前的情况。我们多半可以得出这么个结论,苹果抹黑Flash的主要目地是将Flash踢出移动平台。而只有将Flash踢出了移动平台,才能保护移动设备开发市场的封闭性,从而从中牟利。

另外,他讲到的FlashCC也很有意思。在一个语言内调用其他语言,这非常有利于Flash的开发。不过后面林伟的一句口误让全场都笑了。他说:“我今天来就是告诉大家,从今以后,大家可以用Flash开发python程序了。”得,又是一堆高级黑评价。

第二天上午

网游开发中的 Python 组件

赖总的topic,基本讲的其实是模式。

对我来说其实也挺有用的,尤其是关于对象可调用方法的那个idea。写程序到了一定程度,实现已经不是问题。只要有明确的实现方法,你给足够的时间干,肯定是干的出的。问题是思路,也就是idea。一个好的思路往往是经过很久的总结,在实践中不停摔倒,才能真正用上去。

另外,最后的吐槽,其实是自行实现语法,或者至少是语法糖。我和赖总说,scheme其实很容易嵌入,而且很容易实现这样的要求——lisp类语言的宏天下闻名。赖总在研究的是基于python自己的Parser的方案,我回头有空也看一下。

Python in Gentoo Linux

Patrick Lauer的主题,主要是讲了Gentoo下面如何使用python,每个版本的python在gentoo下面的支持情况如何。按照数据来看,python3的支持接近完成了。而pypy大概只有2/3的支持比例。

其余大部分人的topic

我都没印象了,或者在睡觉。

问题节录

元编程的情况下,如何使用sphinx处理文档

其实我不写文档,我可以拿代码当文档读。python讲的就是可读性,好的代码应该能做到这点。不过要用sphinx来处理文档,他获得的是对象的__doc__。既然在元编程中可以操作主体,也当然可以操作文档。但是元编程操作文档毕竟太蛋疼了点,如果不是必要我是不干的。

另外,sphinx的多半是代码文档,也就是你写的代码是给程序员看的。你完全可以在整个目录下面写一个markdown来讲解要点。那些不够要点的就让他去吧。

入门推荐哪些书

我的推荐是看任何一本入门指引,然后直接看python-doc。python的文档写的很好,你完全可以直接看。在熟悉python后,再去看一些比较深的专门讲解。

组织问题

回顾完了,我们得数数活动中的问题。今年北京的会议上来就被人吐槽。李小红的topic还没结束,我就看到微薄里面有吐槽说北京这里已经上了两个广告了。上午过去,cpug和weibo上看到无数吐槽。基本都是集中在一点。花了100多参加活动,为什么看到的全是广告?

首先说明一点,100多的活动费用真的不贵。我们公司里面有人买票了(我们是金牌赞助商,有票的),大家听到100多,都估计不会带午饭的。我按照去年的经验估计有午饭还被怀疑了。按照官网报价,30的午餐。北京有人吐槽说不够吃,上海这里我基本看到都是够吃了。连续两天的必胜客,我觉得自己出去30绝对吃不到。茶歇饮料10元也是很实诚的价格。40的礼品和衣服绝对属于成本价,您要是下次能操作到比这个还低的执行成本,我们明年就找您了。这样100里面已经去掉80了。

前200人是99的票,等于只有20的其他费用。后面200人是118的票,等于40的其他费用。我问过sting,报名只有250人(我们场地是14人的宽度,250人要坐17排以上,我看到坐了15排多了)。即使全是付费客户,也只有6000的其他费用。我们的工作人员都是志愿者,不付费的(去年我就是志愿者)。主要的费用是场地费。6000租那么个场地,两天,你开玩笑呢吧。还有外地演讲者来回的差旅费,也是肯定要报销的。一趟北京/广州飞机来回加上住宿就是2000,你自己算算总数多少?

所以大会非找赞助商不可,我们公司就是金牌赞助商。但是赞助商和赞助商不一样。去年的赞助商和我们差不多,都是为了在圈子里面打知名度的,或者说基本就是做贡献了。今年我们公司可是又出赞助又出干货。但是有些公司就需要一些更直观的东西——赞助商不是都有演讲时间么?给丫广告。广告还和广告不一样。oneclick的topic虽然是个纯粹的广告,可是大家都不反感——至少我不反感。他们可是又派妹纸,又不废话,上去讲了10多分钟。我照相还没来得及拍第二张,讲完了。反观淘宝的那个广告我就很有意见了。您讲半天,我都还没听明白您广告的到底是个啥。您那slide大家心里都有数,纯粹是骗外行老板的。下回来技术广告,直接点,专业点。上去说,我们是卖IaaS的,俗称虚拟机。我们的虚拟机有几个技术点。我们还有存储产品,类似S3。我们的存储有几个技术点。大部分来技术会议的都不是做决策的,讲那么花哨纯属浪费时间。

应该说,主办方在和厂商打交道的手腕和组织能力在这里就看出分别来了。怎么看赞助商是不是广告(他们可没法提前拿到slide,而题目——去,题目有啥用),如果是广告,怎么控制广告时间和数量。怎么把广告分散在干货里面,让大家在给干货打的晕头转向的时候可以缓一缓。这是很看水平的。我甚至看到一条weibo,说感谢openerp的广告,我睡了一会,在元编程的时候还能精神奕奕的跟进。。。

不得不说,ZQ在这方面和sting还是有很大差异的,sting毕竟基本是职业的活动主办方了。

当然,另一个方案是放弃其他费用。按照sting的经验,去掉午饭绝对不行,出去吃时间不够,还零零散散。去掉茶歇和饮料也不行,听那会议不停下来歇一下会疯的。能去的只有礼品和衣服。可是去掉礼品和衣服,来的人就会没留念感。再说,每个人省下40,250人省下10000,还是凑不出场地费。

这么数数看,其实办社区活动很苦逼的。大牛比例太少,赞助商和听众都不来,那事情就办不成。大牛比例太高,听众是高兴了,可是赞助商不足,没经费。没经费怎么请大牛?难道让赖总在广州开个视频给我们讲么?人家又写slide,又搭两天来参加,再要自费差旅——这得算赞助商吧。要真这么搞,我一点也不会奇怪赖总的题目会变成游戏推介会。

这么看起来,100来参加,听到广告就不是件很奇怪的事情了,听不到才奇怪。但是控制广告的数量和时间,怎么总体把控,还需要组织者多多上心。毕竟来的人花钱都是看大牛的,要是满眼看过去全是广告,那也没人来了。

另外一点批评。我去年整的wifi不好用,好歹还是能上去的。今年连上都上不去了,全靠自己的流量顶。也幸好是这个会议室,手机还有信号。同事说隔壁会议室手机一点信号都没有,要再没有wifi绝对会疯的。

Tags: program python

没想法 cython编译细节

comments powered by Disqus