Sunday, July 31, 2011

About color

By Rui Chen

If we want to express the joy of our lives, we would probably choose the expression "The life is colorful". But what I did not realize before is that the Americans can have so much fun to create the various kinds of colors.

The motivation leading me to take a deep look at the painting colors is pretty simple, we need some type of painting oil to cover the unrecoverable rust and something made by oil smoke. After we going to Walmart, I am attracted by the Glidden colors. Even after going to Home Depot, the more and various colors can be found by the Brand of BHER.

Different colors can be found via pretty names like afternoon tea and cappuccino white. And finally we choose white on white for the toilet ceramics and white refrigerator, and natural wicker for the sort of yellow-white wall. We are kind of proud of ourselves what we nearly make it to cover the uncoverable marks.

As the various names, either loverly or plain straight-forward, they are just some help on distinguish the different colors. If you have specific color in your mind, maybe the digital computer can help you visualize it. That's also the way the Hom Depot guys do, they pick up the name and recognize the color components, and then use the digital computer to control the color mix process. Then you can enjoy your won color at your lovely home.

Hope one day I can use this knowledge to build my home!

Saturday, July 30, 2011

llvm patched with systemc library

By Rui Chen

In this article, I will get into the IR generated by the llvm-g++ along with the systemc library.

Understand the installation flow of PinaVM
The project is to mimic the idea of PinaVM, but I have to repeat the first few steps to understand the relationship between llvm-g++ and systemc library. Check out the /doc/install document for details.

One limit is that you have to use LLVM 2.6, which may suffer incompatible features with the latest version.

Start from autoconf part, which is Step 3 in the manual
1. autoconf
What the autoconf do is to seek a file named configure.ac (or configure.in for backward compatibility), and then runs the M4 macro processor to create the configure script.

2. configrue
command ./configure --with-tools-dir=$DOWNLOAD
Part of the output:
configure: Summary of variables:

DOWNLOAD_AND_COMPILE_DIR: /home/chenrui/Desktop/pinavm/download
INSTALL_PATH_LLVM: /home/chenrui/Desktop/pinavm/lib/llvm-2.7
INSTALL_PATH_LLVMGCC: /home/chenrui/Desktop/pinavm/lib/llvm-gcc
INSTALL_PATH_SYSTEMC_LLVM: /home/chenrui/Desktop/pinavm/lib/systemc-2.2.0-llvm
INSTALL_PATH_SYSTEMC_GCC: /home/chenrui/Desktop/pinavm/lib/systemc-2.2.0-gcc

configure: creating ./config.status
config.status: creating config.mk
config.status: creating config.sh
The code in the configure.ac file:
DOWNLOAD_AND_COMPILE_DIR="${TOOLS_DIR}/download"
INSTALL_PATH_LLVM=${TOOLS_DIR}/lib/llvm-2.7
INSTALL_PATH_LLVMGCC=${TOOLS_DIR}/lib/llvm-gcc
INSTALL_PATH_SYSTEMC_LLVM=${TOOLS_DIR}/lib/systemc-2.2.0-llvm
INSTALL_PATH_SYSTEMC_GCC=${TOOLS_DIR}/lib/systemc-2.2.0-gcc
So the "--with-tools-dir" means specifying the $DOWNLOAD directory for ${TOOLS_DIR}.

Another part of configure.ac:
# Defining files to be generated
AC_CONFIG_FILES([config.mk
                 config.sh])
Then config.mk and config.sh will be generated.
NOTE: normally, AC_CONFIG_FILES([Makefile]) is used(ref link).

Motivation to use SystemC and LLVM
I have done a simple literal translator with SystemC-to-VHDL translator with ANTLR, and I think it needs tremendous effort to crack the whole C++ grammar.
Besides, sc2v and gsc and many tools are based on their self-made compilers, which suffers a severe issue that only a small set of systemc grammar can be compiled.

Based on this understanding, it is very important to immigrate the translation method from ANTLR literal way to llvm-g++ based.


Generate simple backend first.
Another idea about working with C++ & Systemc with LLVM is that I can generate a VHDL experiment backend for test first and then connect it to the systemc frontend.

Friday, July 29, 2011

systemc: form installation to run

By Rui Chen

My OS is Ubuntu 11.04, and the installed systemc is 2.2.0.

Here are the command lines to install the package:
1. Goto the OSCI website, and download the latest package.
2. Create a separate folder named /usr/local/systemc-2.2
3. Go seeking the cpp file with the directory like  systemc-2.2.0/src/sysc/utils/sc_utils_ids.cpp, and then add two statements into the file:
#include "string.h"
#include "cstdlib"
using namespace std;
4. Go to the systemc-2.2 folder, and type
xx/systemc-2.2.0/configure
sudo make
sudo make install
The separate installation folder can also avoid the name collision if installation conducted in the same folder.

Verification of the installation
The example file is adopted here(ref), while the command line doesn't work, even the echo $SYSTEMC_HOME didn't show the directory for systemc.
So, I change the command to the absolute address as shown below:


reference for running the systemc program
http://linuxhao.com/Linux/doc/Linux_doc.asp?id=2938
If we change all the addresses to the absolute ones, then we can make it. The final command lines are below:
export SYSTEMC=/home/chenrui/Desktop/llvm/systemc-2.2.0 # chenrui is my computer name, I have checked that the systemc.h is in the systemc-2.2.0 folder.
g++ -I $SYSTEMC/include -L $SYSTEMC/lib-linux -o example.o example.cpp -lsystemc -lm
Besides, I have also changed the line 2 of example.cpp so that I can find the systemc library.
And then, it is pretty sure that you can "Hello World." output.

