﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-w2001</title><link>http://www.cppblog.com/w2001/</link><description>camouflage.</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 10:02:25 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 10:02:25 GMT</pubDate><ttl>60</ttl><item><title>Win7如何禁用USB无线鼠标唤醒</title><link>http://www.cppblog.com/w2001/archive/2012/04/14/171300.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Fri, 13 Apr 2012 16:21:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2012/04/14/171300.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/171300.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2012/04/14/171300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/171300.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/171300.html</trackback:ping><description><![CDATA[这个功能很讨厌，因为用笔记本已经养成了Sleep的习惯。Sleep之后的笔记本塞包里，一不小心忘了关无线鼠标的话，很容易误唤醒机器，然后导致机器过热，甚危险。<br /><br /><span id="contspan853879">当win7系统进入睡眠时，如果碰动到鼠标就会唤醒系统，进入设备管理器，找到鼠标硬件设备，然后在电源管理中去掉“允许此设备唤醒计算机”前的勾，如果是有线鼠标就不会唤醒计算机，但是无线鼠标还是会唤醒的。如何禁止无线鼠标唤醒计算机？ 原来还要在键盘设备中，也去掉“允许此设备唤醒计算机”前的勾。可能是USB无线接收器既可以是鼠标也可以是键盘用的，因此2个都去掉唤醒就行了。坑爹。。。</span><br /><img src ="http://www.cppblog.com/w2001/aggbug/171300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2012-04-14 00:21 <a href="http://www.cppblog.com/w2001/archive/2012/04/14/171300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VirtualBox + Android x86如何定制出与HD2同样的分辨率？</title><link>http://www.cppblog.com/w2001/archive/2011/08/06/152680.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Sat, 06 Aug 2011 14:41:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2011/08/06/152680.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/152680.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2011/08/06/152680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/152680.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/152680.html</trackback:ping><description><![CDATA[1. Ctrl+R -&gt; CMD -&gt; Vbox目录下 -&gt; 输入VBoxManage setextradata "你的Android x86虚拟机名称" "CustomVideoMode1" "480x800x16"<br />2. 启动Android x86虚拟机，选择(HDPI)启动配置，按'e'键，编辑其启动选项<br />3. 在kernel行上按'e'键，编辑该启动选项。在最后面添加两个行参数"vga=ask UVESA_MODE=480x800"，确认之<br />4. 然后按'b'，booting，接下来你就会看到DPI和分辨率跟HD2一摸一样的Android x86了.....<br /><img src ="http://www.cppblog.com/w2001/aggbug/152680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2011-08-06 22:41 <a href="http://www.cppblog.com/w2001/archive/2011/08/06/152680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【zz】如何在cmd.exe的console窗口中正常显示(type命令)UTF8 编码文件中的汉字？</title><link>http://www.cppblog.com/w2001/archive/2011/05/31/147729.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Mon, 30 May 2011 20:53:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2011/05/31/147729.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/147729.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2011/05/31/147729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/147729.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/147729.html</trackback:ping><description><![CDATA[首先切换活动代码页 chcp 65001 （65001是Windows中 UTF-8的代码页）；<br /><br />然后进入窗口属性来修改能显示中文的字体。操作："属性"-&gt;"字体"，将字体修改为True Type字体"Lucida Console"，然后点击[确定], 选择将属性应用到当前窗口。<br /><br />此时可以type显示UTF-8编码文件中的汉字，但却不能显示GBK编码文件中的汉字了。<br /><br />如果需要再支持GBK，必须执行 chcp 936 切换回简体中文代码页。<br /><br />在65001代码页下：<br /><br />    1. 有时显示中文不全，可以先最小化，然后最大化cmd窗口；<br />    2. dir命令还是能正确显示中文文件名；<br />    3. 不能切换到中文输入法；只能通过从其他地方拷贝中文粘贴过来。但粘贴后，光标显示会错位。<br /><br />另外，我也大概明白了代码页的含义，应该是指在这个cmd窗口中IO子系统所使用的字符编码。<img src ="http://www.cppblog.com/w2001/aggbug/147729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2011-05-31 04:53 <a href="http://www.cppblog.com/w2001/archive/2011/05/31/147729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【zz】Android Logcat技巧</title><link>http://www.cppblog.com/w2001/archive/2011/02/15/140092.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Tue, 15 Feb 2011 07:59:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2011/02/15/140092.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/140092.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2011/02/15/140092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/140092.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/140092.html</trackback:ping><description><![CDATA[
		<span style="font-family: Verdana,Simsun; line-height: 20px; color: rgb(64, 64, 64);">Android LOGCAT输出是UTF-8编码，要想正确显示中文，需要设置在WINDOWS CMD窗口的编码设置，以下为设置步骤。<br style="line-height: 20px;" /><br style="line-height: 20px;" />1、打开CMD.exe命令行窗口 <br style="line-height: 20px;" />2、通过 chcp命令改变代码页，UTF-8的代码页为65001 <br style="line-height: 20px;" />          F:\trash&gt;chcp 65001<br style="line-height: 20px;" /><br style="line-height: 20px;" />    执行该操作后，代码页就被变成UTF-8了。但是，在窗口中仍旧不能正确显示UTF-8字符。<br style="line-height: 20px;" /><br style="line-height: 20px;" />3、修改窗口属性，改变字体<br style="line-height: 20px;" />    在命令行标题栏上点击右键，选择"属性"-&gt;"字体"，将字体修改为True Type字体"Lucida Console"，然后点击确定将属性应用到当前窗口。<br style="line-height: 20px;" />4、通过以上操作并不能完全解决问题，因为显示出来的内容有可能不完全。可以先最小化，然后最大化命令行窗口，文件的内容就完整的显示出来了。<br style="line-height: 20px;" /><br style="line-height: 20px;" />LOGCAT的使用<br style="line-height: 20px;" />[adb] logcat [&lt;option&gt;] ... [&lt;filter-spec&gt;] ...<br style="line-height: 20px;" />过滤器语句按照下面的格式描tag:priority ... , tag 表示是标签,priority 是表示标签的报告的最低等级. 从上面的tag的中可以得到日志的优先级. 你可以在过滤器中多次写tag:priority<br style="line-height: 20px;" /><br style="line-height: 20px;" />adb logcat ActivityManager:I MyApp:D *:S<br style="line-height: 20px;" />上面表达式的最后的元素 *:S ,，是设置所有的标签为”silent”，所有日志只显示有”View” and “MyApp”的，用 *:S 的另一个用处是 能够确保日志输出的时候是按照过滤器的说明限制的，也让过滤器也作为一项输出到日志中.</span>
