2011 6 26 03:26 AM 3982 次查看
分类:iOS开发 标签:Objective-C, iOS开发
这些天终于戒掉了星际争霸2,开始学习iOS开发了。虽然还只是一知半解,但学了几天后,觉得单视图的iOS应用开发起来太轻松了,就忍不住想自己动手做点小玩意。
我也没有什么好的创意,只是偶然看到猜数的游戏,觉得用选取器这个控件很适合,就决定做了。
2011 6 22 03:09 AM 7882 次查看
分类:iOS开发 标签:iOS开发
众所周知,开发iOS应用需要注册iOS Developer Program(iDP)。不过这玩意需要99美元/年,只是玩玩而已的话就显得太贵了。好在不注册也可以用模拟器测试,但是不在iOS设备上测试总觉得不爽,于是便在网上找到了解决办法。
2011 6 21 09:09 PM 2705 次查看
分类:Google App Engine 标签:Google App Engine, Python
前些日子有人问Doodle是否支持Windows Live Writer,我只是回答了不支持而已。原因很简单,我的Windows XP很奇怪,几次装Live Writer都失败,对微软已经绝望了。
不过现在已经转移到Mac OS X上了,装软件没这么奇葩的兼容性问题,于是就研究起weblog publishing API来。
博客发布API大致有2类:一类是基于XML-RPC服务的,包括Blogger API、MetaWeblog API、MovableType API和WordPress API等;另一类则是Atom Publishing Protocol。
后者虽然技术上比前者强大,但较为复杂(例如认证是基于HTTP的认证机制),而且由于出现得较晚,支持它的也比较少。当然,对我来说更重要的是文档很难找,因为这个协议并不只用于blog,一些细节上的东西就不知道怎么搜索了。
于是比较了1天后,还是选择了XML-RPC。简单来说,它就是用XML封装方法名和各个参数,POST给XML-RPC服务器,再由服务器返回XML封装的方法运行结果。至于各种API,实际上只是方法和参数的差异,原理都是一致的。
下面举个提供加法的XML-RPC例子。
2011 6 21 11:44 AM 2033 次查看
分类:Google App Engine 标签:Google App Engine
前几天GAE SDK 1.5.0 Prerelease版发布了,由于新特性没文档,我也就没介绍了。这几天部署应用时老提示有新SDK,不过就是没放出下载。而今天,1.5.1正式版终于发布了,更新如下:
- 外部请求将带上X-AppEngine-Country头,基于用户的IP,以ISO-3166-1 alpha-2国家码来标明的访问者的国家。CGI环境下可用os.environ['HTTP_X_APPENGINE_COUNTRY']获取,我自己测试时可以拿到'CN',不过使用代理和反向代理的就只能拿到代理服务器所在的国家了。
- Channel API可以检测用户状态。需要在app.yaml的inbound_services里增加xmpp_presence,详情可见User Presence文档。
- Images API支持WebP格式。(本地是用PIL,所以不支持)
- 本地开发服务器新增--high_replication参数,模拟High Replication Datastore的行为(查询实体时,最近改写的实体可能不会返回)。
- 管理页面的后台记录可以选择时区了。(以前为PST,还得考虑夏时令的问题。注意没有北京时间,而上海时间不会显示最近6分钟的请求,所以建议设为香港时间。)
- Python SDK增加ProtoRPC API。这个API还是实验性质的,我只是粗略看了下,大致是用于构建基于HTTP的RPC服务的。简单来说,按照它预定义的格式来进行请求,再返回一个预定义格式的响应。感觉没多大用处,因为自己实现JSON或XML格式的RPC服务也不难。
- 增加app_identity API,可用于获取应用id和默认版本的域名(例如my-app.appspot.com);此外还在请求其他服务时,能对请求进行认证(也就是签名啦)。
2011 6 18 03:16 AM 40050 次查看
分类:Mac OS X 标签:Mac OS X
用了几个月Mac OS X,发现很多东西不记录下来就会找不到,于是就有了这篇日志。
2011 6 7 05:06 PM 9403 次查看
分类:Google Chrome 标签:Google Chrome
今天在MacX下东西时,想去软件的官网看看介绍,结果发现没法选取软件名来复制和搜索,于是写了个Chrome插件Enable Copy来破解。
效果如下:
2011 5 11 03:49 AM 3840 次查看
分类:Google App Engine 标签:Go, Google App Engine
2011 5 8 07:12 PM 6189 次查看
分类:Python 标签:Python
刚才看到一篇《Linear equations solver in 3 lines (Python recipe)》,用3行代码实现了解一元一次方程:
>>> solve("x - 2*x + 5*x - 46*(235-24) = x + 2")
3236.0
源码:
def solve(eq,var='x'):
eq1 = eq.replace("=","-(")+")"
c = eval(eq1,{var:1j})
return -c.real/c.imag
2011 5 4 03:04 PM 3016 次查看
分类:JavaScript 标签:jQuery, JavaScript
今天jQuery 1.6版发布了。
新增的API和性能改进我就不提了,只提一个重要的改动:区分DOM的attributes和properties。
这2个词的中文翻译都是属性,有时候后者会被译为特性,不过我还是直接用英文吧。前者表示从文档中获取的状态信息,后者则表示文档的动态状态信息。更通俗地来说,HTML文档里是怎么样的状态,attributes就是怎样的;而JavaScript可以通过DOM API来更改DOM的状态,表单控件(如文本框)的状态也可以被用户使用键盘、鼠标等修改,这些被动态更改后的状态就由properties表示。
2011 5 4 12:00 PM 1919 次查看
分类:Google App Engine 标签:Google App Engine
今天凌晨,GAE SDK 1.5.0 Prerelease版发布了。改动很多,但是由于没文档,不少东西我也不清楚,所以只翻译一些我感兴趣的:
- 任务队列的参数大小增大。(超过后只能使用数据库来保存参数,所以这个改动很有意义。)
- HTTP请求和响应大小增大为32MB。(做代理更方便了。)
- 创建新应用时,High Replication Datastore将作为缺省设置,以取代Master/Slave Datastore。
- 任务队列的执行速率增大到500/s。(貌似一般应用也有500QPS的限制。)
- db.py新增异步操作:get_async()、put_async()、delete_async()和allocate_ids_async(),调用函数返回值的get_result会阻塞直到拿到数据。
其他的就等正式版发布再翻译吧~
« 看看还有什么好玩意