Tuesday, September 25, 2007


cCam (pronounced “see-cam”) is a camera capture program that runs on S60 phones, allows us to click pictures with no shutter sound and no flash light! It saves the captured images to default memory card image directory.
While testing on the Nokia N95 i’m glad to say there was no sound, however the red led does light up for a micro second!
你是否对NOKIA的S60 3rd edition手机如N73等无法关闭拍照声和闪光灯而感到绝望?

看图说话,拍照请使用"snap";"focus range"选择焦距模式.
Click Here To Download

Installing The IBM Lotus Symphony Beta 1 Office Suite On Ubuntu 7.04

This document describes how to set up IBM Lotus Symphony Beta 1 on Ubuntu 7.04. IBM Lotus Symphony is an office-suite that is based on OpenOffice.org (a fork of v1.x) and ported to Lotus Expeditor (IBM's enhancement of the Eclipse Rich Client Platform). It contains programs for word processing, spreadsheet and presentation.

This howto is meant as a practical guide; it does not cover the theoretical backgrounds. They are treated in a lot of other documents in the web.

This document comes without warranty of any kind! I want to say that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!

1 Get IBM Lotus Symphony

Download the software from http://symphony.lotus.com/software/lotus/symphony/home.jspa.

Note: You have to register first.

2 Installation

There is currently a bug, which prevents the installation if you have desktop effects enabled (Compiz/Beryl).
So be sure that you have disabled the desktop effects before you proceed.

chmod +x IBM_Lotus_Symphony_Linux.bin
cd IBM_Lotus_Symphony_Linux/
sudo ./setup.bin

Next the installation wizard will pop up:

The following window contains the license agreement:

Choose a location for the installation - I recommend to use the default:

Now the software is ready to be installed:

The software is being installed:

When the install is complete, choose Exit and open later:

3 Bugfix

After the installation finished, you'll see that the lotus folder in your home directory belongs to root. So you have to change the ownership:

cd /home/%yourusername%/
sudo chown -R %yourusername%:%yourusername% lotus/

4 Use

Currently the software is very slow (depending on your hardware). It is accessible via the Applications menu in the gnome panel:

5 Deinstall

If you want to uninstall the software, simlpy run the uninstaller:

cd /opt/ibm/lotus/Symphony/_uninst/
sudo ./uninstaller.bin

6 Links

生活小技巧: 打包叠衣法


上图中这个方法,是将两件外套和一条裤子搭配在一起折叠,图中清楚的标示了整个步骤. 有时间的话,大家可以拿几件衣服折叠一下试试看,考证一下这种方法是不是真的能够有效地节省空间.

Monday, September 24, 2007

A Concise Guide to Why and How to Split your State Machines

So, why do we really care about state machine partitioning? Why can’t I have my big fatty FSM with 147 states if I want to?

Well, smaller state machines are:

  1. Easier to debug and probably less buggy
  2. More easily modified
  3. Require less decoding
  4. Are more suitable for low power applications
  5. Just nicer…

There is no rule of thumb stating the correct size of an FSM. Moreover, a lot of times it just doesn’t make sense to split the FSM - So when can we do it? or when should we do it? Part of the answer lies in a deeper analysis of the FSM itself, its transitions and most important, the probability of occupying specific states.

Look at the diagram below. After some (hypothetical) analysis we recognize that in certain modes of operation, we spend either a lot of time among the states marked in red or among the states marked in blue. Transitioning between the red and blue areas are possible but are less frequent.


The trick now, is to look at the entire red zone as one state for a new “blue” FSM, and vice versa for the a new “red” FSM. We basically split the original FSM into two completely separate FSMs and add to each of the FSM a new state, which we will call a “wait state”. The diagram below depicts our new construction.


Notice how for the “red” FSM transitioning in and out of the new “wait state” is exactly equivalent (same conditions) to switching in and out of the red zone of the original FSM. Same goes for the blue FSM but the conditions for going in and out of the “wait state” are naturally reversed.

OK, so far so good, but what is this good for? For starters, it would probably be easier now to choose state encodings for each separate FSM that will reduce switching (check out this post on that subject). However, the sweetest thing is that when we are in the “red wait state” we could gate the clock for the rest of the red FSM and all its dependent logic! This is a significant bonus, since although previously such strategy would have been possible, it would just be by far more complicated to implement. The price we pay is additional states which will sometimes lead to more flip-flops needed to hold the current state.

As mentioned before, it is not wise to just blindly partition your FSMs arbitrarily. It is important to try to look for patterns and recognize “regions of operation”. Then, try to find transitions in and out of this regions which are relatively simple (ideally one condition to go in and one to go out). This means that sometimes it pays to include in a “region” one more state, just to make the transitioning in and out of the “region” simpler.

Use this technique. It will make your FSMs easy to debug, simple to code and hopefully will enable you to introduce low power concepts more easily in your design.

FSM State Encoding - More Switching Reduction Tips

I promised before to write some words on reducing switching activity by cleverly assigning the states of an FSM, so here goes…

Look at the example below. The FSM has five states “A”-”E”. Most naturally, one would just sequentially enumerate them (or use some enumeration scheme given by VHDL or Veriog - which is easier for debugging purposes).
In the diagram the sequential enumeration is marked in red. Now, consider only the topology of the FSM - i.e. without any reference to the probability of state transitions. You will notice that the diagram states (pun intended) in red near each arc the amount of bits switching for this specific transition. For example, to go from state “E” (100) to state “B” (001), two bits will toggle.


But could we choose a better enumeration scheme that will reduce the amount of switching? Turns out that yes (don’t tell anybody but I forced this example to have a better enumeration :) ). If you look at the green state enumeration you will clearly see that at most only one bit toggles for every transition.

