网页渐进式载入图片

Question

为什么有的网页打开图片是从上到下逐行打开,有的则是先显示低分辨率图片再逐渐加入细节?

Answer

感谢@吴亚桐 回答给我找到线索,感谢提问者的好问题,我为这个问题曾经困惑了多年。这种渐进式载入方法容易和其他渐进式载入混淆。

我这里小总结一下几种渐进式载入办法。

下面是答案:


浏览器下载图片的时候渐进式载入,这样下载完一张图可以看到它的样子, 只不过只是不清楚的图,这样可以减少你等待看它的时间。

实际上有两种方式可以实现这种渐进式效果,一种是图像隔行扫描(Interlace), 中文可以成为交错,另外一种叫做图像渐进式扫描(Progressive)。

  1. 隔行扫描可以在gif/png中实现 ...
more ...

使用nose做测试

不做单元测试的程序员不是好程序员。最近我在Pylons下面做开发, 使用 nose 做单元测试,颇有心得, 在这里分享一下。

1. Pylons中依赖包

先简单介绍一下Pylons, Pylons与其说是一个框架,不如说是一堆框架的组合, Pylons在其中做到一个胶水的作用。Pylons依赖的包如下。

Pylons的测试主要使用的其中的 Paste / nose / WebOb / WebTest。 遇到问题的时候,可以去翻一翻上面的文档。

2. Pylons中测试目录结构

目录结构如下

├─config
├─controllers
├─lib
├─model
├─public
├─templates ...
more ...

倾诉

很少转载别人的文字,这篇是老同学的一篇博文,很美的文字。

原文地址&nbsp_place_holder;http://blog.sina.com.cn/s/blog_49c54b980100vmq7.html


我想。

每个人都有这样一个成长的过程。我现在看别人经历的十七八岁,写的文字,想表达的内容,仿佛就是在回望几年前的自己。尽管经历不同,却几乎写着同样的文字,表达着几乎 同样的情感。这是一种很奇妙的,感同身受的感觉。

现在当我静下来,真正可以回望过往,看到自己曾经的确年少轻狂,为赋新词强说愁。不管是对待生活对待人生或者是对待感情的态度,或许都要经历那样一个过往,才能变得更 加成熟。先贤有说人生的3重境界,看山是山看水是水,到看山不是山看山不是水,最后又回归于看山是山看水是水。现在想来,这的确是对于人生一个最精妙的表达也是概括。 尽管在不同的时期我们对于山水的理解各有不同。

我惊讶于在回想十七八岁的时候的自己,竟需要用到五六年前这样的一个时间段来形容。我甚至觉得不可思议,仿佛这中间的时间不曾存在过,而我还是当时那时候一个什么都不 懂的小女儿家。尽管现在也未必懂得多少,但这时间却是真真实实存在了的,真的是,白驹过隙 ...

more ...

使用pptpclient连接vpn网络[译文]

最近在ddwrt配置vpn,参考了arch的pptpclient配置文档Microsoft VPN client setup with pptpclien t,同时顺便花了一点时间翻译成中文,正文如下(使用wiky.js转换pe diawiki到html,原文会有更多的wiki模板样式便于查看,有问题请参照原文)。

pptpclient是一个实现Microsoft PPTP协议的程序。因此它能够被用来接入另一个Microsoft VPN网络,比如学校和单位。

安装PPTPClient

pptpclient由安装包pptpclient提供,运行下列命令可以安装:

pacman -S pptpclient

配置

你需要从网络管理员获取以下信息来配置pptpclient:

  • VPN服务器的ip或者域名
  • VPN隧道名称
  • Windows域(不是所有网络都需要)
  • VPN用户名
  • VPN密码

编辑配置文件

用你称手的编辑器打开/etc ...

more ...

使用NX替代VNC

NX 是 NoMachine 公司推出的下一代远程桌面技术,可以说是用来替换 VNC 的一个较好方案。

VNC is remote control software which allows you to view and fully interact with one computer desktop (the "VNC server") using a simple program (the "VNC viewer") on another computer desktop anywhere on the Internet.

VNC 是一个允许你从一台电脑(VNC 查看器)查看并且操作另外一台电脑(VNC 服务器)小程序 ...

more ...

TypeError: sequence item 22: expected string or Unicode, long found

Mako 下面开发时候,遇到这个问题

TypeError: sequence item : expected string or Unicode, long found

Trace 的情况大概这样(我的错误信息无法再现,这是某位外国友人的错误信息)

File '/Users/amaslov/Projects/dou-pylons/doupy/doupy/controllers/ root.py', line 239 in staticpage

&nbsp_place_holder;return render('/pages/%s.html' % name)

File '/Users/amaslov/Projects/dou-pylons/py/lib/python2.5/site- packages/Pylons-0.9 ...

more ...

简单输入提示框实现

早期的输入框提示是这样的(via baidu

tieba

左边一个 label ,右边一个输入框。

比较现代的方式是(via Discuz!

discuz!

更漂亮的方式是(via 点点

diandian

登录提示信息是放在输入框里面,可以减少文字干扰,我也想在自己手头的小项目中实现这种效果。

我需要达到几个要求:

  1. 提示信息是可以暂存的,即用户的输入在清空之后,还能够显示原来的提示信息
  2. 只需为 text / textarea 添加一个 class 即可实现效果
  3. 不修改 DOM 节点,避免影响上下文选择器

为了实现效果,我需要将提示信息暂存到某个地方。有3个地方可供选择: js 全局变量、输入框自定义属性、上下文 DOM 节点。

js 全局变量比较难控制元素标识,并不是每个元素都可以精准的用 id 标记;输入框自定义属性会破坏语义;在上下文加入节点会破坏 DOM 树。

权衡之后,我选择了使用 输入框自定义属性实现 ...

more ...


go-pylons.py在Python2.7下错误解决

当使用 Python2.7 + go-pylons.py 创建 Pylons 运行环境的话,会报一下错误。

[alswl@arch-vm xingtong]$ python go-pylons.py myb_env
New python executable in myb_env/bin/python
Traceback (most recent call last):
  File "/home/alswl/work/xingtong/myb_env/lib/python2.7/site.py", line 67, in <module>
    import os
  File "/home/alswl ...
more ...

新浪微博应用Key

前两天 FaWave 的新浪微博接口出现了问题, 一直无法发送和接受信息,今天查看了一下设定里面的信息,官方给出这样的解释:

我们曾经很傻很天真地以为新浪微博开放平台是真的开放的。由于新浪将FaWave的应用Key屏蔽了,目前只能无奈地让用户选择使用其他应用的Key来继续让Fa Wave兼容新浪微博。望谅解。

&nbsp_place_holder;

看样子又需要自己申请一个新浪微博的App了,我去 新浪微博开放平台 注册了一个APP,叫做 滴滴滴的小喇叭

App Key:1991355110
App Secret:de253ff255f1190c8fd61977f5e5781b

需要的同学可以自取。

update:感谢@Halu的提醒,这种 Key 在没通过审核之前会被数量限定,所以建议大家自己申请。

more ...