2009年7月31日星期五

好时代

http://songshuhui.net/archives/16776.html 爱因斯坦的日食缘–BBC《爱因斯坦和爱丁顿》影评
看着那个群星璀璨的年代,我的脑海里闪现的是另一个人——图灵。正如 cnbeta 上的调侃,咬了一口的苹果 logo 不知是否也有纪念图灵之死的成分。从隐忍的爱丁顿、不堪迫害自杀的图灵,到2005年12月允许注册合法的民事伴侣关系,现在真是一个好时代。也许因为中国传统文化接近原生态的从来不把同性恋当回事,所以也相应的连正视的动机都没有。
属于我们的好时代,什么时候才能来呢?据说同性恋平等运动、男女平等运动和社会主义运动是天然的同盟……昨天学习了一点点毛主席语录,切中时弊啊。可我一点也不期待中国的新一轮社会主义运动。

2009年7月30日星期四

当时我的脑子一定是抽筋了!

为什么会用那么奇怪的 execfile((path+"\\QRmate_bg.py").encode('utf-8'), globals()) 来启动 QR 助手,而那个文件中除了初始化之外其它需要启动的其实只要一个函数…… import 了调用就可以,那个时候我真的不知道(>_<)改过之后最痛苦的 bug ——用五次就会死掉——终于消失了~哦耶!
另外那堆 canvas.bind 用的函数其实都可以用 lambda 形式改写。就算需要寻找程序安在 C 盘还是 E 盘,用链表推导式写应该清爽很多(>_<)

2009年7月29日星期三

一步之遥

假如刚才没有上电脑 google 的话,也许我更早就能发现那个没有写进文档里的 getpixel ——在放下手机之前,我已经在看 system\libs\GRAPHICS.PY 了,刚看到定义 image 类的成员,再往下几行就到" self.getpixel=self._image.getpixel "这句了。
不过 google 到也好,即使看代码也更有针对性,不然即使看见了也未必知道那就是我要找的东西(>_<)
反正最起码的一条教训:虽然文档很重要手册很重要,但是也不能太依赖。本本主义害死人啊~

点的颜色

晚上和妈咪逛街回来又逛套包,呃,淘宝~因为手机流量不足在电脑上 google 了一下 graphics 模块里 image 的点的颜色怎么取出来……
http://snippets.dzone.com/tag/pixel
看了一下 http://larndham.net/service/pys60/getpixel.py 的源代码,囧囧的发现人家的实现似乎是在 D 盘存出一个临时的 png 文件,然后把文件里对应位置的信息取出来=.=如果用这个方法我还不如直接比较文件大小呢……感慨:一、作者真是很有爱,二、太阳底下没有新鲜事。
伟大的 cyke64 大人(俺对他老人家有深重的怨念啊=v=)在 http://discussion.forum.nokia.com/forum/showpost.php?p=168137 里给出了 getpixel 的方法~"It's an undocumented function"这就是传说中的秘技吗?果然很有爱^^
爬去实验~

--

2009年7月27日星期一

网络编程完全无能……泪

在淘宝上买一堆东西的时候找全了就找到内伤T-T
所以前两天注册了个开发者的啥啥(俺真的不知道那叫啥>.<),晃悠晃悠看看,好东西还是不少的,思路也是简单的,唯一的问题是不会用-.-
管它 http 、 tcp/ip 什么的我从来都没有折腾过呢,任何和服务器有关的东西我也没碰过……果然是无比长久的单机环境的后遗症啊>.<
起跳有点高。不过还好,python 用 json 有不少现成的资料,直接调用淘宝 api 的也有……(果然有钱途的东西大家比较关心咩)
http://blog.chinaunix.net/u2/68938/showart_1979840.html Try taobao open API in python
http://code.google.com/p/tbassistant/ 淘宝API应用演示程序
没仔细找,不过我想认真的看阿里的文档, java 封装好的包仔细看看应该也能明白大概(类 C 语言俺虽然不太会写,读还是问题不大的)
最重要的是我到底要写个什么……其实按照我的口味和能力,最好没有服务器端的事情,单纯交给本地 python 脚本或许是最偷懒的方法了……实在不行的话就先实现一个能返回我需要的掌柜昵称列表的小程序,然后再慢慢扩充我需要的功能……

2009年7月26日星期日

神魂颠倒