If you sum up all transitions (assuming equal probability) you would see that the green implementation toggles exactly half the time as the red. An interesting point is that we need only to consider states “B” - “E”, because once state “A” is exited it can never be returned to (this is sometimes being referred to as “black hole” or “a pit”).

The fact that we chose the states enumeration more cleverly doesn’t only mean that we reduced switching in the actual flip-flops that hold the state itself, but we also reduce glitches/hazards in all the combinational logic that is dependent on the FSM! The latter point is extremely important since those combinational clouds can be huge in comparison to the n flops that hold the state of the FSM.

The procedure on choosing the right enumeration deserve more words but this will become a too lengthy post. In the usually small FSMs that the average designer handles on a daily basis, the most efficient enumeration can be easily reached by trial and error. I am sure there is somewhere some sort of clever algorithm that given an FSM topology can spit out the best enumeration. If you are aware of something like that, please send me an email.

Continuing Education Opportunities

September means back to school for the kids... and maybe you too! With so many continuing education courses available in the city, you may find a reason to pack a pencil case for yourself.

With a range of courses, diplomas and certificates to choose from in Toronto, where do you begin? Start by asking yourself what you want to accomplish and what skills you need to do so. Then investigate the different continuing education pathways.

If fun is what you're looking for, boards of education, community colleges and universities all offer general interest courses. Even stores like the LCBO and Loblaws offer fun short-term courses -- and in the middle of a job search, having some fun is a worthy goal.

For certification and skills upgrading look into programs offered by the school boards and post-secondary institutions. These courses fill up quickly so the earlier you enroll, the better. Course calendars can be downloaded from school board web sites.

School Boards

Community Colleges


Other Learning

  • The Art Gallery of Ontario (416-979-6608) offers a variety of art classes – including some drawing and painting classes for absolute beginners.
  • If you'd love to do art but fear is getting in your way, check out Art Works Art School's (416-766-0662) A variety of drawing and painting courses are offered including the popular "Art for the Terrified".
  • The Avenue Road Arts School (416-961-1502) offers adult arts courses in singing, ceramics, mixed media, painting and drawing.
  • The Editors' Association of Canada (416-975-5528) offers courses leading to certification along with seminars on proofreading, copy editing and web editing.
  • The Etobicoke Art Group (416-622-5294) offers classes in a variety of media. You must be a member of both the group and Neilson Park Creative Centre to register for classes.
  • Harbourfront Centre (416-973-4000) offers beginner courses in glass blowing, ceramics, pottery, jewelry making and textiles
  • The Royal Ontario Museum (416-586-5797) offers short-term courses on such topics as the Medieval Longbow and Dining with Royalty.
  • The National Ballet School (416-964-3780) also offers adult classes. Not sure if ballet is for you? Take advantage of the school's "Try A Class" drop-in option.
  • The Storytellers School of Toronto (416-656-2445) Find out the "First Steps Into The Art Of Storytelling".
  • Toronto Image Works Institute (416-703-1999) delivers courses in film and digital photography, video animation and new media computer training.
  • Toronto School of Art (416-504-7910) offers daytime, evening and weekend courses in sculpture, painting, drawing and art theory.
  • Various recreation centres offer classes in painting, music and dance. Download the City of Toronto's Toronto Fun Guide or pick up a hard copy at your local recreation centre or library.

