星期四, 十二月 28, 2006

用Emacs编辑中文文件

可以在打开文件时告诉emacs用什么编码,先输入"C-x Enter c"选择语言,然后用"C-x C-f"打开文件。例如,打开gb2312编码的文件,输入"C-x Enter c",再选"cn-gb-2312"或"chinese-iso-8bit-unix",接着用"C-x C-f"打开文件。

标签:

目前Emacs的样子

目前打造的Emacs的样子,快捷键摸了个大概,接下来就是拿Emacs继续完成我的blog了。

标签: ,

星期五, 十二月 22, 2006

真的没想到Emacs在mac表现这么良好,中文、输入法、打开速度都非常好,打算学习一下:),毕竟TextMate还是贵了点,也找到了Emacs对django的支持

http://code.djangoproject.com/wiki/Emacs

效果如下:

标签: , , ,

星期六, 十二月 16, 2006

Python的Miss Method

今天参加BJUG的活动,了解到了ruby的一个特性:Miss Method,就是在调用一个类不存在的方法时,可以调用自定义的一个函数。python其实也可以实现这个特性,只要复写__getattr__方法即可,示例代码如下:

In [9]: class A:
...: def __getattr__(self,name):
...: if name in self.__dict__:
...: return name
...: else:
...: return "XXXXX"
...:

else的部分,可以替换成自定义的代码即可,你可以为类添加上这个缺少的方法,或者告诉用户一个错误,或者调用一个默认方法,等等:)

标签: ,

星期三, 十二月 13, 2006

美味盖饭


忘记了, originally uploaded by 瞄瞄.

这个味道不错,推荐去吃,在大时代附近的韩国餐馆

星期二, 十二月 12, 2006

Gecko + Cairo:Firefox 未来的显示输出架构

Gecko + Cairo:Firefox 未来的显示输出架构

众所周知,Gecko是Firefox(Mozilla)的输出引擎,一般习惯于称之为内核。其性能直接决定了浏览器的效率。伴随着Firefox 1.1推出日期的临近,一项新的东西走入了人们的视野,Cairo. 本文简单介绍一下Gecko和 Cairo,更深入的内容,请参考网上专业教程。

1、什么是Cairo?

Cairo,过去叫做Xr或Xr/Xc,是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显示和打印输出。通过Glitz函数库, Cairo 能使用 OpenGL或X Render扩展的硬件加速功能来绘制图像,这使得基于Cairo的应用能在现代化的3D显示硬件上获得益处。

Cairo提供一个稳定的用户层API,它可以提供现代化的图形处理管理能力,如绘制和填充,映射转换,合成(注意,是合成)与改变alpha半透明图像,高真文本显示等等。能够在不同的媒体上实现相同的输出。

其实更早关于Cairo人们关注的还是Gtk/Gnome的进展,我们可以在 Gnome中国 上看到对Cairo应用前景的展望,可以看到,Cairo应用可以实现的东西是激动人心的。

Cairo拥有多种不同的后端,能够支持多种输出设备。现在所支持的后端包括:

图像:以内存图像缓冲区(in-memory image buffers)为目标。该图像缓冲区可被保存成文件,或者其数据可以被不具有本地后端的图形系统调用。

