<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/beiley" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/beiley" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 18 Aug 2009 07:27:05 GMT</lastBuildDate><title>胡松的博客</title><description>互联网技术观察以及研究!</description><link>http://hu.writter.cn</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Tue, 18 Aug 2009 07:27:05 GMT</pubDate><item><title>从Larbin看互联网爬虫设计</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271192/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/542.html/feed</wfw:commentRss><description>互联网是一个庞大的非结构化的数据库，将数据有效的检索并组织呈现出来有着巨大的应用前景，尤其是类似RSS的以XML为基础的结构化的数据越来越 多，内容的组织方式越来越灵活，检索组织并呈现会有着越来越广泛的应用范围，同时在时效性和可读性上也会有越来越高的要求。这一切的基础是爬虫，信息的来 源入口。一个高效，灵活可扩展的爬虫对以上应用都有着无可替代的重要意义。
要设计一个爬虫，首先需要考虑的效率。对于网络而言，基于TCP/IP的通信编程有几种方法。
第 一种是单线程阻塞，这是最简单也最容易实现的一种，一个例子：在Shell中通过curl，pcregrep等一系统命令可以直接实现一个简单的爬虫，但 同时它的效率问题也显而易见：由于是阻塞方式读取，dns解析，建立连接，写入请求，读取结果这些步骤上都会产生时间的延迟，从而无法有效的利用服务器的 全部资源。
第二种是多线程阻塞。建立多个阻塞的线程，分别请求不同的url。相对于第一种方法，它可以更有效的利用机器的资源，特别是网络 资源，因为无数线程在同时工作，所以网络会比较充分的利用，但同时对机器CPU资源的消耗也是比较大，在用户级多线程间的频繁切换对于性能的影响已经值得 我们考虑。
第三种是单线程非阻塞。这是目前使用的比较多的一种做法，无论在client还是server都有着广泛的应用。在一个线程内打 开多个非阻塞的连接，通过poll/epoll/select对连接状态进行判断，在第一时间响应请求，不但充分利用了网络资源，同时也将本机CPU资源 的消耗降至最低。这种方法需要对dns请求，连接，读写操作都采用异步非阻塞操作，其中第一种比较复杂，可以采用adns作为解决方案，后面三个操作相对 简单可以直接在程序内实现。
效率问题解决后就需要考虑具体的设计问题了。
url肯定需要一个单独的类进行处理，包括显示，分析url，得到主机，端口，文件数据。
然后需要对url进行排重，需要一个比较大的url Hash表。
如果还要对网页内容进行排重，则还需要一个Document Hash表。
爬过的url需要记录下来，由于量比较大，我们将它写到磁盘上，所以还需要一个FIFO的类(记作urlsDisk)。
现 在需要爬的url同样需要一个FIFO类来处理，重新开始时，url会从定时从爬过的url FIFO里取出来，写到这个FIFO里。正在运行的爬虫需要从这个FIFO里读数据出来，加入到主机类的url列表里。当然，也会从前一个FIFO里直接 读url出来，不过优先级应该比这个里面出来的url低，毕竟是已经爬过的。
爬虫一般是对多个网站进行爬取，但在同时站点内dns的请求可以只做一次，这就需要将主机名独立于url，单独有一个类进行处理。
主机名解析完成后需要有一个解析完成的IP类与之应用，用于connect的时候使用。
HTML文档的解析类也要有一个，用来分析网页，取出里面的url，加入到urlsDisk。
再加上一些字符串，调度类，一个简单的爬虫基本上就完成了。
以 上基本上是Larbin的设计思路，Larbin在具体实现上还有一些特殊的处理，例如带了一个webserver，以及对特殊文件的处理。Larbin 有一点设计不不太好，就是慢的访问会越来越多，占用大量的连接，需要改进，另外如果对于大规模的爬虫，这仅仅实现了抓取的部分，要分布式的扩展还需要增加 url的集中管理与调度以及前台spider的分布式算法。&lt;img src=&quot;http://www1.feedsky.com/t1/260271192/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271192/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271192/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271192/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>spider</category><category>larbin</category><pubDate>Tue, 18 Aug 2009 15:27:05 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/542.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=542</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/542.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271192/5129515</fs:itemid></item><item><title>设计Spider蜘蛛的时候要解决的几个问题</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271193/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/539.html/feed</wfw:commentRss><description>Spider是整个搜索引擎系统中很重要的一个组成部分，可以说是搜索引擎的基础。它不仅仅是为搜索引擎提供了搜索对象——海量数据，更重要的是它使搜索引擎从一个检索工具上升为一个信息整合的平台。搜索引擎的本质就是信息的整合与导航，通过信息的整合构建了一个用户平台。这样就使得搜索引擎成为一个很好的且很有利润的商业化对象。
好的搜索引擎必须配一个好的spider，好的spider需要设计人员优雅的去设计。
设计时spider重点要解决以下几个问题：
1. 抓取的效率
抓取的效率和计算机硬件的性能、硬件的多少、网络的带宽有关系，但为了提高抓取效率不能一味地增加硬件，而是要利用有限的硬件资源在一定的时间内抓取最多的的网页。
常见的提高抓取效率的策略有：
（1）采用多线程并发抓取
（2）采用单线程、非阻塞I/O抓取
（3）分布式抓取，把抓取工作分布到多台服务器完成，对于Google这样的搜索引擎还包括地理上的分布式，把抓取服务器机群分布到全球各个国家的主干网上抓取。
（4） 抓取的效率很大程度也取决于抓取的对象——网站服务器和带宽的速度。因此设计spider时要有估算抓取网站服务器负载和带宽的功能并且有一个很好调度策略，使得访问不同状况网站服务器有不同的频率。
2. 抓取的质量
设计spider的目标不是把互联网上的所有网页都抓回来，而是抓重要的而且是最新的网页的即可。
怎样抓取高质量的网页？哪些网页是质量比较高的？这里就要求设计人员对互联网以及用户的习惯和常理都有一定的理解。
从互联网整体上看，网站中各个网页之间的链接关系是一个很重要的资源，因此在抓取网页时要记录网页之间的链接关系，以便进行链接分析，从而通过链接关系来评价网页的质量。
网页重要性的评价指标可以从以下几个方面着手：
（1）某个网页的链接深度。
（2）网页的入度。
（3）网页的父网页的入度。
（4）网页的重复数。
以上这些指标都基于这么几个常理：
（1）网站最重要的网页都放在前面，即层次越浅。网站首页以及首页指向的网页都是比较重要的。
（2）有很多网页、很重要的网页都指向这个网页，这个网页就比较重要，就像检索工具《SCI》评价论文的质量一样，被引用的论文的次数越多，则说明这篇论文比较重要。
（3）第二点讲的是引用，还有一个就是转载，网页转载的次数越多，则说明这个网页比较重要，就像报纸或杂志文章一样，好的文章都被其他媒体大量转载。
具体实现时除了第一个指标外，其他三个指标只有在预处理阶段的统计才能得出。
所以在抓取时应首先获得尽量多的网站首页，然后从该网站首页出发采用先宽的抓取策略。
3. 抓取的礼貌问题
礼貌的抓取具体表现在：网站不让抓取的网页就不要抓取，控制好访问网站的频率，spider的抓取行为不能影响正常用户的访问。因此spider在抓取时要：
（1）限制单位时间内对一个网站抓取网页的数量。
（2）限制同时对同一个网站抓取的线程/进程的数量。
（3）控制对同一个网站抓取的时间间隔。
（4）遵循robots、META Tag 、sitemap.htm协议 ，对不允许访问的目录不访问。
（5）在抓取网页的时发送的请求中，通过User－agent、Form字段，标识spider的身份、联系Email、spdier注意事项页面URL。
4. 避免重复抓取
之所以会造成重复抓取，是因为：
(1)互联网上大量网页被其他网页引用，这就使得同一个网页的URL出现在多个不同的网页中，这就要求spider必须有URL消重功能。
(2)网页被其他网页转载，这就使得同一篇文章出现在不同URL的页面中，这就要求spider具有内容消重功能，目前这块比较难以实现，当前很多搜索引擎公司都没有较好的解决这个问题。
(3)网页的URL有多种表示形式，这是由于DNS与IP对应关系造成的。
一个URL对应一个网页，但由于URL可以采用以下两种表示方式：
[协议://]域名[:端口][/路径/文件名]
[协议://]点分十进制IP地址[:端口][/路径/文件名]
且域名与IP存在以下对应关系：
&amp;#8211; 一对一，http://www.imgsky.com/ 与http://220.231.39.97指向的是同一网页。
&amp;#8211; 一对多，DNS轮转，http://www.163.com 与http://202.108.42.73,http://202.108.42.91指向的是同一网页。
&amp;#8211; 多对一，虚拟主机，多个域名对应同一个ip，不同的URL指向不同的网页。
一个网站具有多个域名，对应同一个IP，例如：www.51821.com，www.jianfei315.com指向同一个网页。
- - 多个域名对应多个ip ,一个网站有多个域名，同时采用了DNS轮转技术，一个域名对应多个ip地址。
5. 抓取数据的更新
抓取数据的更新问题是一个很重要的问题，它决定了用户能不能马上搜索到最新的新闻，最新的内容，但是由于互联网上海量的网页使得一次抓取的周期都很长 ，如果通过每次重新抓取一次来更新，势必更新周期很长。
spider已经抓取的网页可能被修改、删除，spider要定期检测这些网页的更新情况，同时更新原始网页库、提取的数据库以及索引库。
互联网上同时不断的产生新的网页，spider也要抓取回来。
不同的网站的更新周期不一样，有的很长，有点很短。
spider要根据网站的更新周期，对网站进行分类，不同更新周期的网站抓取的周期不一样。
一般来说，网络蜘蛛在更新原始网页库等的时候，不用把URL对应的网页重新抓取一遍，对于大部分的网页，只需要HTTP Head请求、条件Get请求来更新。
6.内容提取
spider要抓取的文件各种各样，比如有HTML、XML网页，有doc、ppt、xls、pdf等带格式的文档，有图片、音频、视频等多媒体数据，对这些不同类型文件spider都要提取出文件里的纯文本内容。
对于doc、pdf等文档，这种由专业厂商提供的软件生成的文档，厂商都会提供相应的文本提取接口。
对于HTML、XML网页来说，除了标题和正文以外，会有许多版权信息、广告链接以及公共的频道链接，这些链接和文本正文一点关系也没有，在提取网页内容的时候，也需要过滤这些无用的链接。
对于多媒体、图片等文件，一般是通过链接的锚文本（即，链接文本）和相关的文件注释来判断这些文件的内容。另外，许多多媒体文件中有文件属性，考虑这些属性也可以更好的了解文件的内容。
对于网页内容的提取一般采用插件的形式，通过一个插件管理服务程序，遇到不同格式的网页采用不同的插件处理。这种方式的好处在于扩充性好，以后每发现一种新的类型，就可以把其处理方式做成一个插件补充到插件管理服务程序之中。
7. 硬件投入、抓取速度、一次抓取时间、抓取数据量等估算
孙子曰：凡是预则立，不预则废。强调计划的重要性。很多事情也要做到心中有数。
设计一个spider一定要考虑抓取10亿网页需要多长时间，需要多少硬盘来存，需要多少服务器来抓等。这些都可以通过估算得到一个最好/最大值的。
例如：抓取时应该使用多少台机器以及一台机器启动多少抓取进程/线程呢？
这里要考虑硬件资源情况：
&amp;#8211; 局域网带宽 //发送速率
&amp;#8211; 互联网接入带宽
&amp;#8211; 局域网时间延迟 //1 ~ 10 ms
&amp;#8211; 互联网时间延迟 //100 ~ 500 ms
&amp;#8211; 服务器端接收请求、响应时间
&amp;#8211; CPU利用率
&amp;#8211; 内存大小以及利用率
&amp;#8211; 硬盘大小以及读写速度
&amp;#8211; 系统负载情况
以上提到了设计spider时要着重考虑的几个问题，这只是从大的方面概略地介绍了以一下，技术其实还是一门精工细作的工作，需要技术人员不断地去打磨。&lt;img src=&quot;http://www1.feedsky.com/t1/260271193/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271193/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271193/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271193/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>linux</category><category>蜘蛛</category><category>spider</category><category>php</category><pubDate>Tue, 18 Aug 2009 13:41:16 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/539.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=539</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/539.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271193/5129515</fs:itemid></item><item><title>Linux文件权限隐藏的细节深入分析</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271194/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/537.html/feed</wfw:commentRss><description>　　linux是一个安全的操作系统，她是以文件为基础而设计的，其文件权限是比较复杂的，可以用stat命令以及lsattr命令来显示某个文件的详细信息： $ stat file1
　　file: `file1&amp;#8242;
　　size: 11904 blocks: 24 io block: 4096 regular file
　　device: 301h/769d inode: 355982 links: 1
　　access: (0755/-rwxr-xr-x) uid: ( 503/ jack) gid: ( 503/ general)
　　access: 2003-10-19 09:14:12.000000000 +0800
　　modify: 2003-10-14 20:41:21.000000000 +0800
　　change: 2003-10-19 18:56:25.000000000 +0800
　　$ lsattr file
　　&amp;#8212;-i&amp;#8211;a&amp;#8212;&amp;#8211; file
　　可以看到，文件权限的含义是比较广的，先来看-rwxr-xr-x，第一位是文件的类型，它定义了用户只能某种方式来操作文件，后面九位是文件的存取控制信息，linux的文件许可机制将用户分为三类：文件属主u(user)、文件属组g(group)和其它用户o(other)。三类不同的用户可以对文件拥有三种不同级别的权限：读r(read)、写w(write)和运行x(execute)。于是形成了九位的权限信息，分为三组，分别对应 u，g， o。除此之外，用户还可以设置setuid与setgid位来改变程序的执行身份。用lsattr命令则可以看到文件的属性，控制位包括 asacddiijsttu，这些也是能控制文件的存取的。
　　由于篇幅有限，不可能就这些一一进行分析，本文着力分析文件权限中w(write)的真正含义，挖出其背后隐藏的细节，力图使读者能正确用好这个关键的权限位，不至于在系统管理中出现差漏。
　　为了能更直观的说明问题，本文采用实验操作的方式，一步一步的进行分析。为了简化操作，我们用o(other)这组权限来做实验。实验中用到的权限位均属于o(other)， 进行操作的用户均非root用户，属于o(other)。
　　在实验之前，必须澄清一个概念，目录也是一种文件，它主要包括了两方面的信息，该目录下文件的文件名称与文件inode编号，它们之间有一一对应的关系。不过目录文件比较特殊，不能用常规的方法进行读写，必须用系统的专用命令来操作。命令ls其实是对目录文件进行读操作，命令mv，rm则是对目录文件进行写操作。
　　好了，该说说w(write)的真正含义了，一句话，linux文件权限中的w是对该文件的*内容*进行限定。下面的实验可以验证。
　　◆实验1， 目录文件: /test(rwx)， 普通文件: /test/file(r&amp;#8211;). 当前目录：/test
　　$ echo &amp;#8220;abc&amp;#8221; &gt;file
　　bash: file: permission denied
　　试图对file的内容进行改写， 但file的权限是只读，很显然，操作失败。 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/260271194/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271194/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271194/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271194/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>权限</category><category>linux</category><pubDate>Fri, 10 Jul 2009 13:33:43 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/537.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=537</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/537.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271194/5129515</fs:itemid></item><item><title>mysql 索引优化 慢查询</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271195/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/169.html/feed</wfw:commentRss><description>mysql有一个功能就是可以log下来运行的比较慢的sql语句，默认是没有这个log的，为了开启这个功能，要修改my.cnf或者在mysql启动的时候加入一些参数。
如果在my.cnf里面修改，需增加如下几行
long_query_time = 10
log-slow-queries = /usr/local/mysql/log/slow.log
long_query_time 是指执行超过多久的sql会被log下来，这里是10秒。
log-slow-queries 设置把日志写在那里，为空的时候，系统会给慢查询日志赋予主机名，并被附加slow.log
     如果设置了参数log-long-format，那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询
这是一个有用的日志。它对于性能的影响不大（假设所有查询都很快），并且强调了那些最需要注意的查询（丢失了索引或索引没有得到最佳应用）
# Time: 070927  8:08:52
# User@Host: root[root] @  [192.168.0.20]
# Query_time: 372  Lock_time: 136  Rows_sent: 152  Rows_examined: 263630
select id, name from manager where id in (66,10135);
这是慢查询日志中的一条，用了372秒，锁了136秒，返回152行，一共查了263630行
     如果日志内容很多，用眼睛一条一条去看会累死，mysql自带了分析的工具，使用方法如下：
命令行下，进入mysql/bin目录，输入mysqldumpslow –help或&amp;#8211;help可以看到这个工具的参数，主要有
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize [...]&lt;img src=&quot;http://www1.feedsky.com/t1/260271195/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271195/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271195/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271195/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>databases</category><category>mysql</category><category>慢查询</category><pubDate>Fri, 26 Jun 2009 13:12:01 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/169.html#comments</comments><guid isPermaLink="false">http://blog.passport86.com/?p=169</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/169.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271195/5129515</fs:itemid></item><item><title>为什么要跟进？如何来跟进一件事？</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271196/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/533.html/feed</wfw:commentRss><description>在我们的团队，我们很强调一个人对一件事的跟进能力，换句话说：也就是负责到底的能力。不管你是程序，是QC，是策划，或者还是客服，只要这件事由你发起或者大家商定后由你牵头来作，那你就是责任人，要负责到底。这里的“负责”二字，包括了在解决这件事过程中所需要的：人员协调、计划安排、进度控制、定期审核，内部信息互通，以及最终玩家反馈等诸多方面。
可以这样说，如果你能有机会跟进一件事，那你的个人权利在功能制作这一块就相当于小组负责人一级，组内的所有资源，你都可以使用。这样的机会很难得。
我们不想把每个人都培养成螺丝钉，我们想让每一个人都能把自己的潜力最大程度的发挥出来，所以，我们很强调给于一个人自由选择和自由作事的权利。但是，这是相对的，对于越有能力把握自己和把握整件事的人，我们给予的自由度越大，空间越大，而对于缺乏总体控制力、沟通协调能力以及跟进能力的人，他必须首先锻炼并展示出自己具备这样的能力，我们才会信任并交给他完全负责一件事。
起先，我想当然的以为，所有的人，只要是工作过几年的，都会理所应当具备对一件事负责到底、持续跟进的能力。但是，经过对我身边周围人的观察，我发现，大多数的人都无法作到有效、及时的跟进，而具备这种能力的人就会渐渐成为一个组织的核心。所以，我们从另一个方面来看的话，如果你还一直困惑自己为什么没有成为组织核心人员，没有成为骨干，没有升职，没有加薪，那么，你就要反思一下，自己有没有在有意识的培养自己这方面的能力。
那么，要如何来跟进一件事呢？
大体上，我觉得，跟进一件事，包括这几个主要的方面：
1. 明确此事所涉及的人，以及每个人所负责的内容；
2. 协调整件事的时间计划，在哪个时间点完成哪些内容，安排各个人之间的前后衔接，尽可能并行的开展工作；
3. 对关键障碍点有清晰判断，在此障碍点的发生时间之前，就应该提前介入，及时排解；
4. 各个部分完成后，要把整件事由头到尾的所有流程全部走通，走顺，对不合适的地方进行修正；
5. 在此事解决的过程中，要不断把当前进度周知应该了解进度信息的人，这包括：事情相关者，你的上级等。
跟进的过程中，经常遇到的问题可能是：
1. 对困难估计不足，内容未按计划时间完成；
2. 时间计划作得太紧凑，未留足够时间作全流程测试；
3. 想当然的以为某人、某事没问题，没准备预案。
等等等等
总之，我认为，团队协作，特别是跨部门协作，一个最大的原则是：互不信任！没错，你没看错，我说的就是“不信任”，你需要不断地在各个关键时间点去跟某一方面的负责人去确认他作的进度，以及他作出来的东西的质量，很多的时候，不要相信他说了什么，而要看真正的结果，即使结果，有时光看也是无效的，你必须亲自体验，亲自使用，把自己真正放到使用者的环境下去真实模拟，亲自确认。不要怕啰嗦，不要怕麻烦，一切为了把事情作好。
既然你是负责人，那么，你就再没有退路，在这件事的任何环节出了问题，都首先是你的问题，都是你没有控制、监督到位。所以，你就有足够的权利去关注好整件事的流程。
而“跟进一件事情的能力”，从更高的层面来说，就是一种跨专业、跨行业、跨公司的能力，也就是说，这是一种具有普适性的持久能力，一旦你融会贯通，放在其它的岗位、其它的公司、其它的行业，也可以具有相同的价值。&lt;img src=&quot;http://www1.feedsky.com/t1/260271196/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271196/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271196/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271196/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>项目</category><category>其它</category><category>跟进</category><pubDate>Tue, 23 Jun 2009 13:46:02 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/533.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=533</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/533.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271196/5129515</fs:itemid></item><item><title>IT工程师必看的绝世好文！！！</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271197/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/531.html/feed</wfw:commentRss><description>[1]好好规划自己的路，不要跟着感觉走！根据个人的理想决策安排，绝大部分人并不指望成为什么院士或教授，而是希望活得滋润一些，爽一些。那么，就需要慎重安排自己的轨迹。从哪个行业入手，逐渐对该行业深入了解，不要频繁跳槽，特别是不要为了一点工资而转移阵地，从长远看，这点钱根本不算什么，当你对一个行业有那么几年的体会，以后钱根本不是问题。频繁地动荡不是上策，最后你对哪个行业都没有摸透，永远是新手！
[2]可以做技术，切不可沉湎于技术。千万不可一门心思钻研技术！给自己很大压力，如果你的心思全部放在这上面，那么注定你将成为孔乙己一类的人物！适可而止为之，因为技术只不过是你今后前途的支柱之一，而且还不是最大的支柱，除非你只愿意到老还是个工程师！
[3] 不要去做技术高手，只去做综合素质高手！在企业里混，我们时常瞧不起某人，说他“什么都不懂，凭啥拿那么多钱，凭啥升官！”这是普遍的典型的工程师的迂腐之言。8051很牛吗？人家能上去必然有他的本事，而且是你没有的本事。你想想，老板搞经营那么多年，难道见识不如你这个新兵？人家或许善于管理，善于领会老板意图，善于部门协调等等。因此务必培养自己多方面的能力，包括管理，亲和力，察言观色能力，攻关能力等，要成为综合素质的高手，则前途无量，否则只能躲在角落看示波器！技术以外的技能才是更重要的本事！！从古到今，美国*本，一律如此！
[4]多交社会三教九流的朋友！不要只和工程师交往，认为有共同语言，其实更重要的是和其他类人物交往，如果你希望有朝一*当老板或高层管理，那么你整*面对的就是这些人。了解他们的经历，思维习惯，爱好，学习他们处理问题的模式，了解社会各个角落的现象和问题，这是以后发展的巨大的本钱，没有这些以后就会笨手笨脚，跌跌撞撞，遇到重重困难，交不少学费，成功的概率大大降低！
[5]知识涉猎不一定专，但一定要广！多看看其他方面的书，金融，财会，进出口，税务，法律等等，为以后做一些积累，以后的用处会更大！会少交许多学费！！
[6] 抓住时机向技术管理或市场销售方面的转变！要想有前途就不能一直搞开发，适当时候要转变为管理或销售，前途会更大，以前搞技术也没有白搞，以后还用得着。搞管理可以培养自己的领导能力，搞销售可以培养自己的市场概念和思维，同时为自己以后发展积累庞大的人脉！应该说这才是前途的真正支柱！！！
[7] 逐渐克服自己的心里弱点和性格缺陷！多疑，敏感，天真（贬义，并不可爱），犹豫不决，胆怯，多虑，脸皮太薄，心不够黑，教条式思维。。。这些工程师普遍存在的性格弱点必须改变！很难吗？只在床上想一想当然不可能，去帮朋友守一个月地摊，包准有效果，去实践，而不要只想！不克服这些缺点，一切不可能，甚至连项目经理都当不好&amp;#8211;尽管你可能技术不错！
[8]工作的同时要为以后做准备！建立自己的工作环境！及早为自己配置一个工作环境，装备电脑，示波器（可以买个二手的），仿真器，编程器等，业余可以接点活，一方面接触市场，培养市场感觉，同时也积累资金，更重要的是准备自己的产品，咱搞技术的没有钱，只有技术，技术的代表不是学历和证书，而是产品，拿出象样的产品，就可技术转让或与人合作搞企业！先把东西准备好，等待机会，否则，有了机会也抓不住！
[9] 要学会善于推销自己！不仅要能干，还要能说，能写，善于利用一切机会推销自己，树立自己的品牌形象，很必要！要创造条件让别人了解自己，不然老板怎么知道你能干？外面的投资人怎么相信你？提早把自己推销出去，机会自然会来找你！搞个个人主页是个好注意！！特别是培养自己在行业的名气，有了名气，高薪机会自不在话下，更重要的是有合作的机会&amp;#8230;
10]该出手时便出手！永远不可能有100%把握！！！条件差不多就要大胆去干，去闯出自己的事业，不要犹豫，不要彷徨，干了不一定成功，但至少为下一次冲击积累了经验，不干永远没出息，而且要干成必然要经历失败。不经历风雨，怎么见彩虹，没有人能随随便便成功 .&lt;img src=&quot;http://www1.feedsky.com/t1/260271197/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271197/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271197/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271197/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>php</category><category>工程师</category><category>it</category><pubDate>Sat, 13 Jun 2009 11:46:00 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/531.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=531</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/531.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271197/5129515</fs:itemid></item><item><title>何必捧谷歌的臭脚——笑谈购物搜索</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271198/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/528.html/feed</wfw:commentRss><description>谷歌推出购物搜索，引发了一番热议。翌日，我读到一篇雄文：《Google购物搜索把百度逼上电子商务的绝路》，文中绘声绘色说：
    半年时间过去了，有啊非但没有超过淘宝，对拍拍也望其项背（blogkid注：此处应为“难以望其项背”）。但事情还没完，当百度进军C2C的时候，他只看到了被自己伤害的曾经最大的合作伙伴之一的阿里巴巴的愤怒之情，却没有看到站在背后的Google的窃窃偷笑。
文中说“曾经最大和合作伙伴之一的阿里巴巴的愤怒之情”，只怕愤怒轮不到阿里巴巴。阿里内部不许用QQ，淘宝内网封掉了百度， 淘宝封掉了百度的爬虫，阿里对竞争对手的打击无所不用其极；相比之下，在百度的内网能下载到阿里旺旺，公开表达一下对Google技术的赞赏也不用担心价值观不合格。如果阿里都有资格愤怒，百度和腾讯早该气炸了。话说回来，Business is Business，大家凭本事吃饭：不管是阿里的愤怒（即使真有），还是九城的愤怒，都不会对战局有什么影响。
回到购物搜索，大家对谷歌的购物搜索赞许有加，但很多人都是看着谷歌推出这产品就叫好，顺便贬低一下百度；有人谈得更深入，说谷歌选择了做桥梁，而百度选择了自己玩，于是谷歌更高尚。其实，对购物搜索没必要这么狂热。
1、购物搜索，其实尴尬
在几年前曾有过一批做比价购物的网站，后来一个个都销声匿迹。最近兴起的购物搜索，骨子里还是比价购物的思路。但对现在的购物搜索来说，淘宝有毒。试想，如果搜索结果里包含了淘宝的商品信息，那就只能任由淘宝占据90%的搜索结果——这和直接在淘宝搜索已经没啥差别，而且在淘宝搜索会更有时效性；如果搜索结果不包含淘宝的商品信息，那只能算是个不完整的购物搜索，因为淘宝上的商品信息，比其他所有国内店铺加起来都多。
keso说淘宝有毒，不是没有道理。
2、谷歌购物搜索，不及有道
谷歌和有道的购物搜索，在对淘宝的处理上做了不同选择：谷歌全盘接纳淘宝，而有道只选择了有更完善保障的淘宝商城。
谷歌购物搜索E71
在谷歌随手搜了E71，光是淘宝上的信息就有25条。价格区间从1630到3800。
有道购物搜索E71
在有道搜索E71，一共有26条信息。价格区间从2199到2796。
从信息呈现的角度来说，有道优于谷歌。
有道对商家的遴选有针对性。用huairen的话说：“有道的解决方案很简单：锁定‘商城B2C’，以开发票，保修等。。。个人觉得蛮好的”。
从选择商家的角度来说，有道优于谷歌。
更无需比较二者的使用细节、域名设置等。总体来说，谷歌的购物搜索，不如有道。对这么个产品大可不必如此兴奋。Google和谷歌都没少做失败的产品（当然，这没什么不光彩的），何必抢着捧谷歌的臭脚呢。
3、购物搜索的明天，不如归去
Google Base允许提交商品信息，有道上线不久也开放了提交数据的API。没错，不就类似于百度的阿拉丁嘛，只不过百度做的不是购物搜索罢了。但我认为，随着搜索引擎回归工具化，购物搜索的最终形态，还是整合到统一的搜索中。就像Google的Universal Search、雅虎的Onebox。
百度的搜索结果里会出现有啊的商品信息，我觉得挺好。搜索E71的人，也许真的是想买E71。推广自己旗下产品也无可厚非，google还推自己的 picasa呢。另，谷歌的购物搜索没收录百度有啊的商品，不符合谷歌的风格。毕竟，谷歌可没少给百度知道、百科和贴吧贡献流量。&lt;img src=&quot;http://www1.feedsky.com/t1/260271198/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271198/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271198/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271198/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>互联网</category><pubDate>Fri, 12 Jun 2009 12:04:16 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/528.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=528</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/528.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271198/5129515</fs:itemid></item><item><title>初步了解 PHP V6 中的新特性</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271199/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/526.html/feed</wfw:commentRss><description>Deepak Vohra, Web 开发人员, 独立顾问
2009 年 6 月 04 日
简介
“PHP 的特性” 简单介绍了 PHP V6 中的新特性。在本文中，了解这些让 PHP V6 更加容易使用、更加安全和更加适合国际化的新特性。本文探索改进的 Unicode 支持，删除了几个函数、改进的扩展、引擎添加内容、改进的面向对象函数和 PHP V6 中的一些扩展。
















回页首







增强对 Unicode 的支持
PHP V6 中的主要特性是增强对 Unicode 的支持。目前，PHP 实际上是一个二进制处理器。PHP V5 没有提供原生的 Unicode 支持；它假定所有字符的长度都为 1 字节，这在处理非拉丁字符时会出现问题。您可以转换到 Unicode，但需要使用 mbstring 扩展，而默认的 PHP V5 或外部工具（比如 iconv）都不支持该扩展。
PHP V5 有时不能正确显示文本，这取决于字符编码。Unicode 是由 Unicode Consortium 开发的行业标准，它能表示所有语言、程序和平台上的每一个字符。各个行业和标准都广泛支持 Unicode，这使得实现国际化多语言应用程序成为可能。Unicode 可以使用多种字符编码表示，最常见的是 UTF-8、UTF-16 和 UTF-32。
PHP V6 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/260271199/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271199/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271199/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271199/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>php</category><pubDate>Thu, 11 Jun 2009 03:21:18 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/526.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=526</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/526.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271199/5129515</fs:itemid></item><item><title>网站的优化之页面优化</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271200/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/524.html/feed</wfw:commentRss><description>效率和开始的节奏以及功能的丰富彼此相互制约。最近忙着做功能，明知道有些地方可以优化的也得先放放，但是老大一关注，你的马上去做。
在老大的眼中，一次优化好后就可以不再优化，或者只需要很少的时间来维护，却不知道，优化是一个持续的过程，想法赶不上变化。
做人难，做事情更难！
优化如何开始，怎么开始，以及做些什么还是值得思量的。
优化的一些准则：
1 优化是持续存在的，当你开始做一个功能的时候，优化就开始了。而我们往往认为新做的功能就是一个优化好的功能，殊不知这个功能或者会影响到其他的功能，
或者先把功能做到70%，稍后再去优化也不迟。
2 不到万不得已的时候不要去优化。用户对于性能是有一定的忍耐性的，有时一个小小的加载图标就能让用户感到很满足的。
3 优化时需要写下用例来驱动，什么条件下测试的结果如何，有了测试用例，我们才能做到有的放矢；优化时需要保存系统的一个快照；有了这些历史信息我们才能更好的去对比，去寻找不足和需要继续优化的地方。
4 优化需要针对的是系统的瓶颈所在，找到系统的性能瓶颈，攻破他，我们得到的是事半功倍的效果。
对于一个网站的页面优化又该从何入手呢？
一个web网站的页面的生命周期有3个阶段：
1 加载
2 渲染
3 响应用户的交互
针对这三个阶段需要采取不同优化策略：
1 对于加载阶段：
加载的核心是网络传输，因此重点就是将页面折腾到最小、放到离用户最近的地方，这样加载就快了。具体的实施细则可以参考：yahoo的14条建议
摘要如下：
折腾小的话，需要将页面中无用的信息去掉，gzip压缩。
1）采用yui compressor来进行压缩css和js等
2）合并js和css文件，使用jsmin等工具
3）压缩图片，合并背景图。常用工具PngCrush、PngOptimizer。
4）延迟加载，等用户用到了相应的素材时才对素材进行加载。
离用户最近的话，那就是用户的浏览器cache了，所以要设置页面元素的尽量长的过期时间，能够cache的统统cache住，能够放到cdn的都放到cdn上去
2 对于渲染阶段：
渲染阶段的核心是让用户尽快的看到页面的展现，能够与页面进行交互，因此重点是显示首屏的内容，让用户提早的能够看到页面，感受交互。
1 页面首屏先显示出来的话，需要将js代码的事件处理在dom树构建好之后，如同jquery的ready事件。
2 对于html中一些默认可以不关闭的标签，尽早的关闭掉，这样也有助于提高渲染的速度。如果让浏览器去判断何时关闭才是ok的，那需要不少的回溯操作，花费不少的代价。
msdn上有详细的描述 Close Your HTML Tags 
Unlike XML, HTML has the notion of implicitly closed tags. This includes frame, img, li, and p. If you don’t close these tags, Internet Explorer renders your pages just fine. If you do close your tags, Internet Explorer [...]&lt;img src=&quot;http://www1.feedsky.com/t1/260271200/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271200/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271200/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271200/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>其它</category><category>优化</category><pubDate>Mon, 01 Jun 2009 13:42:27 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/524.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=524</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/524.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271200/5129515</fs:itemid></item><item><title>Nginx+mod_rails(Phusion Passenge)+redmine+gitosis的整合笔记</title><link>http://item.feedsky.com/~feedsky/beiley/~7308018/260271201/5129515/1/item.html</link><wfw:commentRss>http://hu.writter.cn/archives/521.html/feed</wfw:commentRss><description>个人使用Git很长时间了,感觉比subversion方便太多。因此，最近准备将团队的版本管理工具从subversion转向git.
周末花了点时间搭建了一个项目开发构建的环境:
版本管理使用git并用gitosis来搭建。
项目管理使用redmine。
部署:Nginx+Passenge(mod_rails)
中间出现了不少问题，做个笔记，以备后查:
一、安装Git/Gitosis环境
1.安装git
这部分没有什么问题
2.安装gitosis
git环境默认是可以直接使用的,但需要为每个成员开ssh权限帐号,且各个仓库之间的交叉权限管理很麻烦，
所以需要使用gitosis, 它无需为每个开发人员开设ssh帐号，安全方便。
我使用的机器还是Redhat EL4U3, 其中python的版本是2.3, gitosis并不兼容。
所以首先是安装一个独立的python26环境。
之后就简单了:
* 添加一个git用户，用它来运行gitosis,将其home设置为要存放git repositories的目录,注意将owner设置为git.
* clone gitosis

git clone git://eagain.net/gitosis.git
python setup.py install

* 上传你的ssh public key到服务器
scp ~/.ssh/id_rsa.pub root@xxx:/tmp/
* 用你的key初始化gitosis
sudo -H -u git gitosis-init &amp;#60; /tmp/id_rsa.pub
这将创建gitosis-admin 库,位于:
/repsository/gitosis-admin.git
gitosis将使用这个库进行用户和库权限的管理,由于其自身就是一个git repository,所以管理起来很方便:
修改post-update hook:
chmod a+x /repsository/gitosis-admin.git/hooks/post-update
现在服务端部署完毕.
git clone git@xxx:gitosis-admin.git
这将checkout/clone 到你本地.
现在将你的开发组成员的public key放到keys目录下,
格式为: user_name.pub , 如night.pub, little_zhang.pub.
然后,修改gitosis.conf:
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = night
[group night-team]
members = night
writable = nginx-cache nginx-mirror
[group doggy-team]
members = night
writable = doggy doggy-passport
每个group是一个组,members是成员名,空格分隔, [...]&lt;img src=&quot;http://www1.feedsky.com/t1/260271201/beiley/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/beiley/~7308018/260271201/5129515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/beiley/260271201/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/beiley/260271201/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>redmine</category><category>php</category><category>nginx</category><category>mod_rails</category><category>gitosis</category><pubDate>Tue, 26 May 2009 09:31:50 +0800</pubDate><author>胡 松</author><comments>http://hu.writter.cn/archives/521.html#comments</comments><guid isPermaLink="false">http://hu.writter.cn/?p=521</guid><dc:creator>胡 松</dc:creator><fs:srclink>http://hu.writter.cn/archives/521.html</fs:srclink><fs:srcfeed>http://hu.writter.cn/feed</fs:srcfeed><fs:itemid>feedsky/beiley/~7308018/260271201/5129515</fs:itemid></item></channel></rss>