Sunday, September 23, 2007

Installing Vista Fonts in Ubuntu

Microsoft’s new ClearType fonts for Vista are great. The fonts include Constantia, Corbel, Calibri, Cambria, Candara and Consolas.
Microsoft Vista Fonts

Getting them installed in Ubuntu is a breeze, thanks to a script I found.
To install the Vista ClearType fonts in Ubuntu, you need to install cabextract first. Cabextract is a utility found in the universe repository, so before you run the following command, make sure you have universe enabled in your repository list. Once this is done, install cabextract using:
$sudo apt-get install cabextract

Then, once that is done, use this script to install the Vista fonts. Create a file called “vista-fonts-installer.sh” in your home (~) directory.
Then open up a text editor and copy and paste the script into that file.
Do a chmod a+x ~/vista-fonts-installer.sh to make the file/script executable.
Then run the script using:
$ ~/vista-fonts-installer.sh

The script downloads the Powerpoint Viewer installer from microsoft.com, and then extracts the Vista cleartype fonts using cabextract. These fonts are then installed in the ~/.fonts directory.

Please remember that the ClearType Vista fonts are not free as in they are not GPL-ed or made available under a re-distributable license. Since you are downloading the fonts from the MS website, and since you might already have a Windows XP/Vista license, this is not a crime, but consider yourself warned against the perils of supporting closed systems

Saturday, September 22, 2007


  • 教育机构提供的课程

Annenberg Media - 范围很广的视频课程,从美国的西部文化到变态心理学都有涵盖。

ArsDigita University - ArsDigita 最初是MIT的一项计算机科学计划,在关闭了之后,所有的课程资源都放在了网上。

BBC Learning - BBC的在线课程。[弥缝注:非常有用,做Projects常常用到]

BruinCast - UCLA的在线课程。

Chinese University Lectures - 中国14所知名大学的课程。

iTunes U - 众多知名大学的课程播客。

Learning From YouTube - Pitzer College 在 YouTube的课程资源。

MIT OpenCourseWare - MIT的开放课程资源。

MIT World - MIT的许多教授的讲课内容。

MITE AP Courses - Montrey Institute 的免费AP课程。

Open Learning Initiative - Carnegie Mellon University(CMU) 的开放课程。

Project Gutenberg - 免费电子书,包括了很多课程教材。

Sofia - 使用CC协议的某些课程资源。

SWTC CourseCasts - Southwest Wisconsin Technical College的在线课程。

The Open University OpenLearn - 英国首个开放性的大学课程。

UC Berkley Webcasts - UC Berkley提供的webcasts。

UChannel - Princeton资助的在线课程。

Utah State University OpenCourseWare - Utah State University的开放课程。

W3Schools - 为网络开发者提供的免费的在线tutorials。

Western Kentucky University Distance Learning Podcasts & VODcasts - WKU的远程教育资源。

  • 用户提交的课程

Connexions - 许多用户提交的课程,从人文到数学都有涵盖。

Google Video Educational Genre - 用户提交到Google Video的课程资源。

Internet Archive Open Educational Resources - 众多的课程资源,从.NET编程到中国文化都有涵盖。

Scholarpedia - 类似于Wikpedia,但是由社区选出的专家所撰写的文章。

Wikibooks - 数以千计的书籍资源。


