<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[followshake的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/followshake</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; followshake]]></copyright><item><title><![CDATA[宏定义中的可变参数问题]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7680369</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7680369</guid><author>followshake</author><pubDate>Wed, 20 Jun 2012 16:59:15 +0800</pubDate><description><![CDATA[早期的c语言版本：
#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)


但是这样定义有个问题，就是在没有输入参数时无法再调用该宏：
debug("test");


可以通过如下方式修订：
#define debug(format, ...) fprintf (stderr, format, ##_]]></description><category></category></item><item><title><![CDATA[IcePatch2的使用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7559951</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7559951</guid><author>followshake</author><pubDate>Sat, 12 May 2012 11:33:16 +0800</pubDate><description><![CDATA[1、IcePatch2是一个用来同步文件系统的ICE工具集，可以用来进行应用程序发布包的升级发布。
   A、构建应用程序发布目录
   B、将应用程序发布包，非zip格式安装到发布目录
   C、执行icepatch2calc来计算安装目录下的校验和
   D、执行icepatch2server来运行patch服务器
   E、在待同步的目标服务器上运行patch2的客户端程序(可以是]]></description><category></category></item><item><title><![CDATA[ICESSL使用备忘]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7548065</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7548065</guid><author>followshake</author><pubDate>Tue, 08 May 2012 22:48:50 +0800</pubDate><description><![CDATA[1、任何ICE的程序如果试图使用SSL的安全连接，那么对应的应用必须加载SSL插件
2、配置程序在启动过程中加载SSL插件：
   Ice.Plugin.IceSSL=IceSSL:createIceSSL
   IceSSL.DefaultDir=/opt/certs
   IceSSL.CertFile=pubkey.pem
   IceSSL.KeyFile=privkey.pem]]></description><category></category></item><item><title><![CDATA[ICE的Glacier2使用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7525020</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7525020</guid><author>followshake</author><pubDate>Tue, 01 May 2012 00:06:12 +0800</pubDate><description><![CDATA[1、使用Glacier2的步骤：
   A、编写一个Glacier2的配置文件，参见样例
   B、设置Glacier2的访问鉴权（密码或者证书），passwords文件每行样例"test xxMqsnnDcK8tw" 可以通过openssl的passwd命令创建密码
   C、定制Glacier2的session管理对象   
   D、启动Glacier2，glacier2router]]></description><category></category></item><item><title><![CDATA[关于mysql的udf插件问题]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7523408</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7523408</guid><author>followshake</author><pubDate>Mon, 30 Apr 2012 02:41:34 +0800</pubDate><description><![CDATA[今天调试应用程序，在程序中使用了mysql的udf函数插件和触发器来自动更新memcache的内存记录
由于测试需要，想要更新udf动态库，同时使用新的动态库名称。原以为将原有的动态库插件删除，将新的动态库插件拷贝到mysql的插件目录即可。
结果测试不行，发现找不到udf函数。
在数据库中mysql.func表中存在函数相关信息。试图修改成新的动态库名称，修改完后仍旧不行，还是找不到udf]]></description><category></category></item><item><title><![CDATA[windows ICE 调试问题总结]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7516253</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7516253</guid><author>followshake</author><pubDate>Thu, 26 Apr 2012 23:10:40 +0800</pubDate><description><![CDATA[问题一、程序中如果加载了SSL插件，则导致communicator.initalize中报告异常：unable to load entry point `IceSSL:createIceSSL'
                后经定位发现，由于系统中存在两个libeay32.dll库，由于非ICE目录下的libeay32.dll库不兼容ICE的ssl库，导致异常产生，]]></description><category></category></item><item><title><![CDATA[IceSSL使用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7508076</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7508076</guid><author>followshake</author><pubDate>Thu, 26 Apr 2012 09:12:12 +0800</pubDate><description><![CDATA[==========【IceSSL使用的证书生成方法.txt】======================
------------使用iceca脚本生成CA----------
在执行脚本前先设置环境变量
export ICE_CA_HOME=/home/mayjie/certs   #指向证书存放目录
export PYTHONUNBUFFERED=1                #]]></description><category></category></item><item><title><![CDATA[vmware安装vmware tools]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7447578</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7447578</guid><author>followshake</author><pubDate>Tue, 10 Apr 2012 22:53:13 +0800</pubDate><description><![CDATA[下面是安装步骤:

1.启动Rad Hat(图形界面方式登陆)，并且以管理员的身份登陆。
2.在VMware虚拟机的菜单中点击：虚拟机->安装VMware 工具->install。
3.Red Hat 自动挂载VMware Tools的虚拟光驱,并显示在桌面。
4.进去VMware Tools的虚拟光驱里，把VMwareTools-*.tar.gz复制到/tmp目录。
5.进去/tmp]]></description><category></category></item><item><title><![CDATA[解析虚拟VMware三种网络模式根本区别]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7447311</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7447311</guid><author>followshake</author><pubDate>Tue, 10 Apr 2012 21:56:35 +0800</pubDate><description><![CDATA[提到VMware大家就想起了虚拟机技术，虚拟机技术在最近的几年中得到了广泛的发展，一些大型网络服务商都开始采用虚拟机技术，不仅节省了投资成本，更节约了能源的消耗。

　　我们知道VMware也分几种版本，普通用户最常用的就是Workstation，但是不管使用哪种版本，我们都能发现在安装过程中让我们选择网络模式。在默认情况下会选中桥接模式，但有用户会问其他模式是干什么用的?有时候选择了其他模式]]></description><category></category></item><item><title><![CDATA[ICE的消息编码规则]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7438173</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7438173</guid><author>followshake</author><pubDate>Sun, 08 Apr 2012 17:20:04 +0800</pubDate><description><![CDATA[1、代表size的长度字段：
   值小于255用1个字节标示，如果大于255则使用5个字节，第一个字节为255，后续的4个字节标示真实长度
2、基本数据类型按照小端序进行实际长度编码
3、字符串被编码成size加utf-8的实际内容，注意不包含结束字符  
4、sequence被编码成size加实际元素编码
5、枚举值被按照元素个数来进行字节编码，枚举的第一个元素取值被编码成0]]></description><category></category></item><item><title><![CDATA[ICE的连接机制]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7437497</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7437497</guid><author>followshake</author><pubDate>Sun, 08 Apr 2012 12:42:49 +0800</pubDate><description><![CDATA[1、当使用ICE的proxy进行方法调用时，ICE运行环境会建立一个到服务器的连接。当proxy提供了多个endpoint时
   默认的ICE运行环境选择endpoint的行为为random，可以通过ice_endpointSelection设置选择endpoint的方式为order
   也可以通过设置属性：Ice.Default.EndpointSelection、name.Endpoi]]></description><category></category></item><item><title><![CDATA[字符编码介绍]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7424605</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7424605</guid><author>followshake</author><pubDate>Tue, 03 Apr 2012 23:00:23 +0800</pubDate><description><![CDATA[1、ASCII码
   美国人发明的字符编码方式，用一个字节即8个bit来编码字符，共可以编码256个字符，但是它的最高位一直是0，仅仅编码了128个符号
这些符号包含基本可见字符和32个不可见的控制符号


2、UniCode
   unicode是一种全世界符号的编码集合，它将全世界语言范围内的所有字符符号都进行了一个唯一二进制表示方式。这些二进制的表示方式
可能需要1个字节、2]]></description><category></category></item><item><title><![CDATA[ICE的异步动态调用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7422571</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7422571</guid><author>followshake</author><pubDate>Mon, 02 Apr 2012 22:10:58 +0800</pubDate><description><![CDATA[1、ICE除了提供同步的动态调用，还提供了异步的动态调用：
   Ice::AsyncResultPtr begin_ice_invoke(const std::string& operation, Ice::OperationMode mode,
                                        const std::pair& inParams,]]></description><category></category></item><item><title><![CDATA[ICE的同步动态调用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7422567</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7422567</guid><author>followshake</author><pubDate>Mon, 02 Apr 2012 22:10:36 +0800</pubDate><description><![CDATA[1、ICE环境下基于slice上的proxy方法调用是传统的静态RPC调用方式，ICE提供了另外一种动态的调用方式，可以不依赖于
   具体的slice接口定义，具体接口如下：
   bool ice_invoke(const std::string& operation, Ice::OperationMode mode, const std::vector& inParams,]]></description><category></category></item><item><title><![CDATA[ICE的输入流和输出流]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7420663</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7420663</guid><author>followshake</author><pubDate>Sun, 01 Apr 2012 22:40:34 +0800</pubDate><description><![CDATA[1、ICE提供流式接口InputStream来进行对象的解码操作，通过如下方法构造一个输入流对象：
   InputStreamPtr createInputStream(const Ice::CommunicatorPtr& communicator, const std::vector& data);
2、在输入流对象InputStream上提供了多个重载的read方法，用来从输入流中提取]]></description><category></category></item><item><title><![CDATA[ice的facet使用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7420661</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7420661</guid><author>followshake</author><pubDate>Sun, 01 Apr 2012 22:39:56 +0800</pubDate><description><![CDATA[1、一个ICE对象在服务器端可以有多个表现方式，这种表现方式可称为facet，每个facet其实是servant对象
   的一组功能集合的名称，在服务器端，操作对象的facet有如下API：
   local interface ObjectAdapter 
   {
       Object* addFacet(Object servant, Identity id, string]]></description><category></category></item><item><title><![CDATA[ICE的插件使用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7413435</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7413435</guid><author>followshake</author><pubDate>Fri, 30 Mar 2012 22:55:21 +0800</pubDate><description><![CDATA[1、实现插件接口
   local interface Plugin 
   {
       void initialize();
       void destroy();
   };
   
   extern "C"
   {
       ICE_DECLSPEC_EXPORT Ice::Plugin*
       functionName(const Ice::]]></description><category></category></item><item><title><![CDATA[ICE的日志和统计接口]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7413255</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7413255</guid><author>followshake</author><pubDate>Fri, 30 Mar 2012 22:12:06 +0800</pubDate><description><![CDATA[1、获取日志对象：
   virtual LoggerPtr getLogger() const;
2、日志对象提供的方法：
   local interface Logger
   {
        void print(string message);
        void trace(string category, string message);
        vo]]></description><category></category></item><item><title><![CDATA[ICE的proxy使用]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7405098</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7405098</guid><author>followshake</author><pubDate>Wed, 28 Mar 2012 22:46:32 +0800</pubDate><description><![CDATA[1、在ICE的客户端获取代理的方式如下：
   A、Ice::ObjectPrx p = communicator->stirngToProxy("MyProxy:tcp -h 10.0.0.1 -p 12345");
   B、Ice::ObjectPrx p = communicator->propertyToProxy("MyProxy"); 
      在配置文件中配置MyProx]]></description><category></category></item><item><title><![CDATA[ICE运行环境备忘三]]></title><link>https://blog.youkuaiyun.com/followshake/article/details/7405091</link><guid>https://blog.youkuaiyun.com/followshake/article/details/7405091</guid><author>followshake</author><pubDate>Wed, 28 Mar 2012 22:45:34 +0800</pubDate><description><![CDATA[1、ICE是一个多线程的运行环境，每个communicator通信器中都有一个Leader-Follower的线程池负责处理客户端的服务请求，
   ICE的线程池有一系列的属性用以来控制线程池的运行，主要包含如下内容：
   ThreadPoolName.Size          = 3              # 线程池初始线程个数3个，注意默认大小1个
   ThreadPoolN]]></description><category></category></item></channel></rss>