2006年6月20日

整理P大点儿的硬盘空间居然整理出来俺曾经做过的几个东东,哎呀,想当年啊……成长历程啊。
第一个正把经的个人网站的首页
 进步了一些的第二版个人主页

又做了一些小东东而且跟着DFLYING大虾学会PHP以后,开始接校内的小活做……一个团委旗下网站
加入Enwell.net开始栏目制作。其中一个,Enwell商城。

成立Enwell Studio
做的第一个商业网站,反而不知道咋做了
又陆续写了一些PHP以后,进入Hywave多媒体开始写Delphi和ASP.NET,为hywave改版提出两套方案
ASP.NET写了一些,包括一个巨恶心的OA以后开始和差沙,范例华写J2ME,要不是因为期末没时间了,俺们相信疯狂坦克对打网络版肯定能产出,差沙小伙儿一个星期就把是男人就下一百层从无到有写出来了(以前从来不做JAVA何况J2ME)
开始写DELPHI以后俺就成了一个职业的程序员了,和页面没关系了……就走进了JAVA的世界。也不知道现在开始写SAP ABAP是不是对得起自己。sigh,好多东西翻不到了,都是大学逃课的心血啊……

posted @ 2006-07-31 22:47 BlueO2 阅读(447) | 评论 (0)编辑 收藏

我很早以前便开始使用bloglines的订阅服务。在那里我订阅了很多常去的技术站点和一些朋友们的blog,使用总发现了一些不便之处也产生了自己的一些想法,今天偶然看keso的一篇blog发现了抓虾网以及rojo,眼前为之一亮,很多想法,这两个网站已经替我实现了。
rss订阅服务衍生的门户
在bloglines这样的纯粹订阅服务来说,用户群的大小,用户群订阅的内容的相似度,用户的阅读频率对网站产生不了任何贡献。这实在是大大的浪费。我当时就想,如果在每个种子旁边有个方便的"顶"也就是digg it功能,那么,将用户顶的最多的story聚合起来,分门别类,这就是一个dzone.com这样的网站啊。现在类似dzone以及更加出名的digg我都认为是rss订阅服务网站的失败之处,他们完全有优势快速聚合出来一个这样的小型门户。现在抓虾网以及rojo都有这样的服务了,也都由此衍生出了一个热文排行样式的东西,但是我感觉做得还不够,这样太杂。泛泛的讲内容一列。应该根绝用户订阅时此feed的tag做分析,整理出来分类,做类似daqi.com或者qihoo.com一样的布局。
rss订阅衍生出来的朋友圈
web20有一点很重要,就是社会网络。就拿豆瓣网来说,我通过豆瓣提供的以书会友的功能认识了几个志趣相投的朋友。豆瓣会根据你喜欢读的书,看的电影,听得音乐,推荐给你和你兴趣相投的人,rss订阅也应该这样。比如Bloglines可以查看都有谁订阅了这个feed,可是为什么不更近一步,将两个人的订阅内容作比较,做匹配呢?通过在你的网站提供的 rss订阅服务我可以认识朋友,这也是网站粘性之一。否则像我现在可以毫无顾忌的从bloglines搬家到rojo和抓虾网。而更多自取相同的人可以组成圈子。甚至衍生更广一点,大家通过查看你的profile,浏览你的Blog,决定跟你做朋友的时候,你会得到一个vote的分数,在朋友圈的聚合门户上排名考前,这个不就是联络家么?
推荐给我其他读物
当我用豆瓣的时候,还有一个功能特别贴心,就是它会推荐给我相类似的图书。比如我读兄弟,它会在旁边给我推荐活着,许三关卖血等等……rss的小门户,可以根据每个人的兴趣不同,推荐在此类别中背digg次数最多的blog给我,省得我总是感慨:哎呀,怎么没早点看到这个网站呢?
信息筛选
订阅了好多rss feed的人都有此种经历,那就是有的时候忙,你好久没看了,突然以上来,成百上千的新条目,当即晕倒。贴心的筛选是很必要的,rss订阅服务网站完全可以根据其他用户的digg rank来按照重要程度给我排序,大家认为重要的先看,大家认为不重要的后看……我想,群众的眼睛还是雪亮的。
冗余的剔除
订阅了大量rss的人来说,有一些种子可能已经坏掉了,或者作者更新频率很低,或者过了一段时间以后,你已经不太认为那个对你有价值了(这个可以从你digg it和收藏的频率来判断),但是因为我们进行了大量的订阅,要把它剔除需要花费时间的。RSS订阅服务只需要替订阅者看着点坏掉的种子,统计下订阅者对其的关注度,然后建议剔除哪些没有价值的feed,这将给我带来巨大的方便。
抓虾与rojo相比bloglines的改进
rojo有一点很好,当你大开一个feed的时候,他们显示的是title,只有当点击小十字查看具体内容,它才认为你读过了,下次你再打开这个种子,这个条目便不会显示出来。之前用bloglines有的条目很多,一天可能看不完,下一次再打开就看不到了,因为你之前的打开被bloglines认为是阅读过的表现。而有些条目我们认为是很有价值的,rojo和抓虾都提供了收藏的功能。此外rojo对bloglines对feed死板的分类功能进行了改善,替代的是tag,就是说一个feed可以属于多个tag,你甚至可以对条目进行tag,这样更加有利于小门户分门别类的聚合。
更进一步
我一直感觉blog的互动性还不够,这个不动不是指comment。而是无法像BBS一样,对一个讨论形成一个有主线的跟进。大家对一些东西都有自己的看法,可是都是零敲碎打,自己说自己的,对别人的想法可能不了解。仅仅靠track back是无法串联起来的。如果你的rss订阅服务能够有足够的粘性,那么用户基本都从你这里获得信息,当他要发表对某个条目的看法,让用户登陆他自己的 Blog,快捷的引用到自己的blog里面,而订阅服务网站将通过某种方式将用户的评论内容得到。这样,将众多的用户的内容整理出来,类似BBS讨论的形式,聚合在门户里。这样,Blog之间才形成了有效的互动。可惜,这个想法,似乎还不知道怎么实现。
我的页面&&个人门户
几乎这种rss订阅服务网站都提供我收藏的feed的展示,我感觉这个是不够的。而还应该展示的则是跟我上面所说的有联系的,最近digg的条目,最近收藏的条目,以及我最近评论的条目,以及我的朋友圈等等。这才形成了真正的“我的页面”。
用keso的话说,rss阅读器的技术门槛很高啊。

