载入中
自定义HTML载入中... loading
日历
<<  <  2008 - 8  >  >>
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
载入中
边栏内容载入中... loading
utf8的编码算法 [已完成] [原创 2/16/2006 11:14:56 PM]  


         unicode字符集是我们世界上最完善最全面的字符集,几乎包含了世界上所有的字符。其实可以这么理解,unicode字符集是一张巨大的表格,把世界上各种语言的字符和标点符号都编排到里面,然后按照一定的顺序给每个字符排号(很遗憾的是对于中文来说,这个顺序不是按照汉语拼音的顺序)。有了这张巨大的表格,世界上大部分字符就都有一个unicode内码(整数)来对应。计算机就通过记录字符的unicode码来表示这个字符,然后交给操作系统,操作系统通过unicode码到字符字体点阵的映射把这个内码转换成字体点阵显示到我们的屏幕上。
       
         utf8是我们常用的编码方式,在web开发中使用utf8编码能完全解决字符集问题。其实utf8是unicode字符集的一种物理实现,它描述了如何高效的存储unicode的内码(就是上面说的字符在字符集的顺序码),RFC2044文档(http: //www.ietf.org/rfc/rfc2044.txt?number=2044)描述了如何从一个内码转换成utf8格式的算法。英文不好没关系,看这个转换表就会马上明白了:

   UCS-4 range (hex.)           UTF-8 octet sequence (binary)
   0000 0000-0000 007F   0xxxxxxx
   0000 0080-0000 07FF   110xxxxx 10xxxxxx
   0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
   0001 0000-001F FFFF   11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
   0020 0000-03FF FFFF   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
   0400 0000-7FFF FFFF   1111110x 10xxxxxx ... 10xxxxxx

         上面的表格左边是16进制表示的unicode内码,最后一行的16进制数“7FFF FFFF”是utf8所能表示的内码的最大值,换成10进制是这样的一个数:2147483647(够大吧:))[对不起,此文最初这儿写错了,已改正]。上面表格中右边一列就是utf8的二进制格式,转换规则可谓一目了然。我直接给出算法吧(js代码):


    function toUtf8(code)
    {
     var iByte=0;
     var i=0;
     result="";
     while(code>0x7f)
     {
      iByte=code%0x40;
      code=(code-iByte)/0x40;
      result="%"+(iByte|0x80).toString(16).toUpperCase()+result;
      i++;
     }
     prefix=[0x0,0xc0,0xe0,0xf0,0xf8,0xfc];
     if(i>prefix.length)
     {
      i=5;
     }
     result=""+(code|prefix[i]).toString(16).toUpperCase()+result;
     return result;
    }
        


          例如字符"汉"的unicode是6C49,把这个unicode字符表示为一个大整数,然后转变成多字节编码110110001001001:
          观察这个整数的二进制码序列(110,110001,001001)
          从后往前取
          如果这个二进制序列只有后7位(小于128,也就是ascii字符)则直接取后7位二进制数形成一个utf8字符。
          上面的字符“汉”二进制序列大于7位,所以取后6位(1001001),加10形成一个utf8字节(10 001001 ,16进制89)。
          剩下的二进制序列(110,110001)从后向前取6位,加10形成一个utf8字节(10 110001,16进制B1)。
          剩下的二进制序列(110)从后向前取6位,由于不足6位,将这个数和1110000相或,得到字符11100110,16进制E6
          最后,就得到了utf8编码,16进制表示为E6B189

           【应用领域】
           虽然这种标准算法大部分已经由开发工具提供商或者库实现,但是我们依然会在某些时候需要自己实现这种算法:
           某些浏览器(ie5)不支持encodeURI函数,那么使用ajax提交汉字有两种方案:
                 汉字字符经escape转变成形如"%uXXXX"的字符,服务端使用上述算法将u后面的unicode序号转变成utf8字符
                 使用上面的算法结合escape直接在客户端实现encodeURI功能(推荐使用这种方案)

            实现json-rpc服务
            json是javascript的对象直接量形式,其中字符串必须是unicode字符,汉字需要转换成"\uXXXX"的形式。所以我们需要把服务端字符进行json转变。对于php来说,现在有两个开源项目JSON-PHP 和 PHP-JSON
            json-rpc是一种以json为数据格式的rpc协议,可以方便应用与ajax项目中,json-rpc.org是一个开源的实现。
 

 