<img src ="http://www.cppblog.com/w2001/aggbug/140092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2011-02-15 15:59 <a href="http://www.cppblog.com/w2001/archive/2011/02/15/140092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【zz】Win7单无线网卡共享无线网络（诡异）</title><link>http://www.cppblog.com/w2001/archive/2011/01/28/139501.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Thu, 27 Jan 2011 16:24:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2011/01/28/139501.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/139501.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2011/01/28/139501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/139501.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/139501.html</trackback:ping><description><![CDATA[对于只有一块无线网卡的电脑如何来共享你接入的无线网络呢？<br /><br />如何将Windows 7的无线网卡配置成一个软无线AP？<br /><br />其实windows 7设计之初就为这个奠定了基础。以前曾利用移动赠送的wlan做过试验，效果不错，写出来共大家分享。<br /><br />原本的有线共享在windows 7下就是很简单的事情，当然无线共享同样突出了windows的易用性。<br /><br />1.首先保证你是windows 7系统，xp无能为力了，它本身就不支持虚拟。<br /><br />2.以管理员身份打开命令行窗口（方法很多，比较容易的是在运行框里输入cmd按住ctrl+shift同时按回车），然后输入下面的命令<br /><br />netsh wlan set hostednetwork mode=allow ssid="你自己起的名字，英文" key=你设的密码<br /><br />这时你就会在网络与共享中心的更改适配器设置里面看到多了一个无线网络连接（一般叫做无线网络连接2可能也是其他名字），<br /><br />好了，这就是我们用来共享wlan的虚拟网卡。<br /><br />3.启动无线承载网络<br /><br />netsh wlan start hostednetwork<br /><br />4.单击你真正的无线网卡，属性→共享→允许其他网络用户...→下面选成你的虚拟网卡就行。<br /><br />5.这样你就可以用其他设备连接你建立的无线网了，名称就是你上面设置的ssid，密码就是key的值<br /><br />这个网络建好以后是可以复用的，不用的时候可以停止。<br /><br />下面附上停止命令和其他相关命令，这些我都亲自试验过，保证安全。<br /><br /><br />显示你的无线承载网络的信息<br /><br />netsh wlan show hostednetwork<br /><br />停止你的无线承载网络<br /><br />netsh wlan stop hostednetwork<br /><br />更改密码<br />netsh wlan set hostednetwork key="你的密码"<br /><br />如果想密码立即生效可以用<br /><br />netsh wlan refresh hostednetwork key<br /><br />更改网络名称<br /><br />netsh wlan set hostednetwork ssid="你的名称"<br /><br />最后就是你真的不用这个无线网络了，你停止之后，也不想看到多出来的那块无线网卡，那么就执行<br /><br />netsh wlan set hostednetwork mode=<br /><br />就再也看不到那块网卡了，当然你想重新开启的话就执行<br /><br />netsh wlan set hostednetwork mode=allow<br /><img src ="http://www.cppblog.com/w2001/aggbug/139501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2011-01-28 00:24 <a href="http://www.cppblog.com/w2001/archive/2011/01/28/139501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【zz】关于app2sd、a2sd、data2sd、a2sd+的区别的解释</title><link>http://www.cppblog.com/w2001/archive/2011/01/24/139243.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Mon, 24 Jan 2011 13:35:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2011/01/24/139243.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/139243.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2011/01/24/139243.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/139243.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/139243.html</trackback:ping><description><![CDATA[因为看到很多机友对这个概念不理解。首先解释一下这些缩写，全部的意思就是Application To SD卡，就是说将应用安装在卡上。为什么要这么做呢，那是因为HD2原版手机本地存储只有512M（T版有1G的ROM空间），Android（MIUI）系统刷到手机内，主要有几个目录占用了手机本地存储：1、/system；2、/data、3；cache；4、 /boot等。这几个目录基本使用了512M的空间，我们在执行daf刷recovery的时候，其实就是对512M进行这几个目录的分区，其中主要占用 512M空间的是/system和/data，而/system在使用过程中的增长不大，只要我们给足空间，让刷机的ROM中/system目录的文件总量能够拷贝到/system分区就没问题，目前MIUI的/system的目录文件总量大概是105.36M，为了可能需要打补丁，我给到了128M，可能110M也够，最早刷daf的recovery给/system有250M的空间，如果改为150或者128，就能够给其他的分区比如/data增加 100M多空间（以为默认会将所有剩余空间给到/data目录）。/data是作为主要的软件安装地点，这里除了安装的软件以及软件的缓存都在这个目录。那么这个目录最多也不过有不到300M空间（T版有800M的空间，不用太担心），那么像极品飞车这样的软件多安装几个，300M的空间很快就会被用光。那么为了让程序文件利用SD卡的空间，因此出现了app2sd、a2sd、data2sd、a2sd+的各种方案，其实这并不是MIUI的先例，在其他 Android手机上也是如此。那么我就要分别说一下这四种方案的特点和区别：<br /><br />      （1）app2sd是google官方Android系统的一种官方方案，它类似WM将应用程序的部分主要执行文件放到SD卡上，这些文件是保存在 Fat32的SD卡上，这种方式不需要对SD卡做复杂分区，而是用Windows简单格式化SD卡为Fat32分区就好，缺点就是并不是所有程序都能移动到卡上，因为有些程序需要常驻内存，并且在一些情况下，为了省电，可能需要断开卡的供电，因此有可能导致程序运行出现问题。如果用91或者豌豆荚类似的软件强制安装在SD卡上，则会导致桌面插件不能正常运行。这也是我们不能接受的，所以这种方法基本玩家都不会采用。<br /><br />      （2）a2sd，其实在我搜索网络的信息看到有两种观点，一是a2sd就是app2sd，二是a2sd就是a2sd+，通过我的分析，a2sd其实就是简写的app2sd，所以大家就把app2sd和a2sd都认为是官方提供的利用SD卡存储程序文件的方案。这个和app2sd方案一样，基本不被玩家采用。<br /><br />      （3）data2sd，这种技术类似于以前在卡上运行Android，这种方案是在卡上建立一个data.img的文件，其实这个文件就是系统 /data分区的数据，这种方案和以前在卡上运行这个Android方式类似，只不过除了data.img文件，其他文件都在手机存储上。 data.img文件在Fat32分区的SD卡上，这种方式优势是data.img文件大小可以比较自由的控制，从512M到2G甚至更多都可以设置，而且不用对SD卡进行复杂分区。但是问题是因为data.img在SD卡Fat32分区上，以前比如冻屏等类似问题还是存在，并且不能避免当手机电量不足，进入省电模式的时候会切断SD卡供电，导致手机整体无**常运行。但是我看到很多朋友用data.img，主要是因为比较简单，如果你是初学者，并且对我上面的教程关于分区的部分实在是搞不定，也可以采用这种方式（论坛有介绍，搜索一下data2sd，方法很简单），但在我看来这并不是最佳的解决办法，即使它的优点很多，但是缺点也很显著。建议初级玩家使用，高级玩家不使用。<br /><br />      （4）a2sd+，从名字来看a2sd+只是比a2sd多了个+，但是技术是完全不一样的。它采用的是将SD卡进行Andoird（Linux）可是别的分区进行使用SD卡的。因为采用了这种分区，从硬件上看虽然这些分区在SD卡上，但是Android则认为这是本地存储硬件，大家可以通过超级终端在 /dev/block目录下看到mmcblk0p1、mmcblk0p2、mmcblk0p3的文件，其实这就是我们做的Fat32、Ext3、Swap 分区的硬件名称。我们则需要将/data目录使用Ext3分区，那么我们采用的是建立一个/sd-ext目录，让他加载（mount）mmcblk0p2（Ext3）这个分区，然后在/sd-ext下建立app、app-private、dalvik-cache三个目录，然后利用Link技术，就是让/data目录下的app、app-private、dalvik-cache的目录分别Link（Link技术是指将目录连接到另一个目录，在这两个Link与被Link目录里做任何操作就相当于在被Link的目录里操作）到/sd-ext目录下的那三个目录，其实这个过程就是命令a2sd reinstall和a2sd cachesd的时候做的。a2sd reinstall主要的执行内容是将/data/app和/data/app-private目录下的程序分别拷贝到/sd-ext/app和/sd- ext/app-private目录下，然后将目录Link过去，同样a2sd cachesd是将/data/dalvik-cache目录的文件拷贝到/sd-ext/dalvik-cache目录下，然后将目录Link过去。这样我们的程序安装在/data的这三个目录下，实际上使用的是/sd-ext目录所用的SD卡ext3分区的空间，因此大家发现安装程序之后关于手机界面的手机存储没有太多变化。那么app、app-private、dalvik-cache都是什么呢？app是我们的apk程序所安装的位置，如果你有加密的程序，则它会进入app-private的目录，而dalvik-cache则是程序的缓存，这三个目录占用个主要的程序安装所占的空间，那么大家依然会奇怪为什么手机存储依然会变小，只不过慢了一些。那是因为安装程序的时候/data/data这个目录也会有数据增加，但是不太多。但是a2sd+技术为什么不将/data/data目录也Link到/sd-ext目录下，我认为可能/data/data需要更好的稳定性和速度，如果将/data /data目录也Link到卡上，可能冻屏会出现，这纯属个人猜测。我曾经手动将/data/data转移到/sd-ext的/data（我自己建立的目录）下，系统会非常不稳定，而且有自动重启现象。但是即使我们有不到300M的手机存储（其实就是/data分区大小，可以用91或者豌豆荚的文件管理看到），但是主要的程序进入了app或者app-private目录下，缓存的数据进入到dalvik-cache目录下，/data/data不会占用太多空间，是可以接受的。这种方案的缺点是技术比较复杂，新手能够理解需要学习更多的知识（其实学会了会有成就感哦！）。但是这个顺应Android（Linux）技术，因为Ext3和Swap分区并不认为成SD卡，所以在电量不足的情况下，只是将 Fat32那个分区的逻辑卷卸载，而不会触及Ext3和Swap分区，并且这种方案是最稳定的。我个人建议大家使用此方法。<br /><br />      以上是app2sd、a2sd、data2sd、a2sd+的介绍，希望大家能够理解。<br /><img src ="http://www.cppblog.com/w2001/aggbug/139243.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2011-01-24 21:35 <a href="http://www.cppblog.com/w2001/archive/2011/01/24/139243.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改Firefox的默认字符编码</title><link>http://www.cppblog.com/w2001/archive/2010/08/21/124212.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Sat, 21 Aug 2010 13:11:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2010/08/21/124212.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/124212.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2010/08/21/124212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/124212.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/124212.html</trackback:ping><description><![CDATA[位置：工具-&gt;选项-&gt;字体&amp;颜色-&gt;高级-&gt;字符编码<br /><br />在这里选择的字符编码将用来显示未指定编码格式的html页面。<br /><br />比如，某html，其中没有使用&lt;meta http-equiv="Content-Type" .....&gt;语句指定charset，此时，FF将使用默认字符编码来解析显示该html。<img src ="http://www.cppblog.com/w2001/aggbug/124212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2010-08-21 21:11 <a href="http://www.cppblog.com/w2001/archive/2010/08/21/124212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>李彦宏：团队融资和商业模式是创业魔鬼三角</title><link>http://www.cppblog.com/w2001/archive/2010/06/01/116918.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Tue, 01 Jun 2010 12:03:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2010/06/01/116918.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/116918.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2010/06/01/116918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/116918.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/116918.html</trackback:ping><description><![CDATA[【中国企业家网】百度董事长李彦宏在“中关村创业讲坛”发表演讲称，中国互联网的发展形势很好，传统媒体并不会被新媒体所取代；现在的中国环境非常
适合创业，并坦承阐述了自己创业的“魔鬼三角”，他感觉团队、融资、商业模式是其创业的“魔鬼三角”，解决这三个问题需要良好的开拓精神和智慧。

