山自高兮水自深,当尘雾消散,唯事实流传。

2009-01-09

用程序表达的有隔断的盒子——线性表(C++)


为什么把线性表比喻成一个有隔断的盒子?

因为它有一块连续的存储空间,不管从左边用还是从右边用都有唯一的“第一个格子”和“最后一个格子”,除了两头的格子,其他的都紧挨着两个格子。

注:图片来自于互联网
线性结构的基本特征:
1.集合中必存在唯一的一个"第一元素";
2.集合中必存在唯一的一个"最后元素";
3.除最后元素在外,均有唯一的后继;
4.除第一元素之外,均有唯一的前驱。
线性表类代码:

测试代码:

触摸ruby


译型语言写的多了,感觉思维在一些方面会形成定式,多尝试一些思路和方法大相径庭的东西,才可以开阔视野。Ruby出现有一段时间,抛弃了传统语言的大部分特性,个性的代码方式,拿来耍耍也不错,对今天了解到的Ruby的东西总结如下:

1、Ruby下载地址:http://www.ruby-lang.org/zh_CN/downloads/

2、Ruby的简单介绍:百度百科维基百科,对其历史和应用稍作了解;

3、网上有20分钟的实践实例,可以直接切到Ruby的脉络;

4、一些不错的中文网络资源:Ruby中文社区论坛RubyFlow译言Ruby板块Ruby On Rails中文社区论坛


2009-01-04

《贼猫》不错

些年看过‘本物天下霸唱’的《鬼吹灯》,乍读下来一惊,不是被鬼怪惊了,而是被作者的想象力惊着了,还有文中那些‘革命’语言,时常拿几句毛泽东语录逗乐,搞得一阵怕一阵乐,吊足我老想着往下看。昨天白天睡多了,晚上睡不着了,用手机到‘起点’搜出一篇《贼猫》看了两章,写的也是挺精彩的。

想想讲故事其实挺难的,得像讲《一千零一夜》一样,吊足胃口,回过头来还想继续听下去,因为人总得休息不能老听人掰故事吧。

一个好故事是一个好的小说、好的电视剧、好的电影、好的游戏最基本的东西。网络上自从出现Blog,好像写东西贴东西的网民越来越多,好看的小说一搜也是一大把,不得不佩服中国人超牛的编故事能力,就是好看的电视剧也是层出,那是噌噌的出,哪像小时候提起国产电视剧就咧嘴摇头的。

而近些年电影,我看是一塌糊涂,不少为了效果、为了特技、为了俊俏男主角的poss、为了给外国人看,牺牲情节的、被和谐的,编剧、导演为难的想调众口,而变的真的众口难调了,难道就不能拍个纯粹的东西过把瘾吗?

特技是可以暂时吸引眼球,但是不能像好故事让人产生的共鸣那么难忘;俊俏的未必肤浅,但肤浅的一定不俊俏;只有尊重自己的文化才会被别人尊重,干嘛老外魔幻中国也魔幻,魔幻不到位就变梦幻了。

《指环王》只是在以一个苍白故事为架构的视觉盛宴而已,而且有功夫的时候还不如一张美女图片有吸引力;Dos版的《仙剑奇侠传》不时有人回味吧,但我肯定不会去回味电视剧版俊男美女一阵打打闹闹过家家,然后最后悲情的收场吧;民族有自己的历史,尊重自己的历史,演绎自己的历史,大胆的演出来,人家也会为你拍掌叫好的,我是流氓我怕谁,就得用流氓精神演绎英雄故事。


2008-12-27

SyntaxHighlighter实现Blog代码语法高亮无废话流程

一、Hack过程有两步:

1、下载最新的SyntaxHighLighter,压缩包内有三个文件夹(Script、Styles、Uncompressed),如果不信任陌生链接的速度,可以将文件传到自己的服务器上,需上传的文件有Script目录下的全部文件,Styles目录下的css文件,这里以http://hotspeedli.googlepages.com为例;

2、进入Blogger后台的“修改Html”,在“修改模板”的代码框内找到这句</body>,在其前面贴入代码:


