2008/08/15

研究的精神

兴趣是最好的老师, 世界上没有完美的系统,电子车票系统也是如此。 这个PDF里讲述了一个MIT的三位学生发现了波士顿地铁电子车票系统的漏洞的故事。 国内的这种研究的精神似乎少了一些! 我们的教育导向太死板了!

2008/08/14

低价 PC or 低功耗 PC

随着Intel Atom的诞生, 低价PC或者低功耗PC的大潮开始涌动了! 回过头来说,低功耗PC也许还不错,但是低价PC这也许又不是Intel真正想要给我们这些消费者的! 看看 ccthere.com 上的文章!
特别是下面的这段文字:
“Intel每年销售1亿多片CPU,销售额为350-400亿美元,平均每片价格为200多美元,毛利润150美元以上。假设Intel为低成本电脑推 出价格为20美元左右的CPU,毛利润为每片5美元左右,每年销售2亿片,销售额为40亿美元,毛利润为10亿美元。如果这2亿片低成本芯片的销售不影响 原来的1亿多片的芯片销售,则Intel是愿意做的;但如果由于这2亿片低成本芯片的销售使得其他处理器的销售减少了2000万片,则Intel销售额减 少40亿美元,利润减少30亿美元。”(《龙芯之火,可以燎原》,2007年12月)
市场经济,利益至上 Intel Atom 的低功耗,低廉的价格,低下的性能都是Intel所期望的! Intel从一开始就没有打算用 Atom 来作为低价PC的CPU来销售,她的目标是低功耗PC。以至于Atom在这个领域内热卖的时候,Intel不但没有增加产量,而是控制产量提高售价,因为Intel比谁都清楚Atom的毛利太低,卖的太多不赚钱,既然它热卖那就索性提价提高毛利!

AMD也有他自己的应对策略。AMD比不了Intel,她没有太多的研发实验室,没有太多的工厂,不能像Intel那样同时搞很多的不同设计,既然不能用新的对应的产品和你比,那就用已经有的老产品改头换面来跟你比,反正最终的效果是一样的。 当然了,不是在低价PC,AMD的价格已经够低了; 只能在低功耗方面做文章, 这个Mini-780G就是一个不错的模式!
“功耗吗确实是你Intel Atom低,但是我的总功耗也不高,也就是个70/80W(比Atom高30W),但是性能比你强1倍,1080p完全没问题,不像你720p都吭吭哧哧的!为了看高清又有谁会在乎多点这一个灯泡呢?”
博弈啊!!!

2008/08/07

How to Write a Good Technical Documentation

Writing good documentation always hard! But you can make it better.

DO:

  • Fully understand the situation, and know the 5 W's:
    "Who, What, Where, When, and Why".

  • KISS: Keep It Simple and Stupid
  • Write agenda before you start

  • Keep the technical integrity
  • Add reference links for all the shared knowledge

  • Use diagram to show the complex logical
  • Use table to show the structured information
  • Compare the different design alternatives
  • Use bulletin and numbered list to express the idea

  • Write a good looking document
  • Have a good template
  • Use named style to control the format
  • Always do spelling/grammar check
  • Tidy your documentation

  • Ask for comments from others
  • Track changes between the reversions

DON'T:
  • Write long sentence or paragraph
  • Be afraid to delete some pieces
  • Be afraid to reconstruct sections
  • Be afraid to spend more time

Miscellanea:
  • Ask for others' help, and help others
  • Eats your own dog food
    Read it once more when you feel it were finished

2008/07/15

The smallest C program to print the biggest prime number

这个世界上,令人敬仰的人太多了~~~~ Fabrice Bellard 就是一个这个就是他的小程序,用来计算目前已知的最大质数的程序一共只有475字节,是一个一行程序。
可以通过任何C编译器编译。