gl: 通过 glitz库(http://www.freedesktop.org/Software…制图像。包括GLX 和 AGL (分别为Unix和苹果的标准)。

png: 这个后端使用图像后端来生成png图像文件。

ps: 生成一个PostScript文件,适合高质量打印输出。现在ps后端生成点阵内容,连接图像后端。

xlib: 使用X Window的xlib接口,以Windows 或 Pixmaps 为目标。Render扩展可用,但不必需。

xcb: 和xlib相似,但使用XCB(http://freedesktop.org/Software/xcb)接口。

还有其他一些后端正在开发中:

pdf

svg

quartz——MacOS的后端(http://cairographics.org/QuartzBackend)

win32——Windows GDI 后端(http://cairographics.org/win32)

2、Gecko使用Cairo有什么好处?

可能上面的Gnome展望会令你感到难忘,其实,Cairo在Mozilla上使用的前景同样值得期待。

比如,你的Firefox的CPU占用率是否经常达到100%?实际上很大原因就是因为目前Firefox的Gecko引擎生成页面的方式并不是那么有效率,它的高速度很大程度上依赖于CPU的开销。而通过Cairo可以实现的硬件加速,Gecko就可以把大部分的显示工作交给显卡(GPU)来完成。这样一来,Gecko在那些有3D显卡的机器上是非常高效的。(当然,它不会把你的小猫变成100M专线) :108:

不仅仅是这些,按照 roc 的说法,转移到Cairo上,将会“带给我们现代化的2D图形处理能力(如填充、描旁、去背、映射转换,alpha透明支持等)」。Cairo可以将它的输出传送到不同的后端,这使它很适合在屏幕上显示图像和打印。借助Glitz函数库,Cairo能使用 OpenGL的硬件加速功能来绘制图像,这使得 Mozilla能在现代化的3D显卡上获得益处。

为了实现上述目标,Mozilla需要去除软件中大量的图形代码,把它们重新构建于 Cairo之上。目前,这一工作正在有条不紊地进行着。在 roc的blog 里面有一篇文章,介绍了Mozilla的图形处理基础架构转换到Cairo的最新进度,其中所附的Mozilla截图便是以Cairo来生成网页以及本身的XUL使用者介面。(尚处于开发测试阶段)

3、cairo在 Gecko 上实现的路线图:

首先是cairo在 Gecko 1.8/Firefox 1.1中的实现:

canvas 和 SVG的实现将基于cairo

没有硬件加速;只用软件方式实现render-to-bitmap

非cairo的SVG实现方式(例如GDI+)仍会被支持

Windows上cairo的实现将随进度而定

非canvas,非SVG利用现有的平台API实现。

如图,Cairo的运用只是部分的。如Windows平台对于SVG的实现就被排除。

其次是cairo 在 Gecko 1.9 中的实现:

停止使用2D API, 使用cairo来实现所有内容。

解决foreignObject问题

实现HTML显示的硬件加速

更高的质量(比如,双线性图像扫描)

如图所示,Cairo在Gecko 1.9中将得到完全的实现。

现在Mozilla的路线图指向2.0,这是一个非常长远和有规划的项目。或许,伴随着Gecko 1.9或更高版本性能的不断提升,你会在不远的将来看到一个完全不一样的Mozilla. Mozilla基金会运作规范,工作高效。是开源软件组织中难得的典范。

标签: , , ,

星期六, 十二月 09, 2006

twill: a simple scripting language for Web browsing

twill,一个模拟浏览器行为的脚本,很有趣。

你可以先安装他
easy_install twill

示例代码:
go http://www.sina.com.cm/
show
showforms
showhistory

Python API
from twill.commands import *
go("http://www.python.org/")
showforms()

参考资料:
http://twill.idyll.org/
http://twill.idyll.org/python-api.html
http://agiletesting.blogspot.com/2005/09/web-app-testing-with-python-part-3.html

标签: ,

在Mac OS X下尝试ctypes

今天在mac下尝试了一下ctypes,感觉不错,又温习了一下N久没碰的C语言,唯一要注意的就是gcc的编译选项,在Mac下比较怪异。

hello.h
int add(int a, int b);

hello.c
#include "hello.h"
int add(int a,int b)
{
return a+b;
};

编译出hello.o
cc -c hello.c

编译成动态链接库hello.so
cc -bundle -flat_namespace -undefined suppress -o hello.so hello.o

python
from ctypes import *
lib=CDLL("hello.so")
lib.add(1,2)
=>3

参考资料:
http://wiki.woodpecker.org.cn/moin/FeihuTryPyrex
http://www.pgsqldb.org/pgsqldoc-cvs/xfunc-c.html

标签: , , ,

星期三, 十二月 06, 2006

[From Google Reader] Web2.0時代のJavaScriptで注意することを5つほげほげ

This item was sent to you by paradise.qingfeng@gmail.com from Google Reader.

Web2.0時代のJavaScriptで注意することを5つほげほげ

Keitaです。 Ajaxが流行していますが、まだ、僕個人では実装レベルまでライブラリの蓄積が追いついていません。
各種ライブラリがWebフレームワークレベルでそろったら(そろえたら)使...

Source: http://labs.unoh.net/2006/12/web20javascript5.html

If you no longer wish to receive message like this, please contact the sender.

Try Google Reader today: http://www.google.com/reader/