<link href='http://hotspeedli.googlepages.com/SyntaxHighlighter.css' rel='stylesheet' type='text/css'/>
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shCore.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushPhp.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushJScript.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushSql.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushXml.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushDelphi.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushPython.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushRuby.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushCss.js'/">
<script class="'javascript'" src="'http://hotspeedli.googlepages.com/shBrushCpp.js'/">
<script class="'javascript'">
dp.SyntaxHighlighter.ClipboardSwf = 'http://hotspeedli.googlepages.com/clipboard.swf';
dp.SyntaxHighlighter.BloggerMode(); 
dp.SyntaxHighlighter.HighlightAll('code');
</script>

将代码中的带有http://hotspeedli.googlepages.com的地址替换成自己的地址,指向正确的js和css文件路径。
这里指出我自己在操作过程中遇到的问题——完成上述操作之后,有行号和textarea效果显示,却没有代码高亮效果,原因是<link>括号内的css地址不正确,如果代码中的js和css路径没有错误,应该没有什么问题。

二、SyntaxHighLighter使用
使用方法官方有具体的开发文档,这里就不再多作唠叨,有两种包裹代码方式:
textarea包裹方式

<textarea name="code" class="c#" cols="60" rows="10">
... some code here ...
</textarea>

pre包裹方式
<pre name="code" class="c-sharp">
... some code here ...
</pre>

1、pre括号内的<(&lt;)、>(&gt;)、&(&amp;)字符要转换成括号内的内容,textarea不适用于在javascript内容;
2、name的值写code就可以了,这是因为代码中的dp.SyntaxHighlighter.HighlightAll(code)是作用于所有标识了code的源码块;
3、class参数值参照列表
Language Aliases
C++ cpp, c, c++
C# c#, c-sharp, csharp
CSS css
Delphi delphi, pascal
Java java
Java Script js, jscript, javascript
PHP php
Python py, python
Ruby rb, ruby, rails, ror
Sql sql
VB vb, vb.net
XML/HTML xml, html, xhtml, xslt

2008-12-25

如何在更换Blogger模板时不删除部件(widget)?

Blogger一个比较麻烦的问题是在更换模板时,如果不备份原模板则会丢失部件。在更换新模板后,则需要手工的逐一添加,这是相当浪费时间和耗精力的过程,看到了《How to change Blogger Template without deleting widgets ?》,基本可以解决这个问题,大体翻译如下。

有没有什么方法备份部件?
有的,我们可以在更换模板之前备份我们要保留的部件。

如何备份Blogger部件?
在更换新模板之前不需要窗口扩展小部件(),而查找到部件代码,这很容易做到。

选中这些部件代码


拷贝并保存所有的这些黄色区域的部件代码。

然后上传新模板,传完之后会显示一个如下信息

在这里不要点击“确定并保存”,在新模板代码中查找Widget部件代码,然后把刚才拷贝的部件代码粘贴到下图黄色区域之后,

保存模板,这样原模板所有的部件就会应用到新模板中了。

原理是什么?
Blogger在其数据库中以唯一的部件ID保存这些部件的内容。

2008-12-06

左手笔,右手刀——辛弃疾轶事

话说,21岁的南宋词人辛弃疾参加了抗金义军,之后率领近2千人投靠耿京起义军,随军投靠的有个叫义端的和尚偷了由他保管的义军大印,耿京大怒责怪其失职,要当场问斩,辛弃疾立誓给他3天时间,追回大印还给大家一个交代,遂勒马疾驰追上义端和尚,取其首级,夺回帅印,之后耿京对他便十分信任。不久之后,耿京手下的一个将领叫张安国,贪图奖赏把耿京给杀了,也因此大部分义军已经溃散,辛弃疾亲代50名勇士突袭济州府,活捉正与金人将领喝酒的张安国。

在中学的时候,不太爱唐诗而特别喜欢宋词,而宋词中最爱豪放派的经典,明知在考试中没有多少比重,但仍拿一些课外的东西来诵读,这其中辛稼轩的作品读的最多,主要还是缘于在一本杂志上看到的辛弃疾做的这几件让我那时就心生仰慕的事情,今天由于一些缘故突然联想起来了,仰慕之心悠然再生,辛弃疾果然是“左手笔,右手刀”——文武全才。

破阵子

醉里挑灯看剑,梦回吹角连营。八百里分麾下炙,五十弦翻塞外声,沙场秋点兵。马作的卢飞快,弓如霹雳弦惊。了却君王天下事,赢得生前身后名,可怜白发生。


2008-11-30

电脑招魂记

有种东西叫做瓶颈,也可以叫做软肋,如果被击中,那可是爽歪歪了。

