<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_胖子的小屋</title><subtitle type="text">注：技术类文章，如无特殊说明，均为原创，转载请注明出处，谢谢！</subtitle><id>http://feed.cnblogs.com/blog/u/9823/rss</id><updated>2010-05-14T02:03:17Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/9823/rss"/><entry><id>http://www.cnblogs.com/freemantc/archive/2010/03/20/1690502.html</id><title type="text">Philips K700 使用感受</title><summary type="text">老的多普达575（水货）终于快不行了，也用了好几年了。新入手Philips K700手机一部，参数啊图片啊评测啊等等这类东西很容易搜索到相关资料，就不再重复了，仅说一个我这将近1个月的使用感受。  &amp;#160;  优点  1、外观很漂亮，看起来更像是一个MP4  2、硬解码rmvb格式的视频，这点太爽了，下载的美剧不用转换直接就可以播放，而且非常的流畅。  3、普通使用（短信、电话，每天2次手机报...</summary><published>2010-03-20T08:22:00Z</published><updated>2010-03-20T08:22:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2010/03/20/1690502.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2010/03/20/1690502.html"/><content type="html">&lt;p&gt;老的多普达575（水货）终于快不行了，也用了好几年了。新入手Philips K700手机一部，参数啊图片啊评测啊等等这类东西很容易搜索到相关资料，就不再重复了，仅说一个我这将近1个月的使用感受。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1、外观很漂亮，看起来更像是一个MP4&lt;/p&gt;  &lt;p&gt;2、硬解码rmvb格式的视频，这点太爽了，下载的美剧不用转换直接就可以播放，而且非常的流畅。&lt;/p&gt;  &lt;p&gt;3、普通使用（短信、电话，每天2次手机报，路上听个收音机，时不时的看一集生活大爆炸）情况下，充电一次，可以使用一个多星期是没有问题的。&lt;/p&gt;  &lt;p&gt;4、从桌子上掉到地上过2次，目前没有发现异常。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;不足&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1、非智能机，软件扩展起来不方便。由于是全触摸屏，不少kjava的软件是用不了的，如果是玩机的，这一点绝对是个致命伤。但对于普通使用者，关系不大，自带的来电防火墙、号码归属地、QQ，UC浏览器，Opera mini，2款重力感应游戏，基本已经满足了，唯一少的一项就是词典了。&lt;/p&gt;  &lt;p&gt;2、全触摸屏文字输入速度比较慢，而且很难一只手写短信，T9的输入法相对来说字、词库不够大，连“囧”都没有，这个有点儿不爽。&lt;/p&gt;  &lt;p&gt;3、重力感应应用的地方不够多。除了机器翻身静音、文本输入时横过来可以变成虚拟全键盘，查看图片时可以横竖切换之外，别的貌似没啥应用了。&lt;/p&gt;  &lt;p&gt;4、主题太少，只有2个，而且不能自己编辑，不能自定义桌面等等。&lt;/p&gt;  &lt;p&gt;5、开关机键不容易按到，如果你想一只手锁键盘（短按开关机键）的话，不是那么容易的。&lt;/p&gt;  &lt;p&gt;6、价格再便宜点就更好了，我是1600买的。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;有同事觉得挺好，但也有同事鄙视，见仁见智吧。如果作为玩机用户，肯定是不推荐买的，再加点儿钱可以买个相当不错的水货智能机，普通使用或是想加点儿影音功能的话，还是不错的。毕竟外观还是挺漂亮的，而且撞机的概率是非常非常非常低的。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/freemantc/aggbug/1690502.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freemantc/archive/2010/03/20/1690502.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2010/02/24/1672616.html</id><title type="text">XML、二进制、SOAP的序列化</title><summary type="text">目的 将对象序列化之后，可以以文件的形式保存下来。  区别 XML 二进制 SOAP 序列化类 XmlSerializer BinaryFormatter SoapFormatter SerializableAttribute 标记 不需要 需要 需要 ISerializable 接口 不需要 需要 需要 无参构造函数 必须有 不需要 不需要 被序列化的数据成员属性 public all all ...</summary><published>2010-02-24T05:45:00Z</published><updated>2010-02-24T05:45:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2010/02/24/1672616.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2010/02/24/1672616.html"/><content type="html">&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;table border="1" cellspacing="0" cellpadding="2" width="600"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width="187" align="middle"&gt;&amp;nbsp;&lt;/td&gt; &lt;td width="155" align="middle"&gt;XML&lt;/td&gt; &lt;td width="142" align="middle"&gt;二进制&lt;/td&gt; &lt;td width="116" align="middle"&gt;SOAP&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt; 序列化类&lt;/td&gt; &lt;td valign="top" width="155" align="middle"&gt;XmlSerializer&lt;/td&gt; &lt;td valign="top" width="142" align="middle"&gt;BinaryFormatter&lt;/td&gt; &lt;td valign="top" width="116" align="middle"&gt;SoapFormatter&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt; SerializableAttribute 标记&lt;/td&gt; &lt;td valign="top" width="155" align="middle"&gt;不需要&lt;/td&gt; &lt;td valign="top" width="142" align="middle"&gt;需要&lt;/td&gt; &lt;td valign="top" width="116" align="middle"&gt;需要&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt; ISerializable 接口&lt;/td&gt; &lt;td valign="top" width="155" align="middle"&gt;不需要&lt;/td&gt; &lt;td valign="top" width="142" align="middle"&gt;需要&lt;/td&gt; &lt;td valign="top" width="116" align="middle"&gt;需要&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt; 无参构造函数&lt;/td&gt; &lt;td valign="top" width="155" align="middle"&gt;必须有&lt;/td&gt; &lt;td valign="top" width="142" align="middle"&gt;不需要&lt;/td&gt; &lt;td valign="top" width="116" align="middle"&gt;不需要&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt; 被序列化的数据成员属性&lt;/td&gt; &lt;td valign="top" width="155" align="middle"&gt;public&lt;/td&gt; &lt;td valign="top" width="142" align="middle"&gt;all&lt;/td&gt; &lt;td valign="top" width="116" align="middle"&gt;all&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="187"&gt; 序列化后的大小&lt;/td&gt; &lt;td valign="top" width="155" align="middle"&gt;中&lt;/td&gt; &lt;td valign="top" width="142" align="middle"&gt;小&lt;/td&gt; &lt;td valign="top" width="116" align="middle"&gt;大&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;实现&lt;/strong&gt;&lt;/p&gt;&lt;pre &gt;using System;&#xD;
using System.Collections.Generic;&#xD;
using System.IO;&#xD;
using System.Runtime.Serialization.Formatters.Binary;&#xD;
using System.Runtime.Serialization.Formatters.Soap;&#xD;
using System.Xml.Serialization;&#xD;
&#xD;
namespace ConsoleApplication1&#xD;
{&#xD;
    class Program&#xD;
    {&#xD;
        static void Main( string[] args )&#xD;
        {&#xD;
            SerializeByXml();&#xD;
            SerializeByBinary();&#xD;
            SerializeBySoap();&#xD;
        }&#xD;
&#xD;
        static void SerializeByXml()&#xD;
        {&#xD;
            string filePath = @"b:\XmlSerializer.dat";&#xD;
&#xD;
            if( !File.Exists( filePath ) )&#xD;
            {&#xD;
                List&amp;lt;Product&amp;gt; list1 = new List&amp;lt;Product&amp;gt;();&#xD;
                for( int i = 1; i &amp;lt;= 10; i++ )&#xD;
                    list1.Add( new Product { ProductID = i, ProductName = "产品名称_xml_" + i } );&#xD;
&#xD;
                XmlSerializer xsSerialize = new XmlSerializer(typeof (List&amp;lt;Product&amp;gt;));&#xD;
                using( Stream fsWrite = new FileStream( filePath, FileMode.Create, FileAccess.Write, FileShare.None ) )&#xD;
                {&#xD;
                    xsSerialize.Serialize( fsWrite, list1 );&#xD;
                    fsWrite.Close();&#xD;
                }&#xD;
            }&#xD;
&#xD;
            List&amp;lt;Product&amp;gt; list2;&#xD;
            XmlSerializer xsDeserialize = new XmlSerializer( typeof( List&amp;lt;Product&amp;gt; ) );&#xD;
            using( Stream fsRead = new FileStream( filePath, FileMode.Open, FileAccess.Read, FileShare.None ) )&#xD;
            {&#xD;
                list2 = (List&amp;lt;Product&amp;gt;)xsDeserialize.Deserialize( fsRead );&#xD;
                fsRead.Close();&#xD;
            }&#xD;
            foreach( Product p in list2 )&#xD;
            {&#xD;
                Console.WriteLine( p );&#xD;
            }&#xD;
        }&#xD;
&#xD;
        static void SerializeByBinary()&#xD;
        {&#xD;
            string filePath = @"b:\BinarySerializer.dat";&#xD;
&#xD;
            if( !File.Exists( filePath ) )&#xD;
            {&#xD;
                List&amp;lt;Product&amp;gt; list1 = new List&amp;lt;Product&amp;gt;();&#xD;
                for( int i = 1; i &amp;lt;= 10; i++ )&#xD;
                    list1.Add( new Product { ProductID = i, ProductName = "产品名称_binary_" + i } );&#xD;
&#xD;
                BinaryFormatter xsSerialize = new BinaryFormatter();&#xD;
                using( Stream fsWrite = new FileStream( filePath, FileMode.Create, FileAccess.Write, FileShare.None ) )&#xD;
                {&#xD;
                    xsSerialize.Serialize( fsWrite, list1 );&#xD;
                    fsWrite.Close();&#xD;
                }&#xD;
            }&#xD;
&#xD;
            List&amp;lt;Product&amp;gt; list2;&#xD;
            BinaryFormatter xsDeserialize = new BinaryFormatter();&#xD;
            using( Stream fsRead = new FileStream( filePath, FileMode.Open, FileAccess.Read, FileShare.None ) )&#xD;
            {&#xD;
                list2 = (List&amp;lt;Product&amp;gt;)xsDeserialize.Deserialize( fsRead );&#xD;
                fsRead.Close();&#xD;
            }&#xD;
            foreach( Product p in list2 )&#xD;
            {&#xD;
                Console.WriteLine( p );&#xD;
            }&#xD;
        }&#xD;
&#xD;
        static void SerializeBySoap()&#xD;
        {&#xD;
            string filePath = @"b:\SoapSerializer.dat";&#xD;
&#xD;
            if( !File.Exists( filePath ) )&#xD;
            {&#xD;
                List&amp;lt;Product&amp;gt; list1 = new List&amp;lt;Product&amp;gt;();&#xD;
                for( int i = 1; i &amp;lt;= 10; i++ )&#xD;
                    list1.Add( new Product { ProductID = i, ProductName = "产品名称_soap_" + i } );&#xD;
&#xD;
                SoapFormatter xsSerialize = new SoapFormatter();&#xD;
                using( Stream fsWrite = new FileStream( filePath, FileMode.Create, FileAccess.Write, FileShare.None ) )&#xD;
                {&#xD;
                    xsSerialize.Serialize( fsWrite, list1.ToArray() );&#xD;
                    fsWrite.Close();&#xD;
                }&#xD;
            }&#xD;
&#xD;
            List&amp;lt;Product&amp;gt; list2;&#xD;
            SoapFormatter xsDeserialize = new SoapFormatter();&#xD;
            using( Stream fsRead = new FileStream( filePath, FileMode.Open, FileAccess.Read, FileShare.None ) )&#xD;
            {&#xD;
                list2 = new List&amp;lt;Product&amp;gt;( (Product[])xsDeserialize.Deserialize( fsRead ) );&#xD;
                fsRead.Close();&#xD;
            }&#xD;
            foreach( Product p in list2 )&#xD;
            {&#xD;
                Console.WriteLine( p );&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
&#xD;
    [Serializable]&#xD;
    public class Product&#xD;
    {&#xD;
        public int ProductID { get; set; }&#xD;
        public string ProductName { get; set; }&#xD;
&#xD;
        public override string ToString()&#xD;
        {&#xD;
            return string.Format("ProductID:{0}\t\tProductName:{1}", ProductID, ProductName);&#xD;
        }&#xD;
    }&#xD;
}&#xD;
&lt;/pre&gt;&lt;pre &gt;注意点&lt;/pre&gt;&lt;pre &gt;SOAP不能直接序列化List&amp;lt;T&amp;gt;这种类型的集合，但可以序列化数组[]，所以序列化List&amp;lt;T&amp;gt;.ToArray()对象；&lt;/pre&gt;&lt;pre &gt;反序列化时，先强制转换为数组，然后再用数组构造List&amp;lt;T&amp;gt;&lt;/pre&gt;&lt;pre &gt;&lt;/pre&gt;&lt;img src="http://www.cnblogs.com/freemantc/aggbug/1672616.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freemantc/archive/2010/02/24/1672616.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2010/01/20/1652321.html</id><title type="text">清除UTF-8文件的BOM头</title><summary type="text">场景：  和某公司合作，给其提供xml文件。对方回邮件说：“你的文件是不是用写字板之类的编辑工具打开过？以二进制查看的时候文件头部有EF BB BF这3个字节……能否去掉？”  查阅了一些资料，发现这是windows系统自动添加的东西，而且调用.Net类库直接生成文件的方法，只要用utf-8编码，都会有这个东西。太无奈了，只好自己动手去掉这些了。  &amp;#160;  实现：  /// &amp;lt;sum...</summary><published>2010-01-20T05:42:00Z</published><updated>2010-01-20T05:42:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2010/01/20/1652321.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2010/01/20/1652321.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2009/11/05/1596630.html</id><title type="text">powershell 相关</title><summary type="text">Get-ExecutionPolicy 查看ps的当前策略 默认的Restricted策略不能运行脚本，可以改为RemoteSigned策略 powershell脚本的默认扩展名为：ps1 执行ps1脚本的时候，形如： PS&amp;gt; . ‘c:\test.ps1’ 也可以用命令行来直接调用，形如： C:\powershell . ‘c:\test.ps1’  PowerShell 执行策略包括：R...</summary><published>2009-11-05T06:26:00Z</published><updated>2009-11-05T06:26:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2009/11/05/1596630.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2009/11/05/1596630.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2008/11/03/1325384.html</id><title type="text">FireFox在windows2003的操作系统支持Windows Media Player插件</title><summary type="text">windows XP 和 vista 操作系统，要想让FireFox支持wmp是很容易的，安装下面的插件就可以了。 http://port25.technet.com/videos/downloads/wmpfirefoxplugin.exe但windows2003就不行了，安装时报告插件不支持该版本的操作系统，上网google了一番，发现如下方法可以解决：把下面3个dll文件：npdsplay....</summary><published>2008-11-03T05:17:00Z</published><updated>2008-11-03T05:17:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2008/11/03/1325384.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2008/11/03/1325384.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2007/08/07/845785.html</id><title type="text">关于javascript编码url的中文参数</title><summary type="text">做中文站点，在url中使用中文参数太正常了，比如：http://website/list.aspCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;?keyword=关键字在理想状态下，是不需要做任何的处理，list.aspx页面可以接收到“关键字”这个中...</summary><published>2007-08-07T02:19:00Z</published><updated>2007-08-07T02:19:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2007/08/07/845785.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2007/08/07/845785.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2007/06/02/768435.html</id><title type="text">[转]IIS 6.0中配置HTTP Gzip压缩</title><summary type="text">一. HTTP压缩概述HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。压缩的最大好处就是降低了网络传输的数据量，从而提高客户端浏览器的访问速度。当然，同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP压缩算法。本文介绍的HTTP压缩方式，采用的是Windows系统设置的方式，优点是...</summary><published>2007-06-02T01:44:00Z</published><updated>2007-06-02T01:44:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2007/06/02/768435.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2007/06/02/768435.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2007/05/30/764907.html</id><title type="text">数码相机在windows2003下的问题</title><summary type="text">服务名称：stisvc&#xD;显示名称：Windows Image Acquisition (WIA)&#xD;描述：    为扫描仪和照相机提供图像捕获服务。&#xD;windows2003 默认是禁用的，xp默认是自动启动的。&#xD;&#xD;启动该服务就ok了！</summary><published>2007-05-30T04:31:00Z</published><updated>2007-05-30T04:31:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2007/05/30/764907.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2007/05/30/764907.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2006/09/24/513600.html</id><title type="text">MyGeneration连接MySql数据库的解决办法</title><summary type="text">1、去MySql官方网站，下载连接.net的驱动，mysql-connector-net-1.0.7，装好后把MySql.Data.dll和ICSharpCode.SharpZipLib.dll两个文件copy到MyGeneration的安装目录&#xD;&#xD;2、运行MyGeneration，在Default Settings页面做如下设置：&#xD;Connection String中，Driver选：MySQL2&#xD;连接字符串这样写：server=localhost;user id=root;password=123;database=test;charset=gbk;pooling=false&#xD;其中charset和pooling两项为可选项&#xD;写好后点那个“测试连接”的按钮，ok，成功！&#xD;&#xD;3、Language Mapping和Database Target Mapping</summary><published>2006-09-24T14:53:00Z</published><updated>2006-09-24T14:53:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2006/09/24/513600.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2006/09/24/513600.html"/></entry><entry><id>http://www.cnblogs.com/freemantc/archive/2006/07/05/443008.html</id><title type="text">一个简单的操作活动目录的类（ADHelper）</title><summary type="text">工作关系，用了vb.net语法。代码中注释写的比较详细，直接贴代码上去了。注意：别忘了添加System.DirectoryServices.dll的引用'-----------------------------------------------------------------------------'说明：操作AD用到了两种协议，WinNT和LDAP''WinNT——可以以较高的权限进行操...</summary><published>2006-07-05T01:21:00Z</published><updated>2006-07-05T01:21:00Z</updated><author><name>胖子</name><uri>http://www.cnblogs.com/freemantc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freemantc/archive/2006/07/05/443008.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freemantc/archive/2006/07/05/443008.html"/></entry></feed>
