<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-29499891</id><updated>2012-02-17T10:04:30.898+08:00</updated><title type='text'>好记性不如烂笔头</title><subtitle type='html'>hero of IT.
Open Source,Linux,
ubuntu,gentoo,SUSE,Magic Linux,RedFlag Linux,Fedora Core Linux,Everest Linux
wxWidgets,Code::Blocks,C++,php,python,bash,WordPress,NORTHEASTERN UNIVERSITY,China</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-29499891.post-116478094295922101</id><published>2006-11-29T14:14:00.000+08:00</published><updated>2007-03-12T21:52:44.170+08:00</updated><title type='text'>迁至新站点</title><content type='html'>点&lt;a href="http://www.herofit.cn"&gt;这里&lt;/a&gt;访问新站点 http://www.herofit.cn&lt;br /&gt;&lt;br /&gt;谢谢支持&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116478094295922101?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116478094295922101/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116478094295922101&amp;isPopup=true' title='7 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116478094295922101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116478094295922101'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/11/blog-post_29.html' title='迁至新站点'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116357143254064041</id><published>2006-11-15T14:03:00.000+08:00</published><updated>2006-11-29T14:22:33.516+08:00</updated><title type='text'>linux下刻录建议</title><content type='html'>gnome中集成了CD／DVD creator，用它我们就可以完成基本的刻录操作了。&lt;br /&gt;昨天刻了好几次发现，直接拖动文件刻录总是到刻一会儿就会出现&lt;blockquote&gt;write failed: Resource temporarily unavailable&lt;/blockquote&gt;反复几次都出现这样的错误，废了几张盘。还有CD／DVD creator不能正常地探测刻录盘的容量。&lt;br /&gt;因此，为了少刻废盘，建议先将要刻的东西先做成iso镜像，这样虽然会多花十分钟，但刻废盘的概率会大大降低。CD／DVD creator，k3b等都可以制作iso。&lt;br /&gt;&lt;br /&gt;我的刻录机是通过IDE2USB连到电脑上的。经实测，刻录速度在5x到8x之间（是U口的速度限制吧）。刻一张4G的盘一般需要6分钟左右。&lt;br /&gt;&lt;br /&gt;另外我想，之前刻盘失败的原因是不是因为/tmp太小呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116357143254064041?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116357143254064041/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116357143254064041&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116357143254064041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116357143254064041'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/11/linux.html' title='linux下刻录建议'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116343294360117125</id><published>2006-11-13T23:48:00.000+08:00</published><updated>2006-11-29T14:18:47.033+08:00</updated><title type='text'>linux下继续CS</title><content type='html'>CS是上大学来玩的第一个游戏，到现在还是最喜爱的游戏。&lt;br /&gt;但是，自从用了linux后，不能再像以前那样痛快淋漓地在CS中拼杀了。&lt;br /&gt;早就听说，linux可以通过cedega这个模拟器可以玩windows下的大部分游戏。&lt;br /&gt;是的，真的可以。但在显卡没有3D驱动时，帧率似乎没上过4fps。&lt;br /&gt;当时装个3D驱动真是很难，非常难……&lt;br /&gt;没想，在第N次毫无希望地尝试时，成功了。从此，CS可以天天打了，鼠标感觉和win下有些不同，但问题不大，画质，流畅度不差于win下，不过碰到烟雾弹时，就成幻灯片了（1.6，1.5未知）。&lt;br /&gt;这样过了一段时间，觉得和机器人打有些不爽了。 怎么办呢？HF应该是用不了了。于是想尽一切办法动员室友。终于动员好了，却发现服是怎么也连不上win下的服务器，win下也连不上我建的（忘了什么错误提示了）。网上搜了一番，没什么收获。想想也是，我这么干的人太少了……&lt;br /&gt;本来说好1.5，虽然最初打的就是它。 但那天，看到一个只有100MB（未压缩）的CS1.5，居然又想试一试了。当时没想用1.5成成功局域网对战的，但今天一试，真的可以。wine和cedega都可以，速度都差不多。现在爽了，另外也突然发现原来周围寝室都只玩1.5的，拉人还方便些！&lt;br /&gt;提一下crossover office，模拟一般程序，CS却不行。因为它不像其它模拟器那样忽略cs加入时那个html窗口的显示，结果就是一直卡在那儿，CPU占用率100％&lt;br /&gt;最后检讨一下：机器上的两个CS都是D版的（是不是这个导致在1.6下无法对战呢？）。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116343294360117125?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116343294360117125/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116343294360117125&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116343294360117125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116343294360117125'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/11/linuxcs.html' title='linux下继续CS'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116212373258191612</id><published>2006-10-29T19:57:00.000+08:00</published><updated>2006-11-16T19:47:57.446+08:00</updated><title type='text'>永中office 2007正式版试用</title><content type='html'>今天，下了正式版试用版。并在gentoo下安装试用。&lt;br /&gt;&lt;br /&gt;和beta相比，有几处进步：&lt;br /&gt;安装过程中文不乱码；&lt;br /&gt;正确地生成了快捷方式；&lt;br /&gt;修复了剪贴板BUG；&lt;br /&gt;&lt;br /&gt;存在的问题：&lt;br /&gt;安装过程最后仍然异常退出，与beta版相同；&lt;br /&gt;使用时容易异常崩溃，尤其是在scim启动时。&lt;br /&gt;&lt;br /&gt;总体来说，非常优秀。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;相关链接：&lt;br /&gt;&lt;/span&gt;&lt;a href="http://herofit.blogspot.com/2006/09/office2007beta-linuxubuntu.html"&gt;beta剪切板补丁&lt;br /&gt;&lt;/a&gt;&lt;a href="http://herofit.blogspot.com/2006/08/office-2007-beta.html"&gt;永中集成Office 2007 beta精简版安装&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116212373258191612?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116212373258191612/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116212373258191612&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116212373258191612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116212373258191612'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/office-2007.html' title='永中office 2007正式版试用'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116166762282256417</id><published>2006-10-24T13:17:00.000+08:00</published><updated>2006-11-16T19:47:38.220+08:00</updated><title type='text'>2006年10月常见linux桌面发行版关注度比较</title><content type='html'>&lt;table border="1"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;桌面发行版&lt;/th&gt;&lt;br /&gt;&lt;th&gt;google关注度&lt;/th&gt;&lt;br /&gt;&lt;th&gt;baidu关注度&lt;/th&gt;&lt;br /&gt;&lt;th&gt;诞生时间&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Debian&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;150,000,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;1,230,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;1993&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;SUSE&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;64,300,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;818,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;1998&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Ubuntu&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;63,300,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;1,140,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;2004&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Fedora Core&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;47,900,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;350,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;2003&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Gentoo&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;30,600,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;310,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;?&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Mandriva&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;23,100,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;101,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;2005&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Slackware&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;20,600,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;178,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;1993&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;红旗Linux&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;1,070,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;721,000&lt;/td&gt;&lt;br /&gt;&lt;td&gt;1999&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;MagicLinux&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;142,000&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;33,500&lt;/td&gt;&lt;br /&gt;&lt;td&gt;2004?&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;br /&gt;采集时间：Tue Oct 24 13:15:45 CST 2006&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;今年九月份，我发了第一个关注度比较&lt;a href="http://herofit.blogspot.com/2006/09/2006linux.html"&gt;表格&lt;/a&gt;。和九月份相比，我们看到gentoo向上串了两位，Gentoo和Slackware对掉了位置；而在国内，情况前三名的关注度都几近翻翻，优势越来越明显。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;相关网址：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://herofit.blogspot.com/2006/09/2006linux.html"&gt;http://herofit.blogspot.com/2006/09/2006linux.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116166762282256417?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116166762282256417/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116166762282256417&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116166762282256417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116166762282256417'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/200610linux.html' title='2006年10月常见linux桌面发行版关注度比较'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116145728007256348</id><published>2006-10-22T02:58:00.000+08:00</published><updated>2006-11-16T19:47:52.666+08:00</updated><title type='text'>gentoo安装笔记</title><content type='html'>我觉得应该把主流的linux版本都试一下。前些天无意到gentoo区看了几篇置顶帖，有些触动，后来又去gentoo官网看了一些安装文档，于是决定装个gentoo试试。第一次安装，还是准备不足，碰到很多麻烦。一路摸索过来，虽然还有一些问题没有解决，现在终于得到一个可用的系统了。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;下面简单写一下我经历的安装过程：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;我先到http://www.gentoo.org/main/en/mirrors.xml挑了一个镜像站点，然后下载livecd-i686- installer-2006.1.iso，我还下了文档中提到的stage3（其实不用下）。 检验下到的iso镜像，无误后刻成光盘。&lt;br /&gt;&lt;br /&gt;用光盘启动电脑，我不知道竟然是启动到GUI模式的（这下我才明白为什么叫livecd）。&lt;br /&gt;&lt;br /&gt;等10 秒，默认以gentoo登陆。 点击桌面上安装图标启动安装程序（我启动的是gtk+的），然后进行一系列选择。很遗憾，我第一步就选错了，安装模式选成了默认的。于是每次到17步的install都会出现一大堆问题。主要是分区出的问题，因为我在安装前把系统中放有stage3文档的分区挂了上来，因为有一步需要选择stage3文件的位置。&lt;br /&gt;&lt;br /&gt;几次失败后，我决定先在安装程序外分完区，再进行安装。 按ctrl+alt+f1换到终端1，看到已经以root登陆。&lt;br /&gt;&lt;blockquote&gt;passwd&lt;/blockquote&gt;&lt;br /&gt;换一个root密码。然后按ctrl+alt+f7回到GUI下。&lt;br /&gt;&lt;blockquote&gt;su&lt;/blockquote&gt;&lt;br /&gt;切换到root身份。&lt;br /&gt;&lt;blockquote&gt;fdisk /dev/hda&lt;/blockquote&gt;&lt;br /&gt;开始分区。原来装ubuntu时交换空间太小了，待机后经常起不来。于是先把swap及它的后一个分区删掉，然后建立520MB的linux分区，此处为 /dev/hda9；再建立一个100MB的linux分区，此处为/dev/hda10；最后把剩下的划为/dev/hda11，大小为7个G左右。&lt;br /&gt;重启，获得root权限后开始建立文件系统。&lt;br /&gt;&lt;blockquote&gt;mkswap /dev/hda9&lt;br /&gt;mkfs.ext2 /dev/hda10&lt;br /&gt;mkfs.reiserfs /dev/hda11&lt;/blockquote&gt;&lt;br /&gt;当时第一步忘了，走了些弯路。&lt;br /&gt;&lt;br /&gt;分好了，重新运行安装程序，老说设置路由失败。 后来在root运行安装程序，同样出现这个问题。设成dhcp后又出现其它的问题。&lt;br /&gt;&lt;br /&gt;没办法，只好看光盘上的文档。 突然看到pdf中提到一句话，第一步应该选择“network－less"，于是按它说的做。由于是试验性的，而且文档及安装程序中提示“不联机，可能无法选择一些软件包”，所以在后面的选择软件包的时候我什么没有选。&lt;br /&gt;&lt;br /&gt;挂载点选择时，不小心把想要的/mnt/hda1写成了/dev/hda1，结果又出错好几回。郁闷。&lt;br /&gt;&lt;br /&gt;后来总算把gentoo装上了。 一重启我都郁闷了，只有字符界面？！ 到现在我也一直在想，是我当时没把x11，gnome等选上的原因，还是这就是gentoo的特色（谁来解释一下？）。&lt;br /&gt;&lt;br /&gt;不管那么多了，开始简单试一试先。&lt;br /&gt;先看一下能上网不？很遗憾，不能，根据gentoo_network_configuration.txt的说明，把/etc/conf.d/net改成类似下面的样子。&lt;br /&gt;&lt;blockquote&gt;modules=( "ifconfig" )&lt;br /&gt;config_eth0=( "219.216.xxx.25 netmask 255.255.255.0" )&lt;br /&gt;routes_eth0=(&lt;br /&gt;"default via 219.216.xxx.254" # IPv4 default route&lt;br /&gt;)&lt;/blockquote&gt;&lt;blockquote&gt;/etc/init.d/eth0.net start&lt;/blockquote&gt;&lt;br /&gt;提示没有网络设备。&lt;br /&gt;手动加载网卡驱动。&lt;br /&gt;&lt;blockquote&gt;modprobe 8139cp&lt;br /&gt;modprobe 8139too&lt;/blockquote&gt;&lt;br /&gt;这下网卡驱动起来了。避免麻烦，我将两个模块都加入了/etc/modules.autoload.d/kernel-2.6，让系统启动时自动加载（后面发现，8139cp这个用不着）。&lt;br /&gt;&lt;blockquote&gt;/etc/init.d/eth0.net restart&lt;/blockquote&gt;&lt;br /&gt;这下可以上网了。&lt;br /&gt;&lt;br /&gt;接着试了一下光驱，手动挂载可以用，U盘也一样。&lt;br /&gt;&lt;br /&gt;现在，开始一些关键性操作了。&lt;br /&gt;先是编辑/etc/make.conf。&lt;br /&gt;由于是教育网的，加入&lt;br /&gt;&lt;blockquote&gt;GENTOO_MIRRORS="ftp://ftp3.tsinghua.edu.cn/mirror/gentoo ftp://ftp.sjtu.edu.cn/gentoo"&lt;br /&gt;SYNC="rsync://ftp3.tsinghua.edu.cn/gentoo/gentoo-portage"&lt;/blockquote&gt;&lt;br /&gt;可以加入多个镜像站点，之间用空格隔开即可。&lt;br /&gt;编辑USE参数，这里我只是简单地把ipv6改成了-ipv6。&lt;br /&gt;&lt;blockquote&gt;emerge --sync&lt;/blockquote&gt;&lt;br /&gt;这步相当于升级软件列表，第一次可能需要五分钟左右。&lt;br /&gt;系统默认使用nano作为编辑器，非常不习惯。先把vim装上&lt;br /&gt;&lt;blockquote&gt;emerge vim&lt;/blockquote&gt;&lt;br /&gt;现在开始升级内核。&lt;br /&gt;&lt;blockquote&gt;emerge genkernel&lt;/blockquote&gt;&lt;br /&gt;genkernel是编译内核的工具，非常方便。一会儿要用。&lt;br /&gt;下载推荐的内核源码。这里用推荐的gentoo-sources内核。&lt;br /&gt;&lt;blockquote&gt;emerge gentoo-sources&lt;/blockquote&gt;&lt;br /&gt;用genkernel编译内核，如果你以前有内核的.config文件，可以用 --kernel-file=XX来指定。如果你想让genkernel编译后自动在grub中加入相应选项，应该将 /etc/genkernel.conf中的BOOTLOADER="grub"前的注释去掉。默认情况下，genkernel会将menuconfig 生成的配置文件存在/etc/kernels/文件夹下，再次编译时应该很有用。&lt;br /&gt;&lt;blockquote&gt;genkernel --menuconfig all&lt;/blockquote&gt;&lt;br /&gt;选择适当的编译选项，把没用的去掉。把必须要的加上，比如我就把8139的网卡编译到内核里了。&lt;br /&gt;由于编译期间什么也不输出，为了确保genkernel在工作。你可以再开一个终端用top查看cpu占用率或有否cc，make等程序在运行。&lt;br /&gt;编译完后，手动检查/boot/grub/menu.lst中是否加入新内核的项目，没有则手动加上。&lt;br /&gt;重启，用新内核启动。&lt;br /&gt;&lt;blockquote&gt;shutdown -r now&lt;/blockquote&gt;&lt;br /&gt;或用ctrl＋alt+delete重启。&lt;br /&gt;&lt;br /&gt;用新内核启动。&lt;br /&gt;我这里情况一切正常。不过/etc/modules.autoload.d/kernel-2.6原来加入的东西现在要去掉了，否则会用一个错误提示。&lt;br /&gt;&lt;br /&gt;第一次系统彻底升级。&lt;br /&gt;&lt;blockquote&gt;emerge --pretend --update --deep world|less&lt;/blockquote&gt;&lt;br /&gt;先用less看一下需要升级多少东西。&lt;br /&gt;下载升级包。&lt;br /&gt;&lt;blockquote&gt;emerge --update --deep world --fetchonly&lt;/blockquote&gt;&lt;br /&gt;先下载。有很多软件要装时，我习惯先下载完。&lt;br /&gt;这时候出现了很大的问题。因为x11-misc/utils-macros需要从freedesktop.org下载，而我这里是教育网，无法直接访问。因为习惯了ubuntu源的概念，以为所有的软件包都是在源里的。因此我还一度认为这是gentoo源的bug，不过我不是唯一这么认为的人，因为官方网站上就有人把这个问题当bug提交上去了。后来到linuxsir发帖求助。通过大家帮助找到了解决方法－－是用代理。&lt;br /&gt;&lt;blockquote&gt;export http_proxy="ip:port"&lt;/blockquote&gt;&lt;br /&gt;然后就可以完成下载了。估计是emerge用的wget用了这个代理。&lt;br /&gt;注意一个问题，如果把上面的export去掉，用set是可以看到http_proxy的，但很明显，wget看不到。不用代理时记得&lt;br /&gt;&lt;blockquote&gt;unset http_proxy&lt;/blockquote&gt;&lt;br /&gt;升级。&lt;br /&gt;&lt;blockquote&gt;emerge --update --deep world&lt;/blockquote&gt;&lt;br /&gt;把--fetchonly去掉就可以了。这里可能需要不少时间，特别是gcc，glic等。我发现gcc把对fortran的支持编上了，而我几乎没可能用到，下次编我会研究一下怎么让它不编上fortran，不知道加上-fortran行不行。&lt;br /&gt;上面的过程最后可能会提示需要改写一些conf文件。这时候可以用etc-update帮忙。&lt;br /&gt;&lt;blockquote&gt;etc-update&lt;/blockquote&gt;&lt;br /&gt;这个工具会试着自动解决问题，当它不能时，会要求你手动编辑。像这里的情况，我们要保留自己编辑过的/etc/conf.d/net，否则又得重新配置了。注意etc-update可能会经常用到。&lt;br /&gt;&lt;br /&gt;现在，装上x window吧。&lt;br /&gt;早就想xfce4了，今天就装这个（其实是考虑这个能小的，不用费太多时间）。&lt;br /&gt;&lt;blockquote&gt;emerge xfce |less&lt;/blockquote&gt;&lt;br /&gt;看一下要装多少软件。好像是一百多个。多数是基本x window系统。&lt;br /&gt;&lt;blockquote&gt;emerge xfce --fetchonly&lt;/blockquote&gt;&lt;br /&gt;下载先。&lt;br /&gt;&lt;blockquote&gt;emerge xfce&lt;/blockquote&gt;&lt;br /&gt;安装。搞定后，就可以用startxfce启动xfce环境了。还有，我现在是在ubuntu里，不记得上面的命令里应该是xfce还是xfce4了，大家自己试。&lt;br /&gt;xfce用的gtk+，所以一切看上去都挺像gnome的。&lt;br /&gt;之后我又想把KDE或gnome装上，对比后KDE需要92个包，而gnome需要两百多个。本着经济的原则，我选择了KDE。下载很快就完成，但KDE的整个编译安装用了我9个小时。崩溃了！也直接造成我放弃安装gnome（下都下完了）。&lt;br /&gt;试图运行startkde但没成功，不过运行starx后起来了xterm还是qterm什么的，在里面可以运行kdesktop类似命令启动起来。本来想换用gdm或kdm的，但一时没什么方向（当时都不知道查man X，也不知道gentoo.linuxsir.org上的文档版块有很多好东西），但xdm倒是很轻松的用上了。&lt;br /&gt;&lt;blockquote&gt;rc-update add xdm default&lt;/blockquote&gt;&lt;br /&gt;图形登陆这些不是主要矛盾。 但我发现我必须安装firefox，因为xfce4下的那个kde下的全能家伙(k＊)并不能显示所有的中文（字体就别提了），而且也几乎用不了ajax的东西。&lt;br /&gt;&lt;blockquote&gt;emerge mozilla-firefox --fetch&lt;br /&gt;emerge mozilla-firefox&lt;/blockquote&gt;&lt;br /&gt;这下所有中文都能显示了（字体还是糟糕）。下面安装flash插件。&lt;br /&gt;&lt;blockquote&gt;emerge netscape-flash&lt;/blockquote&gt;&lt;br /&gt;一句话就搞定。&lt;br /&gt;下面开始新建普通权限用户gahlong。&lt;br /&gt;useradd gahlong&lt;br /&gt;passwd gahlong&lt;br /&gt;由于，我的gentoo用的是和ubuntu同一个分区作为/home，我担心gentoo把ubuntu的/home/ahlong覆盖了，所以我取名叫gahlong（后面发现这个担心没必要）。&lt;br /&gt;用gahlong登陆提示没主目录。&lt;br /&gt;&lt;blockquote&gt;mkdir /home/gahlong&lt;br /&gt;usermod -d /home/gahlong gahlong&lt;/blockquote&gt;&lt;br /&gt;本来还准备chown的，但usermod好像已经帮我们做了。这下登陆正常了，不过还是有点不爽，我要改登陆名。&lt;br /&gt;&lt;blockquote&gt;usermod -l ahlong gahlong&lt;/blockquote&gt;&lt;br /&gt;同样地，usermod也改了/home/gahlong为ahlong的了。&lt;br /&gt;安装xmms。到现在还没有听到电脑出声呢。&lt;br /&gt;&lt;blockquote&gt;emerge xmms&lt;/blockquote&gt;&lt;br /&gt;什么声音也不出。看起来声卡得配一下。编译内核时我已经把alsa编过内核的，还需要干什么呢？&lt;br /&gt;&lt;blockquote&gt;emerge --search alsa|less&lt;/blockquote&gt;&lt;br /&gt;我把搜到的都往上装。&lt;br /&gt;&lt;blockquote&gt;emerge alsa-drivers alsa-utils&lt;/blockquote&gt;&lt;br /&gt;编译alsa-drivers时提示内核已经有了，自动跳过。装上后一个后。可以开始配置声卡了。&lt;br /&gt;&lt;blockquote&gt;alsaconf&lt;/blockquote&gt;&lt;br /&gt;选择就是了。&lt;br /&gt;&lt;blockquote&gt;alsamixer&lt;/blockquote&gt;&lt;br /&gt;设置音量什么，不过好像不是必须要运行。&lt;br /&gt;这样之后，xmms正常工作了。&lt;br /&gt;如果普通用户不能使用声卡。运行&lt;br /&gt;usermod -G audio -a ahlong&lt;br /&gt;将用户加入audio组再重新登陆就可以了。&lt;br /&gt;我要看电影，装mplayer。&lt;br /&gt;&lt;blockquote&gt;emerge mplayer&lt;/blockquote&gt;&lt;br /&gt;一些包是从sf.net下的，所以又要用代理。&lt;br /&gt;不过下到Blue皮肤时，提示验证码不对。试了几次都不对，这下郁闷了。后来看了linuxsir的gentoo解决之道。运行&lt;br /&gt;&lt;blockquote&gt;emerge --sync&lt;/blockquote&gt;&lt;br /&gt;问题解决。顺便装上了mplayer。看来gentoo真是发展神速。差不多每天更新，源里都删掉很多又加入很多。&lt;br /&gt;不过用mplayer看电影，放大或全屏时，掉帧相当严重，几乎不能看。mplayer也输出“你的机器太慢了”。试了几种输出驱动都没有改善。在ubuntu下我用的是gl2输出……对了，得装ATI驱动。&lt;br /&gt;&lt;br /&gt;我下面的计划是安装显卡驱动，接着装WQY字体，接着把gdm什么的搞定。&lt;br /&gt;安装ATI显卡驱动。&lt;br /&gt;&lt;blockquote&gt;emerge ati-drivers&lt;/blockquote&gt;&lt;br /&gt;默认装上的是8.25.18，不过源里8.29.6也已经有了。一切都很顺利。不过运行&lt;br /&gt;&lt;blockquote&gt;aticonfig --initial&lt;/blockquote&gt;&lt;br /&gt;有些问题，提示没有xorg.conf，去/etc/X11下看下，果然没有这个东西。我就直接拷了ubuntu的来用，居然也能用。&lt;br /&gt;不过后面知道，这个时候应该做的是&lt;br /&gt;&lt;blockquote&gt;X -configure&lt;/blockquote&gt;&lt;br /&gt;然后再aticonfig --inital&lt;br /&gt;检查3D加速是否安装成功。&lt;br /&gt;&lt;blockquote&gt;fglrxinfo&lt;/blockquote&gt;&lt;br /&gt;结果还是mesa，而且mplayer的表现也没有任何提升（重启后也是）。&lt;br /&gt;&lt;blockquote&gt;eselect opengl list&lt;/blockquote&gt;&lt;br /&gt;发现系统选个还是mesa，于是&lt;br /&gt;&lt;blockquote&gt;eselect opengl set ati&lt;/blockquote&gt;&lt;br /&gt;强制选成ati，除了list里变成了ati，没有任何实质性改善。不仅如此，fglrxinfo还不能给出相关信息了。&lt;br /&gt;后面又做了很多尝试，比如说卸掉驱动，再手动运行ati*.run安装等等。&lt;br /&gt;在网上找寻了很久，再结合X启动时的错误信息（一直被我忽略）。&lt;br /&gt;终于搞清楚，是ATI和XOrg7.1的配合有问题，具体说是和AIGLX有些问题。网上很多人都遇到了这个问题，不过好像都没有实质解决办法。没办法，只能等fglrx或Xorg的下一版本了。不过这个问题幸好只是影响到3D加速，不影响2D加速。&lt;br /&gt;&lt;br /&gt;不过看电影都不能流畅，我没信心再用下去了，还是等这个问题解决了再用了。虽然ATI大部分显卡都可以用开源驱动，但好像有点复杂，而且很可能从Xorg开始都需要重新编译（从gentoo文档上看的），耗不起那个时间了。&lt;br /&gt;&lt;br /&gt;另外想提的是，emerge或者说portage挺先进的。和apt-get相比一个明显的优势就是可以多个emerge一起完全正常地运行。&lt;br /&gt;&lt;br /&gt;gentoo真不错！推荐大家都试一下！&lt;br /&gt;&lt;br /&gt;相关网址：&lt;br /&gt;&lt;a href="http://www.gentoo.org./doc/en/handbook/handbook-x86.xml"&gt;http://www.gentoo.org./doc/en/handbook/handbook-x86.xml&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxsir.org/bbs/showthread.php?t=265976"&gt;gentoo历史&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxsir.org/bbs/showthread.php?t=263600"&gt;gentoo常用镜像&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gentoo.linuxsir.org/doc/cn/"&gt;gentoo中文文档（真后悔安装前没看）&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116145728007256348?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116145728007256348/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116145728007256348&amp;isPopup=true' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116145728007256348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116145728007256348'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/gentoo.html' title='gentoo安装笔记'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116045033661933298</id><published>2006-10-10T10:36:00.000+08:00</published><updated>2006-11-16T19:48:16.183+08:00</updated><title type='text'>linux下文件的切割与合并</title><content type='html'>切割合并文件在linux下用split和cat就可以完成。下面举些实例进行说明。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.文件切割&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;文件切割模式分为两种：&lt;br /&gt;&lt;blockquote&gt;文本文件；&lt;br /&gt;二进制模式。&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;1.1文本模式&lt;/span&gt;&lt;br /&gt;文本模式只适用于文本文件，用这种模式切割后的每个文件都是可读的。文本模式又分为两种：&lt;br /&gt;&lt;blockquote&gt;按最大文件大小切割；&lt;br /&gt;按文本行数切割。&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;1.1.1最大文件大小切割&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;split -C 5k duanxin split&lt;/blockquote&gt;将文本文件duanxin按每块最大5k的大小进行切割，不打碎行。输出文件名类似splitaa, splitab……&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.1.2 按文本行数切割&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;split -l 100 duanxin split&lt;/blockquote&gt;每个分块100行，不考虑大小。日志分析时应该有用。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.2 二进制模式&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;split -b 5k duanxin split&lt;/blockquote&gt;每个分块（当然，最后一个不保证）大小都是5k，基本不可读。任何类型文件都可以用这种切割模式。&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;2.文件合并&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;cat split* &gt;newduanxin&lt;/blockquote&gt;不管用什么方式切割，合并方法不变。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.其它&lt;br /&gt;&lt;/span&gt;split可以用-a选项指定输出文件名的长度。如&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;split -l 100 -a 3 duanxin split&lt;br /&gt;则输出文件出类似于splitaaa,splitaab。不指定时默认为2。&lt;br /&gt;用-b或-C指定分块大小时，可用的单位有，b for 512bytes, k for 1Kbytes, m for 1 Megbytes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料&lt;/span&gt;&lt;br /&gt;man split&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116045033661933298?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116045033661933298/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116045033661933298&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116045033661933298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116045033661933298'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/linux_10.html' title='linux下文件的切割与合并'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116040628790686174</id><published>2006-10-09T23:03:00.000+08:00</published><updated>2006-11-16T19:47:08.486+08:00</updated><title type='text'>为firefox添加搜索引挚</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/addse.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/200/addse.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;最近发现用百度的次数越来越多了，可每次搜索都要打开网页太麻烦了。&lt;br /&gt;于是想把百度引挚加到firefox的搜索框列表里。怎么加呢？&lt;br /&gt;其实，搜索配置都在 /usr/share/firefox/searchplugin文件夹下，每个搜索引挚都是一个.src加上一个图片文件。另外，放在$HOME/.mozilla/firefox也可以。&lt;br /&gt;于是就模仿着写了一个百度的，成功了。&lt;br /&gt;效果见图。&lt;br /&gt;&lt;browser update="http://herofit.com/download/ffsearch/baidu.src" updateicon="http://herofit.com/download/ffsearch/baidu.png" updatecheckdays="10"&gt;&lt;/browser&gt;如果大家懒得动手，就点击&lt;a href="http://herofit.com/download/ffsearch/" target="_blank"&gt;这里&lt;/a&gt;直接安装吧。&lt;br /&gt;&lt;br /&gt;另外透露点技巧，ctrl+K切换焦点到搜索框上，ctrl+UP或DOWN可以选择要用的搜索引挚。输入关键字按回车即开始搜索。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://wxforum.shadonet.com/"&gt;http://wxforum.shadonet.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116040628790686174?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116040628790686174/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116040628790686174&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116040628790686174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116040628790686174'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/firefox_09.html' title='为firefox添加搜索引挚'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116003781278697979</id><published>2006-10-05T16:43:00.000+08:00</published><updated>2006-11-16T19:46:54.150+08:00</updated><title type='text'>多机单网卡共享上网－－linux技巧</title><content type='html'>&lt;span style="font-weight: bold;"&gt;问题背景&lt;/span&gt;&lt;br /&gt;学校采用透明代理上网方法。每个户头每月15元，流量限为20G。以前是8人用一个路由器上网，后来不知什么缘故，采用路由器共享上网方式变得非常不稳定(怀疑学校做了什么手脚？)。于是只好寻找其它途径。学校还有另外一种上网方式，即网通的100元包月上网卡，为了获得最大的利益，网通通过技术手段限制，使得不能用路由器共享上网。以前听说能够使用双网卡，实现多机上网，但实践多次，均失败了。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;解决方案&lt;/span&gt;&lt;br /&gt;利用linux内核的数据转发，及一块网卡绑定多个IP，NAT地址转换等特性实现。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;网络架构&lt;/span&gt;&lt;br /&gt;两个寝室共8台电脑，网络架构如下图所示。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/ipforward.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/320/ipforward.png" alt="" border="0" /&gt;&lt;/a&gt;交换器2其实是原来的路由器，只是WAN口空着，把外网与其它客户机一起接到LAN口上。&lt;br /&gt;图中结构只是本寝室的实际情况，不表示一定要求这样。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;服务端设置&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;首先，确保内核打开ip转发功能。&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;cat /proc/sys/net/ipv4/ip_forward&lt;/blockquote&gt;结果为1，则表示已经打开。为0则编辑/etc/sysctl.conf文件，将其中的net/ipv4/ip_forward=1前的＃号删去。重启使改动生效。也可以直接用类似&lt;br /&gt;&lt;blockquote&gt;echo "1" &gt; /proc/sys/net/ipv4/ip_forward&lt;/blockquote&gt;的语句来使改动立即生效。&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;添加内网IP&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;ifconfig eth0:1 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0&lt;/blockquote&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;添加转发列表&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt; iptables -F&lt;br /&gt;&lt;br /&gt;iptables -F -t nat&lt;/blockquote&gt;此两步刷新缓存，大部分情况下可省略。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; iptables -P FORWARD DROP&lt;br /&gt;&lt;br /&gt;iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT&lt;br /&gt;&lt;br /&gt;iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&lt;br /&gt;iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to &lt;外网IP&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;外网IP&gt;请作适当替换。&lt;br /&gt;添加完后用iptables -L应该可以看到添加的一些条目。到此服务端设置完成。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;客户端设置&lt;/span&gt;&lt;br /&gt;IP：192.168.0.xxx&lt;br /&gt;网关：192.168.0.1（上面设的内网IP）&lt;br /&gt;DNS与服务端相同。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;实际效果&lt;/span&gt;&lt;br /&gt;客户端上QQ，PPLIVE，IE，以及firefox等工作正常。基本上可以说，采用TCP，UDP的程序均工作正常。但ICMP不正常（现象是不能ping通）。这时，客户端在外网看来即是服务端。&lt;br /&gt;服务端和成为服务器前相同，无异样。CPU占用率不高。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;存在的问题&lt;br /&gt;&lt;/span&gt;不知如何控制转发速度。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;其它&lt;/span&gt;&lt;br /&gt;服务端在ubuntu6.06上调试通过。&lt;br /&gt;指令多需要root权限，请注意。&lt;br /&gt;建议将配置指令写到脚本中。&lt;br /&gt;水平有限，谬误之处还请包涵。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="yolinux.com/TUTORIALS/LinuxTutorialNetworking.html"&gt;打开转发功能&lt;/a&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;&lt;a href="http://www.redflag-linux.com/phorumredflag/phorumredflag/profile.php?15,1615"&gt;lsyer兄在红旗linux下的设置&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.pcworld.com.cn/how_to_use/1/2006/0707/6804.shtml"&gt;&lt;span class="style39"&gt;Linux单网卡绑多IP&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116003781278697979?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116003781278697979/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116003781278697979&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116003781278697979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116003781278697979'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/linux.html' title='多机单网卡共享上网－－linux技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-116003583321156713</id><published>2006-10-05T16:06:00.000+08:00</published><updated>2006-11-16T19:46:11.143+08:00</updated><title type='text'>C语言标准函数库（C Standard Library）</title><content type='html'>标准C函数手册，写C程序时用的着。&lt;br /&gt;&lt;a href="http://www.herofit.com/download/CStdLib.html"&gt;CStdLib.html &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;相关地址：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html"&gt;www.utas.edu.au&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-116003583321156713?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/116003583321156713/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=116003583321156713&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116003583321156713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/116003583321156713'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/cc-standard-library.html' title='C语言标准函数库（C Standard Library）'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115968831331159222</id><published>2006-10-01T15:35:00.000+08:00</published><updated>2006-11-16T19:45:44.496+08:00</updated><title type='text'>linux下PDF中文乱码问题－－ubuntu一句话技巧</title><content type='html'>&lt;blockquote&gt;sudo apt-get install xpdf-chinese-simplified&lt;/blockquote&gt;xpdf是linux下常用的PDF阅读器，ubuntu默认装上了，但看中文文件档还有些问题。按上面的代码装上相应的包就可以了。繁体中文，还有日文都有相应的包。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115968831331159222?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115968831331159222/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115968831331159222&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115968831331159222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115968831331159222'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/10/linuxpdfubuntu.html' title='linux下PDF中文乱码问题－－ubuntu一句话技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115915918165731245</id><published>2006-09-26T10:23:00.000+08:00</published><updated>2006-11-16T19:45:37.096+08:00</updated><title type='text'>转换分区格式－－linux技巧</title><content type='html'>好久不用windows，留着FAT32真是没什么用。为避免中文乱码及&lt;a href="http://herofit.blogspot.com/2006/08/deal-with-azureus-error-operation-not.html"&gt;azureus-error&lt;/a&gt;中提到的那个恶心的错误，我一直计划着把FAT32转成ext3。&lt;br /&gt;最初，我硬盘里共有三个FAT32分区。由于都有内容，只能慢慢整理，慢慢转换。&lt;br /&gt;由于概念不清，基础知识不扎实等，走了很多弯路。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;第一次转换&lt;br /&gt;&lt;/span&gt;最初我是想能不能无损数据完成转换的，但没有找到相关资料。就&lt;span style="font-weight: bold;"&gt;想&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;到&lt;/span&gt;了下面的方法：&lt;br /&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;用fdisk删除一个分区，然后再新建一个分区；&lt;/li&gt;&lt;li&gt;重启（fdisk提示说重启后才生效）；&lt;/li&gt;&lt;li&gt;mkfs；&lt;/li&gt;&lt;li&gt;修改/etc/fstab；&lt;/li&gt;&lt;li&gt;mount -a；&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;可是实践时，出了大麻烦。执行完第一步后，机器已经起不来了，搞了半天才知道，第一步已经改变了分区表，hdaX的X很多都变了。于是用live-CD启动，上网找了一堆资料，终于在&lt;a href="https://wiki.ubuntu.com/RecoveringUbuntuAfterInstallingWindows"&gt;RecoveringUbuntuAfterInstallingWindows&lt;/a&gt;指导下搞定了。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;第二次转换&lt;/span&gt;&lt;br /&gt;也就是今天，我刚刚做的。&lt;br /&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;umount /dev/hdaxx&lt;br /&gt;&lt;/li&gt;&lt;li&gt;用fdisk的t命令改变分区格式，改成83（linux）；&lt;/li&gt;&lt;li&gt;重启；&lt;/li&gt;&lt;li&gt;用mkfs.ext3 /dev/hdax或mkfs -t ext3 /dev/hda建立新的文件系统；&lt;/li&gt;&lt;li&gt;修改/etc/fstab；&lt;/li&gt;&lt;li&gt;mount -a；&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;成功了，但却无法往分区上写东西。&lt;br /&gt;重启后就可以写了。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;总结&lt;/span&gt;&lt;br /&gt;要注意区别分区和文件系统，用fdisk只是为了改变分区格式，用mkfs才是建立我们熟悉的vfat，ext2，ext3等文件系统。第一次做lfs时，我忘了改变分区格式，结果无论如何都启动不了lfs，重做了几遍，还好有备份。&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;不保证上述方法同样适用于你的系统。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料&lt;/span&gt;&lt;br /&gt;man fdisk&lt;br /&gt;man mkfs&lt;br /&gt;&lt;a href="http://www.linuxmine.com/39733.html"&gt;http://www.linuxmine.com/39733.html&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115915918165731245?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115915918165731245/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115915918165731245&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115915918165731245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115915918165731245'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/linux_26.html' title='转换分区格式－－linux技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115901477019153164</id><published>2006-09-23T20:31:00.000+08:00</published><updated>2006-11-16T19:45:05.533+08:00</updated><title type='text'>c++笔记－－模板，成员初始化等</title><content type='html'>&lt;span style="font-weight: bold;"&gt;模板类，不能像通常的类那样将单独的实现文件放在一个cpp中。&lt;/span&gt;&lt;br /&gt;如果非要这么做，就必须在每个函数前加上export关键字。形如：&lt;br /&gt;&lt;blockquote&gt;export T&amp; A&lt;t&gt;::getNext(const T&amp;amp; any)&lt;br /&gt;&lt;/t&gt;&lt;/blockquote&gt;但export虽然是c++标准的关键字，但目前可见的绝大部分编译器均不支持它。详情请看参考资料。&lt;br /&gt;因此，一般情况下我们应该将模板类的全部声明和定义写在一个头文件中。&lt;br /&gt;当然，如果你不嫌使用时需要包含两个文件（即.h和.cpp）的麻烦，可以将定义单独写到一个cpp中。&lt;br /&gt;从模板类继承时，不要忘了尖括号。如：&lt;br /&gt;&lt;blockquote&gt;template&lt;class&gt; &lt;/class&gt;＜class T＞&lt;class&gt;class B:public A＜T＞&lt;t&gt;&lt;/t&gt;&lt;/class&gt;&lt;/blockquote&gt;习惯上在template&lt;class&gt;另起一行，函数也是如此。即：&lt;br /&gt;&lt;/class&gt;&lt;blockquote&gt;template&lt;class&gt; &lt;/class&gt;＜class T＞&lt;class&gt;&lt;br /&gt;&lt;/class&gt;class B:public A＜T＞&lt;/blockquote&gt;&lt;a href="http://gcc.gnu.org/ml/gcc-help/2005-04/msg00317.html"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;在构造函数中初始化成员变量时，应该尽力保证初始化顺序和声明顺序一致。&lt;br /&gt;&lt;/span&gt;如果不注意的话，则可能出现类似这样的错误或警告。&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;:: === cb, Debug ===&lt;br /&gt;testdriver.cpp:110:   instantiated from here&lt;br /&gt;LinkedList.h:37: warning: &lt;std::basic_string&gt;&lt;char,&gt;&lt;char&gt;count will be initialized after&lt;std::basic_string&gt;&lt;char,&gt;&lt;char&gt;&lt;std::basic_string&gt;&lt;char,&gt;&lt;char&gt;&lt;br /&gt;LinkedList.h:75: warning:   when initialized here&lt;br /&gt;:: === Build finished: 1 errors, 3 warnings ===&lt;br /&gt;&lt;/char&gt;&lt;/char,&gt;&lt;/std::basic_string&gt;&lt;/char&gt;&lt;/char,&gt;&lt;/std::basic_string&gt;&lt;/char&gt;&lt;/char,&gt;&lt;/std::basic_string&gt;&lt;/blockquote&gt;但很奇怪的是，已经生成了可以运行的可执行文件。&lt;br /&gt;另一个例子请看参考资料。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.thescripts.com/forum/thread60872.html"&gt;export关键字&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gcc.gnu.org/ml/gcc-help/2005-04/msg00317.html"&gt;http://gcc.gnu.org/ml/gcc-help/2005-04/msg00317.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115901477019153164?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115901477019153164/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115901477019153164&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115901477019153164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115901477019153164'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/c_23.html' title='c++笔记－－模板，成员初始化等'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115898268611835823</id><published>2006-09-23T11:09:00.000+08:00</published><updated>2006-11-16T19:45:27.886+08:00</updated><title type='text'>gaim2.0内置QQ协议了－－多截图</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-gaimqqModify%20Account.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/320/Screenshot-gaimqqModify%20Account.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-gaimqq1Modify%20Account.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/320/Screenshot-gaimqq1Modify%20Account.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-gaimLINUX%3F%3F%3F%3F%3F%3F.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/320/Screenshot-gaimLINUX%3F%3F%3F%3F%3F%3F.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-gaimBuddy%20List.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/320/Screenshot-gaimBuddy%20List.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-gaim2Buddy%20List.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/320/Screenshot-gaim2Buddy%20List.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;我现在用的版本是svn20060917。以下是我看到的主要改进：&lt;br /&gt;一：内置了QQ协议，添加帐号方法如图示。好像还不能收发文件；&lt;br /&gt;二：用户昵称用不同颜色显示，平滑移动，及一些小的界面改进&lt;br /&gt;三：能显示google talk好友的图片了。&lt;br /&gt;&lt;br /&gt;另外，tencent最近搞了个webqq，竟然……&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.zoudan.com/doc/qq_gaim.htm"&gt;http://www.zoudan.com/doc/qq_gaim.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gaim.sourceforge.net/"&gt;http://gaim.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115898268611835823?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115898268611835823/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115898268611835823&amp;isPopup=true' title='7 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115898268611835823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115898268611835823'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/gaim20qq.html' title='gaim2.0内置QQ协议了－－多截图'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115893831126532391</id><published>2006-09-22T23:16:00.000+08:00</published><updated>2006-11-16T19:45:57.616+08:00</updated><title type='text'>ubuntu dapper下安装xgl－－还差一点</title><content type='html'>（此外省略前期准备，以后再补充）&lt;br /&gt;&lt;br /&gt;关键的安装代码&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install compiz xserver-xgl libgl1-mesa xserver-xorg libglitz-glx1 compiz-gnome&lt;/blockquote&gt;&lt;br /&gt;结果输出：&lt;br /&gt;&lt;blockquote&gt;Password:&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree... Done&lt;br /&gt;xserver-xgl is already the newest version.&lt;br /&gt;libgl1-mesa is already the newest version.&lt;br /&gt;xserver-xorg is already the newest version.&lt;br /&gt;libglitz-glx1 is already the newest version.&lt;br /&gt;compiz-gnome is already the newest version.&lt;br /&gt;Some packages could not be installed. This may mean that you have&lt;br /&gt;requested an impossible situation or if you are using the unstable&lt;br /&gt;distribution that some required packages have not yet been created&lt;br /&gt;or been moved out of Incoming.&lt;br /&gt;The following information may help to resolve the situation:&lt;br /&gt;&lt;br /&gt;The following packages have unmet dependencies:&lt;br /&gt;compiz: Depends: compiz-plugins (&gt;= 0.2) but it is not going to be installed&lt;br /&gt;E: Broken packages&lt;/blockquote&gt;&lt;br /&gt;没办法，源里没有csm包，所以安装不能继续。我只能先不安装一些东西，代码如下：&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install xserver-xgl compiz-gnome libglitz-glx1 libgl1-mesa&lt;/blockquote&gt;……&lt;br /&gt;……&lt;br /&gt;……&lt;br /&gt;经过一番努力，xgl终于成功了，可是一点特效都没有，只是窗体的标题栏全都消失了。&lt;br /&gt;用gconf-edit看了一下，一个plugin也没有加载成功，汗……&lt;br /&gt;于是开始疯狂google，在参考了不下100个网站后，宣告放弃。&lt;br /&gt;我觉得是xgl的源有问题，并且相信过几天就能修复。等等吧！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115893831126532391?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115893831126532391/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115893831126532391&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115893831126532391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115893831126532391'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/ubuntu-dapperxgl.html' title='ubuntu dapper下安装xgl－－还差一点'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115876327380778620</id><published>2006-09-20T22:04:00.000+08:00</published><updated>2006-11-16T19:46:21.170+08:00</updated><title type='text'>linux下打拳皇(KOF)－－ubuntu技巧</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=707"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=707" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=708"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=708" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=705"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=705" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=706"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=706" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=702"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=702" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=703"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=703" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=704"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=704" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=701"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.redflag-linux.com/phorumredflag/phorumredflag/file.php?28,file=701" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;安装&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install xmame-x&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;下载rom&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;kofXX.zip和neogeo.zip放到/usr/share/games/xmame/roms&lt;br /&gt;如果是在KDE下，路径可能需要相应的改变。一般是在/usr/lib/games/xmame/roms&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;运行&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;xmame kofXX&lt;/blockquote&gt;其中XX为96，97等等。也可以用完整的文件名，比如kof97.zip&lt;br /&gt;部分机器在这里可能会出现黑屏的情况，这时只要按Ctrl+alt+F1切换到其它终端，然后再按ctrl+alt+F7回到图形界面即可。应该是xmame太旧了，我正在下最新版本的源码……&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;设置键位&lt;/span&gt;&lt;br /&gt;按TAB即可开始设置键位。从设置界面里看到，可以两个人对打。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;图形界面前端&lt;/span&gt;&lt;br /&gt;如果你想方便地设置显示及声音等选项，建议安装一个图形前端。比如gxmame，kxmame。我这里只介绍gxmame，源里好像有点问题。建议直接去&lt;a href="http://sourceforge.net/projects/gxmame"&gt;sourceforge.net/projects/gxmame&lt;/a&gt;下载最新的0.35b2的deb预编译包。&lt;br /&gt;装上后，会在游戏菜单里面生成相应的项目。单击界面，选择“available”，然后再点击"Refresh"，然后再双击相应项目就可以开始游戏了。个人感觉属性里，display的resolution最重要了，在这里可以选择放大的比例。&lt;br /&gt;需要注意，gxmame也是调用xmame，所以使用它也可能会有黑屏的现象。解决方法见上文。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;可能遇到的问题&lt;/span&gt;&lt;br /&gt;除了已经提到的黑屏问题。rom文件的有效性问题是最大的问题，网上下的zip并不是每个都好用的，只有下下来试玩一下才知道。gxmame也能帮我们验证有效性。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;输出模式&lt;/span&gt;&lt;br /&gt;共有三种，分别是x11,SDL,openGL，分别可以用ctrl+insert，ctrl+home，ctrl+pageUP切换出来。选择输出模式主要是为了降低CPU占用率，避免声音断断续续，节省系统资源。如果显卡3D驱动已经安装，选择openGL可以使CPU占用率保持在30％以下。另外alt+pageDown可以切换到全屏模式。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;截图&lt;/span&gt;&lt;br /&gt;见最开始部分。除了neogeo，CPS1，CPS2游戏也都可以玩。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;相关资源：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://x.mame.net/"&gt;http://x.mame.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/gxmame"&gt;sourceforge.net/projects/gxmame&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115876327380778620?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115876327380778620/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115876327380778620&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115876327380778620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115876327380778620'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/linuxkofubuntu.html' title='linux下打拳皇(KOF)－－ubuntu技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115859090670528003</id><published>2006-09-18T22:41:00.000+08:00</published><updated>2006-11-16T19:46:29.530+08:00</updated><title type='text'>ACE安装配置－－ubuntu技巧</title><content type='html'>&lt;span lang="EN-US"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span lang="EN-US"&gt;ACE&lt;/span&gt;&lt;span style="font-family:楷体_GB2312;"&gt;自适配通信环境（&lt;/span&gt;&lt;span lang="EN-US"&gt;ADAPTIVE                  Communication Environment&lt;/span&gt;&lt;span style="font-family:楷体_GB2312;"&gt;）是可以自由使用、开放源码的面向对象（&lt;/span&gt;&lt;span lang="EN-US"&gt;OO&lt;/span&gt;&lt;span style="font-family:楷体_GB2312;"&gt;）框架（&lt;/span&gt;&lt;span lang="EN-US"&gt;Framework&lt;/span&gt;&lt;span style="font-family:楷体_GB2312;"&gt;），在其中实现了许多用于并发通信软件的核心模式。&lt;/span&gt;&lt;span lang="EN-US"&gt;ACE&lt;/span&gt;&lt;span style="font-family:楷体_GB2312;"&gt;提供了一组丰富的可复用&lt;/span&gt;&lt;span lang="EN-US"&gt;C++                  Wrapper Facade&lt;/span&gt;&lt;span style="font-family:楷体_GB2312;"&gt;（包装外观）和框架组件，可跨越多种平台完成通用的通信软件任务，其中包括：事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态（重）配置、并发执行和同步，等等。&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:楷体_GB2312;"&gt;不再继续介绍了，我来介绍一下ACE在ubuntu下的安装，并运行一个简单的示例。&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install libace-dev libace-doc libace5.4.7c2a libssl-dev&lt;/blockquote&gt;这样，一个完整的开发以及运行环境就建立起来了。&lt;br /&gt;下面，写一个简单的程序来体验一下这个框架。&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;!-- body { color: #000000; background-color: #FFFFFF; } .style1 { color: #A0A0A0; } .style2 { color: #A0A0A0; } .style3 { color: #8080FF; font-weight: bold; } .style15 { color: #8080FF; font-weight: bold; } .style17 { color: #008080; } .style18 { color: #800000; } .style4 { color: #F000F0; } .style5 { color: #0000A0; font-weight: bold; } .style16 { color: #00A000; font-weight: bold; } .style6 { color: #0000FF; } .style12 { color: #0000FF; } .style7 { color: #E0A000; } .style8 { color: #000000; } .style9 { color: #00A000; } .style10 { color: #FF0000; } .style34 { color: #000000; background-color: #80FFFF; font-weight: bold; } .style35 { color: #FFFFFF; background-color: #FF0000; font-weight: bold; } --&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:monospace;font-size:8;"  &gt;&lt;span class="style9"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;blockquote&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:monospace;font-size:8;"  &gt;&lt;span class="style9"&gt;#include &amp;lt;ace/INET_Addr.h&amp;gt;&lt;br /&gt;#include &amp;lt;ace/SOCK_Connector.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;ace/SOCK_Stream.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;main&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;argc&lt;/span&gt;&lt;span class="style10"&gt;, &lt;/span&gt;&lt;span class="style5"&gt;char &lt;/span&gt;&lt;span class="style10"&gt;*&lt;/span&gt;&lt;span class="style11"&gt;argv&lt;/span&gt;&lt;span class="style10"&gt;[])&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;const char &lt;/span&gt;&lt;span class="style10"&gt;*&lt;/span&gt;&lt;span class="style11"&gt;pathname &lt;/span&gt;&lt;span class="style10"&gt;=&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;argc &lt;/span&gt;&lt;span class="style10"&gt;&amp;gt; &lt;/span&gt;&lt;span class="style4"&gt;1 &lt;/span&gt;&lt;span class="style10"&gt;? &lt;/span&gt;&lt;span class="style11"&gt;argv&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;] : &lt;/span&gt;&lt;span class="style6"&gt;"/"&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;const char &lt;/span&gt;&lt;span class="style10"&gt;*&lt;/span&gt;&lt;span class="style11"&gt;server_hostname &lt;/span&gt;&lt;span class="style10"&gt;=&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;argc &lt;/span&gt;&lt;span class="style10"&gt;&amp;gt; &lt;/span&gt;&lt;span class="style4"&gt;2 &lt;/span&gt;&lt;span class="style10"&gt;? &lt;/span&gt;&lt;span class="style11"&gt;argv&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;2&lt;/span&gt;&lt;span class="style10"&gt;] : &lt;/span&gt;&lt;span class="style6"&gt;"www.herofit.com"&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;ACE_SOCK_Connector connector&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;ACE_SOCK_Stream peer&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;ACE_INET_Addr peer_addr&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;if &lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;peer_addr&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;set&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style4"&gt;80&lt;/span&gt;&lt;span class="style10"&gt;, &lt;/span&gt;&lt;span class="style11"&gt;server_hostname&lt;/span&gt;&lt;span class="style10"&gt;) == -&lt;/span&gt;&lt;span class="style4"&gt;1 &lt;/span&gt;&lt;span class="style10"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;return &lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;else if &lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;connector&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;connect&lt;/span&gt;&lt;span class="style10"&gt;( &lt;/span&gt;&lt;span class="style11"&gt;peer&lt;/span&gt;&lt;span class="style10"&gt;, &lt;/span&gt;&lt;span class="style11"&gt;peer_addr&lt;/span&gt;&lt;span class="style10"&gt;) == -&lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;return &lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;char &lt;/span&gt;&lt;span class="style11"&gt;buf&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style11"&gt;BUFSIZ&lt;/span&gt;&lt;span class="style10"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iovec iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;3&lt;/span&gt;&lt;span class="style10"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;0&lt;/span&gt;&lt;span class="style10"&gt;].&lt;/span&gt;&lt;span class="style11"&gt;iov_base&lt;/span&gt;&lt;span class="style10"&gt;=(&lt;/span&gt;&lt;span class="style5"&gt;void&lt;/span&gt;&lt;span class="style10"&gt;*)&lt;/span&gt;&lt;span class="style6"&gt;"GET "&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;0&lt;/span&gt;&lt;span class="style10"&gt;].&lt;/span&gt;&lt;span class="style11"&gt;iov_len&lt;/span&gt;&lt;span class="style10"&gt;=&lt;/span&gt;&lt;span class="style4"&gt;4&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;].&lt;/span&gt;&lt;span class="style11"&gt;iov_base&lt;/span&gt;&lt;span class="style10"&gt;=(&lt;/span&gt;&lt;span class="style5"&gt;void&lt;/span&gt;&lt;span class="style10"&gt;*)&lt;/span&gt;&lt;span class="style11"&gt;pathname&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;].&lt;/span&gt;&lt;span class="style11"&gt;iov_len&lt;/span&gt;&lt;span class="style10"&gt;=&lt;/span&gt;&lt;span class="style11"&gt;strlen&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;pathname&lt;/span&gt;&lt;span class="style10"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;2&lt;/span&gt;&lt;span class="style10"&gt;].&lt;/span&gt;&lt;span class="style11"&gt;iov_base&lt;/span&gt;&lt;span class="style10"&gt;=(&lt;/span&gt;&lt;span class="style5"&gt;void&lt;/span&gt;&lt;span class="style10"&gt;*)&lt;/span&gt;&lt;span class="style6"&gt;" HTTP/1.0\r\n\r\n"&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;[&lt;/span&gt;&lt;span class="style4"&gt;2&lt;/span&gt;&lt;span class="style10"&gt;].&lt;/span&gt;&lt;span class="style11"&gt;iov_len&lt;/span&gt;&lt;span class="style10"&gt;=&lt;/span&gt;&lt;span class="style4"&gt;13&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;if &lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;peer&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;sendv_n&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;iov&lt;/span&gt;&lt;span class="style10"&gt;, &lt;/span&gt;&lt;span class="style4"&gt;3&lt;/span&gt;&lt;span class="style10"&gt;) == -&lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;return &lt;/span&gt;&lt;span class="style4"&gt;1&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;for&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;ssize_t n&lt;/span&gt;&lt;span class="style10"&gt;;(&lt;/span&gt;&lt;span class="style11"&gt;n &lt;/span&gt;&lt;span class="style10"&gt;= &lt;/span&gt;&lt;span class="style11"&gt;peer&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;recv&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;buf&lt;/span&gt;&lt;span class="style10"&gt;,&lt;/span&gt;&lt;span class="style5"&gt;sizeof&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;buf&lt;/span&gt;&lt;span class="style10"&gt;)))&amp;gt;&lt;/span&gt;&lt;span class="style4"&gt;0&lt;/span&gt;&lt;span class="style10"&gt;;)&lt;br /&gt;&lt;/span&gt;&lt;span class="style11"&gt;ACE&lt;/span&gt;&lt;span class="style10"&gt;::&lt;/span&gt;&lt;span class="style11"&gt;write_n&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style11"&gt;ACE_STDOUT&lt;/span&gt;&lt;span class="style10"&gt;, &lt;/span&gt;&lt;span class="style11"&gt;buf&lt;/span&gt;&lt;span class="style10"&gt;, &lt;/span&gt;&lt;span class="style11"&gt;n&lt;/span&gt;&lt;span class="style10"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;return &lt;/span&gt;&lt;span class="style11"&gt;peer&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;close&lt;/span&gt;&lt;span class="style10"&gt;();&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;编译上面的程序：&lt;br /&gt;&lt;blockquote&gt;g++ testace.cpp -o testace -lACE&lt;/blockquote&gt;运行：&lt;br /&gt;&lt;blockquote&gt;./testace index.php www.herofit.com&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-size:180%;"&gt;最后提醒一点，ACE的授权许可证并不要求使用它的软件开放源码。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.flyingdonkey.com/ace/"&gt;http://www.flyingdonkey.com/ace/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html"&gt;http://www.cs.wustl.edu/%7Eschmidt/ACE.html&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115859090670528003?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115859090670528003/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115859090670528003&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115859090670528003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115859090670528003'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/aceubuntu.html' title='ACE安装配置－－ubuntu技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115815428142198564</id><published>2006-09-13T21:31:00.000+08:00</published><updated>2006-11-16T19:48:51.606+08:00</updated><title type='text'>临时改变区域语言设置－－ubuntu技巧</title><content type='html'>有时候，我们检查程序在不同的语言设置下的运行效果。&lt;br /&gt;比如，在英文环境下，我想使用中文firefox，这时候我们可以&lt;br /&gt;&lt;blockquote&gt;export LANG=zh_CN&lt;br /&gt;firefox&lt;/blockquote&gt;又如，在中文环境下，希望使用英文版的dia进行类设计（原因是中文翻译的太不好，以致于根本理解不了），&lt;br /&gt;&lt;blockquote&gt;export LANG=C&lt;br /&gt;dia&lt;/blockquote&gt;C也可以是en_US什么的。&lt;br /&gt;&lt;br /&gt;举这两个例子就是提供一个可以临时改变区域语言的方法，希望有点用。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115815428142198564?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115815428142198564/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115815428142198564&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115815428142198564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115815428142198564'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/ubuntu.html' title='临时改变区域语言设置－－ubuntu技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115789276378100294</id><published>2006-09-10T20:36:00.000+08:00</published><updated>2006-11-16T19:46:37.940+08:00</updated><title type='text'>装上了suse10.1－－更新中</title><content type='html'>经过昨天八个多小时的下载，终于把DVD镜像下来了。&lt;br /&gt;今天刻成了盘，赶快装上试试。&lt;br /&gt;&lt;br /&gt;安装大约需要一个小时左右。&lt;br /&gt;桌面系统只能从gnome，kde等几个中选一个。－－此描述不准确，可以选择软件包&lt;br /&gt;由于以前没怎么用过KDE，决定熟悉一下。&lt;br /&gt;不过总体感觉挺漂亮的，颜色搭配也挺谐调。&lt;br /&gt;中文显示方面就是小字体有些模糊，其它的都好。－－已解决，字体设成方正宋体12号即可&lt;br /&gt;输入法scim（这里叫skim？）也装上了，不过汗的是竟然装了几十种语言共几百种输入法。&lt;br /&gt;视频播放某些文件还有些问题（版本原因）。&lt;br /&gt;&lt;br /&gt;目前发现的问题有：&lt;br /&gt;无法用Fn+Fx调整系统音量&lt;br /&gt;找不到设置桌面快捷键的地方（非标准KDE）。－－已找到，可惜没找到定义打开命令行窗口的地方&lt;br /&gt;播放AVI有声音无图像（准备从ubuntu拷win32codes）&lt;br /&gt;&lt;br /&gt;现在正在看文档，熟悉一下基本设置。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115789276378100294?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115789276378100294/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115789276378100294&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115789276378100294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115789276378100294'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/suse101.html' title='装上了suse10.1－－更新中'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115782124626422557</id><published>2006-09-10T00:59:00.000+08:00</published><updated>2006-11-29T14:19:30.376+08:00</updated><title type='text'>用md5sum校验文件的准确性</title><content type='html'>一般我们安装linux都是先从网上下镜像，然后再硬盘安装或刻录到光盘上再使用。&lt;br /&gt;在使用这些下载来的文件前，我们必须进行正确性检测。否则，很可能就浪费时间或浪费光盘了。&lt;br /&gt;经常下载站点在提供内容本身的同时，还会提供一个叫做MD5SUM或类似名字的文件。&lt;br /&gt;其实，这个文件就是做校验用。&lt;br /&gt;下面就通过一个综合的小实例来说明使用md5sum的全过程。&lt;br /&gt;要求：将/var/www下的文件由一个位置通过网络或移动硬盘传到另一台机器上。&lt;br /&gt;步骤：&lt;br /&gt;&lt;blockquote&gt;cd /var/www&lt;br /&gt;md5sum * &gt; MD5SUM&lt;/blockquote&gt;&lt;br /&gt;如果/var/www下含有文件夹，这里会有错误提示输出，形如：&lt;br /&gt;&lt;blockquote&gt;md5sum: ajax: Is a directory&lt;br /&gt;md5sum: apache2-default: Is a directory&lt;br /&gt;md5sum: blog: Is a directory&lt;br /&gt;md5sum: codeblocks: Is a directory&lt;br /&gt;md5sum: download: Is a directory&lt;br /&gt;md5sum: php100: Is a directory&lt;/blockquote&gt;&lt;br /&gt;我们查看一下到底生成了什么东西：&lt;br /&gt;&lt;blockquote&gt;cat MD5SUM&lt;/blockquote&gt;这里是：&lt;br /&gt;&lt;blockquote&gt;40491cfa725e9f612597e18e5cb5a731  cube-bot-0.32.tar.gz&lt;br /&gt;71b29ffeaa264caecaeb6f30813814f5  hack2.js&lt;br /&gt;d779f6b43832a6d65610840fbeb0c398  hack2.js~&lt;br /&gt;9dccf462d245f55ac3e0cdb0e5401f5b  index2.php&lt;br /&gt;4afbe1cc2bd8eb97a4e6c51e6aaf5202  ipgw.py&lt;br /&gt;af7788191a44f32a9d4aafa3aa7f61c4  md5sum&lt;br /&gt;9dccf462d245f55ac3e0cdb0e5401f5b  phpinfo.php&lt;br /&gt;2883fddfd2a1c9a448ab03862beeda81  r.php&lt;br /&gt;60880cf2774e5f54159f0e7555a6c723  r.php~&lt;br /&gt;6bb2397f1cd9922c46e15c2253a99c27  s.html&lt;br /&gt;d3e265f801b2f3b7fa37b5578ad83ffb  s.html~&lt;br /&gt;9175a6e91a1a909eae8baf532c44eccf  ss.html&lt;br /&gt;a6cc3964fb87d1b3ed3829b0c2d1b4c6  ss.html~&lt;br /&gt;aee6dc4a6715f93747137c19d151c51c  w21~&lt;br /&gt;4e313605a6602d7c516ec6bb32a43bad  w21.html&lt;br /&gt;4e313605a6602d7c516ec6bb32a43bad  w21.html~&lt;br /&gt;20a76cde1afb88df632c5a13d0bff1c5  w2.html&lt;br /&gt;a7f67a7d9b59e2c2dae6f917e9b59934  w2.html~&lt;/blockquote&gt;现在通过各种手段移到另一个位置。假设已经完成移动，我们现在要验证各个文件在移动过程中是否有损坏。假设文件夹的内容被移到了/tmp/test下：&lt;br /&gt;&lt;blockquote&gt;cd /tmp/test&lt;br /&gt;md5sum -c MD5SUM&lt;/blockquote&gt;&lt;br /&gt;此示例输出为：&lt;br /&gt;&lt;blockquote&gt;hack2.js: OK&lt;br /&gt;hack2.js~: OK&lt;br /&gt;index2.php: OK&lt;br /&gt;ipgw.py: OK&lt;br /&gt;md5sum: OK&lt;br /&gt;phpinfo.php: OK&lt;br /&gt;r.php: OK&lt;br /&gt;r.php~: OK&lt;br /&gt;s.html: OK&lt;br /&gt;s.html~: OK&lt;br /&gt;ss.html: OK&lt;br /&gt;ss.html~: OK&lt;br /&gt;w21~: OK&lt;br /&gt;w21.html: OK&lt;br /&gt;w21.html~: OK&lt;br /&gt;w2.html: OK&lt;br /&gt;w2.html~: OK&lt;/blockquote&gt;如果输出结果全部是OK，说明内容没有改变。&lt;br /&gt;这里，我们模拟一下传输出现错误的情况。&lt;br /&gt;在r.php文件中做任意修改，这里只是在开头加一个空格。上述结果就变为：&lt;br /&gt;&lt;blockquote&gt;cube-bot-0.32.tar.gz: OK&lt;br /&gt;hack2.js: OK&lt;br /&gt;hack2.js~: OK&lt;br /&gt;index2.php: OK&lt;br /&gt;ipgw.py: OK&lt;br /&gt;md5sum: OK&lt;br /&gt;phpinfo.php: OK&lt;br /&gt;r.php: FAILED&lt;br /&gt;r.php~: FAILED&lt;br /&gt;s.html: OK&lt;br /&gt;s.html~: OK&lt;br /&gt;ss.html: OK&lt;br /&gt;ss.html~: OK&lt;br /&gt;w21~: OK&lt;br /&gt;w21.html: OK&lt;br /&gt;w21.html~: OK&lt;br /&gt;w2.html: OK&lt;br /&gt;w2.html~: OK&lt;br /&gt;md5sum: WARNING: 2 of 18 computed checksums did NOT match&lt;/blockquote&gt;刚才的改动涉及了两个文件，所以这两个文件的验证都失败了。&lt;br /&gt;如果删除某个文件呢？这里我把w2.html~删了，看看结果：&lt;br /&gt;&lt;blockquote&gt;cube-bot-0.32.tar.gz: OK&lt;br /&gt;hack2.js: OK&lt;br /&gt;hack2.js~: OK&lt;br /&gt;index2.php: OK&lt;br /&gt;ipgw.py: OK&lt;br /&gt;md5sum: OK&lt;br /&gt;phpinfo.php: OK&lt;br /&gt;r.php: FAILED&lt;br /&gt;r.php~: FAILED&lt;br /&gt;s.html: OK&lt;br /&gt;s.html~: OK&lt;br /&gt;ss.html: OK&lt;br /&gt;ss.html~: OK&lt;br /&gt;w21~: OK&lt;br /&gt;w21.html: OK&lt;br /&gt;w21.html~: OK&lt;br /&gt;w2.html: OK&lt;br /&gt;md5sum: w2.html~: No such file or directory&lt;br /&gt;w2.html~: FAILED open or read&lt;br /&gt;md5sum: WARNING: 1 of 18 listed files could not be read&lt;br /&gt;md5sum: WARNING: 2 of 17 computed checksums did NOT match&lt;/blockquote&gt;需要提醒大家的一点是，文件较大时，需要的时间可能会很长！！！&lt;br /&gt;比如我刚才下的SUSE-Linux-10.1-GM-DVD-i386.iso，验证时间都几乎花了十分钟。但考虑到数据的完整性和正确性，还是值得投入的。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料与推荐阅读：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://check-md5-sum-utility.qarchive.org/"&gt;windows下的md5sum验证工具&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.stllinux.org/meeting_notes/1998/0319/node30.html"&gt;http://www.stllinux.org/meeting_notes/1998/0319/node30.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxclues.com/articles/01.htm"&gt;http://www.linuxclues.com/articles/01.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.delorie.com/gnu/docs/textutils/md5sum.1.html"&gt;http://www.delorie.com/gnu/docs/textutils/md5sum.1.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115782124626422557?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115782124626422557/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115782124626422557&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115782124626422557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115782124626422557'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/md5sum.html' title='用md5sum校验文件的准确性'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115763959757461935</id><published>2006-09-07T22:29:00.000+08:00</published><updated>2006-11-29T14:20:46.623+08:00</updated><title type='text'>C++运算符重载实践</title><content type='html'>在数据结构课本上又看到C++运算符重载的内容。想起上学期的一次实验就在这里卡住了，后来乱七作糟把问题解决掉了，但还没有搞清楚。今天决定写一个小类来实验一下。&lt;br /&gt;于是写了下面这个类，&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;!-- body { color: #000000; background-color: #FFFFFF; } .style1 { color: #A0A0A0; } .style2 { color: #A0A0A0; } .style3 { color: #8080FF; font-weight: bold; } .style15 { color: #8080FF; font-weight: bold; } .style17 { color: #008080; } .style18 { color: #800000; } .style4 { color: #F000F0; } .style5 { color: #0000A0; font-weight: bold; } .style16 { color: #00A000; font-weight: bold; } .style6 { color: #0000FF; } .style12 { color: #0000FF; } .style7 { color: #E0A000; } .style8 { color: #000000; } .style9 { color: #00A000; } .style10 { color: #FF0000; } .style34 { color: #000000; background-color: #80FFFF; font-weight: bold; } .style35 { color: #FFFFFF; background-color: #FF0000; font-weight: bold; } --&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:monospace;font-size:8;"  &gt;&lt;span class="style5"&gt;class &lt;/span&gt;&lt;span class="style11"&gt;Point &lt;/span&gt;&lt;span class="style10"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;private&lt;/span&gt;&lt;span class="style10"&gt;:&lt;br /&gt; &lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;m_x&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt; &lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;m_y&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="style5"&gt;public&lt;/span&gt;&lt;span class="style10"&gt;:&lt;br /&gt; &lt;/span&gt;&lt;span class="style11"&gt;Point&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;x&lt;/span&gt;&lt;span class="style10"&gt;,&lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;y&lt;/span&gt;&lt;span class="style10"&gt;) {&lt;br /&gt;     &lt;/span&gt;&lt;span class="style11"&gt;m_x &lt;/span&gt;&lt;span class="style10"&gt;= &lt;/span&gt;&lt;span class="style11"&gt;x&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt;     &lt;/span&gt;&lt;span class="style11"&gt;m_y &lt;/span&gt;&lt;span class="style10"&gt;= &lt;/span&gt;&lt;span class="style11"&gt;y&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt; }&lt;br /&gt; &lt;/span&gt;&lt;span class="style11"&gt;Point&lt;/span&gt;&lt;span class="style10"&gt;(&lt;/span&gt;&lt;span class="style5"&gt;const &lt;/span&gt;&lt;span class="style11"&gt;Point&lt;/span&gt;&lt;span class="style10"&gt;&amp; &lt;/span&gt;&lt;span class="style11"&gt;pt&lt;/span&gt;&lt;span class="style10"&gt;) {&lt;br /&gt;     &lt;/span&gt;&lt;span class="style11"&gt;m_x &lt;/span&gt;&lt;span class="style10"&gt;= &lt;/span&gt;&lt;span class="style11"&gt;pt&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;get_x&lt;/span&gt;&lt;span class="style10"&gt;();&lt;br /&gt;     &lt;/span&gt;&lt;span class="style11"&gt;m_y &lt;/span&gt;&lt;span class="style10"&gt;= &lt;/span&gt;&lt;span class="style11"&gt;pt&lt;/span&gt;&lt;span class="style10"&gt;.&lt;/span&gt;&lt;span class="style11"&gt;get_y&lt;/span&gt;&lt;span class="style10"&gt;();&lt;br /&gt; }&lt;br /&gt; ~&lt;/span&gt;&lt;span class="style11"&gt;Point&lt;/span&gt;&lt;span class="style10"&gt;() {};&lt;br /&gt; &lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;get_x&lt;/span&gt;&lt;span class="style10"&gt;(){&lt;br /&gt;     &lt;/span&gt;&lt;span class="style5"&gt;return &lt;/span&gt;&lt;span class="style11"&gt;m_x&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt; }&lt;br /&gt; &lt;/span&gt;&lt;span class="style5"&gt;int &lt;/span&gt;&lt;span class="style11"&gt;get_y&lt;/span&gt;&lt;span class="style10"&gt;(){&lt;br /&gt;     &lt;/span&gt;&lt;span class="style5"&gt;return &lt;/span&gt;&lt;span class="style11"&gt;m_y&lt;/span&gt;&lt;span class="style10"&gt;;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;};&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;不等写完，编译试试。一编译竟然有错误，提示是&lt;br /&gt;main.cpp:12: error: passing ‘const Point’ as ‘this’ argument of ‘int Point::get_x()’ discards qualifiers&lt;br /&gt;main.cpp:13: error: passing ‘const Point’ as ‘this’ argument of ‘int Point::get_y()’ discards qualifiers&lt;br /&gt;怎么会有这样的提示呢？拷贝构造函数根本没有更改pt啊？&lt;br /&gt;于是将最后两个成员函数改成&lt;br /&gt; const int get_x(){&lt;br /&gt;     return m_x;&lt;br /&gt; }&lt;br /&gt; const int get_y(){&lt;br /&gt;     return m_y;&lt;br /&gt; }&lt;br /&gt;可惜错误依旧。&lt;br /&gt;没办法，只好搜了。&lt;br /&gt;google " error: passing  as ‘this’ argument of  discards qualifiers"&lt;br /&gt;果然找到了相关信息，确实是最后两个成员函数的问题。不过const不应加在前面，而是要加在小括号后面。&lt;br /&gt; int get_x()const {&lt;br /&gt;     return m_x;&lt;br /&gt; }&lt;br /&gt; int get_y()const {&lt;br /&gt;     return m_y;&lt;br /&gt; }&lt;br /&gt;改成上面的样子就没有错误了。后来仔细想想才知道，const加在最前面，只是说明返回的值不允许更改，说明成员函数不会更改对象属性，应该将const加在最后面。 基础不扎实，概念不清，哎……&lt;br /&gt;&lt;br /&gt;继续编码，期间遇到非常多的问题。这里一一列估计可以写成一本书了……&lt;br /&gt;比如这个函数&lt;br /&gt; Point&amp; operator - (const Point&amp;amp;amp;amp;amp; pt) {&lt;br /&gt;     cout &lt;&lt; "operator -" &lt;&lt;endl;&gt;&lt;br /&gt;     m_x -= pt.get_x();&lt;br /&gt;     m_y -= pt.get_y();&lt;br /&gt;     return *this;&lt;br /&gt; }&lt;br /&gt;这个函数有问题吗？&lt;br /&gt;举例有语句 Point ptf = (pte - pta);&lt;br /&gt;执行完后，pte就等于ptf了（仅是值）。这显然不是预期行为，pte自己是不能变的。&lt;br /&gt;完整的程序&lt;a href="http://www.herofit.com/download/opoverload.html"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;请看这里&lt;/span&gt;&lt;/a&gt;，为方便起见，所有函数都是inline类型的，这在实际情况中应该分离出来一些。分离时特别要注意的是函数后的const必须写在cpp中，“const相当于函数的一部分”。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:180%;" &gt;顺便说一句，如果你能读懂程序的每一行并且知道为什么要这么写的话，你的C++水平不差了！！！&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.storkyak.com/2006/07/more-gnu-c-error-messages-explained.html"&gt;http://www.storkyak.com/2006/07/more-gnu-c-error-messages-explained.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.daniweb.com/techtalkforums/thread53783.html"&gt;http://www.daniweb.com/techtalkforums/thread53783.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.parashift.com/c++-faq-lite/operator-overloading.html#faq-13.14"&gt;http://www.parashift.com/c++-faq-lite/operator-overloading.html#faq-13.14&lt;/a&gt;&lt;br /&gt;数据结构（用面向对象方法与C++描述）,殷人昆等&lt;br /&gt;THE C＋＋ PROGRAMMING LANGUAGE(Special Edition)，Bjarne Stroustrup&lt;br /&gt;&lt;/endl;&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115763959757461935?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115763959757461935/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115763959757461935&amp;isPopup=true' title='5 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115763959757461935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115763959757461935'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/c.html' title='C++运算符重载实践'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115754574899814062</id><published>2006-09-06T20:21:00.000+08:00</published><updated>2006-11-29T14:21:31.976+08:00</updated><title type='text'>Ctrl+Alt+Backspace后桌面无图标－－ubuntu技巧</title><content type='html'>不知道怎么会出现这样的问题。桌面的图标一个也不显示了，而且自已定义的快捷键也全部失效。&lt;br /&gt;还好，firefox可以打开，于是上网搜了一番。&lt;br /&gt;&lt;br /&gt;gnome下刷新桌面的方法：&lt;blockquote&gt;killall nautilus&lt;/blockquote&gt;试了一下，显示：&lt;br /&gt;&lt;blockquote&gt;nautilus: no process killed&lt;/blockquote&gt;看来nautilus这个程序是关键。于是直接运行nautilus，桌面图标马上就显示出来了。&lt;br /&gt;接着Ctrl+C，桌面一闪然后就又一切正常了。看来nautilus还智能的。&lt;br /&gt;顺便提一下， gnome下刷新面板的方法：&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;blockquote&gt;killall gnome-panel&lt;/blockquote&gt;好像应该叫GNOME技巧^_^&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115754574899814062?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115754574899814062/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115754574899814062&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115754574899814062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115754574899814062'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/ctrlaltbackspaceubuntu.html' title='Ctrl+Alt+Backspace后桌面无图标－－ubuntu技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115744203507771589</id><published>2006-09-05T15:35:00.000+08:00</published><updated>2006-11-29T14:21:49.616+08:00</updated><title type='text'>Code::Blocks--图形化C＆C＋＋集成开发环境</title><content type='html'>code::blocks是免费，开源，跨平台的集成开发环境。支持自动完成，代码智能提示……&lt;br /&gt;code::blocks由wxWidgets写成，运行于Win32,Linux,Mac等多个平台。&lt;br /&gt;开发小组每天都会出一个新版本，请到 &lt;a href="http://forums.codeblocks.org/index.php?board=20.0" target="_blank"&gt;http://forums.codeblocks.org/index.php?board=20.0&lt;/a&gt; 下载最新版本&lt;br /&gt;这里发布的是9月4日版。&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-Start%20here%20-%20Code%3A%3ABlocks%20v1.0.1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/400/Screenshot-Start%20here%20-%20Code%3A%3ABlocks%20v1.0.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-New%20from%20template.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/400/Screenshot-New%20from%20template.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/Screenshot-1.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/400/Screenshot-1.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115744203507771589?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115744203507771589/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115744203507771589&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115744203507771589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115744203507771589'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/codeblocks-cc.html' title='Code::Blocks--图形化C＆C＋＋集成开发环境'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115729426681409423</id><published>2006-09-03T22:36:00.000+08:00</published><updated>2006-11-16T19:51:56.523+08:00</updated><title type='text'>MinGW-Minimalist GNU for Windows</title><content type='html'>&lt;span style="font-weight: bold;"&gt;MinGW-Minimalist GNU for Windows&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;简介&lt;/span&gt;&lt;br /&gt;MinGW是一个常用GNU软件的windows版本，它提供C，C＋＋，Java，Ada等语言的编译器和一系列提高开发效率的机制（如make机制）。&lt;br /&gt;MinGW中的g++是最优秀的C＋＋编译器之一，完整支持C＋＋最新标准（STL，智能指针等），完全能够满足你的开发需求。配合安装包中的windows相关的头文件和库文件，你可以开发任何你想要的windows程序。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;安装&lt;/span&gt;&lt;br /&gt;要下载最新版本或添加组件（如java编译器）请访问&lt;a href="http://www.mingw.org/"&gt;http://www.mingw.org/&lt;/a&gt;&lt;br /&gt;MinGW是由一系列的工具包组成的，需要你根据需要分别下载安装多个文件。为方便同学们的使用，我制作了一个集成的安装包，里面包括了C，C＋＋编译器以及make等常用工具。&lt;br /&gt;下载地址是：&lt;a href="http://www.herofit.com/download/MinGW32.rar"&gt;http://www.herofit.com/download/MinGW32.rar&lt;/a&gt;&lt;br /&gt;下载后解压到任意目录下即可使用。为方便编译，执行程序，建议将MinGW32的bin目录添加至环境变量PATH中，具体添加方法可查看SSD1的java编译器设置相关章节。例如：&lt;br /&gt;假如你解压的位置是 C:/MinGW32，则请添加C:/MinGW32/bin至PATH中。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;编译演示&lt;/span&gt;&lt;br /&gt;C编译示例1&lt;br /&gt;gcc src1.c -o c1.exe&lt;br /&gt;程序只有1个文件，指定生成的文件名叫c1.exe&lt;br /&gt;&lt;br /&gt;C编译示例2&lt;br /&gt;gcc src1.c src2.c -o c2.exe&lt;br /&gt;程序有2个文件，指定生成的文件名叫c2.exe&lt;br /&gt;&lt;br /&gt;CPP编译示例1&lt;br /&gt;g++ src1.cpp -o cpp1.exe&lt;br /&gt;程序只有1个文件，指定生成的文件名叫cpp1.exe&lt;br /&gt;&lt;br /&gt;CPP编译示例2&lt;br /&gt;g++ src1.cpp src2.cpp -o cpp2.exe&lt;br /&gt;程序有2个文件，指定生成的文件名叫cpp2.exe&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;注意，如果不用-o指定输出文件名，则默认为a.exe&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;使用makefile&lt;/span&gt;&lt;br /&gt;当工程的源文件数目很多时，可以使用make机制要简化程序编译步骤，节约编译时间。&lt;br /&gt;待续……&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;调试程序&lt;/span&gt;&lt;br /&gt;由于空间限制，安装包中未包含调试工具GDB。需要的请自行下载GDB的windows版。解压到MinGW32目录即可使用。为使程序包含调试信息。请在编译程序时加入-ggdb参数。例如：&lt;br /&gt;g++ src1.cpp -ggdb -o cpp1.exe&lt;br /&gt;运行gdb cpp1.exe即可开始调试。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;获得帮助&lt;/span&gt;&lt;br /&gt;问身边的同学吧^_^&lt;br /&gt;也可以到&lt;a href="http://herofit.blogspot.com/2006/09/mingw-minimalist-gnu-for-windows.html"&gt;http://herofit.blogspot.com/2006/09/mingw-minimalist-gnu-for-windows.html&lt;/a&gt;留言&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115729426681409423?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115729426681409423/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115729426681409423&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115729426681409423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115729426681409423'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/09/mingw-minimalist-gnu-for-windows.html' title='MinGW-Minimalist GNU for Windows'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115703562186602675</id><published>2006-08-31T22:46:00.000+08:00</published><updated>2006-11-16T19:49:27.876+08:00</updated><title type='text'>linux下刻录光盘－ubuntu技巧</title><content type='html'>闲着没事，下了一张kubuntu盘。准备刻成盘感受一下KDE 。&lt;br /&gt;可是怎么刻呢？赶快google“burn ISO image ubuntu”，很快就搜到了一篇内容。&lt;br /&gt;真是简单的不可思议－“Right-click on the ISO and select &lt;b&gt;write to disc&lt;/b&gt;”，就是直接在iso上点击右键再选择刻到光盘的选项就可以了。接着弹出一个选择刻录速度的对话框，默认是选MAX－SPEED，好入没有刻盘了，对速度一点概念都没有。本着安全第一的原则，我选了4X的速度。点确定后刻录就开始了，程序会先显示“准备刻录”，持续半分钟左右，就正式开始刻录了。我晕，竟然要21分钟。看来选的真是太保守了。不过以4X的低速进行刻录感觉非常好，笔记本的光驱一点噪音也没有，和不在刻盘一样。CPU占用率一直不到％5，同时还开着azureus限速200做种。总之不影响操作，现在刻录还在进行呢！&lt;br /&gt;……&lt;br /&gt;刻录完成了，弹出又放进去读了一下，正常。&lt;br /&gt;一会儿试一下用它开机。&lt;br /&gt;&lt;br /&gt;ubuntu真方便&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=244797"&gt;http://ubuntuforums.org/showthread.php?t=244797&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115703562186602675?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115703562186602675/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115703562186602675&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115703562186602675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115703562186602675'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/linuxubuntu.html' title='linux下刻录光盘－ubuntu技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115700552893881749</id><published>2006-08-31T13:58:00.000+08:00</published><updated>2006-11-29T14:23:18.753+08:00</updated><title type='text'>uncaught exception: Permission denied to call method XMLHttpRequest.open－－ajax</title><content type='html'>这其实是javascript的安全机制。就是，在一般情况下，javascript只能与本机（javascript所在的机器）通信，尝试和本机之外的主机进行连接时则会出现上述的错误。&lt;br /&gt;消除这个错误有两个方法：第一就是坚持只与本机通信；第二，签名你的代码。签名在我看来是相当的复杂，而且每次修改代码都得重新签名，所以不考虑。那么，我们只有第一个方法了。事实上，google mail就是用的第一种方法。&lt;br /&gt;&lt;br /&gt;下面的两段代码就实现了一个最简单的ajax程序&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;a href="http://www.herofit.com/ajax/index.html"&gt;点击查看html&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;存为w2.html&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;a href="http://www.herofit.com/ajax/hack2.js"&gt;点击查看javascript&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;存为hack2.js&lt;br /&gt;&lt;br /&gt;查看效果:&lt;br /&gt;&lt;a href="http://www.herofit.com/ajax/"&gt;在合法主机上运行&lt;/a&gt;&lt;br /&gt;&lt;a href="http://herofit.com/ajax/"&gt;在“非法”主机上运行&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;上面两个代码的出处忘了^_^&lt;br /&gt;&lt;a href="http://www.mozilla.org/projects/security/components/signed-scripts.html"&gt;代码签名&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com"&gt;w3schools&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115700552893881749?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115700552893881749/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115700552893881749&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115700552893881749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115700552893881749'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/uncaught-exception-permission-denied.html' title='uncaught exception: Permission denied to call method XMLHttpRequest.open－－ajax'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115676732252324577</id><published>2006-08-28T19:57:00.000+08:00</published><updated>2006-11-16T19:50:03.233+08:00</updated><title type='text'>linux下的OpenGL开发简单示例</title><content type='html'>本机所有操作，代码均在ubuntu dapper下验证通过。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;安装&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;apt-get install freeglut3-dev&lt;/blockquote&gt;&lt;br /&gt;它会装上依赖的包的。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;测试代码&lt;br /&gt;&lt;/span&gt;当然是写个程序测试了，我只是把“Computer Graphics Using OpenGL”的第一个完整程序稍微改了改。另外发现个blog的问题－把＜GL/glut.h＞给替换没了。&lt;br /&gt;&lt;blockquote&gt;#include “GL/gl.h”&lt;gl&gt;   // OpenGL itself.&lt;/gl&gt;&lt;br /&gt;&lt;gl&gt;#include &lt;gl&gt;“GL/glut.h” // GLUT support library.&lt;br /&gt;void DrawText(GLint x, GLint y, char* s, GLfloat r, GLfloat g, GLfloat b)&lt;br /&gt;{&lt;br /&gt;int lines;&lt;br /&gt;char* p;&lt;br /&gt;&lt;br /&gt;glMatrixMode(GL_PROJECTION);&lt;br /&gt;glPushMatrix();&lt;br /&gt;glLoadIdentity();&lt;/gl&gt;&lt;/gl&gt;&lt;br /&gt;&lt;gl&gt;&lt;gl&gt;     glOrtho(0.0, glutGet(GLUT_WINDOW_WIDTH),&lt;br /&gt;   0.0, glutGet(GLUT_WINDOW_HEIGHT), -1.0, 1.0);&lt;br /&gt;glMatrixMode(GL_MODELVIEW);&lt;br /&gt; glPushMatrix();&lt;br /&gt; glLoadIdentity();&lt;br /&gt; glColor3f(r,g,b);&lt;br /&gt; glRasterPos2i(x, y);&lt;br /&gt; for(p = s, lines = 0; *p; p++) {&lt;br /&gt; if (*p == '\n') {&lt;br /&gt;     lines++;&lt;br /&gt;     glRasterPos2i(x, y-(lines*24));&lt;br /&gt; }&lt;br /&gt; glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, *p);&lt;br /&gt; }&lt;br /&gt; glPopMatrix();&lt;br /&gt;glMatrixMode(GL_PROJECTION);&lt;br /&gt;glPopMatrix();&lt;br /&gt;glMatrixMode(GL_MODELVIEW);&lt;br /&gt;}&lt;br /&gt;void myInit()&lt;br /&gt;{&lt;br /&gt;glClearColor(1.0,1.0,1.0,0.0);&lt;br /&gt;glColor3f(0.0f,0.0f,0.0f);&lt;br /&gt;glPointSize(4.0);&lt;br /&gt;glMatrixMode(GL_PROJECTION);&lt;br /&gt;glLoadIdentity();&lt;br /&gt;gluOrtho2D(0.0,640.0,0.0,480.0);&lt;br /&gt;}&lt;br /&gt;void myDisplay()&lt;br /&gt;{&lt;br /&gt;glClear(GL_COLOR_BUFFER_BIT);&lt;br /&gt;DrawText(200, 420, "hello,OpenGL",1.0,0.0,0.0);&lt;br /&gt;DrawText(100, 450, "www.herofit.com",0.0,1.0,0.0);&lt;br /&gt;DrawText(300, 390, "wxWidgets",0.0,1.0,0.0);&lt;br /&gt;DrawText(30, 390, "Code::Blocks",0.0,1.0,1.0);&lt;br /&gt;glFlush();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;int main( int argc,  char **argv)&lt;br /&gt;{&lt;br /&gt;glutInit(&amp;argc, argv);&lt;br /&gt;glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);&lt;br /&gt;glutInitWindowSize(640, 480);&lt;br /&gt;glutInitWindowPosition(100,150);&lt;br /&gt;glutCreateWindow("my first OpenGL app");&lt;br /&gt;glutDisplayFunc(myDisplay);&lt;br /&gt;myInit();&lt;br /&gt;glutMainLoop();&lt;br /&gt;&lt;br /&gt;return 1;&lt;br /&gt;}&lt;/gl&gt;&lt;/gl&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;编译运行&lt;/span&gt;&lt;br /&gt;假设上面内容存为opengltest1.c&lt;br /&gt;&lt;blockquote&gt;gcc opengltest1.c -o opengltest1 -lGL -lglut&lt;/blockquote&gt;&lt;blockquote&gt;./opengltest1&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;运行结果&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5737/3144/1600/my%20first%20OpenGL%20app.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/5737/3144/400/my%20first%20OpenGL%20app.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.york.ac.uk/services/cserv/sw/graphics/OPENGL/L23a.html"&gt;DrawText&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115676732252324577?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115676732252324577/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115676732252324577&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115676732252324577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115676732252324577'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/linuxopengl.html' title='linux下的OpenGL开发简单示例'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115657553272783115</id><published>2006-08-26T14:41:00.000+08:00</published><updated>2006-11-16T19:50:15.270+08:00</updated><title type='text'>Tapioca -- Linux版的Gtalk，支持语音通话噢</title><content type='html'>&lt;div class="post-content"&gt;&lt;p class="zh_p"&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="zh_p"&gt;&lt;img src="http://blog.eshangrao.com/images/linux/tapioca.jpg" alt="" /&gt;&lt;/p&gt;   &lt;p class="zh_p"&gt;Linux下可以用GAIM连接GTalk，但是只能聊天不能通话，现在没有这样的遗憾了。&lt;a href="http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca" hreflang="en" target="_blank"&gt;Tapioca&lt;/a&gt; －－ Linux下一个开源的VoIP 和 IM 应用的快速框架。完整支持GTalk voice特性，可以直接用Gmail帐号登录，并支持语音通话。&lt;/p&gt;   &lt;p class="zh_p"&gt;Ubuntu中安装如下： 编辑/etc/apt/sources.list，在你的源中添加如下行：&lt;/p&gt;   &lt;p class="zh_p"&gt;deb http://extindt01.indt.org/VoIP/apt dapper main&lt;/p&gt;   &lt;p class="zh_p"&gt;再执行如下命令安装软件包：&lt;/p&gt;   &lt;p&gt;sudo apt-get update&lt;br /&gt;sudo atp-get install tapiocaui0.3&lt;/p&gt;   &lt;p class="zh_p"&gt;安装完后，在Internet菜单中就可以看到Tapioca的按钮了。其他Linux发行版安装方法见&lt;a href="http://tapioca-voip.sourceforge.net/wiki/index.php/Installation_Guide" hreflang="en" target="_blank"&gt;这里&lt;/a&gt;&lt;/p&gt;   &lt;p class="zh_p"&gt;&lt;img src="http://blog.eshangrao.com/images/linux/tapioca2.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p class="zh_p"&gt;PS:可能您第一次使用Tapioca会发现他不能输入中文，这是因为topioca与scim输入法不兼容而已，在输入框点鼠标右键，选择输入法-&gt;X输入法就可以输入中文了。&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="zh_p"&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;看到这篇文章后，我试了一下，可以用，ubuntu dapper上调试通过。而且不像gaim那样还需要配置什么，非常方便。一点不习惯的地方就是输入框没有输入焦点。&lt;br /&gt;另外，这个工具功能较少，只能文字或语音，文件传输什么的都没有。不过语音就够吸引人了吧。当然，最希望的是google推出native版本。在此之前，大家就先用这个应急吧。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Refs:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://blog.eshangrao.com/index.php/2006/08/23/263-tapioca-linuxgtalk"&gt;http://blog.eshangrao.com/&lt;/a&gt; ，feiy&lt;br /&gt;&lt;a href="http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca"&gt;http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115657553272783115?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115657553272783115/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115657553272783115&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115657553272783115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115657553272783115'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/tapioca-linuxgtalk.html' title='Tapioca -- Linux版的Gtalk，支持语音通话噢'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115582890902309273</id><published>2006-08-17T23:28:00.000+08:00</published><updated>2006-08-17T23:35:09.066+08:00</updated><title type='text'>firefox sound problem（flash,online movie）--解决firefox的声音问题</title><content type='html'>quoted form:&lt;br /&gt;&lt;a href="http://planet-geek.com/archives/003048.html"&gt;http://planet-geek.com/archives/003048.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dougdockery.com/2006/07/31/youtube-sound-fix-or-alsa-oss-saves-the-day/"&gt;http://www.dougdockery.com/2006/07/31/youtube-sound-fix-or-alsa-oss-saves-the-day/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, I had to install the package:&lt;br /&gt;&lt;blockquote&gt;apt-get install alsa-oss&lt;/blockquote&gt;&lt;br /&gt;Next, a change to Firefox's configuration to tell it to use said interface:&lt;br /&gt;&lt;blockquote&gt;cd /etc/firefox&lt;br /&gt;edit 'firefoxrc' and change&lt;br /&gt;FIREFOX_DSP="none"&lt;br /&gt;to&lt;br /&gt;FIREFOX_DSP="aoss"&lt;/blockquote&gt;&lt;br /&gt;Stop and restart Firefox.&lt;br /&gt;&lt;br /&gt;quoted form:&lt;br /&gt;&lt;a href="http://my.opera.com/tuziibanez/blog/show.dml/399724"&gt;http://my.opera.com/tuziibanez/blog/show.dml/399724&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　　1.安装 alsa-oss 包：&lt;br /&gt;&lt;br /&gt;　　sudo apt-get install alsa-oss&lt;br /&gt;&lt;br /&gt;　　2.编辑 firefoxrc 文件：&lt;br /&gt;&lt;br /&gt;　　sudo vim /etc/firefox/firefoxrc&lt;br /&gt;&lt;br /&gt;　　将其中的 FIREFOX_DSP="" 修改为 FIREFOX_DSP="aoss"。&lt;br /&gt;&lt;br /&gt;　　3.Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;三篇帖内容是一样的，我按时间先后顺序列出来&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115582890902309273?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115582890902309273/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115582890902309273&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115582890902309273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115582890902309273'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/firefox-sound-problemflashonline-movie.html' title='firefox sound problem（flash,online movie）--解决firefox的声音问题'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115581051929316899</id><published>2006-08-17T18:09:00.000+08:00</published><updated>2006-08-17T18:42:26.106+08:00</updated><title type='text'>天天用的firefox技巧</title><content type='html'>quoted from: &lt;a href="http://wiki.mozcn.org/index.php/Firefox:Firefox%E9%94%AE%E7%9B%98%E6%8A%80%E5%B7%A7"&gt;wiki.mozcn.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;所有按键均亲自调试，黑体字部分为改动部分，即与原始文档不一致的地方。多多注意噢。&lt;br /&gt;特别大的黑体是很有用但很多人不会用的技巧。&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr align="center" bgcolor="#e6e6e6"&gt;&lt;br /&gt;&lt;br /&gt;&lt;th&gt;快捷键1&lt;/th&gt;&lt;th&gt;快捷键2&lt;/th&gt;&lt;th&gt;作用&lt;br /&gt;&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt; /&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;呼出查找栏,5秒后如无查找事件,则查找栏自动消失)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt; Alt+D&lt;/td&gt;&lt;td&gt;Ctrl+L&lt;br /&gt;&lt;/td&gt;&lt;td&gt;定位到地址栏&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; Ctrl+-&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;Ctrl+MouseWheelUp&lt;br /&gt;&lt;/td&gt;&lt;td&gt;缩小文本&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; Ctrl++&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;Ctrl+MouseWheelDown&lt;br /&gt;&lt;/td&gt;&lt;td&gt;放大文本&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;span style="font-weight: bold;"&gt; Alt&lt;/span&gt;+[1 to 9]&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;选择标签页 [1 to 9]（wiki是说Ctrl，我试了应该是Alt才对）&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt; Ctrl+0&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;正常文本大小（是数字“0”，不是字母“o”）&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt; Ctrl+Enter&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;域名自动完成.com&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt; F5&lt;/td&gt;&lt;td&gt;Ctrl+R&lt;br /&gt;&lt;/td&gt;&lt;td&gt;重新载入（就是刷新）&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt; &lt;span style="font-size:180%;"&gt;Ctrl+F5&lt;/span&gt;&lt;/td&gt;&lt;td&gt;Ctrl+Shift+R&lt;br /&gt;&lt;/td&gt;&lt;td&gt;重新载入（忽略缓存，网站调试记得用这个）&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;span style="font-size:180%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td&gt;&lt;span style="font-size:180%;"&gt; Shift+Del&lt;/span&gt;(当高亮显示某个网址时)&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;删除地址栏下拉菜单历史网址.还可以删除包括搜索栏、网页表单等各种带有下拉菜单的历史记录&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115581051929316899?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115581051929316899/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115581051929316899&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115581051929316899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115581051929316899'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/firefox.html' title='天天用的firefox技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115579560303508858</id><published>2006-08-17T14:00:00.000+08:00</published><updated>2006-08-21T20:03:27.966+08:00</updated><title type='text'>腾讯soso－比google好用</title><content type='html'>很早以前，用TT的时候，就发现TT集成的搜索功能比较强大。虽然没有表露，但也暗暗佩服tencent的技术－－快要赶上google了！&lt;br /&gt;今天又做了些实验，发现两者搜到的结果是一样的，只有分类和排版上的不同。&lt;br /&gt;看来它们是有密切联系的，于是我搜“google tencent search”，果然，返回的第一条就是我想要的。它证实了tencent的搜索是由google提供的，包含内容和技术，甚至还包括缓存服务器。还其实也是这种合作关系的最有力证据。随便在soso中搜点东西，然后点击“网页快照”，看到了吧，竟然是google的链接。而且点进去多半还是有效的。而google，我从来没有成功用上过它的“网页快照”功能，总是“The connection was reset”，不知道各位的情况如何。因此，这也就成为了&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;soso最重要的用处－－查看google不能查看的缓存网页&lt;/span&gt;&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.soso.com/"&gt;腾讯搜搜 http://www.soso.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com"&gt;google  http://www.google.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115579560303508858?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115579560303508858/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115579560303508858&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115579560303508858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115579560303508858'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/sosogoogle.html' title='腾讯soso－比google好用'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115578817253374311</id><published>2006-08-17T12:16:00.000+08:00</published><updated>2006-08-17T12:16:12.546+08:00</updated><title type='text'>skype通讯协议被破解真相</title><content type='html'>前段时间，媒体就报道了skype协议被中国一个小公司破解的新闻。&lt;br /&gt;今天，无意中找到媒体报道的消息来源，&lt;a href="http://www.voipwiki.com/blog/?p=31"&gt;http://www.voipwiki.com/blog/&lt;/a&gt;&lt;br /&gt;看来确实有这回事。&lt;br /&gt;&lt;br /&gt;这里是一则关于此消息的国外的报道，其中有skype公司的回应：&lt;br /&gt;&lt;p&gt;Skype, a unit of eBay, said Friday it is aware of the claim but had "no evidence to suggest that this is true."&lt;/p&gt; &lt;p&gt;"Even if it was possible to do this, the software code would lack the feature set and reliability of Skype," according to a statement from Skype. "Moreover, no amount of reverse engineering would threaten Skype’s cryptographic security or integrity."&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cio.com/blog_view.html?CID=22974"&gt;查看全部&lt;/a&gt;&lt;/p&gt;最后，感叹一下blog的力量。快要成主流媒体了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115578817253374311?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115578817253374311/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115578817253374311&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115578817253374311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115578817253374311'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/skype.html' title='skype通讯协议被破解真相'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115573734809634673</id><published>2006-08-16T22:09:00.000+08:00</published><updated>2006-08-21T20:02:30.936+08:00</updated><title type='text'>了解历史：六四事件</title><content type='html'>上大学前，模模糊糊听过“89年政治风波”这回事，但具体怎么样，却是一点概念也没有。周围也没有人正经谈起过。&lt;br /&gt;上大学后，有人在学校的BT站点发布了关于六四的一些影视资料。看了之后，粗粗有些认识，但也不太清楚。&lt;br /&gt;今天，同学竟然在校内某同学的FTP上找到了一部关于六四的长达三个多小时的记录片＜＜天安门＞＞。完完整整地看了一遍，终于明白一些东西。我觉得这个事件并不是灾难，而是广大人民特别是知识分子思想进步的体现。&lt;br /&gt;事件发生了，机枪，坦克，装甲车都用上了。人民子弟兵居然打人民，有学生，也有市民。我想当时很多人都麻木了，谁也没有想到学生的和平请愿竟会遭到军队的残暴镇压！我没有资格做什么评论，只希望历史不要被遗忘。我会好好保留这部纪录片(想要可以和我联系)，让更多的人记住真正的历史（如果陈述事实也有罪，那……）。&lt;br /&gt;向在六四事件中牺牲和付出的民主战士致敬！！！&lt;br /&gt;&lt;br /&gt;刚刚找到的六四资料，好像不错&lt;br /&gt;&lt;a href="http://mavismah.blogspot.com/2006/08/wikipedia.html"&gt;http://mavismah.blogspot.com/2006/08/wikipedia.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115573734809634673?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115573734809634673/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115573734809634673&amp;isPopup=true' title='20 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115573734809634673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115573734809634673'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/blog-post_115573734809634673.html' title='了解历史：六四事件'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115571696814522534</id><published>2006-08-16T16:13:00.000+08:00</published><updated>2006-08-19T12:25:59.160+08:00</updated><title type='text'>读＜和美女同事的电梯一夜＞（好像也叫＜和一个美女同事一起电梯里被困了一夜＞）</title><content type='html'>今天无聊，竟然读起书来了（虽然不是什么正经东西） 。而且一口气读了四十多回，已经出的全看完了。虽然没有特别香艳刺激的，但作者的YY的倒是随处可见。故事还没完呢，不知道我会不会继续往下读。书中粗口不少，不过这倒让人觉得挺真实的。作者在书中常常自卑，但字里行间却表明，作者还是有点见识的（居然能说出那么多AV女优的名字）；作者也常常自我安慰，阿Q永垂不朽！文中的“我”应该算是受过高等教育的现代普通知识分子的典型（男性）。&lt;br /&gt;&lt;br /&gt;我的读后感算是完成了;｝&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115571696814522534?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115571696814522534/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115571696814522534&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115571696814522534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115571696814522534'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/blog-post_16.html' title='读＜和美女同事的电梯一夜＞（好像也叫＜和一个美女同事一起电梯里被困了一夜＞）'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115565226788825173</id><published>2006-08-15T22:25:00.000+08:00</published><updated>2006-08-15T22:31:07.903+08:00</updated><title type='text'>Ajax: A New Approach to Web Applications</title><content type='html'>最早听说Ajax是由于体验google mail。它的出现给了客户另样的用户体验，应该说是前所未有的。据我理解，Ajax应该算是web2.0的标志。掌握它，了解它应该是没有坏处的。&lt;br /&gt;这里推荐一篇入门的准备文章，图文并茂，不要错过噢！&lt;br /&gt;&lt;a href="http://www.adaptivepath.com/publications/essays/archives/000385.php"&gt;http://www.adaptivepath.com/publications/essays/archives/000385.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115565226788825173?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115565226788825173/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115565226788825173&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115565226788825173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115565226788825173'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/ajax-new-approach-to-web-applications.html' title='Ajax: A New Approach to Web Applications'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115563158379318390</id><published>2006-08-15T16:46:00.000+08:00</published><updated>2006-08-15T16:46:23.883+08:00</updated><title type='text'>用tar备份和恢复linux系统</title><content type='html'>backup:&lt;br /&gt;cd /mnt/linux &amp;&amp;amp; tar -jcvf /mnt/bak/linux.tar.bz2 *&lt;br /&gt;restore:&lt;br /&gt;tar -jxvpf /mnt/bak/linux.tar.bz2 -C /mnt/linux&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;上面的操作假定需要备份的分区已经挂载在 /mnt/linux上。&lt;br /&gt;如果备份失败，可以考虑使用live－CD,或启动到另外一个linux系统下进行备份。&lt;br /&gt;另外，这种方式备份的压缩率是非常高的。有多高，试试吧&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115563158379318390?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115563158379318390/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115563158379318390&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115563158379318390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115563158379318390'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/tarlinux.html' title='用tar备份和恢复linux系统'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115561979078184680</id><published>2006-08-15T13:24:00.000+08:00</published><updated>2006-08-15T13:31:25.646+08:00</updated><title type='text'>实现按下Ctrl+Alt+Del打开任务管理器－ubuntu技巧</title><content type='html'>&lt;pre&gt;gconftool-2 -t str --set /apps/metacity/global_keybindings/run_command_9 "&lt;control&gt;&lt;alt&gt;Delete"&lt;br /&gt;gconftool-2 -t str --set /apps/metacity/keybinding_commands/command_9 "gnome-system-monitor"&lt;/alt&gt;&lt;/control&gt;&lt;/pre&gt;&lt;br /&gt;试试吧，如果不行Ctrl+Alt+Backspace后再试，其实用这个可以实现运行任意程序的快捷键，作相应的替换即可。只在ubuntu 6.06即dapper上测试通过，不过应该只要是用gnome的都是可以的，比如Fedora Core Linux系列。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;br /&gt;&lt;/span&gt;&lt;a href="http://ubuntuguide.org"&gt;http://ubuntuguide.org&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115561979078184680?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115561979078184680/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115561979078184680&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115561979078184680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115561979078184680'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/ctrlaltdelubuntu.html' title='实现按下Ctrl+Alt+Del打开任务管理器－ubuntu技巧'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115556414281854892</id><published>2006-08-14T21:47:00.000+08:00</published><updated>2006-08-14T22:04:22.253+08:00</updated><title type='text'>flash播放器－create a simple flash playing html file</title><content type='html'>对于一般的swf文件，将其拖放到游览器上就可以播放的。&lt;br /&gt;但这样播放我们无法实现前进后退等，而且对于一些有加密的swf文件（比如著名的新东方口语教程），根本无法播放。&lt;br /&gt;在win下，情况还好，只要安装一个flash播放器就好了。但是对于linux来说，目前还没有一个很好的独立（stand-lone）的播放器。&lt;br /&gt;因此我做了一个可以生成播放各种swf的html网页，适用于各个平台（希望大家帮忙测试）。&lt;br /&gt;&lt;br /&gt;只要访问这个页面即可以生成好用的html文件：&lt;br /&gt;&lt;a href="http://www.herofit.com/flashplayer/index.php"&gt;http://www.herofit.com/flashplayer/index.php&lt;/a&gt;&lt;br /&gt;使用比较简单，但我还是做了一个帮助文件：&lt;br /&gt;&lt;a href="http://www.herofit.com/flashplayer/download.php?file=sample.swf"&gt;http://www.herofit.com/flashplayer/download.php?file=sample.swf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;这里提醒一下：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;如果选的是Relative Path（默认），需要将所得的html和swf放在同一个文件夹中&lt;/li&gt;&lt;li&gt;如果选的是Absolute Path，需要保证swf在原来的位置不变，html可以放在任意文件夹&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;网页播放器：http://www.unixuser.org/~euske/vnc2swf/&lt;br /&gt;php强制下载脚本：http://elouai.com/force-download.php&lt;br /&gt;……&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115556414281854892?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115556414281854892/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115556414281854892&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115556414281854892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115556414281854892'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/flashcreate-simple-flash-playing-html.html' title='flash播放器－create a simple flash playing html file'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115544242610969834</id><published>2006-08-13T11:47:00.000+08:00</published><updated>2006-08-15T17:51:20.306+08:00</updated><title type='text'>linux下教育网直通车的安装配置-Virtual Private Network (VPN)</title><content type='html'>安装过程不再重复，请参看http://pptpclient.sourceforge.net/&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;配置过程&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 1。在root下启动pptpconfig &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 2。点Sever页。Name随便填；Server填上58.207.255.17；剩下两项就填自己申请的用户名和密码 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 3。Routing页，选中All To Tunnel，所有连接都走VPN的意思 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 4。DNS页，去掉所有选择 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 5。Encryption页，同样不要选择任何选项，然后点ADD &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 6。注释掉/etc/ppp/options.pptp文件中 require-mppe-128 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 7。将58.207.255.35添加（注意是添加，不是替换）到DNS列表。 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"&gt; 之后在pptpconfig里面点start就可以了。&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;需要注意的问题：&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;安装配置必须有root权限&lt;/li&gt;&lt;li&gt;填写Server时如填成&lt;span class="postbody"&gt;lns_bj.vip.edu.cn，则会出现狂发数据据包或ping不通的问题&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;仅是控制台时（init 5）能用吗？&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    能用，pon &lt;vpnname&gt;,poff &lt;vpnname&gt;.同样需要root权限&lt;/vpnname&gt;&lt;/vpnname&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;为什么控制台连接成功了却什么网站也访问不了了？&lt;/span&gt;&lt;br /&gt;   先看一下路由表的差别&lt;br /&gt;&lt;ul&gt;&lt;li&gt;用pptpconfig连接正常后的路由表：&lt;/li&gt;&lt;/ul&gt;    Kernel IP routing table&lt;br /&gt;   Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;   58.207.255.17   219.216.126.254 255.255.255.255 UGH   0      0        0 eth0&lt;br /&gt;   58.207.255.18   *               255.255.255.255 UH    0      0        0 ppp0&lt;br /&gt;   219.216.126.0   *               255.255.255.0   U     0      0        0 eth0&lt;br /&gt;   default         *               0.0.0.0         U     0      0        0 ppp0&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;运行pon后的路由表：&lt;/li&gt;&lt;/ul&gt;    &lt;blockquote&gt;&lt;/blockquote&gt;Destination     Gateway         Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;   58.207.255.18   *               255.255.255.255 UH    0      0        0 ppp0&lt;br /&gt;   219.216.126.0   *               255.255.255.0   U     0      0        0 eth0&lt;br /&gt;   default         219.216.126.254 0.0.0.0         UG    0      0        0 eth0&lt;blockquote&gt;&lt;/blockquote&gt;知道问题就简单了，随便来几个route add,route del就OK了，方便点就是写成脚本咯&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;我想同时使用原来的IP访问学校的论坛，FTP……因为它们限制了访问IP范围&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;可以的，只要改一下路由表走向就可以了&lt;/li&gt;&lt;li&gt;首先获得你要访问的服务器的相关信息，主要是网络号，掩码等&lt;/li&gt;&lt;li&gt;接着添加路由信息到路由表&lt;/li&gt;&lt;li&gt;比如route add -net 202.118.0.0 netmask 255.255.0.0 dev eth0，其中dev可省略&lt;/li&gt;&lt;li&gt;如果需要添加多条，可以写到脚本中&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;参考资料：&lt;br /&gt;&lt;/span&gt;http://pptpclient.sourceforge.net/&lt;br /&gt;http://bbs.vip.edu.cn/phpbb3/viewtopic.php?t=85&lt;br /&gt;……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115544242610969834?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115544242610969834/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115544242610969834&amp;isPopup=true' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115544242610969834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115544242610969834'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/linux-virtual-private-network-vpn.html' title='linux下教育网直通车的安装配置-Virtual Private Network (VPN)'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115536796369019730</id><published>2006-08-12T15:29:00.000+08:00</published><updated>2006-08-12T15:51:34.826+08:00</updated><title type='text'>what is "sticky bit mode" , "SUID" , "SGID"</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;Hi,&lt;br /&gt;I was not able to understand the concept&lt;br /&gt;&lt;br /&gt;sticky bit mode , SUID &amp; SGID.&lt;br /&gt;&lt;br /&gt;can any one help me in this??&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The sticky bit is represented by a t when you do ls -l. Its use is defined at http://www.unixguide.net/hp/faq/5.1.9.shtml. In general, it will stop the kernel from unloading the program from memory right after it's finished running (so subsequent runs of the program will be faster).&lt;br /&gt;&lt;br /&gt;The setuid bit (s in the user column) allows an executable file, when run, to take on root privileges. You should only use this for programs designed to give up the privileges that they don't need right after they start.&lt;br /&gt;&lt;br /&gt;The setgid bit (s in the group column) is the same as setuid, except that it takes on the root group permissions rather than the user. (In general, if you set setuid then you should also set setgid).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Hello augustus123,&lt;br /&gt;&lt;br /&gt;There are some differences in the concepts stated by 'rjlee'.&lt;br /&gt;&lt;br /&gt;1) Sticky bit was used on executables in linux (which was used more often)so that they would remain in the memory more time after the initial execution, hoping they would be needed in the near future. But since today we have more sophisticated memory accessing techniques and the bottleneck related to primary memory is diminishing, the sticky bit is not used today for this. Instead, it is used on folders, to imply that a file or folder created inside a stickybit-enabled folder could only be deleted by the creator itself. A nice implementation of sticky bit is the /tmp folder,where every user has write permission but only users who own a file can delete them. Remember files inside a folder which has write permission can be deleted even if the file doesn't have write permission. The sticky bit comes useful here.&lt;br /&gt;&lt;br /&gt;2) As of SUID or SetUID bit, the executable which has the SUID set runs with the ownership of the program owner. That is, if you own an executable, and another person issues the executable, then it runs with your permission and not his. The default is that a program runs with the ownership of the person executing the binary.&lt;br /&gt;&lt;br /&gt;3) The SGID bit is the same as of SUID, only the case is that it runs with the permission of the group. Another use is it can be set on folders,making nay files or folders created inside the SGID set folder to have a common group ownership.&lt;br /&gt;&lt;br /&gt;Hope this was useful and you got the point.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;quoted form: &lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=258719"&gt;http://www.linuxquestions.org/questions/showthread.php?t=258719&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;read more: &lt;a href="http://www.codecoffee.com/tipsforlinux/articles/028.html"&gt;http://www.codecoffee.com/tipsforlinux/articles/028.html&lt;/a&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="链接" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115536796369019730?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115536796369019730/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115536796369019730&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115536796369019730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115536796369019730'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/what-is-sticky-bit-mode-suid-sgid.html' title='what is &quot;sticky bit mode&quot; , &quot;SUID&quot; , &quot;SGID&quot;'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-115527734825392576</id><published>2006-08-11T14:21:00.000+08:00</published><updated>2006-08-11T14:22:28.253+08:00</updated><title type='text'>博客又可以访问了</title><content type='html'>刚才编码的事搞了好久&lt;br /&gt;最后是修改了模板才搞定&lt;br /&gt;总算是可用了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-115527734825392576?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/115527734825392576/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=115527734825392576&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115527734825392576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/115527734825392576'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/08/blog-post.html' title='博客又可以访问了'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-114990967982762859</id><published>2006-06-10T11:20:00.000+08:00</published><updated>2006-08-11T14:12:18.893+08:00</updated><title type='text'>最郁闷的事</title><content type='html'>博客可以发布，不能访问&lt;br /&gt;郁闷&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-114990967982762859?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/114990967982762859/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=114990967982762859&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/114990967982762859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/114990967982762859'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/06/blog-post_10.html' title='最郁闷的事'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-114990855279611488</id><published>2006-06-10T11:01:00.000+08:00</published><updated>2006-08-11T14:15:53.036+08:00</updated><title type='text'>［摘自帮助］本网站支持的浏览器列表－－看看什么叫专业</title><content type='html'>Blogger 浏览器列表&lt;br /&gt;&lt;br /&gt;大多数最新版本的通用 Web 浏览器：Internet Explorer 6/Windows 和 Mozilla Firefox，都支持 Blogger 强大的所见即所得编辑功能。Safari 迟早也会支持该功能。&lt;br /&gt;&lt;br /&gt;Blogger 的"预览"模式和 HTML 格式按钮仅可在某些旧版浏览器中使用，而在其他浏览器中则不可用。下表列出了各种浏览器支持的功能。如果您想使用 Blogger 最新、最强大的功能，请升级您的浏览器！&lt;br /&gt;浏览器     撰写？     HTML 按钮     预览？&lt;br /&gt;AOL 9/苹果机     否     不支持*     否*&lt;br /&gt;AOL 9/Win     是**     全部     是&lt;br /&gt;Camino 0.8/苹果机     否     全部     否&lt;br /&gt;Firefox/Win     是     全部     是&lt;br /&gt;Firefox/苹果机     是     全部     是&lt;br /&gt;IE 6/Win     是     全部     是&lt;br /&gt;IE 5.5/Win     是     全部     是&lt;br /&gt;IE 5/Win     否     不支持     否&lt;br /&gt;IE 4/Win     否     不支持     否&lt;br /&gt;IE 5/苹果机     否     不支持     否&lt;br /&gt;Mozilla 1.7/Win     是     全部     是&lt;br /&gt;Mozilla 1.7/苹果机     是     全部     是&lt;br /&gt;Mozilla 1.3/苹果机     否     全部*     是*&lt;br /&gt;Netscape 7.2/Win     是     全部     是&lt;br /&gt;Netscape 7.2/苹果机     是     全部     是&lt;br /&gt;Netscape 6/Win     不支持&lt;br /&gt;Netscape 6/苹果机     不支持&lt;br /&gt;Netscape 4/Win     否     不支持     否&lt;br /&gt;Netscape 4/苹果机     否     不支持     否&lt;br /&gt;Opera 7.5/Win     否     部分***     是&lt;br /&gt;Opera 7.5/苹果机     否     部分***     是&lt;br /&gt;Safari 1.2.1/苹果机     否     部分***     是&lt;br /&gt;&lt;br /&gt;说明：&lt;br /&gt;&lt;br /&gt;    * 浏览器：Web 浏览器名称和版本&lt;br /&gt;    * 撰写：是否支持 Blogger 所见即所得撰写模式&lt;br /&gt;    * HTML 按钮：支持全部、部分或根本不支持 Blogger 的 HTML 模式格式按钮&lt;br /&gt;    * 预览：是否支持 Blogger 预览模式&lt;br /&gt;&lt;br /&gt;备注：&lt;br /&gt;* 可显示但是不能正常使用&lt;br /&gt;** Enter 键用于断行时无效&lt;br /&gt;*** 拼写检查，上传文件&lt;br /&gt;&lt;br /&gt;使用状况明细：&lt;br /&gt;&lt;br /&gt;    * 71% 的用户使用 IE6/Windows，明显占绝大多数，但总体来讲还是低于 Web 的百分比。&lt;br /&gt;    * 6% 的用户使用 Mozilla Firefox，使用率持续上升，我们内部都在使用。&lt;br /&gt;    * 3% 的用户使用 Safari，在我们内部也颇受青睐。&lt;br /&gt;    * 2% 的用户使用 AOL&lt;br /&gt;&lt;br /&gt;对于 AOL 用户以及此处未列出的用户（Netscape、Opera 等）来讲，可能使用 Mozilla Firefox 更加明智，这样才可以确保使用 Blogger 时能获得最佳体验。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-114990855279611488?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/114990855279611488/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=114990855279611488&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/114990855279611488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/114990855279611488'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/06/blog-post_114990855279611488.html' title='［摘自帮助］本网站支持的浏览器列表－－看看什么叫专业'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29499891.post-114990799646471236</id><published>2006-06-10T10:46:00.000+08:00</published><updated>2006-08-11T14:16:22.606+08:00</updated><title type='text'>难，找个博客真是难</title><content type='html'>开始注册的是5Q。一切都好，除了与firefox 的兼容性基本为零；&lt;br /&gt;后来是占座网。也都还好，与firefox在一定程序上兼容，可惜它不是公开的；&lt;br /&gt;再就是刚刚的博客中国。想想这规模，中国最大的中文博客网站，毫不犹豫注册了，一试用发现，同样不兼容firefox；&lt;br /&gt;后来想想，google的GMAIL对所有浏览器兼容性都还行，要是它推出博客服务，应该兼容性是有保证的，于是就到了这里。现在还没有详细研究，不知道会不会有兼容性问题。&lt;br /&gt;&lt;br /&gt;哎，firefox的用户怎么找个博客这么难！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29499891-114990799646471236?l=herofit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://herofit.blogspot.com/feeds/114990799646471236/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29499891&amp;postID=114990799646471236&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/114990799646471236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29499891/posts/default/114990799646471236'/><link rel='alternate' type='text/html' href='http://herofit.blogspot.com/2006/06/blog-post.html' title='难，找个博客真是难'/><author><name>ahlongxp</name><uri>http://www.blogger.com/profile/14680847903850742824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
