2007年05月12日
 
Reading guide: 理想:量的积累,可以产生质的飞跃。

这个世界上不缺少暴发户。一夜暴富的童话总是在诱惑着贪婪的人们,诱惑太厉害了,连10岁的小孩和80岁的老翁都不能逃脱:昨晚新闻,中国股民最低年龄4岁,最高年龄83岁——4岁那是跟着父母干,83岁那是玩着自己的血汗养老金——资本是可爱的,它可以创造价值,变成生产力,但绝不是盯着证券交易所里面的显示屏的生产力。我们都炒股去了,谁在工厂里面干活?谁在农田里面干活?当然,股民的劳动是精神紧张盯着显示屏,工人、农民的劳动是挥舞着手上的工具。

在我看来,六合.彩赌博和股市的差别,只是在于时间上的区别:六合.彩赌博是来得快,去的也快,可以一夜暴富,也可以一夜倾家荡产;股市稍微要好一点,暴富至少需要几天时间,倾家荡产至少还可以持有贬值的股份,还可以等待时间帮你翻身。

当然,无论是六合.彩还是股市,那都是有资本的人的游戏——或者说是勇敢者的游戏,作为安分守己,胆小怕事的凡人,只能像电影院里面的观众一样,充满崇敬的观看银幕上的英雄们。

观众们保护自己的钥匙,我想只能是题目的八个字了:未雨绸缪,日积月累。既然没有办法一夜暴富,那就慢慢积累吧;既然没有勇气应付骤然的变化,那么就学会未雨绸缪吧。慢慢积累自己的努力,按怕自己的人生进程,当寒冬到来的时候,要有储备的粮食可以食用,当温暖的春天到来的时候,要有可供播种的种子。

如果你既没有勇气去成为暴发户,又没有勤勤恳恳未雨绸缪的长远恒心,也不用灰心丧气,国家的公共社会保障系统会为你提供方便,虽然不是那么光彩,也不是那么及时。

2007年05月11日

原文:http://www.ljf.cn/2007/5/Item8582.html

Reading guide: 操控DataTable实现跨表查询和统计文章数目

真正跟GridView和DataList组件绑定的,并不是DataSet,而是存储在DataSet中的DataTable。因此,即使没有DataSet,自己创建DataTable用于数据绑定也是可行的。

在根据网站分类统计文章总数的时候,发现了一个问题,由于既需要在网站分类表中读取网站分类的名称(ClassName)和旗帜(ClassFlag),有需要在文章表中统计同一个文章旗帜(ClassFlag)的文章数目(Count(id) group by ClassFlag),这两个视图无论如何都不能在同一个sql语句中实现,又不想用到储存过程,于是只能借助与DataTable进行程序层面的逻辑处理了。

首先是建立一个包含了两个视图的数据表DataTable t,然后添加必须的DataColumn,随后在循环中根据两个视图中ClassFlag相等的关系,进行匹配选择,创建DataRow,加入DataTable。例如:

        DataTable t = new DataTable("Aim");
        t.Columns.Add( new DataColumn("clsname",System.Type.GetType("System.String")) );
        t.Columns.Add( new DataColumn("flag", System.Type.GetType("System.Int32")));
        t.Columns.Add( new DataColumn("number", System.Type.GetType("System.Int32")));
       
        for (int i = 0; i < ds.Tables["ClassTable"].Rows.Count; i++)
        {
            DataRow r = t.NewRow();
            for (int j = 0; j < ds.Tables["ClassCount"].Rows.Count; j++)
            {
                if (ds.Tables["ClassTable"].Rows[i]["flag"].ToString().Equals(ds.Tables["ClassCount"].Rows[j]["flag"].ToString()))
                {
                    r[0] = ds.Tables["ClassTable"].Rows[i]["clsname"];
                    r[1] = ds.Tables["ClassTable"].Rows[i]["flag"];
                    r[2] = ds.Tables["ClassCount"].Rows[j]["number"];
                    break;
                }
            }
            t.Rows.Add(r);
        }

这样的实现有点笨拙,不过总算实现了预期的目的,绑定了DataList之后的显示效果:

业界新闻(51)
情感日记(147)
办公室援助(73)
网络编程(120)
长短句(116)
web标准(3)
计算机安全(3)
硬件|DIY(2)

其中ClassId的值、分类的名称、统计的数目就是来源与DataTable t。

不知道有没有比这更简单的实现方法呢,渴望赐教。

2007年01月16日
Reading guide: 因为怕噎着,所以不吃饭了。

有位朋友说他的QQ资料自从上次中了木马之后就再也不能修改了,问我有没有办法帮他改回来。我觉得很奇,那木马也太强悍了吧,居然可以留下如此强烈的伤疤,于是向朋友要了密码,自己登陆查看情况。