我的联想昭阳E200的“软肋”就被“击中”了,啥东西?引导程序。

一日,想想电脑里面的Linux实在是已成摆设,用的太少,不如节约出硬盘来为民服务,于是我信誓旦旦的给革(格)了Linux的命,物当尽其用嘛。

第二日晚上,我打开电脑,不料貌似深不见底的黝黑屏幕左上角赫赫然的四个小字母——“GRUB”,突然一道闪电击中了我大脑里的负责翻译语言的神经末梢,而这块不太发达的神经得出的结论是四个大字——“傻逼了吧”,完鸟完鸟,引导程序随着昨晚的革命也被格了,一台高科技物件的身体与自己的灵魂的维系就这么被我一刀切断,而变成了一堆废铁。

咋办,修复呗。我的大脑里面迅速的刮起一阵剧烈的关于这台机器可行的修复方案的头脑风暴——
1、光驱不能用,光盘修复的方案放弃;
2、没有软驱,软盘启动修复方案放弃;
主板BIOS只支持Removable devices、dvd-rom、HardDisk三种启动方式,只能寄希望于这个所谓的Removable devices,可以在USB的U盘上做个WinPE,但机器启动时识别我这根Kingston 2G的东西吗?但我要把U盘做成USB-FDD,还是USB-HDD,还是USB-ZIP呢?不好说,就都试试吧。

一盏茶的功夫后,结论是失败,失败,失败中的失败。我兴趣索然的摊在椅子上,考虑着——似乎USB-ZIP这种方式更能被我旁边的台式机认同,为什么呢?为什么启动时不识别这根U盘?Removable devices到底指的什么?不是指U盘吗?

突然看到旁边的笔筒里有根又老又旧的64M的U盘,应该是USB1.x时代的古董吧,依稀记得它好像参与过xp启动盘的制作,试试吧,没想到这小小的东西关键时刻起关键作用,刚插进去启动机器,不费吹灰之力的一下把电脑的魂给招了回来,我又兴奋的看到了xp的登录进度界面。

回头想想查过的资料,似乎是跟这个USB-FDD有关系,据说是USB2.0的U盘均不支持USB-FDD,好像是因为这项技术的专利问题,没想到我正好卡在这儿了,幸好我收藏着这支古董。


2008-11-24

卡卡西的生死关头

许久不上网,翻了遍最近几周的《火影忍者》漫画(动画已经被糟蹋了),没想到岸本这么快就写到了木叶的生死存亡关头,卡卡西则是第一个经受生死考验的人,直到425话,卡卡西被打成‘惨兮兮’,明显的敏捷加智慧型选手——查克拉不足以支持自己的猛招和多变的战斗策略,唯一一次万花筒写轮眼的使用是用来救肥猪,可以说卡卡西凶多吉少。

难道岸本就此让卡卡西谢幕了吗?有必要回头想想三代火影、自来也、波风水门师徒三人的死法——三代火影为了保护木叶死于大蛇丸之手;自来也为了鸣人和村子主动探听敌人情报死于佩恩之手;波风水门为了保护木叶被九尾干掉(目前的传说),都是为了保护村子,都是师傅死翘翘徒弟变牛逼的路线,还有猿飞阿斯玛和鼬,而卡卡西是波风水门的徒弟,似乎更有了在此谢幕的理由了。

我觉得卡卡西死不死在于下一代的火影,为什么这么说呢?鸣人已经成年,岸本会让这个从小整天哟嗬要当火影的主角如愿以偿的,所以六代目必定是他,那么必要的促进因素主要有两个——火影的退位和鸣人的愤怒,团藏的阴谋会让正在大范围治疗伤者的纲手相当被动,我猜测佐井会成为挫败阴谋的主力,而且估计五代也很玄,自来也和纲手最后一次喝酒有暗示的成分,纲手大体意思是说如果自来也死了,自己也不想活了,如果自己死了,木叶还有卡卡西。

这评价很高,可是卡卡西的实力到底高到这个程度没?从火影一开始,卡卡西遇到的战斗——再不斩,兜、鼬、迪达拉,每经历一次苦战,他都会有很大的成长,直至现在领悟了万花筒写轮眼都在成就一个传奇,但是传奇还没到头,大家都知道写轮眼的弊端,恐怕能对佐助有所指点的人是两个拥有写轮眼的男人——阿飞和卡卡西,所以卡卡西不会死,或者至少见到阿飞真面目再死。

