<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>姜源的WebLog</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/" />
   <link rel="self" type="application/atom+xml" href="http://blog.vetcafe.net/atom.xml" />
   <id>tag:,2008:/4</id>
   <updated>2008-04-30T15:06:23Z</updated>
   <subtitle>我的心情我的路：{我们的幸福} 真正的幸福在于对平淡生活的热爱......</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.35</generator>

<entry>
   <title>用pack实现UDP包在PYTHON与C结构体透明通信</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2008/04/packudppython.html" />
   <id>tag:blog.vetcafe.net,2008://4.2568</id>
   
   <published>2008-04-30T14:28:31Z</published>
   <updated>2008-04-30T15:06:23Z</updated>
   
   <summary>　　Python是一个好东西，是如此的适合写身边的一些小toolkit。测试程序...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="80" label="c" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="81" label="python" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="82" label="struct" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="83" label="udp" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[　　Python是一个好东西，是如此的适合写身边的一些小toolkit。测试程序就是其中一例。比如用C写了一个server，就可以用python写一个client来测试这个server。但遇到一个小问题，就是在UDP传输的时候UDP包中信息的各个字段是用结构体定义的。但Python本身是模糊类型的动态语言，怎么样才能构造UDP包的时候符合C语言结构体的结构呢。Yahoo search找到<a href="http://www.java2s.com/Code/Python/Network/UDPConnectionlessExampletimenistgov.htm">这篇文章</a>，才想起来perl和php也是有这个pack函数的，以前看到这个函数的时候都是略过，没想到有啥具体用处。看来自己还是一根墙上芦苇啊，BS自己一下。
<br>
<br>
顺便改出两段简陋的code来说明这个问题.
<br>
<br>
<div style="border:1px solid #ccc">
<pre>
/*
 * udpsrv.c
 * 
 * The test udp server, source code is stolen from UNP 3ed ED.
 *
 */

#include &lt;unistd.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;strings.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/socket.h&gt;
#include &lt;netinet/in.h&gt;

typedef struct my_data
{
	char name[10];
	int age;
	float score;
} MY_DATA;

void dg_echo(int, struct sockaddr *, socklen_t);

int
main(int argc, char **argv)
{
	int                                   sockfd;
	struct sockaddr_in              svraddr, cliaddr;

	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	bzero(&svraddr, sizeof(svraddr));
	svraddr.sin_family = AF_INET;
	svraddr.sin_addr.s_addr = htonl(INADDR_ANY);
	svraddr.sin_port = htons(3000);

	bind(sockfd, (struct sockaddr *) &svraddr, sizeof(svraddr));
	dg_echo(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr));

}

void
dg_echo(int sockfd, struct sockaddr *pcliaddr, socklen_t clilen)
{
	int                  n;
	socklen_t         len;
	MY_DATA         mydata;

	bzero(&mydata, sizeof(MY_DATA));

	for( ; ; ) {
		len = clilen;
		n   = recvfrom(sockfd, &mydata, sizeof(MY_DATA), 0, pcliaddr, &len);
		printf("Name:%s\tAge:%d\tScore:%f\n", mydata.name, mydata.age, mydata.score);
	}

}
</pre>
</div>
<br>
<br>
<div style="border:1px solid #ccc">
<pre>
#!/usr/bin/python

# Filename: udpcli.py

# a simple udp client

import socket, struct

hostname = 'localhost'
port = 3000

host = socket.gethostbyname(hostname)

name = 'sleetdrop'
age = 18
score = 100

buf = struct.pack("10sif", name, age, score)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(buf, (host, port))
</pre>
</div>
<br>
<br>
<div style="border:1px solid #ccc">
<pre>
在linux上编译并起动udp服务器
$gcc udpsrv.c -o udpsrv
$./udpsrv

在另一个term执行
$python udpcli.py

在服务器所在term会得到如下输出：
Name:sleetdrop  Age:18  Score:100.000000
</pre>
</div>

<br>
<br>]]>
      
   </content>
