用Python模拟计算猎魔人的百步穿杨效果

标签:Python, Diablo3

猎魔人有个很出名的被动技能叫做“百步穿杨”,它的效果是暴击率每秒增加 3%,暴击后 1 秒重置到初始暴击率。
不过我用它的时候很纳闷,它对暴击率的平均提升到底有多少呢?数学很糟糕的我决定还是用 Python 模拟计算一下吧。

试着在中英文之间插入空格

标签:无

在 V2EX 等地看了一些不加空格会死星人的言论,感觉在中英文之间插入空格还是有点好处的,例如看上去更美观,方便搜索引擎区别中英文等。
既然代码中不加空格真的会死人,我想我还是习惯这样书写吧……

解决用GoogleAppEngineLauncher部署应用时的InvalidCertificateException错误

标签:Google App Engine

我在Mac OS X下部署GAE应用时经常会遇到这种错误:
Traceback (most recent call last):
……
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/fancy_urllib/fancy_urllib/__init__.py", line 170, in connect
    'hostname mismatch')
fancy_urllib.InvalidCertificateException: Host appengine.google.com returned an invalid certificate (hostname mismatch): {'notAfter': 'Apr 11 00:14:07 2013 GMT', 'subjectAltName': (('DNS', '*.mail.google.com'), ('DNS', '*.docs.google.com'), ('DNS', '*.talkgadget.google.com'), ('DNS', '*.sites.google.com'), ('DNS', '*.plus.google.com'), ('DNS', '*.drive.google.com')), 'subject': ((('countryName', u'US'),), (('stateOrProvinceName', u'California'),), (('localityName', u'Mountain View'),), (('organizationName', u'Google Inc'),), (('commonName', u'*.mail.google.com'),))}
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl

GAE SDK 1.6.4版发布

标签:Google App Engine

今天,GAE SDK 1.6.4版发布了,更新如下:
  • Datastore statistics可以显示索引占用的空间了。
  • 发布了实验性的工具,可以迁移blobs到其他应用了。
  • 可以备份还原datastore到Google Cloud Storage。
  • NDB API 1.0发布,已正式可用。
  • 在Python 2.7下,可以在后端使用后台线程了(可在请求结束后继续运行)。
  • Blobstore API的serve_blob()方法可以把blob存储到Google Storage for Developers。
  • Capabilities API在本地开发时,可以用SetPackagedEnabled来禁用服务。
  • Datastore API提供了NonTransactional这个decorator来确保函数在事务外运行。当被修饰的函数运行时,当前存在的事务会暂停。

最后,GAE文档地址也更换了,不过文档内容还没和新版本同步更新。

用CSS transitions实现动画式下拉菜单

标签:CSS

在CSS3中主要有3种实现动画的方式:transform、transition和animation。其中,transform是改变形状,例如伸缩和翻转等(本站上方的那几个图标就用了这个属性来翻转);transition是实现渐变效果,将原本只能瞬间完成的变换,在一个指定的时间段里慢慢展现出来(那几个图标翻转的渐变过程就是用这个属性来设置的);而animation则是最为强大的动画功能,通过定义关键帧和时间,浏览器可以自动完成关键帧之间的演变(本站曾用过的koi皮肤中,那个不停翻滚的feed图标就是用这个属性来实现的)。

昨天在V2EX看到有人用CSS3特效做页面菜单,其实主要就是用transition这个属性。于是想着本站右上角那个“热门文章”的菜单是否也能弄成动画效果呢,便也尝试了一番,做出了目前这种效果。
不过拿它来讲解也蛮复杂的,于是还是从入门的开始,先做个不依赖JavaScript的没有动画效果的下拉菜单。

GAE SDK 1.6.3版发布

标签:Google App Engine

GAE SDK 1.6.3版又悄然发布了,仍然没什么亮点:
  • 支持流量分割,可以将指定IP或cookie的请求交由非默认版本来处理。主要的用途估计就是方便测试吧。
  • 付费用户可以设置日志的存储空间和时间。免费额度是1GB,默认存储90天。超过额度的日志,4周后会被删除。
  • 管理员控制台的Instances里可以关闭指定的实例。
  • 任务队列API可以对Pull Queue任务设置标签。
  • 可以用Google Apps的通配符域名映射来访问应用的各个版本。
  • 增加NDB API文档。看来db.py要被取缔了。

GAE SDK 1.6.2版发布

标签:Google App Engine

好久没发布新文章了,出来冒个泡,顺便祝大家新春快乐。也许有人已经知道了,我辞职后就一直在家玩游戏,所以没学什么新玩意来分享,也没空去维护那几个Chrome扩展了。实在是冬天太冷,坐在我家的沙发上也不好码代码,所以还是等春暖花开之时,再重操旧业吧。

废话就说到这了,赶紧介绍下今天刚发布的GAE SDK 1.6.2版
  • Datastore Admin(如果被墙的话,可以访问/_ah/datastore_admin/)增加了实验性的备份还原功能。(话说这个功能我刚在Doodle里实现⋯)
  • Channel API可以设置token的过期时间了,默认是2小时。不过Google也没忘了坑钱,现在channel的使用时间也要收费了。
  • 任务队列的请求提供X-Appengine-TaskETA头,用于测量任务的延迟时间。
  • Python 2.5下可用Django 1.3了。
  • 为Django应用增加了django_wsgi这个builtin。
其他大多是修复Python 2.7的bug,没什么吸引人的功能,以上~

« 看看还有什么好玩意