所以接下来的剧情应该是由热血凯彪乎乎的华丽出场,救了卡卡西,纲手疗伤,鸣人领头单斗Boss佩恩,众小强收拾‘晓’的余孽,团藏趁机取渔翁之利,佐井、纲手出头搞团藏,但纲手不幸。


2008-11-17

恶心的牛奶广告

央视1套晚8点之前黄金时间,一串串的牛奶广告,像一个个屎盆子通过电视这个媒体丢到千家万户去,只能给人茶余饭后添加恶心,“8000员工24小时监测,多项国际体系验证,出厂四关检测...不是每个牛奶都叫特仑苏”云云,这是在干嘛?愚民!老百姓不知道8000员工24小时都在干啥,多项国际验证到底包含什么、出场检测到底能检测出什么、特仑苏到底是谁家的,他们关心的只是牛奶能不能喝。

从没将牛奶广告跟恶心这个词联想到一起过,白花花的牛奶轻盈的在电视荧屏上缓缓流动,或联想起古时美人纤娇玉体的花瓣牛奶浴,或联想起纯洁的蓝天白云下茫茫草原的一群悠哉悠哉吃着嫩草的花花奶牛,或联想起光着小屁屁的一群婴儿在如牛奶般洁白的羊绒上或笑或躺或爬或酣睡,牛奶是人类寄托着健康幸福的白色希望,在《列宁的十月》里列宁有一句话——“面包会有的,牛奶也会有的”,可是现在我们也知道了——牛奶也是会有毒。
这幅广告现在在商场很眼熟吧,内容说明的是——我们的奶没有毒。蛮可悲的,不是原来的“每天一斤奶,强壮中国人”了。
PS:
1、为什么要往牛奶添加三聚氰胺?
答: 牛奶和奶粉添加三聚氰胺,主要是因为它能冒充蛋白质。
  食品都是要按规定检测蛋白质含量的。要是蛋白质不够多,说明牛奶兑水兑得太多,说明奶粉中有太多别的东西的粉。
  但是,蛋白质太不容易检测,生化学家们就想出个偷懒的办法:因为蛋白质是含氮的,所以只要测出食品中的含氮量,就可以推算出其中的蛋白质含量。
  因此添加过三聚氰胺的奶粉就很难检测出其蛋白质不合格了这就是三聚氰胺的假蛋白。
2、三聚氰胺有什么危害?
答:长期摄取三聚氰胺可能造成生殖能力损害、膀胱或肾结石、膀胱癌等。对于饮水较少且肾脏狭小的哺乳期婴儿体内,则较易形成结石。
3、三聚氰胺的标准含量是如何规定的?
答:婴幼儿配方乳粉中三聚氰胺的限量值为1mg/kg,高于1mg/kg的产品一律不得销售。
液态奶(包括原料乳)、奶粉、其他配方乳粉中三聚氰胺的限量值为2.5mg/kg,高于2.5mg/kg的产品一律不得销售。
含乳15%以上的其他食品中三聚氰胺的限量值为2.5mg/kg,高于2.5mg/kg的产品一律不得销售。
4、“问题奶粉”到底超标多少?
答:
公司名称 产品名称 抽样数 不合格数 三聚氰胺最高含量(毫克/千克)
石家庄三鹿集团股份有限公司 三鹿牌婴幼儿配方乳粉 11 11 2563
上海熊猫乳品有限公司 熊猫可宝牌婴幼儿配方乳粉 5 3 619
青岛圣元乳业有限公司 圣元牌婴幼儿配方乳粉 17 8 150
山西古城乳业集团有限公司 古城牌婴幼儿配方乳粉 13 4 141.6
江西光明英雄乳业股份有限公司 英雄牌婴幼儿配方乳粉 2 2 98.6
宝鸡惠民乳品(集团)有限公司 惠民牌婴幼儿配方乳粉 1 1 79.17
内蒙古蒙牛乳业(集团)股份有限公司 蒙牛牌婴幼儿配方乳粉 28 3 68.2
中澳合资多加多乳业(天津)有限公司 可淇牌婴幼儿配方乳粉 1 1 67.94
广东雅士利集团股份有限公司 雅士利牌婴幼儿配方乳粉 30 8 53.4

2008-11-06

Digg新资讯——6款免费软件帮你在Linux上运行Windows应用程序

