dict的get方法引起的性能问题

标签:Python

Python的dict类型是个很赞的玩意,不过在获取值时却有点麻烦,因为[]操作符会在key不存在时抛出KeyError异常。

很容易想到3种方法来解决这个问题:先判断key是否存在,然后再获取;直接获取,但是捕捉异常;使用get方法的第二个参数。

用datetime和pytz来转换时区

标签:Python

Python标准库里提供了time、datetime和calendar这3个模块来进行时间和日期的处理,其中应用最广的是datetime,而转换时区也是靠它来做的。

时区这个玩意非常抽象,处理它时经常弄得我头晕,只好记录下来,免得以后再犯晕。

原来子目录的.htaccess不会自动继承根目录的规则

标签:无

博客迁移时突然想起得把原域名的裸域重定向到www子域名去,因为Google App Engine是不支持裸域的。于是在网上抄了一段代码放在网站根目录下:
RewriteEngine On
RewriteCond %{http_host} ^keakon.cn [NC]
RewriteRule ^(.*)$ http://www.keakon.cn/$1 [R=301,L]

然而规则写好后,访问却没有效果,问了主机商也无解,于是继续一个人捣鼓了…

解决Opera和Safari下难看的中文显示问题

标签:CSS

昨天闲得无聊测试了下各种字体的显示效果,今天看到一篇《Mac 和 Windows 的中文字体显示效果》,才想起这玩意还和操作系统有关。

其实玩Mac和iPhone时都觉得中文很好看的,同样的字体弄到Windows下就大打折扣了。Android的字体也是这样,所以问题肯定还是Windows惹的。
而且关键是我用的还是英文版的Windows,缺省的中文字体虽然是宋体,但有的浏览器很傻(例如Opera),会把简体中文当成日文和繁体中文,而用新细明体(PMingLiu)来显示。
更扯淡的是直接设置font-family为"新细明体"或PMingLiu都正常,显示效果和宋体一样。但是当浏览器匹配失败,而使用缺省的"新细明体"时,它的表现却类似于“新細明體”;于是这些文字看上去就像异体(或繁体),而简体字独有的汉字则显示成其他字体,结果导致文字参差不齐,看上去非常糟糕。
最扯淡的是Opera这种糟糕的浏览器还不遵循font-family的规则,匹配字体时,如果英文字体写在前面且在系统里找到该字体,就会无视后面的字体,于是显示中文时就会用缺省的新细明体了。

用空格还是制表符缩进有什么好争的?

标签:Python

今天看到V2EX有人在争Python源码应该用空格还是tab,不想进去插话,于是写在这里吧…

就我本人而言,我是习惯tab的,原因很简单,几乎所有的程序语言都推荐使用tab来缩进。
单独使用Python还没什么,但如果混合其他语言的话,就会觉得别扭了。
举个最简单的例子:在使用Python模板时,Python、HTML和JavaScript代码是混合在一起的,后者我都是用tab来缩进,我不可能单独在写其中的Python代码时敲几下空格。

StringIO就是个悲剧

标签:Python

由于发现list.append()方法很慢,于是去测试了一下,顺便也弄上了StringIO,结果发现StringIO的性能太差了,还不如字符串相加。


测试取的是一个200多行50多k的网页,每次加一行来测试速度,代码如下:

“Entity 'nbsp' not defined”的解决办法

标签:HTML

今天在测试博客的wap页面时,突然遇到了解析失败的错误提示:Entity 'nbsp' not defined。

于是我就纳闷了, 不是空格么,怎么这个玩意也没定义?在网上搜了下,发现了一篇《Webkit: Entity ‘nbsp’ not defined – Convert HTML entities to XML》,里面提到了 是HTML实体,但XHTML用的是XML规则,它只定义了&、>和<这3个命名实体。
因此正确地方法是使用Unicode character code,也就是 。其他的字符转换可以看该文列出的表格。

此外,HTML也是有 的,因此直接把 改成 不会有兼容性问题。

从滚轮的设置来看浏览器的用户体验

标签:无

一直一来都觉得Firefox的滚轮不给力,滚动实在太慢,读长文非常辛苦。正好今天在做关于滚动的JavaScript特效,顺便就测试了一下部分浏览器的滚动情况。

先说明下,我的鼠标是罗技无限迷你旋貂,操作系统中的滚轮设置是一次滚动3行。然后拿同一个网页做实验,测试每次滚动相差的像素:

« 看看还有什么好玩意