文章 - 353,收藏 - , 评论 - 570, trackbacks - 3

导航

公告


我们热爱沉浸在计算机中的感觉,凭着十指的跳跃穿行于数字的时空,我们觉得自己成了一名无畏的探险家。

文章

收藏

    相册

      友情链接

      存档


      正在读取评论……

      2004年06月


      1. 两个月试用期,80%工资

      2. 两个月后的一年合同。期间解雇补偿1个月工资,辞职提前一个月通知,交1个月的违约金,不提前通知,交2个月的违约金。

      3. 保密合同

      4. 好友推荐机制,被录用奖励500元。




      将来的公司,一定要雇佣高手。高手的工作效率可以是一般人的5-10倍,工资最多也只有2-3倍。所以,买高手是非常值得的。而且,聪明人喜欢一起工作,这样更能激发他们的创造力。注意衡量标准不能是工作年限。而且最好是分别在某方面精通。




      至少我已经知道它两年多了。概念还是很不错的。

      按照盖茨的解释,在“无缝计算”的世界里,人们可以实现在任何时候、任何地点、任何设备得到任何想要的信息。  这就意味着,无需连线,你就可以在计算机、电视机、手机上观看刚刚用数码相机和摄像机拍摄的照片和影片。  这个理想同样意味着,在企业里,每一件商品的入库出库动态都会自动在电脑系统里显现出来,用一台掌上电脑就可随时获知货物的流转情况;这就意味着,横跨太平洋两岸的员工可以随时开会,可以对某一共享文件进行随意修改并能获知每个人每一次修改的结果,可以根据彼此的工作进度进行调配。



      ......................................



      我的韩国色情电影非常美的Blog贴子访问量比同时写的关于计算机的Blog多出了10多呗。哈哈。



      1.每个员工每年有买一本书的权利(如果<50元,可以多买几本。),用于建设公司的内部图书馆

      2. 书的内容可以是计算机的,也可以是其它任何类的,包括小说,漫画。

      3. 图书馆的书属于公司,每个人都有可以在下班后,带回家阅读,但是第二天上班前必须还回来,保证其它人可以查阅。




      刚毕业,开始职业生涯半年。看了此书觉得收获非常大,书上的Tips已经自觉的用在工作中了,而且效果很不错。我觉得这本书是想成为高手的人们的入门必读,想封面写的一样From journeyman to master。嘿嘿,不过这书读一遍肯定是不够的。



      61. Don't Use Manual Procedures

      62. Test Early. Test Often. Test Automatically

      63. Coding Ain't Done 'Til All the Tests Run

      64. Use Saboteurs to Test Your Testing

      65. Test State Coverage, Not Code Coverage

      66. Find Bugs Once

      67. Treat English as Just Another Programming Language

      68. Build Documentation In, Don't Bold It On

      69. Gently Exceed Your User's Expections

      70. Sign Your Work




      51. Don't Gather Requirements - Dig for Them

      52. Work with a User to Think Like a User

      53. Abstractions Live Longer than Details

      54. Use a Project Glossary

      55. Don't Think Outside the Box - Find the Box

      56. Listen to Nagging Doubts - Start When You're Ready

      57. Some Things Are Better Done than Described

      58. Don't Be a Slave to Format Methods

      59. Expensive Tools Do Not Produce Better Designs

      60. Organize Around Funtionality, Not Job Functions




      韩国的非常唯美。

      欧美的有点夸张。

      日本的完全就是变态。

      刚刚在www.6m7.com上看了色即是空2,大家也可以看看。




      hammer it out 解决,想出办法

      toss up 难以抉择

      analysis paralysis 分析瘫痪




      一个是面向企业,一个是学校。

       




      服务的范围可大可小。简单说就是有个server,用户用的只是client端,client可以很便宜,甚至免费,关键是没有server端的服务,用户就无法用。

      想网游一样,很大程度的降低的盗版的影响。虽然网游还是有私服的危险,但是只是因为它是网游,普通的软件产品就好多了。

       




      在博客中国上发现的。我因为以前运动过量,现在也会腰痛。我自己的办法是象瑜伽一样,跪爬在地上,效果也不错。

      但我从这本书中受到启发,可以试一试采用芭蕾舞的站立的脚姿。一提起芭蕾舞的站立脚姿,你一定想到芭蕾舞用脚尖站立的高难动作。我说的不是这种脚姿。芭蕾舞还有一种最基本的人们不注意的站立的脚姿,就是双脚分开成一条直线的站立。这是芭蕾舞训练和舞蹈中最经常的脚姿。芭蕾舞通过这种脚姿,使舞蹈者的上身自然的优美的挺立起来。我一试,双脚分开远远达不到直线的程度,但发现腰会由于脚的分开而挺起来,腰肌得以压缩。我一天做了几次,每次1-2分钟不等,第二天开始,腰痛就有缓解,做了几天,大大缓解了,基本不痛了。我的发现愿意于博客们分享,博客们也许有腰痛的亲友,可以介绍给他们。这至少是一种锻炼腰的方式。



      1.Kjava介绍

      Kjava的名称来源于KVM虚拟机(K Virtual Machine),特指为面向基于KVM,针对手机等资源受限设备的JAVA平台解决方案。由于移动互联网业务现阶段更多的集中于移动电话上的应用,因此,其上的JAVA应用称为Kjava更为确切。Kjava具有平台开放和易于动态下载的特性,它使第三方开发者可以为掌上设备开发Kjava应用程序。如果一款手机支持Kjava,那么它的功能就是可扩展的。

      服务开发商为它开发增值应用后,用户就可以下载到手机里使用。由于Kjava有丰富的开发接口,服务开发商可以开发出功能比较复杂的应用,使用户的操作更方便,界面形式更生动。  

      使用Kjava为手机开发应用程序,一般可以提供互动游戏、屏幕保护、股票查询、电子地图服务、图片编辑、个人信息处理等

      2 Kjava应用的开发

      Kjava应用的开发一般要经过以下几个步骤:
      首先要下载并安装开发工具。通常的Java开发工具也能用于开发Kjava应用,但由于Kjava的特性,还是采用专用的开发工具为宜。常用的开发工具有:

      § 基于命令行的工具:
        MotoJ2SDK (Motorola) and JDK 1.3(Sun)
        WTK(Sun) and JDK 1.3(Sun)

      § 基于IDE的工具:
        Forte and WTK http://java.sun.com
        Metrowerks CodeWarrior 6.0 for J2ME http://www.metrowerks.com/
        Jcreator and MotoJ2SDK http://www.jcreator.com
        Wireless Toolkit http://java.sun.com/products/j2mewtoolkit/

       利用这些开发工具,可以对源程序(*.java)进行编辑,并编译(*.class)。
       通常在编译后要在工具所带的仿真环境上试运行,以确认程序正确无误。
       最后存档生成可供下载使用的Kjava应用程序(*.jar)。




      41. Alway Design for Concurrency

      42. Separate Views from Models

      43. Use Blackboards to Coordinate Workflow

      44. Don't Program by Coincidence

      45. Estimate the Order of Your Algorithms

      46. Test Your? Estimates

      47. Refactor Early, Refactor Often

      48. Design to Test

      49. Test Your Software, or Your Users Will

      50. Don't Use Wizard Code You Don't Understand




      最早买VCD,25一套,两张盘装在一个塑料袋子里,外面在套一个硬的封皮。在去中关村1块钱买个塑料盒,把盘放入,再把封皮套在外面,小心翼翼的。后来买的多了,也不去买塑料盒了,就那么堆着。后来VCD降到了20, 15。

      在后来,出现了一种SVCD,将一部片子放在了一张盘上。当时觉得很棒。而且价格也很便宜。单买5,6块,批发可以到3块。又狂买一阵,收全了蛊惑仔,周星星系列。不过,马赛克比较多。

      两张的VCD降到了10,8块,大家又开始拼包装,封套越来越精美。还有服务也上档次了,可以送货。这时,有的同学发现外地的VCD比北京的要便宜很多,大家又开始从天津等地带。

      不知不觉,DVD开始出现了。一开始就不贵15左右,而且包装明显比VCD上档次。长长的,很酷的封套。然后是有塑料盒的,降价到10块。

      后来,各大高校的校园网如火如荼的建起来。学校的FTP开始又各种新品。一开始看real格式,后来只看dvd格式的,rmvb,divx。

      毕业后,家里装了宽带。一开始还到处下载,BT的,FTP的,mms等实时流媒体的。现在干脆直接在线看,下都懒得下。我已经很久不买盘了。我现在唯一担心的是,没有时间看。

       

       




      Java1.1增加了一种有趣的特性,名为 object serialization。它面向那些实现了Serializable接口的对象,可以将它们转换成系列字节,并可以在以后完全恢复原来的样子。这一过程也可以通过网络进行。

      为了序列化一个对象,要创建某些OutputStream(如FileOutputStream),然后将其封装到ObjectOutputStream。然后调用writeObject即可。反之依然。它不仅保留的对象的全景,而且能追踪对象内包含的所有引用,并保留。序列化过程不会调用Constructor。可以用声名transient来关闭某个属性的序列化。

      import java.io.*;
      import java.util.*;

      public class TestSerial {
         public static void main(String[] args) {
            MyObject inObj = new MyObject();
            inObj.setStr("Serialized");
           
            try {
               System.out.println("-StrA: "+inObj.getStrA());
               System.out.println("-StrB: "+inObj.getStrB());

               ObjectOutputStream out =
                  new ObjectOutputStream(
                     new FileOutputStream("serial.out"));
               out.writeObject(inObj);
           
               ObjectInputStream in =
                  new ObjectInputStream(
                     new FileInputStream("serial.out"));
               MyObject outObj = (MyObject) in.readObject();

               System.out.println("=StrA: "+outObj.getStrA());
               System.out.println("=StrB: "+outObj.getStrB());
            }
            catch(Exception e) {
            }

         }
      }

      class MyObject implements Serializable{

         public void setStr(String str) {
            this.strA = str;
            this.strB = str;
         }

         public String getStrA() {
            return strA;
         }

         public String getStrB() {
            return strB;
         }

         private String strA = "";
         transient private String strB = "";
      }




      在Swing 中每个组件都可触发事件,一旦触发事件会被一个或多个Listener(监听器)接收。不同类型的事件分别由个别的class表示。事件发生点可以和处理事件的代码分开。

      要想处理事件,只要产生Listener对象,并调用组件的addXXXListener()方法注册事件。我们大部分是通过继承事件接口来处理事件的。但是继承Java接口我们必须实现出接口中的所有方法。有些接口包含了大量的函数,如果要一个个实现是件很麻烦的事件上,Java中定义了相应接口的Adapter接配器类来解决这种情况。接配器类已经帮我们实现了接口的所有方法,而我们只要继承接配器就可在代码内做我们想做的事情。也即只要实现或覆写我们想要实现的方法。

      几乎用户使用鼠标、键盘做的每一个动作都会引起一个消息,也就是会引发一个事件,但我们并不是要对这些所有的事件都做出反应,有些事件并不是我们所关心的。对于不同的部件,我们需要关心的事件往往不同。下表中列出了最常用到的几个事件。

        部件 事件类型 事件描述

        JButton ActionEvent 按下了按钮

        CheckBox ActionEvent 选择或取消选择复选框

        JTextField ActionEvent 用户输入文本输入回车键

      [补充]

      A, B的事件模型

      在A里fireEvent

      在B里, a.addActionListener(new MyActionListener())

      定义 MyActionListener do something

       




      写清楚

      Firstname

      Lastname

      email

      先到先得




      了解了解他们都在做什么?



      一定要保持对公司的控制,做大股东,象丁磊。不能让风险投资影响自己公司的决策和发展方向。



      就是说可以在公司的internal system里用起来。

      一方面,自己就是自己的customer,需求定义,反馈都很方便。

      另一方面,可以很好的测试。stability, usability.




      感觉做项目没什么意思,但是比较挣钱。

      做产品风险比较大,因为市场不见得认,比较容易失败。

      还有一条路,可以做代理。比如国外一些好的软件,做代理和增值服务。

      不过,自己还是要做一个做产品的公司。




      PDA也是这样。有个标准键盘,用着才爽。哈哈




      很多时候,我们可以很方便地阻止事件传递到构件的同位体。例如,GUI生成器通常具有生成模式和测试模式。在生成模式中,希望能取消通常的对单击按钮或敲击键盘的响应,而是提供一份适当的表格。然而在测试模式中,构件应该是有实用性的。
        授权事件模式允许消耗输入事件(即键盘和鼠标事件)。事件一旦被消耗了,就不能传给它的本地同位体。InputEvent类提供了一个consume方法,可以用来消耗要处理的事件。
        图9-8所示的是只含有一个按钮的applet程序的运行结果。这个按钮带有鼠标监听者,可以消耗鼠标按下结果,当单击时按钮不能被激活。另外,这个applet还有一个键盘监听者用以消耗被按下‘a’键事件。



      一到公司,把今天要解决得问题,要修改得Bug列在纸上。

      然后想象自己在参加计算机比赛,什么ACM之类的。

      精神高度集中,争取在自己规定的时间内完成,挺有成就感的。

      以前都觉得怎么老不下班,现在不知不觉就到点了,嘿嘿。

      唉,就是自己和自己玩呗。




      以前打一天篮球都没问题。现在,打球超过一个小时,腰能疼一个礼拜。以后还真得主要点,别逞能了。唉



      John Carmack说,在信息时代,客观障碍已不复存在。所谓障碍都是主观上的。如果你想动手开发什么全新的技术,你不需要几百万的资金。你只需要在冰箱立放满比萨和可乐,再有一台便宜的计算机,和为之献身的决心。




          摘要:今天好好研究一下rhino    (全文共10427字)——点击此处阅读全文



      完成了计划,感觉真好。



      总是莫名其妙的出各种各样的问题。

      图片显示不出来。

      Homepage记不住

      cookie记不住

      有的网站连不上。

       

      唉。我只能不停的升级,看看有没有fixed bug.




      吃了21块的小吃,中了10块。嘿嘿。

      以前在那里吃,从来没想要,以后去哪吃都要发票。




      1。JBuilder太大,运行太慢

      2。JBuilder自己还带个JDK,乱

      3。少用JB的wizard,更好的掌握JAVA




        TestSplitPane mainFrame = new TestSplitPane();
        
        JPanel topPane = new JPanel();
        JPanel bottomPane = new JPanel();
        
        topPane.add(new JButton("TOP"));
        bottomPane.add(new JButton("Bottom"));
        
        JSplitPane splitPane =
         new JSplitPane(JSplitPane.VERTICAL_SPLIT,
             topPane, bottomPane);
             
        splitPane.setOneTouchExpandable(true);
        splitPane.setDividerLocation(200);       
        
        mainFrame.add(splitPane);
        mainFrame.setSize(400, 400);
        mainFrame.setTitle("TestSplitPane");
        mainFrame.setVisible(true);



      最近事情非常多,学习进展非常缓慢,需要停止一下活动:

      1。看电视

      2。无目的的上网浏览

      3。上网看小说




      爱不释手,手不释卷。估计会象当年看电脑杀手一样,一遍遍的看。

      两个主人公都不错,更喜欢卡马克一些。




      最近在公司改Bug改的很烦。由于程序体系比较庞大,踏不下心来,老有种绝望的感觉,哈哈。还是要踏下心来,一点点的研究,个个击破。

      另外,最佳的理解方法是写一些小的例子。




       我每次都要勾调 仅聚合文章描述 的选项,烦死。




      原来图便宜,850买了soken的mp3,结果电池用不了1小时,没法用。人家说升级,交了365,最近又老死机。唉。

      看过一句经典的话,民族工业不是乞讨。




      在车上看了看,感觉翻译的还可以,又下了电子版,对照一下看。看中文还是比看英文版快,而且理解的准确。不过,锻炼英语的机会又失去了,唉。

      还有Doom启示录,感觉真美。




      找本书,随便找一个问题,看懂。

      花很少的时间,效果很不错。比捧着书看几个小时,性价比高多了。




      买了一堆特价书,内容过时。浪费钱不说,还浪费了时间看他们,以至于没有时间看好书。以后买书还是买精品。比如:Pragmatic Programming,哈哈。




      苏慧伦

      徐怀钰

      他们都是驾驭声音的能力很强的人,不想很多人唱什么歌都一个调,比如:张宇同志




      去公司,回家,都爬楼。不爬就不舒服,慢慢爬,一点也不累。

      看来连续40天做一件事,真的可以养成习惯。好像有种说法,习惯决定性格,性格决定命运。




      每天背10个吧

      1. abash 使害羞

      2. abdicate 辞职

      3. abjure 誓绝

      4. abnegate 使无效

      5. abscond 潜逃

      6. absolve 赦免

      7. abysmal 深不可测

      8. accost 勾引

      9. accrete 共生

      10. admonish 警告




      感觉在中文搜索上是no.1了。随着image, mp3, life等的推出,我已经越来越喜欢他了。



      如果你需要拷贝一个新对象,而且该对象和源的起始状态相同,但是独立变化,那么你需要用clone().

      clone()是Object的protected方法。默认的拷贝操作是浅拷贝,不能克隆对象内部引用的其他对象。

      implements Cloneable 可以建立深拷贝。不过用浅拷贝也需要implements Cloneable

       

       




      看的人懒的留言,

      留了言,主人又看不见,或者懒的回。




            T1速度和T3速度都是AT&T的数字传输术语T1传输速度是以每秒1.544Mbps的速度传输信号.很多网络结点之间的纤维光缆连接都以T1传输速度工作.目前在美国某些区域,用户可在本地的家中或办公室中获得T1传输速度的服务。
            T2是北美用于高速率数据WAN联网的标准。
            T3速度是以每秒44.7436Mbps的速度传输信号。目前Internet主干网纤维光缆多以T3传输速度工作。



      离自己高考已经十年了。感觉自己好像没什么变化,又好像变了很多。总的来说,是朝着自己希望的方向成长。

      如果当年考上smth,也许现在已经是ph.D了。可是,会比现在过的好吗,比现在快乐吗?谁知道?

      刚听说,有个考生为了缓解压力,找了个小姐,还被抓了。唉。




      设计模式之Bridge

      板桥里人 http://www.jdon.com 2002/05/01

      Bridge定义 :
      将抽象和行为划分开来,各自独立,但能动态的结合.

      为什么使用?
      通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种:
      1. 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和圆形桩;这两个形状上的桩是并列的,没有概念上的重复,那么我们只要使用继承就可以了.

      2.实际应用上,常常有可能在这多个concrete class之间有概念上重叠.那么需要我们把抽象共同部分和行为共同部分各自独立开来,原来是准备放在一个接口里,现在需要设计两个接口,分别放置抽象和行为.

      例如,一杯咖啡为例,有中杯和大杯之分,同时还有加奶 不加奶之分. 如果用单纯的继承,这四个具体实现(中杯 大杯 加奶 不加奶)之间有概念重叠,因为有中杯加奶,也有中杯不加奶, 如果再在中杯这一层再实现两个继承,很显然混乱,扩展性极差.那我们使用Bridge模式来实现它.

      如何实现?
      以上面提到的咖啡 为例. 我们原来打算只设计一个接口(抽象类),使用Bridge模式后,我们需要将抽象和行为分开,加奶和不加奶属于行为,我们将它们抽象成一个专门的行为接口.

      先看看抽象部分的接口代码:

      public abstract class Coffee
      {
        CoffeeImp coffeeImp;

        public void setCoffeeImp() {
          this.CoffeeImp = CoffeeImpSingleton.getTheCoffeImp();
        }

        public CoffeeImp getCoffeeImp() {return this.CoffeeImp;}

        public abstract void pourCoffee();
      }

      其中CoffeeImp 是加不加奶的行为接口,看其代码如下:

      public abstract class CoffeeImp
      {
        public abstract void pourCoffeeImp();
      }

      现在我们有了两个抽象类,下面我们分别对其进行继承,实现concrete class:

      //中杯
      public class MediumCoffee extends Coffee
      {
        public MediumCoffee() {setCoffeeImp();}

        public void pourCoffee()
        {
          CoffeeImp coffeeImp = this.getCoffeeImp();
          //我们以重复次数来说明是冲中杯还是大杯 ,重复2次是中杯
          for (int i = 0; i < 2; i++)
          {

            coffeeImp.pourCoffeeImp();
          }
        
        }
      }

      //大杯
      public class SuperSizeCoffee extends Coffee
      {
        public SuperSizeCoffee() {setCoffeeImp();}

        public void pourCoffee()
        {
          CoffeeImp coffeeImp = this.getCoffeeImp();
          //我们以重复次数来说明是冲中杯还是大杯 ,重复5次是大杯
          for (int i = 0; i < 5; i++)
          {

            coffeeImp.pourCoffeeImp();
          }
        
        }
      }

      上面分别是中杯和大杯的具体实现.下面再对行为CoffeeImp进行继承:

      //加奶
      public class MilkCoffeeImp extends CoffeeImp
      {
        MilkCoffeeImp() {}

        public void pourCoffeeImp()
        {
          System.out.println("加了美味的牛奶");
        }
      }

      //不加奶
      public class FragrantCoffeeImp extends CoffeeImp
      {
        FragrantCoffeeImp() {}

        public void pourCoffeeImp()
        {
          System.out.println("什么也没加,清香");
        }
      }

      Bridge模式的基本框架我们已经搭好了,别忘记定义中还有一句:动态结合,我们现在可以喝到至少四种咖啡:
      1.中杯加奶
      2.中杯不加奶
      3.大杯加奶
      4.大杯不加奶

      看看是如何动态结合的,在使用之前,我们做个准备工作,设计一个单态类(Singleton)用来hold当前的CoffeeImp:

      public class CoffeeImpSingleton
      {
        private static CoffeeImp coffeeImp;

        public CoffeeImpSingleton(CoffeeImp coffeeImpIn)
         {this.coffeeImp = coffeeImpIn;}

        public static CoffeeImp getTheCoffeeImp()
        {
          return coffeeImp;
        }
      }

      看看中杯加奶 和大杯加奶 是怎么出来的:

      //拿出牛奶
      CoffeeImpSingleton coffeeImpSingleton = new CoffeeImpSingleton(new MilkCoffeeImp());

      //中杯加奶
      MediumCoffee mediumCoffee = new MediumCoffee();
      mediumCoffee.pourCoffee();

      //大杯加奶
      SuperSizeCoffee superSizeCoffee = new SuperSizeCoffee();
      superSizeCoffee.pourCoffee();

      注意: Bridge模式的执行类如CoffeeImp和Coffee是一对一的关系, 正确创建CoffeeImp是该模式的关键,




      突然发现自己的Blog,写的全是杂事,技术文摘很少。还叫技术探险家呢,唉,惭愧。其实,这半年感觉还是进步不少呢,主要回家后看的技术文章比较少,在公司学到的东西也懒的再记录下了。以后,还是要强迫自己在家也多学习点。



      头发长的太慢了,这次决定留长一点。长头发没什么不好的,勤洗着点,别油乎乎的就行。还是长头发比较帅,哈哈。



      看看完成了多少,Fail了多少,做个统计。总之,我对现在的生存状态很不满意,很不满意。感觉自己还是活在愚蠢的轨道上,还没有走上理想的生活路线,唉。不过,没关系,我知道这需要时间。



      与其费劲吧啦的到处找电影下载,还不如直接在线看。又省硬盘地方,又省时间。BBN上的还行吧。再找找其它的在线影院。



      31. Design with Contracts

      32. Crash Early

      33. If It Can't Happen, Use Assertions to Ensure That Won't

      34. Use Exception for Exceptional Problems

      35. Finish What You Start

      36. Minimize Coupling Between Modules

      37. Configure, Don't Integrate

      38. Put Abstractions in Code, Details in Metadata

      39. Analyze Workflow to Improve Concurrency

      40. Design Using Services




      21. Use the Power of Command Shells

      22. Use a Single Editor Well

      23. Always use Source Code Control

      24. Fix the Problem, Not the Blame

      25. Don't Panic

      26. 'Select' Isn't Broken

      27. Don't Assume It - Prove It

      28. Learn a Text Manipulation Language

      29. Write Code That Writes Code

      30. You Can't Write Perfect Software




      相扑是日本的国技,看了看挺有意思的。不完全凭蛮了,很多是巧计取胜的。说说好玩的地方:

      兜档裤挺逗的,还有前面那个老掉穗穗。

      快拳战术,特滑稽。

      有的局,有的公司送钱给盛者。

      韩乔生解说,太白痴了。比如,非说撒盐表示正是开始,别人最后忍不住告诉他,要看那个裁判的姿势。哈哈。他还是要是带点盐去现场买,会小发一笔。他整个一个娱乐人物。

      小知识:相扑等级从低到高,序之口,序二段,三段目,幕下,十两,前头,小结,关胁,大关,横纲。




      老李又写了一封信,是第三封了。看第一封时,还觉得不错,第二封就没什么意思。这一封简直是耐着性子看。也不知道他想干吗?

      我看过李开复的传记一类的东西。确是个牛人,做了很多很牛的东西。不过好像进了Microsoft就变得平庸了很多。唉。我更佩服不管年纪多大,都拼杀在计算机的一线,做些很牛的研究。而不是一头扎在管理层,到处布道。

      另外,网上看到有人说李开复的笑容非常假,确实如此,哈哈。




      google到底有多强大?

      准备定期自己找个题目,挑战一下搜索的水平。大家也可以帮忙。

      今天的题目,找到一张大幅佐丹奴的海报,就是盘腿坐的帅哥。

       




      超市的熟食吃起来怎么都觉得臭烘烘的。还是多吃西瓜吧。真爽呀。不吃冰棒,不喝饮料。




      持续一点睡,七点起的日子。

      还不象学GRE的日子,懒了就不学了。

      现在上班,没的选择。唉,惨。