<p>　<strong>　以下是李彦宏演讲的全文：</strong></p><p>　　李彦宏：各位领导、各位来宾，各位远道而来的朋友们，大家下午好，首先感谢大家冒雨前来参加这次中关村创业讲座，我也很高兴有机会在这里跟大家
分享一些我自己的体会。创业这个话题实际上是一个非常吸引人的话题，如果大家到百度上查一下我的创业故事的话，没有上百万也有几十万篇的报道，是非常多的
人对这个东西非常的感兴趣。</p><p>　　今天来到国图我也感觉到意义非凡，因为我本人就是北大图书馆系毕业的，87到91年在北大读书，我上学的那一年北大图书馆系诞生了，我离开那一
年有经济管理系，所以其实图书馆的意义也在逐步扩张和延伸，刚才常馆长讲了，举办讲座也是传播知识的一个重要方式，我是深有体会。不只是现在，像我在大四
的时候就开始做论文，当时在北图来这查资料，后来在美国也是非常喜欢听各种各样的讲座，在北大的时候也是喜欢听讲座，了解各个层面的人在做什么，如果说现
在百度作出了一些成绩，我也很想说是自己的一个责任把我们的经验、我们的教训，我们的体会及时分享给大家，让大家在创业的过程中少走弯路。</p><p>　　<strong>创业最初 害怕被叫互联网公司</strong></p><p>　　事实上中国目前所处的这样一个时代是非常非常适合创业的，那么，过去10年百度从无到有，从小到大发生了很多的变化。在这个变化当中大家看到一
个公司在逐步长大的一个现象，中文搜索的现象越来越被人所接受，这个变化我们，比如说每天处在这么一个中国转型社会的环境里头的话，也许还感觉不是特别深
刻，但是当我们把它稍微镜头拉远一点来看，你会觉得这是一个非常好的现象。我记得我在10年前开始创业的时候，我是十年前在硅谷回到中关村的创业。我回来
的时候，那个时候美国的资本市场其实是非常火的，那个时候纳斯达克的指数大概是5000点，到昨天晚上纳斯达克指数有多少大家有概念吗？谁知道？现在是多
少？2100多点，也就是说经过了10年整体的全球资本市场，或者代表高科技产业的这个市场，纳斯达克主要的高科技产业公司，从苹果到谷歌主流的公司全都
是在纳斯达克上市，经过了10年这样一个代表全球高科技资本市场的指数从5000点跌到了2100多点，而在中国产生了这么多的互联网公司，仅仅在中关村
就有很多家在纳斯达克上市的高科技甚至互联网的公司。这个我觉得是非常了不起的，的确代表了中国给大家提供的这种创业的机会，代表了中关村发展的潜力，所
以我今天就是结合百度创业的过程跟大家讲一讲我的一些体会。</p><p>　　百度刚才讲是10年的历史，最早的时候刚刚回来的时候第一个地方选的是北大的租了两间办公室，因为我们很相信中关村。当时很多的互联网公司都害
怕被别人叫做互联网公司，他们希望远离这个概念也希望远离中关村，所以当时很多在中关村的公司都搬到其他的地方，他们在淡化自己互联网的色彩，但是百度从
一开始就坚持这一点，我们觉得我们就是在做一个互联网，高科技的公司，而且中关村的密集人才是我们最需要的，所以我们10年的工程并没有离开过这个土地，
后来我们搬到理想国际大厦，去年我们又搬到自己盖的百度大厦。</p><p>　　很多人也到百度参观过，这里头一进大厅大家就会看到一个大的电子显示屏，上面有一个跳动的图，跳的时候每一个波峰上面都有一个关健词，就是现在
在百度上被搜索的词，其实像心电图某种意义上也代表了中国互联网的脉搏，的确也是反映中国互联网发生什么，我觉得也是很有意义的，很多人到百度参观都会看
这个东西，百度经过10几年的发生我们也意识到它在整个产业里面有一个特殊的地位，它的利益相关者是非常多的，没有哪一家有那么多利益相关者，以后他有一
个客户群体，再加上它的股东就是它所处的环境了。而百度除了有我们的客户群体以外，有几十万家的企业，我们还有一个用户群体，每天在使用百度的群体，这个
群体非常大，中国4亿多的用户的群体每天都在以一个非常高的频率在使用，所以，这个利益相关者对我们来说也是非常非常重要的，某种意义上讲，他比百度的客
户还重要，因为没有人使用百度的话，你就不会赚到钱，所以用户群体对百度来说是至关重要的。百度还有一个联盟，这里头也有大概几十万家的网站，联盟是做什
么的，就是说他们来展示一些他们的广告，我们就给这些个联盟的网站分成，所以说有几十万家的网站的站长他们通过百度来或者收益，去年我们光百度联盟就分出
7 
个亿，今年会更多，而且过去这么多年都是处于一个高超成长的过程，而且很多站长跟百度在利益上是有相关性的。另外还有一个更大的站长群体跟百度也是非常相
关的，我现在走到哪里去经常会有人跟我说为什么我的百度的速度突然下降了？我1000页今天只剩下500页了，能不能查一下为什么？这样的问题说明什么？
 