int m=754974721,N,t[1<<24],a,*p,i,e=16804127,j,s,c,U;f(d){for(s=1<<24;s/=2;d=d*1
LL*d%m)if(s<N)for(p=t;p<t+N;p+=s)for(i=s,c=1;i;i--)a=*p+p[s],p[s]=(m+*p-p[s])*1L
L*c%m,*p++=a%m,c=c*1LL*d%m;for(j=0;i<N-1;){for(s=N/2;!((j^=s)&s);s/=2);if(++i<j)
a=t[i],t[i]=t[j],t[j]=a;}}main(){*t=2;U=N=1;while(e/=2){N*=2;U=U*1LL*(m+1)/2%m;f
(362);for(p=t;p<t+N;p++)*p=*p*1LL**p%m*U%m;f(415027540);for(a=0,p=t;p<t+N;)a+=*p
<<(e&1),*p++=a%10,a/=10;}while(!*--p);t[0]--;while(p>=t)printf("%d",*p--);}


格式化之后,它看起来这样:


#include <stdio.h>
#include <stdlib.h>

int m=754974721,N,t[1<<24],a,*p,i,e=16804127,j,s,c,U;
f(int d){
for(s=1<<24;s/=2;d=d*1LL*d%m)
if(s<N)
for(p=t;p<t+N;p+=s)
for(i=s,c=1;i;i--)
a=*p+p[s],p[s]=(m+*p-p[s])*1LL*c%m,*p++=a%m,c=c*1LL*d%m;
for(j=0;i<N-1;){
for(s=N/2;!((j^=s)&s);s/=2);
if(++i<j)
a=t[i],t[i]=t[j],t[j]=a;
}
}
main(){
*t=2;
U=N=1;
while(e/=2){
N*=2;
U=U*1LL*(m+1)/2%m;
f(362);
for(p=t;p<t+N;p++) *p=*p*1LL**p%m*U%m;
f(415027540);
for(a=0,p=t;p<t+N;) a+=*p<<(e&1),*p++=a%10,a/=10;
}
while(!*--p);
t[0]--;
while(p>=t)printf("%d",*p--);
}




计算输出的结果有 9M 之巨。
另外说一句,这个哥哥 72年出生,今年36岁。

2008/06/27

RPC forever / 永远的 RPC

I put the RPC (Remote Procedure Call) as title, but it didn't exactly talking about the RPC. :) Sorry! Indeed it is talking about the distribution computing, but this one is too large, sometimes, it just causes confusing. ;)
When the computer networks born in 1970s, distribution computing was coming in the vision, from that time to now. Variety of RPC/IPC mechanism were invited into the world. I think at least some of them are very familiar with you:
  • BSD Socket
  • telnet
  • FTP
  • SMTP/POP3/IMAP
  • NNTP
  • RSH/RLOGIN
  • ONC-RPC / DEC-RPC
  • NFS
  • HTTP
  • XMPP
  • SSH
  • CORBA/IIOP/GIOP
  • DCOM/COM
  • Java/RMI
  • SOAP/Web Service
  • XML-RPC
  • JSON
And so one! In the computer worlds, people do the similar things time and time again.
Because the IT industry always need the fresh blood!!!
Something else changed, you also want to change yours. :)

人都是喜新厌旧的!

2008/06/10

iPhone 3G is coming! 智能手机们都该洗洗睡了

Apple (TM) iPhone (TM) 3G 版本 Zippy 2008年6月9日在旧金山发布。


看看这次 Steve Jobs 给我们带来了什么? 8G内存的版本价格为 $199 = ¥1400 : 3G UMTS, Wifi, Apple's design.
我看所有高高在上智能手机都该洗洗睡了!

Apple 打得起这个价格战, 早就有分析人士估计过 iPhone的成本价格, 不过一百多刀。 那还是市面上的元器件价格, 就凭Apple的议价能力,还有进一步的利润空间。 即便保持当前的这个价格水平, Apple 仍旧能有 40%左右的毛利。 而iPhone 的研发成本早就通过第一批 iPhone $499 的暴利赚个八九不离十。 目前Apple要做的就是铆足力气,甩开所有潜在的竞争对手, 进而利用 iPhone 这个平台展开其他的增值业务。 最直接的说就是进入企业应用市场,iPhone 直接支持Microsoft Exchange Server, 支持iChat, BlackBerry 这次真的危了!

