workspace  
努力奋斗——I believe I can fly
日历
<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
统计
  • 随笔 - 10
  • 文章 - 4
  • 评论 - 15
  • 引用 - 0

导航

常用链接

留言簿

随笔档案

文章档案

friend

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

2008年5月16日

通讯的力量

                      ——汶川地震之后

       四川汶川地震以来,救援工作苦于通讯的中断而无法有效的开展。甚至中国之前的一则广告(广告宣称某次地震中,中国移动基站正常工作使得人员获救)还成为人们的笑柄。在重灾区仅有几部卫星电话可以使用。

       笔者立即联想到了曾经的“铱星计划”,那个伟大的计划!也许铱星正常投入运营的话,全世界的灾害救援工作就会得以在信息通畅的情况下快速开展。摩托罗拉发起的“铱星计划”被称为世界科技史上最了不起的、最可惜的、也是最失败的项目之一。

       它是由77颗近地卫星组成一个覆盖全球的卫星系统,由于铱元素有7个原子,所以该计划命名为铱星计划,虽然后来卫星由于预算削减了11颗。

       铱星计划确实是科学史上一个宏伟的计划,它试图通过卫星与卫星之间的传输来把地面的蜂窝移动系统搬到了天上。这样就不需要数目众多的地面基站。当遇到汶川地震这样重大的自然灾害的时候,照样可以保证通信的顺畅。

       而地面的蜂窝移动通信系统,不论是CDMA还是GSM,都是“地上”通信系统,都需要数目众多的基站来进行信号通信。当地震发生的时候,地区内基站的电源供应被切断,基站的电池维持时间又很短,基站在没有电源供应的情况下就无法正常工作,只能被迫退出服务。当区域内一定数目的基站无法正常工作的时候,这一区域内的用户手机自然无法得到信号。

也许有人不禁要问,那为什么在几百里外的成都,手机在地震当时也完全成为摆设。那里地震远没有损坏基站的程度啊?

每个基站承受的手机接入是有数的,其他地方大面积基站退出服务,而与此同时,国内其他省份的电话都打入到四川,话务量瞬时高峰,核心网的承载冗余达到临届,导致话务拥塞的出现。这其实是正常的。

很多用户抱怨中国移动、联通不可靠,其实这也是对他们工作的一种误解。从抢修速度来看,国内的几大通信运营商的反应速度还是很迅速的。

另外还有很多网友说华为不爱国,捐款才500W RMB,这其实也是误解,据笔者通过华为员工了解,华为此次捐给四川震区的设备总价值就近一个亿,国内员工的捐款高达1300万人民币,国际员工比这个数目更多,只是统算在海外捐款里面。

与这次通信网瘫痪形成对比的是因特网,当电话打不通的时候,我们只有通过网络来了解信息,以及救援工作的进展,通过上网来与成都的同学、朋友保持联系。在成都的高校中,IP电话超市门口排起长长的队伍,IP电话又称互联网电话、网络电话。

那为什么手机没信号,电脑上网却可以畅通无阻呢?原因很简单,传输数据的光缆没事,中转数据的中心机房没事。这次事件也并不能说明Internet当初的架构就比蜂窝式通信的架构先进。上次台湾地震的时候,海底光缆受到地震损坏,我们访问国际网站还是一样受阻。

那为什么上次台湾省地震的时候光缆震断导致全国性的网络缓慢,而这次遇到更强的地震灾害,没有出现大面积网络瘫痪?这主要是因为台湾海峡震断的那条光缆是主干传输线,而这次成都、绵阳市区震情相对不是那么严重,主干网经过的地区没有大面积地震灾害,同时相对于海底光缆,陆地传输线路受保护相对好些。

毋庸置疑,信息的通畅对抗震救灾有着至关重要的作用,往往在灾难面前我们才意识到通讯的力量,期望灾区的通信,灾区的一切可以早日恢复正常。也期望通讯技术在自然灾害来临的时候照样正常工作,那时通讯的力量还会真正体现。