就是说明几百万家的站长很依赖百度获得流量，如果一个互联网的网站没有流量就没有意义，所以中国几百万的站长跟百度的利益也是相关的。所以我们除了有用
户、股东，联盟成功还有数百万的站长也是跟百度利益相关的，而百度也是一个非常开放的，百度的东西都是可以在互联网上公开获得，有开放性，我待会再讲一
讲。</p><p>　<strong>　中关村有创业土壤和基因</strong></p><p>　　中关村为什么适合创业，我就不再细讲了，我想讲一讲互联网给技术人员带来了一些机会，其实技术创业无论是在中国也好还是在美国也好都是一个非常
热的话题。但是当10年前我回来创业的时候，在这方面其实我还是多多少少有一点失望的，为什么？我讲一个更近一点例子，从谷歌一个技术高管来了之后特别惊
讶，为什么？因为当时招的人基本上都是应届生，很少招一些有经验的人，问我为什么？我说这个是历史形成的，当10年前回到中关村创业的时候也是自己起草招
聘的广告，我当时说我要招工程师，5年以上的工程师，会C++，会编程等等，或者也有一些进来我觉得根本不符合我的要求，那个时候在中国真正认真做技术的
公司非常非常小，导致很难找到有若干年有技术经验的人，而在中国的这些跨国企业主要做要么销售、要么售前的咨询，售后的支持，后来发展出来一些所谓的研究
院，做纯研究的，真正(英文)开发的技术人员非常少一直到今天我觉得都非常少，这就是为什么10年前创业的时候最后选择了从应届生开始招人，因为应届生起
码从学校学的东西还没有忘掉。我们就是让他练练手，慢慢培养，最后起来可以做事情，而那些在很多公司做了几年事情，不但没有学会真正做最好技术的方法，反
而把那些学生的基础知识忘掉了，他这是一个很不幸的现象，我们看到最近几年情况有所好转，也能招到一些有技术的人员。之所以过去没有技术优秀有经验的人，
因为我技术好也没有用武之地，也不能找到钱，所以大家慢慢都去干别的了。所以早期在中国创业的时候我遇到了不少非常优秀的，以前是理工科的学生，但是他们
都招了销售，因为销售有前途，而且能够升上去，这个一个现象一直到现在都有，但是比较以前弱多了。</p><p>　　我们也看到最近这些年也有一些技术出身的人，他能够真正靠技术而不是其他的方式来创业成功。所以我们在做的过程当中也是在琢磨这个事情，百度能
够做什么，能够给技术出身的人员提供什么样的机会？刚才我们讲了百度有几十万家的联盟伙伴，他们是通过收入的分成来跟百度合作的，我这里面简单举几个例
子，不少人知道像(英文)，是一个BT的下载软件，这些产品都可以通过跟百度分成来获得收益。刚才其实大致也讲了一下百度的10年成长的过程，我们
2000年1 
月份开始在中关村注册创业，到2001年下半年，实际上是9月20日百度真正作为一个搜索网站面向终端网民发布的，很多人有一个认识，百度在终端搜索做的
好是因为他有(英文)，实际上根本不是，我们是最后一个做中文搜索的公司之一，大多数做中文搜索的公司都比我们早。那么，从这个时候开始，我们实际上有一
个理想，就是说要让人们最便捷的获得信息，这样的支撑着百度走过了很多年，我们就希望通过自己的努力让人们更便捷的获得信息。其实我从87年读大学一直到
现在我认为我都是朝着这个方面努力的，为什么当时上图管系，我就觉得这个知识是非常的有意思，图书馆里面有很多书籍和知识，我希望组织起来让很多人更方面
的找到他。</p><p>　　在美国留学的8年我读书的时候是学的信息检索的工作，我的第一份工作做的华尔街日报的实时记录新闻的检索工作。我的第二份工作呢，做的就是互联
网的服务器，后来就是我创业做百度的搜索，一直这样一个理想就是，20多年都没有发生过变化。我为此而骄傲，我看准了市场一直做下去，做到极致和完美。</p><p>　<strong>　百度催熟了中国的搜索市场</strong></p><p>　　从2001年开始做大概到03年开始我们就做成了最大的中文搜索，从市容量大家已经是30%，已经是第一了。到2004年我们等于说也是把商业
模式慢慢固定下来，主流的搜索引擎的商业模式已经统一下来了，这个时候开始准备上市，到2005年8月份上市，这个事情我相信很多人都有印象。我们当时定
价是 
27块钱一股，第一天涨到150块钱，当天的收款价涨了122块钱，当天的收款价比定价涨了350%多。由于它非常高的涨幅使得很多人印象深刻，这个涨幅
一直到现在是没有人破获的，但是在金融泡沫期间是有过的，2005年8月我们上市的时候出现了这样一个现象，当时有很多人不好看的，当时在99年、 
2000年很多公司有这样的现象，我印象当中2005年8月5日，百度上市美国的媒体非常关注，他们都叫我去接受采访，他们都是直播，我们在不同的地方，
还请了一些股票的专家在另外一个地方，大家去争论说百度这个上市，股票涨这么厉害意味着什么，我当时跟一个来自佛罗里达的股票专家就争，他说过去这么多年
一个股票上市了，一旦它的当日涨幅超过200%、300%三年以后这些股票全部跌破了他的价格。他说你的股票2008年会到27块钱以下，我说不是这样
的，你看到那些股票都是上市的时候不盈利，而百度是盈利的，其实中国的互联网其实刚刚开始，那个时候美国对中国还不是很了解，我说的话他也不一定相信。到
今天百度股票大概是60、70块钱，在这之前百度做了拆股。这样一个成长的速度是非常少见的，所以也难怪当时很多专家不看好，其实那段时间很痛苦的，有很
多人说你这个公司值很多钱，你为什么卖27块钱，甚至有一个阴谋论，说高盛在里头有一个阴谋，他故意压低价格。最近在美国一个媒体上还有人说这个是不是一
个阴谋，但是我看这个事情是一个品牌事件，对于百度来说2005年的时候我们规模还很小，中国大多数人对搜索并不熟悉，也许有很多人用搜索，但是搜索多重
要大多数不知道，而且很多人并不知道搜索是一个最好的他们推广服务的手段，而百度上市使很多人开始关注，而且是从商业上开始关注，一下子上市以后能够涨的
这么快，大家开始关注百度是怎么赚钱的，就开始问这个问题了，它实际上催熟了中国搜索的市场，它是一个标志性的事件，我觉得以前按照中文搜索的成长速度这
个价钱是合适的，如果按照惯性往前走我们当时就值27块钱，按照现在的合理价格是2块7。</p><p>　　这样一个上市的事件使得很多人开始关注，这个市场一下子比以前加速的成熟，越来越多人用我们的搜索，投广告，这个事情使得中国搜索市场又出现了
一次加速。我刚才讲到一个星期之前我们实行拆股了，在我的记忆当中也是没有人这么干的，大家就是说比较常见的是2：1拆股，或者3：1拆股，再高的就比较
少见了，我见的比较高的就是一股变四股，一股变十股至少在近些年是没有过，所以这个拆股我们内部也是有很多争论，就是说要不要这么激进的拆股，因为这个股
票要是几百块钱大家觉得这个是一个很成功的公司，如果市场不好掉下来就很难看了，比如说拆股，后来到互联网泡沫，到99年2000年的时候拆了以后就往下
掉，如果你今天看一些互联网的新闻，苹果的市值已经超过了微软，过去十年微软的市值跌了不少，由于他拆股拆的比较勤，二十多块钱的股票给人的印象不是很
高，所以我们当时跟投行商量怎么拆，投行建议一股拆六股，十股太激进了，而这个算法他们说一个正常的美国上市的股票，就是消费者的精力，或者散户接受的程
度大概是20到40块钱是他觉得最容易接受的，又不觉得这是一个失败的公司，如果20块钱以下从一般的投资者心理来讲他会觉得这个公司不好，而超过40块
钱他就觉得这个股票贵了，买起来心里有一点负担，因为我们讨论是在几个月之前，说最好不要这么拆，我们想来想去，基于我们对中国互联网的市场，百度的发
展，各个层面来看，我们最后还是选择了一拆十，最后还是没有到20到40，对散户心理上还是比较贵，但是事实证明拆的还是比较成功的，因为我们宣布拆的时
候股票就涨了很多，而实际拆的几天又涨了很多，所以投资者还是非常看好这个发展的。</p><p>　　我觉得中国互联网产业经过发展这么多年也需要走出去，需要发挥国际影响力了，所以开始运用日本搜索了，本来准备了一个短片介绍我们的概念框计算
我们希望提供一个开放的平台让各种各样的技术能够迅速的(英文)用户，而框计算客观上起到了这个作用，这个是去年8月份提出来的，他也代表了未来百度在相
当一段时间对IT发展趋势的一个判断。框计算什么意思？因为大家可能说没有太注意到，但是现在所常用的应用绝大多数都是从框开始，像百度的搜索，或者(英
文) 
都是，大家一上去首先是一个框，但是即使不是搜索的应用，大多数的网站你到亚马逊购物的话最明显的就是这个搜索匡，你上Twitter也是有一个框，所以
大家如果认真想一想，这个框已经变成了一个非常基本的用户需求的地方，由此我提出来未来的计算，或者是IT产业的发展会逐渐把各种各样的用户都聚集到同一
个方面，因为用户只希望识到一个地方，而不是不停的找各种地方，要把所有的应用集中到一个地方这个需要技术，比如说我要查这个词在哪些网页出现过，我到微
薄里面哪些是我发表过的，如果想要给我电脑杀毒的话，我输入的请求可以告诉在在哪里，我要查邮件的话，需要输入的是用户名和密码，如何把各种各样的不同的
需求集成到一个地方，对用户数的东西技术分析、计算，这样就是说当你识别用户想要干什么的时候，你再把这些用户的需求分发给其他的用户，无论是杀毒也好，
计算也好，交流也好，购物也好各种各样的应用由他们完成，而我们希望提供这样一个开放平台，不管开发什么应用，从一开始就很方便。</p><p>　　所以不同的用户需求，信息的需求，游戏的需求，购物的需求，杀毒的需求都可以通过一个简单的方式来满足，这样就诞生一个新的概念就叫框计算。今
天框计算已经不是一个概念了，从去年8月份到现在已经有快一年的时间了，已经在百度里面有所体现，比如说现在搜索中央电视台的节目表已经不是一个简单的检
索结果，而是一套一直到十二套，你搜索积分它马上会给你一个列表，你搜索汇率直接会说一美元等于多少，你搜索火星文马上会有一个把火星文转成英文或者中文
的，类似的应用已经有很多，或者你输入天气它马上告诉你今天的、明天的，对用户的需求更加便捷，所以又回到了我们最初创办这个公司的理想，就是让人们最便
捷的获得信息，找到所求。</p><p>　　框计算强调两个东西，一个就是融合，一站式服务，一个框解决所有的问题，一个是开放，这个平台对所有的应用服务商内容都是开放的，这一点为什么
要讲他的特色，现在有一个非常火的概念就是应用商店，但是目前都是封闭性，有一个应用性你对这个平台的开放无法搬到另外一个平台，你要上另外一个平台，你
得再开发一个平台，百度的框计算是可以，我们使得这个应用更容易的被用户找到，所以是一个开放性的。利用百度巨大的流量我们希望打造出来一个产业链，让更
多的技术的开发者把应用迅速开发到市场。这个框计算推出不到一年的时间，我们做了很多东西，由于说的不多，很多人说当时的东西是不是在忽悠，是不是说完了
就完了，其实不是的，我们给大家举了很多例子，不光是百度朝着框计算发展，很多产业也朝着这个方向发展，IPHONE上面一划就变成了只有搜索框的东西，
开机只剩下一个框的理想已经离我们不远了，它代表一个产业的发展趋势。</p><p>　<strong>　每当要放弃的时候就想起那句话</strong></p><p>　　讲了很多技术性的东西，很多人还是希望听一听创业的东西，为什么没有主讲这个，因为这个东西已经讲了很多了，但是我也知道这个东西大家很关心，
曾经在北大我讲了一个跟创业相关的主题，我们百度在创业当中有七点体会，这篇文章被转载的次数是最多的，在结束的时候我再重复一下，首先大家要知道创业不
是一个很轻松的事情，他其实是一个高风险和高回报的东西，打个比方百慕大三角是一个很神秘和漂亮的东西，但是它是一个魔鬼三角，很容易你就掉下去了，创业
也是这样的，有很高的风险，就好象你要(英文)百慕大三角一样，你得有技术，有运气，还要能够坚持才能走出来，所以就是说如果我们把创业比做走出这个大三
角一样，这个三角一个是团队，一个是融资，一个是商业模式，团队要有足够高的创业激情，因为任何一个创业都会遇到困难，如果你没有激情，坚持不下去，一遇
到难事了你就想我们去干别的吧，这样失败的几率就会很高。</p><p>　　第二个，是我个人的一个风格，少许诺多兑现，这样做有什么好处，这样做是你建立信誉的过程，为什么这个团队他越来越相信你做的事情能够做成，我
的体会就是要靠这个(英文)，我一开始并没有给我们的团队承诺每个人都会在30岁之前有退休的实力，但是最后达到了，那么，当你在跟他们沟通的时候你总是
少许诺多兑现的时候，以后你说什么他们都会很信，跟着你一直干下去，这个是非常重要的。第二个就是有关融资的事，在不需要钱的时候去借钱，这是一种奢侈，
很多人在低谷期的确是没钱，我的过程是这样子，我的过程是一样子，在第一次融资的时候其实我也有一定的资本跟融资者去说，我在现在的公司，我的(英文)已
经值得很多钱，如果我离开这个公司的话，我会放弃价值很多美元的股票信任，我冒这个风险你放心把这个钱借给我，没问题，所以某种意义上讲也是不缺钱的时候
找钱，这也是我的风格，我在第一次融资的时候很容易。</p><p>　　第二次是我融的钱花到一半的时候去融资，我又去融了，当时是互联网泡沫破灭，融资环境非常差，我第二次融资一下子1000万，当时很多人说你不
需要 
1000万，200万就够了，我很坚持，就要1000万，我说不希望天天融资，我有这个钱以后安安心心的创业做自己的事情所以当时很坚持也放弃了不愿意投
很多钱的投资者，后来拿到这个钱的时候未来2001、2002年时候整个IT产业几十年没有遇上的寒冬，但是我们过的非常有底气，放心，其实2008年左
右的金融危机对整个宏观经济有非常大的打击，但是如果只讲互联网产业，2001、2002年所有的互联网公司都有体会，到2008年时候很多中国互联网公
司都已经比较成功了，而01、02年的时候做的很好的公司都倒闭掉了，无论是美国也好，中国也好，所以这是一个融资的状况。</p><p>　　有关商业模式第一条我讲的要往前看，这是指创业的过程，其实像百度到现在这样一个阶段2年都是不够的，我们要往前看5年、10年，你在创业的初
期为什么不能看5、10年，没有看清楚，你做一个新东西，处在一个新领域，你非得说你看5、10年，你看的东西都是错的，但是往前看两年是没问题的，如果
你做一个东西连两年都看不了，这个是不太靠谱的，所以创业初期2年是一个比较合适的时间，如果在一个比较合适的时间能够看到两年之后就能够帮你做一个很好
的决策，如果你不能够及时看到2年之后会发生什么，你很可能不能在当下做出一个正确的决策，2001年百度是做了一个从后台的基础上变成一个前台的面向终
端消费者的决策，这就是最终我往前看了两年，我仍然做一个得罪了所有客户的，第二个说的就是关注，这一点也是百度的一个特点，但是我认为对创业者是非常有
价值的，因为大家都知道越大的公司业务越复杂，同时做的业务越多，小公司的好处在哪，他就可以心无旁贷做一件事情，这一点大公司做不到，都是有很多业务
的，创业者怎么成功，你做的事情是大公司不重视的事情，如果这件事情所有公司都觉得特别好，特别赚钱，那这个事你肯定做不好。太多的人盯着这块蛋糕，而大
公司从资金的实力，产业的实力，技术的实力都比你强，所以这种情况下就是做成的概率不强，作为创业者千万不能贪心，如果创业者也像一个大公司一样同时做很
多事情，失败的概率就会大增。第三不要过早的追求盈利，这个在01、02年的时候很多人不明白这个道理，遇到了几十年不见的IT行业的寒冬，所以拼命的压
缩成本，后来活不下去了，没有办法投入到技术人员的发展，所以遇到了非常大的困难。现在呢，其实这个观点基本上都明白了，现在互联网的创业公司基本上都不
追求盈利，一开始我要用户，先把流量做起来，先让用户接受了我们的东西再说，现在绝大多数创业者都是这种心态，这种心态其实也有一点问题，你可以不过早的
追求盈利，但是你永远不追求盈利是生存不下去了，所以在你创业过程当中你要搞明白你这个公司是挣钱的，是如何挣钱的，否则你就做慈善事业就好了，不要创业
了。第四个是分散客户，这个是早期创业者容易出问题的地方，我们看到有不少的创业公司就吃定一个大客户，比如有一些GE公司找一个银行做系统做集
成，80%的收入都来自一个客户，我跟这个客户关系特别好，这个是不行的，你跟他的关系是一个最大的风险，有一天你跟他的关系不好了，有一天他觉得你的价
格贵了怎么办，他要你降价你敢不降吗？不降80%的收入就没有了，所以客户是足够分散的话你就不怕了，你不怕丢掉这个客户的时候你就可以说你的业务多好，
他也知道你丢了他也不能怎么着，这一点实际上是百度创业过程中我们商业模式转型前后发生了很多的变化，在这之前我们给门户网站提供搜索服务，我丢掉了一个
大客户，总共没有几个，01、02年时候大家过的都不好我丢掉了一个我很痛苦，后来转型了我们前向几十万的企业，丢掉了没有什么，所以风险越来越小。这个
是七条创业过程的体会，这个网上有很多，如果大家想细看到百度去查。所以给大家一句话：认准了，就去做；不跟风，不动摇，你哪天觉得气馁了，要准备放弃了
看一下这这句话，很好。</p><p>　　现在这个时机，我认为还是非常很好的时机，我记得我回来的时候很多人就在问我说你是不是回来了，因为那个时候地位已经缺失了，你再回来还能做什
么，现在经过10年的发展中国互联网已经产生了一大批相当成功了公司，我现在看到了一大批思潮已经没有机会了，甚至有人说互联网是什么人的天下
呢？1964年到1974年出生的人的天下，因为等到他们创业的时候是互联网最好的时机，其实不是，我觉得机会还是很多很多，中国现在虽然已经有4亿的网
民，但是还有9 
亿不是网民，未来无线互联网还有很大的发展空间，即使人们现在已经上网了，还可以上更多的时间，以前一天用一次搜索，现在可以用10次，以前每天上半个小
时，现在可以上5个小时，这个变化可以带来消费习惯的变化，如果过去十几年中国互联网主要是以娱乐为主，未来互联网会在商务方面有很多机会是很多的，加上
国内有很多优惠政策，整个GDP高速成长，我觉得我们仍然处在一个千载难逢的创业时机，所以祝我们各位创业早日实现大家的创业梦想，谢谢！</p><img src ="http://www.cppblog.com/w2001/aggbug/116918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2010-06-01 20:03 <a href="http://www.cppblog.com/w2001/archive/2010/06/01/116918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SMS短信开发技术总结 [ZZ]</title><link>http://www.cppblog.com/w2001/archive/2010/05/08/114880.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Sat, 08 May 2010 13:36:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2010/05/08/114880.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/114880.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2010/05/08/114880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/114880.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/114880.html</trackback:ping><description><![CDATA[
		<b>SMS短信开发技术总结--协议篇　</b>
		<br />
		<br />现在提供短信服务的SP都需要接入到各个移动运营商，虽然作为短信来说是同过SMPP协议和移动的交换中心进行通信。但是为了提供信息服务，对各种业务进行业务管理，以及计费，因此每个移动运营商都开发了相应的网关协议，给SP做开发接口。因此这些网关协议就是做一次转换，把SP发过来的信息转换成 SMPP协议发送给交换中心，并且实现了计费以及业务的管理功能。<br /><br />从现有的四个移动运营商来说，分别有四个不同的短信网关协议。中国移动（CMPP），中国联通（SGIP），中国电信（SMGP），中国网通（CNGP）。前两个运营商主要针对现在手机的用户，后两个运营商是针对小灵通的用户。对于这些不同的协议，由于不同地方的移动运营公司采用不同厂家的产品，因此，在实现的时候都会有一些小差异，这点要比较注意，否则比如中国移动的CMPP网关在华为网关能够跑的系统，不一定可以在亚信网关上直接用的。<br />下面就对现在的每个网关协议进行介绍。<br /><br />首先，要说得是也是大家用得最多的中国移动的网关协议--CMPP，CMPP协议还在用得是有两个版本，一个是CMPP2.0，另外一个是 CMPP3.0。从SP接入到CMPP3.0开始，就是接入了卓望的MISC系统。单从协议上讲CMPP2.0和3.0之间的最大区别是3.0增加了 LinkID。然后在Fee_terminal_type，Dest_terminal_type以及Src_terminal_type增加对用户号码的定义，当这些用户号码类型为0：表示真实号码；为1：表示伪码。从增加的这些信息可以看到，第一，LinkID其实是一个临时的定购关系标识，也就是说对于点播类业务，SP的短信系统收到这个LinkID后，才能建立正常的定购关系，而发送的信息必须携带LinkID才可以成功收费，否则就会监权失败，信息发送不出去。这样就从技术上阻止了SP乱发收费信息；第二，用户号码类型，现在传给SP还是普通的手机号码，那么有了这个标识就是以后有可能发送上来的不是用户的手机号码了，而是一个普通的伪码，那么以后SP就不能获得最终用户的手机号码了。CMPP3.0除了协议方面的改进外，还把定购关系从SP方面剥离。以前CMPP2.0的时代，用户的定购关系由SP自行把握，因此很容易出现SP私自捆绑用户收费的现象，现在中国移动上了MISC1.6后，就把所有定购关系都放在运营商，而通过Provision的方式来和SP进行定购用户的同步，并且订购关系以运营商里面的数据为准，这也是从技术上杜绝了SP 自己管理的定购关系所出现的问题。<br /><br />然后，介绍一下在手机方面的另外一个网关协议，中国联通的SGIP，SGIP和移动的CMPP一样都有两个版本，SGIP1.2, SGIP1.3。新旧版本之间的主要区别也是增加了LinkID项。并且对于各种不同的业务类型，如手机点播，网上点播等都参数都做了重新的调整。中国联通也上了一个类似移动MISC的管理平台，SP的各种业务监权也通过该管理平台审核。<br /><br />最后，要介绍一下的就是小灵通方面的两个协议，一个就是中国电信的SMGP1.3协议，另外就是中国网通的CNGP1.0协议，这两个协议在最近的升级里面都采用了联通的办法，使用MMSP这样一套系统进行监权管理，对于点播业务来说，只有和服务代码相对应的字冠才可以正常收发信息。<br /><br />以上是对现在运营商提供的短信协议进行简单的介绍，详细协议的内容，请到SP论坛关于SMS技术那里都可以找到。<br /><b><br />SMS短信开发技术总结--开发篇　</b><br /><br />在上一篇协议篇里面，相信大家都对现有的移动运营商提供的短信网关协议有一定的了解。OK，那么我继续总结下去，开始和大家探讨一下如何基于这些网关协议开发短信系统，我在这里只是总结开发的思路，并不提供代码，因为具体到代码的实现就是各自的开发功力问题，不在技术总结的范围。不过，欢迎大家到SP论坛或者天堂鸟论坛来一起交流代码的实现。<br /><br />现在当SP向移动运营商申请接入后，移动运营商除了提供他们所采用的短信网关协议文档外，还会提供由短信网关厂家提供的，短信网关通信的开发包，也就是我们所说的API了。对于是否使用这些API就见仁见智了，因此对于单说实现短信网关协议从开发上有两种做法，一种就是完全基于别人提供的API来实现网关协议；另外一种就是自己根据网关协议文档，自行写代码实现。对于第一种方法，就是开发速度快，底层通信以及短信协议的实现都不用自己考虑，缺点就是经常会有一些小问题：比如，厂家提供的API有内存泄漏，又或者这些API提供的时候就缺少一些库文件，又或者在长时间运作后莫名其妙死掉等问题，而且处理这些问题自己都没有办法解决，只有等待厂家提供新版本的API。对于第二种方法就是优点就是自己对协议理解，实现都比较清楚，出了问题好找，对于要求性能高，稳定性好的SP建议采用该办法，而缺点就是开发的时间相对来说会比较长，而且在对于不同厂家提供的网关会有一些小的改动。比如中国移动的CMPP网关，对于由亚信提供的短信网关，则在协议实现的时候，MO和MT要分别建立连接，而对于华为提供的短信网关，则在同一个连接处理MO和MT。<br /><br />协议开发部分说完了，下面说说如何实现一个短信业务系统/平台。从简单的业务实现到复杂的运营商级的短信业务系统，实现上大致可以分为三类。<br /><br />第一类，简单业务型短信系统/平台，由于业务类型的简单或者单一，比如只是做群发，或者只提供某些简单的交互信息服务，实现的办法就是在实现短信协议的同时，把业务逻辑都编写到程序里面去。这样对于只是提供比较单一服务的SP就可以很方便实现自己的短信系统，当然啦，这样的系统对于扩展性来说是很不利的，所以极少采用这种方法进行开发；那么如果能够业务逻辑和短信协议的实现分开就可以更好地实现短信系统了，对于第二类短信系统就是基本解决了这样的问题。<br /><br />第二类，业务开发型的短信系统/平台，能够把业务逻辑和短信协议部分分开实现，采用一个短信服务号码，根据用户发送不同的短信代码来实现不同的业务，这样的系统是现有大部分SP都在使用的。其实现的办法是，对于短信的上行和下行有专门的协议实现程序，而收到以及要发送的信息通过数据库来做接口。对于业务逻辑的实现，就是通过专门编写业务实现模块的程序，或者直接利用数据库的存储过程来实现，业务模块通过查询数据库得到用户发送上来的MO信息，对该信息进行处理后，产生新的MT信息，并且写回数据库中，而短信协议模块则读取MT信息，把信息发送给用户。<br /><br />第三类，运营商级的短信综合业务二次开发平台，对于这一类的短信平台，它把短信协议的实现，数据库的访问，以及各种字符，数字，逻辑等运算都封装起来，用户在设计和实现新的业务流程的时候，只需要把要实现的流程图画好，就可以利用平台提供的二次开发环境，不需要复杂的编程就可以实现新业务，有些二次开发环境还是图形界面非常简单方便，开发者完全可以不需要任何写代码的基础。这一类的平台，还可以同时加载上千个流程，并且可以实时加载和卸载流程而不影响其他流程正常的服务。实现的方法是，整个系统分成三个部分，第一部分是短信协议实现部分，这部分和以上两类没有太大区别只是和业务模块是通过网络通信的方式实现；第二部分是业务逻辑解析模块，所有编写好的业务逻辑都在这个模块上加载，运行。这个模块实现的就是封装各种各样的资源操作，并根据业务逻辑来执行。这里一般对于业务逻辑的实现都是通过状态机的状态跳转方式实现；第三部分就是业务开发模块，也就是我们平常所说的短信流程，把业务逻辑解析的各种资源动作通过一个开发窗口提供给用户使用，并且进行编译，校验用户编写的流程是否正确。<br /><br />以上三类系统/平台的开发，对于第一类就不多说了，我们比较一下第二类和第三类的区别。第三类比第二类的好处在于，业务流程开发方便快捷，不需要专业的开发工程师就可以实现；在实现时候对于Session的控制简单；业务管理方便。而缺点则是前期的投入比较大，对于平台开发搭建的难度比较高。<img src ="http://www.cppblog.com/w2001/aggbug/114880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2010-05-08 21:36 <a href="http://www.cppblog.com/w2001/archive/2010/05/08/114880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为了忘却的ADO.net</title><link>http://www.cppblog.com/w2001/archive/2010/04/15/112628.html</link><dc:creator>w2001</dc:creator><author>w2001</author><pubDate>Thu, 15 Apr 2010 01:45:00 GMT</pubDate><guid>http://www.cppblog.com/w2001/archive/2010/04/15/112628.html</guid><wfw:comment>http://www.cppblog.com/w2001/comments/112628.html</wfw:comment><comments>http://www.cppblog.com/w2001/archive/2010/04/15/112628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/w2001/comments/commentRss/112628.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/w2001/services/trackbacks/112628.html</trackback:ping><description><![CDATA[1.    Data Connction：Open Close<br />2.    DataSet：举例——dset.Tables["Customers"].Row[0].["CustomerID"];<br />       a)    用DataAdapter来Fill DataSet<br />       b)    手工创建DataTable, DataColumn and DataRow<br />3.    Data Adaper，恶心的名字<br />       a)    ADO.net自己管理的SELECT封装工具，介于DataConnection与DataSet之间<br />       b)    It specifies what data to move into and out of the DataSet.<br />       c)    恩...为何需要这个xx？因为如果自己手工创建DataSet的话，简直要人命<br />4.    Datagrid可以用四种数据来源：DataSource，又一个恶心的地方<br />       a)    DataTable class <br />       b)    DataView class <br />       c)    DataSet class <br />       d)    DataViewManager class <br /><img src ="http://www.cppblog.com/w2001/aggbug/112628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/w2001/" target="_blank">w2001</a> 2010-04-15 09:45 <a href="http://www.cppblog.com/w2001/archive/2010/04/15/112628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>