但从所谓高端智能手机这个层面来说,$199 的价格,不但让 Nokia, BlackBerry, SonyEricsson, Samsung, Motorola, LG 等厂商汗颜,恐怕就连那些国内的黑手机,山寨兄弟们也要卧倒一大片了。

市场规律就是这样, 技术优势总是属于后来者的, 就看你能不能把握了!

2008/06/05

不得不说的 Safari + WebKit

WebKit 引擎的发展在 Apple 的催动下,简直是一日千里。 随着 Safari for WindowsXP 的发布,M$ Windows用户也能感受一把 WebKit 的快感。

感觉上 Safari 本身并没有什么特别之处, 从应用程序框架的角度来说远不如 Mozilla Firefox 来的灵活。但是 WebKit 引擎确实不得不让人刮目相看。简单来说,WebKit 有如下的优势:
1, 浏览速度快
特别是 SquirrelFish 的 JavaScript 引擎发布之后,Safari简直跟飞一样。 而且下载的速度也巨快!

2,字体渲染效果好
所有的字体显示都采用了 anti-aliasing, 当然不是所有人都喜欢这样的字体效果,八成会说它显示的模糊。不过目前来说确实能够和内嵌点阵字体的SimSun一争高下。

3, 标准
当前的 Safari 3.1.1 + WebKit r34367 可以顺利通过所有的 acidtests, 特别是 Acidtest3 这个高难度动作, WebKit 不但可以全部完成而且运行飞快:< 2s 令人惊叹啊!

4, 超炫的 Web Inspector
Safari 内置的 Inspector 简直就是一个综合的 Web 应用集成开发工具。

不过也有些缺点:
1, Plugin 支持的问题还比较多
基本能工作,但是不稳定!

2,第三方应用太少

3, Safari 的 tab 功能一般

2008/05/13

Using :vimgrep inside VIM

Grep is really power tool under the UNIX domain. From Vim 7, an internal `grep` was provided by Vim.

Using `:vimgrep` is fairly easy, just in command mode, type in
:vim[grep][!] /{pattern}/[g][j] {file} ...
The `grep` result will be put into the `quickfix` list. The `:cnext`, and `:cprevious` can be used to navigate the `quickfix` list.

Let's do something to help us! Put this into your ~/.vimrc file.
" We can navigate the list by using the  and 
map <F3> :cnext
map <S-F3> :cprevious

After that, you will be able to use the <F3> and <shift>-<F3> navigate the `quickfix` list easily. :D

2008/05/09

Tip for trouble shooting the VIM syntax highlight

It is easy to do a VIM syntax highlight file, while it is a little difficult for you to do the trouble shooting, especially when you do a recursive pattern match with `contains`, `nextgroup` keywords.

Here is a small tip can help you a little bit.

put this into your ".vimrc" file

" display the syntax name under the cursor
map <F12> :echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name")

For the next time, when you met some syntax highlight error, you can key in <F12> at the error place, VIM will tell you "what kind syntax ID that it is thing under the given position".

Keep fun! :)

2008/04/08

必须了解的"时间管理"原则

1、相等分配。任何人都没有足够的时间,然而每一个人又拥有自己的全部时间。这就是著名的“时间悖论”。时间是一种被相等地分配给所有人的资源。

2、错误的感觉。管理者的时间很少花费在他自己想要花费的地方。这种想法捉弄了时间的所有者,使他错误地认为,他的时间正用于该用的地方。

3、时间分析。每日活动记录至少持续一周,每过15分钟填写一次,这作为有效时间分析的基础是必要的。这种活动至少每半年应该重复一次,以免回复低劣的时间管理方式。