每个人都想在有限的时间里做更多的事,但又都不想自己的生活、工作和学习乱糟糟,“时间不够”总是挂在每个人 的嘴边,虽然有句名言说:“时间就像乳勾,是挤出来的”,但是这个“挤”也是有很多讲究的。通过这么多年个人时间管理的学习和实践,我想从宏观的层次把个 人管理的脉络梳理一下,以使刚刚接触个人管理的朋友少走弯路,也借此与各位个人管理的高手切磋交流。



5个层次的重要性依次递升,要学好个人管理,必须循序渐进地经历这5个层次,只有像金字塔般的学习才能打好坚实的基础,个人管理的学习才不会走弯 路。作为 过来人,我也曾经历对理论和技巧很感兴趣而忽略工具的选择,最后从头再走一遍冤枉路,下面就是我对这5个层次的简单介绍以及学习方法的指引,抛砖引玉还望 大家共同交流。


工具是个人管理的基础,个人的生活、学习以及工作中会产生许多信息,整理并且有效的管理这些信息,作为信息载体的管理工具就非常的重要,有人用纸质的文具来记录(各类笔记本(包括moleskine),索引卡片(Hipster PDA 参考: 向您介绍Hipster PDA), 或者便条纸),比较自动化的用电脑管理(苹果,PC,Outlook,Lotus Notes,iCal,Google Calendar,Remember the Milk等等),更高级的用PDA(Windows Mobile,Palm,或者智能PDA手机等等),当然还有人用其他工具管理(普通手机、基于网页的wiki、各类小的管理程序或者干脆用大脑),更有 甚者会同时使用以上好几种工具,就比如曾经的我,单位、家里各一台电脑,Outlook和iCal上有不同的日历,Google Calendar和RTM上还散乱着不同的任务,口袋里还揣着一个Treo和WM的PDA,生活并没有因为先进的工具而变得写意,反而现在想起来仿佛是一 场噩梦。

因此,对于工具的选择,我个人的原则是没有最好的,只有最适合的,并且认准一样就坚持下去,不要三心二意地换工具或者使用超过2项工具以上的载体。 “最适 合”有3层含义,1是最适合你的生活和工作的环境,2是适合你的经济条件,3是适合你所采用的管理体系(也就是理论),关于这三个含义我想每个人可以通过 深刻的思考和分析后,秉着精简工具数量、让工具为人服务的思想,总能找到最适合自己的工具。



与工具一样,我认为同样没有最好的理论,只有最适合的理论,并且理论的学习也切忌喜新厌旧,更切忌纸上谈兵。纵观21世纪以来的各种个人管理体系理 论,从 一开始的Alan Lakein的《How to Get Control Your Time and Your Life》到Steven Covery的the 7 Habits、First things first、The 8th Habit,一直到现在简直热透的David Allen的GTD和衍生的Ready for Anything,甚至还有新出来的改良版ZTD,琳琅满目,应接不暇。

我们发生在理论学习上的问题,其实和工具的挑选问题一样,就是花太多的时间在选理论(工具)、换理论(工具)、捏合各种理论(工具),还有铺天盖地 的 GTD讨论,搞得跟学科大讨论一样,其实只要一本书加上行动去实践他就好了。这些现象恰恰违背了个人管理的初衷,本来是想把生活安排的井井有条、事半功 倍,但却浪费了大量的时间在徘徊上,因为我们始终没有理解,适合的才是最好的。



经验的累积有3种途径,个人亲身经历、小范围的交流以及网络化的交流,但是网络化的今天,很难发现一个类似美国lifehacker.com一样的 由用户 和群体专家组成的群体性的交流各种生活管理经验的中文化平台,特别是适合中国国情的经验交流内容极其匮乏,这是个人管理在中国得不到重视或者说很难形成一 种文化形式存在的主要原因。


人都有惰性,如果没有了惰性,每个人都有很强的执行力,那不需要很先进的工具和理论,社会的效率也会高的很,所以基于心理学层面的执行力培养,学会 自我暗 示以及心理层次的环境按摩对执行力的提高都有帮助,这也需要一个中文化的平台专门的研究和探讨,并且同样交流这个层次的经验。



6、关于将运行的"tesse 项目"

