<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>　膘叔　　簡單人生</title>
		<link>http://www.neatstudio.com/</link>
		<description>幻想指点江山，梦中激扬文字（&lt;a href=&quot;http://www.cnitblog.com/neatstudio/&quot;&gt;飞天小肥猪的简单人生&lt;/a&gt;）</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Thu, 04 Dec 2008 11:40:44 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://www.neatstudio.com/show-377-1.shtml</guid>
			<title>使用PHP得到所有的HTTP请求头</title>
			<author>gouki</author>
			<description><![CDATA[<p>PHP中一般采用getallheaders来获取头部，但事实上，有些模式下是获取不到的（以前真没有注意过在fastcgi下这个函数不能用，当然我现在也没有测试。是老王说的）</p>
<p>他说：</p>
<p>在PHP里，想要得到所有的HTTP请求头，可以使用<a href="http://www.php.net/manual/en/function.getallheaders.php" target="_blank">getallheaders</a>方法，不过此方法并不是在任何环境下都存在，比如说，你使用fastcgi方式运行PHP的话，就没有这个方法，所以说我们还需要考虑别的方法，幸运的是$_SERVER里有我们想要的东西，它里面键名以HTTP_开头的就是HTTP请求头：<br />
<br />
<font face="宋体"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">$headers </span><span style="color: rgb(0, 119, 0);">= array(); <br />
foreach (</span><span style="color: rgb(0, 0, 187);">$_SERVER </span><span style="color: rgb(0, 119, 0);">as </span><span style="color: rgb(0, 0, 187);">$key </span><span style="color: rgb(0, 119, 0);">=&gt; </span><span style="color: rgb(0, 0, 187);">$value</span><span style="color: rgb(0, 119, 0);">) { <br />
&nbsp;&nbsp;&nbsp;   if (</span><span style="color: rgb(221, 0, 0);">'HTTP_' </span><span style="color: rgb(0, 119, 0);">== </span><span style="color: rgb(0, 0, 187);">substr</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$key</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(0, 0, 187);">0</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(0, 0, 187);">5</span><span style="color: rgb(0, 119, 0);">)) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    </span><span style="color: rgb(0, 0, 187);">$headers</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(0, 0, 187);">str_replace</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'_'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(221, 0, 0);">'-'</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(0, 0, 187);">substr</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$key</span><span style="color: rgb(0, 119, 0);">, </span><span style="color: rgb(0, 0, 187);">5</span><span style="color: rgb(0, 119, 0);">))] = </span><span style="color: rgb(0, 0, 187);">$value</span><span style="color: rgb(0, 119, 0);">; <br />
&nbsp;&nbsp;&nbsp;    } <br />
}</span></span></code></font><br />
<br />
代码很简单，需要说明的是RFC里明确指出了信息头的名字是不区分大小写的。<br />
<br />
不过并不是所有的HTTP请求头都是以HTTP_开头的的键的形式存在与$_SERVER里，比如说Authorization，Content-Length，Content-Type就不是这样，所以说为了取得所有的HTTP请求头，还需要加上下面这段代码：<br />
<br />
<font face="宋体"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 119, 0);">if (isset(</span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'PHP_AUTH_DIGEST'</span><span style="color: rgb(0, 119, 0);">])) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 187);">$header</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'AUTHORIZATION'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'PHP_AUTH_DIGEST'</span><span style="color: rgb(0, 119, 0);">]); <br />
} elseif (isset(</span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'PHP_AUTH_USER'</span><span style="color: rgb(0, 119, 0);">]) &amp;&amp; isset(</span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'PHP_AUTH_PW'</span><span style="color: rgb(0, 119, 0);">])) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 187);">$header</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'AUTHORIZATION'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(0, 0, 187);">base64_encode</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'PHP_AUTH_USER'</span><span style="color: rgb(0, 119, 0);">] . </span><span style="color: rgb(221, 0, 0);">':' </span><span style="color: rgb(0, 119, 0);">. </span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'PHP_AUTH_PW'</span><span style="color: rgb(0, 119, 0);">])); <br />
} <br />
if (isset(</span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'CONTENT_LENGTH'</span><span style="color: rgb(0, 119, 0);">])) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 187);">$header</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'CONTENT-LENGTH'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'CONTENT_LENGTH'</span><span style="color: rgb(0, 119, 0);">]; <br />
} <br />
if (isset(</span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'CONTENT_TYPE'</span><span style="color: rgb(0, 119, 0);">])) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 187);">$header</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'CONTENT-TYPE'</span><span style="color: rgb(0, 119, 0);">] = </span><span style="color: rgb(0, 0, 187);">$_SERVER</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'CONTENT_TYPE'</span><span style="color: rgb(0, 119, 0);">]; <br />
}</span></span></code></font><br />
<br />
搞定！</p>
<p>网址为：http://hi.baidu.com/thinkinginlamp/blog/item/c0bff01f3beb66f2e1fe0b7e.html</p>]]></description>
			<link>http://www.neatstudio.com/show-377-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2008-12-03 23:54</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-376-1.shtml</guid>
			<title>短信价格下来了</title>
			<author>gouki</author>
			<description><![CDATA[<p>12月3日消息，据中国新闻网报道，工业和信息化部通知，长期被消费者和业界诟病的短信网间差别定价将被取消，在2009 年1月15日前基于就低不就高原则实行内外网间统一定价。届时起，移动、联通和电信三大运营商的6亿多手机用户间互发国内短信将享有统一的0.1元/条的 价格。</p>
<blockquote> </blockquote>
<p>据工信部10月份通信统计月报数据显示，截至10月31日，中国手机用户总数为6.27亿户。目前，除了小灵通外，我国手机用户在同一家运营商的网 络内互发国内短信，费用是0.1元/条，而在不同运营商的网络间发送国内短信时，一般费用为 0.15元/条(移动神州行用户为：网内0.15元/条，网外0.2元/条)，实行的是&ldquo;异网异价&rdquo;政策。</p>
<hr width="100%" size="2" />
<p>不过我还是觉得挺为电信惋惜的，刚刚把CDMA搞过来。就给他定下来价格一致了。连价格优势都被扼杀了。真可怜</p>]]></description>
			<link>http://www.neatstudio.com/show-376-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-12-03 23:52</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-373-1.shtml</guid>
			<title>Jadu: 将 PHP 编译成 .NET</title>
			<author>gouki</author>
			<description><![CDATA[<p>新闻来源:itnews.com.au<br />
内容管理公司 <a href="http://www.jadu.co.uk/site/index.php">Jadu</a> 最近发布了一个工具，可以让 PHP  和 .NET 这对冤家和平共处。他们开发了一个叫做 <a href="http://php-compiler.net/doku.php?id=core%3Astart">Phalanger  PHP compiler</a>&nbsp;的工具，可以将 PHP 程序编译成本地 .NET 程序执行。他们还准备将这一工具开源。</p>
<div style="text-align: center;"><img height="455" width="480" alt="" src="http://img.cnbeta.com/newsimg/081201/1126320594029169.png" /></div>
<p><br />
据 Jadu CEO Suraj Kika 介绍，这个工具对 PHP 程序进行编译，编译成 .NET 框架下下的本地程序。比如，你想用 WordPress，但你属于微软阵营，你可以将 WordPress 编译成可执行文件，放到 .NET 中并在 Visual Studio 中针对这个编译过的 WordPress 做进一步开发。<br />
<br />
这个工具将为 PHP 和 .NET 开发工程师带来职业上的便利，避免在各自对方的技术领域内再培训。Kika 表示，我们会看到大量 PHP 开发者在微软阵营找到客户群。<br />
<br />
Kika 还表示，开源和商业软件之间向来泾渭分明，这一工具将让这两个阵营的开发者走到一起。<br />
<br />
本文来源：<a href="http://www.itnews.com.au/News/90129,jadu-brings-php-and-net-closer-together.aspx">http://www.itnews.com.au/News/90129,jadu-brings-php-and-net-closer-together.aspx</a><br />
中文翻译：<a href="http://www.comsharp.com/">COMSHARP CMS</a><br />
膘叔：好妖的功能呀，一直以为PHP要想在windows下独立运行，得使用php GTK的，结果现在居然有人编译成.net，真是心有多大，世界有多大呀</p>]]></description>
			<link>http://www.neatstudio.com/show-373-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2008-12-02 10:22</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-375-1.shtml</guid>
			<title>简述虚拟机下三种网络连接方式</title>
			<author>gouki</author>
			<description><![CDATA[<p>虚拟机常用的几种网络连接方式分别为Bridge模式、NAT模式、Host-Only模式 <br />
<br />
Bridge模式（桥模式） <br />
这种模式是在新建虚拟机的时候默认选择的，是将虚拟主机的虚拟网卡桥接到一个Host主机的物理网卡上面，实际上是将Host主机的物理网卡设置为混杂模 式，从而达到侦听多个IP的能力。在这种模式下，虚拟主机的虚拟网卡直接与Host主机的物理网卡所在的网络相连，可以理解为虚拟机和Host主机处于对 等的地位，在网络关系上是平等的，没有谁主谁次、谁前谁后之分。 <br />
<br />
NAT模式 <br />
这种模式下Host主机的&ldquo;网络连接&rdquo;中会出现了一个虚拟的网卡VMnet8（默认情况下）。如果你做过2000/2003的NAT服务器的实验就会理 解：Host主机上的VMnet8虚拟网卡就相当于连接到内网的网卡，Host主机上的物理网卡就相当于连接到外网的网卡，而虚拟机本身则相当于运行在内 网上的计算机，虚拟机内的虚拟网卡则独立于Virtual Ethernet Switch（VMnet8）。在这种方式下，VMware自带的DHCP服务会默认地加载到Virtual Ethernet Switch（VMnet8）上，这样虚拟机就可以使用DHCP服务。更为重要的是，VMware自带了NAT服务，提供了从Host主机的VMnet8 虚拟网卡到外网的地址转换。所以这种情况是一个实实在在的NAT服务器在运行，只不过是供虚拟机用的NAT罢了。 <br />
<br />
Host-Only模式 <br />
这种模式是一种封闭的方式，适合在一个独立的环境中进行各种网络实验。这种方式下Host主机的&ldquo;网络连接&rdquo;中出现了一个虚拟的网卡VMnet1（默认情 况下）。和NAT唯一的不同的是：此种方式下，没有地址转换服务。因此这种情况下，虚拟机只能访问到主机，这也是Host-Only的名字的意义。默认情 况下该模式也会有一个DHCP服务加载到Virtual Ethernet Switch（VMnet1）上。这样连接到Virtual Ethernet Switch（VMnet1）上的虚拟机仍然可以设置成DHCP，主要是方便系统的配置。</p>]]></description>
			<link>http://www.neatstudio.com/show-375-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2008-12-02 09:58</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-374-1.shtml</guid>
			<title>如何优化VMware Server虚拟机系统[值得收藏]</title>
			<author>gouki</author>
			<description><![CDATA[<p>原文来自：http://server.zdnet.com.cn/server/2008/0910/1117939.shtml</p>
<p><span style="background-color: rgb(153, 204, 0);">我也是在操作vmware server版的时候才找到的此文章，它给我带来了很多思路，比如把网卡改为其他型号的。原来这都是我没有想过的。</span></p>
<p>　　在现实情况中，许多商业程序只能分别在Windows或Linux下运行。那么，如何在同一台主机上运行Windows和Linux两种系统， 以支持尽可能多的应用软件，就成了一个重要的课题。VMware Server虚拟机模拟软件的出现为解决这一问题提供了不错的方法，它可以同时运行Linux和Windows等其它操作系统，且每个操作系统在各自独立 的窗口里运行。</p>
<p>　　不过，尽管可以在Windows主机下运行VMware Server，但不推荐这么做&mdash;&mdash;Windows的蓝屏死机会让Windows主机和Linux虚拟机系统同时挂掉，所以我们选择在Linux下运行虚拟 软件。这种模拟能帮助Windows用户容易地过渡到Linux，它让用户在使用新的Linux应用程序时就像在使用熟悉的Windows应用一样，且用 户不需要关心它是运行在Linux下还是Windows下。</p>
<p>　　当前，VMware主要有三个版本：VMware Server、VMware Workstation和VMware ACE。VMware Server是免费的，它给Linux提供了多操作系统功能。VMware Workstation和VMware ACE为程序开发人员提供额外功能，例如给一台虚拟机分配多个CPU，给虚拟机设置安全策略。</p>
<p>　　主流x86多系统的选择</p>
<p>　　虽然在Linux下运行Windows或其它操作系统应用有几种方法，但我觉得VMware Server是最符合我的要求的。当然，所有的模拟软件都会降低性能，并且消耗更多的内存。所以，我的测试系统配备的是Athlon3500+的 CPU，1GB DDR2的内存&mdash;&mdash;VMware在Duron 1800、512M DRAM和3GB的虚拟内存(交换文件)下也能运行得不错;但如果同样是Duron 1800的CPU，只配置1GB的虚拟内存(交换文件)，运行起来就不太流畅了。另外，如果有硬件虚拟化支持(如Intel VT和AMD-V)就更好了，但对VMware Server来说这并不是必需的。</p>
<p>　　其他几种运行外部操作系统应用的方法及其特性与限制如下表所示：</p>
<p>　　Vmware的系统优化</p>
<p>　　在不同的Linux版本中安装VMware Server有细微的差别。注意，本文的重点不在于如何安装VMware Server软件，而是要告诉你如何优化系统，使VMware Server更有效地工作。</p>
<p>　　首先，我们从http://www.vmware.com/download/server/下载VMware Server(下载时需要提供注册号码)，从http://ftp.cvut.cz/VMware/VMware-any-any- update105.tar.gz可以下载各种补丁，包含一些支持VMware Server的内核模块。注意，当运行VMware的配置脚本时，会提示你输入VMware设备的目录名称，把/var/lib/VMware /Virtual Machines改成/var/lib/Virtual_Machines。因为如果有空格，在用命令行应用程序访问时会有很多麻烦。另外，当在虚拟机配 置向导里提示输入虚拟机名称时，也不要带空格，如要用Windows_98代替Windows 98。</p>
<p>　　不论VMware虚拟机系统依赖什么配置，运行起来和在物理机器本地运行是一样的。比如，假设USB有问题，则在Windows控制面板里，找到系统、设备，就能看到跟物理机器安装时一样的错误图标。其它如音频、网络、视频以及各类驱动问题也是一样。</p>
<p>　　如果你以前安装过VMware Server(你可能只是升级下主机系统或者换个Linux版本)，只要把.vmx和.vmdk文件放到相应的地方，如/var/lib/VMware /Virtual_Machines/，然后改变文件的所有者属性和访问权限。从VMware Server控制台选择VM菜单，安装VMware Tools，能提高速度和稳定性，也能让你访问VMware音频和视频驱动。</p>
<p>　　虚拟以太网卡的配置</p>
<p>　　我们可以通过虚拟以太网卡在虚拟机和主机之间传输文件，系统默认提供的网卡是AMD PCNet PCI网卡，传输速率大约是400Kbps，换成Pro1000的网卡，能提高到3Mbps。VMware Server的虚拟以太网卡在vmx配置文件里就是一行文本，跟实际网卡一样，它也需要驱动程序。如果驱动程序位于C盘下的好几级目录中(如下图)，那你 应该创建一个快捷方式放在C盘根目录下，这样安装驱动时就不用找来找去了。</p>
<p>　　进入/var/lib/VMware/Virtual_Machine/Windows_98。用一个文本编辑工具打开.vmx文件，在 Ethernet那一节的第一行前插入：ethernet0.virtualDev = e1000。保存文件，退出。然后，启动虚拟机下的Windows系统，做如下操作：</p>
<p>　　1. 从开始菜单的设置-系统-设备下删除AMD网络适配器。</p>
<p>　　2. 重启虚拟机Windows系统。</p>
<p>　　3. 当提示你为一个PCI以太网卡安装驱动时，点取消。</p>
<p>　　4. 打开开始菜单-设置-系统-设备，找到那个有问题的网络设备。</p>
<p>　　5. 右键单击该网络设备，选择安装驱动。</p>
<p>　　6. 选择&ldquo;从磁盘安装&rdquo;。</p>
<p>　　7. 到你刚刚创建的快捷方式，选择.inf驱动安装文件，点击OK，就会看到一个列表。</p>
<p>　　8. 然后选择Intel Pro/1000 MT桌面连接，点OK。</p>
<p>　　9. 当提示你要Pro/1000安装包时，选择C盘的快捷方式。当提示需要Windows安装盘时，插入光盘。</p>
<p>　　10. 点击完成按钮。</p>
<p>　　11. 重启。</p>
<p>　　12. 改变网卡设置，选择开始菜单-设置-网络-Intel Pro/1000 MT 桌面连接-属性-高级-连接速度和双工，选择1000Mbps自动协商。</p>
<!--分页-->
<p>　　通过Samba在主机系统和虚拟机系统间共享文件</p>
<p>　　通过VMware Server安装虚拟机系统，最大的好处就是可以用传统的Windows应用程序和本地的Linux应用访问同一个文件。因此，在Linux主机系统和 Windows虚拟机系统之间共享文件是必需的。Samba是一组给Windows客户端提供文件和打印机共享服务的程序集合，可以让这些客户端象访问网 络磁盘一样访问Linux文件系统。下面我们给出出一些提示供参考。</p>
<p>　　首先，保证系统已经安装Samba。通常是默认安装的，但最好查一查。在下面的Samba配置文件中，&ldquo;Username&rdquo;指你的用户 名，Linux主机系统下的用户ID要和Windows虚拟机系统下的一致。这个文件定义了Linux和Windows共享的基本配置。更多的信息，可以 运行如下命令查看Samba的帮助文件：$ man Samba。或者到Samba的网站查看相关文档。</p>
<p>　　1)VMware Server的Samba配置</p>
<p>　　用root用户打开一个Linux文本编辑工具，把下面的内容保存为文件：/etc/Samba/smb.conf (;表示注释行)</p>
<p>　　[global]</p>
<p>　　;General server settings</p>
<p>　　netbios name = FC6</p>
<p>　　workgroup = workgroup</p>
<p>　　wins server = 169.0.0.1</p>
<p>　　server string = Samba Server</p>
<p>　　printcap name = /etc/printcap</p>
<p>　　cups options = raw</p>
<p>　　log file = /var/log/Samba/%m.log</p>
<p>　　max log size = 50</p>
<p>　　socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192</p>
<p>　　; SO_SNDBUF=8192</p>
<p>　　dns proxy = no</p>
<p>　　guest ok = yes</p>
<p>　　guest account = username</p>
<p>　　security = user</p>
<p>　　encrypt passwords = yes</p>
<p>　　username map = /etc/Samba/smbusers</p>
<p>　　smb passwd file = /etc/Samba/smbpasswd</p>
<p>　　restrict anonymous = no</p>
<p>　　domain master = yes</p>
<p>　　preferred master = yes</p>
<p>　　max protocol = NT</p>
<p>　　acl compatibility = winnt</p>
<p>　　ldap ssl = No</p>
<p>　　server signing = Auto</p>
<p>　　[win]</p>
<p>　　path = /home/username/data/</p>
<p>　　writeable = yes</p>
<p>　　valid users = username</p>
<p>　　comment = home</p>
<p>　　admin users = username</p>
<p>　　browseable = yes</p>
<p>　　case sensitive = no</p>
<p>　　配置文件中的&ldquo;path&rdquo;指你需要共享的Linux目录，也就是你允许Linux和Windows都能访问的文件空间。在Windows虚拟机 系统下访问时，你可以选择&ldquo;映射到网络驱动器&rdquo;。这时，你就能看到你在Linux和Windows共享的内容了。刚安装的Windows系统访问 Linux主机系统时，可能会因为Windows安装了防火墙而弹出一个提示框，如下图：</p>
<p>　　如图所示(假设本地IP是196.x.x.x范围的)，告诉你的防火墙允许NetBIOS访问那个IP：</p>
<p>　　2)有用的SAMBA提示</p>
<p>　　下面的提示可以帮助你更好的在Linux和Windows共享文件：</p>
<p>　　&middot; 在物理主机上运行Windows系统时，不用修改已经共享的目录名称。只把那些非Windows系统不能访问的文件放在Windows驱动器下。</p>
<p>　　&middot; 因为你不能在Linux系统下直接访问虚拟机系统下的文件，所以最好把数据文件保存在Linux空间下，然后通过Samba共享给Windows程序用。</p>
<p>　　&middot; 在Windows桌面上的快捷方式点击右键，把驱动盘符C改为E，这样你就可以继续使用这些快捷方法</p>
<!--分页-->
<p>　　设置音频</p>
<p>　　VMware Server下的虚拟机系统能够处理多媒体内容，并通过声卡播放声音。如果你的主机系统和虚拟机系统都是64位的，可以到Vmware官方网站上下载驱动 (http://download3.vmware.com/software/wkst/vmaudio-5.10.0.350)。下载之后，复制到 Windows文件系统下，安装时跟安装其它音频驱动一样。其它情况需要这样做：</p>
<p>　　1. 打开控制面板-设置-系统-声音，安装Windows声音驱动。</p>
<p>　　2. 删除所有的音频驱动。</p>
<p>　　3. 安装驱动文件。</p>
<p>　　4. 重启，在驱动文件里找到系统提示要的.cat文件(或其它配置文件)，点击OK。</p>
<p>　　5. 播放一个声音文件。</p>
<p>　　6. 把KDE的声音管理设置改为&ldquo;自动检测&rdquo;，然后告诉它空闲2秒钟后释放资源。</p>
<p>　　USB设备配置</p>
<p>　　通过VMware Server下的Windows应用可以直接访问打印机、扫描仪或者其它USB设备。如在VMware Server控制台的菜单查找打印机：VM &gt;Removable Devices &gt;USB Controller &gt;printer(如下图)。</p>
<p>　　那么，如何在VMware里使用USB打印机呢?其步骤如下：</p>
<p>　　1. 打开VMware Server。</p>
<p>　　2. 点击Windows标签。</p>
<p>　　3. 点击添加设备。</p>
<p>　　4. 添加USB控制器。</p>
<p>　　5. 启动Windows。</p>
<p>　　6. 打开VM工具栏，VM &gt;Removable Devices &gt;USB Devices &gt;[你的打印机名]。</p>
<p>　　7. Windows会提示找到新设备，要求你选择一款打印机或者从磁盘安装驱动。插入你的打印机驱动光盘。</p>
<p>　　8. 点击OK，能看到一个安装成功的提示窗口。</p>
<p>　　9. 打开开始菜单-设置-打印机，就能看到你的打印机了。</p>
<p>　　10. 右键打印机图标，选择属性。</p>
<p>　　11. 点击&ldquo;打印测试页&rdquo;，看看打印机是否打印出来。</p>
<p>　　同样，安装扫描仪和其它USB设备也可参考上述步骤。值得一提的是，VMware虚拟USB适配器可以同时使用两个USB设备。安装第二个USB设备时，只要按照上面的步骤到VMware工具栏那一步就可以了。</p>
<p>　　另外，一个USB设备可以被Linux主机系统使用，也可以被Windows虚拟机系统使用，你必须确定是哪个系统在使用它。选择菜单VM &gt;Removable Devices &gt;printer在虚拟机Windows系统下禁用打印机，这样主机的Linux系统才能使用它。然后重新插拔一下打印机的USB线。打开打印机管 理器，先停用、再启用一下打印机。</p>
<p>　　在主机系统和虚拟机系统之间切换USB打印机，你需要在VMware Server上关闭USB设备，甚至通过重新插拔一下来重启设备，然后打开Linux开始菜单-控制中心，点击外设-打印机，选择相应的打印机菜单，点击 下拉菜单的重启项，重启CUPS Linux打印系统。</p>
<p>　　优化VMware Server虚拟机系统的小提示</p>
<p>　　下面是我常用到的小提示：</p>
<p>　　&middot; 磁盘速度：大多数版本都有调整硬盘速率的选项，借此你可以让硬盘访问速度加倍。</p>
<p>　　&middot; 把虚拟硬盘文件(即VMware虚拟机系统的&ldquo;硬盘&rdquo;)分割成多个2GB的文件，我发现这样能显著提高访问速率。</p>
<p>　　&middot; 一些优化Windows系统的小技巧在虚拟机下也可以用，当然最好安装防火墙和反病毒软件。</p>
<p>　　&middot; 如果映射驱动器上的某个程序运行慢或者有问题，可以在Windows虚拟机系统下重新安装试试。我就重新安装过Eudora、MS Office、CorelDRAW和Paint Shop Pro。如果你本地安装的Windows系统在C:Program Files下有程序，也安装到虚拟机的虚拟硬盘上去，不要留在映射驱动器E:(也就是/home/username/win)上。</p>
<p>　　最后，值得一提的是，分割虚拟硬盘文件不仅有利于提高访问速率也有利于备份。通过以下命令可以分割虚拟硬盘文件：# VMware-vdiskmanager -r sourceDisk.vmdk -t 3 destinationDisk.vmdk。完成之后，要修改一下访问权限：</p>
<p>　　chown username:username *.vm*</p>
<p>　　chmod 777 *</p>
<p>　　打开原来的.vmx文件，保证里面的硬盘项是指向分割后的文件里的第一个。VMware相关的文件列在/etc/VMware/locations这个文本文件里。</p>
<p>　　在Linux主机系统之上通过VMware Server运行Windows虚拟机系统，让用户可以同时使用两个系统。也就是，既可以享受Linux的稳定性和健壮性，又能享受Windows程序的 易用性和通用性。也为现代计算机系统的后续扩展提供了空间。随着Linux程序变得一样易用而功能强大，普通用户也能比较容易的使用Linux程序。</p>]]></description>
			<link>http://www.neatstudio.com/show-374-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2008-12-02 09:27</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-372-1.shtml</guid>
			<title>保存的一封邮件</title>
			<author>gouki</author>
			<description>文章需要输入密码才能浏览.</description>
			<link>http://www.neatstudio.com/show-372-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-12-01 14:54</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-371-1.shtml</guid>
			<title>Wine中文显示</title>
			<author>gouki</author>
			<description><![CDATA[<p>突然发现wine的中文显示其实很简单<br />
从1.1.4开始wine的界面就已经支持中文了，但是对于软件中的中文支持并不太好，主要原因。还是字体。。。<br />
Let's go <br />
首先，copy一下字体：<font id="zoom" class="f14"><font color="#000000">把simsun.ttc （即宋体）复制到 ~/.wine/drive_c/windows/fonts<br />
然后：<br />
<div class="codeText">
<div class="codeHead"><font><font>XML/HTML代码</font></font></div>
<ol start="1" class="dp-xml"><font><font>
    <li class="alt"><span><span>[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows&nbsp;NT\CurrentVersion\FontSubstitutes]&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&quot;Arial&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Arial&nbsp;CE,238&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Arial&nbsp;CYR,204&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Arial&nbsp;Greek,161&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Arial&nbsp;TUR,162&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Courier&nbsp;New&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Courier&nbsp;New&nbsp;CE,238&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Courier&nbsp;New&nbsp;CYR,204&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Courier&nbsp;New&nbsp;Greek,161&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Courier&nbsp;New&nbsp;TUR,162&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;FixedSys&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Helv&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Helvetica&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;MS&nbsp;Sans&nbsp;Serif&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;MS&nbsp;Shell&nbsp;Dlg&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;MS&nbsp;Shell&nbsp;Dlg&nbsp;2&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;System&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Tahoma&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Times&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Times&nbsp;New&nbsp;Roman&nbsp;CE,238&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Times&nbsp;New&nbsp;Roman&nbsp;CYR,204&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Times&nbsp;New&nbsp;Roman&nbsp;Greek,161&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&quot;Times&nbsp;New&nbsp;Roman&nbsp;TUR,162&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&quot;Tms&nbsp;Rmn&quot;=&quot;simsun&quot;&nbsp;&nbsp;</span></li>
    </font></font></ol>
    </div>
    当然，你也可以COPY其他字体，然后替换掉这上面的simsun。把这 段内容保存成一个reg文件，例如：fonts.reg<br />
    最后，到命令行下支持wine regedit fonts.reg，OK，你现在重新打开记事本，是不是发现可以输入中文了？</font></font></p>]]></description>
			<link>http://www.neatstudio.com/show-371-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2008-12-01 14:32</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-369-1.shtml</guid>
			<title>在线破解MD5网站收集</title>
			<author>gouki</author>
			<description><![CDATA[<p><font style="font-size: 14px;">除了http://www.cmd5.com/外，你可以到下面试试 <br />
<br />
MD5 Reverse Lookup <br />
http://linardy.com/md5.php <br />
Digest-MD5-Reverse-1.3 <br />
http://search.cpan.org/~blwood/Digest-MD5-Reverse-1.3/ <br />
md5 hash search <br />
http://www.hashchecker.com/index.php?_sls=search_hash <br />
mmkey <br />
http://www.mmkey.com/md5/ <br />
Dictionary Based Hash Cracker <br />
http://www.securitystats.com/tools/hashcrack.php <br />
<br />
project md5 <br />
http://schwett.com/md5/ <br />
xmd5 <br />
http://www.xmd5.org/index_en.htm <br />
http://www.md5.org.cn/index_en.htm <br />
<br />
TMTO[dot]ORG <br />
http://www.tmto.org/home/ <br />
md5 rednoize <br />
http://md5.rednoize.com/ <br />
MD5 Rainbow <br />
http://passcracking.ru/ <br />
Reverse MD5 hash lookup <br />
http://tools.benramsey.com/md5/ <br />
md5decrypt <br />
http://www.md5decrypt.com/ <br />
md5 <br />
http://md5decryption.com/ <br />
alimamed <br />
http://alimamed.pp.ru/md5/ <br />
md5crack <br />
http://md5crack.it-helpnet.de/index.php?op=add <br />
md5 hash database project <br />
http://shm.hard-core.pl/md5/ <br />
Hash Calculator <br />
https://www.astalavista.net/?cmd=rainbowtables <br />
Ice Breaker <br />
http://ice.breaker.free.fr/ <br />
md5This <br />
http://www.md5this.com/ <br />
MD5 Encryption/Decryption Tool <br />
http://md5.allfact.info/ <br />
MD5 Cracker (How safe is your password?) <br />
http://bokehman.com/cracker/ <br />
MD5-crack <br />
http://www.tydal.nu/article/md5-crack/ <br />
<br />
This is the site for Passwords Recovery. MD5 Rainbow Tables are used here. <br />
http://passcracking.com/ <br />
http://passcracking.ru/ <br />
MD5 :: Reverse engineer your MD5 <br />
http://md5.idiobase.de/ <br />
The MD5 Collision Database <br />
http://www.md5-db.com/index.php <br />
GData: An Online MD5 Hash Database <br />
http://gdataonline.com/ <br />
milw0rm MD5 Cracker <br />
http://www.milw0rm.com/cracker/info.php <br />
milw0rm MD5 checker <br />
https://elitehackers.info/forums/showthread.php?t=5767<br />
原文来自：http://hi.baidu.com/isbx/blog/item/7fcd5d60aa261ad88cb10df6.html<br />
膘叔：其实MD5这东西呀，你可以自己写套程序，把1－0，a-z等一些常用字典遍历一下生成MD5到数据库里，以后自己查起来就方便了。这是最方便的做法，呵呵，在那里跑上个一两天，估计可以跑出几个G的数据了吧？</font></p>]]></description>
			<link>http://www.neatstudio.com/show-369-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2008-11-30 21:33</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-368-1.shtml</guid>
			<title>什么是D2，写在D2参加之后</title>
			<author>gouki</author>
			<description><![CDATA[<p>D2前端技术论坛(Designer &amp; Developer Frontend Technology Forum)，简称 D2 ，为国内前端开发者提供一个交流的机会，一起分享技术的乐趣，探讨行业的发展，以技术会友。它是中国所有前端开发者的节日。D2 将努力营造一种轻松自由的交流氛围，没有任何商业色彩，以纯粹的技术交流为根本，共同推动国内前端技术的发展，发掘前端技术可以创造的更大价值。</p>
<p>授课人介绍：</p>
<ul>
    <ul>
        <ul>
            <li><strong>马鉴 (Zerlot Ma, 七月)</strong><br />
            Platform Technology Evangelist<br />
            Adobe<br />
            Blog:<a target="_blank" href="http://www.7yue.com/">www.7yue.com</a></li>
            <li><img width="90" height="90" alt="史珉头像" src="http://www.d2forum.org/d2/3/images/aspirin.jpg" /> 					<strong>史珉 (Aspirin)</strong><br />
            高级Flash工程师<br />
            土豆网</li>
            <li><img width="90" height="90" alt="王超群头像" src="http://www.d2forum.org/d2/3/images/wchaoqun.jpg" /> 					<strong>王超群</strong><br />
            互联网策略顾问<br />
            微软（中国）有限公司<br />
            Blog:<a target="_blank" href="http://blogs.msdn.com/cqwang">blogs.msdn.com/cqwang</a></li>
            <li><img width="90" height="90" alt="许湛头像" src="http://www.d2forum.org/d2/3/images/xuzhan.jpg" /> 					<strong>许湛 (Justin)</strong><br />
            前端开发主管<br />
            阿里巴巴(国际站)<br />
            Blog:<a target="_blank" href="http://www.alldone.cn/">www.alldone.cn</a></li>
            <li><img width="90" height="90" alt="李戎头像" src="http://www.d2forum.org/d2/3/images/xiaomai.jpg" /> 					<strong>李戎 (小麦)</strong><br />
            资深前端开发工程师<br />
            土豆网<br />
            Blog:<a target="_blank" href="http://www.mikkolee.com/">www.mikkolee.com</a></li>
            <li><img width="90" height="90" alt="郑叶飞头像" src="http://www.d2forum.org/d2/3/images/blank.jpg" /> 					<strong>郑叶飞 (怿飞)</strong><br />
            资深前端开发工程师<br />
            淘宝网<br />
            Blog:<a target="_blank" href="http://www.planabc.net/">www.planabc.net</a></li>
        </ul>
    </ul>
</ul>
<p><a href="http://www.d2forum.org/" target="_blank"><br />
</a></p>]]></description>
			<link>http://www.neatstudio.com/show-368-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-11-29 20:54</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-367-1.shtml</guid>
			<title>D2参加随感</title>
			<author>gouki</author>
			<description><![CDATA[<p>今天在D2上海大会上呆了一天，作为一名web开发人员，对于前端技术总还是需要研究和追新的，虽然他们上的课中有一部分我已经了解或者永远不会用到。但并不代表我不能从中学习知识。<br />
<br />
一大早和mpeg就往建工锦江大酒店赶，到了之后才发现，和上次ThinkSite（欣才）举办的一个小型沙龙是在同一个地方，由于我的号码已经是100多了，去的时候也是很紧张的，怕是他们开始了不让俺进。<br />
<br />
进去时，正是adobe的马鉴在介绍flash10的一些新特性，感觉flash可做的事情真多呀。好恐怖呀。印象最深的是一块画布在被采用各种 技术进行渲染，性能实在恐怖（不过他是用mac的，我不知道windows下，是否还有同样的性能）<br />
接下来就是土豆网的大麦？介绍了flash的协作开发，可惜由于adobe的朋友讲的太优秀了，相比较而言，他讲的实在就有点。。。。<br />
吃过饭后进行抽奖，象俺这么英俊潇洒的人一向遭人妒忌的，所以，奖项就离我远去了。<br />
接着是alibaba的一位帅哥讲了敏捷开发，节奏把握的很好，确实很有水平。在他讲完之后，接着是微软的王超奇介绍IE8的一些新特性。说实话，他讲的内容没有什么特别的，毕竟这些都是可以看news list看得到的，但是演讲之前的那段广告视频却非常不错，没见过，也吸引了很多眼球 。淘 宝UED和土豆小麦在最后讲了一些内容，都是在赶时间了。。。<br />
<br />
本次的亮点：1、叽歪互动 2、书<br />
或许搞技术的都不太擅长直接语言交流，这个叽歪互动则让更多的人进行了参与，在以前的一些会议中，看起来是不可想像的，但如今却成了一种新的交流方式（依稀记得好象是某个年会上开始有叽歪参与，然后就一发不可收拾了，叽歪也随之出名）<br />
书是第二个亮点，可惜我一本都没有拿到，好象是那本：悟透javascript还有adobe air开发（看到有人在送这本书给其他人时，那人感慨了一句：啊，是译本呀，唉我还以为是原版呢。）看来国内对于译本的质量都不太看好呀。<br />
<br />
感受还是很深的，一直在搞后端的WEB开发，不料前端已经走的这么快了。再次感慨一下（听说，会上的资料会提供下载，不知道何时能够有的下载）</p>]]></description>
			<link>http://www.neatstudio.com/show-367-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-11-29 18:56</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-366-1.shtml</guid>
			<title>框架之随便谈谈</title>
			<author>gouki</author>
			<description><![CDATA[<p>本文是我发在博客园的文章，原文地址是：http://www.cnblogs.com/neatstudio/archive/2008/11/28/1342894.html，如果对本文有啥意见的话，也可以去那里回复，目前已经有一部分朋友的回复了。<br />
<br />
<a href="http://www.cnblogs.com/neatstudio/archive/2008/11/28/1342894.html">点击这里去园子</a>，或者点击下面的阅读全文链接以查看本站的原文。</p><br /><br /><a href="http://www.neatstudio.com/show-366-1.shtml" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.neatstudio.com/show-366-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-11-28 19:07</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-365-1.shtml</guid>
			<title>如何mount Smb服务共享目录</title>
			<author>gouki</author>
			<description><![CDATA[<p>在ubuntu下面默认是不能mount samba共享的目录的，而在公司里，我不得不连接这样的目录，在windows下面的时候，samba共享就象windows的共享目录那样的方便，但是在linux下面就不是这样的了。</p>
<p>首先，你要下载smbmount,运行 ：</p>
<p>apt-get install smbfs</p>
<p>然后就会安装smbmount了，我自己Ubuntu系统的loacle设置是：zh_CN.UTF-8，相信大多数使用ubuntu的人都是这样设置的吧，平时使用samba的话，直接输入smb://hostname 就可以了。</p>
<p>然后尝试一下把公司服务器上的路径mount过来。<br />
smbmount //hostname/directory /home/my/mount/dir -o user＝username,pass=passpord,iocharset=utf8<br />
<br />
在上面的命令里<br />
//hostname/directory 就是公司服务器的samba共享路径，<br />
/home/my/mount/dir 就是本地的挂载目录，</p>
<p>-o 参数是表示后面还有很多参数，参数之间以&quot;,&quot;(不含引号)隔开<br />
user表示用户名<br />
pass表示密码<br />
iocharset=utf8，可以避免中文乱码</p>]]></description>
			<link>http://www.neatstudio.com/show-365-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2008-11-27 18:58</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-364-1.shtml</guid>
			<title>继续解决ZendStudio5菜单中部分是方框的问题</title>
			<author>gouki</author>
			<description><![CDATA[<p>昨天刚刚解决ZS白屏的问题，再次启动的时候，确实是正常了。。。<br />
然而部份菜单却是方框，查了一些资料，发现是中文字体的问题，于是，将Windows下的宋体（<font color="#ff0000">simsun.ttc</font>）拷贝过来，改名为： <font color="#ff0000">LucidaSansRegular.ttf</font>,覆盖掉：<span style="background-color: rgb(255, 255, 0);">/usr/local/Zend/ZendStudio-5.5.1/jre/lib/fonts</span>  下的同名文件。</p>
<p>即：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span>unlink&nbsp;/usr/local/Zend/ZendStudio-5.5.1/jre/lib/fonts/LucidaSansRegular.ttf&nbsp;&nbsp;</span></span></li>
    <li class=""><span>cp&nbsp;/media/disk/WINDOWS/Fonts/simsun.ttc&nbsp;&nbsp;/usr/local/Zend/ZendStudio-5.5.1/jre/lib/fonts/LucidaSansRegular.ttf&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>]]></description>
			<link>http://www.neatstudio.com/show-364-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2008-11-27 18:26</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-363-1.shtml</guid>
			<title>Ubuntu下ZS5.5打开之后是空白屏幕的解决方案</title>
			<author>gouki</author>
			<description><![CDATA[<p>安装了ubuntu之后，立马安装上了zendstudio 5.5 结果出现空白屏幕，以为是不兼容呢。也就没注意。然后安装了一个 ZS for eclipse 6，一切正常。更加肯定了自己的机器与ZS5的不兼容。</p>
<p>可是，我的屏幕只有12。1，在ZS6下面，能够给我写代码的地方太小了。。。。简直无法下手。</p>
<p>于是就想怎么解决5。5的问题。</p>
<p>想不到啊。一直劝别人：内事不决问百度外事不决问google的，象ZS这种进口软件，我居然没有想到问问google。不过，我问了Vampire(政委)同学，他采用了我教别人的方法，然后给了我条答案。</p>
<p>不敢独享。。。</p>
<p>以下内容来自官方网站，地址为：http://www.zend.com/support/knowledgebase.php?kbid=241，不翻译了，也没有什么好翻译的。。。。</p>
<h1 class="graytitle"><font size="4"> Zend Studio starts up with an empty window, or other GUI problems, due to XGL-Compiz/Beryl (with JRE) compatibility issues </font></h1>
<p class="smallfont 10px"><strong>Article #</strong>241<br />
<strong>Product:</strong> <em>Zend Studio</em></p>
<p style="border-top: 2px solid rgb(204, 204, 204);">&nbsp;</p>
<h3>Symptoms</h3>
<p><br />
<br />
<br />
When running Zend Studio:<br />
1. The ZS's main window comes up totally empty.<br />
2. Sometimes the window has some of the frames painted, but the rest of the window is empty.<br />
3. In the empty ZS window the mouse cursor is changing while moving around the window (as if there are objects: like buttons and other objects).<br />
4. There were erratic mouse/window movements reported.</p>
<h3>Summary</h3>
<p><br />
<br />
<br />
Zend Studio starts up with various windowing GUI problems in some linux distros, while using the XGL-Compiz/Beryl product.</p>
<h3>Cause</h3>
<p><br />
<br />
<br />
1. Incompatibility between the XGL environment, the JRE, and the Zend Studio Client.<br />
2. The decoration in the 3D environment clashes with the Java Runtime and distorts the operation and visualization of the Zend Studio client's window.</p>
<h3>Workaround</h3>
<p><br />
<br />
<br />
There are two ways to execute Zend Studio, by running the ZDE script, and by running the runStudio_unix.sh script, both are in the bin directory of zend studio<br />
(usually /usr/local/Zend/ZendStudio-/bin)<br />
<br />
The following workarounds may be used, but there is no guarantee how well or how long it might work for you in your environment.</p>
<ul>
    <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">&nbsp;</li>
    <li>modification of ZDE script for xgl:</li>
    <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">&nbsp;</li>
</ul>
<p><br />
1. Open your ZDE script with your favorite editor<br />
2. add the next line of code at line 1693.<br />
options=&quot;$options -Dawt.toolkit=sun.awt.motif.MToolkit&quot;<br />
<br />
for example:<br />
<em>1693:</em><br />
<em>1694: debugOut &quot;&quot;</em><br />
<em>1695: unset POSIXLY_CORRECT</em><br />
<em>1696: if [ $DO_NOT_FORK ]</em><br />
<br />
becomes:<br />
<em>1693: options=&quot;$options -Dawt.toolkit=sun.awt.motif.MToolkit&quot;</em><br />
<em>1694: debugOut &quot;&quot;</em><br />
<em>1695: unset POSIXLY_CORRECT</em><br />
<em>1696: if [ $DO_NOT_FORK ]</em><br />
<br />
3. Save the file.</p>
<ul>
    <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">&nbsp;</li>
    <li>modification of runStudio_unix.sh script for xgl:</li>
    <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">&nbsp;</li>
</ul>
<p><br />
1. open the the file in your favorite editor.<br />
2. modify the java execution line,<br />
the line starts with: ../jre/bin/java -Xms16m -Xmx256m -cp...<br />
change it to: ../jre/bin/java -Dawt.toolkit=sun.awt.motif.MToolkit -Xms16m -Xmx256m -cp...<br />
^^^^^^^^^^^^^^^^^^^^^^^^^^<br />
as you can see, the only difference is an extra parameter to the java program.<br />
3. Save the file.</p>
<h3>Another solution</h3>
<p><br />
<br />
<br />
the AWT_TOOLKIT environment variable can be set in order for Java to choose a working AWT Toolkit.<br />
<br />
export AWT_TOOLKIT=&quot;MToolkit&quot;<br />
<br />
In most Linux Distributions it's enough to append this line to /etc/profile.</p>
<h3>The information in this article applies to</h3>
<p><br />
<br />
<br />
Zend Studio Client</p>
<h3>Common Problems</h3>
<p><br />
<br />
On some amd64 based systems, the motif toolkit will not work, complaining that &quot;current locale is not supported in X11&quot;.<br />
<br />
A solution for this case is to set the XLOCALELIBDIR environment variable to the X11 32 bit locale<br />
directory of your system.<br />
Ubuntu Distribution users will find it at: /usr/lib32/X11/locale.<br />
<br />
Ubuntu users can use the following as a startup-script:<br />
#!/bin/bash<br />
export AWT_TOOLKIT=MToolkit<br />
export XLOCALELIBDIR=/usr/lib32/X11/locale<br />
exec ZendStudio-5.5.0/Zend_Development_Environment</p>
<ul>
    <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">&nbsp;</li>
    <li>more information can be found:</li>
    <li style="list-style-type: none; list-style-image: none; list-style-position: outside;">&nbsp;</li>
</ul>
<p><br />
<a href="http://alioth.debian.org/tracker/index.php?func=detail&amp;aid=301730&amp;group_id=30192&amp;atid=410386">http://alioth.debian.org/tracker/index.php?func=detail&amp;aid=301730&amp;group_id=30192&amp;atid=410386</a></p>
<h3>Keywords</h3>
<p><br />
<br />
<br />
Zend Studio, ZS, ZDE, IDE, Installation, XGL, Compiz, Beryl, unsupported, blank, empty, window, decoration,xgl</p>
<p><small><strong>Last Updated:</strong> <em>2008-01-07 09:50:08</em></small></p>]]></description>
			<link>http://www.neatstudio.com/show-363-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2008-11-26 22:33</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-362-1.shtml</guid>
			<title>jQuery的html()等方法介绍</title>
			<author>gouki</author>
			<description><![CDATA[<p>本来是看到一篇文章，写研究的，想COPY过来就完事了。该来来自于cssRain，但是在看的过程中，发现内容和标准偏差很多，于是就贴上它的链接，然后自己谈谈理解吧。</p>
<p>CSSRAIN的链接为：http://www.cssrain.cn/article.asp?id=1176</p>
<p>在jQuery里面对于一些HTML的元素操作都是很简化的，这也是很多人选择使用jQuery的原因。</p>
<p>对于获取某一个元素的值，如input框，我们往往是用$('#test').val();</p>
<p>$('#test')这个我就不多说了，反正就是获取ID为test的这个元素。</p>
<p>$('#test').val()，也就是获取它的值，一般来说，凡是能够用在FORM里的元素，都可以用.val()来进行值的获取，如input,textarea,select等，都可以用.val()来获取它们的当前值</p>
<p>而.val('aa');则是设置该元素的值，$('#test').val('aa')，也就是相当于设置test元素的值为aa。</p>
<p>类似这样的用法还有两种：.html(),.text()，这两种用法往往用在div和span元素上，一般是为这两种元素进行赋值和取值。</p>
<p>.html()替代了以前的 .innerHTML , .html('test') ，则是替代了 .innerHTML = 'test';</p>
<p>这些类似的简化写法让我们在实际的操作中感觉得更加流畅。</p>
<p>这些方法都是直接在方法名里加参数来进行赋值和取值的。还有一些是通过第二个参数进行取值的（说的不太清楚。。。），比如$('#test').attr('name')，那么，返回的值就是它的attribute中的name了，如果$('#test').attr('id','test2'),则是相当于把这个test元素的name设为test2,再进行取值的时候，name就是test2了。</p>
<p>说的太乱了。。。。</p>
<p>懒得整理，权当笔记</p>]]></description>
			<link>http://www.neatstudio.com/show-362-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2008-11-25 18:33</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-361-1.shtml</guid>
			<title>PDF下载：《High Performance MySQL》</title>
			<author>gouki</author>
			<description><![CDATA[<p>回忆未来的张宴推荐了这本书，并且在他的博客上提供了下载的链接，链接是新浪的爱问：<a target="_blank" href="http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4591494">点此下载《High Performance MySQL Second Edition》PDF电子版</a>，并且博客上还有详细介绍：</p>
<p>&nbsp; XML/HTML代码</p>
<div class="codeText">
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>High&nbsp;Performance&nbsp;MySQL&nbsp;Second&nbsp;Edition&nbsp;&nbsp;</span></span></li>
    <li class=""><span>作者:&nbsp;Baron&nbsp;Schwartz&nbsp;/&nbsp;Peter&nbsp;Zaitsev&nbsp;/&nbsp;Vadim&nbsp;Tkachenko&nbsp;/&nbsp;Jeremy&nbsp;Zawodny&nbsp;/&nbsp;Arjen&nbsp;Lentz&nbsp;/&nbsp;Derek&nbsp;Balling&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>副标题:&nbsp;Optimization,&nbsp;Backups,&nbsp;Replication,&nbsp;and&nbsp;More&nbsp;&nbsp;</span></li>
    <li class="alt"><span>ISBN:&nbsp;9780596101718&nbsp;&nbsp;</span></li>
    <li class=""><span>页数:&nbsp;708&nbsp;&nbsp;</span></li>
    <li class="alt"><span>定价:&nbsp;USD&nbsp;49.99&nbsp;&nbsp;</span></li>
    <li class=""><span>出版社:&nbsp;O'Reilly&nbsp;Media,&nbsp;Inc.&nbsp;&nbsp;</span></li>
    <li class="alt"><span>装帧:&nbsp;Paperback&nbsp;&nbsp;</span></li>
    <li class=""><span>出版年:&nbsp;2008-06-18&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>High&nbsp;Performance&nbsp;MySQL&nbsp;is&nbsp;the&nbsp;definitive&nbsp;guide&nbsp;to&nbsp;building&nbsp;fast,&nbsp;reliable&nbsp;systems&nbsp;with&nbsp;MySQL.&nbsp;Written&nbsp;by&nbsp;noted&nbsp;experts&nbsp;with&nbsp;years&nbsp;of&nbsp;real-world&nbsp;experience&nbsp;building&nbsp;very&nbsp;large&nbsp;systems,&nbsp;this&nbsp;book&nbsp;covers&nbsp;every&nbsp;aspect&nbsp;of&nbsp;MySQL&nbsp;performance&nbsp;in&nbsp;detail,&nbsp;and&nbsp;focuses&nbsp;on&nbsp;robustness,&nbsp;security,&nbsp;and&nbsp;data&nbsp;integrity.&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>High&nbsp;Performance&nbsp;MySQL&nbsp;teaches&nbsp;you&nbsp;advanced&nbsp;techniques&nbsp;in&nbsp;depth&nbsp;so&nbsp;you&nbsp;can&nbsp;bring&nbsp;out&nbsp;MySQL's&nbsp;full&nbsp;power.&nbsp;Learn&nbsp;how&nbsp;to&nbsp;design&nbsp;schemas,&nbsp;indexes,&nbsp;queries&nbsp;and&nbsp;advanced&nbsp;MySQL&nbsp;features&nbsp;for&nbsp;maximum&nbsp;performance,&nbsp;and&nbsp;get&nbsp;detailed&nbsp;guidance&nbsp;for&nbsp;tuning&nbsp;your&nbsp;MySQL&nbsp;server,&nbsp;operating&nbsp;system,&nbsp;and&nbsp;hardware&nbsp;to&nbsp;their&nbsp;fullest&nbsp;potential.&nbsp;You'll&nbsp;also&nbsp;learn&nbsp;practical,&nbsp;safe,&nbsp;high-performance&nbsp;ways&nbsp;to&nbsp;scale&nbsp;your&nbsp;applications&nbsp;with&nbsp;replication,&nbsp;load&nbsp;balancing,&nbsp;high&nbsp;availability,&nbsp;and&nbsp;failover.&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>This&nbsp;second&nbsp;edition&nbsp;is&nbsp;completely&nbsp;revised&nbsp;and&nbsp;greatly&nbsp;expanded,&nbsp;with&nbsp;deeper&nbsp;coverage&nbsp;in&nbsp;all&nbsp;areas.&nbsp;Major&nbsp;additions&nbsp;include:&nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;Emphasis&nbsp;throughout&nbsp;on&nbsp;both&nbsp;performance&nbsp;and&nbsp;reliability&nbsp;&nbsp;</span></li>
    <li class=""><span>*&nbsp;Thorough&nbsp;coverage&nbsp;of&nbsp;storage&nbsp;engines,&nbsp;including&nbsp;in-depth&nbsp;tuning&nbsp;and&nbsp;optimizations&nbsp;for&nbsp;the&nbsp;InnoDB&nbsp;storage&nbsp;engine&nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;Effects&nbsp;of&nbsp;new&nbsp;features&nbsp;in&nbsp;MySQL&nbsp;5.0&nbsp;and&nbsp;5.1,&nbsp;including&nbsp;stored&nbsp;procedures,&nbsp;partitioned&nbsp;databases,&nbsp;triggers,&nbsp;and&nbsp;views&nbsp;&nbsp;</span></li>
    <li class=""><span>*&nbsp;A&nbsp;detailed&nbsp;discussion&nbsp;on&nbsp;how&nbsp;to&nbsp;build&nbsp;very&nbsp;large,&nbsp;highly&nbsp;scalable&nbsp;systems&nbsp;with&nbsp;MySQL&nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;New&nbsp;options&nbsp;for&nbsp;backups&nbsp;and&nbsp;replication&nbsp;&nbsp;</span></li>
    <li class=""><span>*&nbsp;Optimization&nbsp;of&nbsp;advanced&nbsp;querying&nbsp;features,&nbsp;such&nbsp;as&nbsp;full-text&nbsp;searches&nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;Four&nbsp;new&nbsp;appendices&nbsp;&nbsp;</span></li>
    <li class=""><span>The&nbsp;book&nbsp;also&nbsp;includes&nbsp;chapters&nbsp;on&nbsp;benchmarking,&nbsp;profiling,&nbsp;backups,&nbsp;security,&nbsp;and&nbsp;tools&nbsp;and&nbsp;techniques&nbsp;to&nbsp;help&nbsp;you&nbsp;measure,&nbsp;monitor,&nbsp;and&nbsp;manage&nbsp;your&nbsp;MySQL&nbsp;installations.&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>为此，张宴还提供了一张图片：</p>
<p>&nbsp;</p>
<p align="center"><a href="http://www.neatstudio.com/attachment.php?id=268" target="_blank"><img src="http://www.neatstudio.com/attachments//date_200811/e8b09cda087f5200025d97ac1d126efd.jpg" border="0" alt="大小: 5.18 K&#13;尺寸: 106 x 139&#13;浏览: 32 次&#13;点击打开新窗口浏览全图" width="106" height="139" /></a></p>
<p align="left">&nbsp;</p>
<p align="left">整篇博客我作了一下整理和排序，想看原文的，请到：http://blog.s135.com/read.php?381，因为在这个页面上张宴采用了划词翻译，如果有看不懂英文的话，选中一下就会自动翻译了。。我没有提供。也不想再插入一些代码。呵呵</p>
<p align="left">为了方便大家，我也上传了这个文件，大家可以点击下载：<a href="http://www.neatstudio.com/attachment.php?id=269" title="3.25 M, 下载次数:44" target="_blank">high.performance.mysql_second.edition.zip</a></p>
<p><a target="_blank" href="http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4591494"><br />
</a></p>]]></description>
			<link>http://www.neatstudio.com/show-361-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-9-1.shtml">DataBase</category>
			<pubDate>2008-11-25 18:13</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-360-1.shtml</guid>
			<title>MySQL之表结构修改［转］</title>
			<author>gouki</author>
			<description><![CDATA[<p>Author:<a href="http://www.taobaodba.com/" target="_blank">丹臣</a> posted on <a href="http://rdc.taobao.com/blog/dba/html/92_mysql_ddl.html" target="_blank">Taobao.com</a></p>
<p>mysql数据库里，对一个已创建的表进行DDL操作，比如说添加一个字段。在做测试时，发现ddl操作的时间特别的长。oracle里，通常情况下只是 修改数据字典就可以了，操作时间非常的短，阻塞DML的时间也比较短。mysql数据库对表进行ddl操作跟oracle数据库有很大的不同，它先要把原 表拷贝一份到临时表，这期间不阻塞select,阻塞所有的更改操作(update,delete,insert),对临时表ddl操作完成，删除原表， 重命名临时表。<br />
如果一张比较大的表进行ddl变更，比如说40G，那拷贝的时间让人无法忍受，并且阻塞所有的DML操作,让业务无法继续。<br />
<br />
以下是测试过程：</p>
<div class="hl-surround">
<div class="hl-main">mysql&gt; desc t1;<br />
+-------------------+------------------+------+-----+---------+-------+<br />
| Field&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Type&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Null&nbsp;&nbsp; | Key | Default | Extra |<br />
+-------------------+------------------+------+-----+---------+-------+<br />
| id&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | int(11)&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; | MUL | NULL&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp;|<br />
| nick&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;     &nbsp;&nbsp;     &nbsp;&nbsp;&nbsp;     | varchar(32)&nbsp;&nbsp; | YES&nbsp; |&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp;|<br />
| email&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; | varchar(32)&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp;|<br />
| gmt_create&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; | datetime&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp;|<br />
| gmt_modified&nbsp;&nbsp;&nbsp; | datetime&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp;|<br />
+-------------------+------------------+------+-----+---------+-------+<br />
mysql&gt; select count(*) from t1;<br />
+----------+<br />
| count(*) |<br />
+----------+<br />
|&nbsp; 2228017 |<br />
+----------+<br />
1 row in set (1.78 sec)</div>
</div>
<p>现在对它进行表结构变更，增加一列：</p>
<div class="hl-surround">
<div class="hl-main">mysql&gt; alter table t1 add(tel varchar(20));<br />
Query OK, 2304923 rows affected (41.03 sec)<br />
Records: 2304923&nbsp; Duplicates: 0&nbsp; Warnings: 0</div>
</div>
<p>在上述表结构变更过程中，启动另外一个会话，进行select查询操作和一个更新操作：</p>
<div class="hl-surround">
<div class="hl-main">mysql&gt; select count(*) from t1;<br />
+---------------+<br />
| count(*)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
+---------------+<br />
|&nbsp; 2304923&nbsp;&nbsp;&nbsp;&nbsp; |<br />
+---------------+<br />
1 row in set (2.10 sec)<br />
<br />
mysql&gt; select * from t1 limit 10;<br />
+------+-------+------------------------+----------------------------+----------------------------+<br />
| id&nbsp; &nbsp;&nbsp;&nbsp; | nick&nbsp;&nbsp; | email&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | gmt_create&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | gmt_modified&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <br />
+------+-------+------------------------+----------------------------+----------------------------+<br />
|&nbsp; &nbsp; 0&nbsp;&nbsp; | nick0 | nick0@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
|&nbsp; &nbsp; 1&nbsp;&nbsp; | nick1 | nick1@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |<br />
|&nbsp; &nbsp; 2&nbsp;&nbsp; | nick2 | nick2@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |<br />
|&nbsp; &nbsp; 3&nbsp;&nbsp; | nick3 | nick3@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 |<br />
|&nbsp; &nbsp; 4&nbsp;&nbsp; | nick4 | nick4@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
|&nbsp; &nbsp; 5&nbsp;&nbsp; | nick5 | nick5@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
|&nbsp; &nbsp; 6&nbsp;&nbsp; | nick6 | nick6@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
|&nbsp; &nbsp; 7&nbsp;&nbsp; | nick7 | nick7@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
|&nbsp; &nbsp; 8&nbsp;&nbsp; | nick8 | nick8@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
|&nbsp; &nbsp; 9&nbsp;&nbsp; | nick9 | nick9@taobao.com | 2008-03-14 00:00:00 | 2008-03-14 00:00:00 | <br />
+------+-------+------------------------+----------------------------+----------------------------+<br />
10 rows in set (0.00 sec)<br />
<br />
mysql&gt; update t1 set nick='test_nick' where id=1;<br />
Query OK, 4 rows affected (43.89 sec)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --这里是阻塞的时间<br />
Rows matched: 4&nbsp; Changed: 4&nbsp; Warnings: 0</div>
</div>
<p>通过以上实验可以看出，对表进行ddl操作时，mysql并不阻塞select查询，但会严重阻塞dml操作。另外，如果你要对表进行ddl操作，由于有一个拷贝操作，你要计算好你的可用空间够不够？如果你的系统经常要进行表结构变更，那么你将不得不要考虑此问题！</p>
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description rdf:about="http://rdc.taobao.com/blog/dba/html/92_mysql_ddl.html"
dc:identifier="http://rdc.taobao.com/blog/dba/html/92_mysql_ddl.html"
dc:title="MySQL之表结构修改"
trackback:ping="http://rdc.taobao.com/blog/dba/html/92_mysql_ddl.html/trackback"  />
</rdf:RDF> -->
<p>--EOF--</p>
<p>膘叔：说实话，一般对于表的操作往往都是在夜深人静的时候，虽然select并不影响，但为避免在更新表结构的时候更新数据，这还是必须的。。。以防万一啊</p>
<p>&nbsp;</p>]]></description>
			<link>http://www.neatstudio.com/show-360-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-9-1.shtml">DataBase</category>
			<pubDate>2008-11-25 18:03</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-359-1.shtml</guid>
			<title>XML to JSON plugin--把xml转化为json插件</title>
			<author>gouki</author>
			<description><![CDATA[<p>以前用JS操作XML都是用DOM的方式，现在有了这个插件，操作起来会更方便了直接采用对象。。。</p>
<p>来源：http://www.94this.com.cn/article/258.htm</p>
<p>这个插件应该是比较方便的一个插件了，它能把xml字符串或xml文件转化为json对象，比如把<br />
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">xml</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;</span><span class="tag-name">message</span><span class="tag">&gt;</span><span>Hello&nbsp;world</span><span class="tag">&lt;/</span><span class="tag-name">message</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">xml</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
转化为<br />
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; message:&nbsp;<span class="string">'Hello&nbsp;world'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
这样我们操作起来就很方便了，因为用javascript操作json比操作xml要方便好多。<br />
<br />
基本的使用：</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;xml&nbsp;=&nbsp;</span><span class="string">'&lt;xml&gt;&lt;message&gt;Hello&nbsp;world&lt;/message&gt;&lt;/xml&gt;'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">var</span><span>&nbsp;json&nbsp;=&nbsp;$.xml2json(xml);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>alert(json.message);&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>当然它也能通过直接把xml文件转化为json：</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>$.get(</span><span class="string">'data/hello.xml'</span><span>,&nbsp;</span><span class="keyword">function</span><span>(xml){&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">&nbsp;&nbsp;&nbsp; var</span><span>&nbsp;json&nbsp;=&nbsp;$.xml2json(xml);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; alert(json.message);&nbsp;&nbsp;</span></li>
    <li class=""><span>});&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>好了，看看基本的<a rel="external" href="http://www.94this.com.cn/myCode/jqueryXml2son/demo.html" target="_blank">演示</a>吧!（膘叔：演示地址仍然是亮亮的网站）</p>
<p>这个插件还有一个扩展的用法：<br />
基本的是把</p>
<p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;</span><span class="tag-name">animals</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">dog</span><span>&nbsp;</span><span class="attribute">color</span><span>=</span><span class="attribute-value">'Black'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">name</span><span class="tag">&gt;</span><span>Rufus</span><span class="tag">&lt;/</span><span class="tag-name">name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">breed</span><span class="tag">&gt;</span><span>labrador</span><span class="tag">&lt;/</span><span class="tag-name">breed</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">dog</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">dog</span><span>&nbsp;</span><span class="attribute">breed</span><span>=</span><span class="attribute-value">'whippet'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;Adopted&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">name</span><span class="tag">&gt;</span><span>Marty</span><span class="tag">&lt;/</span><span class="tag-name">name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">dog</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">cat</span><span>&nbsp;</span><span class="attribute">color</span><span>=</span><span class="attribute-value">&quot;White&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">name</span><span class="tag">&gt;</span><span>Matilda</span><span class="tag">&lt;/</span><span class="tag-name">name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">cat</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">animals</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
转化为<span>&nbsp;
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>{&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp; dog:[&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;name:<span class="string">'Rufus'</span><span>,&nbsp;breed:</span><span class="string">'labrador'</span><span>,&nbsp;color:</span><span class="string">'Black'</span><span>&nbsp;},&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;text:<span class="string">'Adopted'</span><span>,&nbsp;name:</span><span class="string">'Marty'</span><span>,&nbsp;breed:</span><span class="string">'whippet'</span><span>&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp; ],&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp; cat:{&nbsp;name:<span class="string">'Matilda'</span><span>,&nbsp;color:</span><span class="string">'White'</span><span>}&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
</span>扩展的作用是把每个节点转化为数组的形式，即
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>{&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp; dog:[&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;name:[<span class="string">'Rufus'</span><span>],&nbsp;breed:[</span><span class="string">'labrador'</span><span>],&nbsp;color:</span><span class="string">'Black'</span><span>&nbsp;},&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;text:<span class="string">'Adopted'</span><span>,&nbsp;name:[</span><span class="string">'Marty'</span><span>],&nbsp;breed:</span><span class="string">'whippet'</span><span>&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp; ],&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp; cat:[&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp; {&nbsp;name:<span class="string">'Matilda'</span><span>,&nbsp;color:</span><span class="string">'White'</span><span>}&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp; ]&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
</p>
<p>这个使用也简单，就多了一个参数：<br />
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>$.get(</span><span class="string">'data/animals.xml'</span><span>,&nbsp;</span><span class="keyword">function</span><span>(xml){&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">&nbsp;&nbsp; var</span><span>&nbsp;animals&nbsp;=&nbsp;$.xml2json(xml,&nbsp;</span><span class="keyword">true</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp; alert(animals.dog[1].name[0].text&nbsp;+<span class="string">'/'</span><span>+&nbsp;animals.dog[1].text);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>});&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
<br />
最后，看看所有用法的<a rel="external" href="http://www.94this.com.cn/myCode/jqueryXml2son/index.html" target="_blank">演示</a>(<span style="color: Red;">此演示官方提供</span>)吧！</p>]]></description>
			<link>http://www.neatstudio.com/show-359-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2008-11-25 09:07</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-358-1.shtml</guid>
			<title>轉貼：李一男2003年在港湾给开发人员培训时的语录</title>
			<author>gouki</author>
			<description><![CDATA[<p>李一男2003年在港湾给开发人员培训时的语录：</p>
<p>【1】好好规划自己的路，不要跟着感觉走！根据个人的理想决策安排，绝大部分人并不指望成为什么院士或教授，而是希望活得滋润一些，爽一些。那么， 就需要慎重安排自己的轨迹。从哪个行业入手，逐渐对该行业深入了解，不要频繁跳槽，特别是不要为了一点工资而转移阵地，从长远看，这点钱根本不算什么，当 你对一个行业有那么几年的体会，以后钱根本不是问题。频繁地动荡不是上策，最后你对哪个行业都没有摸透，永远是新手！</p>
<p>【2】可以做技术，切不可沉湎于技术。千万不可一门心思钻研技术！给自己很大压力，如果你的心思全部放在这上面，那么注定你将成为孔乙己一类的人物！适可而止为之，因为技术只不过是你今后前途的支柱之一，而且还不是最大的支柱，除非你只愿意到老还是个工程师！</p>
<p>【3】不要去做技术高手，只去做综合素质高手！在企业里混，我们时常瞧不起某人，说他&ldquo;什么都不懂，凭啥拿那么多钱，凭啥升官！&rdquo;这是普遍的典型的 工程师的迂腐之言。8051很牛吗？人家能上去必然有他的本事，而且是你没有的本事。你想想，老板搞经营那么多年，难道见识不如你这个新兵？人家或许善于 管理，善于领会老板意图，善于部门协调等等。因此务必培养自己多方面的能力，包括管理，亲和力，察言观色能力，攻关能力等，要成为综合素质的高手，则前途 无量，否则只能躲在角落看示波器！技术以外的技能才是更重要的本事！！从古到今，美国日本，一律如此！</p>
<p>【4】多交社会三教九流的朋友！不要只和工程师交往，认为有共同语言，其实更重要的是和其他类人物交往，如果你希望有朝一日当老板或高层管理，那么 你整日面对的就是这些人。了解他们的经历，思维习惯，爱好，学习他们处理问题的模式，了解社会各个角落的现象和问题，这是以后发展的巨大的本钱，没有这些 以后就会笨手笨脚，跌跌撞撞，遇到重重困难，交不少学费，成功的概率大大降低！</p>
<p>【5】知识涉猎不一定专，但一定要广！多看看其他方面的书，金融，财会，进出口，税务，法律等等，为以后做一些积累，以后的用处会更大！会少交许多学费！！</p>
<p>【6】抓住时机向技术管理或市场销售方面的转变！要想有前途就不能一直搞开发，适当时候要转变为管理或销售，前途会更大，以前搞技术也没有白搞，以 后还用得着。搞管理可以培养自己的领导能力，搞销售可以培养自己的市场概念和思维，同时为自己以后发展积累庞大的人 脉！应该说这才是前途的真正支柱。。?</p>
<p>【7】逐渐克服自己的心里弱点和性格缺陷！多疑，敏感，天真（贬义，并不可爱），犹豫不决，胆怯，多虑，脸皮太薄，心不够黑，教条式思维。。。这些 工程师普遍存在的性格弱点必须改变！很难吗？只在床上想一想当然不可能，去帮朋友守一个月地摊，包准有效果，去实践，而不要只想！不克服这些缺点，一切不 可能，甚至连项目经理都当不好--尽管你可能技术不错！</p>
<p>【8】工作的同时要为以后做准备！建立自己的工作环境！及早为自己配置一个工作环境，装备电脑，示波器（可以买个二手的），仿真器，编程器等，业余 可以接点活，一方面接触市场，培养市场感觉，同时也积累资金，更重要的是准备自己的产品，咱搞技术的没有钱，只有技术，技术的代表不是学历和证书，而是产 品，拿出象样的产品，就可技术转让或与人合作搞企业！先把东西准备好，等待机会，否则，有了机会也抓不住！</p>
<p>【9】要学会善于推销自己！不仅要能干，还要能说，能写，善于利用一切机会推销自己，树立自己的品牌形象，很必要！要创造条件让别人了解自己，不然 老板怎么知道你能干？外面的投资人怎么相信你？提早把自己推销出去，机会自然会来找你！搞个个人主页是个好注意！！特别是培养自己在行业的名气，有了名 气，高薪机会自不在话下，更重要的是有合作的机会...</p>
<p>原文來自：http://www.sanotes.net/html/y2008/229.html</p>
<p>突然輸出的就全是繁體字了。。感慨一下。</p>
<p>2003年的話到現在仍然有用啊。在這個寒冬里面，這些話，我們繼續溫習一下</p>]]></description>
			<link>http://www.neatstudio.com/show-358-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-11-24 23:24</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-357-1.shtml</guid>
			<title>病了，暂不更新</title>
			<author>gouki</author>
			<description><![CDATA[<p>终于倒下了。。。</p>]]></description>
			<link>http://www.neatstudio.com/show-357-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2008-11-23 09:40</pubDate>
		</item>
	</channel>
</rss>