What a wonderful day.

Wednesday, July 27, 2011

GSC工具分析

作为我研究过的两个典型开源SystemC工具之一,GSC被认为比仰仗brutal force的sc2v的工具要强,而事实上,sc2v需要的仅仅是flex/bison,而在GSC则是基于一个C++ compiler framework(keystone)构建得到的,而且yacc的版本变为了btyacc,与此同时,它还引入了一个tree walker 工具,treecc。

详细内容参见
Project GSC -- 代码分析 email

Tuesday, July 26, 2011

心理学的blog辑录

社会发展越来越快,劳苦大众的心理疾病越来越多,读读心理学的Blog也还是挺有意思的,并且比政论的文章来的有意思。

Guide to psychology blogs 07年的总结 link 中文版
关于最佳blog最新的介绍 40-superb-psychology-blogs

在欧美心理学应该是一个较为发达的产业,同时,在我看来,它非常具有文科的色彩,与病人交流和对疾病的表述都说明了这一点。

下面还有一些lists可以选择合适的topics阅读
100-best-blogs-for-psychology-students/
101_fascinating_brain_blogs
top-100-fascinating brain blogs
--------
在众多的心理疾病中,最吸引我的还是personality disorder, 因为它是和成长有关系的,并且还不一定会爆发,可能会潜藏于人的心中一辈子。
bazhua的关于BPD的介绍link
台湾同胞的文章,文章1文章2(还有一些常见的心理疾病,当然文章比较老一些)

wiki上给出了来自WHO(world health organization)关于PD的分类,

ICD-10 groups for(F60.) Specific personality disorders :
Cluster ACluster BCluster C(F60.8) Other specific personality disorders

Monday, July 25, 2011

GSDII , EDIF 等ASIC流程中的格式

下面是集成电路中常用的文件数据格式。

GDSII:
它是用来描述掩模几何图形的事实标准,是二进制格式,内容包括层和几何图形的基本组成。

CIF:
(caltech intermediate format),叫caltech中介格式,是另一种基本文本的掩模描述语言。

LEF:
(library exchange format),叫库交换格式,它是描述库单元的物理属性,包括端口位置、层定义和通孔定义。它抽象了单元的底层几何细节,提供了足够的信息,以便允许布线器在不对内部单元约束来进行修订的基础上进行单元连接。

包含了工艺的技术信息,如布线的层数、最小的线宽、线与线之间的最小距离以及每个被选用cell,BLOCK,PAD的大小和pin的实际位置。cell,PAD的这些信息由厂家提供的LEF文件给出,自己定制的BLOCK的LEF文件描述经ABSTRACT后生成,只要把这两个LEF文件整合起来就可以了。

DEF:
(design exchange format),叫设计交换格式,它描述的是实际的设计,对库单元及它们的位置和连接关系进行了列表,使用DEF来在不同的设计系统间传递设计,同时又可以保持设计的内容不变。DEF与只传递几何信息的GDSII不一样。它还给出了器件的物理位置关系和时序限制等信息。

DEF files are ASCII files that contain information that represent the design at any point during the layout process.DEF files can pass both logical information to and physical information fro place-and-route tools.

* logical information includes internal connectivery(represented by a

netlist),grouping information and physical constraints.

* physical information includes the floorplan,placement locations and

orientations, and routing geometry data.

SDF:
(Standard delay format),叫标准延时格式,是IEEE标准,它描述设计中的时序信息,指明了模块管脚和管脚之间的延迟、时钟到数据的延迟和内部连接延迟。

DSPF、RSPF、SBPF和SPEF:
DSPF(detailed standard parasitic format),叫详细标准寄生格式,属于CADENCE公司的文件格式。

RSPF(reduced standard parasitic format),叫精简标准寄生格式,属于CADENCE公司的文件格式。

SBPF(synopsys binary parasitic format),叫新思科技二进制寄生格式,属于SYNOPSYS公司的文件格式。

SPEF(standard parasitic exchange format),叫标准寄生交换格式,属于IEEE国际标准文件格式。

以上四种文件格式都是从网表中提取出来的表示RC值信息,是在提取工具与时序验证工具之间传递RC信息的文件格式。

ALF:
(Advanved library format),叫先进库格式,是一种用于描述基本库单元的格式。它包含电性能参数。

PDEF:
(physical design exchange format)叫物理设计交换格式。它是SYNOPSYS公司用在前端和后端工具之间传递信息的文件格式。描述了与单元层次分组相关的互连信息。这种文件格式只有在使用SYNOPSYS公司的Physical Compiler工具才会用到,而且.13以下工艺基本都会用到该工具。

TLF
TLF文件是描述cell时序的文件,标准单元的risetime,hold time,fall time都在TLF内定义。时序分析

-------------------
EDIF介绍 zz:谈谈EDIF

说到LPM(Library of Parameterized Modules),就一定要谈谈EDIF(Electronic Design Interchange Format)。EDIF文件是EDA厂商之间和EDA厂商与IC厂商之间传递设计信息的文件格式。LPM最初是作为EDIF标准的附件出现的。

    EDIF和LPM的标准化过程:

    1988年,ANSI/EIA-548: Electronic Design Interchange Format (EDIF), Version 2.0.0。

    1990年,LPM标准提出,供EIA审核。

    1993年,EIA 618: Electronic Design Interchange Format (EDIF) Version 3 0 0 Level 0 Reference Manual,LPM作为EDIF标准的附件,成为EI