(字节数 : 5115)
gmail内的google talk通讯机制分析 [原创 2/16/2006 11:12:33 PM]  
 
 
        最近google的gmail内增加了“Quick Contacts”功能,使用这个功能可以直接在网页里和gtalk里的联系人聊天了,试用了一下感觉效果不错,消息接收和发送是实时的。我对这个聊天程序的通讯机制产生了浓厚的兴趣,于是使用httpWatch对通讯进行截获分析,得出一些结论:
 
        在所有后台的http会话中,始终存在一个类似b.mail.google.com/mail/channel/bind?&at==…………的请求,这个请求可能长达200多秒钟,一个请求结束后,客户端会马上发起另一个类似的请求,服务端返回的http会话文本常常如下:

30
<script>try {parent.m("")} catch(e) {}</script>

85
<script>try {parent.m("[[237,[\"e\",\"xxx@gmail.com/Talk.v86091E5F95\",,,\"\",1140101097547]\n]\n]\n")} catch(e) {}</script>

85
<script>try {parent.m("[[238,[\"e\",\"xxx@gmail.com/Talk.v86091E5F95\",,,\"\",1140101098333]\n]\n]\n")} catch(e) {}</script>

b2
<script>try {parent.m("[[239,[\"c\",\"xxx@gmail.com\",,\"l\"]\n]\n,[240,[\"m\",\"xxx@gmail.com\",,\"paused\",,\"\",1140101099923]\n]\n]\n")} catch(e) {}</script>

 ……

        通过查找资料以及和一些同事朋友分析,认定这很可能是server push技术。这种技术可以算是比较老的技术了,也是实现聊天室比较常用的技术。关于server-push的介绍,推荐这篇文章
        上面的30\n<script>try {parent.m("")} catch(e) {}</script>\n\n是这个保持连接的网页在服务端有消息时的输出信息。可见这就是gmail服务器时刻监视jabber服务器,一旦需要给客户端发送消息,就立即在这个网页里输出脚本,然后脚本负责考虑是如何处理界面以及如何向服务器提供更详细的查询。
        我ping了一下,b.mail.google.com和mail.google.com不是一个主机,看来服务器b.mail.google.com专门负责实时监视用户相关的jabber信息,实时通过上面的网页传递js给客户端。由于保持连接的server push技术需要消耗一定的资源,所以单独拿出一台主机以有利于专门做优化。
 
        当然,上面的那个保持连接的网页,应该不是通过xmlHttpRequest的方式实现的,因为它需要一直保持连接,在服务器每次输出信息后立即执行script标签内的代码,所以这个连接应该是个框架窗口。xmlHttpRequest比较擅长在url下载完成后激发事件处理程序,很难实现这种实时的消息。
         对了,ie的xmlHttp组件的onreadystatechange事件只会在readystate从1变成4的过程中被激发。但是firefox中的xmlHttpRequest的此事件会在url请求开始后,每隔几毫秒不断的被激发,直到readystate变成4为止。所以在Ie中是中断机制,在firefox中是轮询机制。尽管firefox中是轮询机制,还是很难实现服务器实时输出的script被实时执行。所以还是框架窗口的技术最为简单明了。
 

 

(字节数 : 2979)

一直在使用ob_start和ob_get_contents时非常小心,避免嵌套使用,今天试了一下,原来几组ob_start/ob_get_contents是可以嵌套的。下面是例子:

 <?php
 ob_start();
 ?>
 <html>
 <body>
 <p>It's like comparing apples to oranges.</p>
 <?
 ob_start();
 print("{{{{{{{{}}}}}}}}}}");
 $str2 = ob_get_contents();
 ob_end_clean();

 ?>

 </body>
 </html>
 <?php
 $str1 = ob_get_contents();
 ob_end_clean();

 var_dump($str1);

 var_dump($str2);

 ?>

运行结果如下:

[~/]^o^:php test.php
string(77) "<html>
<body>
<p>It's like comparing apples to oranges.</p>

</body>
</html>
"
string(18) "{{{{{{{{}}}}}}}}}}"

 

(字节数 : 940)
过年啦 [原创 1/24/2006 9:01:33 PM]  
要过年了,最近只写了1.5篇文章,有好几篇文章还没有写,以后再打算吧。
回家要待几天,过了年再开始我的学习探索历程。

 

(字节数 : 70)
ie和firefox中img对象区别的困惑 [原创 1/21/2006 10:07:19 PM]  