(请大家指正)

posted @ 2008-05-16 10:51 Robert Su 阅读(698) | 评论 (5)编辑 收藏

2008年5月12日

widget……
当了解这个东西的意义的时候,也许就会崇拜Yahoo工程师
当认真阅读Yahoo Map API并对比Google Map API,以及Yahoo 翻译软件的时候,也许才明白为什么微软要收购Yahoo,也会了解,微软的开价其实不高。
除了发明java以外,Sun还有Solaris,它很强大,是我们使用的windows没法比的,当然也没有必要比,user不一样,DTrace一个就足够说明了。。。

Sun的创始人之一Joye Bill,他发明了BSD、NFS、TCP/IP、C shell。Sun的Sparc芯片八核,每个core支持四个线程 == 32 个 P4

Sun已经把这些都开源了,IBM也大力提倡开源,Apache就是IBM资助的。所以LAMP,Sun不会收购,顺便说一句,开源也分开源协议的,这里就不做赘述。
Just like IBM的服务器可以100年可以不down机,所以他的Thinkpad比Dell、联想的要可靠。不要跟不懂的计算机的人一样,大肆叫嚣“联想把IBM收购了”,so ******

Oracle现在市值很高,最高1000亿$ , 现在Sun的市值110亿$,IBM--1310,所以请不要再说Sun收购甲骨文这种蠢话
Sun发明了java,可却没有在java上面赚到一分钱,而赚的最多的是IBM & Oracle


 

This is the last time.
posted @ 2008-05-12 04:19 Robert Su 阅读(45) | 评论 (0)编辑 收藏

2008年5月9日

当得知谷歌金山词霸(http://g.iciba.com/)发布的消息之后,我第一时间下载并安装了这款软件。
先谈下大体印象
1、界面清新了很多;
2、启动速度大大提高,本人的笔记本比较老,性能不是很好,在Eclipse运行的状态下,运行金山词霸还是有些负荷高,不过谷歌金山词霸占用内存显然没有原先的版本那么大;
3、主界面简洁明了“词典、例句、翻译”——字词、句、全文,so good,so powerful:)

我之前参与过一些教材的翻译,当时用的辅助工具是“灵格斯”,那时感觉这个软件很小巧实用,里面集成了很多家的全文翻译,比如Google翻译、yahoo翻译,不过现在这款软件已经变烂了。
言归正传
深入使用……
我在谷歌词霸中输入“龙”首先分别按照词典给出了不同的条目,非常简洁


当我双击某个单词的时候,谷歌词霸会执行查询,这点是值得称赞的改进。
我非常欣赏的是Google词典,当我查龙的时候,我明白了国外人所认为的dragon,并不是我们传统中的龙,而是“恶龙”,应该翻译成Loong。
有人提到谷歌金沙词霸对Firefox支持不佳,我的版本是2.0.0.14,不存在这样的问题。
还有谷歌词霸的语音功能,对中文的朗读不支持,不过英文单词的发音还是没有问题。
暂时写到这里……

posted @ 2008-05-09 14:27 Robert Su 阅读(981) | 评论 (6)编辑 收藏

2008年4月13日

ERROR:JDWP Unable to get JNI 1.2 environment ,jvm-> GetEvn() return =-2
原因:tomcat-eclipse-plugin插件启动报错
ERROR:JDWP Unable to get JNI 1.2 environment ,jvm-> GetEvn() return =-2

原因:JDK版本问题
查阅Java Doc,发现其中有这么一段话: 

http
://download.java.net/jdk6/docs/api/java/io/Console.html 

"Whether a virtual machine has a console is dependent upon the underlying platform and also upon the manner in which the virtual machine is invoked. If the virtual machine is started from an interactive command line without redirecting the standard input and output streams then its console will exist and will typically be connected to the keyboard and display from which the virtual machine was launched. If the virtual machine is started automatically, for example by a background job scheduler, then it will typically not have a console." ">http://download.java.net/jdk6/docs/api/java/io/Con..." 