A的一个过渡标准。
    1995年,EIA PN 3714: Library of Parameterized Modules (LPM) Version 201。

    1996年,EIA-682: EDIF Version 400 (EIA-682-96) Electronic Design Interchange Format。

    1999年,EIA/IS-103A: Library of Parameterized Modules (LPM) Version 2.0。

    从年代上看来,88年到90年前后恰好是半定制设计风格超越全定制设计风格,成为VLSI芯片设计主流的时期。LPM标准的提出可能正是响应了半定制设计的需求。

    EDIF文件是EDA工具之间传递信息的标准格式。画过电路原理图和PCB的朋友一定知道,原理图文件绘制完毕后需要“生成网表”,进行 PCB布局布线之前先要“引入网表”,这样才能建立原理图文件和PCB文件之间的“逻辑映射关系”。EDIF文件就是网表文件的一种格式。在很多情况下, 原理图文件中的模块图形和PCB文件中的“封装”是一一对应的,这种“物理映射关系”就是通过“库文件”建立的。“库文件”包含了原理图模块的名称和图 形,也包含了封装文件的名称和图形,这样一来,“物理映射关系”就建立起来了。在不同的EDA工具之间,比如Protel和Cadence还有PowerPCB,逻辑映射关系是很容易互相通用的,但是由于支持不同的“库文件”,物理映射关系往往就建立不起来。

    在IC设计领域(包括PLD设计),EDIF文件就遇到了类似的问题:综合工具和实现工具必须达成一致。在LPM标准提出之前,这一点很难实现,毕竟IC设计领域存在太多的实现工艺和EDA工具。

    在LPM标准提出之前,对于某些逻辑的描述没有统一的标准,描述方法都是工艺相关(Technology dependent)的,所以综合工具生成的EDIF文件不具备可移植性。在采用了LPM标准之后,对于LPM库中包含的逻辑,所有的综合工具都采用同一 种行为描述方法,生成相同的EDIF文件,实现设计输入和网表的正确映射;实现工具包含各自工艺库与LPM库之间的唯一映射关系,从而能够“读懂”包含 LPM描述的EDIF文件,实现网表和工艺实现之间的正确映射。这样一来,EDID文件在不同的实现工具之间移植就不成问题了。(LPM并不是唯一的解决 方法,比如现在的EDA工具之间往往互相支持对方特定的库文件和网表格式,尤其像Synplicity这样的专业EDA公司,同时支持许多公司的器件和网 表格式和宏单元;而Altera和Xinlinx就不能互相支持)

    在这一过程中体现的原理是:通过增加一个映射层次,把一次映射关系转化为两次映射关系,两次映射关系的中介——包含LPM描述的EDIF文件——就具备了可移植性。

更多更详细的关于EDIF的内容,参见这里:EDIF 格式


FPGA和ASIC介绍

这篇文章介绍的比较综合,其中既讲到了仿真和综合,也谈到了工具,三颗星的文章吧,一些东西都已经看到过了。
Synopsys公司提供的综合工具DC把综合分为三个步骤进行:synthesis=translation+mapping+optimization。 
从这个综合的定义上看,translation实际上只能算是一小步。

Sunday, July 24, 2011

enum的翻译

By Rui Chen

VHDL 与systemc在enum的定义上有很大的不同。

VHDL-ref
Important Notes

  • It is illegal to define an enumeration type with a range.
  • It is assumed that the values are defined in ascending order. For this reason it is recommended to order the literals in such a way that the default value is the first one (it is referred to through the attribute 'left').
  • Objects of enumeration types are typically synthesizeable.
所以,VHDL的

Saturday, July 23, 2011

二义性

By Rui Chen

人类的活动不可否认都是伴随着人类的逻辑活动应运而生的,有对有错。很有意思的是,每次创造或者说是整理的较量都让我能深刻地感受到这种活动在走向完整时所作出的巨大努力,海森堡曾说过,“真理的对面往往是更大的真理”,他将真理同一化了。而就像哲学关于世界本原有着“一元论”,“二元论”以及“多元论”的理解,科学哲学在丰富和发展的过程中也在体会同样的经历,当然,总总言论的较量都是一种绝对化的产物,但也饱含各自的态度和思想。

上面这段引子旨在讲讲最近看到的Rube Goldberg Machine, 一种走向奥卡姆剃刀原则背面的Machine。仔细想想,这种Machine看似很fancy,但也确实是缺乏它必要的实用性,一件很简单的事情却要细分为这么多的步骤,然后,每一步走要设计的很精巧,搭配的要恰到好处才能完成最后的目标,如果是稍有差池,整个设计可以说是前功尽弃,就像OK Go制作的This Too Shall Pass每个演员身上厚厚的油漆就可以体会得到后面的炮击不知道演过多少次。

但为什么会去讲自己点子融入其中,创造出更多好玩的Rube Goldberg Machine呢?原因也没有那么复杂就是好玩,有兴趣。并不否认,这确实是很重要的一点,但我却并不仅仅这么看他们的意义,而让我无法释怀的在历史上中国也有很多次,简单有效的发明。

最为著名的是李约瑟提到的中国的风力手推车,一个轮子的设计,大家可能只会是在电视上的杂技节目中看到,而李约瑟却给它冠上了顶级设计的美誉,而现在他在那里。相反,在斯堪的纳维亚半岛上的壁画告诉我们,几千年的欧洲人就为他们的代步工具加上了方向盘,而这个看似多余的设计为我们数千年之后的汽车埋下了深深的伏笔。可能有人也会为这发展眼光打上深深的问号,这个时间也太长了。