4、预料。事先有所准备的活动一般来说比事后补救的活动更为有效。小洞不补,大洞吃苦。避免发生以外的最好办法就是预料可能发生的以外事件,并为其制订应急措施。我们假定,如果事情要出错,那就无法避免。

5、计划。绝大多数难题都是由未经认真考虑的行动引起的。在制定有效的计划中每花费一小时,在实施计划中就可能节省3-4小时,并会得到更好的结果。如果你没有认真作计划,那么实际上你正计划着失败。

6、每日计划。每日计划对于有效地利用个人时间是必不可少的,它应该于前一天下午或当天开始时制订出来,并与近期的目标和活动相一致。

7、目标。较有效的结果一般是通过对既定目标的刻意追求来达到的,而不是依靠机会。目标管理的基本概念就来源于这个已被证实的原则。

8、优先次序。应该按照优先次序对各项任务进行时间预算或分配。不同的是很多管理人员花费时间的数量往往与他们任务的重要性成反比。

9、最后时限。给自己规定最后时限并实行自我约束,持之以恒就能帮助管理者克服优柔寡断、犹豫不决和拖延的弊病。

10、集中。在人们有组织的努力中,少数关键性的努力(大约20%)通常能够产生绝大多数结果(大约80%)。这条原则也称为“20/80定律”。有效的管理人员,总是把他们的努力集中在能够产生重大结果的那些“关键性的少数活动上”。

11、效能与效率。假如执行的是错误任务的话,或者把任务放在错误的时间里去执行,以及毫无目的的行动,无论效率怎样高,最终都将导致无效的结果。效率可以理解为正确地做工作。效能可以理解为正确地做正确的工作。所谓有效的活动,就是指用最少的资源,包括时间,来得到最大的效果。

12、活动与效果。管理人员往往忽视目标,或者忘记预期的效果,而把精力完全集中在活动上。终日忙忙碌碌渐渐成为他们的目标。这些管理人员趋向于活动型而不是效果型。他们不是去支配工作,而是往往被工作所左右。他们把动机误作成就,把活动误作效果。

13、最佳效果。用最小的努力获得最大的收益,这就是最佳效果。

14、不切实际的时间预算。管理人员往往对完成任务所需要的时间抱乐观态度。他们也往往希望别人能够更快地完成任务。所以有了墨菲的第二定律“每件事情做起来都比原来想象的要多花时间”。可见,管理人员更倾向于自己接受和期望别人做出不切实际的时间预算。

15、实现的可能性。预期事件出现的可能性直接伴随实现它的有计划的努力而增加。

16、紧急任务专制。管理人员常常处于紧急任务与重要任务互相推挤的状态中。紧急任务要求立即行动,就使得他们没有时间来考虑重要任务。管理人员就是这样不知不觉地被紧急任务所左右,并承受着时间的无休无止的重压,这使他们忽视了搁置重要任务所带来的更为严重的长期的后果。

17、危机管理(反应过度)。管理人员往往低估问题,不善预料问题的复杂性,或者遇到所有问题都反应过度,彷佛碰到危机。这种危机管理和消防式工作的倾向往往造成过分忧虑,削弱判断力,导致仓促决策和浪费时间精力。

18、选择忽略(有限反应)。对各种问题和需求的反应要切合实际,并要受制于情况的需要。有些问题如果你置之不理,他们消失了。通过有选择地忽略那些可以自行解决的问题,大量的时间和精力就可以保存起来,用于更有用的工作。

19、机动性。安排个人时间的程度上应有机动性,以便于应付个人无法控制的力量。总之,时间安排不要过满,也不要过松。

20、问题分析。不区分问题的原因和现象,结果必然丢失实质性问题,而把时间和精力耗费在表面问题上。

2008/04/07

Intel Atom