</entry>
<entry>
   <title>网络监视工具NTOP</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2008/04/ntop.html" />
   <id>tag:blog.vetcafe.net,2008://4.2567</id>
   
   <published>2008-04-29T15:21:09Z</published>
   <updated>2008-04-29T15:59:13Z</updated>
   
   <summary>　　网络流量的监测是服务器和网络设备使用中常见的需求，在多服务器的环境下大多使用...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="79" label="monitor" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="78" label="network" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="77" label="ntop" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[　　网络流量的监测是服务器和网络设备使用中常见的需求，在多服务器的环境下大多使用<a href="http://oss.oetiker.ch/mrtg/">MRTG</a>或者<a href="http://www.cacti.net/">CACTI</a>. 类似这样的软件还有很多,如：<a href="http://www.nagios.org/">Nagios</a>， <a href="http://www.zenoss.com/">zenoss</a>, <a href="http://www.hyperic.com/index.html">hyperic hq</a>, <a href="http://www.jffnms.org/">jffnms</a>等。

　　这些工具大多通过snmp取得服务器或网络设备的信息，不仅有网络流量，同时也可以监控服务器负载，应用服务健康状况，通过自写脚本实现多种监控。并通过类似<a href="http://oss.oetiker.ch/rrdtool/">RRDtool</a>的绘图工具绘制图表以web界面展示给使用者。大多需要在被监控服务器上配置snmp，然后再在一台服务器(LAMP)上采集信息绘制图表。

　　而本文要简单介绍的<a href="http://www.ntop.org/">NTOP</a>是一款专门监控网络流量的软件，同样使用<a href="http://oss.oetiker.ch/rrdtool/">RRDtool</a>绘制图表，但它本身不需要配置snmp和web服务器。在本机安装起动后直接可以用浏览器访问3000端口访问查询和管理界面，支持用户权限管理和插件。并且有着详细的网络状态信息。它也支持把一些统计数据输出为php,python,perl等语言的数组，这样可以很方便的在自己的程序里取到数据。如果你想对单台的服务器的网络状态进行监控，比如在压力测试时。并且你对tcpdump这样的工具不太感冒。可以尝试一下这个方便的工具。
]]>
      
   </content>
</entry>
<entry>
   <title>偶遇百度错误页</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2008/04/post_210.html" />
   <id>tag:blog.vetcafe.net,2008://4.2566</id>
   
   <published>2008-04-29T14:06:29Z</published>
   <updated>2008-04-29T14:13:48Z</updated>
   
   <summary>　　因为对于国内虚拟主机价格与国外如Deamhost等提供商的价格相比造成的心理...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="76" label="百度" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[　　因为对于国内虚拟主机价格与国外如Deamhost等提供商的价格相比造成的心理不平衡，我在Baidu里输入“国内空间 太贵”，居然得到如下页面，找旁边的朋友测试也返回同样的页面。不过过几分钟就正常了。
　　认识Baidu也有好多年了，这还是第一次撞见。

<a href="http://www.flickr.com/photos/sleetdrop/2450948421/" title="baidubug by sleetdrop, on Flickr"><img src="http://farm4.static.flickr.com/3102/2450948421_82f49edfb8.jpg" width="500" height="138" alt="baidubug" /></a>]]>
      
   </content>
</entry>
<entry>
   <title>蝶恋花 难眠--中学日记之二</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2008/04/post_209.html" />
   <id>tag:blog.vetcafe.net,2008://4.2565</id>
   
   <published>2008-03-31T17:29:11Z</published>
   <updated>2008-03-31T17:41:59Z</updated>
   
   <summary>(1998年9月上旬 个人日记98-99年本 后数第28页) 蝶恋花 　　　　　...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="自白" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[(1998年9月上旬 个人日记98-99年本 后数第28页)
<strong>
蝶恋花</strong>
　　　　　　<strong>--难眠</strong>

孤枕独榻夜难眠，
数点秋岁，
盈盈一水间。
暖棉裹身心愈寒，
唯与飞星诉贫欢！

辗转难饮梦江水，
午夜轻歌，
幽咽无声泪。
万般惆怅随风翚，
撕碎情花卜错对。

]]>
      
   </content>
</entry>
<entry>
   <title>致爱情伤兵--中学日记之一</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2008/03/post_207.html" />
   <id>tag:blog.vetcafe.net,2008://4.2563</id>
   
   <published>2008-03-03T14:21:49Z</published>
   <updated>2008-03-03T14:46:37Z</updated>
   
   <summary>致爱情伤兵 (1998年5月31日 个人日记98-99年本 后数第23页) 风雨...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="自白" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<strong>致爱情伤兵</strong>