而下面的故事也能给点启示(这个故事也经常以惯性思维的面孔示人),摘引如下:
1435毫米的轨距为国际上通用的标准轨距早期铁路是由制造电车的人按电车的轮距设计的,电车轮距又是根据英国马车的轮距设计的,而英国马车的轮距是从古罗马那里来的,古罗马马车的车距是根据两匹马屁股的宽度来决定的。也就是说古罗马两匹马的屁股的宽度最终决定了现代铁路铁轨之间的宽度。 
现代铁路的铁轨间距是4英尺8点5英寸,铁轨间距采用了电车轮距的标准,而电车轮距的标准则沿袭了马车的轮距标准。马车的轮距为何是4英尺8点5英寸?原来,英国的马路辙迹的宽度是4英尺8点5英寸。如果马车改用其他尺寸的轮距,轮子很快就会在英国的老马路上撞坏。 
标准轨由最先使用铁路的英国提出。设计及建造史托顿及达灵顿铁路的英国工程师罗拔史提芬逊提出4呎8½ 吋的轨距,并成功说服火车制造商生产4呎8½ 吋(即1435毫米)轨距的机车及车辆。由于史提芬逊成功设计的铁路是众人模仿的对像,亦使这轨距变得流行。1845年英国皇家专员建议用4呎8½ 吋作为标准轨距。1846年英国国会通过法案,要求将来所有的铁路都使用标准轨。除了英国的大西部铁路(Great Western Railway)是使用宽轨之外,英国的主要铁路都是标准轨。大西部铁路亦于1892年改成标准轨。
英国马路的辙迹宽度又从何而来?这可以上溯到古罗马时期。整个欧洲(包括英国)的老路都是罗马人为其军队铺设的,4英尺8点5英寸正是罗马战车的宽度。罗马战车的宽度又是怎么来的?答案很简单,它是牵引一辆战车的两匹马的的总宽度。 
段子到这里还没有结束。美国航天飞机的火箭助推器也摆脱不了马的纠缠———火箭助推器造好之后要经过铁路运送,而铁路上必然有一些隧道,隧道的宽度又是根据铁轨的宽度而来。代表着尖端科技的火箭助推器的宽度,竟然被两匹马的的总宽度决定了。而这些隧道的宽度只比火车轨道 的宽度宽了一点点,然而我们不要忘记火车轨道的宽度是由马的屁股的宽度所决定的。 因此,我们可以认为:今天世界上最先进的航天火箭和洲际导弹运输系统的设计,是两千年前便由 两匹马的屁股宽度决定l了。 这就是路径依赖,看起来有几许悖谬与幽默,但却是事实。
上面这个故事一方面说明了大众惯性思维(事实上在工程设计中,这也可以算是前向兼容)的强大,但另外一方面也说明在设计中的局限,如果总是以一种就事论事的态度来解决问题(当然毋庸置疑这是解决问题最快的途径),很少去想想这件事情所带来的危害,有时候结果还是挺严重的。

就像我在和别人交流时说的(当然可能这只是一种文化趣味),
我的理解是,针对特定问题是应该使用奥卡姆剃刀原则,但是,如果是面向一类问题,或者是未知的问题,奥卡姆剃刀就不适用了。所以,二者的区分应该在于前者功利,而后者是纯粹的爱好。纯粹的爱好往往可以将认识引导到一个比较有趣的层次。~~当然,社会的包容性也应该更强一些才行·,这样才能促成多元的文化
扩展阅读:
1. 软件设计中的设计模式和重构
2. 制度设计

科学把妹法之二

By Rui Chen

//这篇文章只能说是在看了松鼠会上的文章之后的小节。

相信这篇应该是在科学把妹法之后,再次在中文世界用一些外国的心理实验来规范讨论爱情理论的文章了。科学恋爱指南

之所以还能将这个谈恋爱纳入科学的范畴,就是因为有的心理教授的研究确实在这些网站上得到了成功,下面的Helen Fisher就是chemistry.com的chief scientific advisor。而这个网站也在众多的dating 网站中排到了第二位(link)。遗憾的是《科学恋爱指南》一文并没有提到match.com的相关研究(这里提到chemistry.com是match.com的姐妹网站(link))。

有趣的是match.com里的blog除了Dr. Fisher之外,另一位记者Whitney Casey也出过自己的书The Man Plan: Drive Men Wild-- Not Away (Perigee),但amazon上的评价却是相当极端的两种对立意见。(大部分人还是持反对观点的,如果没有套说得过去的理论,光靠表面文章,记者在这个上面还是都不过科学背景出身的Helen Fisher)

既然Dr. Fisher老师是如此一位了得的老师,自然收集她的作品也是不在话下,她的三本(amazon 专页)好书分别为:

Why Him? Why Her?: Finding Real Love By Understanding Your Personality Type(Jan, 2010)
WHY WE LOVE: The Nature and Chemistry of Romantic Love(2004)
ANATOMY OF LOVE: The Natural History of Mating, Marriage and Why We Stray(1994)。

然而很遗憾的是这三本书的电子版都很难找到,所以,其观点的入手只能是从书摘和文摘开始。

Neil Clark Warren PhD in Clinical Psychology, 相比于 Helen Fisher, 似乎她应该更对相亲的口味,毕竟算是正统心理学出身。
http://www.amazon.com/Neil-Clark-Warren/e/B001IOFFY8

6 dating advice books for men
http://www.match.com/magazine/article/11923/6-Dating-Advice-Books-For-Men/


书摘
We have many inborn tendencies. Indeed, scientists now believe some 50 percent of the variations in human personality are associated with genetic factors. We inherit much of the fabric of our mind.

Personality is composed of two fundamentally different types of traits: those of character and those of temperament.