上午躺在床上抱着手机写程序,企图让 pys60 自己分辨我的一卡双号在线的是哪个号,但是完全没有头绪,写着写着睡着了。迷迷糊糊梦见查到手册上有一个 API 允许查看当前短信息中心。如获至宝挣扎着醒过来,发现那只是个梦而已……泪奔~
目前的实现思路是对桌面截图,把显示门号提示的位置(也就是普通情况下显示 "中国移动"的地方)提取出来。之后怎么折腾还没想好~肯定可以做到但是很丑的方法是把 image 对象存成图片,不同的门号显示图片大小不同,因为我平常使用的主题只有两个,所以也只有 4 种情况而已。稍微灵巧一点也许只需要选择两个恰当的点就可以了。两个门号显示文字重叠的部份一个点,不重叠的一个点。比较两个点是否一样就知道是哪个门号显示文字了——问题是我不知道两个 image 对象是否能直接比较异同……囧。

pys60 连续发短信和 sms_send 的回调函数问题

想让 pys60 发短信到 10086 帮我问问免费流量超了没以及话费余额,需要连续发两条短信。
用 pys60 发短信我只在反编译并分析流氓软件"移动通"的时候碰到过。感觉并不难。
看了一下库参考手册,照着手册的建议为了防止程序挂起几分钟,设定了 sms_send 的回调函数。第一条可以成功发送,第二条的时候就报错出现了" already sending "的提示。即使把第二个 messaging.sms_send 移到第一条的回调函数里也没用。
去 system\Libs\ 里把 messaging.py 翻出来看。它在发送短信的时候把 _sending 置为 True ,调用回调函数之后再调用 signal_lock() 将 _sending 设为 False ,在二者之间调用 messaging.sms_send 总是会出现" already sending "的——这就是在回调函数中发第二条短信也会报错的原因。
不想 hack 到 messaging 内部去改变量,又没打算用 ao_sleep 那么丑的方法,只能另找别的出路。
想起在 PyS60 tutorial 的例子里见过连续发两条短信没问题的。打开 ex_sms_sending.py 一看,人家没用回调函数。再去看库参考手册:"回调函数缺省情况下, sms_send 函数在被调用之后挂起,直到所发信息在队列中删除或发送失败"。
囧囧的删除了回调函数,一切 ok 。
早知灯是火,饭熟已多时……这次绕了大圈圈的教训是本本主义要不得啊~不过算是彻底把这个问题搞明白了,也挺好的。

以前看别人提过今天自己实践了一下的火星心得两则:
一、发中文短信只要把短信正文字符串用 utf-8 解码, sms_sending 第三个参数(可选)文字编码设定为 "UCS2" ,就可以了。
二、从程序发出去的短信在"发出的信息"里看不见,从通讯记录里能看到号码,但看不到内容。
(再次深切的怨念 BB 上不支持 python ……不能自己折腾着玩好痛苦……好想叛逃到 Android 平台啊啊啊~)

2009年7月25日星期六

火星的代价

想在 N72 上用 pys60 发推玩,用英文 google 到的资料大多是 pys60 1.9x 版的……可怜的二版机永远的停留在了 python2.2 内核的 pys60 1.45 上……这就是火星的代价啊T-T
如果说用 python 自己在手机上折腾着玩的话,BB 大概是最不现实的了…… iphone 越了狱就是一个 unix ,更别说天生就是 linux 的 Android 。
要不要再观望一下 C 网的 Android 捏?可是我讨厌触摸屏啊啊啊!没有触摸屏的全键盘 Android 倒是有可能……不知什么时候才能出来 GC 双模的……
绝望啊绝望~人生果然没有完美的……
(为啥我的 Java 会烂到这么无以复加的水平上捏?好囧。)

2009年7月24日星期五

纠结的集体穿越

最近接着看读到一半雪藏起来好几年的《西方政治文化传统》。看到的学到的越多,越觉得东方和西方是在两个位面上按照各自的规则发展的不同世界。而这两个世界的接触和碰撞,则是神上神残忍的恶作剧——其实我们是集体穿越了对不对?
现代的科学研究都是按照西方的科学逻辑进行的。成为一个学者,越是优秀,越是把西方的科学逻辑内化为自己对事物判断的标准。用这种标准看,东方传统文化从来就是反逻辑反科学的。于是,即使中国的研究者用中文写成的研究文字,也只能把西方的东西奉为圭臬,不管感情上或者理智上多么平均照顾的赞扬东方文化,后面还是要加上"但是"。
说到底,因为西方占据了实际的优势,所以我们才会按东方成王败寇的传统接纳西方的价值观,从而把东方传统的东西批判的稀里哗啦……
虽然因为价值标准不同得出不同结论非常正常,"情人眼里出西施"嘛,可是地球村里满大街都是别人眼里的西施自己眼里的东施……这种感觉一点也不好玩。
对不一定对,错不一定错的东方混沌,为它凿开科学逻辑的七窍,只会让它死掉。
我猜两三百年之前的古人,一定比我更加迷茫更加痛苦更加纠结。现在的人不纠结,也许只是因为被割断了和东方传统的脐带,否则总是会有这样那样的违和感吧……

