<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_chy710's Tech Space</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/20241/rss</id><updated>2012-05-30T05:55:13Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/20241/rss"/><entry><id>http://www.cnblogs.com/chy710/archive/2012/05/30/memcached.html</id><title type="text">Memcached</title><summary type="text">Memcached: Free &amp; open source, high-performance, distributed memory object caching system,in-memory key-value store官网：http://memcached.org/项目：http://code.google.com/p/memcached/Windows版本http://splinedancer.com/memcached-win32/http://code.jellycan.com/memcached/服务端程序memcached.exe,命令行运行，"-h&amp;q</summary><published>2012-05-30T04:14:00Z</published><updated>2012-05-30T04:14:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2012/05/30/memcached.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2012/05/30/memcached.html"/><content type="html">&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/memcached_banner75.jpg" width="73" height="79" /&gt;&lt;/p&gt;&lt;p&gt;Memcached: Free &amp;amp; open source, high-performance, distributed memory object caching system,in-memory key-value store&lt;/p&gt;&lt;p&gt;官网：&lt;a href="http://memcached.org/"&gt;http://memcached.org/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;项目：&lt;a href="http://code.google.com/p/memcached/"&gt;http://code.google.com/p/memcached/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Windows版本&lt;/p&gt;&lt;p&gt;&lt;a href="http://splinedancer.com/memcached-win32/"&gt;http://splinedancer.com/memcached-win32/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.jellycan.com/memcached/"&gt;http://code.jellycan.com/memcached/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;服务端程序&lt;span style="text-align: center; widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: 12px/18px Verdana, 'Lucida Grande', Geneva, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"&gt;&lt;span style="text-align: left; line-height: 25px; font-family: Georgia, 'Times New Roman', Times, san-serif; font-size: 14px" class="Apple-style-span"&gt;memcached.exe&lt;/span&gt;&lt;/span&gt;,命令行运行，"-h"显示所有参数选项，其中"-d start"为启动服务端，"-d install"为安装到windows服务。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;客户端&lt;/p&gt;&lt;p&gt;可以通过命令行Telnet到服务端，查看信息&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #999999"&gt;telnet 127.0.0.1 11211&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #999999"&gt;stats&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/memcached/wiki/Clients"&gt;http://code.google.com/p/memcached/wiki/Clients&lt;/a&gt;&lt;/p&gt;&lt;p&gt;本文在C#中使用BeIT Memcached Client&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/beitmemcached/"&gt;http://code.google.com/p/beitmemcached/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;示例：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;MemcachedClient.Setup(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;TestCache&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[]&amp;nbsp;{&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;192.168.1.39&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MemcachedClient&amp;nbsp;cache&amp;nbsp;=&amp;nbsp;MemcachedClient.GetInstance(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;TestCache&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cache.SendReceiveTimeout&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;5000&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cache.MinPoolSize&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cache.MaxPoolSize&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;5&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cache.Set(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;jackcai&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;解压BeITMemcached_source_2008_05_31.zip，它是.net&amp;nbsp;2.0开发的客户端，里面是全部源代码和一个调用示例。&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&amp;nbsp;obj&amp;nbsp;=&amp;nbsp;cache.Get(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;jackcai&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(obj);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.Read();&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.developers.api.sina.com.cn/?p=124"&gt;深度解析&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.lvtao.net/book/memcached.html"&gt;协议&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://it.dianping.com/use-memcached-to-build-high-performance-web-application.htm"&gt;应用场景&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.nosqlfan.com/html/3729.html"&gt;与Redis的一点比较&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2526063.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2012/05/30/memcached.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2012/05/28/redis.html</id><title type="text">Redis</title><summary type="text">Redis：高性能key-value存储，持久化，支持string,list等多种数据类型，支持N多命令，相当灵活。官网：http://redis.io/中文：http://www.redis.cn/Demo:windows版(非官方，开发调试用，Redis本身不支持Windows)https://github.com/dmajkic/redis/prebuilt binarieshttps://github.com/dmajkic/redis/downloads下载解压后的文件：libhiredis.dllredis-benchmark.exeredis-check-aof.exeredis</summary><published>2012-05-28T09:45:00Z</published><updated>2012-05-28T09:45:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2012/05/28/redis.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2012/05/28/redis.html"/><content type="html">&lt;p&gt;&lt;img border="0" alt="" src="http://redis.io/images/redis.png" width="93" height="30" /&gt;&lt;/p&gt;&lt;p&gt;Redis：高性能key-value存储，持久化，支持string,list等多种数据类型，支持N多命令，相当灵活。&lt;/p&gt;&lt;p&gt;官网：&lt;a href="http://redis.io/"&gt;http://redis.io/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;中文：&lt;a href="http://www.redis.cn/"&gt;http://www.redis.cn/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Demo:&lt;/p&gt;&lt;p&gt;windows版(非官方，开发调试用，Redis本身不支持Windows)&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/dmajkic/redis/"&gt;https://github.com/dmajkic/redis/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;prebuilt binaries&amp;nbsp;&lt;a href="https://github.com/dmajkic/redis/downloads"&gt;https://github.com/dmajkic/redis/downloads&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下载解压后的文件：&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0"&gt;libhiredis.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #c0c0c0"&gt;redis-benchmark.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #c0c0c0"&gt;redis-check-aof.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #c0c0c0"&gt;redis-check-dump.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #c0c0c0"&gt;redis-cli.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #c0c0c0"&gt;redis-server.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #c0c0c0"&gt;redis.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;redis-server.exe是Redis服务程序，命令行运行后启动服务端&lt;br /&gt;&lt;span style="color: #008000"&gt;[2624] 28 May 17:19:30 * Server started, Redis version 2.4.2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;[2624] 28 May 17:19:30 # Open data file dump.rdb: No such file or directory&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;[2624] 28 May 17:19:30 * The server is now ready to accept connections on port 6379&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;redis-cli.exe是一个客户端程序，命令行下运行，简单的一个Set/Get&lt;/p&gt;&lt;p&gt;&lt;span style="color: #008000"&gt;redis 127.0.0.1:6379&amp;gt; set mykey "this is a value"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;OK&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;redis 127.0.0.1:6379&amp;gt; get mykey&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;"this is a value"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;redis 127.0.0.1:6379&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;C#客户端&lt;/p&gt;&lt;p&gt;有好几个，本文使用&lt;span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"&gt;&lt;span style="text-align: left; line-height: 19px; border-collapse: collapse; font-family: 'Helvetica Neue', sans-serif; color: rgb(51,51,51); font-size: 13px" class="Apple-style-span"&gt;ServiceStack.Redis&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/ServiceStack/ServiceStack.Redis"&gt;https://github.com/ServiceStack/ServiceStack.Redis&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;常用方法&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style="color: #008000"&gt;初始化连接&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RedisClient(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;host,&amp;nbsp;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&amp;nbsp;port);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;set&amp;nbsp;key&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;Set&amp;lt;T&amp;gt;(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;key,&amp;nbsp;T&amp;nbsp;value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;get&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[]&amp;nbsp;Get(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;key);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;set&amp;nbsp;list&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddItemToList(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;listId,&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;get&amp;nbsp;list&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;&amp;nbsp;GetAllItemsFromList(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;listId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;set&amp;nbsp;object&amp;lt;T&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;Set&amp;lt;T&amp;gt;(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;key,&amp;nbsp;T&amp;nbsp;value);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;get&amp;nbsp;object&amp;lt;T&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;T&amp;nbsp;Get&amp;lt;T&amp;gt;(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;key);&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;链接：&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.nosqlfan.com/html/3202.html"&gt;Redis数据结构&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://timyang.net/data/redis-misunderstanding/"&gt;Redis几个误区&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://redis.readthedocs.org/en/latest/index.html"&gt;中文命令参考&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage"&gt;优化&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2521685.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2012/05/28/redis.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2012/01/19/amcharts.html</id><title type="text">图表控件amCharts</title><summary type="text">amCharts是一款强大的图表控件，支持Javascript和Falsh两种显示方式，支持.NET等多种客户端，本文演示在asp.net中的使用。折线图View Code //线条for(inti=0;i&lt;7;i++){LineChartGraphline=newLineChartGraph();line.Bullet=LineChartBulletTypes.Square;line.ForeColor=Color.FromName(Common.enumerate.lineColor[i]);//线条颜色line.DataSource=dtHour;//数据源line.DataSer</summary><published>2012-01-19T06:46:00Z</published><updated>2012-01-19T06:46:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2012/01/19/amcharts.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2012/01/19/amcharts.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.amcharts.com/"&gt;amCharts&lt;/a&gt;是一款强大的图表控件，支持Javascript和Falsh两种显示方式，支持.NET等多种客户端，本文演示在&lt;a href="http://www.amcharts.com/aspnet/documentation/"&gt;asp.net&lt;/a&gt;中的使用。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;折线图&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/amchart1.jpg" width="469" height="300" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('978cc6c4-ddd2-42b7-916c-89018d6e9af4')"&gt;&lt;img style="display: none" id="code_img_opened_978cc6c4-ddd2-42b7-916c-89018d6e9af4" class="code_img_opened" onclick="cnblogs_code_hide('978cc6c4-ddd2-42b7-916c-89018d6e9af4',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;div id="cnblogs_code_open_978cc6c4-ddd2-42b7-916c-89018d6e9af4" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;线条&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&amp;nbsp;i=&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;lt;&lt;span style="color: #800080"&gt;7&lt;/span&gt;;&amp;nbsp;i++)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LineChartGraph&amp;nbsp;line&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;LineChartGraph();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.Bullet&amp;nbsp;=&amp;nbsp;LineChartBulletTypes.Square;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.ForeColor&amp;nbsp;=&amp;nbsp;Color.FromName(Common.enumerate.lineColor[i]);&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;线条颜色&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.DataSource&amp;nbsp;=&amp;nbsp;dtHour;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;数据源&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.DataSeriesItemIDField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;hour&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;坐标字段&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.DataValueField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;cnt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;值字段&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.Title&amp;nbsp;=&amp;nbsp;DateTime.Now.AddDays(-i).ToString(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;MM-dd&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;);&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;线条名称&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line.DataBind();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.Graphs.Add(line);&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;添加线条到主控件&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Chart.DataSource&amp;nbsp;=&amp;nbsp;dtHour;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;数据源&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;Chart.DataSeriesIDField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;hour&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;x坐标字段&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;Chart.DataBind();&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('0cc65258-feb7-4ec3-b997-b26be300bf44')"&gt;&lt;img style="display: none" id="code_img_opened_0cc65258-feb7-4ec3-b997-b26be300bf44" class="code_img_opened" onclick="cnblogs_code_hide('0cc65258-feb7-4ec3-b997-b26be300bf44',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;div id="cnblogs_code_open_0cc65258-feb7-4ec3-b997-b26be300bf44" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;常用属性&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;Chart.XGridApproxLineCount=&lt;span style="color: #800080"&gt;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;x轴坐标点，默认不是全显示&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;柱形图&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/amchart2.jpg" width="474" height="328" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('044a018c-bfcc-4c5e-bd82-1cb408c3acc1')"&gt;&lt;img style="display: none" id="code_img_opened_044a018c-bfcc-4c5e-bd82-1cb408c3acc1" class="code_img_opened" onclick="cnblogs_code_hide('044a018c-bfcc-4c5e-bd82-1cb408c3acc1',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;div id="cnblogs_code_open_044a018c-bfcc-4c5e-bd82-1cb408c3acc1" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;柱子&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ColumnChartGraph&amp;nbsp;Column&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;ColumnChartGraph();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Column.DataSource&amp;nbsp;=&amp;nbsp;dt_OP;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;数据源&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Column.DataSeriesItemIDField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;dt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;字段&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Column.DataValueField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;cnt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;值&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Column.Title&amp;nbsp;=&amp;nbsp;lineName[i];&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;列名称&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Column.DataBind();&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.Graphs.Add(Column);&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;添加一柱图&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;绑定主控件&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.DataSource&amp;nbsp;=&amp;nbsp;dt_OP;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.DataSeriesIDField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;dt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.DataBind();&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('010696ee-c50c-4605-8eae-f54fa8357f1f')"&gt;&lt;img style="display: none" id="code_img_opened_010696ee-c50c-4605-8eae-f54fa8357f1f" class="code_img_opened" onclick="cnblogs_code_hide('010696ee-c50c-4605-8eae-f54fa8357f1f',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;div id="cnblogs_code_open_010696ee-c50c-4605-8eae-f54fa8357f1f" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;一些常用属性&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;Chart.ColumnDataLabelFormatString&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;{value}&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;柱子上数据显示&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.ColumnDataLabelPosition&amp;nbsp;=&amp;nbsp;ColumnDataLabelPositions.Above;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;位置&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.Depth&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;5&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;立体感&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Chart.ValuesMin&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;200&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;最小起始值&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;可以添加两个或多个柱子，方便数据对比，一个柱子可分比例按段显示&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;Chart.ColumnType&amp;nbsp;=&amp;nbsp;ColumnChartColumnTypes.Stacked;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/amchart3.jpg" width="161" height="206" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;饼图&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="border-bottom: #ccc 1px solid; border-left: #000000 1px solid; border-top: #000000 1px solid; border-right: #000000 1px solid" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/amchart4.jpg" width="479" height="363" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;chat_mcc.DataSource&amp;nbsp;=&amp;nbsp;dtApp;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;数据源&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat_mcc.DataTitleField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;id&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&amp;nbsp;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;字段&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat_mcc.DataValueField&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;cnt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat_mcc.DataBind();&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;amChart .NET控件开发快速，与代码结合动态生成方便，但Flash显示在有些平台不支持不友好&lt;/li&gt;&lt;li&gt;amChart Javascript 显示不受平台约束，但配置相对麻烦，一个图标需要单独的数据文件和配置文件&lt;/li&gt;&lt;li&gt;有些其它控件如WebChart显示时会自动生成一张静态图片，这在多台服务器之间同步(负载均衡)时影响访问&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2326799.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2012/01/19/amcharts.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2011/12/22/2298382.html</id><title type="text">关于微信，我想说两句</title><summary type="text">微信，一款来自腾讯的移动IM产品，让多少粉丝喜欢崇拜。因Windows Phone版一直到昨天才推出，可以说是吊足了一帮人的喟口。在智机网论坛上关于腾讯什么时候推出Windows Phone版的微信，一直是个热门话题。而就在昨天发布当日，论坛几乎全被微信抢尽了风头。这种崇拜一点也不亚于朝鲜人民对金正日的崇拜。说起产品功能特色，无非就是聊天，而其核心也就是从WhatsApp那里"学来的"的基于本地通讯录的好友关系的聊天。至于语音聊天，那不是什么新鲜事，至于找附近的人、摇一摇等那都是附加的供人无聊之时娱乐之用。现在Windows Phone上，就腾讯一家移动IM就有：手机QQ、</summary><published>2011-12-22T12:46:00Z</published><updated>2011-12-22T12:46:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2011/12/22/2298382.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2011/12/22/2298382.html"/><content type="html">&lt;p&gt;微信，一款来自腾讯的移动IM产品，让多少粉丝喜欢崇拜。因Windows Phone版一直到昨天才推出，可以说是吊足了一帮人的喟口。在智机网论坛上关于腾讯什么时候推出Windows Phone版的微信，一直是个热门话题。而就在昨天发布当日，论坛几乎全被微信抢尽了风头。这种崇拜一点也不亚于朝鲜人民对金正日的崇拜。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;说起产品功能特色，无非就是聊天，而其核心也就是从WhatsApp那里"学来的"的基于本地通讯录的好友关系的聊天。至于语音聊天，那不是什么新鲜事，至于找附近的人、摇一摇等那都是附加的供人无聊之时娱乐之用。现在Windows Phone上，就腾讯一家移动IM就有：手机QQ、QQ通讯录(Q信)、微信，还有别家的X信，这个X就有好几家了。而就这样一款产品，市场如此受欢迎，用户主要还是奔着QQ绝对强大的用户群和腾讯的品牌去的，其产品本身并没有什么高明的地方。甚至有些用户就是盲目跟风凑热闹，昨天在智机论坛看到一帖子，某人抱怨安装微信后，一启动就卡在首页不动了，那其实是个第一次使用的宣传，几张图片，滑动过去就可以了，看到此帖，哥很无语。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;#8220;引导用户消费，用户习惯是可以培养的&amp;#8221;，这话一点都不假。所以产品除了技术以外的东西也是非常重要的。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;现在移动互联网的概念炒得这么热，IM、社交、微博，个人感觉其泡沫胜似当下的房地产。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;注意保护个人信息安全。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2298382.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2011/12/22/2298382.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2011/08/03/colors.html</id><title type="text">颜色名称集合</title><summary type="text">From：System.Drawing.ColorAliceBlueAntiqueWhiteAquaAquamarineAzureBeigeBisqueBlackBlanchedAlmondBlueBlueVioletBrownBurlyWoodCadetBlueChartreuseChocolateCoralCornflowerBlueCornsilkCrimsonCyanDarkBlueDarkCyanDarkGoldenrodDarkGrayDarkGreenDarkKhakiDarkMagentaDarkOliveGreenDarkOrangeDarkOrchidDarkRedDark</summary><published>2011-08-03T08:45:00Z</published><updated>2011-08-03T08:45:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2011/08/03/colors.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2011/08/03/colors.html"/><content type="html">&lt;p&gt;From：System.Drawing.Color&lt;/p&gt;&lt;style type="text/css"&gt;#colors div{width:150px;height:50px;margin:5px;float:left;border:1px solid #cccccc}&lt;/style&gt;&lt;div id="colors"&gt;&lt;div style="background-color: aliceblue"&gt;AliceBlue&lt;/div&gt;&lt;div style="background-color: antiquewhite"&gt;AntiqueWhite&lt;/div&gt;&lt;div style="background-color: aqua"&gt;Aqua&lt;/div&gt;&lt;div style="background-color: aquamarine"&gt;Aquamarine&lt;/div&gt;&lt;div style="background-color: azure"&gt;Azure&lt;/div&gt;&lt;div style="background-color: beige"&gt;Beige&lt;/div&gt;&lt;div style="background-color: bisque"&gt;Bisque&lt;/div&gt;&lt;div style="background-color: black"&gt;Black&lt;/div&gt;&lt;div style="background-color: blanchedalmond"&gt;BlanchedAlmond&lt;/div&gt;&lt;div style="background-color: blue"&gt;Blue&lt;/div&gt;&lt;div style="background-color: blueviolet"&gt;BlueViolet&lt;/div&gt;&lt;div style="background-color: brown"&gt;Brown&lt;/div&gt;&lt;div style="background-color: burlywood"&gt;BurlyWood&lt;/div&gt;&lt;div style="background-color: cadetblue"&gt;CadetBlue&lt;/div&gt;&lt;div style="background-color: chartreuse"&gt;Chartreuse&lt;/div&gt;&lt;div style="background-color: chocolate"&gt;Chocolate&lt;/div&gt;&lt;div style="background-color: coral"&gt;Coral&lt;/div&gt;&lt;div style="background-color: cornflowerblue"&gt;CornflowerBlue&lt;/div&gt;&lt;div style="background-color: cornsilk"&gt;Cornsilk&lt;/div&gt;&lt;div style="background-color: crimson"&gt;Crimson&lt;/div&gt;&lt;div style="background-color: cyan"&gt;Cyan&lt;/div&gt;&lt;div style="background-color: darkblue"&gt;DarkBlue&lt;/div&gt;&lt;div style="background-color: darkcyan"&gt;DarkCyan&lt;/div&gt;&lt;div style="background-color: darkgoldenrod"&gt;DarkGoldenrod&lt;/div&gt;&lt;div style="background-color: darkgray"&gt;DarkGray&lt;/div&gt;&lt;div style="background-color: darkgreen"&gt;DarkGreen&lt;/div&gt;&lt;div style="background-color: darkkhaki"&gt;DarkKhaki&lt;/div&gt;&lt;div style="background-color: darkmagenta"&gt;DarkMagenta&lt;/div&gt;&lt;div style="background-color: darkolivegreen"&gt;DarkOliveGreen&lt;/div&gt;&lt;div style="background-color: darkorange"&gt;DarkOrange&lt;/div&gt;&lt;div style="background-color: darkorchid"&gt;DarkOrchid&lt;/div&gt;&lt;div style="background-color: darkred"&gt;DarkRed&lt;/div&gt;&lt;div style="background-color: darksalmon"&gt;DarkSalmon&lt;/div&gt;&lt;div style="background-color: darkseagreen"&gt;DarkSeaGreen&lt;/div&gt;&lt;div style="background-color: darkslateblue"&gt;DarkSlateBlue&lt;/div&gt;&lt;div style="background-color: darkslategray"&gt;DarkSlateGray&lt;/div&gt;&lt;div style="background-color: darkturquoise"&gt;DarkTurquoise&lt;/div&gt;&lt;div style="background-color: darkviolet"&gt;DarkViolet&lt;/div&gt;&lt;div style="background-color: deeppink"&gt;DeepPink&lt;/div&gt;&lt;div style="background-color: deepskyblue"&gt;DeepSkyBlue&lt;/div&gt;&lt;div style="background-color: dimgray"&gt;DimGray&lt;/div&gt;&lt;div style="background-color: dodgerblue"&gt;DodgerBlue&lt;/div&gt;&lt;div style="background-color: firebrick"&gt;Firebrick&lt;/div&gt;&lt;div style="background-color: floralwhite"&gt;FloralWhite&lt;/div&gt;&lt;div style="background-color: forestgreen"&gt;ForestGreen&lt;/div&gt;&lt;div style="background-color: fuchsia"&gt;Fuchsia&lt;/div&gt;&lt;div style="background-color: gainsboro"&gt;Gainsboro&lt;/div&gt;&lt;div style="background-color: ghostwhite"&gt;GhostWhite&lt;/div&gt;&lt;div style="background-color: gold"&gt;Gold&lt;/div&gt;&lt;div style="background-color: goldenrod"&gt;Goldenrod&lt;/div&gt;&lt;div style="background-color: gray"&gt;Gray&lt;/div&gt;&lt;div style="background-color: green"&gt;Green&lt;/div&gt;&lt;div style="background-color: greenyellow"&gt;GreenYellow&lt;/div&gt;&lt;div style="background-color: honeydew"&gt;Honeydew&lt;/div&gt;&lt;div style="background-color: hotpink"&gt;HotPink&lt;/div&gt;&lt;div style="background-color: indianred"&gt;IndianRed&lt;/div&gt;&lt;div style="background-color: indigo"&gt;Indigo&lt;/div&gt;&lt;div style="background-color: ivory"&gt;Ivory&lt;/div&gt;&lt;div style="background-color: khaki"&gt;Khaki&lt;/div&gt;&lt;div style="background-color: lavender"&gt;Lavender&lt;/div&gt;&lt;div style="background-color: lavenderblush"&gt;LavenderBlush&lt;/div&gt;&lt;div style="background-color: lawngreen"&gt;LawnGreen&lt;/div&gt;&lt;div style="background-color: lemonchiffon"&gt;LemonChiffon&lt;/div&gt;&lt;div style="background-color: lightblue"&gt;LightBlue&lt;/div&gt;&lt;div style="background-color: lightcoral"&gt;LightCoral&lt;/div&gt;&lt;div style="background-color: lightcyan"&gt;LightCyan&lt;/div&gt;&lt;div style="background-color: lightgoldenrodyellow"&gt;LightGoldenrodYellow&lt;/div&gt;&lt;div style="background-color: lightgray"&gt;LightGray&lt;/div&gt;&lt;div style="background-color: lightgreen"&gt;LightGreen&lt;/div&gt;&lt;div style="background-color: lightpink"&gt;LightPink&lt;/div&gt;&lt;div style="background-color: lightsalmon"&gt;LightSalmon&lt;/div&gt;&lt;div style="background-color: lightseagreen"&gt;LightSeaGreen&lt;/div&gt;&lt;div style="background-color: lightskyblue"&gt;LightSkyBlue&lt;/div&gt;&lt;div style="background-color: lightslategray"&gt;LightSlateGray&lt;/div&gt;&lt;div style="background-color: lightsteelblue"&gt;LightSteelBlue&lt;/div&gt;&lt;div style="background-color: lightyellow"&gt;LightYellow&lt;/div&gt;&lt;div style="background-color: lime"&gt;Lime&lt;/div&gt;&lt;div style="background-color: limegreen"&gt;LimeGreen&lt;/div&gt;&lt;div style="background-color: linen"&gt;Linen&lt;/div&gt;&lt;div style="background-color: magenta"&gt;Magenta&lt;/div&gt;&lt;div style="background-color: maroon"&gt;Maroon&lt;/div&gt;&lt;div style="background-color: mediumaquamarine"&gt;MediumAquamarine&lt;/div&gt;&lt;div style="background-color: mediumblue"&gt;MediumBlue&lt;/div&gt;&lt;div style="background-color: mediumorchid"&gt;MediumOrchid&lt;/div&gt;&lt;div style="background-color: mediumpurple"&gt;MediumPurple&lt;/div&gt;&lt;div style="background-color: mediumseagreen"&gt;MediumSeaGreen&lt;/div&gt;&lt;div style="background-color: mediumslateblue"&gt;MediumSlateBlue&lt;/div&gt;&lt;div style="background-color: mediumspringgreen"&gt;MediumSpringGreen&lt;/div&gt;&lt;div style="background-color: mediumturquoise"&gt;MediumTurquoise&lt;/div&gt;&lt;div style="background-color: mediumvioletred"&gt;MediumVioletRed&lt;/div&gt;&lt;div style="background-color: midnightblue"&gt;MidnightBlue&lt;/div&gt;&lt;div style="background-color: mintcream"&gt;MintCream&lt;/div&gt;&lt;div style="background-color: mistyrose"&gt;MistyRose&lt;/div&gt;&lt;div style="background-color: moccasin"&gt;Moccasin&lt;/div&gt;&lt;div style="background-color: navajowhite"&gt;NavajoWhite&lt;/div&gt;&lt;div style="background-color: navy"&gt;Navy&lt;/div&gt;&lt;div style="background-color: oldlace"&gt;OldLace&lt;/div&gt;&lt;div style="background-color: olive"&gt;Olive&lt;/div&gt;&lt;div style="background-color: olivedrab"&gt;OliveDrab&lt;/div&gt;&lt;div style="background-color: orange"&gt;Orange&lt;/div&gt;&lt;div style="background-color: orangered"&gt;OrangeRed&lt;/div&gt;&lt;div style="background-color: orchid"&gt;Orchid&lt;/div&gt;&lt;div style="background-color: palegoldenrod"&gt;PaleGoldenrod&lt;/div&gt;&lt;div style="background-color: palegreen"&gt;PaleGreen&lt;/div&gt;&lt;div style="background-color: paleturquoise"&gt;PaleTurquoise&lt;/div&gt;&lt;div style="background-color: palevioletred"&gt;PaleVioletRed&lt;/div&gt;&lt;div style="background-color: papayawhip"&gt;PapayaWhip&lt;/div&gt;&lt;div style="background-color: peachpuff"&gt;PeachPuff&lt;/div&gt;&lt;div style="background-color: peru"&gt;Peru&lt;/div&gt;&lt;div style="background-color: pink"&gt;Pink&lt;/div&gt;&lt;div style="background-color: plum"&gt;Plum&lt;/div&gt;&lt;div style="background-color: powderblue"&gt;PowderBlue&lt;/div&gt;&lt;div style="background-color: purple"&gt;Purple&lt;/div&gt;&lt;div style="background-color: red"&gt;Red&lt;/div&gt;&lt;div style="background-color: rosybrown"&gt;RosyBrown&lt;/div&gt;&lt;div style="background-color: royalblue"&gt;RoyalBlue&lt;/div&gt;&lt;div style="background-color: saddlebrown"&gt;SaddleBrown&lt;/div&gt;&lt;div style="background-color: salmon"&gt;Salmon&lt;/div&gt;&lt;div style="background-color: sandybrown"&gt;SandyBrown&lt;/div&gt;&lt;div style="background-color: seagreen"&gt;SeaGreen&lt;/div&gt;&lt;div style="background-color: seashell"&gt;SeaShell&lt;/div&gt;&lt;div style="background-color: sienna"&gt;Sienna&lt;/div&gt;&lt;div style="background-color: silver"&gt;Silver&lt;/div&gt;&lt;div style="background-color: skyblue"&gt;SkyBlue&lt;/div&gt;&lt;div style="background-color: slateblue"&gt;SlateBlue&lt;/div&gt;&lt;div style="background-color: slategray"&gt;SlateGray&lt;/div&gt;&lt;div style="background-color: snow"&gt;Snow&lt;/div&gt;&lt;div style="background-color: springgreen"&gt;SpringGreen&lt;/div&gt;&lt;div style="background-color: steelblue"&gt;SteelBlue&lt;/div&gt;&lt;div style="background-color: tan"&gt;Tan&lt;/div&gt;&lt;div style="background-color: teal"&gt;Teal&lt;/div&gt;&lt;div style="background-color: thistle"&gt;Thistle&lt;/div&gt;&lt;div style="background-color: tomato"&gt;Tomato&lt;/div&gt;&lt;div style="background-color: transparent"&gt;Transparent&lt;/div&gt;&lt;div style="background-color: turquoise"&gt;Turquoise&lt;/div&gt;&lt;div style="background-color: violet"&gt;Violet&lt;/div&gt;&lt;div style="background-color: wheat"&gt;Wheat&lt;/div&gt;&lt;div style="background-color: white"&gt;White&lt;/div&gt;&lt;div style="background-color: whitesmoke"&gt;WhiteSmoke&lt;/div&gt;&lt;div style="background-color: yellow"&gt;Yellow&lt;/div&gt;&lt;div style="background-color: yellowgreen"&gt;YellowGreen&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2126389.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2011/08/03/colors.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2011/08/03/digu_windowsphone7.html</id><title type="text">嘀咕 - Windows Phone 7版本</title><summary type="text">嘀咕(digu.com) for Windows Phone 7浏览我的首页发照片微博发文字微博更多...敬请期待</summary><published>2011-08-03T01:43:00Z</published><updated>2011-08-03T01:43:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2011/08/03/digu_windowsphone7.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2011/08/03/digu_windowsphone7.html"/><content type="html">&lt;p&gt;嘀咕(digu.com) for Windows Phone 7&lt;/p&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;更多...敬请期待 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/digu_wp7_1.jpg" width="315" height="516" /&gt; &lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/digu_wp7_2.jpg" width="365" height="654" /&gt; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2125806.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2011/08/03/digu_windowsphone7.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2011/07/31/2115214.html</id><title type="text">如何做一名技术管理者</title><summary type="text">曾在"游戏规则与沟通"一文中我提到，要规范化，有效沟通，提高团队的效率和质量。时隔一年多，再来谈谈有了规范，各项工作正规后如何做技术管理。以下所提到的一切的前提是：1)中小企业或创业型公司等，至今我依然认为中小企业不适合搞重型管理方法；2)技术上不要太业余。摆正自己的位置技术管理的核心就是为开发人员服务，协调各种资源，各种关系。不要官僚，更不要买弄，大家都是搞技术的，多少还不知道点底细呀。不能视而不管，老板问起来了，你还不知道兄弟们在干的怎么样了？决之你是统筹把控全局，掌握好关键点，细点让兄弟们去做，别老是不相信人。别什么都自己干，更有甚者，总是喜欢亲自操刀，这让兄弟们情何</summary><published>2011-07-31T07:56:00Z</published><updated>2011-07-31T07:56:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2011/07/31/2115214.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2011/07/31/2115214.html"/><content type="html">&lt;p&gt;曾在"&lt;a href="http://www.cnblogs.com/chy710/archive/2009/11/23/1608924.html"&gt;游戏规则与沟通&lt;/a&gt;"一文中我提到，要规范化，有效沟通，提高团队的效率和质量。时隔一年多，再来谈谈有了规范，各项工作正规后如何做技术管理。&lt;/p&gt;&lt;p&gt;以下所提到的一切的前提是：&lt;/p&gt;&lt;p&gt;1)中小企业或创业型公司等，至今我依然认为中小企业不适合搞重型管理方法；&lt;/p&gt;&lt;p&gt;2)技术上不要太业余。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;摆正自己的位置&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;技术管理的核心就是为开发人员服务，协调各种资源，各种关系。&lt;/p&gt;&lt;p&gt;不要官僚，更不要买弄，大家都是搞技术的，多少还不知道点底细呀。不能视而不管，老板问起来了，你还不知道兄弟们在干的怎么样了？决之你是统筹把控全局，掌握好关键点，细点让兄弟们去做，别老是不相信人。别什么都自己干，更有甚者，总是喜欢亲自操刀，这让兄弟们情何以堪呀，要我说，这是活该，你就是程序员的命。还有一种可能就是确实管理不善，不会用人。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;合理安排开发任务&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;既然不是一个人在战斗，那就让整个团队动起来，让每个人各有所事，根据项目时间、任务量、每个人的能力等合理安排任务。让每个人清楚自己手上的任务(需求、工作量、完成时间)，有疑问有问题马上提出来解决，没问题开干。有些兄弟有问题喜欢自己研究，可能研究了一两天了还没效果，要杜绝此类事情的发生。定时沟通了解情况，及时调整。如果A兄已经手上有几个任务且正在为某任务全力奋进时，你就别在拉着他再去开另一个项目的会议了，这样不什么效果的。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;项目进度管理&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;跟进项目开发的进度，时刻关注项目进展，解决开发过程中遇到的问题。承上启下，让老板知道你的团队的工作进展，让团队成员知道我们的目标。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;以业务为导向&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;技术最终是要变成产品的，多从业务角度考虑问题，有时候也需要灵活处理。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;最后站在程序员的角度说几句&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;效率，效率很重要，最终要的是解决问题，所以别一天到晚玩技术，这个架构那个模式，解决不了问题，那都是浮云，书有时候也会害人的，大师的经验也未必适合你。&lt;/p&gt;&lt;p&gt;不要把程序员妖魔化，高效而快乐的工作，我认为开发者需要有成就感，我从来不提倡加班，如果经常需要加班完成工作，有两种可能：开发者能力有限，管理有问题。前者的可能性较小，除非是新手，我相信大家的能力，所以领导应该好好反省，加班真能解决问题吗？还有开发者注意自己的方法。所以8小时之外你可以尽兴的做你自己想做的事。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span id="Code_Open_Text_180657"&gt;关键字：团队建设，团队管理，小企业管理，技术管理，项目管理&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;a href="http://www.cnblogs.com/chy710"&gt;&lt;font color="#000000"&gt;http://www.cnblogs.com/chy710&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2115214.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2011/07/31/2115214.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2011/04/02/twitter_stream_api_dev.html</id><title type="text">Twitter Streaming API</title><summary type="text">在Facebook中有Real-time Updates，可以实时接受用户的更新，而在Twitter中有比其更强大的Streaming API，共有3种：Streaming API,User Streams,Site Streams，本文主要讨论前两个。基本思路是：连接Twitter Streams，创建一个长连接，不要关闭，然后Twitter会向此连接实时的发送更新，你要做的就是不断的从此连接中接受更新，然后处理之。使用Stream API当然要经过OAuth验证，这是必须滴。这点不同于Facebook(只需在请求中加上token参数即可)，当然，有很多不错的Libary你可以使用，比如：H</summary><published>2011-04-02T09:34:00Z</published><updated>2011-04-02T09:34:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2011/04/02/twitter_stream_api_dev.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2011/04/02/twitter_stream_api_dev.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2010/11/26/1888903.html" target="_blank"&gt;在Facebook中有Real-time Updates&lt;/a&gt;，可以实时接受用户的更新，而在Twitter中有比其更强大的&lt;a href="http://dev.twitter.com/pages/streaming_api" target="_blank"&gt;Streaming API&lt;/a&gt;，共有3种：Streaming API,User Streams,Site Streams，本文主要讨论前两个。基本思路是：连接Twitter Streams，创建一个长连接，不要关闭，然后Twitter会向此连接实时的发送更新，你要做的就是不断的从此连接中接受更新，然后处理之。使用Stream API当然要经过OAuth验证，这是必须滴。这点不同于Facebook(只需在请求中加上token参数即可)，当然，有很多不错的Libary你可以使用，比如：Hammock, TweetSharp ,Twitterizer。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://dev.twitter.com/pages/streaming_api_methods" target="_blank"&gt;&lt;span style="font-size: 14pt"&gt;&lt;strong&gt;Streaming API&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;可以订阅Twitter上多个用户的更新，那些用户呢？可以有很多条件去过滤。Streaming API有多个方法：&lt;/p&gt;&lt;p&gt;1) &lt;font face="Courier New"&gt;statuses/filter &lt;/font&gt;&lt;/p&gt;&lt;p&gt;返回用户的状态更新通知，通过参数筛选用户&lt;/p&gt;&lt;p&gt;参数：count, delimited, follow, locations, track ，比如通过"follow=356,398&amp;#8221;，可以订阅用户Id为356和398这两个用户的状态更新。&lt;/p&gt;&lt;p&gt;2) &lt;font face="Courier New"&gt;statuses/firehose&lt;/font&gt;&lt;/p&gt;&lt;p&gt;3) &lt;font face="Courier New"&gt;statuses/links&lt;/font&gt;&lt;/p&gt;&lt;p&gt;4) &lt;font face="Courier New"&gt;statuses/retweet&lt;/font&gt;&lt;/p&gt;&lt;p&gt;5) &lt;font face="Courier New"&gt;statuses/sample&lt;/font&gt;&lt;/p&gt;&lt;p&gt;这是一个示例，系统随机返回的一些更新，供你测试，且此接口可以不用Oauth验证，Basic验证即可。&lt;/p&gt;&lt;p&gt;返回的内容为JSON，且包括了状态更新的内容，如下：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;text&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;pls&amp;nbsp;tell&amp;nbsp;me&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;in_reply_to_status_id&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;truncated&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;source&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;\u003Ca&amp;nbsp;href=\"http:\/\/seesmic.com\/seesmic_desktop\/sd2\"&amp;nbsp;rel=\"nofollow\"\u003ESeesmic&amp;nbsp;Desktop\u003C\/a\u003E&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;in_reply_to_user_id&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;favorited&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;entities&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;urls&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:[],&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;user_mentions&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:[],&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;hashtags&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:[]},&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;in_reply_to_screen_name&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;in_reply_to_status_id_str&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;id_str&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;52910061479133184&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;place&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;created_at&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;Wed&amp;nbsp;Mar&amp;nbsp;30&amp;nbsp;01:48:36&amp;nbsp;+0000&amp;nbsp;2011&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;contributors&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;user&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;show_all_inline_media&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;follow_request_sent&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;geo_enabled&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;notifications&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_sidebar_border_color&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;C0DEED&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;contributors_enabled&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_image_url&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;http:\/\/a1.twimg.com\/profile_images\/1093534248\/SIGN11431642_128x128_normal.jpg&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_use_background_image&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;statuses_count&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;39&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_background_color&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;C0DEED&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;followers_count&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;4&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;description&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;programmer,tour,table&amp;nbsp;tennis&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;screen_name&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;jack_cai&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;listed_count&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;verified&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_background_image_url&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;http:\/\/a3.twimg.com\/a\/1299696992\/images\/themes\/theme1\/bg.png&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;location&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;shenzhen&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;time_zone&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;Hong&amp;nbsp;Kong&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_text_color&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;333333&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;is_translator&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;lang&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;en&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_sidebar_fill_color&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;DDEEF6&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;id_str&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;71195487&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;default_profile_image&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;default_profile&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_background_tile&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;created_at&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;Thu&amp;nbsp;Sep&amp;nbsp;03&amp;nbsp;07:10:38&amp;nbsp;+0000&amp;nbsp;2009&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;name&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;Jack&amp;nbsp;Cai&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;friends_count&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;13&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;url&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;http:\/\/chy710.cnblogs.com\/&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;id&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;71195487&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;following&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;utc_offset&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;28800&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;favourites_count&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;profile_link_color&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;0084B4&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;},&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;retweeted&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;id&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;52910061479133184&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;in_reply_to_user_id_str&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;coordinates&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;geo&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;retweet_count&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;br /&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;delete&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;status&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;user_id_str&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;71195487&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;id_str&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;52910061479133184&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;id&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;52910061479133184&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;user_id&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:&lt;/span&gt;&lt;span style="color: #000000"&gt;71195487&lt;/span&gt;&lt;span style="color: #000000"&gt;}}}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://dev.twitter.com/pages/user_streams"&gt;&lt;span style="font-size: 14pt"&gt;&lt;strong&gt;User Streams&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;主要订阅当前用户相关的状态，跟随，收藏等信息的更新，连接创建后第一次收到的更新内容为该用户的朋友Id列表。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;friends&lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;:[&lt;/span&gt;&lt;span style="color: #000000"&gt;1497&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;169686021&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;790205&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;15211564&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;37784836&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;821958&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;14884312&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;92015003&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;822571&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;63846421&lt;/span&gt;&lt;span style="color: #000000"&gt;...]}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;后面收到的更新就是用户相关内容更新(同Streaming)，如你或你的好友更新状态时，你跟随某人或有人跟随你时，你收藏一个消息或有人收藏了你的消息时。。等等，具体参加API。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/2003816.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2011/04/02/twitter_stream_api_dev.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2011/01/12/1933964.html</id><title type="text">腾讯微博 - Windows Mobile版本</title><summary type="text">腾讯微博for windows mobile客户端，支持OAuth验证。现有功能：1) OAuth登录(首次使用需要)，授权时如手机浏览器提交没反映，可复制其url在pc端完成验证，再输入得到的验证码。2) 支持发图片或文字微博。3) 浏览我的首页，可分页。在我的HTC D2上验证OK，主要还是方便自己。:)下载Follow: @chy710</summary><published>2011-01-12T07:51:00Z</published><updated>2011-01-12T07:51:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2011/01/12/1933964.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2011/01/12/1933964.html"/><content type="html">&lt;p&gt;腾讯微博for windows mobile客户端，支持OAuth验证。&lt;/p&gt;&lt;p&gt;现有功能：&lt;/p&gt;&lt;p&gt;1) OAuth登录(首次使用需要)，授权时如手机浏览器提交没反映，可复制其url在pc端完成验证，再输入得到的验证码。&lt;/p&gt;&lt;p&gt;2) 支持发图片或文字微博。&lt;/p&gt;&lt;p&gt;3) 浏览我的首页，可分页。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在我的HTC D2上验证OK，主要还是方便自己。:)&lt;/p&gt;&lt;p&gt;&lt;a href="http://dl.dbank.com/c0g931evdk"&gt;下载&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Follow: @&lt;a href="http://t.qq.com/chy710"&gt;chy710&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://open.t.qq.com/images/resource/p9.gif" width="371" height="136" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/chy710/wmtq2.jpg" width="480" height="800" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/1933964.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2011/01/12/1933964.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/chy710/archive/2010/11/26/1888903.html</id><title type="text">Facebook API 开发记录</title><summary type="text">注册AppApplication里有个应用叫Developer，加入后可以注册新应用。点击“set up new application”输入应用的信息提交即可。开发者首页好像没有相关的链接入口，这点不方便。权限验证现在的社交、微博网站大多都采用标准的OAuth验证，Facebook也不例外，这点必须滴。用户登录是在Facebook的网站页面输入帐号密码，登录成功后会重定向到你的页面从而获取Token，之后访问API使用Token来验证。你的应用只需要拿到用户的Token即可，整个过程你是接触不到用户的帐号和密码的。即使你拿到帐号也没用，API只认Token。相比HTTP Basic Auth</summary><published>2010-11-26T08:44:00Z</published><updated>2010-11-26T08:44:00Z</updated><author><name>chy710</name><uri>http://www.cnblogs.com/chy710/</uri></author><link rel="alternate" href="http://www.cnblogs.com/chy710/archive/2010/11/26/1888903.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/chy710/archive/2010/11/26/1888903.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: 14pt"&gt;&lt;strong&gt;&lt;span&gt;注册App&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Application里有个应用叫Developer，加入后可以注册新应用。点击&amp;#8220;set up new application&amp;#8221;输入应用的信息提交即可。开发者首页好像没有相关的链接入口，这点不方便。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;权限验证&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;现在的社交、微博网站大多都采用标准的OAuth验证，Facebook也不例外，这点必须滴。用户登录是在Facebook的网站页面输入帐号密码，登录成功后会重定向到你的页面从而获取Token，之后访问API使用Token来验证。你的应用只需要拿到用户的Token即可，整个过程你是接触不到用户的帐号和密码的。即使你拿到帐号也没用，API只认Token。相比HTTP Basic Authentication(HTTP Header中增加Bae64过的帐号和密码)，整个做法复杂化了，但是安全了。Basic Authentication时代开发者可以随心所欲，做各种各样的应用。OAuth之后最麻烦的就是验证，特别是对桌面或移动应用，一般都在窗体中嵌入一个浏览器控件来完成。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt"&gt;&lt;strong&gt;&lt;span&gt;获取Token&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;1) 访问https://graph.facebook.com/oauth/authorize?client_id={app_id}&amp;amp;redirect_uri={app_url}，如果用户没有登录，则登录，提示用户是否允许应用访问自己的数据，既是否授权允许。Facebook返回到你的应用，带一个code参数: {app_url}?code={code}&lt;/p&gt;&lt;p&gt;&lt;img height="265" alt="" src="http://pic002.cnblogs.com/images/2010/16682/2010112616313765.jpg" width="541" border="1" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2)访问https://graph.facebook.com/oauth/access_token?client_id={app_id}&amp;amp;redirect_uri={url}&amp;amp;client_secret={app_secret}&amp;amp;code={code}&lt;br /&gt;Facebook返回到你的应用，body中有access_token，你可以在你的应用里存储用户token，默认60分钟过期，你可以增加offline_access权限让它不过期。&lt;br /&gt;整个过程是比较简单的，不用作签名之类的。麻烦的是必须跳到facebook网站验证，如果是做客户端应用会影响体验。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt"&gt;&lt;strong&gt;&lt;span&gt;访问API&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;访问需验证的Function加上access_token参数即可，GET或POST看具体函数而定，API统一返回JSON格式的数据，没有别的选择，不像Twitter的选择很多。请求中也不用做签名。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 14pt"&gt;权限&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Facebook的权限分得异常的细，默认你只能访问用户最基本的信息，比如你想获取一个设置了隐私(只对朋友开放)的用户的statu，需要read_stream权限，你想post statu需要publish_stream权限，你想获取用户的email帐号需要email权限等等。所以最好根据你的应用确定需要那些权限，在用户首次使用做权限验证时开通相应的权限，否则后面使用中会达不到你期望的结果。&lt;br /&gt;提升权限&lt;br /&gt;访问：https://graph.facebook.com/oauth/authorize?client_id={app_id}&amp;amp;redirect_uri={app_url}&amp;amp;scope=publish_stream,offline_access,user_status,read_stream&lt;br /&gt;scope后面跟的就是权限，每个用逗号分开，可以有多个。&lt;/p&gt;&lt;p&gt;&lt;img height="371" alt="" src="http://pic002.cnblogs.com/images/2010/16682/2010112616362423.jpg" width="538" border="1" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt"&gt;&lt;strong&gt;&lt;span&gt;更新通知&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Real-time Updates，当你的用户有更新时，Facebook可以通知你，这是一个很有用的功能，可以实时接受用户的更新。&lt;/p&gt;&lt;p&gt;1) 创建一个订阅，默认你的应用是没有更新通知的，你需要先创建一个订阅，告诉Facebook我需要更新通知。&lt;/p&gt;&lt;p&gt;POST数据到&lt;a href="https://graph.facebook.com/{app_id}/subscriptions?access_token={token"&gt;https://graph.facebook.com/{app_id}/subscriptions?access_token={token&lt;/a&gt;}，这个token是应用的token不是用户的token，注意url是https，不是http(文档是错的)，参数：object,fields(你需要监视用户的那些更新),callback_url,verify_token(你自己指定一个验证用)，提交这个请求后就创建了一个订阅。提交POST时候你的callback_url必须存在且可以访问，Facebook会Get此url验证是否存在。&lt;/p&gt;&lt;p&gt;2) 接受更新，创建好订阅后当用户有更新时，Facebook会通知此url告诉你有更新(POST)，你将收到的更新内容为JSON格式，如：&amp;#8220;{"object":"user","entry":[{"uid":"100001548188940","id":"100001548188940","time":1301731097,"changed_fields":["feed"]}]}&amp;#8221;，表示该用户更新了状态，不包括更新的内容。当然，返回可能是个集合。&lt;/p&gt;&lt;p&gt;你收到数据后可以做相应的更新处理，根据你的应用这个post频率可能会高(监视的是使用你应用的所有用户)，得考虑的你的程序性能。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 14pt"&gt;小结&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Facebook是一个很全面的社交网站，其API也很丰富，有Friends,Feed,Like,Music,Photo,Events,Checkin...等等，文档也比较多。但具体使用上就简单了，至少每次请求API不用签名，相比Twitter,Douban等省事多了。关键得花时间研究透他的文档，文档里有详细的说明，问题都可以通过文档解决。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;/div&gt;关键字：Facebook,API,社交网站,微博,应用&lt;br /&gt;&lt;a href="http://chy710.cnblogs.com/"&gt;http://chy710.cnblogs.com/&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/chy710/aggbug/1888903.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/chy710/archive/2010/11/26/1888903.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