Your character traits stem from your experiences.
The balance of your personality is your temperament, all of the biologically based tendencies you have inherited, traits that emerge in early childhood to produce your consistent patterns of feeling, thinking and behaving.

HashMap遍历的两种方式

By Rui Chen
Main ref blog: link
Doc ref: java2 HashMap

遍历HashMap必须要使用到索引变量,而HashMap中可以充当这个用途的只有两个set, entrySet, keySet. 主要参考的blog中对这两种方法进行了比较,参考code 如下:
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {     Map.Entry entry = (Map.Entry) iter.next();     Object key = entry.getKey();     Object val = entry.getValue(); } 效率高,以后一定要使用此种方式! 第二种: Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) {     Object key = iter.next();     Object val = map.get(key); } 效率低,以后尽量少使用! 
作者也对代码效率差异进行了分析,结果如下:
例: HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例: 
public class HashMapTest { public static void main(String[] args) ...{   HashMap hashmap = new HashMap();   for (int i = 0; i < 1000; i ) ...{    hashmap.put("" i, "thanks");   } 
  long bs = Calendar.getInstance().getTimeInMillis();   Iterator iterator = hashmap.keySet().iterator();     while (iterator.hasNext()) ...{       System.out.print(hashmap.get(iterator.next()));   }   System.out.println();   System.out.println(Calendar.getInstance().getTimeInMillis() - bs);   listHashMap(); } 
  public static void listHashMap() ...{   java.util.HashMap hashmap = new java.util.HashMap();   for (int i = 0; i < 1000; i ) ...{    hashmap.put("" i, "thanks");   }   long bs = Calendar.getInstance().getTimeInMillis();     java.util.Iterator it = hashmap.entrySet().iterator();   while (it.hasNext()) ...{    java.util.Map.Entry entry = (java.util.Map.Entry) it.next();    // entry.getKey() 返回与此项对应的键    // entry.getValue() 返回与此项对应的值    System.out.print(entry.getValue());   }   System.out.println();   System.out.println(Calendar.getInstance().getTimeInMillis() - bs); } } 
对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。 
注:Hashtable的遍历方法和以上的差不多!

Thursday, July 21, 2011

Eclipse的task 标记

By Rui Chen

Eclipse的标记可以帮助定位,同时也有助于文档的管理,是一个不可多得工具,网上的介绍文章也很多,如这篇

eclipse task view from eclipse sdk 3.6.2

Tuesday, July 19, 2011

虚拟机安装RHEL

by Rui Chen

和安装UBUNTU一样,安装RHEL也是有虚拟机和双系统两种模式。前者,便是下载VMWARE workstations,然后像安装应用程序一样进行;而后者,可以是光盘也可以是U盘,也可以是硬盘,但如果是后面两种就需要使用到GRUB,安装好之后双系统的引导也是用GRUB来引导。

1.不能使用文本重写的方式直接对boot.ini进行修改,因为你不知道里面是什么。
深度GHOST C盘通过文件选项的方式并不能看到boot.ini,我的方法是通过 我的电脑-->属性-->高级-->启动与故障恢复编辑-->加入后保存。

2. 到底是C:grldr="GRUB"(ref)还是C:\grldr="grub for RHEL4"(ref),我觉得应该是后者。
修改之后得到,hal.dll 损坏或丢失的错误
不一定是真的丢失了,参考文章,事实上正如文章所分析的只是对应的分区可能不一样。
而根据我的XP还可以启动,也说明这个文件没有损坏。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS //rdisk(0)指第一块物理硬盘partition(1)指第一分区
[operating systems]
multi(0)disk(0)rdisk(0)partition(1) //rdisk(0)指第一块物理硬盘partition(1)指第一分区\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
对你的BOOT.INI进行修改将partition(1)都改成partition(2).不要只改一个哦!看清里面有两处partition(1)
通过这段引用,也可以看得清楚,物理硬盘的分区设置决定了能否找到hal.dll,从而成功启动。

3. command line
>kernel (hd0,4)/vmlinuz root=/dev/hda5 注:(d0,4)表示第一个硬盘的第5个分 区,即D:
>initrd (hd0,4)/initrd.img
>boot

6、  在GRUB提示符下输入如下命令行:
   GRUB>reboot (hd0,4)(--这条可以去掉,有问题)   GRUB>kernel /isolinux/vmlinuz   GRUB>inittrd /isolinux/inittrd.img  出处(--补注,最后采用的是这种方法注意GRUB是有错误的  
关于GRUB命令行的解释命令行解释 ,当然由于方法的有效性,并没有在GRUB命令上有太多的纠缠。

4.硬盘分区
在command line的环节中,我的都是(hd0,6),也就不求甚解了。
linux 安装过程中 /BOOT 是什么系统文件类型?EXT3?EXT2?SWAP?
除了swap以外剩下的选项都可以
但是推荐使用ext3或者ext4(如果已经支持的话用ext4)
一楼,可以存在单独的/boot分区哦,用于启动,而且swap和虚拟内存相差很大的,根本不是一回事
二楼,/home分区和/boot分区都是可以单独分也可以不单独分的,而且一般我不喜欢单独分区/home,而是单独分一个随便的区然后目录挂载好了,/home下用ln -s比较好 出处 
分区设计(按照下面的做法实际上就是四个部分,/boot, swap, /(超级根目录), /usr):

swap才8M实在太小了必须是物理内存的1.5到2倍
boot 100M没错
按F2新建一个分区
挂载点:/boot
文件系统:ext3;
大小100M; ;
固定分区大小;
强制主分区;
按F2新建一个分区
挂载点:无;
文件系统:swap;
大小(物理内存1.5~2)倍
按F2新建一个分区
固定分区大小;
根挂在点 /
文件系统:ext3;
大小:10240M; (10G)其实要更加物理硬盘的大小而定
固定分区大小;
按F2新建一个分区
挂载点:/usr
文件系统:ext3;
大小:使用全部剩余容量;
关键就是这几个个目录,

另外一篇讲手动分区的,也提到了自动分区的结果:分区


swap空间大小:
通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存(内存条的大小)的2-2.5倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加,具体配置参见各服务器产品的说明。
swap数量:
Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。SWAP问题
更多关于SWAP的讨论是凭经验的,我的笔记本1.5G内存,swap为512M,使用率很低。
关于分区:这里面关于boot的分区为50-100MB合适。


硬盘的分区是以下规则:
主分区最多只能有四个,扩展分区的名额也在四个里面。
也就是说要么有四个主分区,要么3个主分区和一个扩展分区。
而扩展分区只能有一个,他又可以分为多个逻辑分区,大概最多可以分256个逻辑分区吧,具体的不太清除了。
并且他不能作为一个真正的分区使用,只是一个用来容纳逻辑分区的容器。
在linux下,分区的形式为:
1-4为主分区或者扩展分区,5以后为逻辑分区。
只要发现了5以后的分区存在就可以断定一定有扩展分区存在。
另外1024的限制貌似针对lilo说的,grub应该没有这个问题,呵呵 出处
5.分区之后
百度文摘 不同的是,我选择的是default package

6. 重启
出现了kernel panic - not syncing: Fatal exception
错误代码分析for AS4.6
--无论怎么调整这里都无法通过,前面两句
sys_init_module+0xe9/0x1d0
syscall_call+0x7.0xb
--如果是cent0S 还有其他的解决方案(链接),但是对于dell没有效果,比照下,两者前面的话是不一样的。

另外尝试一下AS5 installation number(AS: advanced platform),因为是已经装过AS4,所以在这里,我只是选择了升级。

usb 1-1 cannot configure #1 error-71

Monday, July 18, 2011

回过头来的XP

by Rui Chen

安装XP的方法很多,当然也就是光盘和U盘,过往有过成功安装WIN7的经验,以为也会同样的简单,就用了U盘。

U盘地安装方法有两种,一种是安装盘,再一种是GHOST。
安装盘需要WIN ISO,以及ULTRAISO,然后写入重启,注意调整BIOS的顺序。

在就是GHOST,前几年比较流行的系统一个是番茄花园,后面就是雨林木风,现在好像是新萝卜花园(我下的是电脑城装机版)比较好一些。选择完系统之后,大家一般的操作就是找个老毛桃的WINPE系统还原工具(ishare 上面是有下的)。针对DELL,需要注意的就是SATA数据访问问题,需要在BIOS选项中修改ACHI to ATA 模式。

当然,上面的两个方法都没有成功,这也说明了XP和WIN 7的巨大区别。

下面的就是使用光盘的方法,也是在ishare上面下的nero mini 9,够用了,然后在刻盘的时候注意选择DVD而非CD(在左上角),刻录过程比较简单。但是,在开始写录之前,那个“结束光盘”选项值得注意(不用关心,都是一次写入的,准备好大小合适的空光盘,尽量不要用DVD刻录CD),在刻录的过程中尽量不要图速度,稍微放慢点,然后注意刻录完后进行校验。深度GHOST,小罗推荐的,最后用的是它。

关于刻录光盘的种类见下:

DVD+R DVD+RW DVD-R DVD-RW是可刻录光盘的种类。
DVD+R DVD-R 是一次性的,刻完了就不能删除。
而RW是可重复使用的,CD-RW也是一样的道理。
DVD-RAM是可以当硬盘用的光盘。
七、体会、建议
1、安装系统时,一定要对分区老老实实重新格式化一次,不要偷懒,主要是防止硬盘有坏区没有标出来,会给系统造成不稳定的隐患。
2、GHOST的系统最好用FAT32格式做,有二个理由:一是:FAT32→NTFS很容易,可以做到数据保全。NTFS→FAT32就不可能,如果一定要转,数据就丢失了。二是:GHOST对NTFS格式压缩明显不如FAT32的,同样是XRMPVOL_CN系统,NTFS文件系统经过GHOST最高压缩后,会比采用FAT32的大30M左右。
3、制作XP、2003的GHOST操作系统建议使用配置高的机器,虽然这个有争议,但实践表明:用低配置的机器或者用VM做出来的GHO镜像,恢复到机器上时,已经发现有不少是不能启动的。而用高配置的机器做出来的GHO却发现兼容性很好(王朝网络 wangchao.net.cn)  如何制作纯净的GHOST安装盘(XP)

我现在下的深度GHOST XP便是NTFS格式的。使用的是最后一个选项直接GHOST 到C盘。
安装完了WIN XP,之后就可以用深度的PM(partition magic)工具进行分区。(一个简单的教程
最后安装出来的系统程序大概是4G。

Friday, July 15, 2011

两个时钟域的interface问题

By Rui Chen
Interfacing the two clock domains
Problem formulation
The two(or multiple) synchronous systems at different clock frequencies want to interface to each other.

Intuitive definition for asynchronous
The two clock domains are considered to asynchronous to each other when it meets:
1. different frequencies
2. same freq but different phase angle

Problems introduced when considering the interface:
1. setup and hold time violation
2. meta-stability
3. unreliable data transfer

reference: asic world

Possible solution from Lecture 10 of BlueSpec docs, while 2 and 4 matches with the solutions given by asic-world:
When interfacing the two clock domains, the intuitive solution is to introduce the synchronizer. According to lecture 10 ppt, the synchronizers can be divided into the following seven categories(also depicted in Appendix C.8 of reference guide):

  1. 2-flop synchronizer
  2. Pulse Synchronizer
  3. Word Synchronizer
  4. FIFO Synchronizer
  5. Asynchronous RAM
  6. Null Synchronizer
  7. Reset Synchronizer
In this article, the five specific problems are addressed:
1. Meta-stability(also has a vivid doc in asic-world) 
2. Reset synchronization
3. Glitch elimination across clock domain boundaries
4. Inadequate hold times for receiving clock domains
5. Loss of correlation among signals crossing clock domains

A solution: Clock intent verification

For more info, search with multiclock design or multiple clock design

Synthesis and Scripting Techniques for Designing MultiAsynchronous Clock Designs
very useful article try to address the problems in the field.
SUNG 3rd place, very competitive
The papers at SunBurst website are also good ref for design: Check them out

Wednesday, July 13, 2011

谢谢大家,你们来了

By Rui Chen

当人们还在各自忙碌着自己的日程,行色匆匆之时,突然,身边不禁响起了一段音乐,又突然不知从各处闪现出来一堆俊男靓女,他们汇聚于醒目之处,载歌载舞,尽情展现一番,路人皆好奇,停驻下脚步,时不时也会附和,兴之所至,也会扭上一段。时光荏苒,当音乐变弱,节奏渐缓,这群舞者或歌者却又迷失,隐匿于匆匆人群之中,正如他们谜一样的出现,他们有没有兆头地离开了这个“舞台”,但从错愕路人的兴奋和交谈之中,你还是能够感受得到这群表演者所带来的欢欣和舒畅。

当然,作为娱乐方式,我们并不需要知道这种行为艺术叫什么名字,然而在发起者 Bill Wasik的眼中,它却有个正儿八经的名字, flash mob。伴随着全球的MJ纪念风暴,国人也逐渐认识了这样一种新的文化现象,在传播的过程中,“快闪族”一词也渐渐为人所熟识,更有人直接将快闪族和MJ群众舞蹈画上了等号。殊不知flash mob这种亚文化早在2003年便诞生在了曼哈顿的街头。

何谓flash mob
根据维基百科的解释,Flash mob一种通过新兴媒介(诸如电子邮件,短信,社交媒体)组织起来,在公众场合做一些看似无意义但不寻常的行为,在短暂活动结束之后各自离去,活动的目的通常是为了娱乐或讽刺。因而,本质上看来,这种活动就是天生为平民准备,愉悦个人,短暂放松的手段,而之所以出现在繁闹的纽约,一来是因为其文化的多样性与包容性,再者就是因为它快节奏的生活脚步以及繁重的生活压力。而中文的快闪族则更多的以观念时髦的年轻人为主,他们也有更多的自信和勇气将娱乐带给众人。

虽然,Bill Wasik并没有公开地诠释flash mob的含义,但大家都普遍认为这算作是Howard Rheingold的著作<Smart mobs: the next social revolution>之后的继承概念,中文的“快闪族”,在我看来由于文化背景和理解上的差异,而不足以体现出mob的底蕴,似乎“快闪暴民”更为贴切,而且带有某种程度的自嘲心理。

注:Bill Wasik 2003年是Harper's 的高级编辑。

我猜想,中文翻译之所以不翻译成文化暴民,可能原因就是暴民在人们的严重是一个相当负面的词语。然而,就我看来,暴民可以从两个方面解释这种文化现象之后的精神实质。首先,就是表演者对社会公约的一种违背,几乎所有的集会都是会选择一些人群喧闹的地方,如繁闹的步行街,中央车站,或者是喧嚷的商场,甚至是穿梭如流的十字路口,而选在这些人群喧闹的地方,诚然是为了表演的需要,吸引更多人的注意,但本质上也是为了感染他人,为了某个主题,表演者有时也会统一着装来讲这种看似无意义的街头聚会变成一种打破其他人生活节奏的主题宣讲。因此,如果你总是需要去寻找表演背后的意义,那你便总是可以找到他们唤醒社会认识的理由。

除此之外,有时候内容也会成为一种暴民文化,比较典型的例子就是在外人看来的恶作剧和搞怪,如日本百人快闪和枕头互打(pillow fight flash mob)等。然而,历数过往的历史,这种搞怪的渊源也就跃然纸上了,西班牙小镇布尼奥尔的西红柿节似乎可以看成是这种互打的先锋,而日本的搞怪活动早在日本的动漫作品中就让人耳熟能详。

这些具有社会公用的地方,

西班牙人的躁动与不安:

日本整人有很长的历史??



Tuesday, July 12, 2011

medical drama

By Rui Chen
07/12

About house
The real diagnosis 
一个讨论doctor 诊断真实性的帖子
2007/medical-mysteries/the-real-dr-house
看这个标题就还蛮好玩的, 真实世界中的house
medical review for house
当然最为重要的还是医生的专业观点

----
medical drama comparison
电视符号学是媒介研讨的一种方法 注:这篇文章写的比较的专业
gender analysis for GA 国内的同学写的还真专业
大叔归来  菜头的文字还是很有张力的,摘抄几段(应该将美剧还没有讲观众的智商BS一番,电影由于时间限制和表现方式的需要,常常会在这方面做一些努力)

我曾经在Twitter上写过一段话:
新闻看电视,手机无Wifi,春节等春晚,上网斗地主,阅读茅盾文学奖作品,看华表奖获奖电影,这就是21世纪文盲的标准像。
在我看来,美剧是脱离这种新文盲状态的必然娱乐。在美国那样一个万恶的纯商业社会里,只要不冒犯大众的基本价值观,编剧们可以任由想象力飞翔,经年累月地进行这种绞尽脑汁的比赛,看谁的故事更有趣,更动人。美剧好看就是因为这个道理,它唯一的目的就是取悦观众。任务失败,那就会被结季滚蛋,彻底从荧幕上消失。我之所以追看《Lost》,其实出发点非常恶毒:我想看到编剧怎么把自己活生生憋死。但他们坚持到现在,还没有暴毙身亡的迹象,于是我看到的就是各种奇峰突起,叫人冬天里洗澡停电---欲罢不能。
看到别人可以放飞想象力,自由驰骋,逼近智力的极限,这本身就赏心悦目。这么说虽然有些伤感,但是作为一头驴子,站在自己的圈门口,看着外面的野马如疾风一般掠过,哪怕嚼了满口的饲料,也会停下来,出神地眺望一番,幻想自己四蹄翻飞,风声过耳。就算是明天要和骡马并辔而行,不能越磨道半蹄,也觉得心中喜悦难当,想着赶紧拉完了回圈,等着马群从门前再次飞驰而过,好站在槽头再看一眼。

观众需要什么样的观影感受

By Rui Chen
07/12

水木社区的原帖(link)

看完原帖简单的反映就是,作者其实还蛮片面化,长期观看收视榜单的人都知道最火的电视剧应该首当其冲的算是AMERICA'S GOT TALENT(美剧迷:收视排行榜,注:2010年9月20号至2011年2月13号,在18-49年龄段的收视率,当然最近的也可以参看Nielsen TV ratings),当然,透过这个榜单,你也可以看到排到前几的除了搞笑就是歌舞,要么就是挂羊头,卖狗肉的医疗剧。所以,纯粹从美国人的观影角度出发,他们也不会花上很多的时间去看那些需要很多专业知识、以及引人入胜的压抑罪案或是医疗电视剧。而后者却是集中了相当多的专业领域的作家,如lie to me 的测谎检测,bones的人类学探案,就连搞笑的the big bang theory也是有着UCLA的物理老师撰写台词,并且另开blog做生动讲解。就此精良的制作,中国的电视工作者如何能寻求得到学术界的配合,而学术界一贯的艰深晦涩却也只能是在新生代中找到突破了。

当然,通过上面的介绍,我们也不难发现另外一个特点,那就是中国的文化产业不是十分地具有原创精神,泛化地谈也就是大多数当下的红火电视剧都是根据小说改编的,而改编之后总是免不了与原作者的内容从各个方面做比较,这在某种程度上也局限了编剧的思维。当然,这么做也是体制的原因,因为电视剧都是一箩筐地拍完,然后再一集集地播,因而在中间环节上缺少观众反馈的环节,所以,电视制作者采用这样的方式也就是为了降低风险,这样,电视剧也就成了小说的一个“周边”,根本没有什么新意。

另外一个特点就是中国的电视剧总是很缺乏想象,可能是观众的口味决定的,那就是在80后还在疯狂打拼的时候,他们注定也就不大可能成为各大电视台黄金时间的电视剧的消费主力。相应的,电视剧也就不大可能会有更多的专业知识或者是用陌生词语做引导来吸引观众,同样,电视剧不能太压抑,不能心理太不健康,这样美国电视剧的这些比较wired 和疯狂的一面也就不大可能进入到制片人的考虑范畴。踏踏实实在广电总局的眼里才是好孩子。

横跨
冯巩的小品《艺术人生》中,就有一个很有意思的桥段:
朱:我不知你怎么想的,你已经到了中年,为什么还这么拼命呢,是什么样的原动力在支撑你这么做呢? 
冯:不自信。在相声界我影视最好,演员里我导演导得最好。导演中我编剧编最棒,反正我就想玩个综合实力。朱:你总是拿自己的长处比人家的短处。冯:有一句话说的好,和帕瓦罗蒂比劈叉,和美国总统布什比说中国话。恩,说死他。 其实不自信人人都有,比如搞导游的代卖盒饭,老中医捏脚,电视主持人出书。
而在中国,你常常可以看到什么“影视歌”三栖的明星,当然,也不是说国外就没有这样的人,而Wikipedia中还有一个关于EGOT(Emmy, Grammy, Oscar, Tony, 注:分别是电视剧,音乐,电影以及舞台剧的最高奖项)的list(link),但在娱乐业发达的美国古往今来竟然也只有10位,而新中国的电影尚不足百年,各个行业的奖项似无定论,竟然也出来了这么多的三栖明星,这皮囊般的综合实力,我看不要也罢。
如果换个角度看所谓的综合实力,它也好比是美国政府、学术、商界的旋转门,今天这个歌没人听了,演出被砍了,明天就接个剧本演电影,后天如果行情好了,在出演电视剧什么的,所以所谓的“影视歌”三栖在这样的一个背景下,也透露着无尽的无奈,只能说中国的艺人光看一技之长在一个行当里似乎很难吃得开。所以,在中国你经常可以看到的情景就是,做电影的跑去做电视,做电视的串过来弄电影,有时候就连说说相声的郭德纲也会写写电影剧本什么的。

利益至上确实是文化产业的“七寸命脉”,而反过来,这些文化工作者却也以此为理由对像吉卜力工作室这样的文化模式,对像Animal Kingdom这样的独立电影的商业成功视而不见。事实上,当国人对于内容缺乏创意可求的时候,这才是真正难以获得共鸣的最大原因。

ref: link  作者电影的引入,导演的分类