在调试js时遇到一些恶心的问题,于是做了一个测试程序,放到网上让大家帮我测试。帖子见http://vchelp.net/cndevforum/subject_view.asp?page=-1&subject_id=165791

下面我给出关于测试的解释:

起因源于我想做这么一个网页:用户上传一个图片后,如果图片大于500象素,则在客户端把图片缩小成500象素大小。但是不想让用户看到这个大小调整过程。于是想首先隐藏这个图片,在整个网页下载完成后,调整大小,然后再显示调整好的图像。

于是我首先设置img标签的style="display:none",然后在window.onload中获取原图大小,进行调整。
<img src="http:......" style="display:none" id="c010_jpg">

结果发现firefox下,一个disolay=none的图像width和height是原图的实际大小,但是ie下却都是0

于是想到稳妥的办法是建立一个image对象,然后对src赋值,进而读取原图大小的信息:
var oImg = new Image();
oImg.src = docunent.getElementById("c010_jpg").src;
//马上读取oImg的width和height
alert([oImg.width, oImg.height]);

结果在ie测试发现,上面的代码会输出“0,0”
我怀疑这说明当ie解析一个display:none的img标签时,并没有下载这个图片,所以上面的代码对oImg.src赋值后ie需要从目标地址下载这个图片,当然,这个过程是异步的过程
而在firefox下,上面的代码会输出正确的信息,这说明firefox解析display:none的图片时,已经下载了这个图片。以后再对oImg.src赋值时,直接从缓存中获取,所以速度快

想到这一点我只好用更复杂更稳妥的办法了:
var oImg = new Image();
oImg.onload = function (){alert([oImg.width, oImg.height]);}
oImg.src = docunent.getElementById("c010_jpg").src;
//当src被载入后,输出oImg的宽和高

使用事件和回调函数是没办法的事情。处理这种异步过程使程序结构变得很难看。