翻译一下: 

虚 拟机是否有一个控制台Console取决于所依赖的平台和虚拟机解析该方法的方式。如果虚拟机是从一个交互式的命令行中启动的,而没有重定向标准输入和输 出流,那么虚拟机会自动的连接到键盘作为标准输入,并且把启动虚拟机的地方作为标准输出。如果虚拟机是自动启动的,例如通过后台的一个任务计划,那么典型 的情况就是没有Console控制台
......。 

于是,思考一下我们运行上面程序的地点
&mdash;&mdash;Eclipse等集成开发环境,这对于上面描述中的把启动虚拟机的地方作为标准输出来说是不合适的,这里的Console()返回的默认情况下是Null,于是就产生了上面的出错信息。(也许未来Eclipse会有所改进吧) 

怎么解决该问题呢?这里提供两条思路给大家(已经实际操作过,可以实现功能的正常运作) 

1、使用命令行进行运行,编译可以使用集成开发环境。这样可以完成标准输出。 
2、在程序中重定向标准输出到其他的设备或者方式(例如写到文本文件),这样也可以
"比较不方便的"完成该功能。






posted @ 2008-04-13 23:01 Robert Su 阅读(774) | 评论 (3)编辑 收藏

2008年4月3日

2008年3月20日

通过Ant Jetty plugin我们可以在ant构建脚本中直接启动Jetty。

<project name="Jetty-Ant integration test" basedir=".">
  
<path id="jetty.plugin.classpath">
    
<fileset dir="jetty-lib" includes="*.jar"/>
  
</path>
  
<taskdef classpathref="jetty.plugin.classpath" resource="tasks.properties" loaderref="jetty.loader" />

  
<target name="jetty.run">
    
<jetty />
  
</target>
</project>





posted @ 2008-03-20 11:11 Robert Su 阅读(26) | 评论 (0)编辑 收藏

2008年3月18日

 [report] nothing to do: no runtime coverage data found in any of the data files

Ant与Emma集成的时候总提示这种错误。。。查了下Emma QA说是runtime与metadata


源代码如下,哪位遇到过这种问题。。

<?xml version="1.0"?>
<project name="Toccata Code Quality" default="init" basedir=".">
    

        
    
<property name="junitJar" value="lib/UT/junit.jar"/>
    
<property name="emmaJar"  value="lib/UT/emma.jar"/>
        
    
<!-- 目录配置 -->
    
<property name="base.dir" location="."/>
    
    
<property name="lib.dir" value="./lib"/>
    
<path id="classpath.main">
        
<pathelement location="${build.src}" />
    
</path>
    
<property name="build.dest" value="./src/classes"/>
    
<property name="build.test.bin" value="./src/classes/test"/>

    
    
<property name="build.javadocs" value="./src/UT/doc"/>
    
<property name="build.report" value="./report" />
    
<property name="build.src" value="./src/UT/" />
    
<property name="build.test" value="/src/UT/test" />
    
<property name="build.instrument" location="./instrbin" />
    
<property name="coverage.dir" location="${base.dir}/report/UT/coverage" />

    
<property name="emma.enabled" value="true" />
    
<!--指示需要注入字节码的Java类的路径-->
    
<path id="classpath.main">
        
<pathelement location="${build.dest}" />
    
</path>
    
    
<path id="emma.lib">
            
<pathelement location="lib/UT/emma.jar" />
            
<pathelement location="lib/UT/emma_ant.jar" />
    
</path>
    
    
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />

    
<target name="init">
        
<mkdir dir="${build.instrument}"/>
        
<mkdir dir="report/UT/htmlreport"/>    
        
<mkdir dir="${build.dest}"/>
    
</target>
        
    
<target name="compile" depends="init">
            
<javac destdir="${build.dest}" srcdir="${build.src}/ibm" debug="on">            
                
<classpath>
                    
<pathelement location="${junitJar}"/>
                    
