<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>Loveyuki's BLOG - 学习笔记</title><link>http://www.loveyuki.com/Folder/Note/Index.aspx</link><language>zh-CN</language><webMaster>loveyuki@gmail.com</webMaster><pubDate>Sun, 21 Oct 2007 16:07:39 GMT</pubDate><copyright>Copyright 2007. All rights reserved.</copyright><generator>L-BLOG.NET, The Matrix Reloaded.</generator><image><title>Loveyuki's BLOG</title><url>http://www.loveyuki.com/Images/banner.gif</url><link>http://www.loveyuki.com/</link></image><item><link>http://www.loveyuki.com/Article/RegexOptions_Compiled_DotNet.aspx</link><title><![CDATA[.NET 2.0 中慎用 RegexOptions.Compiled]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Thu, 13 Mar 2008 22:59:12 GMT</pubDate><description><![CDATA[Bitrac 一直以来都有一个很头疼的问题，就是执行时间竟然有 300 多毫秒，虽然感官上速度并不是很明显的慢，但是看到 300 毫秒的时间还是让我这个开发者头疼，以前写 L-BLOG 执行时间也才是 100 毫秒左右而已，.NET 不会比 ASP 速度更慢的，因为以前写 Geekera 的时候执行时间只有 30 毫秒而已。用 JetBrains dotTrace 跟踪了一下程序的执行发现 URLRewrite 和 模板引擎的正则速度超级慢，一直以来也没想出哪里出了问题。今天试着把正则的 RegexOptions.Compiled 选项去掉以后，发现正则的速度提高了好多好多，上 MSDN 看了]]></description><content:encoded><![CDATA[<p>Bitrac 一直以来都有一个很头疼的问题，就是执行时间竟然有 300 多毫秒，虽然感官上速度并不是很明显的慢，但是看到 300 毫秒的时间还是让我这个开发者头疼，以前写 L-BLOG 执行时间也才是 100 毫秒左右而已，.NET 不会比 ASP 速度更慢的，因为以前写 Geekera 的时候执行时间只有 30 毫秒而已。用 JetBrains dotTrace 跟踪了一下程序的执行发现 URLRewrite 和 模板引擎的正则速度超级慢，一直以来也没想出哪里出了问题。今天试着把正则的 RegexOptions.Compiled 选项去掉以后，发现正则的速度提高了好多好多，上 MSDN 看了下 RegexOptions.Compiled 的选项意思，写的也很明白：<b>指定将正则表达式编译为程序集。这会产生更快的执行速度，但会增加启动时间。</b>但是具体啥意思还真没弄明白，后来用 Google 搜索了一下，看到一篇文章：<a href="http://blog.livid.cn/zackzhu/200711/thinking/17_395.html" target="_blank">http://blog.livid.cn/zackzhu/200711/thinking/17_395.html</a> 终于弄明白了这个选项的具体意思。</p><p>Bitrac 现在最头疼的问题已经解决了，心情那个舒服啊。另外还有一个小问题就是有时候第一次启动会报错误，看错误日志是个数据库文件 IO 方面的错误，估计跟数据库文件的锁定有关系，有机会查查资料，看到底是什么问题。这个问题出现后，一般刷新一下就可以了……真奇怪。</p><p>如果你遇到同样的问题，希望这篇文章能带给你些许帮助，如果你有更好的方法或者解释，希望留言告诉我。</p>]]></content:encoded><guid>http://www.loveyuki.com/Article/RegexOptions_Compiled_DotNet.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/RegexOptions_Compiled_DotNet/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/RegexOptions_Compiled_DotNet.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/RegexOptions_Compiled_DotNet/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/UBB_Editor_VS_HTML_Editor.aspx</link><title><![CDATA[UBB 编辑器和 HTML 可视化编辑器的利弊]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Fri, 22 Feb 2008 18:00:01 GMT</pubDate><description><![CDATA[两年前，基本所有的论坛和博客程序都是使用 UBB 编辑器的，但是 UBB 编辑器的缺点很明显，无法马上看到自己写的日志的样子，要调整起来也不是那么容易，而且各种程序的 UBB 解析器不同所实现的功能也不全一样。不过 UBB 的好处也很明显，程序对内容的控制力十分强大，开发起来也很容易。鉴于 UBB 的缺点很明显，所以近两年都在努力发展 HTML 可视化编辑器(也叫所见即所得编辑器)，可视化编辑器的缺点和优点也同样明显，HTML 可视化编辑器的优点就如他的名字一样，所见即所得，可视化，使用者可以在编辑内容的同时就看到内容所呈现的样式，不过 HTML 可视化编辑器的缺点也非常明显，程序对内容的控制]]></description><content:encoded><![CDATA[<p>两年前，基本所有的论坛和博客程序都是使用 UBB 编辑器的，但是&nbsp;UBB 编辑器的缺点很明显，无法马上看到自己写的日志的样子，要调整起来也不是那么容易，而且各种程序的 UBB 解析器不同所实现的功能也不全一样。不过 UBB 的好处也很明显，程序对内容的控制力十分强大，开发起来也很容易。</p><p>鉴于 UBB 的缺点很明显，所以近两年都在努力发展 HTML 可视化编辑器(也叫所见即所得编辑器)，可视化编辑器的缺点和优点也同样明显，HTML 可视化编辑器的优点就如他的名字一样，所见即所得，可视化，使用者可以在编辑内容的同时就看到内容所呈现的样式，不过 HTML 可视化编辑器的缺点也非常明显，程序对内容的控制力远不如 UBB 编辑器。由于 XSS 攻击以及 HTML 标签必须闭合的特性，如果要使用 HTML 可视化编辑器必须要有一个强大的后台过滤功能，否则 HTML 编辑器带来的只能是噩梦，而不是便利。</p><p>特希望 Internet Explorer，Mozilla Firefox，Apple Safari 还有 Opera 等浏览器可以内置一个可视化编辑器。FCKeditor 就不错，兼容性很强，不过体积嘛就有点巨大了。</p><p>前几天小写了一个可视化编辑器，就是现在的评论编辑器，感觉 Internet Explorer 的优势还是很明显的，光光标定位和分段问题 Firefox 就让人很头疼。</p>]]></content:encoded><guid>http://www.loveyuki.com/Article/UBB_Editor_VS_HTML_Editor.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/UBB_Editor_VS_HTML_Editor/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/UBB_Editor_VS_HTML_Editor.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/UBB_Editor_VS_HTML_Editor/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/Custom_Firefox_Disk_CacheDir.aspx</link><title><![CDATA[[收集]自定义 Firefox 的磁盘缓存目录]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Fri, 18 Jan 2008 15:46:44 GMT</pubDate><description><![CDATA[在 Firefox 地址栏输入 about:cache 以后可以看到 Firefox 的默认磁盘缓存目录是在 Windows 用户配置文件夹里面，我们可以通过很简单的设置把磁盘缓存目录放入其他目录：地址栏输入 about:config右键新建一个字符串，名为 browser.cache.disk.parent_directory 然后输入新的临时文件的路径即可。比如  D:\Temporary Internet Files检查 browser.cache.disk.enable，这个必须要设定为 true地址栏输入 about:cache，可以看到缓存目录已经改变了。个人还是建议使用 Port]]></description><content:encoded><![CDATA[<p>在 Firefox 地址栏输入 about:cache 以后可以看到 Firefox 的默认磁盘缓存目录是在 Windows 用户配置文件夹里面，我们可以通过很简单的设置把磁盘缓存目录放入其他目录：</p><ol><li>地址栏输入 about:config</li><li>右键新建一个字符串，名为 browser.cache.disk.parent_directory <br /> 然后输入新的临时文件的路径即可。比如&nbsp; D:\Temporary Internet Files</li><li>检查 browser.cache.disk.enable，这个必须要设定为 true</li><li>地址栏输入 about:cache，可以看到缓存目录已经改变了。</li></ol><p>个人还是建议使用 Portable Firefox。<img class="Smile" src="http://www.loveyuki.com/Images/Smiles/glade.gif" /></p>]]></content:encoded><guid>http://www.loveyuki.com/Article/Custom_Firefox_Disk_CacheDir.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/Custom_Firefox_Disk_CacheDir/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/Custom_Firefox_Disk_CacheDir.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/Custom_Firefox_Disk_CacheDir/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/SATA_Remove_Hardware.aspx</link><title><![CDATA[[转载]去除SATA硬盘的删除可移动硬件标志方法]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Fri, 18 Jan 2008 11:18:33 GMT</pubDate><description><![CDATA[如果您的电脑使用的是 nForce 芯片组的主板和串口硬盘。在系统中安装好所有的硬件驱动程序后，发现在任务栏右下角始终会显示一个“安全删除硬件”的图标。这是 nForce 芯片组在安装了 IDE-SW 主板驱动以后，系统会把 SATA 硬盘识别为可移动设备，每次开机后都会显示“安全删除硬件”图标。点开始--&amp;gt;运行--&amp;gt; regedit找到键值 (电脑应该只有下面的其中一个） HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata或HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Se]]></description><content:encoded><![CDATA[<p>如果您的电脑使用的是 nForce 芯片组的主板和串口硬盘。在系统中安装好所有的硬件驱动程序后，发现在任务栏右下角始终会显示一个“安全删除硬件”的图标。这是 nForce 芯片组在安装了 IDE-SW 主板驱动以后，系统会把 SATA 硬盘识别为可移动设备，每次开机后都会显示“安全删除硬件”图标。<br /><img height="63" width="442" class="PictureSize" src="http://www.loveyuki.com/Attach/month_0801/dsg7mw_SATAUPNP.gif" /></p><ol><li>点开始--&gt;运行--&gt; regedit</li><li>找到键值 (电脑应该只有下面的其中一个） <br /><strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata</strong><br />或<br /><strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvatabus</strong></li><li>新增一个 DWORD 值，名称取名叫 DisableRemovable，值设为1</li><li>重启以后 SATA 硬碟就不会变成可以移除设备了。</li></ol><p>使用后没有后遗症，打印机、鼠标、U盘、移动硬盘等都可正常使用。</p>]]></content:encoded><guid>http://www.loveyuki.com/Article/SATA_Remove_Hardware.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/SATA_Remove_Hardware/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/SATA_Remove_Hardware.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/SATA_Remove_Hardware/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_Mono.aspx</link><title><![CDATA[在 Arch Linux 下配置 ASP.NET 运行环境]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Sun, 13 Jan 2008 13:33:12 GMT</pubDate><description><![CDATA[昨天我们成功配置了 Lighttpd + FastCGI + PHP，今天我们需要让 Lighttpd 支持 ASP.NET，Linux 下要部署一个 ASP.NET 服务器，Mono 这个 .NET 在 Linux 下的实现是必不可少的。我们首先直接用 Pacman 安装 Mono，至于 Mono 的 FastCGI 支持需要从 SVN 下载回来编译安装，所以我们同时也安装一些必需的工具。pacman -S mono svn automake autoconf libtool然后我们随便建立一个目录，进入后运行 svn co http://mono-soc-2007.googlecode.c]]></description><content:encoded><![CDATA[<p>昨天我们<a href="http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_PHP.aspx" target="_blank" target="_blank" target="_blank">成功配置</a>了 Lighttpd + FastCGI + PHP，今天我们需要让 Lighttpd 支持 ASP.NET，Linux 下要部署一个 ASP.NET 服务器，Mono 这个 .NET 在 Linux 下的实现是必不可少的。我们首先直接用 Pacman 安装 Mono，至于 Mono 的 FastCGI 支持需要从 SVN 下载回来编译安装，所以我们同时也安装一些必需的工具。<code>pacman -S mono svn automake autoconf libtool</code>然后我们随便建立一个目录，进入后运行 <code>svn co http://mono-soc-2007.googlecode.com/svn/trunk/brian/FastCgi/ fastcgi-mono-server</code>源代码下载回来后进入 fastcgi-mono-server 目录打开 configure 文件，<span>把第2387行注释掉</span>，然后运行<code>./autogen.sh --prefix=/usr &amp;&amp; make &amp;&amp; make install</code>到这里，Mono 的 FastCGI 功能已经安装完成，剩下的就是继续配置 Lighttpd 了，打开 /etc/lighttpd/lighttpd.conf 文件，把昨天修改过的地方稍微修改一下就可以了<code>fastcgi.server = (<br />&nbsp;&nbsp;&nbsp; &quot;.php&quot; =&gt; (&quot;localhost&quot; =&gt; (&quot;socket&quot; =&gt; &quot;/tmp/php-fastcgi.socket&quot;,&quot;bin-path&quot; =&gt; &quot;/usr/bin/php-cgi&quot;)),<br />&nbsp;&nbsp;&nbsp; &quot;.aspx&quot; =&gt; (&quot;localhost&quot; =&gt; (&quot;socket&quot; =&gt; &quot;/tmp/fastcgi-mono-server&quot;, &quot;bin-path&quot; =&gt; &quot;/usr/bin/fastcgi-mono-server2&quot;, &quot;bin-environment&quot; =&gt; (&quot;MONO_SHARED_DIR&quot; =&gt; &quot;/tmp/&quot;)))<br />)<br />fastcgi.map-extensions = (&quot;.asmx&quot; =&gt; &quot;.aspx&quot;, &quot;.ashx&quot; =&gt; &quot;.aspx&quot;, &quot;.asax&quot; =&gt; &quot;.aspx&quot;, &quot;.ascx&quot; =&gt; &quot;.aspx&quot;, &quot;.soap&quot; =&gt; &quot;.aspx&quot;, &quot;.rem&quot; =&gt; &quot;.aspx&quot;, &quot;.axd&quot; =&gt; &quot;.aspx&quot;, &quot;.cs&quot; =&gt; &quot;.aspx&quot;, &quot;.config&quot; =&gt; &quot;.aspx&quot;, &quot;.dll&quot; =&gt; &quot;.aspx&quot;)</code></p><p>配置好以后到 <a href="http://code.google.com/p/aspnetsysinfo/" target="_blank" target="_blank" target="_blank">http://code.google.com/p/aspnetsysinfo/</a> 下载探针测试一下吧，呵呵。</p>]]></content:encoded><guid>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_Mono.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_Mono/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_Mono.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_Mono/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_PHP.aspx</link><title><![CDATA[在 Arch Linux 下配置 Lighttpd + FastCGI + PHP]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Sat, 12 Jan 2008 23:35:15 GMT</pubDate><description><![CDATA[Archlinux 前两天已经完全配置好了。这两天准备把开发环境配置一下，我是搞 WEB 开发的，所以 WEB 服务器是必须配置的。以前 Linux 下最流行的 WEB 服务器是 Apache，但是现在时代已经有所变化，Lighttpd 已经体现出了一种很强的增长趋势了。下面我就把 Arch Linux 下面配置 Lighttpd + FastCGI + PHP 的方法写下来，虽然 Arch Linux 的官方 Wiki 上也有配置方法，但是官方的配置方法比较笼统而且是英文，对于很多不熟悉的朋友理解起来有些困难，所以我就参考 Arch Linux 官方的 Wiki 文章把具体的步骤写下来，更高]]></description><content:encoded><![CDATA[<p>Archlinux 前两天已经完全配置好了。这两天准备把开发环境配置一下，我是搞 WEB 开发的，所以 WEB 服务器是必须配置的。以前 Linux 下最流行的 WEB 服务器是 Apache，但是现在时代已经有所变化，Lighttpd 已经体现出了一种很强的增长趋势了。<br /><br />下面我就把 Arch Linux 下面配置 Lighttpd + FastCGI + PHP 的方法写下来，虽然 Arch Linux 的官方 Wiki 上也有<a target="_blank" href="http://wiki.archlinux.org/index.php/Fastcgi_and_lighttpd" target="_blank">配置方法</a>，但是官方的配置方法比较笼统而且是英文，对于很多不熟悉的朋友理解起来有些困难，所以我就参考 Arch Linux 官方的 Wiki 文章把具体的步骤写下来，更高级的 Lighttpd 和 PHP 配置大家可以参考他们各自的官方网站进行配置，我就不一一说明了，这个文章只是个敲门砖，免得很多朋友第一次配置不好而降低了学习 Linux 的积极性，呵呵。</p><p>这几天我会把 ASP.NET 也部署到 Linux 下面，到时候给大家继续写一个入门参考。</p><p>安装方法很简单，直接用 pacman -S lighttpd fcgi php 就可以安装好 Lighttpd + FastCGI + PHP 了，主要是配置方法有些麻烦，下面我就一一说明配置方法。</p><ol><li>首先更改 /etc/lighttpd/lighttpd.conf 文件。<br />更改服务器主目录，安装 Lighttpd 的时候会创建这个目录的<code>server.document-root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &quot;/home/lighttpd/html/&quot;</code>让 Lighttpd 加载这三个模块。默认有很多模块，找到这三个确认前面没有 # 注释就可以<code>server.modules&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ( &quot;mod_access&quot;, &quot;mod_fastcgi&quot;, &quot;mod_accesslog&quot; )</code>然后配置 PHP 的 FastCGI 运行环境。<code>fastcgi.server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ( &quot;.php&quot; =&gt; ( &quot;localhost&quot; =&gt; ( &quot;socket&quot; =&gt; &quot;/tmp/php-fastcgi.socket&quot;, &quot;bin-path&quot; =&gt; &quot;/usr/bin/php-cgi&quot; )))</code></li><li>然后修改 /etc/php.ini 文件，找到：<br />cgi.fix_pathinfo=1 ，把前面的注释 ; 去掉就可以了</li></ol><p>配置也很简单吧，呵呵，配置完以后在 /home/lighttpd/html/&nbsp; 目录下创建一个 index.php 文件<code>&lt;?php phpinfo(); ?&gt;</code></p><p>然后运行 Lighttpd 服务器：<code>/etc/rc.d/lighttpd start</code></p><p>在浏览器里面输入 http://localhost 就可以了。<img class="Smile" src="http://www.loveyuki.com/Images/Smiles/glade.gif" /></p>]]></content:encoded><guid>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_PHP.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_PHP/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_PHP.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/Archlinux_Lighttpd_FastCGI_PHP/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/Archlinux_VMware_Mouse_Work.aspx</link><title><![CDATA[Xorg 最新版在 VMware 中鼠标无法使用的解决办法]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Thu, 10 Jan 2008 10:19:59 GMT</pubDate><description><![CDATA[最近想在 VMware 下重新安装一个 ArchLinux 体验一次，还是按照老办法安装，装好 Core，配置好网络，安装 Xorg，Xfce4 ，然后安装 VMware-Tools，安装过程一切顺利，但是 startx 进入 xfce4 以后就出现问题了。鼠标跟本就看不到，但是点击鼠标右键后可以看到桌面菜单出现在屏幕右下角。估计是 Xorg 的鼠标驱动 xf86-input-vmmouse 有问题，到 ArchLinux 官方论坛一搜索，果然有人跟我出现一样的问题，里面提到了旧版本的 xorg-server 和 xf86-input-vmmouse 是没有问题的。看来就是新版本的问题了，我的]]></description><content:encoded><![CDATA[<p>最近想在 VMware 下重新安装一个 <a target="_blank" href="http://www.archlinux.org/" target="_blank">ArchLinux</a> 体验一次，还是按照老办法安装，装好 Core，配置好网络，安装 Xorg，Xfce4 ，然后<a target="_blank" href="http://wiki.archlinux.org/index.php/Installing_archlinux_in_VMWare" target="_blank">安装 VMware-Tools</a>，安装过程一切顺利，但是 startx 进入 xfce4 以后就出现问题了。鼠标跟本就看不到，但是点击鼠标右键后可以看到桌面菜单出现在屏幕右下角。估计是 Xorg 的鼠标驱动 xf86-input-vmmouse 有问题，到 ArchLinux 官方论坛一搜索，果然<a target="_blank" href="http://bbs.archlinux.org/viewtopic.php?id=39582" target="_blank">有人跟我出现一样的问题</a>，里面提到了旧版本的 xorg-server 和 xf86-input-vmmouse 是没有问题的。</p><p>看来就是新版本的问题了，我的 ArchLinux 是 FTP 安装的，没法降级到低版本，没办法只好继续到 Google 搜索之，呵呵，终于找到了<a target="_blank" href="https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-vmmouse/+bug/180968" target="_blank">解决办法</a>，果然就是 xf86-input-vmmouse 的问题。解决办法也很简单，就是替换一下 xf86-input-vmmouse 的主要驱动文件 <strong><font color="#993300">/usr/lib/xorg/modules/input/vmmouse_drv.so</font></strong> 就可以了。<a target="_blank" href="http://www.loveyuki.com/Attach/month_0801/3btd64_vmmouse_drv.cab" target="_blank">点击下载打过补丁的 vmmouse_drv.so</a>，下载回去后把 cab 后缀改成 so 后缀直接替换上面的文件就可以了。</p><p>Linux 不管什么发行版本，内核都是一样的，就是设置和补丁有些小区别而已，桌面环境也就那几个，万变不离其宗。所以解决 Linux 里面问题的时候不要光瞄准发行版进行搜索，应该从更底层的包入手，如果我光瞄准 ArchLinux 进行搜索的话…… 估计也很难搜索到这个问题的解决办法……</p><p>以后我有空会写一些 ArchLinux 相关的文章上来跟大家交流的，喜欢这个发行版的朋友如果有什么问题可以跟我交流啊。呵呵，我的信箱：<a target="_blank" href="mailto:loveyuki@gmail.com" target="_blank">loveyuki@gmail.com</a></p>]]></content:encoded><guid>http://www.loveyuki.com/Article/Archlinux_VMware_Mouse_Work.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/Archlinux_VMware_Mouse_Work/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/Archlinux_VMware_Mouse_Work.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/Archlinux_VMware_Mouse_Work/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/C_Sharp_Format_OS_Uptime.aspx</link><title><![CDATA[C# 获取并格式化系统启动后的时间]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Mon, 07 Jan 2008 20:58:02 GMT</pubDate><description><![CDATA[在 .NET 中如果引用了 System 命名空间那么我们就可以直接使用 Environment.TickCount 获得计算机启动后的毫秒数，但是如果直接把这个毫秒数输出给用户，用户很难直观的计算出到底启动了多少时间，所以我们一般都是格式化成一个可以直观看出结果的字符串以后再输出给用户，当然如果你有更好的方法欢迎给我留言。代码片段如下：Int32 tickSecond = Environment.TickCount / 60000;Int32 tickDay = tickSecond / 60 / 24;Int32 tickHour = (tickSecond / 60) % 24;Int3]]></description><content:encoded><![CDATA[<p>在 .NET 中如果引用了 System 命名空间那么我们就可以直接使用 Environment.TickCount 获得计算机启动后的毫秒数，但是如果直接把这个毫秒数输出给用户，用户很难直观的计算出到底启动了多少时间，所以我们一般都是格式化成一个可以直观看出结果的字符串以后再输出给用户，当然如果你有更好的方法欢迎给我留言。代码片段如下：</p><p><code>Int32 tickSecond = Environment.TickCount / 60000;<br />Int32 tickDay = tickSecond / 60 / 24;<br />Int32 tickHour = (tickSecond / 60) % 24;<br />Int32 tickMinute = tickSecond % 60;<br />String runTime = String.Format(&quot;{0}&nbsp;天 {1}&nbsp;小时 {2} 分&quot;, tickDay, tickHour, tickMinute);</code></p><p>另外提供一个小技巧就是 ASP.NET 2.0 中数据库配置文件可以使用 |DataDirectory| 来表示 App_Data 目录。</p>]]></content:encoded><guid>http://www.loveyuki.com/Article/C_Sharp_Format_OS_Uptime.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/C_Sharp_Format_OS_Uptime/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/C_Sharp_Format_OS_Uptime.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/C_Sharp_Format_OS_Uptime/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/C_Sharp_Format_File_Size.aspx</link><title><![CDATA[C# 中快速格式化文件大小显示]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Sat, 05 Jan 2008 16:05:27 GMT</pubDate><description><![CDATA[分享一个格式化文件大小的 C# 方法：public static String FormatFileSize(Int64 fileSize){  if (fileSize &amp;lt; 0)  {  throw new ArgumentOutOfRangeException(&amp;quot;fileSize&amp;quot;);  }  else if (fileSize &amp;gt;= 1024 * 1024 * 1024)  {  return string.Format(&amp;quot;{0:########0.00} GB&amp;quot;, ((Double)fileSize) / (1024 * 1024 *]]></description><content:encoded><![CDATA[<p>分享一个格式化文件大小的 C# 方法：</p><code>public static String FormatFileSize(Int64 fileSize)<br />{<br />&nbsp;&nbsp;&nbsp; if (fileSize &lt; 0)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new ArgumentOutOfRangeException(&quot;fileSize&quot;);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; else if (fileSize &gt;= 1024 * 1024 * 1024)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return string.Format(&quot;{0:########0.00} GB&quot;, ((Double)fileSize) / (1024 * 1024 * 1024));<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; else if (fileSize &gt;= 1024 * 1024)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return string.Format(&quot;{0:####0.00} MB&quot;, ((Double)fileSize) / (1024 * 1024));<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; else if (fileSize &gt;= 1024)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return string.Format(&quot;{0:####0.00} KB&quot;, ((Double)fileSize) / 1024);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return string.Format(&quot;{0} bytes&quot;, fileSize);<br />&nbsp;&nbsp;&nbsp; }<br />}</code>]]></content:encoded><guid>http://www.loveyuki.com/Article/C_Sharp_Format_File_Size.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/C_Sharp_Format_File_Size/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/C_Sharp_Format_File_Size.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/C_Sharp_Format_File_Size/Feeds.ashx</wfw:commentRss></item><item><link>http://www.loveyuki.com/Article/Translated_SQLite_Datetime_Function.aspx</link><title><![CDATA[原创翻译，SQLite 的日期时间函数]]></title><author>loveyuki@gmail.com</author><category>学习笔记</category><pubDate>Wed, 28 Nov 2007 10:13:39 GMT</pubDate><description><![CDATA[这篇文章是根据 SQLite 官方 WIKI 里的内容翻译，如果有什么翻译不当的地方希望大家指出，毕竟我的英文水平实在很差。 SQLite 包括以下五个时间函数：date(日期时间字符串, 修正符, 修正符, ……)time(日期时间字符串, 修正符, 修正符, ……)datetime(日期时间字符串, 修正符, 修正符, ……)julianday(日期时间字符串, 修正符, 修正符, ……)strftime(日期时间格式, 日期时间字符串, 修正符, 修正符, ……)上述五个函数需要一个日期时间字符串做参数，后面可以跟零到多个修正符参数。而 strftime() 函数还需要一个日期时间格式字]]></description><content:encoded><![CDATA[<p>这篇文章是根据 <a href="http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions" target="_blank">SQLite 官方 WIKI&nbsp;里的内容</a>翻译，如果有什么翻译不当的地方希望大家指出，毕竟我的英文水平实在很差。&nbsp;SQLite 包括以下五个时间函数：</p><ol><li>date(日期时间字符串, 修正符, 修正符, ……)</li><li>time(日期时间字符串, 修正符, 修正符, ……)</li><li>datetime(日期时间字符串, 修正符, 修正符, ……)</li><li>julianday(日期时间字符串, 修正符, 修正符, ……)</li><li>strftime(日期时间格式, 日期时间字符串, 修正符, 修正符, ……)</li></ol><p>上述五个函数需要一个日期时间字符串做参数，后面可以跟零到多个修正符参数。而 strftime() 函数还需要一个日期时间格式字符串做第一个参数。</p><ol><li>date() 函数返回一个以 “YYYY-MM-DD” 为格式的日期；</li><li>time() 函数返回一个以 “YYYY-MM-DD HH:MM:SS” 为格式的日期时间；</li><li>julianday() 函数返回一个天数，从格林威治时间公元前4714年11月24号开始算起；</li><li>strftime() 函数返回一个经过格式话的日期时间，它可以用下面的符号对日期和时间进行格式化：<br>%d&nbsp; 一月中的第几天 01-31<br>%f&nbsp; 小数形式的秒，SS.SSSS<br>%H&nbsp; 小时 00-24<br>%j&nbsp; 一年中的第几天 01-366<br>%J&nbsp; Julian Day Numbers<br>%m&nbsp; 月份 01-12<br>%M&nbsp; 分钟 00-59<br>%s&nbsp; 从 1970-01-01日开始计算的秒数<br>%S&nbsp; 秒 00-59<br>%w&nbsp; 星期，0-6，0是星期天<br>%W&nbsp; 一年中的第几周 00-53<br>%Y&nbsp; 年份 0000-9999<br>%%&nbsp; % 百分号</li></ol><p>其他四个函数都可以用 strftime() 函数来表示：</p><ol><li>date(…)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; strftime(“%Y-%m-%d”,…)</li><li>time(…)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; strftime(“%H:%M:%S”,…)</li><li>datetime(…)&nbsp;&nbsp;&nbsp; &nbsp;-&gt;&nbsp;&nbsp; strftime(“%Y-%m-%d %H:%M:%S”,…)</li><li>julianday(…)&nbsp;&nbsp; &nbsp;-&gt;&nbsp;&nbsp; strftime(“%J”,…)</li></ol><p><strong>日期时间字符串</strong></p><p>可以用以下几种格式：</p><ol><li>YYYY-MM-DD</li><li>YYYY-MM-DD HH:MM</li><li>YYYY-MM-DD HH:MM:SS</li><li>YYYY-MM-DD HH:MM:SS.SSS</li><li>YYYY-MM-DDTHH:MM</li><li>YYYY-MM-DDTHH:MM:SS</li><li>YYYY-MM-DDTHH:MM:SS.SSS</li><li>HH:MM</li><li>HH:MM:SS</li><li>HH:MM:SS.SSS</li><li>now</li><li>DDDD.DDDD</li></ol><p>在第五种到第七种格式中的“T”是一个分割日期和时间的字符；第八种到第十种格式只代表2000-01-01日的时间，第十一种格式的’now’表示返回一个当前的日期和时间，使用格林威治时间(UTC）；第十二种格式表示一个 Julian Day Numbers。</p><p><strong>修正符</strong></p><p>日期和时间可以使用下面的修正符来更改日期或时间：</p><ol><li>NNN days</li><li>NNN hours</li><li>NNN minutes</li><li>NNN.NNNN seconds</li><li>NNN months</li><li>NNN years</li><li>start of month</li><li>start of year</li><li>start of week</li><li>start of day</li><li>weekday N</li><li>unixepoch</li><li>localtime</li><li>utc</li></ol><p>前六个修正符就是简单的增加指定数值的时间和日期；第七到第十个修正符表示返回当前日期的开始；第十一个修正符表示返回下一个星期是N的日期和时间；第十二个修正符表示返回从1970-01-01开始算起的秒数；第十三个修正符表示返回本地时间。</p><p><strong>下面举一些例子：</strong></p><ol><li>计算机当前时间<br>SELECT date(‘now’)</li><li>计算机当前月份的最后一天<br>SELECT date(‘now’,’start of month’,’+1 month’,’-1 day’)</li><li>计算UNIX 时间戳1092941466表示的日期和时间<br>SELECT datetime(‘1092941466’,’unixepoch’)</li><li>计算 UNIX 时间戳1092941466 表示的本地日期和时间<br>SELECT datetime(‘1092941466’,’unixepoch’,’localtime’)</li><li>计算机当前UNIX 时间戳<br>SELECT strftime(‘%s’,’now’)</li><li>两个日期之间相差多少天<br>SELECT jolianday(‘now’)-jolianday(‘1981-12-23’)</li><li>两个日期时间之间相差多少秒<br>SELECT julianday('now')*86400 - julianday('2004-01-01 02:34:56')*86400</li><li>计算今年十月份第一个星期二的日期<br>SELECT date('now','start of year','+9 months','weekday 2');</li></ol>]]></content:encoded><guid>http://www.loveyuki.com/Article/Translated_SQLite_Datetime_Function.aspx</guid><trackback:ping>http://www.loveyuki.com/Article/Translated_SQLite_Datetime_Function/Track.aspx</trackback:ping><comments>http://www.loveyuki.com/Article/Translated_SQLite_Datetime_Function.aspx#CommentPostAnchor</comments><wfw:commentRss>http://www.loveyuki.com/Article/Translated_SQLite_Datetime_Function/Feeds.ashx</wfw:commentRss></item></channel></rss>