<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>响马的唠叨</title>
	<atom:link href="http://www.9465.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.9465.net</link>
	<description>Don&#039;t think you are, known you are.</description>
	<lastBuildDate>Fri, 10 Sep 2010 17:38:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How are you，怎么是你啊</title>
		<link>http://www.9465.net/archives/207.html</link>
		<comments>http://www.9465.net/archives/207.html#comments</comments>
		<pubDate>Fri, 10 Sep 2010 17:24:46 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[胡言乱语]]></category>
		<category><![CDATA[英语]]></category>
		<category><![CDATA[随心]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=207</guid>
		<description><![CDATA[今天随心回来，抱怨学校里面的英语太简单，连老师都觉得课本讲的没有意义。 我就好奇问她，开始是不是教：“How are you?”啊？ 然后她说，是啊是啊，于是大笑。 因为之前我给她讲过一个笑话，翻译“How are you”为“怎么是你”，翻译“How old are you”为“怎么老是你”。 看了不少美剧，有个感觉，那就是如果有人问你：“How are you”的时候，多半你的状况其实已经很不好了。更多的和更随便的是“What&#8217;s up”，或者“What&#8217;s going on”。 不过还好的是，随心他们的教材里面，回复“How are you”的不是“I&#8217;m fine,  tank you, and you”了。也许是个进步了，^_^。 管他呢。]]></description>
			<content:encoded><![CDATA[<p>今天随心回来，抱怨学校里面的英语太简单，连老师都觉得课本讲的没有意义。</p>
<p>我就好奇问她，开始是不是教：“How are you?”啊？</p>
<p>然后她说，是啊是啊，于是大笑。</p>
<p>因为之前我给她讲过一个笑话，翻译“How are you”为“怎么是你”，翻译“How old are you”为“怎么老是你”。</p>
<p>看了不少美剧，有个感觉，那就是如果有人问你：“How are you”的时候，多半你的状况其实已经很不好了。更多的和更随便的是“What&#8217;s up”，或者“What&#8217;s going on”。</p>
<p>不过还好的是，随心他们的教材里面，回复“How are you”的不是“I&#8217;m fine,  tank you, and you”了。也许是个进步了，^_^。</p>
<p>管他呢。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/207.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>谁是阿凡达</title>
		<link>http://www.9465.net/archives/148.html</link>
		<comments>http://www.9465.net/archives/148.html#comments</comments>
		<pubDate>Sat, 04 Sep 2010 14:14:36 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[电影]]></category>
		<category><![CDATA[虚拟社区]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[阿凡达]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=148</guid>
		<description><![CDATA[最近折腾 WordPress 和 Redmine，发现他们都支持了一个头像服务，叫做 Gravatar，就觉得老外挺搞笑，居然也跟国人一样山寨……]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-149 alignleft" title="avatar" src="http://www.9465.net/wp-content/uploads/2010/09/avatar-298x300.jpg" alt="" width="298" height="300" />最近折腾 WordPress 和 Redmine，发现他们都支持了一个头像服务，叫做 Gravatar，就觉得老外挺搞笑，居然也跟国人一样山寨。</p>
<p>然而随着不断挖掘，居然发现大家似乎都很山寨，不但 WordPress 和 Redmine 自己都有支持本地上传的 avatar 插件，就连 facebook 和 tweeter 也叫 avatar，于是就很费解了，就开始问 google 大叔。</p>
<p>google 大叔让我问爱词霸MM，爱词霸MM 这么回答的：</p>
<p><span id="more-148"></span></p>
<pre>1. 化身,天神下凡,具体化
2. 【电脑】(术语)指在虚拟实境中互动地呈现一个人;尤指电脑游戏或聊天室中代表使用者的）化身
3. 2010美国电影《阿凡达》</pre>
<p>&#8220;Avatar&#8221;源自印度梵语，本意是指&#8221;分身、化身&#8221;。互联网时代，Avatar成为网络虚拟角色&#8212;网络用户在以图像为主的虚拟世界中的虚拟形象的代名词。</p>
<p>目前可考证的最早关于 avatar 在互联网的应用是 1995 年的 avatar MUD:<br />
<a href="http://en.wikipedia.org/wiki/Avatar_(MUD)" target="_blank">http://en.wikipedia.org/wiki/Avatar_(MUD)</a></p>
<p>所以很难说电影叫 avatar 是依照其本意，还是依照 avatar 在网络世界里的大量应用。</p>
<p>管他呢。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/148.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ubuntu 上 redmine 安装及 svn 权限绑定</title>
		<link>http://www.9465.net/archives/67.html</link>
		<comments>http://www.9465.net/archives/67.html#comments</comments>
		<pubDate>Fri, 03 Sep 2010 16:07:42 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[redmine]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=67</guid>
		<description><![CDATA[讨论 redmine 的安装，以及使用 redmine 项目关系管理 svn 权限。]]></description>
			<content:encoded><![CDATA[<p>本文并不适用于所有的需求。适用环境如下：</p>
<ul>
<li>redmine 用户分为程序员和普通成员，普通成员不可访问 svn，程序员可以访问，并且可以访问全部 svn 代码。</li>
<li>只有项目组成员才被允许向版本库中提交代码。</li>
</ul>
<p>因为 apache 认证模块的限制，未能实现 svn 的浏览权限与项目绑定。不过程序员允许查阅全部代码也一直是我们团队的传统。<br />
<span id="more-67"></span><br />
<strong>一、下载并安装 redmine</strong></p>
<pre class="brush:shell">sudo apt-get install redmine redmine-sqlite
sudo chown www-data /usr/share/redmine/config/environment.rb</pre>
<p>安装时选择 sqlite 数据库。</p>
<p><strong>二、配置 apache</strong></p>
<p>编辑文件：/etc/apache2/sites-available/default</p>
<pre class="brush:xml">&lt;VirtualHost *:80&gt;
  RailsBaseURI /
  SetEnv X_DEBIAN_SITEID default
  ServerName redmine
  DocumentRoot /usr/share/redmine/public

  &lt;Directory "/usr/share/redmine/public"&gt;
    AllowOverride None
    Order allow,deny
    Allow from all
  &lt;/Directory&gt;

&lt;/VirtualHost&gt;</pre>
<p><strong>三、修改密码存储方式兼容 apache 认证</strong></p>
<p>修改文件：app/models/user.rb</p>
<pre class="brush:diff">         return nil unless user.auth_source.authenticate(login, password)
       else
+        if user.hashed_password[0,5] != '{SHA}'
+          pw_s = ""
+          user.hashed_password.unpack(
+                  'a2'*(user.hashed_password.length / 2)).collect do |x|
+            pw_s &lt;&lt; x.hex
+          end
+          user.hashed_password = '{SHA}' + Base64.encode64(pw_s).chomp
+        end
+
         return nil unless User.hash_password(password) == user.hashed_password
       end
     else
@@ -274,8 +287,10 @@

 private
   def self.hash_password(clear_password)
-    Digest::SHA1.hexdigest(clear_password || "")
+    '{SHA}' + Base64.encode64(Digest::SHA1.digest(clear_password || "")).chomp
   end
 end</pre>
<p><strong>四、安装 dbi 认证</strong></p>
<pre class="brush:shell">cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/dbd.load
sudo ln -s ../mods-available/authn_dbd.load
sudo ln -s ../mods-available/auth_basic.load</pre>
<p><strong>五、修改认证方式，并关联 redmine 数据库</strong></p>
<p>修改文件：/etc/apache2/mods-available/dav_svn.conf</p>
<pre class="brush:xml">DBDriver sqlite3
DBDParams "/var/redmine/default/redmine_default" 

&lt;Directory /svn&gt;
  DAV svn
  SVNPath /var/svn
  AuthType Basic
  AuthName "Private area" 

  AuthBasicProvider dbd

  AuthDBDUserPWQuery "select hashed_password from users where login=%s and type='User' and status=1 and id in ( select user_id from groups_users,users where group_id=id and type='Group' and (lastname='svn' or lastname='svn_commit'))" 

  Require valid-user
&lt;/Directory&gt;</pre>
<p>至此，svn 已被设置为只有属于 svn 或者 svn_commit 两个组的激活用户可以访问 svn，全部具备读写权限。</p>
<p><strong>六、限制提交权限</strong></p>
<p>在 svn\hooks 目录下创建 pre-commit.pl，内容如下。程序中第六行需修改为实际的 sqlite 数据库路径，第 11 行需修改为 svn 的本地实际路径。</p>
<pre class="brush:perl">#!/usr/bin/env perl

use strict;
use Carp;
use DBI;
my $dbh = DBI-&gt;connect("dbi:SQLite:/var/redmine/default/redmine_default") || die "Cannot connect: $DBI::errstr";

my $repos        = shift;
my $txn          = shift;
my $svnlook = "/usr/bin/svnlook";
my $svnbase = "file:///var/svn/";

my $minchars = 4;

my @svnlooklines = &amp;read_from_process($svnlook, 'log', $repos, '-t', $txn);
my $comment = shift @svnlooklines;

unless (length $comment) {
  die "A comment is required!\n";
  }

if ( length($comment) &lt; $minchars ) {
  die "Comment must be at least $minchars characters.\n";
  }

# Get the author from svnlook.
my @svnlooklines = &amp;read_from_process($svnlook, 'author', $repos, '-t', $txn);
my $author = shift @svnlooklines;
unless (length $author)
  {
    die "$0: txn '$txn' has no author.\n";
  }

# Figure out what directories have changed using svnlook..
my @dirs_changed = &amp;read_from_process($svnlook, 'dirs-changed', $repos,
                                      '-t', $txn);

# Lose the trailing slash in the directory names if one exists, except
# in the case of '/'.
my $rootchanged = 0;
for (my $i=0; $i&lt;@dirs_changed; ++$i)
  {
    if ($dirs_changed[$i] eq '/')
      {
        $rootchanged = 1;
      }
    else
      {
        $dirs_changed[$i] =~ s#^(.+)[/\\]$#$1#;
      }
  }

# Figure out what files have changed using svnlook.
my @files_changed;
foreach my $line (&amp;read_from_process($svnlook, 'changed', $repos, '-t', $txn))
  {
    # Split the line up into the modification code and path, ignoring
    # property modifications.
    if ($line =~ /^..  (.*)$/)
      {
        push(@files_changed, $1);
      }
  }

# Create the list of all modified paths.
my @changed = (@dirs_changed, @files_changed);

# There should always be at least one changed path.  If there are
# none, then there maybe something fishy going on, so just exit now
# indicating that the commit should not proceed.
unless (@changed)
  {
    die "$0: no changed paths found in txn '$txn'.\n";
  }

# check admin
my $dbconn = $dbh-&gt;prepare("select login from users where login='$author' and admin='t'");
$dbconn-&gt;execute();

if ( $dbconn-&gt;fetchrow_array )
{
  exit 0;
}

# check group svn_commit
my $dbconn = $dbh-&gt;prepare("select login from users where login='$author' and type='User' and status=1 and id in ( select user_id from groups_users,users where group_id=id and type='Group' and lastname='svn_commit')");
$dbconn-&gt;execute();

unless ( $dbconn-&gt;fetchrow_array )
{
  die "user '$author' does not have permission to commit.\n";
}

my %permissions;
foreach my $path (@changed)
  {
    $permissions{$path} = 0;
  }

my $dbconn = $dbh-&gt;prepare("select substr(url, length('$svnbase')+1) from users,repositories,members where repositories.project_id=members.project_id and users.id=members.user_id and users.login='$author' and url like '$svnbase%'");
$dbconn-&gt;execute();

while( my $row = $dbconn-&gt;fetchrow_array)
{
  my ($url) = $row;

  if (substr($url, -1) eq "/")
  {
    $url = substr($url, 0, length($url) - 1);
  }

  foreach my $path (@changed)
  {
    if( $path eq $url || ( substr( $path, 0, length($url)) eq $url &amp;&amp; substr( $path, length($url), 1) eq "/" ))
    {
      $permissions{$path} = 1;
    }
  }
}

my $exit_code = 0;

foreach my $path (@changed)
{
  if($permissions{$path} ne 1)
  {
    print STDERR "user '$author' does not have permission to commit to '$path'\n";
    $exit_code = 1;
  }
}

exit $exit_code;

# All checks passed, so allow the commit.

sub safe_read_from_pipe
{
  unless (@_)
    {
      croak "$0: safe_read_from_pipe passed no arguments.\n";
    }
  print "Running @_\n";
  my $pid = open(SAFE_READ, '-|');
  unless (defined $pid)
    {
      die "$0: cannot fork: $!\n";
    }
  unless ($pid)
    {
      open(STDERR, "&gt;&amp;STDOUT")
        or die "$0: cannot dup STDOUT: $!\n";
      exec(@_)
        or die "$0: cannot exec '@_': $!\n";
    }
  my @output;
  while (&lt;SAFE_READ&gt;)
    {
      chomp;
      push(@output, $_);
    }
  close(SAFE_READ);
  my $result = $?;
  my $exit   = $result &gt;&gt; 8;
  my $signal = $result &amp; 127;
  my $cd     = $result &amp; 128 ? "with core dump" : "";
  if ($signal or $cd)
    {
      warn "$0: pipe from '@_' failed $cd: exit=$exit signal=$signal\n";
    }
  if (wantarray)
    {
      return ($result, @output);
    }
  else
    {
      return $result;
    }
}

sub read_from_process
  {
  unless (@_)
    {
      croak "$0: read_from_process passed no arguments.\n";
    }
  my ($status, @output) = &amp;safe_read_from_pipe(@_);
  if ($status)
    {
      if (@output)
        {
          die "$0: '@_' failed with this output:\n", join("\n", @output), "\n";
        }
      else
        {
          die "$0: '@_' failed with no output.\n";
        }
    }
  else
    {
      return @output;
    }
}</pre>
<p>修改完成后，svn 权限被设置成为必须属于项目组成员才可以提交。</p>
<p><strong>七、配置示例</strong></p>
<p>下面举例说明如何具体使用：</p>
<p>假设 svn 路径为 /var/svn，项目为 prj1</p>
<p>在 redmine 的版本库管理里，需要选择 subversion 并设定地址为：file:///var/svn/prj1</p>
<p>svn 将自动按照 file:///var/svn/ 匹配所属项目，并检验用户是否为合法项目成员，验证成功后才会予以提交。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/67.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何干净的独立一个 svn 项目目录</title>
		<link>http://www.9465.net/archives/49.html</link>
		<comments>http://www.9465.net/archives/49.html#comments</comments>
		<pubDate>Fri, 03 Sep 2010 12:27:27 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=49</guid>
		<description><![CDATA[如何从一个庞大的版本库中将一个项目目录干净地独立出来……]]></description>
			<content:encoded><![CDATA[<p>需要从一个庞大的版本库中将一个项目目录独立出来，这个问题很常见，解决方法也差不多，这里有详细讲解：</p>
<p><a href="http://blog.chrisramsay.co.uk/2008/11/03/split-up-a-multi-project-svn-repo/" target="_blank">http://blog.chrisramsay.co.uk/2008/11/03/split-up-a-multi-project-svn-repo/</a></p>
<p>不过这么处理之后，会有一个遗留问题，那就是会留下大量垃圾日志。整个代码库内的日志全部都会保留，无论是否属于本项目。在大量搜索的基础上，发现这个问题基本无解，甚至准备放弃。</p>
<p>考虑几天后，突发奇想，笨人用笨法，全库操作不可行，咱就一个一个来。通过依次 dump 每个版本，来达到仅同步有用版本的目的。<br />
<span id="more-49"></span><br />
具体方法如下：</p>
<p><strong>一、建立空库，啰嗦一下：</strong></p>
<pre class="brush:shell">svnadmin create tempsvn</pre>
<p><strong>二、取得目标项目的版本列表：</strong></p>
<pre class="brush:shell">svn log file:///var/svn/team1/prj2 &gt; log.txt</pre>
<p><strong>三、依次将版本列表中的版本同步到临时库中。</strong></p>
<p>我比较偷懒，直接用 UltraEdit 的宏处理了文件，勤快的人不妨根据自己的需要写一个小程序，与大家分享。最后我处理出的文本是这样的：</p>
<pre class="brush:shell">svnadmin dump -r 128 file:///var/svn | svnadmin load tempsvn
svnadmin dump --incremental -r 139 file:///var/svn | svnadmin load tempsvn
svnadmin dump --incremental -r 153 file:///var/svn | svnadmin load tempsvn
......</pre>
<p>需要注意两点，log 出来的文件版本号是从大到小的，需要倒序一下；第一个版本的操作需要与后面的版本不同，后面的版本需要增量 dump。</p>
<p>保存文件并执行，Linux 还需要做一些修改，不罗嗦了。</p>
<p><strong>四、更换项目目录。</strong></p>
<p>经过上面的步骤，tempsvn 里便有了一份干净的只有与 team1/prj2 有关系的版本库，但是代码库中还可能因为历史提交的原因包含其他路径的文件，需要再进行一次 dump，svndumpfilter，load 的过程，这些方法前面我提到的博客都有介绍。当然你可以同时修改路径等其他操作。</p>
<p>方法虽然达到目的了，但是因为需要依次同步版本，所以实际操作耗时稍微长一些。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/49.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>跟大车师傅学开车</title>
		<link>http://www.9465.net/archives/33.html</link>
		<comments>http://www.9465.net/archives/33.html#comments</comments>
		<pubDate>Mon, 30 Aug 2010 16:34:15 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[在路上]]></category>
		<category><![CDATA[自驾]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=33</guid>
		<description><![CDATA[去年在呼伦贝尔，同车的人都睡着了，为了强迫自己不睡着，我给自己想了一个题目，那就是这几年出门跑路，都学到了什么行车礼节。一路想想，居然想到不少……]]></description>
			<content:encoded><![CDATA[<p>去年在呼伦贝尔，同车的人都睡着了，为了强迫自己不睡着，我给自己想了一个题目，那就是这几年出门跑路，都学到了什么行车礼节。一路想想，居然想到不少。<br />
<span id="more-33"></span><br />
一，<strong>高速公路不要长时间占用超车道</strong>，意识到这一点是在去太原的高速公路上面。山西的高速都在山区，再加上运煤车比较多，高速速度真的不高，但路上倒一直很通畅。然后我不断发现前面的大车在超车后，都尽可能快的返回到行车道。初想起来，觉得这些大车师傅真绅士。再想一下，如果大车坚持占据超车道，势必导致小车在大车之间穿行超车，这些制动困难的大家伙会更危险。所以，为自己和他人的生命安全着想，请不要长期占据超车道。</p>
<p>二，<strong>别人让路时，如果允许，在通过后鸣笛致谢</strong>。在甘肃玉门的一段土路上，路很窄，后面的大车估计是空车，开得比较快，我向路边让了一下，大车迅速跟上并超了过去，在他车身通过时，师傅按了一下喇叭。当时把我吓了一跳。观察了几回之后，我发现大多数大车师傅都会这么做。因为工作性质，很多大车都需要在狭窄的环境里面协作工作，的确是很需要互相谦让，而不是我们在城市里面到处抢道的。因为会车超车条件比较苛刻，完成超车或会车后，提醒对方自己已经完成动作，也是十分必须的。所以鸣笛也不是单纯的向对方致敬，而是告诉对方可以放心移动了。</p>
<p>三，<strong>当别人向你致谢时，如果允许，可以鸣笛致意</strong>。长白山的一段防火山路，因为是冬天，所以路完全被冰封了。在一辆大车（就是这辆车把我从路边雪窝里拖出来的）给我让路，我通过并鸣笛致谢时，几乎马上，大车也鸣笛致意。因为当时开着窗子，大车的喇叭把我们都狠狠的吓了一跳。很多大车师傅在别人致谢的时候，都会这样致意，当然也不是全部。</p>
<p>四，<strong>在山区弯道上，积极协助后车超车</strong>。大兴安岭的山路视野很不好，几乎没有可能能安全超车，直线距离不够，弯道视野不好。但是几乎每次，前面的大车都会在某个弯道，在我看不见前方路况的时候，打出右转向灯。于是我便可以了解到一个信息，大车师傅看到弯道前方对方车道无车，我可以借道超车。相反如果大车在弯道处没有打出右转向灯，那么要么大车师傅看你不爽，要么就是对方车道会车，不适合借道超车。试想如果大车师傅不协助，后车强行弯道超车时发现会车，一定会往外掰，倒霉的还是大车自己。</p>
<p>五，<strong>在狭窄道路上，如果你发现可以会车的位置，尽快停下等待会车</strong>。很多乡间的道路，以及沙漠公路，都是单车道的，不是双向单车道，是单车道。就是说，一旦会车，必定有一辆车要下路，而通常下路都不会有什么好结果。这种单车道一般都有会车用的停车带，停车带的位置会出现一个两车道的宽度。如果你发现自己可以先到达一个停车带，一定要进入等待，不要希望对方停下来等你会车，因为通常你能看到的地方不会有第二个停车带。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/33.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>免费邮箱搬家</title>
		<link>http://www.9465.net/archives/24.html</link>
		<comments>http://www.9465.net/archives/24.html#comments</comments>
		<pubDate>Sun, 29 Aug 2010 07:04:53 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[免费资源]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=24</guid>
		<description><![CDATA[9465.net 邮箱托管从 live.com 迁移到 163.com，一点体会……]]></description>
			<content:encoded><![CDATA[<p>9465.net 的邮箱以前一直由 live.com 托管，随着使用越来越频繁，感觉国内使用实在是太慢太慢了，但是一直也下不了决心更换。</p>
<p>直到最近重装 wordpress，想用邮箱发送注册邮件和评论通知，使用了一个 WP-Mail-SMTP 的插件，而在安装过程中却发现不支持 live.com 的邮箱，趁此东风，决定更换邮箱托管了。</p>
<p>于是简单查看了一下国内的免费域名邮箱，sohu 需要企业营业执照，就先选择了网易的免费企业邮箱 ym.163.com。</p>
<p> 折腾一下午，更换完成。目前看来有几个好处：</p>
<p>一，速度快。的确是快，ping pop.ym.163.com 延时 66ms，而 pop3.live.com 要 380ms。<br />
二，支持邮件群。对我是没有用处的，但是企业使用这点还是有些好处的。<br />
三，协议简单，使用方便。我并不需要多好的安全性，但是却需要比较好的兼容性，于是不支持 ssl 对我来说反而成了优点。对于企业就难说了。<br />
四，outlook 收信不再重复。live.com 在设置不删除服务器信件后（因为手机还需要收信，所以不能收信后立即删除），outlook 会不断重复信件。现在好了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/24.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>重新来过</title>
		<link>http://www.9465.net/archives/16.html</link>
		<comments>http://www.9465.net/archives/16.html#comments</comments>
		<pubDate>Sat, 28 Aug 2010 16:06:51 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[胡言乱语]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.9465.net/?p=16</guid>
		<description><![CDATA[之前的数据懒得恢复了，在 ubuntu 上架设了一个新 wordpress，重新来过。 只是从前的老朋友们需要重新注册一下子，辛苦辛苦。]]></description>
			<content:encoded><![CDATA[<p>之前的数据懒得恢复了，在 ubuntu 上架设了一个新 wordpress，重新来过。</p>
<p>只是从前的老朋友们需要重新注册一下子，辛苦辛苦。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/16.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>When you believe</title>
		<link>http://www.9465.net/archives/95.html</link>
		<comments>http://www.9465.net/archives/95.html#comments</comments>
		<pubDate>Sun, 18 Oct 2009 16:43:38 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[音乐]]></category>

		<guid isPermaLink="false">http://www.9465.net/2009/10/84.html</guid>
		<description><![CDATA[ Mariah Carey &#38; Witney Houston Many nights we pray With no proof anyone could hear And our hearts a hopeful song We barely understand Now we are not afraid Although we know theres much to fear We were moving mountains long Before we know we could Chorus: There can be miracles When you believe Though [...]]]></description>
			<content:encoded><![CDATA[<p> Mariah Carey &amp; Witney Houston<br />
Many nights we pray<br />
With no proof anyone could hear<br />
And our hearts a hopeful song<br />
We barely understand<br />
Now we are not afraid<br />
Although we know theres much to fear<br />
We were moving mountains long<br />
Before we know we could<br />
Chorus:<br />
There can be miracles<br />
When you believe<br />
Though hope is frail<br />
Its hard to kill<br />
Who know what miracle<br />
You can achieve<br />
When you believe<br />
Somehow you will<br />
You will when you believe<br />
Mariah:<br />
In this time of fear<br />
When prayer so often proves in vain<br />
Hope seems like the summer birds<br />
Too swiftly flown away<br />
And now I am standing here<br />
My hearts so full I cant explain<br />
Seeking faith and speaking words<br />
I never thought Id say<br />
Chorus:<br />
There can be miracles<br />
When you believe (When you believe)<br />
Though hope is frail<br />
Its hard to kill<br />
Who know what miracle<br />
You can achieve (You can achieve)<br />
When you believe<br />
Somehow you will<br />
You will when you believe<br />
Bridge: (Both)<br />
They dont always happen when you ask<br />
And its easy to give in to your fear<br />
But when youre blinded by your pain<br />
Cant see you way safe through the rain<br />
Thought of a still resilient voice<br />
Says love is very near<br />
Chorus: (Both)<br />
There can be miracles (miracles)<br />
When you believe (When you believe)<br />
Though hope is frail<br />
Its hard to kill<br />
Who know what miracles<br />
You can achieve (You can achieve)<br />
When you believe<br />
Somehow you will<br />
You will when you believe<br />
You will when you believe<br />
You will when you believe<br />
Just believe<br />
You will when you believe</p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/95.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>啦啦啦，啦啦啦……</title>
		<link>http://www.9465.net/archives/82.html</link>
		<comments>http://www.9465.net/archives/82.html#comments</comments>
		<pubDate>Thu, 05 Feb 2009 09:36:32 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[在路上]]></category>
		<category><![CDATA[趣事]]></category>

		<guid isPermaLink="false">http://www.9465.net/2009/02/82.html</guid>
		<description><![CDATA[盗亦有道，何况XX乎…… ]]></description>
			<content:encoded><![CDATA[<p>盗亦有道，何况XX乎…… </p>
<p><img src="/wp-content/uploads/2009/02/image_048.jpg" alt="image_048.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/82.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>情不自禁，然后呢……</title>
		<link>http://www.9465.net/archives/94.html</link>
		<comments>http://www.9465.net/archives/94.html#comments</comments>
		<pubDate>Tue, 30 Dec 2008 15:31:42 +0000</pubDate>
		<dc:creator>响马</dc:creator>
				<category><![CDATA[胡言乱语]]></category>
		<category><![CDATA[趣事]]></category>

		<guid isPermaLink="false">http://www.9465.net/2008/12/79.html</guid>
		<description><![CDATA[周日在海淀，看见路边的公交车上面硕大的老濮的公益广告，宣传预防艾滋的，其词曰：“情不自禁，必先戴套”。拍之。]]></description>
			<content:encoded><![CDATA[<p>周日在海淀，看见路边的公交车上面硕大的老濮的公益广告，宣传预防艾滋的，其词曰：“情不自禁，必先戴套”。拍之。</p>
<p><img src="http://www.9465.net/wp-content/uploads/2008/12/tao.jpg" alt="tao.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.9465.net/archives/94.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