<pathelement location="${emmaJar}"/>
                
</classpath>
            
</javac>
            
<copy todir="${build.dest}">
                
<fileset dir="${build.src}/ibm">
                    
<include name="**/*.class"/>
                    
<exclude name="**/*.java" />
                
</fileset>
            
</copy>
    
</target>
    
    
<target name="compile-test">
        
<mkdir dir="${build.test.bin}" />
                
<javac destdir="${build.test.bin}" debug="on">
                    
<src path="${build.test}" />
                    
<classpath location="${build.dest}">
                        
<pathelement location="${junitJar}"/>
                    
</classpath>
                
</javac>
                
<copy todir="${build.test.bin}">
                    
<fileset dir="${build.test}">
                        
<include name="**/*.class"/>
                        
<exclude name="**/*.java" />
                    
</fileset>
                
</copy>
    
</target>

    
    
    
<!--对编译在路径build.src中的Java类注入字节码, 并且把注入字节码的新Java类存放到路径build.instrument-->
    
<!--覆盖率的元数据存放在路径coverage.dir中-->
    
<!--插入字节码-->
    
    
<target name="instrument" depends="compile">
            
<emma enabled="${emma.enabled}">
                
<instr instrpathref="classpath.main" 
                        destdir
="${build.instrument}" 
                        metadatafile
="${coverage.dir}/metadata.emma" merge="true">
                    
                
</instr>
            
</emma>
            
<copy todir="${build.instrument}">
                    
<fileset dir="${build.dest}">
                        
<include name="**/*.class" />
                        
<exclude name="**/*.java" />
                    
</fileset>
            
</copy>
    
</target>
    
    
<target name="run" depends="compile">
        
<junit fork="true" forkmode="once">
                        
            
<jvmarg value="-Demma.coverage.out.file = ${coverage.dir}/metadata.emma" />
            
<jvmarg value="-Demma.coverage.out.merge = true" />

            
<classpath>
                
<pathelement location="${build.src}/"/>
                
<pathelement location="${junitJar}"/>
                
<pathelement location="${emmaJar}"/>
            
</classpath>
            
            
<formatter type="xml"/>
            
<!-- formatter用于格式化测试输出结果 -->
            
<batchtest haltonfailure="no" todir="report">
                
<fileset dir="${build.test}">
                    
<include name="**/*Test.java"/>
                
</fileset>
            
</batchtest>
        
</junit>
        
<junitreport todir="${build.report}/UT/htmlreport">
            
<fileset dir="./report" id="id">
                
<include name="*.xml"/>
            
</fileset>
            
<report todir="${build.report}/UT/htmlreport" format="frames" Styledir="./report/XSL">
        
</report>
            
        
</junitreport>
        
<echo message="end running junit test"></echo>
    
</target>


    
<target name="coverage_report" depends="instrument,compile">
            
<!--如果属性emma.enabled的值是true,就生成代码覆盖率报告 -->
            
<emma enabled="${emma.enabled}">
                
<report sourcepath="${build.src}/ibm"
                    sort
="+block,+name,+method,+class"
                    metrics
="method:70,block:80,line:80,class:100">
                    
                
                    
<fileset dir="${coverage.dir}">
                        
<include name="*.emma" />
                    
</fileset>
                    
                    
<html outfile="${coverage.dir}/coverage.html" />

                
</report>
            
</emma>
    
</target>
    
    
    
<!-- checkstyle -->
    
<taskdef resource="checkstyletask.properties" classpath="lib/checkstyle/checkstyle-all-4.4.jar" />
    
<target name="checkstyle_report">
        
<checkstyle config="conf/checkstyle/bpf_checks.xml">
            
<fileset dir="src" includes="**/*.java" />
            
<formatter type="plain" />
            
<formatter type="xml" toFile="report/checkstyle/checkstyle_errors.xml" />
        
</checkstyle>
        
<xslt in="report/checkstyle/checkstyle_errors.xml"
            out