另外,在w3c中( http://www.w3.org/TR/REC-DOM-Level-1/idl-definitions.html)没有找到HTMLImageElement的readyState和complete属性,
发现firefox实现了complete属性,而ie实现了complete属性和readyState属性

但是两者对属性的定义好像不同:
firefox: 一个图像被下载完毕,complete属性就是true,没有下载完毕则为false
ie:一个图像没有被下载完毕,则readyState属性为uninitialized,complete属性是false.当下载完毕时, readyState为complete,而如果此时图片还没有显示,complete为false,显示以后(display:block)此属性才变成true

没想到一个简单的功能竟然这么费劲,浏览器的兼容问题很难顺利解决,特别是很多细节非常浪费时间,希望别人遇到这些问题时还是多考虑从服务端脚本中解决这些问题。从而绕过对浏览器兼容的复杂测试。


另外我还非常疑惑,为什么现实中的ie对于onload事件,大部分不是异步的,只有少数同志的ie对于此事件是异步的。

 

(字节数 : 2192)
utf8的编码算法 [原创 1/16/2006 9:21:19 PM]  


         unicode字符集是我们世界上最完善最全面的字符集,几乎包含了世界上所有的字符。其实可以这么理解,unicode字符集是一张巨大的表格,把世界上各种语言的字符和标点符号都编排到里面,然后按照一定的顺序给每个字符排号(很遗憾的是对于中文来说,这个顺序不是按照汉语拼音的顺序)。有了这张巨大的表格,世界上大部分字符就都有一个unicode内码(整数)来对应。计算机就通过记录字符的unicode码来表示这个字符,然后交给操作系统,操作系统通过unicode码到字符字体点阵的映射把这个内码转换成字体点阵显示到我们的屏幕上。
       
         utf8是我们常用的编码方式,在web开发中使用utf8编码能完全解决字符集问题。其实utf8是unicode字符集的一种物理实现,它描述了如何高效的存储unicode的内码(就是上面说的字符在字符集的顺序码),RFC2044文档(http: //www.ietf.org/rfc/rfc2044.txt?number=2044)描述了如何从一个内码转换成utf8格式的算法。英文不好没关系,看这个转换表就会马上明白了:

   UCS-4 range (hex.)           UTF-8 octet sequence (binary)
   0000 0000-0000 007F   0xxxxxxx
   0000 0080-0000 07FF   110xxxxx 10xxxxxx
   0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
   0001 0000-001F FFFF   11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
   0020 0000-03FF FFFF   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
   0400 0000-7FFF FFFF   1111110x 10xxxxxx ... 10xxxxxx

         上面的表格左边是16进制表示的unicode内码,最后一行的16进制数“7FFF FFFF”是utf8所能表示的内码的最大值,换成10进制是这样的一个数:2147483647(够大吧:))[对不起,此文最初这儿写错了,已改正]。上面表格中右边一列就是utf8的二进制格式,转换规则可谓一目了然。我直接给出算法吧(js代码):


    function toUtf8(code)
    {
     var iByte=0;
     var i=0;
     result="";
     while(code>0x7f)
     {
      iByte=code%0x40;
      code=(code-iByte)/0x40;
      result="%"+(iByte|0x80).toString(16).toUpperCase()+result;
      i++;
     }
     prefix=[0x0,0xc0,0xe0,0xf0,0xf8,0xfc];
     if(i>prefix.length)
     {
      i=5;
     }
     result=""+(code|prefix[i]).toString(16).toUpperCase()+result;
     return result;
    }
        


          例如字符"汉"的unicode是6C49,把这个unicode字符表示为一个大整数,然后转变成多字节编码110110001001001:
          观察这个整数的二进制码序列(110,110001,001001)
          从后往前取
          如果这个二进制序列只有后7位(小于128,也就是ascii字符)则直接取后7位二进制数形成一个utf8字符。
          上面的字符“汉”二进制序列大于7位,所以取后6位(1001001),加10形成一个utf8字节(10 001001 ,16进制89)。
          剩下的二进制序列(110,110001)从后向前取6位,加10形成一个utf8字节(10 110001,16进制B1)。
          剩下的二进制序列(110)从后向前取6位,由于不足6位,将这个数和1110000相或,得到字符11100110,16进制E6
          最后,就得到了utf8编码,16进制表示为E6B189

           【应用领域】
           虽然这种标准算法大部分已经由开发工具提供商或者库实现,但是我们依然会在某些时候需要自己实现这种算法:
           某些浏览器(ie5)不支持encodeURI函数,那么使用ajax提交汉字有两种方案:
                 汉字字符经escape转变成形如"%uXXXX"的字符,服务端使用上述算法将u后面的unicode序号转变成utf8字符
                 使用上面的算法结合escape直接在客户端实现encodeURI功能(推荐使用这种方案)

            实现json-rpc服务
            json是javascript的对象直接量形式,其中字符串必须是unicode字符,汉字需要转换成"\uXXXX"的形式。所以我们需要把服务端字符进行json转变。对于php来说,现在有两个开源项目JSON-PHP 和 PHP-JSON
            json-rpc是一种以json为数据格式的rpc协议,可以方便应用与ajax项目中,json-rpc.org是一个开源的实现。
 

 

(字节数 : 4944)
从javascript语言本身谈项目实战 [原创 1/15/2006 9:27:16 PM]  

从javascript语言本身谈项目实战
                                             
dulao5  2005-1-15

       随着ajax的升温,javascript越来越得到人们的重视。重要的是,ajax在一定程度上带来了web软件架构上的变化,人们把越来越多的功能分配到客户端实现,javascript子项目规模越来越大。如何更高效的使用javascript,如何更科学的组织javascript,如何更顺利的保证项目进展?我想就我的经验谈一点浅见。

一。 开发人员需要认真学习javascript语言本身
       由于javascript是“世界上最被误解的语言”, 大部分人对javascript语法并没有全面了解过,只是凭借看起来很像c或者java的关键字按照自己的理解写javascript代码。其实 javascript是一种很独特的语言,和c++/java有非常大的区别,要想用javascript做大一些的项目,开发人员必须老老实实的学习 javascript的语法。真正掌握了语法后,我们才不会把delete看成释放内存对象,才不会为到底参数传递是值传递还是引用传递而烦恼。真正理解了javascript的基于原型的OO方式,才可能写出具有良好架构的javascript程序。
       《javascript权威指南》是一本最合适的书,郑重推荐。另外ECMA262 文档可以作为参考。网上流行的jscript手册chm版本使用起来比较方便,不过这是微软的jscript实现,和标准的javascript略有区别,使用时应该注意上面的注脚信息。关于javascript的原型和OO,网上已经有很多文章介绍了,在此不再多说。

二。 良好的代码来源于良好的设计
       只有设计优良,代码才会写的漂亮。现在的javascript子项目已经不是以前web项目中的“边角料”和散兵游勇了,在较大的ajax项目内, javascript将非常复杂,ajax的异步模型也和以前顺序执行的程序设计有所区别。所以建议做javascript前首先做好设计。推荐使用用例驱动的方式,把用例分析清楚,以便全局考虑所有可能的页面交互过程,绘出页面内一些对象之间的交互图,分析一些数据对象的状态,作出精细的 javascript设计。

三。 使用设计模式,复用其他领域的设计经验
        如果javascript非常复杂,可以考虑使用一些模式。我想大部分做javascript的开发者都不是“javascript科班”出身吧:) 掌握了javascript的语言本质,就可以复用我们在其他领域的经验了。使用javascript框架或者ajax框架,使用单例模式做一个全局的数据缓冲池,或者使用观察者模式把界面对象和数据对象分离,使用命令模式实现用户的操作队列等等。

