123
 123

2007-10-23 Tue

20:34 del.icio.us_preview (343 Bytes) » Photos from dbanotes

dbanotes posted a photo:

del.icio.us_preview

感觉还不如不升级呢

16:22 將 ZFS 的 Snapshots 丟到 Amazon S3 (870 Bytes) » Fenng's shared items in Google Reader

自己寫了一篇文章,教你把 ZFS Snapshots 丟到 上備份:Storage Utilities in Practice: ZFS Snapshot to Amazon S3

我本來期待是介紹 ,結果發現只是很簡單的備份丟檔案而已,那不如用十年前就有的 dump 指令備份 :p (在時間準確的情況下可以做 ,然後一樣丟上 )

12:56 Analysing Statspack (7) (365 Bytes) » Oracle Scratchpad
[Back to Part 6] Here’s an interesting extract from an Oracle 9i statspack report. I don’t have the snapshot interval, number of CPUs, or any idea about the average number of sessions active during the period, so all the comments I make about the sample are highly speculative. But, as a pure “thought experiment”, I want to give you [...]
10:55 GIMP 2.4 preview (9266 Bytes) » Red Hat Magazine

Fedora 8 test releases have a surprise for all users interested in graphics: a release candidate for the new GIMP 2.4, meaning the final version will get the stable GIMP 2.41. This is exciting news, as the previous major release, GIMP 2.2, is several years old, and a lot of new features were added in the meantime.

In this article, we’ll take a look at some of the most visible new features, but beyond them, there are tons of less visible things: speedups, a decrease in memory consumption, better importing and exporting, a better print plugin, better EXIF support, changed scripting language for plugins, zoomable preview for plugins, many bug fixes, and more.

If you’d like to see a more practical application of these tools, take a look at my article on improving portraits with GIMP.

Note: You can click on any image in this article to see a larger version.

Interface

The improved graphic interface is one of the first new things you’ll notice. There’s a new icon set (based on Tango), the menu is reorganized with a better structure (the cryptic Script-Fu and Python-Fu have disappeared, with the functions moved to a more logical place), and the dialogs now better follow the GNOME HIG.

Color management

Color management was introduced in this version. You can use ICC color profiles, load and adjust them, get your image on screen looking exactly as it was produced by your camera or scanner, and have the final results printed just as they look on screen. GIMP will even make use of the color profiles embedded in images.

Selector Tool

The Selector Tool has been improved. With both Rectangle and Ellipse selections, you can easily modify the size and position of your selection. With one click inside the selection, you can switch between edit and move modes. As usual, watch the status bar for additional modifiers to perform special tasks. For example, press Alt+Ctrl to move the content of the selection and Alt+Shitft to move a copy of the selection).

A nice touch is the possibility to round the corners of a rectangular selection, so you don’t have to use the old workaround of shrinking and growing it back.

Crop tool

The Crop Tool no longer shows an annoying dialog over your image. It works similar to the Selector Tool, allowing you to modify its size and position.

My favorite function is the option to show guides, which help you make a useful artistic crop (like using the rule of thirds). It’s also available in the above-mentioned Selector Tool. These two tools have a lot of options in common.

Healing tool

The new Healing Tool is awesome for photo touch-ups and surgery, like removing imperfections on someone’s skin. It works somewhat like the well-known Clone Tool, but it will average the values from the source and destination, and the cloning is softer and non-obvious.

Perspective clone tool

The new Perspective Clone Tool is a variation on the classic Clone Tool, but it lets you work on perspective images by defining and cloning a perspective plane from the original image. The cloned image will follow the correct perspective.

Red eye removal

For a long time, the GIMP developers resisted adding a red eye removal tool, explaining why such an automatic tool is far from perfect and pointing to tutorials about how to do it manually (and how to avoid the red eye effect in the first place), but now it has been added. For better results, don’t run the tool for the entire photo. Make a selection around the eyes, and then use the tool.

Foreground extraction

The new Foreground Extractor, based on the SIOX algorithm, is an easy way to cut the subject from an image and remove the background. Select the zone of interest with a lasso-like tool, then mark parts of the sure foreground with a brush. Press the Enter key, and your selection is done. You will still have to make small adjustments using the classic selection tools for a perfect result.

Lens distortion

Among the new filters introduced is Lens Distortion, which allows you to correct the barrel distortion or vignetting caused by bad lenses or filters on your camera. I am sure this filter has a lot of potential to be abused for weird effects.

Also note the zoomable preview in the image below. This feature is also available now in many plugins.

Text

The Text Tool has its share of enhancements. It is possible to preview the font in the edit area for immediate feedback, to put your text on a path, or to transform it in an editable path on which you can edit nodes, edit fill or stroke, and transform it to a selection.

Brushes

Brushes are also improved. You can change their scale (for both parametric and bitmap brushes) with a slider or keyboard shortcut, without opening the brush editor. You can add jitter for a more natural and realistic look in drawing and import Adobe Photoshop V2 brushes (.abr).

Alignment

With the Alignment Tool, it’s easy to align (top, bottom, middle, left, right, center) layers and other objects relative to the image, other layers, selections, or to precisely position them with coordinates.

Color Picker

The Color Picker can now take a color sample not only from a GIMP image window, but also from any element on your desktop: background, window of another open application, anything, so you don’t have to take a screenshot of the desktop or a window and import it into GIMP just to sample a color.

I hope you’re excited about the upcoming Fedora 8 and its included GIMP 2.4. I, for one, can’t look back at the old versions. If you like using graphics applications and like Fedora, join the Fedora Art Team and create graphics for your favorite distro in a collaborative way using free tools and an open community.

1At this time, GIMP has gone to a third release candidate. It is likely that this will be the version packaged with Fedora 8 and that the official release will come in an update.

08:37 名人做派 (2831 Bytes) » Fenng's shared items in Google Reader

今天开口要饭,原因是想起了一些往事。

记得我曾经读过一些名人传记,尤其是名人写书成风潮之后的“自传”。印象最深刻的就是很多故事都有一点雷同,某年某月某日,名人微服出访,地点是在某饭馆。无一例外地都被人认了出来,无一例外地对方最后都说“这顿饭我请!”。所以,我一直以来都觉得,是否成名人了,应该以是否有人请吃饭为硬标准。

后来上网,看到很多“大虾”的故事。也有类似的描述,说某某大虾到某某地去,请吃饭喝酒的人要轮一个多月。看到有些人的自述,说自己交游之广,如果有天下岗,每个朋友那里轮流吃一顿,能抗三年。所以,我一直以来都觉得,是否成网络著名ID了,应该以是否有人请吃罗圈饭为硬指标。

不过,我总结了一下。从这些故事里得出一个结论:在中国,人容易饿。

在请吃饭的故事里,我最喜欢1992年住院的时候,病友龙青标少校给我讲的一个。龙青标少校剃个大光头,脑袋凸凹不平,一脸络腮胡子,相貌狰狞。讲话喜欢爆粗口,性格火爆,是个不折不扣的丘八。如此豪杰之士,做了痔疮手术,天天撅着屁股在床上哼哼,让人发噱。当时病房里的士兵和士官有好几个都参加过越战,于是都在吹自己的英雄事迹。而龙少校一脸不以为然的样子,所以大家请他讲一讲他的经历。

当时,他是侦察兵,带了一小队人穿插到敌后搞侦查。而他的这一小队人,都是他从家乡亲自招的兵。在敌后潜伏数天,他们终于和敌人遭遇。当时他们一队人埋伏在山顶,山下有一队越南兵经过。他手下的一名士兵跳了起来,对他说:“大哥,咱们立功的机会到了!”老龙反手就把他的嘴捂住,放翻在地上。在那人耳边耳语道:“立你妈个头!想死啊?!”

老龙解释说:“他妈的深入敌境一个多星期的路程,一旦动起手来,非死即伤,怎么撤回国内?”他说,一旦士兵阵亡,大家要扛着裹尸袋往境内撤。三天以后,高温高湿,“人都化了”,只能用手一捧一捧把浆糊一样的肉倒掉,背着骨头回去。到战争结束,他和他的小队完成了所有任务,没有一个人阵亡,全部活着带回国内。等有年春节回去,他被全村人轮流请客,整天喝得东倒西歪。说到这里的时候,他面有得色。“一个村子的人啊”,他说。

我个人觉得,老龙的这些饭吃得值,要比饭袋名人强得多。

08:26 Partitioning a Non-Partitioned Oracle system (124 Bytes) » DBASupport
Learn how to bring back manageability and responsiveness using Database Partitioning on your current Non-Partitioned system.
08:12 Oracle11g新特性:Active Database Duplicate (15076 Bytes) » NinGoo@Net

