“地平线 Horizon” – 上海癫子异术节[2008]

“地平线 Horizon”  visualized the flickr image data all over the world around keyword/tag – Horizon. It was exhibited on Shanghai Electronic Art Festival 2008. Teamwork with Wen Jingbo, Wang haocheng, Yang Fan, Yang Tao.Contra:Technical Director, Development.Flash/Flex, python, Flickr API. ============================================= 下文是《大众DV》约稿,略作修改 Dazzling on the horizon — — 无炫不媒体 Key1:新媒体艺术 维基百科对新媒体艺术(New Media Art)的第一句解释如是:“Newmedia art is an art genre that encompasses artworks created with new mediatechnologies, including digital art, computer graphics, computer animation,Internet art, interactive

flickrAPI notes 1

flickr的as Api:flickr-.87,最好直接使用source而非lib,里边的lib与source貌似不一致。同时使用source时,要再添加coreLib,用到了coreLib里边一些事件类型等。

flex与django|python通信,通过pyamf

pyamf官网上推荐了一篇中文howto(1,2),介绍django与flex通信,通过pyamf(一个python的开源api,专门针对amf协议)。其中有个小问题,就是destination的设置。 共有三处会用到该属性(这篇中文howto只提到了两处),我的代码片段如下: 1 flex:<mx:RemoteObject id=”djangoService” destination=”destinationFucker” showBusyCursor=”true”/> 2 services-config.xml: <destination id=”destinationFucker”> <channels> <channel ref=”fuckChannel”/> </channels> </destination> 3 amfgateway.py: usersGateway = DjangoGateway({ ‘destinationFucker.testFuck’:testFuck, ‘destinationFucker.testArrayFuck’:testArrayFuck }) 深红色的python部分,在原文中是没有destination的(当然原文中也没有fu*k)。 我不知道原文的example是如何测试的,至少我滴环境下(django自带server,无数据库)如果在python(或django)的方法前不加destination(即直接’testArrayFuck’:testArrayFuck ),flex是无法找到远程方法testArrayFuck的。(后注:后来发现原example无效是因为pyamf版本有更新) flex的RemoteObject,天生出来是与java后台相亲相爱的 ,在java中,destination对应的可以是该class名,即: class destinationFucker { public function testArrayFuck(){} } 而在python中,至少这个example中米有class,所以必须在映射方法testArrayFuck时加上destination才能找到“destinationFucker.testArrayFuck”。 那么客户端flex及services-config中不写destination行不行涅? 答案貌似是“不行”,如果在RemoteObject及services-config中去掉destination,运行时会找不到destination而报错。 那么客户端flex及services-config中destination id=””行不行涅? 答案也貌似是“不行”,在services-config中destination的id不接受””。至少在flex默认配置下这样是不行滴。 另外,上边举的那个java的例子,其实我猜的,因为从没用java试过 ^_<

“Put a Flex UI on your application”

测试了Bruce大师在”Put a Flex UI on your application”中的例程,其中flex端在我的环境下需要个别改动才可运行,记录如下: 1 as3-rpclib库。直接使用as3-rpclib.swc会报错,说XMLRPCObject覆盖错误。去掉.swc库文件,直接使用as3-rpclib的源代码后跟踪调试,原来在XMLRPCObject.as中两个重载函数“setCredentials与setRemoteCredentials”与基类中的原函数参数个数不一样,少了第三个“charset:String=null”。改动如下: /*原:override public function setCredentials (username:String,password:String):void*/ override public function setCredentials(username:String,password:String,charset:String=null):void 2 XMLRPCObject。原文中没有指定XMLRPCObject对象的destination,在我的环境(Flex SDK 3)下编译后”destination”值为“null”,于是gateway的url就变成了“http://localhost:8000null”。改动如下: 原:<ak33m:XMLRPCObject id=”server” endpoint=”http://localhost:8000″/> 改: <xmlrpc:XMLRPCObject id=”server” endpoint=”http://localhost:9000″destination=””/> 记录完毕。 另,集中注意力于前台flex, 用python做测试web server还真是方便高效。嗯,当然其他的语言php、java等其实还没有试过。。。