一看之下哑然失笑,根本不是木马的问题,而是腾讯的禁语。

腾讯不知道出于何原因,把包括:聊天对话、个人资料等信息在内的文字做了一些限制,比如粗口是不给骂的,一些流氓网站是不给发的,一些炸骗电话号码是不给发的。这些都能让人了解,然而今天却碰到了比较难以理解的一个词:“人民警察”——在皆业学校里填写:人民警察学校是无论如何也不行的,你会收到一条出错的信息:“服务器拒绝请求!个人信息含有受限词语,请检查所有项目!”至于党的名讳,领导人的名讳等,也跟一些不法组织的名称相提并论,被打入了黑名单。

因为怕噎着,所以不吃饭了。

2006年12月21日

万幸万幸!

来源:http://www.ljf.cn/ReadArticle.asp?id=416

听说ASP已经成为昨日黄花,可怜我们这一班“泥腿子”,花了两年时间的实践至今才稍微运用自如,又要面临着从零开始的局面。

选择是多样的,精力是有限的。

1、转投asp.net的怀抱?微软的怀抱是无比温暖的,并且很像爱人的怀抱,独占性很强,抱住你了,你最好安份点,别再起异心,并且顺利爱屋及乌,连同Internet Explorer,IIS,Windows,Visual Studio等一系列兄弟姐妹也要爱,并且要不惜本钱,过得过节礼品红包不能少,才能好好维持你的这份爱情。

2、或者考虑PHP?跨系统,免费,强大,高效。嗯,支持PHP的人都如此说。具体细节不甚了解,要是了解了,恐怕已经毫不犹豫地投怀送抱。问题是这位姑娘个性很强,认识的朋友也多,并且它的朋友跟她具有同样强的个性。你既然爱上她,就要接受她的个性,当然也要接受她的朋友!于是mysql是要学习的,架设服务器的apach也是要结交的,如果可能,自由软件的老大linux也是要常去坐坐的。如果你已经与asp交往交久,你会发现这真是个麻烦的选择,很多asp的朋友你暂时要放一入手才行,如IIS啊,MSSQL啊,甚至Windows这位很有一代宗师派头的大姐,最好也找机会凉一凉它。

3、跟JSP一起拽?Java这位姑娘听说才华横溢,前无古人,后无来者,三界牛人谈到她无不竖起大拇指。如此才女若能娶回家,当然是莫大的福分,旺夫旺子不说,就美若天仙,才压群芳早把你有的门楣变成了黄金色,灿若朝阳不能逼视。然而如此才女,想与之结为良缘却是要掂掂自己的斤两才行,不然被人背后说“一朵鲜花插在牛粪上”那可够你受的啦,更另说由此引发的自尊危机,阴盛阳衰,最终恐怕也不会有好的结局。

好姑娘是很多,问题在于你是否有财?有才?有魄力?嗯,打退堂鼓了吧?那是,看着别人风光吧,还是老老实实跟你的丑媳妇ASP好好过日子吧,丑是丑点,笨是笨点,但却是确确实实可以帮你打理好家务,生儿育女的人。退一步想想,也算是个好姑娘了。

2006年12月16日

来源:http://www.ljf.cn/ReadArticle.asp?id=385

Windows XP 系统盘根目录下面通常有两个隐藏属性的文件:hiberfil.sys 和 pagefile.sys,两个文件加起来的大小通常都比较可观,具体大小决定于:

1、hiberfil.sys 是系统休眠功能生成的文件,大小刚好跟内存一样,用于休眠时储存内存中的信息。如果你有1GB内存,那么这个文件就有1GB【如果我有2GB内存,它就要吃掉我系统盘的2GB空间,太恐怖了】,一般休眠我用不着,去电源管理中关掉这个功能,于是这个文件也就自然蒸发了。

2、pagefile.sys是系统缓存文件,系统把这一片磁盘控件当作内存来使用,以弥补内存紧张的物理矛盾。当然,跟hiberfil.sys一样,只要你禁用了系统缓存,pagefile.sys也会马上【磁盘蒸发】,消失给你看。然而,是否内存大了,就不需要虚拟缓存了呢?答案是否定的!我测试了1GB内存禁用系统缓存的情况,由于没有系统缓存的支持,所有运行的程序都储存在内存空间上,即使你的内存够大,然而使用起来也效率降低了!设想一下你有很大的桌子,桌子之大,可以容纳下一周的饭食。你想,把一周的饭食都放在桌子上吧,吃饭时间就不用操劳了,直接上来就吃,效率高!然而你会发现,吃饭的时候效率并不高,因为食物太多了,周一的时候,你要绕过周二到周日的食物去取你需要的食物,周三的时候,你又要绕过周一、周二吃剩下的残渣,绕过周四至周日的食物取获取你当天的食物,这绕的过程不断重复,远远不如把不是当天的食物先放进冰箱,只把当天的食物摆上桌面效率要高。需要的时候,花几分钟的时间从冰箱里面端出来,一点都不麻烦。因此,即使你有2GB内存,我觉得缓存还是必要的。