Author:NinGoo posted on NinGoo.net

利用Rman的duplicate命令,可以很方便的将原库复制出一个新库,这在诸如data guard等应用中非常有用。但是在Oracle11g之前,执行duplicate要求首先对原库用rman进行备份,然后将备份复制到复制库,同时连接原库(做为target)和复制库(做为auxiliary),执行duplicate命令进行复制。在Oracle11g中推出的active database duplicate特性,则省略了进行rman备份的步骤,能够直接从原库复制出新库,对于一些大型的数据库来说,这个特性可以节省很多操作时间。本文将简单的演示一下操作过程(在同一个主机上执行duplicate):

原库:ora11g(归档模式)
新库:oradup
操作系统:windows

一、首先手工创建新的instance
包括windows服务,dump路径,初始化参数文件,password文件,监听配置等等,这些步骤就不赘述了。理论上,初始化参数最少只需要指定db_name一个参数就可以了。当然,简单起见,最好还是设置如下参数:

DB_NAME=ORADUP
CONTROL_FILES=(’F:\ORACLE\ORADATA\ORADUP\CONTROL01.CTL’,
‘F:\ORACLE\ORADATA\ORADUP\CONTROL02.CTL’)
DB_FILE_NAME_CONVERT=(’F:\ORACLE\ORADATA\ORA11G’,'F:\ORACLE\ORADATA\ORADUP’)
LOG_FILE_NAME_CONVERT=(’F:\ORACLE\ORADATA\ORA11G’,'F:\ORACLE\ORADATA\ORADUP’)
log_archive_dest_1=F:\ORACLE\ARCH\ORADUP
compatible=11.1.0

经过试验,必须加入compatible=11.1.0的参数,如果不加,默认是compatible=11.0.0,那么rman duplicate最后在创建控制文件的时候会报错:

RMAN-03002: Duplicate Db 命令 (在 10/23/2007 22:43:40 上) 失败
RMAN-06136: 来自辅助数据库的 ORACLE 错误: ORA-01503: CREATE CONTROLFILE 失败
ORA-01130: 数据库文件版本 11.1.0.0.0 与 ORACLE 版本 11.0.0.0.0 不兼容
ORA-01110: 数据文件 1: ‘F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF’

这个应该算是一个bug吧,11.0.0应该是beta版的版本号

加入log_archive_dest_1参数,则是因为最后需要复制原库的归档日志到备库,如果两个库都没有设置归档路径,那么都会放在默认的$ORACLE_HOME\rdbms目录下,就会发生冲突。当然,如果原库和新库在不同的主机上,则只需要db_name和compatible就足够了。

二、将oradup启动到nomount状态

C:\>set oracle_sid=oradup

C:\>sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 10月 23 21:43:18 2007

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup nomount
ORACLE 例程已经启动。

三、启动rman,同时连接原库和新库

C:\>rman target sys/pass@ora11g auxiliary sys/pass@oradup

恢复管理器: Release 11.1.0.6.0 - Production on 星期二 10月 23 23:01:04 2007

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到目标数据库: ORA11G (DBID=4032954551)
已连接到辅助数据库: ORADUP (未装载)

这里连接auxiliary库必须提供用户名和密码,采用os认证的话可以连接进去但是duplicate会出错,估计这个应该也是bug

RMAN-03002: Duplicate Db 命令 (在 10/23/2007 22:43:40 上) 失败
RMAN-06136: 来自辅助数据库的 ORACLE 错误: ORA-01503: CREATE CONTROLFILE 失败
ORA-01130: 数据库文件版本 11.1.0.0.0 与 ORACLE 版本 11.0.0.0.0 不兼容
ORA-01110: 数据文件 1: ‘F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF’

四、执行duplicate

RMAN> duplicate target database to oradup
2> from active database;

启动 Duplicate Db 于 23-10月-07
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=99 设备类型=DISK

内存脚本的内容:
{
   set newname for datafile  1 to
 "F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF";
   set newname for datafile  2 to
 "F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF";
   set newname for datafile  3 to
 "F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF";
   set newname for datafile  4 to
 "F:\ORACLE\ORADATA\ORADUP\USERS01.DBF";
   backup as copy reuse
   datafile  1 auxiliary format
 "F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF"   datafile
 2 auxiliary format
 "F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF"   datafile
 3 auxiliary format
 "F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF"   datafile
 4 auxiliary format
 "F:\ORACLE\ORADATA\ORADUP\USERS01.DBF"   ;
   sql 'alter system archive log current';
}
正在执行内存脚本

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 backup 于 23-10月-07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=138 设备类型=DISK
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00001 名称=F:\ORACLE\ORADATA\ORA11G\SYSTEM01.DBF
输出文件名=F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF 标记=TAG20071023T230115 RECID=0 STAMP=0
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00002 名称=F:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF
输出文件名=F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF 标记=TAG20071023T230115 RECID=0 STAMP=0
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:15
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00003 名称=F:\ORACLE\ORADATA\ORA11G\UNDOTBS01.DBF
输出文件名=F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF 标记=TAG20071023T230115 RECID=0 STAMP=0
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:15
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00004 名称=F:\ORACLE\ORADATA\ORA11G\USERS01.DBF
输出文件名=F:\ORACLE\ORADATA\ORADUP\USERS01.DBF 标记=TAG20071023T230115 RECID=0 STAMP=0
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 23-10月-07

sql 语句: alter system archive log current
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "ORADUP" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 ( 'F:\ORACLE\ORADATA\ORADUP\REDO01.LOG' ) SIZE 5 M  REUSE,
  GROUP  2 ( 'F:\ORACLE\ORADATA\ORADUP\REDO02.LOG' ) SIZE 5 M  REUSE,
  GROUP  3 ( 'F:\ORACLE\ORADATA\ORADUP\REDO03.LOG' ) SIZE 5 M  REUSE
 DATAFILE
  'F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK

内存脚本的内容:
{
   backup as copy reuse
   archivelog like  "F:\ORACLE\PRODUCT\11.1.0\DB_1\RDBMS\ARC00122_0636754423.001" auxiliary format
 "F:\ORACLE\ARCH\ORADUP\ARC00122_0636754423.001"   ;
   catalog clone archivelog  "F:\ORACLE\ARCH\ORADUP\ARC00122_0636754423.001";
   switch clone datafile all;
}
正在执行内存脚本

启动 backup 于 23-10月-07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始复制归档日志
输入归档日志线程=1 序列=122 RECID=6 STAMP=636764560
输出文件名=F:\ORACLE\ARCH\ORADUP\ARC00122_0636754423.001 RECID=0 STAMP=0
通道 ORA_DISK_1: 归档日志复制完成, 经过时间: 00:00:01
完成 backup 于 23-10月-07

已编目的归档日志
归档日志文件名=F:\ORACLE\ARCH\ORADUP\ARC00122_0636754423.001 RECID=1 STAMP=636764566

数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=1 STAMP=636764566 文件名=F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=636764567 文件名=F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=3 STAMP=636764567 文件名=F:\ORACLE\ORADATA\ORADUP\USERS01.DBF

内存脚本的内容:
{
   set until scn  208584;
   recover
   clone database
    delete archivelog
   ;
}
正在执行内存脚本

正在执行命令: SET until clause

启动 recover 于 23-10月-07
使用通道 ORA_AUX_DISK_1

正在开始介质的恢复

线程 1 序列 122 的归档日志已作为文件 F:\ORACLE\ARCH\ORADUP\ARC00122_0636754423.001 存在于磁盘上
归档日志文件名=F:\ORACLE\ARCH\ORADUP\ARC00122_0636754423.001 线程=1 序列=122
介质恢复完成, 用时: 00:00:00
完成 recover 于 23-10月-07

内存脚本的内容:
{
   shutdown clone immediate;
   startup clone nomount ;
}
正在执行内存脚本

数据库已卸装
Oracle 实例已关闭

已连接到辅助数据库 (未启动)
Oracle 实例已启动

系统全局区域总计     146472960 字节

Fixed Size                     1331740 字节
Variable Size                 92278244 字节
Database Buffers              50331648 字节
Redo Buffers                   2531328 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "ORADUP" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 ( 'F:\ORACLE\ORADATA\ORADUP\REDO01.LOG' ) SIZE 5 M  REUSE,
  GROUP  2 ( 'F:\ORACLE\ORADATA\ORADUP\REDO02.LOG' ) SIZE 5 M  REUSE,
  GROUP  3 ( 'F:\ORACLE\ORADATA\ORADUP\REDO03.LOG' ) SIZE 5 M  REUSE
 DATAFILE
  'F:\ORACLE\ORADATA\ORADUP\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK

内存脚本的内容:
{
   set newname for tempfile  1 to
 "F:\ORACLE\ORADATA\ORADUP\TEMP01.DBF";
   switch clone tempfile all;
   catalog clone datafilecopy  "F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF";
   catalog clone datafilecopy  "F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF";
   catalog clone datafilecopy  "F:\ORACLE\ORADATA\ORADUP\USERS01.DBF";
   switch clone datafile all;
}
正在执行内存脚本

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 F:\ORACLE\ORADATA\ORADUP\TEMP01.DBF

已将数据文件副本列入目录
数据文件副本文件名=F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF RECID=1 STAMP=636764585

已将数据文件副本列入目录
数据文件副本文件名=F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF RECID=2 STAMP=636764585

已将数据文件副本列入目录
数据文件副本文件名=F:\ORACLE\ORADATA\ORADUP\USERS01.DBF RECID=3 STAMP=636764585

数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=1 STAMP=636764585 文件名=F:\ORACLE\ORADATA\ORADUP\SYSAUX01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=636764585 文件名=F:\ORACLE\ORADATA\ORADUP\UNDOTBS01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=3 STAMP=636764585 文件名=F:\ORACLE\ORADATA\ORADUP\USERS01.DBF

内存脚本的内容:
{
   Alter clone database open resetlogs;
}
正在执行内存脚本

数据库已打开
完成 Duplicate Db 于 23-10月-07

五、检查新库状态

C:\>set oracle_sid=oradup

C:\>sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 10月 23 23:04:30 2007

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接。
SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
oradup           OPEN

这种方式确实比较快捷方便,但是我在测试过程中碰到了很多的问题,一方面可能因为我没有做很好的准备,只是一个即兴的测试,但这个新东西确实问题也不少,要到实用的阶段估计还需要打几个补丁了。


Related Articles

07:03 再说豆瓣9点的流量 (3552 Bytes) » Fenng's shared items in Google Reader

昨天问了关于豆瓣9点的流量问题,得到了很多网友的分析。我个人觉得其中比较合理的解释是误操作,如果豆瓣在文章标题后面放一个“展开全文”的标签,那么到我这里的流量应该有显著的下降。但是,就这么把问题草草打法掉,实在是很可惜。

我看到有网友回答说,看了RSS订阅的内容,却还要跑到源Blog上看一眼的原因是想看回复。于是我想,如果豆瓣有Blog的API接口,允许在豆瓣9点里直接回帖会如何呢?同时,在抓取RSS的时候,自动匹配评论的RSS内容---至少在Wordpress架构下的Blog是有这两个输出的。那么,豆瓣9点可能就成为了一个Blog交流的超级平台,也利于豆瓣粘合用户。

但是我又想到了另外一个问题:如果有天电子书可以折叠,可以随身携带,甚至可以翻页,人们是否就不需要纸质的书了?怕是不会。即使电子书的精确程度已经可以乱真,但是读者还是会想弄一本纸质书来。就像RSS的内容哪怕和源Blog完全一致,但是还是会有人愿意跑过去看一眼。人性是件很奇特的事情,有时候逻辑和理性在它面前无能威力。你可以用公式推导出一个人应该如何如何,但是和实际如何如何往往是两回事。认为人的行为都服从理性和逻辑,那不过是为了方便而做的假设而已。

回到豆瓣9点,它的出现应该是有两个目的。一是加强豆瓣用户之间的互动,Blog的更新速度要比影评书评快得多。评论文字是很外在的东西,说千道万,人还是对人本身有兴趣。另一个就是筛选信息。Blog爆发性的增长,造成了信息的过载。一个网民如果愿意,那么他完全可以用自己的阅读器订阅上万个RSS。豆瓣9点采取粗略分类和Digg的方法,试图过滤这样的巨量信息,为用户提供有用有趣的内容。

就目前的情况看,实施下来并不是很理想,我的流量就是证明。豆瓣9点的二套,每天被顶上来的来来去去也就20多个人。当然,他们的Blog可读性比较高。不过,这样并不利于发现其它的Blog。豆瓣9点采取的平衡方法是侧栏滚动,在里面现实最新被推荐的文章。可这种方法究竟能起到多少效果让人疑虑。对于这个问题,抓虾做得比较好。它把Digg分开来,有最热的,也有最新的,而且加了屏幕顶端的滚动条,滚动显示现在有什么人订阅了什么RSS。

细分的方法当然可以使得内容更为具体,不利之处是增加了用户体验的不便。一个页面内如果有太多的功能,那么用户就会觉得有压力,觉得网站太过复杂。不那么做,每个频道里的二、三十个Blog就成为麦霸,永远占据频道,让新鲜人无法发出声音。我起先觉得这可能是个技术问题,总能够通过技术手段予以解决。但是现在我不那么确信了,因为那么聪明的抓虾和豆瓣人都解决不好,说明它和技术的关系不是太大。

Web2.0的兴起,解决了信息的提供和组织问题,让每一个网民都可以投入其中。但是,过载信息和冗余信息的过滤问题,到现在我都没有看到一个比较完美的解决方案。意识到自己智力上的这种穷尽,不由得觉得十分灰心。

06:45 浪潮之巅第五章 — 奔腾的芯(英特尔—Intel)(一) (7172 Bytes) » Fenng's shared items in Google Reader
发表者:Google(谷歌)研究员 吴军

在美国西海岸旧金山到圣荷西市(San Jose)之间,围绕着旧金山海湾有几十公里长,几公里宽的峡谷,通常称为硅谷。(在图中绿线圈出来的部分)那里之所以叫硅谷并不是因为它生产硅,而是它有很多是使用硅的半导体公司,包括全世界最大的半导体公司英特尔公司。全世界一大半的计算机都是用它的中央处理器(CPU),它对我们日常生活的影响是很少有公司可以匹敌的。我们在上一章介绍了摩尔定理和安迪-盖茨定理,其中摩尔是英特尔公司的创始人,而安迪.格罗夫是第四个加入英特尔并把英特尔公司真正发展成世界上最大的半导体公司的 CEO。今天,英特尔已经有近十万人,年产值达三百六十亿美元,市值高达一千四百亿美元。三十多年来,英特尔公司成功的关键首先是搭上了个人电脑革命的浪潮,尤其是有微软这个强势的伙伴;第二,它三十年来严格按照它的创始人预言的惊人的高速度在为全世界 PC 机用户提高着处理器的性能,用它自己的话讲,它给了每台微机一个奔腾的芯。
   &nbsp


1. 时势造英雄

英特尔公司由戈登•摩尔(Gordon E. Moore)和罗伯特.诺伊斯(Robert Noyce)于 1968 年创立于硅谷。此前,摩尔和诺伊斯在 1956 年还和另外六个人一起创办了仙童(Fairchild)半导体公司。同 IBM、DEC 和惠普等公司相比,英特尔在很长时间内只能算是一个婴儿。说它是婴儿有两方面含义,第一,它是个人数少、生意小的小公司,第二,在八十年代以前,几乎所有的计算机公司如 IBM、DEC 都是自己设计中央处理器,因此这些计算机公司代表了处理器设计和制造的最高水平,而英特尔生产的是性能低的微处理器,是用来补充大计算机公司看不上的低端市场。单纯从性能上讲,英特尔八十年代的处理器还比不上 IBM 七十年代的,但是,它的处理器大家用得起,不是阳春白雪。即使在七十年代末,英特尔公司生产出了著名的十六位 8086 处理器,大家仍然将它看成小弟弟。在很长时间里,英特尔的产品被认为是低性能、低价格。虽然它的性价比很高,但并不是尖端产品。

虽然 8086 是我们今天所有 IBM PC 处理器的祖宗,但是,当时连英特尔自己也没有预测到它的重用性。当时英特尔公司对 8086 并没有一个明确的市场定位,只是想尽可能多地促销。IBM 只不过是英特尔当时众多大大小小的客户之一。1981 年,IBM 为了短平快地搞出 PC,也懒得自己设计处理器,拿来英特尔的 8086 就直接用上了。这一下子,英特尔一举成名。1982 年,英特尔搞出了和 8086 完全兼容的第二代 PC 处理器 80286,用在了 IBM PC/AT 上。由于 IBM 无法阻止别人造兼容机,随着 1985 年康柏(Compaq)造出了世界上第一台 IBM PC 的兼容机,兼容机厂商就像雨后春笋般在全世界冒了出来。这些兼容机硬件不径相同,但是为了和 IBM PC 兼容,处理器都得是英特尔公司的。下图是整个个人电脑工业的生态链。
   &nbsp


可以看出在这个生态链中,只有作为操作系统开发商的微软和作为处理器制造商的英特尔处于一个不可替代的地位。因此,英特尔的崛起就成为历史的必然。这正是时势造英雄。

当然,虽然信息革命的浪潮将英特尔推上了前沿,英特尔还必须有能力来领导计算机处理器的技术革命。英特尔的 CEO 安迪•格罗夫在机会和挑战面前,最终证明了英特尔是王者。英特尔起步的八十年代恰恰是日本的十年,当时日本股市的总市值占了全世界的一半,日本东京附近的房地产总值相当于半个美国的房市总值。世界上最大的三个半导体公司都在日本,PC 里面日本芯片一度占到数量的 60%(注意:不是价钱的 60%)。以至于日本有些政治家盲目自大,认为日本到了全面挑战美国的时候,全世界都在怀疑美国在半导体技术上是否会落后于日本。但是冷静地分析一下全世界半导体市场就会发现,日本的半导体工业集中在技术含量低的芯片上,如存储器等芯片(即内存),而全世界高端的芯片工业,如计算机处理器和通信的数字信号处理器全部在美国。八十年代,英特尔果断地停掉了它的内存业务,将这个市场完全让给了日本人,从此专心做处理器。当时日本半导体公司在全市界挣了很多钱,日本一片欢呼,认为它们打败了美国人。其实,这不过是英特尔等美国公司弃子求势的一招棋。1985 年,英特尔公司继摩托罗拉后,第二个研制出 32 位的微处理器 80386,开始扩大它在整个半导体工业的市场份额。这个芯片的研制费用超过三亿美元,虽然远远低于现在英特尔新的处理器芯片的研制成本,但在当时确实是一场豪赌,这笔研制费超过中国当时在一个五年计划中对半导体科研全部投入的好几倍。英特尔靠 80386 完成了对 IBM PC 兼容机机市场一统江湖的伟业。

接下来到了 1989 年,英特尔推出了从 80386 到奔腾处理器的过渡产品 80486,它其实是 80386 加一个浮点处理器 80387 以及缓存(Cache)。靠 80486 的销售,英特尔超过所有的日本半导体公司,坐上了半导体行业的头把交椅。顺便说句题外话,今天日本的股市不到 1990 年 40%的水平,可是美国却涨了五倍。1993 年,英特尔公司推出奔腾处理器。从奔腾起,英特尔公司不再以数字命名它的产品了,但是在工业界和学术界,大家仍然习惯性地把英特尔的处理器称为 x86 系列。

奔腾的诞生,使英特尔甩掉了只会做低性能处理器的帽子。由于奔腾处理器的速度已经达到工作站处理器的水平,高端的微机从那时起,开始取代低性能的图形工作站。到今天,即使是最早生产工作站的太阳公司和世界上最大的计算机公司 IBM 以及以前从不使用英特尔处理器的苹果公司,都开始在自己的计算机中使用英特尔的或者和英特尔兼容的处理器了。现在,英特尔已经垄断了计算机处理器市场。
06:20 Oracle sends a "Dear BEA" letter; Puts deadline on offer (902 Bytes) » Fenng's shared items in Google Reader
Oracle said Tuesday that it sent a letter to BEA's board of directors, urging them to accept the company's $17 a share in cash offer or watch it expire by Oct. 28. BEA has rejected Oracle's proposal, which was outlined Oct. 9 (all Oracle-BEA content). Oracle is seeking that BEA put the acquisition proposal up for a shareholder vote. Here's the letter outlined by Oracle. October 23, 2007 Board of Directors BEA Systems, Inc. 2315 North First Street San Jose, CA 95131 Dear Members of the Board of Directors: Last night we were told by Bill Klein, Vice President-Business Planning and Development (speaking on behalf of the board), that BEA's board again rejected our proposed price of $17 per share...
05:30 oracle11g for windows版本发布 (2621 Bytes) » NinGoo@Net

Author:NinGoo posted on NinGoo.net

在oracle11g for linux 64位版本撤了又发之后,windows版本总算也出来了,这样在家里的机器上做试验的时候终于不用再开虚拟机了。

点击进入下载页面

安装完后居然发现还带了OWB的客户端,看来Oracle还是舍不得自己开发的这个ETL工具,只是不知道准备将收购的ODI置于何种地位了。

DBCA建库的过程基本上和10g一样的简单,只是配合11g的一些新特性增加和修改了几个用户设置的地方:

配置内存管理
ora11g_memory_setting

配置安全设置
ora11g_security_setting

配置自动维护任务
ora11g_autotask_setting

注:由于排版,图片被缩小了,请点击查看原图。


Related Articles

05:17 Feature: Pragmatic reporting for your web apps (11073 Bytes) » Fenng's shared items in Google Reader

Reporting is perhaps one of the biggest business deliverables for enterprise IT. Being able to say how many widgets were sold in month seven in year XX, sub-divided by customer ABC grouping, is one of the easiest ways to make management happy. But when building a web app, reporting is the last thing on many feature lists. Clear reporting is vitally important for the long term success of your web app and managing your growth. However, if you're still in the beta stage, we'll explore some ways of building simple reporting fast.

Why reporting? Because it helps you know the numbers. You need to be able to take data from web analytics, your own system stats (how many sign-ups per month, what's this month's revenue?, etc.) and be able to render that visually in some sensible way for you to be able to understand it and make the correct business decisions based upon it.

Big business style

If you're a large multi-national with large IT budgets, you're going to looking for a reporting system that can query multiple data warehouses with hundreds of users and multiple output formats. You'll also want it as near real time as possible. Packages like Crystal Reports and Jasper reports provide large scale interfaces to data sources and provide nice tools to create easy to read reports. But being as we're bootstraping upstarts, we need a solution that can pull together the data we need into one place and export it how we want.

Super simple (nearly) real time reporting

I'm not going to go into depth about database replication, load balancing your queries, redundancy or the technological challenges you face in getting your web app's data out. I am going to assume that you have a database of some sort, a web analytics package and clear objectives for what you want to measure. The most important of those is the objectives. What is it that illustrates growth and successes of your web app? This question in it's self could fill thousands of articles, but for the sake of getting to some useful examples we'll look at the following:

  1. Number of unique visits to your site: last 24 hours, last month, ever
  2. Number of new subscribers to your rss feed: last 24 hours, last month, ever
  3. Number of sign ups: last 24 hours, last month, ever
  4. Number of adds of your f8/widget: last 24 hours, last month, ever
  5. How much downtime: last 24 hours, last month, ever
  6. How much revenue have you generated: last 24 hours, last month, year to date

If we look at the list above as our starting six key performance indicators, lets look at some ways of getting the information into a format we can use. For the web analytics based targets (1,2) we can within most analytical packages, create custom reports and get them emailed to us in a variety of formats. We're going to use XML and reformat it for our needs quickly in PHP5. Having setup our goals and metrics in Google analytics, for example, we can then set them to be emailed every morning. We then have the attachment written to a log folder. Whenever we refresh our reporting dashboard we check for the latest file in the folder and process it, then store the processed data as a small HTML fragment which we include into our dashboard. This limits the amount of processing we have to do to a minimum and keeps our dashboard quick to refresh for the more real-time metrics.

For number 3 (number of sign ups) we'll make a query of our users table, requesting the number of users created in the last 24 hours, last month, ever. As you start to get bigger, these queries will start to become very long, taking valuable time away from your production database. You can attack this problem either by using aggregates or by moving all your data to a non-production environment purely for reporting. There is a danger in this in terms of replication lag and out of date data, but facing tables locks and the problems they cause traditional LAMP based web applications, it perhaps is a risk worth managing.

For number 4 (widget adds) we can do a variety of things. If we're looking at new Facebook subscribers then we can use the CSV download from Adonomics (formerly Appaholic). For example, the Gaping Void app, is accessibile via the url: http://adonomics.com/csv.php?mode=daily&display=4703559265 We can thus make a CURL or wget call to get this data every morning:

   wget http://adonomics.com/csv.php?mode=daily&display=4703559265
 

If we're looking at a widget, say embedded into MySpace or a blog, then we could set-up a download goal in an analytics package and measure it just like we did the unique visitors or you could get a feed from a log analyzer crunching the server logs for requests for a key component of your widget.

For number 5 (downtime), we need to define what downtime is in regards to your web app. Is it not only when the server is down but also when the database is locked or when traffic causes it to go slow? Or when disk space runs out or the load is massive? However, we don't need that granularity. For our purposes we just care if it's been usable and if not how long it wasn't usable for.

The best way of doing the more in-depth testing is to monitor the system externally via a package such as Mon, Ganglia and Nagios, all of which are beyond the scope of this article. We shall assume that you care when your service or application can not be reached. Thus we need to use Synthetic monitoring, a form of monitoring that checks a particular web app action every minute or so.

For example, you could set-up a check-out every minute to check that your basket works. Or perform a site search for a particular phrase and check the response contains a link to a certain page. If we a large corporation, we'd go and buy something like Sitescope from HP However yet again we're bootstrapping a we need a super simple solution. We can again use CURL to simulate an action, check the response for what we expect and then log the data for further analysis. If you were looking to run this in production you'd have to look at using a server in a different location to do the polling, perhaps just a cheap VPS with a cron job that runs every minute. It's left as an exercise to the reader to think of what actions are triggered by a downtime event. (SMS Alert? email? Jabber?)

$test1 =  curl_init("http://www.ourapp.com/action1?search=bob");
	try {
	    $buffer = curl_exec($test1);
		curl_close($test1);
		if (strpos($buffer, "Bob Jones") === false) {
			throwAlert("App Down, Server Up");
		} else {
			// Let's log a good search - so we can track the timeline of when things go bad.
			// We could also log how long the action took to complete - an interesting
			// metric to compare against system resources over time.
			logGoodSearch(now());
		}
	catch (Exception $e) {
		   // Having caught the error do something useful with it, including both logging and alerting
		}

For number six we need to do a query in your database. If you work with a Payment Services Provider, such as Metacharge or SECPay you'll probably interface via an API or payment page where you post in the amount and other details about a transaction. You should log the transactions in a database somewhere, taking note of the time, amount and other related metadata. You can't however store any of the card details unless you are PCI-DSS compliant as enforced by your merchant account provider. If we assume you use a table called transactionsSuccessful we can query it thus:

	SELECT SUM(value) FROM transactionsSuccessful;
	# Total revenue ever from online transactions
	
	SELECT SUM(value) FROM transactionsSuccessful WHERE time > NOW() - 86400;
	# Total revenue in the last 24 hours
	
	SELECT SUM(value) FROM transactionsSuccessful WHERE time > NOW() - 2419200;
	# Total revenue in the last month

We can do that query in real-time (dependent on database size and whether you're sharding, etc.) which means we can add that to your web app reporting screen.

Displaying your data

When displaying statistical data, there is a belief that more “data porn” is better. While that may give you a false sense of knowing the real picture, what we really need to be able to understand is what actions need to taken based upon the data. Is our disk space creeping up slowly or suddenly filling up? Do we need more disks? Are people who come from blogs to our site more likely to sign-up versus general traffic? If they are, what are you going to do about it? The brilliant O'reilly book, Information Dashboard Design goes through the many pitfalls of designing dashboards for management information systems. Visual metaphors such as speed dials don't help explain or enrich your data. They just decrease the signal to noise ratio. Edward Tuft's work on design is worth studying in this field, if only for his examples of how to display information with the lowest amount of visual noise.

Conclusions

In this brief article we've looked at some examples of how to produce reporting, how to provide it in a useful form and how to look at the data over time. This is a huge field - one in its infancy. However, I hope that I have at least got you thinking about how you produce internal metrics and how you can use that business data to make better business decisions to help build and grow your web app.

04:31 Oracle 11.1.0.6 for linux X86 64的SILENT建库 (656 Bytes) » yangtingkun
Oracle11g的64位Linux版终于推出了,下载了Oracle Enterprise Linux 5 for X86 64,测试一下在上面安装64位的Oracle11.1.0.6。上面一篇介绍了如何在SILENT方式下安装11.1.0.6:http://yangtingkun.itpub.net/post/468/407375这篇继续介绍SILENT模式下的数据库建立过程。通过SILENT模式安装数据库之后,下面继续使用SILENT模式进行数据库的建立,仍然是拷贝安装目录下的/database/reponse/dbca.rsp到安装目录,并进行编译,根据数据库建立方式的不同编辑不同的数据库库选项。比如在本次安装过程中设置了下列参数:RESPONSEFILE_VERSION = "...
04:31 Oracle 11.1.0.6 for linux X86 64的SILENT安装 (565 Bytes) » yangtingkun
Oracle11g的64位Linux版终于推出了,下载了Oracle Enterprise Linux 5 for X86 64,测试一下在上面安装64位的Oracle11.1.0.6。从来没有试过SLIENT模式下安装数据库,就拿这个版本练手了。首先是检查系统硬件情况:[root@enterprice64 ~]# grep MemTotal /proc/meminfoMemTotal: 8178836 kB[root@enterprice64 ~]# grep SwapTotal /proc/meminfoSwapTotal: 8385888 kB[root@enterprice64 ~]# free total used free shared buffers cachedMem: 8178836 5297744 2881092 0 122512 4773424-/+ buffers/cache: 401808 7777028Swap: 8385888 0 8...
02:44 Compare index structure difference between tables (3009 Bytes) » DBA Tools

    I will introduce you how to compare index structure between tables with the compare any column utility (Overview / Download). I fixed the table structure difference found in previous case, and create the following indexes for demo.

CREATE INDEX IDX_SALES_CN1 ON SALES_CN (COL1);
CREATE INDEX IDX_SALES_US2 ON SALES_US (COL3);
CREATE INDEX IDX_SALES_OTHER1 ON SALES_OTHER (COL1);

    Now we can run this utility with the following command with "-i" option.

companycol.pl -f all_demo.cfg -i

    Then check the screen output or check the log file generated (with "-l" option).

Comparing structure of tables on different hosts ...
Tables
       sales_cn         sales_us        sales_other
     [MISSING ] Index(COL3 ASC) :
               sales_cn!dbchina         sales_other!dbother
     [MISSING ] Index(COL1 ASC) :
               sales_us!dbus

    The indexes are not compared by name, actually columns and column orders are taken into account.

Related Posts

Leave New Comment(Current: 0)

Link: http://www.dbatools.net/mytools/compare_column_and_index.html

01:46 The most famous junk collector in Xi'an (32422 Bytes) » Fenng's shared items in Google Reader
JDM071016liugaoxing.jpg
Liu Gaoxing in his room in Xi'an.

Two years after saying that he was finished with writing novels, Jia Pingwa has followed up Qin Qiang with a new book. Jia is famous for his novels of Shaanxi life, particularly the 1993 bestseller Abandoned Capital, whose racy content made it the first example in the PRC of a book banned after publication. He drew heavily on his own experiences for Qin Qiang, and confessed afterwards that the process had taken so much out of him that he might not write again.

Happily for Jia's fans, Gaoxing (高兴), a 250,000-character novel* about the lives of junk collectors in Xi'an, was published last month. Where Qin Qiang explored village life in Jia's native Shaanxi, Gaoxing follows the adventures of two villagers who go to the big city to seek their fortunes.

The advance word from Jia about the new book was that it was an easier read than Qin Qiang, whose use of Shaanxi dialect combined with a mad narrator made for tough going. Indeed, Gaoxing, which takes its title from the name of protagonist and narrator Liu Gaoxing, is quite a readable novel. Liu and his friend Wufu arrive in Xi'an, where they find jobs on the lowest rung of society: they collect household junk that they then strip and sell off as scrap. Liu, whose given name is Hawa, decides that starting a new life in the city requires a more fortuitous name, so he chooses Gaoxing ("happy").

Liu's sharp-tongued neighbor, the hair salon girl he romances, a rowdy beggar, a policeman, and a local businessmen round out the fairly small cast of characters. Both Liu's narration and his interaction with the people he encounters are colored by his desire to appear as something more than just a junk collector. Jia Pingwa finds a bittersweet humor in these encounters and in Liu's frustrated aspirations. The largely episodic plot is given a sense of direction by the author's decision to open the novel with the story's final scene, in which Liu Gaoxing gets into trouble with the police as he attempts to board a train carrying the body of his deceased friend wrapped in a blanket (if that sounds familiar, see the excerpt from Jia's afterword translated below).

In a lengthy afterword, Jia details the creative process that led him through five separate drafts before the book reached final form. The time he spent with junk collectors and other migrant workers in Xi'an informed his portrayal of Xi'an's underclass, but he writes that he drew much of his inspiration from a childhood friend. It turns out that the Liu Gaoxing of the novel is based on a real-life Liu Gaoxing (formerly Liu Shuzhen) who grew up with Jia and who now delivers coal in Xi'an.

In the mainstream media, the story of Liu Gaoxing and his relationship with Jia Pingwa has overshadowed the novel itself. Here's a profile of Liu that ran in Oriental Outlook magazine a few weeks ago:

The Real Life of Liu Gaoxing

by Sun Chunlong / OO

Wiping his hands, Liu Gaoxing takes a blackened canvas bag off its hook on the wall. He roots around in it for a while, and then pulls out a plastic bag, which he opens, and extracts a stack of business cards.

"This is my business card. Let me give you one." Liu gingerly selects a card from the middle of the stack and hands it to the reporter. As the reporter stands amazed that a the driver of a three-wheeler who sells coal and collects junk, Liu says in all seriousness, "I had fifty printed up, and now I only have eight left. I don't give them to just anyone."

The printing of the business card looks like the sticker-ads that litter the streets. It reads "Coal Shop #39," and has his name, Liu Gaoxing, printed in the middle, with "proprietor" stuck after it. At the bottom is a mobile number ending in the digit "7".

"The mobile's out of money, so it's turned off," Liu says with a smile. "It's the off-season right now. When winter comes and more people want coal, I'll make another deposit."

Another unique aspect of the business card is its blurry photo. In the photo, Liu is talking animatedly with a middle-aged man who listens attentively while smoking a cigarette. Upon closer inspection, the middle-aged man is the author Jia Pingwa.

At the beginning of September, Jia Pingwa's new novel Gaoxing was released to great fanfare in the journal Dangdai. The Writers Publishing House subsequently issued a standalone version with a first printing of 300,000 copies. The eagerly-anticipated novel, which is based on Liu Gaoxing's experiences collecting junk in Xi'an, made Liu into a "celebrity."

Shoveling manure with Jia Pingwa

"Hurry up and ask me what you need to; I've got to get coal to the kindergarten over there in a little bit," Liu Gaoxing says in a booming voice in an out-of-the-way coal-yard on the east side of South Taibai Road in Xi'an. "I just got off the phone with Ping. I told him you were coming to interview me. He said that I should just tell the truth."

"Ping was Jia Pingwa's nickname. Everyone in our village still calls him that," Liu adds.

Liu's voice is loud; practically everyone in the coal shop, which processes briquettes, can hear him, and they file over to listen to him talk about his relationship with Jia Pingwa. This gets Liu excited, and he opens up a carton of Monkey King cigarettes and passes them around.

At 57, Liu is a year older than Jia. The two grew up together in the same courtyard, and they went to school together. The adults of the two families got along well together, and were even related to a degree. In middle school, Jia was the study monitor in the class, and he and Liu were responsible for writing blackboard bulletins.

"I was enrolled in the youth league at the time. Jia Pingwa hadn't joined," says Liu proudly.

Speaking of his childhood, Liu Gaoxing sighs. "I often shoveled manure together with Ping when we were young." Afraid that the reporter doesn't understand, he elaborates: "That is, with a metal shovel in one hand and a basket in the other, we'd find where draught animals had left droppings on the road and pick them up. We didn't have chemical fertilizer at the time, so we relied on this to fertilize the land. We could fill up a basket in an afternoon. Manure would be stuck all up and down our arms."

In Liu's eyes, Jia Pingwa was an exceedingly clever child. "Once, Ping went out to chop firewood. He chopped firewood that belonged to a distant uncle of mine, who ended up confiscating his basket. When he asked what his name was, Ping answered with my name. My uncle hadn't seen me in several years, so he really believed that Ping was his nephew. He returned the basket to him and filled it up with firewood."

In 1971, Liu Gaoxing went off to the northeast with the army, while Jia Pingwa went to Xi'an for college. The lives of the two men began to diverge.

During his time as a soldier, he often exchanged letters with Jia. Liu frequently had Jia buy medicine for his father, who was sick at home, and he sent Jia photos of him in uniform. Jia sent him in return a photo of himself at the Yan'an Pagoda.

Five years passed in the blink of an eye, and Liu Gaoxing returned to Xi'an, where he rushed immediately from the train station to the place where Jia was staying. Jia had just graduated from Northwest University and had been assigned to work at the Shaanxi People's Publishing House.

"He took me to a place near the bell tower and bought me 9-fen-a-pack Yangqun cigarettes," says Liu.

After demobilization, Liu Gaoxing returned to his hometown, where he worked as a cook in the county guest house. This was an enviable position, for as a government job, it at the very least guaranteed him a full stomach. He could also become familiar with the local leaders, making things a bit easier for him. Liu says that when Jia Pingwa wanted to ship some wooden furniture from his old home to Xi'an, he helped him obtain a timber transport license.

After hosting the provincial party secretary, Liu aspired to become a famous chef, but his hopes were quickly dashed: because he had more than one child, he had to pack up his things and return home. At this time, Jia Pingwa had begun to gain a reputation with the publication of "Full Moon."

Written into fiction twice by Jia Pingwa

After he left the county guest house, Liu Gaoxing went into the coal mines, carried stone on Qinling Mountain, and even ran a small restaurant. But because the weight of his four children, his circumstances did not improve much. Liu's original name was actually Liu Shuzhen*, but because he could see no end to his days of toil, it occurred to him when he turned 40 that changing his name might change his luck. "Liu Gaoxing" was an offhand suggestion: "My generation was supposed to be named 'Gao' anyway, and this name is pretty lucky."

Though Jia Pingwa's fame was growing, Liu Gaoxing felt that Jia was still the buddy that the had in his youth. He never put on airs; whenever he returned home he would visit them, and he still used familiar terms of address. He'd recognize people's voices immediately on the phone. "Before, he would treat me to Yangqun cigarettes. Now he buys Zhonghua."

When they met, Liu would chat with Jia about the people and events of their hometown. Jia always listened attentively.

He never thought that these people and events from their hometown would make it into one of Jia's books. In Qin Qiang [titled after a local style of opera], which Jia published in 2004, Liu discovered the reflections of his family of four.

"My father is 'Wu Linshu,' and I am 'Shuzheng.' My wife is 'Shuzheng's wife,' and my sister is 'Shuzhen.' 'Yinsheng' is Ping. The things in the book are the things I usually talked about with Ping. Ping. He's a very purposeful person; he remembers stuff we'd usually forget. He wrote it in to the book. It's true and lifelike," says Liu.

In Qin Qiang, Shuzheng, the character based on Liu Gaoxing, is a slovenly individual, whose nose "is always dripping yellow snot," but Liu doesn't mind. "It's just writing." When a documentary was made about Qin Qiang, Liu was brought on as an advisor.

When Liu had opportunities to go to Xi'an, he'd always go to visit Jia Pingwa and his mother. He'd usually bring them a bag of walnuts or chestnuts from their hometown. Once, Jia's mother made shepherd's purse dumplings especially for him. Liu has a large appetite, and he wasn't full after finishing his large bowl. So Jia gave him his own and urged him to eat his fill. That night, the two men smoked and talked; when they got hungry they split buns to eat. "I'm a farmer without much education. But I know about human relationships. That kind of feeling comes straight from the heart."

In the afterword to Gaoxing, Jia Pingwa writes: "Liu Gaoxing came to find me not because he wanted anything from me. He knew of my circumstances and personality, and we were close in age. He had things to say, I needed to listen. So we became close."

But Liu Gaoxing says that he once asked for Jia's help in one major matter. In 1997, when Abandoned Capital had just been banned and it Jia was about to be sent south, Liu made a special trip to Xi'an. First, he wanted to express his sympathies for Jia, and second, he hoped that Jia would be able to give a phone call to one of the leaders in their hometown so that his daughter could find a job.

Liu was moved that Jia, though he was in a difficult spot himself, did not refuse him. He even said that it'd be better just to write a letter: telephoning was no good, because while a leader might agree over the phone, he'd forget as soon as he hung up. Liu took the letter back home and had someone give it to the leader's secretary. A month or so later, his daughter had the job. When she showed up for work, someone asked her, "What does your father do that gives him such good guanxi?" Liu's daughter could only laugh.

With his daughter's work situation resolved, Liu Gaoxing moved to Xi'an, where he first worked collecting junk before moving to a coal-yard to sell coal. One day two years ago, Jia Pingwa unexpectedly came to the coal-yard looking for him. They spent half a day talking in one of the cramped old rooms in the coal-yard, and then Jia invited him to eat fish with pickled cabbage. Then he took him to a teahouse where they chatted while drinking tea.

"I had a feeling then that he was working on a major work," says Liu. In September of this year, Liu learned that Jia's new book, Gaoxing, which was based on his life and which took his name as its title, had been published in the magazine Dangdai. He also heard the painful news that Jia's 81-year-old mother had died in her hometown in Danfeng County, Shaanxi Province.

Liu Gaoxing hurried back to Danfeng from Xi'an. After the old woman had been buried, he and Jia
once again talked about their hometown. When the topic of the recently-published book came up, Liu said to Jia, "You're really have it all under control. You've been writing for two or three years and you never let on." Jia just smiled.

City people eat well and dress warmly—why are they so miserable?

Although he already had a character based on him in Qin Qiang's Shuzheng, Liu is more excited about Gaoxing. "Many people in our village feel that he resembles Shuzheng too, but Gaoxing is different. I'm the only person from our village who came to Xi'an to collect junk."

"I'm just a common farmer. Before, less than 100 people knew about me, but now it's probably more than 1 million," Liu says.

Liu Gaoxing lives in a 10-square-meter room provided by the coal-yard. The room has two TVs, both of which he found when he was collecting junk. They cost 20 yuan apiece, but to Liu's disappointment they both are stuck on the same channel. Over three years, because more and more people came to collect junk, money became harder to make, so Liu began selling coal briquettes. He buys the briquettes from the coal-yard and takes them to the clients' homes. There's a margin of 2 fen on each briquette; on good days, he can make 30 or 40 yuan.

Liu sees his switch from collecting junk to selling coal as a turning point in his career: "Junk collectors are on the lowest level in this city; they live day-to-day. Selling coal is a real job. You have your own clients."

JDM071016family.jpg
Liu Gaoxing with his wife and son.

Although Liu no longer collects junk exclusively, if he comes across some business along those lines while he's out selling coal, he may bring some back, out of "professional habit." The area under his bed is chock full of junk he's collected, and even the stools and the stove are things that he collected. "City people are really awful. If something is a little broken, they just switch it for a new one." But he laughs: "Although, if you are too slow to exchange, then won't the junk collectors starve?"

There are no windows in the room, so Liu Gaoxing hung an empty wooden mirror-frame on the wall; from a distance, it looks like a closed window. "Everyone has to find some happiness for themselves," says Liu.

His three daughters are all married, and the majority of his family's land has been appropriated to build a highway. So Liu's wife and son have come to Xi'an. His son helps him sell coal: "We keep separate accounts." His wife started out as a nanny for one family, but before long, they let her go because they felt she was eating too much. She found a new family, and now tends to an 80-year-old woman.

Liu seems satisfied with his present life. "There's enough to eat and drink, and there's some spending money. The only thing left is to find a wife for my son."

Liu says that after noticing how Jia Pingwa likes to write and paint, he too bought a brush and some ink and began to practice calligraphy on old newspapers. One year he wrote out a couplet for his home: "Open your mouth to eat and drink but also to smile, close your eyes and in the darkness enjoy sweet slumber."

"When Jia Pingwa saw it he said I wrote it well," says Liu. Liu believes that he's such an optimist because when he was younger he had such a hard live. He feels content with his life today. "You city people live in big houses, eat well, and dress well. I can't understand why you are so miserable."

Talking about how he and Jia Pingwa grew up and went to school together, and how ultimately their paths diverged, Liu Gaoxing suddenly laughs: "The same bricks—his fate is to line a hearth, but mine is to line a toilet!"

Liu, who claims never to have been angry in his life, says that during the Cultural Revolution, he and four of his classmates were selected as representatives to go to Tian'anmen. The other four are now successful and famous; one's in the leadership of the General Staff Department of the PLA, one's a professor, one's the general manager of a business. He's the only one on the bottom rung of society. "The world's always like that, with such big differences. I don't care."

However, Liu also has times of depression. He came to the city from the countryside, and although he's lived there for more than a decade, he feels more and more distant from the city. He once took a load of coal to a hotel and never was able to get his money because he was too trusting. He didn't write out a receipt and now the hotel won't acknowledge its debt. "How can people not keep their word?"

Aside from Jia Pingwa, Liu Gaoxing has a few other old classmates in Xi'an, but he seldom has any contact with them. "In our village courtyards, doors are always open. It's easy to visit different houses. City people all have anti-theft doors, and people first look out at you through the peep-hole to see who you are before opening up. Now people even have locked gates on the stairwells. You have to call and make an appointment just to get inside.* What a hassle."

Even Jia Pingwa didn't expect that while he was writing a book based on Liu Gaoxing, Liu was writing out a 50,000 character story of their youth, called "Me and Ping." Full of errors, this journal-like account surprised Jia: "Liu Gaoxing, if you had stayed in Xi'an to go to college 30 years ago, you would absolutely have been a much better writer than I am. If I were to go collect junk in the city today, I wouldn't be able to match you, and I wouldn't have your humor and love of life."

In the afterword to Gaoxing, Jia writes that when he encountered writers' block, it was Liu's optimism that gave him inspiration. "This novel is about Liu Gaoxing. He's a not your typical junk collector. He's how he is today because, however ponderous life becomes, he finds a way to relax. The harder life is, the more he wants to enjoy it."

* * *
JDM071016gaoxings.jpg
Cover of Gaoxing

Here are some related excerpts from the afterword to Gaoxing:

One afternoon three years ago, I was reading Journey to the West at home. I was thinking about how Tang Seng and his three disciples were actually four facets of one individual when there came the loud clang of a knock on my door. In the age of the telephone, people make appointments before meeting in person. Who was this? I hadn't arranged to meet anyone at this time. So I took my time opening the door, wanting to let this uninvited guest know that I was put off by his conduct. Clang, clang, the knocking continued. And it increased in volume, until finally there was the crash of a kick against the door.

A bit angry, I flung the door open. Standing there was Liu Shuzhen.

He said: Hey, I thought you weren't home!

I said: So it's you. When did you come to town?

He said: I live in town now!

Never a serious word from him. I laughed, and then had him come in and sit down. I said: Shuzhen, you joker!

He said: Don't call me Shuzhen. I've changed my name to Gaoxing now. You have to call me Liu Gaoxing!

This is Liu Gaoxing. This was also the first time I saw Liu Gaoxing living in the city.

If you've read Qin Qiang, and if you still remember it, the character Shuzheng is the original of Liu Gaoxing. We grew up together. When I was young, I didn't really think much of him. His hair was a bit curly and his nostrils were always running with yellow snot, but I admired his father.

...

I continued to go to the lane where those junk collectors rented their lodgings. It became something unconscious; every time I went to the south side, I would detour to see them. And if I ran into a junk collector on the street, I would stop and exchange a few words with him, or watch him for a spell. After another year or so, most of the junk collectors I knew of or was acquainted with were still in Xi'an, still collecting junk, and their circumstances hadn't changed much. Graduation had arrived for the one who was supporting his kid through college, but having caught a serious case of asthma he could no longer collect junk and had returned home. One of them made some money and partnered with another person to open a supermarket. He also built a house for himself in his hometown. He became a model for practically all of the junk collectors, and his deeds were widely acclaimed. Naturally, some of them died in Xi'an. There were three deaths: one who was struck by a car, one who died of liver disease, and one who was murdered by his associate for his money.

When the news of the one who was murdered by his associate for his money made it into the papers, I went to the village where Bai Dianrui rented a room. Bai Dianrui wasn't there, but I ran into a young man who had been collecting junk for two years. I brought up the murdered man; he said that he had seen the guy. He couldn't imagine why the victim, who had accumulated 100,000 yuan over ten years of collecting junk, had not bought a house in Xi'an. I said: So if you had money the first thing you'd do would be to buy a house? He said: I'd definitely buy a house! If I couldn't afford a big one, I'd get a small one. If I couldn't buy a new one I'd buy an old one; if I couldn't buy one with a property registration, I'd buy one without! I said: You'd never go back home? He said: When I left, I stood before the grinding floor at the entrance to town and swore that I'd never go back!

Naturally, Liu Gaoxing was still in Xi'an, and his health seemed to be better than ever. He would return home for a fortnight to take care of his crops and then come back to Xi'an. Every time he arrived in Xi'an, he'd either give me a phone call or just hurry over and knock on my door. He would talk animatedly of this and that and laugh gaily.

I said: Why is it that you're always so happy?

He paused a moment, then said: My name is Liu Gaoxing. How could I not be happy?

Unable to find happiness yet always happy—what kind of person was this? Nevertheless, after hearing his words I suddenly knew how my thought processes had to change and how my novel should be revised. Originally I wanted to write a bok about junk collectors based on Liu Gaoxing's life, but after immersing myself in understanding the lives of so many junk collectors, I wrote myself into a corner. Liu Gaoxing's words were nothing much, but it was strange—as if a paper window-cover was torn in two or a length of smoking kindling suddenly burst into flame. This novel would be about Liu Gaoxing alone. You could call him an atypical junk collector, but he's also the epitome of junk collectors. He's how he is today because, however ponderous life becomes, he finds a way to relax. The harder life is, the more he wants to enjoy it.

I said: Liu Gaoxing, I know you now!

He said: You know me? What do you know about me?

I said: You are a lotus that has grown out of the muck!

Yes, that is Liu Gaoxing—living cleanly in an unclean place.

He said: Don't gussy me up. You know that brick kiln back home. When you come out of the kiln you're black as the bottom of a pan, and only your teeth are white.

He said it better than I, so I laughed, and he brayed his laughter, too. We ate lamb in flat-bread that night.

I began writing again. The name of the original draft was City Life; now it changed to Gaoxing. I originally followed the same style of writing as Qin Qiang, writing about a city and a group of people, but now I wrote just of Liu Gaoxing and his two or three associates. The structure was originally like that of Qin Qiang, caves stacked one on top of another on a hillside in northern Shaanxi, or an array of wild chrysanthemums laid out in a mountain valley. Now it was like a single tower or a single rose, the bricks stacked up in order and the petals unfolding layer upon layer.

...

During that period, Liu Gaoxing visited a few more times. He really is a strange person. Seeing that I often did calligraphy and painting, he went and bought a brush and ink and started practicing calligraphy on old newspapers, which he piled up sheet after sheet in his rented room. Even more surprising to me was that when he learned I was writing a book based on him, he wanted to write about me. So in various colors of ink on a pad of paper, he wrote 30,000 characters telling the story of our youth. I read those 30,000 characters—it was basically just a simple series of events, full of wrong characters. But the events of the past were vividly written. What could I say to him? Such a manuscript couldn't possibly get published, and in his circumstances, writing was just wasted time and effort. But could I stop him from writing? I said this: Liu Gaoxing, if you had stayed in Xi'an to go to college 30 years ago, you would absolutely have been a much better writer than I am. If I went off to the army and then returned home, and if I came to the city to collect junk today, I wouldn't be able to match you, and I wouldn't have your humor and love of life.

However, when I had written about three-quarters of the thing, I received some bad news that nearly made me go back and start again. Becoming excited while chatting with a friend, I read off the first three chapters for him. He suddenly said: You've started off with the story of a migrant worker carrying a corpse back home? I said: It's a great beginning. He said: Where did you get that material from? I said: I adapted it from a Phoenix TV report. He said: Have you seen the movie Getting Home (落叶归根)? I said: No. What about it? He said: Getting Home is the story of a man carrying a corpse. My mind started racing, and I asked what the movie was about. My friend explained in detail the plot of the movie, and I calmed down. The movie had probably seen the same report, but it was purely a retelling of the course of carrying a corpse, while my novel simply used it as a prologue. My friend said I'd better change it, but I did not. It was like that in my first draft in 2005, so why would I change it? It's his movie, but the novel is absolutely mine, as different as a mule and a horse.

Another twenty days or so passed. Rain was pouring down that afternoon. I was writing the conclusion to the novel when the telephone rang. A phone call right then was just an annoyance, so I didn't pick up. But before long it rang again. I picked up the receiver and said: Who's this?! The voice that came over the line was Liu Gaoxing's. He said: Why don't you answer your phone? I said: I'm working right now....He said: I knew you were busy so I didn't go and knock rudely on your door. But you don't even answer your phone when I call! What are you working on? Are you writing about me? When will you finish? I said: I'm almost done. I still need to make a few small changes. He said: You've had so much trouble writing that little bit. I've finished your biography! He brayed in laughter over the phone when he said that.

Actually, he was calling me from just outside my building.

So I put down my pen and opened the door, and Liu Gaoxing, dripping wet, came inside.

An excerpt of Liu Gaoxing's "biography" of Jia Pingwa, "Me and Ping", appears in this week's Oriental Outlook magazine (2007.10.25, #206) under the title "The Young Jia Pingwa" (少年贾平凹).


Note 2: Back-of-the-envelope arithmetic for the version that ran in Dangdai gives a length of around 250,000 characters. The standalone edition gives a figure of 350,000 characters on the copyright page, but this number is just characters-per-page multiplied by the total page-length; the actual text is the same as the magazine version. The book is padded with frequent full-page pull-quotes and a number of Jia's water-color drawings.
Note 2: 刘书祯 is the name that Jia Pingwa gives in his afterword. Oriental Outlook gives 刘书正. His original name in the book is 刘哈娃.
Note 3: In the excerpt of "Me and Ping" that appears in Oriental Outlook magazine, Liu explains how he encountered this sort of door during his visits to Jia Pingwa's apartment.

Links and Sources

This article is from Danwei.org

01:06 男人的安全感 (2212 Bytes) » Fenng's shared items in Google Reader

我在淘宝上一口气给我公司里的笔记本电脑买了两块电池:一块可以替换光驱的,一块大容量的。原来的电池寿命到了,只能支撑十几分钟。虽然已经通过公司的IT订了新的电池,尽管淘宝上买电池的钱要我自己出,但还是觉得划算的。不知道公司从何时起变成怨大头的,反正公司里面订一块普通电池也要将近九百,而我两块电池加起来也不过六百多,含运费。两块淘宝买的电池可以同时用,电充满的时候,把鼠标移到右下角的图标上,看着显示预计使用时间足足有六个多小时,我心里油然有了一种安全感。

我经常发现有些人(尤其是一些女士),她们身边的电子产品总是处于即将能量耗尽的边缘。她们的手机常常只剩最后一格电,边打电话边提醒对方“手机要没电了”;她们包里的卡片数码相机总是只够拍四五张照片,然后就很无奈的强行关机;她们的电脑总是亮着电量不足的警告,而且还堂而皇之的投射在墙上,直到几分钟后突然死亡 。她们难道都要等到电池彻底耗尽才充电的么?为什么她们不像我这样,总是一有空就把电脑插上充电器,一回到家就让手机充电,每次出门前总是保持相机的电池是满的。女人们总是说没有安全感,可对电池还剩多少电,她们倒毫不在乎。

如果我早上出门的时候手机里只剩下了两格电,我一定会心中非常不安。我一定要让我身上所有的电器都处于电力充足的状态,我才安心的上路。即便我的手机可以待机三天、四天,我仍然会每天都充电:万一晚上正巧地震,万一晚上来了急电一出门就是两三天不能回家,谁知道呢。

上中学的时候,我看过一本生存手册。手册上说,只要有机会就要把水壶灌满,只要有机会喝水就一定喝足水,因为谁知道今后的几天时间里你还有没有机会再遇到水源。我牢记在心。

00:15 AIX vs. Solaris (4) (922 Bytes) » Fenng's shared items in Google Reader
IBM's newest AIX products feature the Power6, Sun's the UltraSPARC T2. It probably makes sense, therefore, to base a data center hardware cost comparison as much as possible on these two technologies. Comparable scaling is a key issue, but there's enough consistency about the benchmark results both sides are putting up to let us use almost any one of them as a proxy for the real relative capabilities of the two current product lines. Look through, for example, the benchmark compilation provided by Sun's bmseer performance bloggers and you'll see that the T2 consistently beats the four core Power6 configurations by margins ranging from a few percent to over two thirds of IBM's scores.. We don't know exactly what...

2007-10-22 Mon

23:42 新版的 Delicious » Fenng's shared items in Google Reader
23:02 莫名烦躁 » OracleDBA Blog
20:58 道亨建议认购阿里巴巴(1688.HK)新股 » Fenng's shared items in Google Reader
18:50 诱惑无处不在 » Chanel [K]
18:30 MEEP MEEP... » The Tom Kyte Blog
16:11 Making bugs public - good job MySQL » MySQL Performance Blog
08:41 车展·生日·百淘 » NinGoo@Net
06:25 新机入手 » Chanel [K]
03:37 吴晓波:大午集资 » Fenng's shared items in Google Reader

2007-10-21 Sun

23:30 高性能网络编程,第 1 部分: 最大程度地利用您的网络资源 » developerWorks : AIX 专区的文章,教程