当初 Intel 在 2006年6月,果断地卖掉了移动处理器 XScale 以及相关业务,就给人一种感觉—— Intel 要有新的动作了! 在蛰伏了一年零十个月之后 Intel 带着 Atom(原子)处理器, 又重新回到了手持移动计算领域!

Atom 处理器与 XScale 处理器不同,XScale 是一个基于ARM5 的高端智能手机以及PDA的处理器,它是一颗基于ARM架构的RISC处理器,在这单生意中 Intel 不过是一个购买了 ARM Ltd. 公司专利的生产商。而 Atom 的则是 Intel 自家的x86架构,在x86架构占据统治地位的PC领域,Intel可谓顺风顺水!这一次 Intel 利用自己 45nm的先进生产工艺, 把x86带入了 Mobile Internet Devices (MIDs) 领域。

于此相呼应的, Microsoft 已经延长了 Windows XP 的支持时间到 2010年, 这纯粹是为了 x86 的 MID 设备加料啊~~~

看看 Intel Atom 都带了些啥:

• Supports Hyper-Threading Technology 2-threads
• Support for IA 32-bit architecture
• Intel® Virtualization Technology (Intel® VT)
• Intel® Streaming SIMD Extensions 2 and 3 (Intel® SSE2 and Intel® SSE3) and Supplemental Streaming SIMD Extensions 3 (SSSE3) support

俨然是一个 Pentium4!

2008/04/02

Wireshark 1.0 released

In my mind, Wireshark ( and its predecessor -- Ethereal) kept in version 0.9x.x for a very long time. Now the Wireshark v1.0 were release finally at Mar 31, 2008. Check the http://www.wireshark.org/news/20080331.html for details.

2008/01/08

Oracle Database PL/SQL User's Guide and Reference

非常不错的PL/SQL的介绍,文字虽然不多,但是足可以让你对PL/SQL的基本功能和语法有了大致的了解。抽象水平非常高啊~~~

下回打印一份随身携带阅读!

2007/07/13

2007/06/21

Installation Debian/Ubuntu over SSH

By using the debootstrap, it is possible for us to install the Debian or Ubuntu inside an Linux machine without a booting from Floppy/CD/USB/Net. It is really funny.

2007/05/07

Yahoo! UI Library (YUI)

Yahoo! UI Library (YUI) an BSD licensed JavaScript UI library released by Yahoo!.

I play with it for a while, at the first glance, it looks like a Dojo Toolkit. But unlike the Dojo, all the functions are very well documented with JSDoc. For all the sub-modules, full/debug/min versions are provided for purposes. But it only provides a subset features of Dojo. :)

So YUI is:
  • Well documented;
  • Well organized object hierarchy;
  • Less features

2007/05/06

Perl 5.8 PerlIO feature

With the new PerlIO feature and Unicode support in Perl 5.8, it is possible to do the internal encoding change with only a few lines of code.

Please check the code below. It will be able to read the GBK input from STDIN and convert it to UTF-8 to STDOUT. :)


#!/usr/bin/perl -W

use encoding "gbk", STDOUT => "utf8";
while(<>){print};


Power and Simple. :D

又长了一岁~~~

又长了一岁,为自己庆祝一下! :D

2007/04/09

Waltzing with Bears

最近每天坐在城铁上,就会翻看几页 《与熊共舞》 其中第14章,风险发现的详细过程 ,里面对企业里使人们对风险三缄其口的原因。 说起来这确实是很普遍存在的。

因为在这些企业里,有一些根深蒂固的不成文的规定:
  1. 不要成为有消极想法的人;
  2. 不要指出问题,除非你有解决办法;
  3. 不要说任何事可能是一个问题,除非你能证明它是;
  4. 不要做拆台的人;
  5. 不要明确指出问题,
说起来大致如此......

BlockChain 相关电子书

@copyright of Sam Chadwick   - https://thehub.thomsonreuters.com/groups/bitcoin/blog/2017/09/10/blockchain-paper Blockchain Papers A c...