(1998年5月31日 个人日记98-99年本 后数第23页)

风雨总不会每天都有
我只等待阳光的轻柔
痴心痴迷都已成了过去
自己的路自己走

心里是说不出的空悠
脆弱的时候会凝眸
如何整理这心灵的废墟
请时间来做助手

把有的当作无的胜似咀嚼寒秋
让它在胃里凝成化不开的冬愁
幸亏前方还会有另一场春雨
把新的巢垒织上枝头


注：中学的时候有写日记的习惯，日记本从来往后写的是英文日记，从后往前写的类似上面的歪文。与其读别人，不如读读十年前的自己。以前在大学的bbs发过几篇，后来那个bbs倒下了...时隔三四年了，再发到自己的blog里吧! 用来祭奠那青涩的18岁...]]>
      
   </content>
</entry>
<entry>
   <title>出墙红杏</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2008/02/post_206.html" />
   <id>tag:blog.vetcafe.net,2008://4.2562</id>
   
   <published>2008-02-14T17:16:44Z</published>
   <updated>2008-02-14T17:19:46Z</updated>
   
   <summary>　　春天，会光顾每一个孤单的灵魂，不管你有否准备好承接那片艳丽得有些霸道的一脸暖...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="自白" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[　　春天，会光顾每一个孤单的灵魂，不管你有否准备好承接那片艳丽得有些霸道的一脸暖阳；春色，铺满游园，不羁红杏无视，越过自家墙头伸进了我的房间；春意，如凸镜一般聚合缤纷光彩，点燃风干已久的往日情怀。娇美的火焰映出你激昂的容颜，我相信这真的是春天...
　　情人节后的午夜，独坐，无言，畅想不远处的又一个春天!

<blockquote>
游园不值

南宋·叶绍翁

应怜屐齿印苍苔，小扣柴扉久不开。
春色满园关不住，一枝红杏出墙来。
</blockquote>]]>
      
   </content>
</entry>
<entry>
   <title>Farewell 2007</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/12/2007farewell_2007.html" />
   <id>tag:blog.vetcafe.net,2007://4.2561</id>
   
   <published>2007-12-31T15:36:14Z</published>
   <updated>2008-01-16T05:58:06Z</updated>
   
   <summary>　　匆匆，一切都是如此不成熟、不规矩，而我却在来不及睱顾的流光中又虚度了一载。在...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="心路" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      　　匆匆，一切都是如此不成熟、不规矩，而我却在来不及睱顾的流光中又虚度了一载。在遭遇中成长，心思的迁变往往只是一夜间。美丽的记忆都被拉得越来越远，能把握住的东西也越来越少，渐渐地忘记了感动是一种什么样的滋味。
　　脚步很沉，沉得无法丈量略显荒芜的心地；回望去，仿佛又见你当初轻轻挥手的别离。相厮守不过是一段追忆...
　　用左手拉起右手，真诚的道一声:

　　=======Farewell 我的 2007 =======

      
   </content>
</entry>
<entry>
   <title>深秋薄文</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/10/post_205.html" />
   <id>tag:blog.vetcafe.net,2007://4.2560</id>
   
   <published>2007-10-30T15:56:56Z</published>
   <updated>2007-10-30T15:56:59Z</updated>
   
   <summary>　　在这样的一个夜晚，无法想到的物事便是你所期待的。不晓得此般的日子会不会久长，...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="自白" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      　　在这样的一个夜晚，无法想到的物事便是你所期待的。不晓得此般的日子会不会久长，甜蜜的汲取龟灵膏样微凝的夜色，倦怠的双眼守候LCD 上的一行字慢慢变长...