="report/checkstyle/checkstyle_report.html" 
            style
="conf/checkstyle/checkstyle-frames.xsl" />
    
</target>

</project>




posted @ 2008-03-18 12:03 Robert Su 阅读(44) | 评论 (1)编辑 收藏

2008年3月13日

说起中国的通信行业,不能不提眼下非常火的3G,非常火的TD-SCDMA,也不能不提下华为和中兴,这两个近年来走出国门,在国际市场杀出血路的民族企业的代表,要不是他们积极的走出去,和国际巨头博弈,才有了今天的发展,才有了中国企业能够在4个主流3G技术上都有所斩获的成绩。
中国在国际通信界还是有所斩获的。
可与之对比的中国软件行业,却始终还没有大的成就,始终在给别人当蓝领,软件蓝领。可以说都还没有跟上国际软件行业的步伐。
……
posted @ 2008-03-13 15:08 Robert Su 阅读(27) | 评论 (0)编辑 收藏

2008年3月11日

 硅谷一位最成功的 CEO 讲,凡是和微软合作的公司,最后都没有好结果。IBM 是其中第一个吃亏者。当时只对大客户感兴趣的IBM 决定和微软共同开发微机的新的操作系统 OS/2,以谋求在未来微机的软件市场占得先机。可盖茨不是这么想的,他不想与巨大的IBM

分蛋糕吃,于是暗度陈仓,一方面在与IBM的研发中挣点小钱,另一方面暗地研发windows。当windows诞生的时候,微软帝国就形成了。

    IBM的企业文化中有一条是诚实守信,可IBM显然还没有像微软一样对孙子兵法深入研究——兵不厌诈。

 
在中国吃亏最明显的就是金山。金山废了好大力气才使得
WPS 可以兼容office文档,微软意识到不可以,于是跟金山合作,当他弄明白金山WPS内部代码之后,在新版的office中,直接对WPS封杀。一个无法兼容office文档格式的办公软件显然是卖不出去的。

说来还真是奇怪,看看那些跟微软合作过的公司。我搜了一下那些曾经与微软进行过技术合作的大公司,业界的霸主,结果都比较的不乐观,江河日下。

Palm,摩托……

Palm曾经是掌上计算平台的绝对王者,当现在google如此热衷手机平台的时候,大家才意识到,原来移动平台(手机、PDA)就是下一场革命的主战场,谁占领这个计算平台谁就如同当今微软在PC OS的地位。palm把握了先机,可他们没有把握这次机遇,他们选择了与微软合作,合作的结果是什么?Windows   Mobile的壮大,palm OS的萎缩。
 

其实再反观那些一直拒绝与微软进行合作的公司。苹果、Sun……

苹果一直不在自己的苹果机上使用微软的windows视窗,也不肯将自己的Mac视窗与微软进行合作开发。当时比尔盖茨写信给苹果总裁,希望可以通过投资或者授权的方式来与苹果进行合作,一起开发Mac OS,苹果不为所动,也许苹果错失了一次领导PC标准的机会,可苹果迷们应该庆幸,苹果依然健在。

还有Sun,一个从诞生之处就拒绝与微软进行合作的公司,Scot McNealy甚至说sun唯一不能兼容的就是微软。 IBM会认为Sun狭隘,也许正是这种狭隘,才有了JAVA,才保证了Java独立于微软的操作系统(事实上微软在得到sunjava使用许可后做的第一件事情就是消灭了网景)。

    IBM、苹果以及SUN都是令人尊敬的公司,可我却从来都不崇拜微软,看看微软为计算机的发展带来过什么?

posted @ 2008-03-11 11:04 Robert Su 阅读(66) | 评论 (0)编辑 收藏

2008年3月10日

http://www.chedong.com/tech/ant.html

posted @ 2008-03-10 10:43 Robert Su 阅读(57) | 评论 (0)编辑 收藏
 
Copyright © Robert Su Powered by: 博客园 模板提供:沪江博客