需求产生市场,"tesse"应运而生,我们认为,要有趣的管理好生活,必须提供这5个层次中文交流平台,我们将把理论和工具这两个层次留给网站的 wiki功能,wiki能让读者各取所需,形成自己的生活哲学,从而将网站的正文内容更关注于第三层次:经验的累积和交流,第四层次:执行力的培养和更高 层次的创造力的艺术。

Sunday, September 16, 2007


在摄影中, 分析光线需要对光源、被摄者和相机三者的关系进行综合考虑。一般说来,在这三者处于同一平面上的时候,被摄者在光源和相机中间叫作逆光,相机在被摄者和光 源中间叫做顺光。逆光是一种具有艺术魅力和较强表现力的光照,它能使画面产生完全不同于我们肉眼在现场所观察到的实际光线的艺术效果。它的艺术表现力主要 有如下四个方面:
  • 增强被摄物体的质感

拍摄透明或半透明的物体时,逆光为最佳光线。因为,一方面逆光照射使透光物体的色明度和饱和度都能得到提高,使顺光光照下平淡无味的透明或半透明物 体呈现出美丽的光泽和较好的透明感;另一方面,使同一画面中的透光物体与不透光物体之间亮度差明显拉大,明暗相对,大大增强了画面的艺术效果。

  • 增强氛围的渲染性


  • 增强视觉冲击力

在逆光拍摄中,由于暗部比例增大,相当部分细节被阴影所掩盖,被摄体以简洁的线条或很少的受光面积突现在画面之中,这种大光比、高反差给入以强烈的 视觉冲击,从而产生较强的艺术造型效果。它能使背景处于背光之下,曝光不足,使背景得到净化,从而获得突出主体的效果。同时,由于影调反差对比度较大,明 暗光线布局强烈,既可使人物面部的某些欠缺借助强光加以冲淡,又可利用背光的暗影予以隐匿,以取得扬长避短之效。

  • 增强画面的纵深感


Thursday, September 13, 2007

how to calculate the setup and hold time

Given the following design,reference the figure
1.What are the effective setup and hold times between IN and CLK in the above circuit?

A. Tsetup = 4 ns, Thold = 1 ns
B. Tsetup = 3 ns, Thold = 0 ns
C. Tsetup = 3 ns, Thold = 1ns
D. Tsetup = 2 ns, Thold = 0 ns

2.What is the maximum operating frequency of the above circuit?

A. 250 MHz
B. 80 MHz
C. 125 MHz
D. 166.7 MHz

C is the corect answer for efective setup time and hold time, max frequency is 166.7MHz.

Wednesday, September 5, 2007

Mount and Unmount ISO,MDF,NRG Images Using AcetoneISO (GUI Tool)

AcetoneISO is CD/DVD image manipulator for Linux.Using this tool it is very easy to Mount and Unmount ISO,MDF,NRG Images

AcetoneISO Features

  • Mount and Unmount ISO, MDF, NRG (if iso-9660 standard)
  • Convert / Extract / Browse to ISO : *.bin *.mdf *.nrg *.img *.daa *.cdi *.xbx *.b5i *.bwi *.pdi
  • Play a DVD Movie ISO with most used media players
  • Generate an ISO from a Folder or CD/DVD
  • Generate MD5 file of an image
  • Encrypt an image
  • Split image in X megabyte
  • Compress with High Ratio an image
  • Rip a PSX cd to *.bin to make it work with epsxe/psx emulators
  • Service-Menu support for Konqueror
  • Restore a lost CUE file of *.bin *.img

Preparing Your System

You need to install kommander ( it consists of an editor and a program executor that produce dialogs that you can execute), which is required by AcetoneISO. You also need p7zip (a file archiver with highest compression ratio) to compress and extract ISO images.

sudo apt-get install kommander p7zip

Install AcetoneISO in Ubuntu

First you need to download latest AcetoneISO .deb package from here

wget http://belnet.dl.sourceforge.net/sourceforge/acetoneiso2/AcetoneISO2_1.0.2-all.deb

Now you should be having AcetoneISO2_1.0.2-all.deb file you need to install this file using the follwoing command

sudo dpkg -i AcetoneISO2_1.0.2-all.deb

This will complete the installation

Now you need to go to Application > Accessories > AcetoneISO

Once it opens you should see similar to the following screen