四。 调试代码的技巧
        javascript的代码不太好调试,这是由于:

  • 一般的开发人员对javascript语言本身不太精通。也就是上面提到的。
  • web项目包含较多的因素,复杂性加剧。服务端脚本、模板、html、js等很多环节都可能增加调试难度。
  • 浏览器存在兼容性问题。有可能在一个细节问题上IE、Mozilla、opera等浏览器都有差异。
  • 工具的缺乏。虽然mozilla的jsdebugger非常好用(还有bug,比如eval时调试器有些问题),但是其他浏览器环境下调试工具就不怎么样了。ms系统自带的script debug工具调试本地代码还可以,直接调试网站js代码表现欠佳。opera除了javascript控制台外我没有找到其他调试工具。

       在此我推荐几个调试技巧:

  1. 使用Mozilla firefox的jsdebugger插件。这个我不再多说了,最经典的js调试工具。在线调试远程站点的javascript效果非常棒。
  2. 把问题隔离,建立本地的html文件和js文件,使用ms script debug调试工具来调试。如果js模块比较独立,可以使用这个工具的。如果写hta的项目,这个工具当然是首选了。
  3. httpWatch 这是一个ie下的插件,非常好用,能够监视ie中的任何http会话,并能够看到http会话的原文。可以通过这个工具了解你的程序有没有和服务器产生会话,参数&返回的数据到底是什么。
  4. 在网页内建立用于调试的textarea
    可以在网页内建立一个textarea来接受你想运行的js语句,然后加一个按钮使用js的eval函数执行你输入的代码。
    这种方式非常适合在线调试,网页出错后写代码输出页面内的对象值。建议写一些dump工具函数配合使用,效果更佳。
    我非常喜欢这种方式,可以随时使用开关打开页面内隐藏的textarea进行调试,感觉很像给一台服务器接上了终端,然后使用shell可以做任何事情:) 函数可以在这里重新定义,可以任意操作界面中的任何元素,调用任何对象的任何函数,输出任何你需要的运行时刻值。
  5. 使用异常(exception)和断言(assert)
    使用try{}catch(e){}结构不光可以屏蔽出错信息,让界面更友好。我们的程序可以使用异常、抛出异常来构建一种更好的出错处理机制。
    有这样一个故事,我在使用string.localeCompare函数时随手写了这样的代码:
    var iRe = str1.localeCompare(str2);
    switch(iRe){
    0: return ....
    1: return ....
    -1:return ....
    defalut:throw "error:localeCompare return other value"
    }
    写完就忘了,没想到我的同事在linux下使用firefox时,异常被抛出了,然后我们得知:linux firefox下localeCompare返回的不只是0/1/-1,而是返回一个具体值.
    这个异常抛出有效的检测出了代码的不完美。

    firefox下的异常dump后能得到较为详细的调用栈信息,这一点非常好。IE的异常信息没有这么详细。

    异常和断言也可以结合成为一个非常有效的调试工具。
    断言(assert)是在其他语言中的一种很有效的调试工具,常常以这种形式出现:
    assert(<条件>);
    在程序处于debug状态,当条件为假时,系统中止运行并报告这个断言。由于断言是我们自己定义的,所以我们可以很容易的判断出出错的地方,进而找到bug所在。
    javascript语言没有提供宏,也没有提供assert,我们可以这样模拟
    if(_is_debug) assert = function(expression , strLable){
        if( !expression ) throw Error(strLable);
    }
    else assert = function(){};//_is_debug是一个全局变量
    这样可以实现在发生"不可能的事情"的时候,让程序在调试模式下抛出异常,在发布版本中不作理会。

    可以这样输出当前栈的调用信息,弥补刚才提到的IE中异常对象没有栈信息的缺陷:
    function callStackInfo(){
    var s="",line="";
    var cer=arguments.callee.caller;
    while(cer){
    var sf=cer.toString();
    s+=line+sf.substring(sf.indexOf('function'),sf.indexOf('{'))+"\n";
    line=".."+line;
    cer=cer.caller;
    }
    return s;
    }

