2008年4月29日星期二
Hans Reiser
由Reiser开发的ReiserFS文件系统是一种性能不错的Linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数 据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。高性能 文件系统Reiserfs向来都是Linux fans眼中的挚爱。
目前经过为期6个月的审判和为期3天的陪审团审议,虽然尸体并未找到,但是约有60名证人证实了Reiser和他的妻子不合。另外检察官举证的主要事实是,Reiser谋杀后拆除和丢弃了他的本田CRX的乘客座位,然后对车子进行清洗,在地面上留下了足有一英尺的水迹。
而Reiser则解释说他只是想清理车子的内部,并且忘了关水龙头。另外,Reiser扬言要删除了他电脑硬盘的所有内容,以发泄对政府没收他所有财产的不满。
Reiser的妻子Nina最后一次露面是在2006年9月3日,警察在6天后发行了她的面包车,并且找到了失踪的本田车座椅及两本书。警察也发现睡袋上沾满了血迹。目前Reiser将面临判决,罪名一级谋杀罪,可能获得25年的监禁。
出处: http://news.mydrivers.com/1/104/104832.htm
建议给他台电脑在监狱里用,继续完善 ReiserFS :)
2008年4月28日星期一
FireFox iMacros
iMacros 是 FireFox 的一个扩展插件,和其它的地方应用的宏一样,它可以记录你在用 FireFox 浏览网页时所做的操作(打开链接、登录账号、填写表单……),然后自动执行。非常酷的功能。公司的 CRM 和 MSS 做得确实糟糕,不仅慢,而且离开 ie6 就转不起来了。如果 CRM 和 MSS 能在 FireFox 下使用的话,有了这个 iMacros ,每天的工作量要减少 60% 。
国内的用户界面设计太依赖微软平台了,盖子的商业头脑没的说,当计算机刚开始在世界范围内普及的时候,准确地抓住了市场机遇。有些人总是说 MS windows 占领市场是因为它的易用性。完全不是这回事!说到易用性,Mac OS 和 Linux 绝不比 windows 差。 MS windows 是借了 IBM x86 的东风,才能迅速传播开,在这一点上 Apple 就比较死脑筋,抓着自己的硬件平台不放,给了 MS 可乘之机,不过这也正体现了 Apple 对品质和理想的追求。而 Linux 则是一方面没赶上计算机普及的黄金时期,第二也是受了用户素质的影响,在中国体现得尤为明显。中国计算机水平比起发达国家有很大差距,绝大部分用户主观地认为 GUI 比 CUI 易用,当然 GUI 也更吸引人的眼球,再者国内 99% 以上的用户是把计算机当作 VCD、DVD、游戏机来使用的,从这一点上来说 GUI 是理所当然的选择。还有一个我认为就是人的畏难情绪,就像年纪比较大的人学打字,几乎都会选择学习笔画输入法,大部分的原因并不是因为五笔输入法的速度,而是因为这些人大都没有学过拼音,并且畏惧学习一个新的技能。写字大家都会,笔画输入说起来都能理解。
想到输入法这个问题,我是极力推荐新手学习拼音输入法的,虽然从速度上五笔字型仍然更快一些。拼音输入法经过多年的改进,输入速度也有了大幅度的提高,超过 100字/min 不是什么难事,与五笔字型的差距并不大。在下面几个方面有很大的优势:对于会拼音的人,拼音输入不需要学习即可使用;对于不会拼音的人,学习拼音的好处是显而易见的,现代社会中处处都用得上,且不说网络域名、纠正读音,就连商铺的招牌也有很多是拼音写的,查字典的速度都要快很多。学习拼音可谓是一劳多得,事半功倍,也正是拼音的广泛使用,在日常生活中不知不觉的就在逐渐学习巩固,永远不会忘。而五笔字型除了在计算机中做汉字输入外,其它没有任何用处,学习起来还需要记忆大量的字根分布,拆字规则,个别的特殊编码,对于不经常使用计算机的人来说,很容易忘记。
其实拼音学起来并不困难,连幼儿园的小朋友都能学会,成年人还能学不会?就算是上了年纪记忆力差点,比起记五笔字根不知道要容易多少。
……从 iMacros 扯到输入法上来了, ^^
2008年4月26日星期六
about TDCDMA
呵呵,移动现在开始上 TD 了,它即将遇到联通曾经遇到过的和现在仍然没有解决的所有困难。双网造成的业务复杂性、用户对TD终端的接受程度、两个网络的定位。以前移动发明的用来抨击联通CDMA2000手机的名词"专机专卡",TD也同样面临。
比起已经运营了几年的 CDMA2000,TD有更多的BUG、网络建设更不完善,需要投入更大的人力物力,可能这也是把TD给移动运营的原因吧。
TD 现在唯一的优势是:它是国内仅有的3G网络,有最高的无线带宽。要建设好TD网络只有充分发挥这个优势。但是它受i到几方面的威胁:CDMA2000、
WiFiMax,而且相对于TD, CDMA2000 和
WiFiMax更廉价。所以综上所述,TD建设的怎么样、移动的辉煌和沉沦完全取决于信产部(现在的工信部)怎么发牌照、什么时候发牌照。
还有TD这个畸形网络的漫游问题,这个我还闹不太清楚。
2008年4月25日星期五
Google:德鲁克式的理想
转下面这篇文章是因为我喜欢 Google,它的产品非常酷。我最常用的有 Gmail、picasaweb、blogger、igoogle、calendar
原文作者:Rick Wartzman 译者:ilovesnoopy
Google近期发布了异常亮眼的第三季度财务数字:利润增长46%,收入增幅高达57%.消息发布后,其每股股价大涨6.14美元,已超过639美元. 但是,还有另外一组数字令我印象更加深刻:Google在加州山景城的工作区有17个咖啡馆,员工可在这些咖啡馆免费享用三餐和茶点,鼓励工程师将每周 20%的工作时间从事一些他们感兴趣但并非其核心工作内容的公司内部项目.
Google建立了一种比我所了解的任何一家企业都更加德鲁克式的工作环境——更准确地说,是早期德鲁克式的.
当然,很多公司(也包括其它类型的组织)都赞同这些原则,并在不同的程度上奉行他们.
Google 的不同之处在于,它将这些原则发挥到了最大限度,并且不仅简单体现在它所自诩的福利名单上,这个名单包括——除了提供免费美食以及鼓励梦想外——现场理发 和加油(非免费),医药健康检查,有补贴的健身课程,电影专辑和讲座,各式各样的兴趣小组,遍及湾区的班车服务,社交和家庭聚会,拉里•佩奇、谢尔盖•布 林和埃里克•施密特等高管经常会参加的每周五的"市政厅"和闲聊聚会,为某人对公司做出的贡献以及对购买混合型车的丰厚现金奖励.
一个自我管理的"村落"
实际上,在以上提及的所有事情之外,最使Google符合早年德鲁克所奉行的"公司不仅仅是一个经济工具也是一种社会制度"的信条的,是这个互联网公司所营造出来的那种涵盖一切的工作气氛.
更 具体地讲,德鲁克对于工业时代的愿景中包括建立一个流水线工人能够自我管理多方面事务并且因此获取大大超出薪酬的回报的"工厂社会".他在1949年出版 的著作《新社会》中写到,工人们需要"与同事建立良好而紧密的群体联系,与主管建立良好的关系,进一步的,也是最重要的,作为一个人,获得认同、社会威望 和满足感、建立社会地位和职能".
Google在本质上讲并不是一个"工厂",但是员工们在描述他们的高科技公司的时候所进行的描述与德鲁克的惊人地相似.在大约两年前加入公司的机械工程师丹•莱特纳说:"它就像个村落."
虽然Cafe Pintxo提供的午餐和晚餐、小菜组合,亚洲风味的Pacific Cafe和Googleplex(总部所在地)的任何其它小餐馆都非常棒,但最能刺激莱特纳胃口的还是同事之间同志般的友谊以及创造性的讨论.
莱 特纳说,这种情况并不少见,进餐时的谈话中会发展出非常重要的合作,并帮助他认识一些之前从来都没有见过的同事.每当有这样的情况发生,他会开始积极奔 走,用他那20%的时间与家得宝联系(费用由Google偿付,这是一项基础政策,不须管理层的批准),根据他和一些同事的创意生产样品,并检测这个创意 的有效性.
一种能够创造额外收益文化
最好的创意总是能够被推送到管理者那里,如果他们被批准实施,就能够变成正式的项目并获得资金支持.而那些不足以应用的创意通常很快也就被遗忘了."这是非常有竞争性的地方"拉特纳说,"并不总是富有同情心."
Google 不会透露它为众多的员工福利所支付的代价,一位女性发言人指出,尽管公司在计算方面有非常突出的优势,但是也无法对生产力效用进行量化.然而,这种文化显 然为公司带来了额外的收益.Gmail、Google News、Google Earth上Sky的应用,都是从那些员工在20%工作时间里进行的项目中脱颖而出的.
然而,对拉特纳来说,即使是那些最终没有被采纳的创意也有极大的价值.他表示,仅仅是推行创意实施的过程,就证明了在Google的15000多位雇员中,有许多人的身上同时兼备了"企业家和艺术家"的双重特质.他补充到,它满足了"每个人创造的需要".
文化增强可能带来的效果
需 要注意的是,提供所有的这些福利在一切正常运转以及财务前景非常乐观的情况下是相对容易的.相对于自矜于现有的成就,Google更应该对未来的可能的挫 折作足够的准备——就像无数曾经看起来在商场上无往不利的公司所经历过的一样——它在所有这些方面的承诺是经得起考验的.
随着时间过去, 德鲁克自己放弃了"工厂社会"的构想,悲观地认为,大多数公司会满足于维持底线而不做更多改进.想要在美国或其它地方寻找一个有劳动保障的工厂社会的范本 也越来越困难.在1980年代后期,德鲁克开始在非盈利组织中寻找一个"象社会一样能够给人目标和方向"的范本.
也许德鲁克过早地放弃了工厂社会模型,但谁又能想到在他在半个多世纪前所提出的一个概念会在2007年才被一个世界上最有超前意识的公司大胆地实现了呢?
2008年4月24日星期四
size_t and ptrdiff_t
#include <cstddef> 也可以使用 size_t 类型。
两个指针减法操作的结果是标准库类型(library type) ptrdiff_t 的数据。与 size_t 类型一样, ptrdiff_t
也是一种与机器相关的类型, 在 cstddef 头文件中定义。 size_t 是 unsigned 类型,而 ptrdiff_t 则是
signed 整型。
这两种类型的差别体现了它们各自的用途:size_t 类型用于指明数组长度,它必须是一个正数;ptrdiff_t
类型则应保证足以存放同一数组中两个指针之间的差距,它有可能是负数。
2008年4月23日星期三
LaTeX-Suite
又发现了一个好东西:LaTeX-Suite ,编辑 LaTeX 的 VIM 插件( Homepage:
http://vim-latex.sourceforge.net/ )。真是 欲善其事,必先利其器,有个这个插件,以后写 LaTeX 便如虎添翼了。
---------------------------------
\include {filename} 处理大型文档时可将源文件分成几个部分,这个命令可将名为 filename.tex 的文件包含进当前文档。并在新页上排版包含进来的文本。
\includeonly{filename, filename...} 用在导言区,用来指定仅仅读入某些 \include 文件。
\input{filename} 此命令只是简单地将指定的文件包含进来,没有其它的限制。
LaTeX 支持三种预定的页眉、页脚(header/footer)格式,称为页面式样(page styles)。命令 \pagestyle{style} 中的参数定义了所使用页面式样。下面是预定义的页面式样:
----------------------
plain 页眉为空,页脚由居中的页码组成。这是默认式样
headings 页眉由当前的章节和页码组成,页脚为空
empty 页眉、页脚均为空
---------------------
可用命令 \thispagestyle{style} 改变当前页的页面式样。
2008年4月22日星期二
C++ Default Parameter Values
C++ 函数默认参数两条规则:
1. 默认值的决议(resolve)操作由最右边开始进行。若为某个参数提供了默认值,那么这个参数右侧的所以参数都必须也具有默认值。
2. 默认值只能指定一次。可在函数声明处,亦可在函数定义处,但不能在两个地方都指定。函数声明通常置于头文件中,头文件可为函数带来更高的可见度(visibility),通常将默认值至于函数声明处。
2008年4月21日星期一
Header file: limits
==== 2007年10月31日11:38 发布于 redspid.blog.163.com ====
C++ 内建类型取值范围:
1 # include <iostream>
2 # include <limits>
3
4 using namespace std;
5
6 int main() {
7 // C++ 内建类型的 最大、最小 值
8 long unsigned int i = numeric_limits<unsigned int>::max();
9 long double j = numeric_limits<double>::min();
10
11 cout<<i<<endl;
12 cout<<j<<endl;
13 }
2008年4月20日星期日
Thunder's cache
原来还设了 DOS 隐藏属性,真是恶搞,这样用户都弄不清硬盘怎么就满了。
可以修改注册表自动清除 cache 文件,不过我对注册表不感冒,用 perl 搞定它。
use File::Find;
my $directory = 'd:\vod_cache_data';
find(sub {unlink if (-f)}, $directory);
2008年4月14日星期一
C++ sort
1 # include <iostream>
2 # include <string>
3 # include <vector>
4 # include <fstream>
5
6 # include <algorithm>
7 // 泛型算法 sort(container.begin(), container.end());
8
9 using namespace std;
10
11 int main() {
12 vector<string> ctn(6);
13
14 // 打开待读取的文件 并测试
15 ifstream ifile("d:/res.txt");
16 if (! ifile) return 1;
17
18 for (int i=0; i<6; i++)
19 ifile>>ctn[i];
20
21 // 排序
22 sort(ctn.begin(), ctn.end());
23
24 // 输出排序后结果
25 for (int i=0; i<6; i++)
26 cout<<ctn[i]<<endl;
27
28 return 0;
29 }
2008年4月12日星期六
cctype Header
isalnum(c) 如果 c 是字母或数字,则为 true。
isalpha(c) 如果 c 是字母,则为 true。
iscntrl(c) 如果 c 是控制字符,则为 true。
isdigit(c) 如果 c 是数字,则为 true。
isgraph(c) 如果 c 不是空格,但可打印,则为 true。
islower(c) 如果 c 是小写字母,则为 true。
isprint(c) 如果 c 是可打印的字符,则为 true。
ispunct(c) 如果 c 是标点符号,则为 true。
isspace(c) 如果 c 是空白字符,则为 true。
isupper(c) 如果 c 是大写字母,则为 true。
isxdigit(c) 如果 c 是十六进制数,则为 true。
tolower(c) 如果 c 是大写字母,则返回其小写字母的形式,否则直接返回 c 。
toupper(c) 如果 c 是小写字母,则返回其大写字母的形式,否则直接返回 c 。
2008年4月11日星期五
Shuang Mian Jiao
2008年4月9日星期三
"Ruminations on C++"
2008年4月8日星期二
Red Hat package manager
1. 安装、升级和更新
rpm -i 安装一个新的软件包。
rpm -U 升级一个系统中已有的软件包,如果软件包不存在就不进行安装。
rpm -F 更新一个软件包,如果软件包不存在就不执行安装。
上面几个参数往往和其它一些参数配合使用,例如显示安装过程中的信息及显示安装进度等:
-v 表示安装时显示各种信息,如安装路径及安装了什么内容。
-h 会在 rpm 包安装时显示安装的进度条,这可以监视系统安装进程。
因此,一般想要安装软件包,最常用的命令形式就是 -Uvh 三个参数。
2. 删除
删除软件包的命令是: rpm -e example
这个命令中使用的是软件名,而非软件包全名。
3. 查询
不仅可以查询系统中已经安装的 rpm 软件包,还可以查询某个 rpm 软件包安装文件中包含的文件清单。
rpm -qa(query all) 查询已安装的软件包列表。
rpm -q example 查询某个已安装的软件包(example)的信息。
rpm -qlp example-1.2.3.i686.rpm 查询未安装的软件包的信息。
rpm -pl example 查询已安装的软件包的信息。
rpm -qf filename 查询 filename 文件属于哪个包(filename为完整路径文件名)。
rpm -qip example-1.2.3.i686.rpm 查询软件包附加信息。
4. 验证
验证一个软件包,就是比较原始包和已安装包中文件的信息。即:每个文件的大小、MD5 校验码、访问权限、类型等信息。常用命令有:
rpm -Vf example 验证包含某个特殊文件的软件包
rpm -Va 验证所有已安装的软件
2008年4月7日星期一
Applications of Modulus computing 1
==== 20071028 21:11 发布于 redspid.blog.163.com ====o(∩_∩)o... 看看上面用 vim 生成的语法高亮代码,怎一个酷字了得!
1 # include <iostream>
2 # include <string>
3 using namespace std;
4
5 int main() {
6 const int line_size = 4;
7 int counter = 1;
8 string array[] = {"compiler", "C++", "Perl", "GNU", "Linux",
"free", "OpenSource", "software", "Debian",
"hurd", "kernel"};
9
10 int out_time = sizeof(array) / sizeof(array[0]);
11
12 for (int i=0; i<out_time; i++) {
13 // 输出一个字符串后判断当前行是否输出了 line_size 个字符串
14 // 否,则输出一个空格;是,则换行
15 cout<<array[i]<<(counter % line_size ? ' ' : '\n');
16 counter++;
17 }
18
19 return 0;
20 }
2008年4月6日星期日
CUI v.s. GUI
整天在网页上用鼠标点来点去,受够了垃圾软件的困扰。如果现在公司的程序能提供 CUI 的话,每天的工作恐怕只需要 10 分钟就能搞定了。
GUI 与 CUI 的争论由来已久。从最近的市场来看,GUI 似乎胜出了,其实两者各有利弊,程序开发者选择不好真是作孽啊。
GUI 更有利于使用者(人类)获取丰富的信息。不同的色彩、字体、各种各样的图片、动画的组合相对于一行行的文字来说毫无疑问更能吸引人的目光,也表达了更加丰富的信息。同时,GUI
在一部分领域有着不可替代的作用,例如图形图像制作、视频等。但是,它也有着与生俱来的缺陷:可操作性、移植性、灵活性、兼容性 都远远差于 CUI 。
在我看来,对于绝大部分软件来说,更好的选择应该是 CUI ,而非当今流行的GUI 。但是随着 windows 的流行,日常应用的 CUI 软件少之又少,我是深受其苦。
表明看来 CUI 软件比 GUI 上的操作要繁琐一些,需要记忆一些命令、参数,输入的时候也容易出错。其实不然,对于日常使用的程序来说,应该着眼于长期的效率。就像使用文本编辑器,你说是 windows 的记事本好用,还是 vim 好用?也许初学者需要花上一、两个小时才能顺利在 vim
中操作文本,但是,当你花上几小时、几天、甚至几个星期把 vim 用熟练了以后,产生的效率是远远不能用几个星期来估量的。
2008年4月5日星期六
I came back
还是blogspot 看起来比较爽,虽然界面看起来要比 blog.163.com 简单一些,我喜欢这种简洁的设计。