　　天气终究清冷了起来，前些天在小区边上的超市选了一条新的棉被，在供暖前深秋的夜晚尽情享用温暖的涵义。
　　单薄的心情无力承载过多的迁变，浮躁本不是我的心性，可近日里着实有些偏了些轨迹。诸事纷乱，无从拉出一丝头绪。浸在这不清不白的日子里，生命变得有如冗长的回声，应和着此起彼伏的号令前行。
　　单薄的不只是心情，单薄的宿命更无法承载过多的福分，企盼是一种生活态度，获得却是一种参半的机缘，并不与付出规整的线性相关。
　　这午夜的冷气欺侮孤坐的人儿，脸颊上有似结了薄薄的冰，若有精灵轻步履其上，定会崩碎溅起纷纷晶莹的六出花儿来，飘飘地飘洒、飘落，融在手心里。
　　言语如此不简单，似这轻薄的只言一片，写了，读了，居然稍稍些许暖。
　　

      
   </content>
</entry>
<entry>
   <title>多事之秋</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/09/post_204.html" />
   <id>tag:blog.vetcafe.net,2007://4.2559</id>
   
   <published>2007-09-17T14:54:16Z</published>
   <updated>2007-09-17T16:03:00Z</updated>
   
   <summary>　　这个秋天不多有令人开心的物事... 　　爷爷走了，八十八载的人生是让人歆羡的...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="心路" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[　　这个秋天不多有令人开心的物事...
　　爷爷走了，八十八载的人生是让人歆羡的阅历，在他身边的点滴记忆让我有些不相信他的离去。原来人生若此，那慈爱的微笑变成了相框里永恒的微笑。爷爷是真正的读书人，而我不是。
　　Blog寄放的虚拟主机被<a href="http://my.woowoo.cn/news/news_35.html">断网</a>十数天，Baidu和Dmoz都很麻利的把我从索引中除掉了。我是本本分分实名租空间，老老实实详细做备案，却也遭此劫难。如此行事规则何在，商人信誉飘散，用户利益荡然。故是警察、小偷、平民与流弹间之无奈关系罢了。
　　外面的秋雨下了个整天了，没有风，只是静静的下着，下得人心里凉凉的。方才下了末班车回来住处的时候感觉着实有些秋意了，虽然不比东北冷得更早些，北京的初秋还是较温和的。想想中秋又要来到了，淡淡的心思掀起淡淡的思念。
　　终究是一个预收获的季节，几个朋友同学都在这最近的时日里结婚的，工作忙碌，遥寄去份祝福吧！人生几件大事，这也必可算其一了。
　　睡了，明天还有一大堆的事情要做呢，也许这就是长大后的生活节拍吧，怀念儿时爷爷在挂在墙边的小黑板上给我讲“枯藤老树昏鸦...”的日子，那个时候我很纯净。]]>
      
   </content>
</entry>
<entry>
   <title>3 useful userscripts for firefox&apos;s greasemonkey extension</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/07/3_useful_userscripts_for_firef.html" />
   <id>tag:blog.vetcafe.net,2007://4.2557</id>
   
   <published>2007-07-26T13:55:50Z</published>
   <updated>2007-07-26T13:56:10Z</updated>
   
   <summary>Firefox的Greasemonkey扩展可以通过用户脚本灵活的修改Brows...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<p>Firefox的<a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">Greasemonkey</a>扩展可以通过用户脚本灵活的修改Browser的行为，在这里介绍三个自己日常使用的userscript:</p> <blockquote></blockquote> <blockquote></blockquote> <blockquote> <ul> <li><a href="http://userscripts.org/scripts/show/9720" target="_blank">flickr image-src replace</a>&nbsp;(这个不多介绍，用者自明。)</li> <li><a href="http://userscripts.org/scripts/show/7646" target="_blank">Gmail Super Clean</a>&nbsp;(夏天来了，给Gmail也换个皮，清爽一下!)</li> <li><a href="http://userscripts.org/scripts/show/3458" target="_blank">Single left click tab opener</a>&nbsp;(如我患‘鼠标手’，不得已用touchpad者或许喜欢。)</li></ul></blockquote> <p>Firefox真是一个可爱的东西，那些脚本简洁明了，最近才开始改变对于JS的印象，原来自己真的对Javascript一无所知.</p>]]>
      
   </content>