本文只就javascript在web开发,特别是在ajax方面的开发做了一些讨论,主要在于管窥如何更好的使用“纯javascript”。web开发还有很多其他方面,比如xml和Dom等实际上和javascript息息相关,但是本文没有涉及,还请见谅。欢迎各位朋友就我的讨论多提意见。
--
-------------------------------------------------------------------
                                                                 dulao5 敬上

 

(字节数 : 5530)
我的linux终于能上网啦哈哈 [原创 1/14/2006 11:13:39 PM]  
搞了这么久,终于我的机器能上网啦

以前不能上网的原因:
1. 不会判断网卡到底装了没有。还以为自动装了呢
2. 下载的是vidia_x86_64的驱动
3. 以为自己的机器是amd 64位,那么安装的fedora就是64的。其实我的光盘是i386的,如果想要64的,需要另外一套光盘
4. 自己的操作系统一直工作在32位模式下,自己居然不知道,安装vidia_x86_64的驱动时给出了提示,自己没看清

后来终于看清了人家的提示,于是顿首醒悟,下载安装了vidia_i386的驱动,安装出奇的容易,界面非常友好,出了村过了河有烙一张大饼的工夫就装好了

然后配置adsl,唰的一下就上网啦,哈哈

发现没装汉字字体库和输入法,参考了linuxsir.org的文章,搞定了!

有空把我的曲折过程写写。睡觉去喽

 

(字节数 : 387)
我的机器使用华擎K8NF4G-SATA2的板子,
芯片组是
# nVidia GeForce 6100 芯片组
# nVidia nForce 410 MCP 芯片组
板子集成了声卡显卡&网卡,其中网卡是Realtek PHY RTL8201CL

我现在安装fedora 4, 已经自动安装了linux_nforce_amd64的驱动

而且Realtek 官方网站说了,Realtek PHY RTL8201CL 的网卡不需要驱动,只需要安装芯片组驱动即可

但是我现在ifconfig HW出错:
HW: error fetching interface information: Device not found

我已经使用adsl-setup做了设置,试图使用eth0设备,但是使用adsl-start报错说 Device not found

请问我应该怎么办??

---------------------
ifconfig命令的信息:
Link encapocal Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3106 errors:0 dropped:0 overruns:0 frame:0
TX packets:3106 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3749743 (3.5 MiB) TX bytes:3749743 (3.5 MiB)
ispci命令关于网络的信息:
00:14.0 Bridge: nVidia Corporation MCP51 Ethernet Controller (rev a1)

 

(字节数 : 1081)
linux下adsl拨号还没搞定:( [原创 1/12/2006 10:22:43 PM]  
adsl-setup设置基本信息
输入adsl-connect命令给出下面的信息:
phpoe: ioctl(SIOCGIFHWADDR) : session 0: no such device
using interface pppo
connection terminated
我的网卡有问题吗?

 

(字节数 : 182)
function GetCurrentStyle (obj, prop) {
	if (obj.currentStyle) {
		return obj.currentStyle[prop];
	}
	else if (window.getComputedStyle) {
		prop = prop.replace (/([A-Z])/g, "-$1");
		prop = prop.toLowerCase ();
		return window.getComputedStyle (obj, "").getPropertyValue(prop);
	}
	return null;
}

代码来自于http://tvweek.com/javascripts/default.js

 

(字节数 : 390)
fedora终于装好了 [原创 1/11/2006 11:01:46 PM]  

今天跟justlee兄说,再试最后一次不行就放弃
现在终于装好了,运气好啊,没出现什么错误,换光盘时候很小心,等光盘方进入稳定了以后再Ok,安装了四十分钟后成功了。
驱动也自己装上了,显卡正常,可以做到1280哈哈

明天中文化,配置网卡和拨号程序嘻嘻,睡去了~~~

 

(字节数 : 166)
上一页 | 1 ... | 3 | 4 | 5 | 6 | 7 | ... 11 | 下一页
和讯个人门户 v1.0 | 和讯部落 | 客服中心