2009年7月21日星期二

Opera Twitter Widget 复活手记

我曾经想学着写 Opera Widget ,看了一堆资料,最后因为对 css 、 js 以及网页设计完全无能所以放弃了。想不到在试图让 Opera Twitter Widget 复活的时候还是用上了。

=====开始备料=====
首先是准备一个可以用的第三方 api ,可以直接使用 http://nest.onedd.net/api ,也可以按照 http://www.ifanr.com/2778 打造自己的twitter API proxy (from iFanr 爱范儿)这个教程自己在 Google App Enginge 搭一个。
另外需要一个显示在 Opera 主窗口中而不是 widget 内打开的页面,我用了 dabr 。因为 api 中有些返回的 css 是在 twitter.com 上被墙的,看起来很丑。官方的 dabr 地址是 http://dabr.co.uk/ ,如果有国外的空间依然可以自己弄一个,方法参见 http://www.appinn.com/twitter-dabr-setup-guide/ Dabr 安装 - Twitter 手机版网页程序安装教程(from 小众软件)。
=====备料结束=====

Opera 的 Widget 只是把后缀改成 wgt 的 zip 文件。下载一个官方的 Opera Twitter Widget , wgt 文件在 profile\widgets 文件夹,改后缀解压缩之。
解压缩之后首先修改 config.xml ,在 <access> 和 </access> 之间增加如下内容

<host>nest.onedd.net</host>
<host>dabr.co.uk</host>

(如果你用的是自定义 api 或者其他的 dabr 程序,当然要改成对应的域名),保存。

script 文件夹下 twitter-api.js 第 57 行" // API methods "到第 248 行"// Twitter search API"之间的 http://twitter.com/ 或者 https://twitter.com/ 改成 http://nest.onedd.net/api/ 或者自己的 api 地址。之后的 twitter search api 我不知道应该怎么改,不过我从来没用到过。

script 文件夹下 twitter.js 查找"'<p class="profile">',"往下一行和查找"(type != "direct_message" ? ('<a href="往下一行,这两处 'http://twitter.com/' 改成 'http://nest.onedd.net/api/' 或者自己的 api 地址。查找"'<p class="text">',"往下一行改为

'<a class="name" href="http://dabr.co.uk/user/', username, '">',

,查找"'<span class="status-line">',"往下一行改为

(type != "direct_message" ? ('<a href="http://dabr.co.uk/status/' + id + '" class="time">' + new Date(created_at).toAge() + '</a> ') : new Date(created_at).toAge()),

保存。
这就改完了。

测试方法:把解压后的 config.xml 拖到 Opera 的窗口里。登陆~我胡汉三又回来啦~

测试 OK 之后,可以将 Opera 的"管理 Widget "和 profile\widgets 文件夹里因为测试多出来的 Twitter Widget 删除。将修改好的代码重新压缩为 zip 包,修改后缀为 wgt ,拖动到 Opera 窗口。这回是彻底搞定啦~




--

2009年7月14日星期二

网页版淘宝旺旺支持 Opera 了~

昨天刚刚发现的~现在在 Opera 里网页版淘宝旺旺已经可以正常使用了。以前能打开但是没发输入(>_<)
更早之前发现 QQ 空间和 web qq 在 Opera 中也可以用。
感谢 Opera 中国团队和淘宝、腾讯的技术人员们。
太开心了~p( ̄v ̄)q

2009年7月13日星期一

bug

发现沉默启动的一个 bug ,我把它绑定在短按快门键上(长按快门通过 Keyman 设置成蓝牙开关,有震动提示),一、半夜摸起来很困难,二、插在电源上时手机没有震动,不能确定到底成功运行了没,三、要是沉默启动没运行的话按报时功能的快捷键绿键,就跑到已拨电话上去了,要是迷迷糊糊不小心再按一遍,就会拨打上次拨出去的号码,囧。
或许修改一下报时快捷键可以避免?试试吧~

2009年7月4日星期六

磕毛豆了~

毕业以来的怨念啊~因为上一块硬盘的抽风而被压抑的深重怨念终于在今天调教好了系统之后爆发出来=v=
遥想去年的时候 D+ 似乎刚刚出来, COMODO 2.x 还是主流,中文版更是遥远的东西。今天去卡饭毛豆区(http://bbs.kafan.cn/forum-38-1.html),才知道有了中文版,安完才发现里面还带杀毒~(火星本质再次暴露>.<)太乐了~终于不用到处揪心用什么杀软了。
嗯,慢慢折腾吧~我喜欢这种感觉~


--