罗嗦了这么多,附带一个参考网址:http://www.people.com.cn/GB/it/2806817.html

2006年06月27日

来源: http://www.ljf.cn/ReadArticle.asp?id=222

今天照例上QQ-Battle对战平台爽了一局帝国时代2,如果是平常,退出游戏的时候,房间的聊天室肯定已经满是不堪入目的色情广告,今天去干净的连一条毛都没有,奇怪!我试着打一行字,却没有动静,以为是禁止了“对大家说”,随便发一条信息给朋友,同样没有动静,看来,腾讯已经禁止了QQ-battle的聊天功能!

突然想起,会不会由于某种原因,腾讯开始着手整顿聊天室了呢?

打开聊天室,随便进去看看,惊喜的发现已经没有了“小姐”和“先生”,聊天室神奇的恢复到腾讯刚刚登陆网络时的干净和亲切!高兴之余,不由得感慨,为什么腾讯的整顿偏偏选择这个时候开展,不是以前,也不是以后呢?

前些天耳闻有腾讯告donews的事情,事情的起因是因为donews报道了腾讯的负面新闻,有人居然敢正面辱骂中国互联网的首富?风风雨雨过后,腾讯聊天室最先得到了阳光的照射,消退去矛盾的初始,黄色的天变成一片清蓝。之前还看过一篇关于聊天室变质的文章,作者质问管理员为什么放任黄色当道却得到“没有办法管”的答复,继续追问却被封了IP。事实很简单,不是“管不了”,是“不想管”,腾讯此举,用事实证明了这个论点。

事情不管没有没有什么联系,总之我们得到了现在相对干净的腾讯聊天室。而至于为什么会突然出太阳,好像也不必再多说些什么了。这儿倒是有一件事情可以顺带提一下,腾讯的聊天服务其实已经深入到网民的生活中,这是不可否认的事实,不但是深入,而且可以说是“很深入”,我看见即使是办公室的工作人员,也总是开着腾讯的企鹅,还有很多是同时开着两个和三个的。既然有这么大的影响力,群众给予高度的信赖,责任也随之二来,连美国片《蜘蛛侠》里面也有“能力越大,责任也就越大”这样的台词,相信聪明的小企鹅不会不明白这个道理吧?

或者引导舆论,或者让舆论约束你,我们且看任务栏上的小企鹅是不是因为一段官司而成长,而不再两眼闪烁着金色的光呢?

来源: http://www.ljf.cn/ReadArticle.asp?id=221

“坚韧不拔的意志”,这通常是赞扬的语句,由此而生及的联想,通常是不平凡的人对自己理想的追求,像十几年前的造句题答案一样:“他在科学研究事业上,具备坚韧不拔的精神,从不轻易放弃,攻克了无数困难。”我们通常把这个褒义词放在一个美丽的盒子里面,于是它就成了保贵的珍宝。

而一旦我们把它放在臭水沟,它将变成一条臭虫。它是如此之臭,以致让许多本可以成为伟人的英才纷分落马。

在游戏上的坚韧不拔。轻少皆气盛,气盛则好强,大凡皆是如此。有游戏,就有争斗,就有胜负,就有欢笑与泪水。假如你生在韩国还好,坚韧不拔的你说不定有出头的日子,不但可以成就霸业,还可以实至名归,可如果你生在中国,则可能成为新闻的主角:某某少年连续几天几夜沉迷网游,猝死网吧;某某青年长期沉迷游戏,荒废学业工作。胜于游戏,败于现实,坚韧不拔是一条臭虫。

在牛角尖上的坚韧不拔。与人斗倘若不可力敌,尚可智取,但若与自己斗,则岌岌危矣。有时候在处理软件故障的时候,采用什么样的处理办法尤其值得思考。除非使用者特别要求,否则当碰到非常难以解决的困难时,不要花巨额的时间在现场研究解决方法,取页代之应该是采取变通的办法,让使用者可以继续工作则可。如若不然,只会造成双输的局面,对谁都没有好处。遇到难以解决的困难时知难而退,等于是向自己认输,自然也要克服争强好胜之心才行。此时的坚韧不拔,实亦乃一臭虫,臭不可闻也。