英文水平不高,仅作学习、参考用就可以了,翻译不明确、不当、不正确的地方,请指正。
From Digg.com(6 Free Tools To Help You Run Windows Applications On Linux)

从Windows切换到安全性更高的操作系统Linux,可能你会认为相当的麻烦。例如你可能找不到用来处理你日常工作的应用软件。尽管你也可以找到任何一款和所有在Linux上可以替代Windows平台上的应用程序,但是这里仍有方法让你可以在Linux操作系统上运行你所喜爱的Windows程序。在这里,我们编制了一个包含6个免费软件的列表,它将帮助你在linux系统上运行你中意的Windows程序或者是在任何一个操作系统上运行virtual PC。

Wine Wine是一种开开放源代码的,在X、OpenGL和Unix的Windows API的实现,可以认为Wine是用来运行Windows程序的一个可兼容层。Wine不需要Microsoft Windows,因为它是完全免费的非传统意义上由100%非微软代码(non-Microsoft code)组成的Windows API实现的,然而Wine仍可以随意使用调用原生的Windows动态链接库。Wine提供了一套开发工具集和一个程序载入程序用来将Windows源码porting Windows源码至Unix,允许相当多的Windows 程序运行在包括Linux、FreeBSD、Mac OS X和Solaris在内的Unix平台。

VirtualBox VirtualBox 是一款x86虚拟化的软件包,起初是由一家德国公司创建的,现在有Sun 微型系统作为Sun xVM虚拟平台来开发。它被安装在一个现有的主操作系统上;大家知道的每一个应用程序,还有操作系统被作为客操作系统能够在他们自己的虚拟环境里被载入和运行。支持的主操作系统包括 Linux, Mac OS X, OS/2 Warp, Windows XP or Vista, and Solaris, 并且支持的客操作系统有FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows and Solaris。

Qemu Qemu是一款通用的并且开放源码的计算机仿真器和虚拟机(virtualizer)。当作为一个计算机仿真器,QEMU可以在不同的机器上(例如:你自己的电脑)运行为一台机器制作的操作系统和程序。通过这种动态的转换,它拥有了非常优秀的性能。当作为一个虚拟机,通过直接执行在主CPU(host cpu)客户端代码,QEMU拥有接近于本地的执行性能。既然如此,我们需要称之为QEMU加速器(也称之为KQEMU)的主驱动。虚拟机模式的主、客机器需要采用与x86系列兼容的处理器。

Bochs Bochs是一种用C++开发的高度便携的开源IA-32(x86)计算机仿真器,它可以运行在大多数流行的平台上。它包括了Intel x86 CPU、通用输入/输出接口设备和传统BIOS的仿真。目前,Bochs能够被编译以仿真386, 486, Pentium/PentiumII/PentiumIII/Pentium4 或者包括可选(optional)MMX, SSEx and 3DNow! 指令。Bochs能够运行在大多数操作系统上,这里面包括Linux,Dos,Windows® 95/98 和 Windows® NT/2000/XP 或者Windows Vista。Bochs由Kevin Lawton编写且目前在这个项目中被维护。

rdesktop(注:原先写过的一篇该软件应用的文章)rdesktop是一款开源的针对于Windows终端设备的客户端,它生来就能够借助(speaking)远程桌面协议(RDP)来呈现用户的Windows桌面。支持的服务器端包括Windows 2000 Server, Windows Server 2003, Windows Server 2008, Windows XP, Windows Vista and Windows NT Server 4.0。Rdesktop目前能够运行在大多数带有X windows系统的基于UNIX的平台上,and other ports should be fairly straightforward。

Xen Xen® 管理程序,一个为了虚拟化的超级开源符合工业标准的软件,它提供了强有力的、高效能的,并且可靠的特征用来虚拟x86, x86_64, IA64, PowerPC, 和其它的CPU结构。它支持大部分的客操作系统,包括Windows®, Linux®, Solaris®, 和BSD的各个版本。Xen管理程序拥有独一无二的开源技术,由Xen社区团体和20多个拥有最具有创新的数据中心解决方案商家(vendors)的工程师 协作开发完成,包括AMD,Cisco,Dell,HP,IBM, Intel, Mellanox, Network Appliance, Novell, Red Hat, SGI, Sun, Unisys, Veritas, Voltaire, and Citrix。Xen遵循GPL2许可,并且可以得到免费的源码和对象设计。Xen在企业应用中合并联合业务和Xen系统来加速虚拟化采用,现在是,并永远是开放的。