</entry>
<entry>
   <title>后Browser故事Safari for windows and netscape 9</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/06/browsersafari_for_windows_and.html" />
   <id>tag:blog.vetcafe.net,2007://4.2556</id>
   
   <published>2007-06-12T14:35:04Z</published>
   <updated>2007-06-13T15:16:45Z</updated>
   
   <summary>　　在这个年代处理浏览器间的兼容性的问题已经成了web页面设计人员和js程序员必...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<p>　　在这个年代处理浏览器间的兼容性的问题已经成了web页面设计人员和js程序员必备的技能，有人骂MS另搞一套标准，有人根本就不喜欢<a href="http://www.mozilla.com/en-US/firefox/" target="_blank">Firefox</a>的Gecko引挚，有的人更认为<a href="http://www.opera.com" target="_blank">opera</a>才是真正的好软件。在Mac OS上基于<a href="http://www.konqueror.org " target="_blank">Konqueror</a>的khtml引挚的Safari还有mozilla的Camino是比较受欢迎的。Apple现在放出了<a href="http://www.apple.com/safari/" target="_blank">Safari 3 beta for windows</a>，虽然还不是很稳定，现在还不支持中文。因为<a href="http://www.apple.com" target="_blank">Apple</a>在国内大众消费市场占有率不是很高，可能听说过Safari的都不是很多，更不用说真正的用户了，我就看过有朋友在苹果机上使用MS已经停止开发多年的<a href="http://www.microsoft.com/mac/products/internetexplorer/internetexplorer.aspx?pid=internetexplorer" target="_blank">IE for Mac</a>.总体来说个人认为Safari还是比较好用的。</p> <a href="http://www.flickr.com/photos/sleetdrop/542415130/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1119/542415130_f004f2d3be_m.jpg" width="240" height="209" alt="safari"></a> <p>　　不知道Safari在windows平台上的路程走的会怎么样，会不会有<a href="http://www.netscape.com" target="_blank">Netscape</a>那样曲折，想想AOL真是一个风水不是很好的地方，我们俗知的几个东西都蔫在了它的怀里Netscape, ICQ, Winamp...，<a href="http://www.mozilla.org" target="_blank">Mozilla</a>在netcape 6的时候更像是Netscape的影子，而netscape每况愈下，最后却是mozilla站到了前台，一个年轻的小伙子精兵简政搞出来Firefox和IE叫板。Netscape网站现在却改了路子干起了如<a href="http://www.digg.com" target="_blank">digg</a>和<a href="http://www.slashdot.org" target="_blank">slashdot</a>的行当。Netscape依次也推出过8的版本，一个基于firefox的,可以使用同时使用IE和Gecko引挚的win32 only的版本。前几天看到<a href="http://browser.netscape.com/" target="_blank">Netscape又出了版本9</a>，依然是基于Firefox的，并且有了一些细致的小功能，看似很体贴，但不知道是否真的有人会买账。</p><a title="Photo Sharing" href="http://www.flickr.com/photos/sleetdrop/542424206/"><img height="199" alt="netscape" src="http://farm2.static.flickr.com/1330/542424206_66559f6807_m.jpg" width="240"></a>  <p>　　总之，W3C总是在制定标准，而某某浏览器总是在大叫我们已经把某某标准实现了xx%。可怜的Web程序员们啊!!!</p> <p>............./´¯/)...........(\¯`\<br>............/....//..............\\....\<br>.........../....//................\\....\<br>...../´¯/..../´¯\.........../¯`\....\¯`\<br>.././.../..../..../.|_......_|.\....\....\...\.\..<br>(.(....(....(..../.)..)..(..(.\....)....)....).)<br>.\................\/.../....\...\/................/<br>..\................. /........\................../<br>....\..............(............)............../<br>......\.............\.........../............./</p>]]>
      
   </content>
</entry>
<entry>
   <title>开源web压力测试工具siege和webload</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/06/websiegewebload.html" />
   <id>tag:blog.vetcafe.net,2007://4.2555</id>
   
   <published>2007-06-10T12:34:26Z</published>
   <updated>2007-06-10T12:35:19Z</updated>
   
   <summary>　　压力测试是评估程序本身的性能和硬件投入的一个好方法，web压力测试工具有很多...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<p>　　压力测试是评估程序本身的性能和硬件投入的一个好方法，web压力测试工具有很多，apache自己带的了<a href="http://httpd.apache.org/docs/2.0/programs/ab.html" target="_blank">ab</a>，MS也有自己的工具(<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c0585a-062a-439e-a67d-75a89aa36495&amp;DisplayLang=en" target="_blank">Microsoft Web Application Stress Tool</a>)，还有<a href="http://www.mercury.com/us/products/performance-center/loadrunner/" target="_blank">Mercury LoadRunner</a>，以及openSTA等等。</p> <p>　　下面介绍的是<a href="http://www.joedog.org/JoeDog/Siege" target="_blank">siege</a>和<a href="http://www.webload.org/" target="_blank">webload</a>两个开源测试工具，其中siege是一个如ab一样基于命令行的工具，但它支持比ab更多的功能和参数，可以生成简单的配置文件，可以给定一系列URL等，而且简单易用，看一下help就可以用它来工作了。我在linux和cygwin下都编译通过并且使用过，但在winxp+cygwin的情况下有的时候会因tcp链接数用光而报错。webload是一个像LoadRunner一样的完整压力测试IDE,有单独的脚本录制工具，和压力测试编辑工具，可以调节包括压力增加的步长和增长方式等很多的细节，还有它可以通过如snmp这样的协议直接读取被压服务器的压力状况等，它录制web IE活动的脚本是Javascript，并且有自己完整的API,但感觉性能上应该没有LoadRunner用LCC来编译录制的脚本的好。作为一个开源项目，webload的优点是有非常详尽的文档，根据它的向导和手册能很容易的做出自己的测试用例。</p>]]>
      
   </content>
</entry>
<entry>
   <title>学用PHP+GD画五角星</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/06/phpgd.html" />
   <id>tag:blog.vetcafe.net,2007://4.2554</id>
   
   <published>2007-06-10T11:56:16Z</published>
   <updated>2007-06-10T11:56:59Z</updated>
   
   <summary>　　前两天和朋友们出去玩，饮酒过度，躺在旅馆里很是狼狈，朋友和我一起聊天，说起了...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<p>　　前两天和朋友们出去玩，饮酒过度，躺在旅馆里很是狼狈，朋友和我一起聊天，说起了画五角星的事情，回来试了一下，发现自己中学的几何居然忘得快一干二净了，原来自己丢人的事不只是喝得高了又高...</p> <p>　　我的基本想法是这样滴，取一个以r为半径的圆的内接正五边形的五个顶点的坐标，然后把相隔的点连接起来就成。虽然写出这个很幼稚，但不会就得学啊，这样俺才能从不知道变成知道...</p> <p>Example:</p> <p><a href="http://www.vetcafe.net/vtt/fivestar.php">http://www.vetcafe.net/vtt/fivestar.php</a></p> <p>Code:</p> <blockquote> <p>&nbsp;</p> <p>&lt;?php<br>class FiveStar<br>{<br>&nbsp;&nbsp;&nbsp; var $p = array();<br>&nbsp;&nbsp;&nbsp; function FiveStar($a, $b, $r, $d)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ($i=0; $i &lt; 5; $i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;p[$i]['x'] = $r * cos(2*pi()/5*$i - deg2rad($d)) + $a;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;p[$i]['y'] = $r * sin(2*pi()/5*$i - deg2rad($d)) + $b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }  <p>&nbsp;&nbsp;&nbsp; function draw($image, $color)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageline($image, $this-&gt;p[0]['x'], $this-&gt;p[0]['y'], $this-&gt;p[2]['x'], $this-&gt;p[2]['y'], $color);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageline($image, $this-&gt;p[1]['x'], $this-&gt;p[1]['y'], $this-&gt;p[3]['x'], $this-&gt;p[3]['y'], $color);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageline($image, $this-&gt;p[2]['x'], $this-&gt;p[2]['y'], $this-&gt;p[4]['x'], $this-&gt;p[4]['y'], $color);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageline($image, $this-&gt;p[3]['x'], $this-&gt;p[3]['y'], $this-&gt;p[0]['x'], $this-&gt;p[0]['y'], $color);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imageline($image, $this-&gt;p[4]['x'], $this-&gt;p[4]['y'], $this-&gt;p[1]['x'], $this-&gt;p[1]['y'], $color);<br>&nbsp;&nbsp;&nbsp; }<br>}<br>$image = imagecreatetruecolor(2000, 2000);<br>$white = imagecolorallocate($image, 255, 255, 255);<br>$black = imagecolorallocate($image, 0, 0, 0);<br>imagefill($image, 0, 0, $white);<br>for ($i=0; $i &lt; 10; $i++)<br>{<br>&nbsp;&nbsp;&nbsp; $star[$i] = new FiveStar(1000, 1000, 1000 * pow(0.382, $i), 18 + 36 * $i);<br>&nbsp;&nbsp;&nbsp; $star[$i]-&gt;draw($image, $black);<br>}<br>header('Content-type: image/png');<br>imagepng($image);<br>imagedestroy($image);<br>?&gt;</p></blockquote>]]>
      
   </content>
</entry>
<entry>
   <title>Foobar2000程序员耳机简装版装配</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/05/foobar2000.html" />
   <id>tag:blog.vetcafe.net,2007://4.2553</id>
   
   <published>2007-05-05T04:01:36Z</published>
   <updated>2007-10-30T02:46:27Z</updated>
   
   <summary>　　Foobar2000，简单轻巧实用，插件丰富。想必有好多的朋友一边codin...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="E手记" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<p>　　Foobar2000，简单轻巧实用，插件丰富。想必有好多的朋友一边coding一边戴着耳机听音乐。下面介绍一下我现在使用的foobar2000的几个插件。</p> <p>需要下载的东东有：<br>foobar2000<br><a title="http://www.foobar2000.org/" href="http://www.foobar2000.org/">http://www.foobar2000.org/</a></p> <p>Bauer stereophonic-to-binaural DSP<br><a title="http://sourceforge.net/projects/bs2b" href="http://sourceforge.net/projects/bs2b">http://sourceforge.net/projects/bs2b</a></p> <p>Dolby Headphone Wrapper(需要DOLBYHPH.DLL，PowerDVD自己带有这个dll.)<br><a title="http://pelit.koillismaa.fi/plugins/show.php?id=132" href="http://pelit.koillismaa.fi/plugins/show.php?id=132">http://pelit.koillismaa.fi/plugins/show.php?id=132</a></p> <p>乐辞歌词(需要<a href="http://yuo.be/columns.php">Columns UI</a>插件)<br><a title="http://www.winampcn.com/" href="http://www.winampcn.com/">http://www.winampcn.com/</a></p> <p><br>本来想写一个step by step的步骤，又想了想对于能够使用foobar2000的人来说step by step是多余的 :)</p>]]>
      
   </content>
</entry>
<entry>
   <title>Relax</title>
   <link rel="alternate" type="text/html" href="http://blog.vetcafe.net/2007/05/relax.html" />
   <id>tag:blog.vetcafe.net,2007://4.2552</id>
   
   <published>2007-05-05T03:29:52Z</published>
   <updated>2007-10-07T02:58:16Z</updated>
   
   <summary>　　假日，不再如读书时。假日的心情，也不再如与你漫步湖边... 　　乡土香入梦里...</summary>
   <author>
      <name>sleetdrop</name>
      <uri>http://blog.vetcafe.net</uri>
   </author>
         <category term="心路" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="zh-cn" xml:base="http://blog.vetcafe.net/">
      <![CDATA[<p>　　假日，不再如读书时。假日的心情，也不再如与你漫步湖边...</p> <p>　　乡土香入梦里，乡音暗解心语。自在翻转于老家的土炕，望见扒着炕沿期待我醒来的小狗，闻到外屋大铁锅里妈妈煮着的又白又大的韭菜饺子。</p> <p>　　想想来去许多年，一步步走远，家不再像是家，反倒成了驿站。飘在外的乡下孩子们不知是否也有如我思绪，父母用肩膀把我们抗起来，用双手把我们托出来，熙熙攘攘于都市十字路口的我们，是萦绕在父母脑海中的一个个美丽愿望。</p> <p>　　人生好长，长得让你有时间期待着一个个的未来；人生好短，短得让你没有时间握住每一个至爱。</p> <p>&nbsp;　　书读得多了，往往忘记了为什么而读书。为中华之崛起者，撑得一片天下；如我碌碌者，至少不要负了爱你的人们...</p>]]>
      
   </content>
</entry>

</feed>