故顺利进展,获得成功固然可贵,知难而退,别僻溪径亦未尝明智之举。坚韧不拔,视时而宜。

2006年06月14日

来源: http://www.ljf.cn/ReadArticle.asp?id=220

鉴于使用方便以及安全性考虑,推荐使用foxmail替代outlook express 6.0(windows xp 自带版本),如果你考虑使用foxmail,并且你是outlook 老用户,注意下面几点相当重要:

1,信纸设定。foxmail的信纸设定功能更加灵活,支持在信低中使用foxmail定义的“宏”功能,可以在设定的信纸中使用时间日期、发信人名称、收件人名称等多个宏功能,在我看来,相当于foxmail中可以自动显示相关信件信息的函数。然而正是由于这种灵活性,使得信纸的设定有一定的难度,因为它已经不是纯粹的html或者是纯粹的文本(当然你也可以用纯粹的)。难点:在你使用自己制的信纸时,需要调用这些宏才能达到附上原信内容的功能,并且需要制作两次,一张给“新邮件”,一张给“回复邮件”。

2,foxmail支持近乎完美的导入功能,并且是针对outlook express的导入功能。其中包括导入地址簿,改入邮件。导入地址簿在最新版本的设计中仍存在一个不足:导入outlook地址簿时,原有分组信息不能够完全重建,分组中的联系人会全部跑出来,堆在默人联系人中,而分组被清空,另一个问题,是foxmail中似乎不支持交叉分组,即一个人只能被分配给一个组,被分配后即从默人联系人中消失,如果你想给同一个人分两个组,就必须再建一次联系人的信息。邮件的导入功能也做得相当不错,当outlook express的收件箱不小心损坏后——例如非法关机,例如程序没有反应非正常结束,都有可能损坏outlook express的收件箱,现象是打开outlook express时程序死掉,解决办法是删除“收件箱.dbx”这个文件或将其改名,但相应的邮件即不能再取回,即使使用outlook express的中导入功能也没有办法,同样是在读取邮件时程序死掉。foxmail正是做了outlook express所办不到的事情,可以从被损坏的收件箱中导入原有邮件,找回你的资料。但有一个缺陷是foxmail不支持同时导入多个outlook文件,如果你在outlook中分门别类很多,那么转移到foxmail中将是比较烦琐乏味的工作。

3,强大的垃圾邮件过滤器。内建“贝页斯过滤器”,虽然我不知道它是不是很好,但毕竟比outlook一点也不过滤要好得多了。6.0版本还提供了像gmail中一样的“这是垃圾邮件”的选项,可以毫不费力地添加新的过滤规则,让你的过滤器更加聪明。

4,foxmail 6 新增的阅读RSS功能。foxmail 给腾讯收购后新加上去的功能,烙有腾讯的痕迹——RSS中腾讯总是排名第一,不过此功能相当不错,不需要打开网页就可以阅读新闻。

5,最后一个小问题是foxmail不支持自定义工具栏按钮。这是一个很重要的功能,特别是当“回复所有”这个按钮没有被放在工具栏上的缘故。我们知道公司的邮件很多时候是要“cc”给同事的,被CC的同事总是偏向于回复邮件给所有人,所以这个功能也是比较常用的。没有快捷按钮,意味着你要多点击一次才能完成此项工作。

至于重装系统或转移邮件方面的功能,比outllook express要方便许多,并且操作起来相对于outlook要更为安全,这是优点,也是相当吸引outlook express用户“叛变”的功能所在。

2006年06月11日
来源:本站 作者:不见不散 点击数:3   发表时间:2006-6-10 21:31:35

第二次看《Think in java》是停止在Object Serialization这一节,上周又开始继续看这本书,经过几天复习,又到了这一节,初步接触,总的来说有点让人昏昏的感觉,首要原因是对这一设计没有感性的认知,纯粹是在想像中学习,其次是候捷先生的用语比较文言化,较常接触的口语化文章较难于理解一些——当然,回过头来看,却正是这样的语言阐述得较为透彻形象。

Object Serialization 机制分为Serializable 和 Externalizable两种接口,主要区别在于前者会全盘序列化,后者则不对数据成员序列化,并且在恢复时会执行Default 构造函数。而Serializable 接口结合transient关键字以及两个约定格式的函数:

private void writeObject (ObjectOutputStream out) throws IOException, ClassNotFoundException {}
private void readObject (ObjectInputStream in) throws IOException, ClassNotFoundException {}

又可以达到跟Externalizable接口相似的功能。比较明显的区别只在于Externalizalbe会执行子类的default构造函数,而Serializable则不会。