posted @ 2006-07-27 10:26 BlueO2 阅读(456) | 评论 (0)编辑 收藏

public   class  Artist  {
    
    String[] others;
    
/**  Creates a new instance of Artist  */
    
public  Artist()  {
    }

    
public  Artist(String name,String  others) {
        
for (String other : others) {
            System.out.println(other);
        }

        
this .others  =  others;
    }

    
public   void  wildestMethod(Object  objs) {
    
// this method will accept any arguments
    }

    
public   static   void  main(String[] args) {
        Artist artist 
=   new  Artist( " You " " 1 " " 2 " );
        artist.wildestMethod(
1 3.5 " AA " new  Artist());
    }

    
}

posted @ 2006-06-26 20:25 BlueO2 阅读(370) | 评论 (0)编辑 收藏

public   class  AutoBoxing  {
    
    
/**  Creates a new instance of AutoBoxing  */
    
public  AutoBoxing()  {
    }

    
public   void  boxingDemo() {
        
// auto boxing
        Integer i  =   0 ;
        
float  f  =   1.66f ;
        Float F 
=  f;
        
// auto unboxing
        Integer I  =   new  Integer( 1 );
        
int  i2  =  I;
        
// null value test, it will case NullPointerException
        Integer I2  =   null ;
        
int  i3  =  I2;
    }

    
public   void  testOperator() {
        Integer i 
=   1 ;
        
while ( true ) {
            i
++ ;
            System.out.println(
" Counter: " + i);
            
if (i > 5 break ;
        }

    }

    
public   void  testCompare() {
        
// it's equal because -127~127 are immutable objects
        Integer i  =   1 ;
        Integer i2 
=   1 ;
        
if (i  ==  i2) System.out.println( " 1:Equal " );
        
else  System.out.println( " 1:Not Equal " );
        
// it's not equal because j and j2 are different objects
        Integer j  =   200 ;
        Integer j2 
= 200 ;
        
if (j  ==  j2) System.out.println( " 200:Equal " );
        
else  System.out.println( " 200:Not Equal " );
    }

    
public   void  testControl() {
        Boolean flag 
=   true ;
        Integer i 
=   20 ;
        Integer j 
=   30 ;
        
if (flag) {
            System.out.println(
" Boolean affects " );
        }

        
if (i < j)
            System.out.println(
" Integer affects " );
    }

    
public   void  testMethod( double  arg) {
        System.out.println(
" public void testMethod(double arg) is invoked " );
    }

    
public   void  testMethod(Integer arg) {
        System.out.println(
" public void testMethod2(Integer arg) is invoked " );
    }

    
public   static   void  main(String args[]) {
        AutoBoxing auto 
=   new  AutoBoxing();
        auto.testCompare();
        auto.testOperator();
        auto.testControl();
        
int  i  =   1 ;
        
//  public void testMethod(Integer arg) wouldn't be invoked
        
// because  public void testMethod(double arg) will be invoked in JDK1.4
        
// Java tiger consider the backward capability
        auto.testMethod(i);
        auto.boxingDemo();
    }

    
}

posted @ 2006-06-22 18:34 BlueO2 阅读(364) | 评论 (0)编辑 收藏

public   enum  User  {
    Admin,User,Guest,Unknown   
}

public   class  Login  {
    
    
private  User user;
    EnumMap
< User,String >  userName  =   new  EnumMap < User, String > (User. class );
    
/**  Creates a new instance of Login  */
    
public  Login()  {
        userName.put(User.Admin, 
" Administrator " );
        userName.put(User.User, 
" David " );
        userName.put(User.Guest, 
" Steve " );
    }

    
public   boolean  isAdmin(User user) {
        
if (user.equals(User.Admin)) {
            
return   true ;
        }

        
return   false ;
    }

    
public   void  printUserRole() {
        User[] users 
=  user.values();
        
for (User u : user.values()) {
            System.out.println(u.toString());
        }

    }

    
public   void  isRole(User user) {
        
switch (user) {
            
case  Admin:
                System.out.println(
" admin " );
                
break ;
            
case  User:
                System.out.println(
" User " );
                
break ;
            
case  Guest:
                System.out.println(
" Guest " );
                
break ;
            
default :
                System.out.println(
" unknow " );
        }

    }

    
public   static   void  main(String[] args) {
        Login login 
=   new  Login();
        System.out.println(login.isAdmin(User.Admin));
        login.printUserRole();
        login.isRole(User.User);
    }

    
}

posted @ 2006-06-22 18:22 BlueO2 阅读(326) | 评论 (0)编辑 收藏

     摘要: public   class  Generic  {         /** */ /**  Creates a new instance of Generic  */ ...  阅读全文

posted @ 2006-06-20 18:18 BlueO2 阅读(369) | 评论 (0)编辑 收藏


posts - 29, comments - 3, trackbacks - 0, articles - 0

Copyright © BlueO2