<?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:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>传奇居家男</title>
	<atom:link href="http://kang.fm/feed" rel="self" type="application/rss+xml" />
	<link>http://kang.fm</link>
	<description>不演歌剧的程序员做不了好厨子.</description>
	<lastBuildDate>Mon, 20 Feb 2012 13:24:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>如何在Windows中方便的输入意大利语、德语及法语中的特殊字符</title>
		<link>http://kang.fm/archives/739</link>
		<comments>http://kang.fm/archives/739#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:16:44 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[美声与歌剧]]></category>
		<category><![CDATA[德语]]></category>
		<category><![CDATA[意大利语]]></category>
		<category><![CDATA[歌剧]]></category>
		<category><![CDATA[法语]]></category>
		<category><![CDATA[特殊字符]]></category>

		<guid isPermaLink="false">http://kang.fm/?p=739</guid>
		<description><![CDATA[最近空闲的时候背背歌词中的单词, 用的Anki, 自己输单词自己输意思那种土办法, 因为歌词法意德语都有, 好多特殊字符输入起来很麻烦, 我又不是生活在欧洲国家, 给三种语言各加一个键盘布局然后切来切去我觉得很麻烦&#8230;后来在网上查查发现有个好方法, 不能算是最好的, 但是目前来说最适合我的情况, 在这儿记下来, 也算是分享一下. Windows本身自带了一个叫US &#8211; International的键盘布局, 支持输入不同语言中的特殊字符, 同时又不影响英文的正常输入 (这样既可以输入不同语言的单词, 又不用去记特殊的键盘布局影响我输入单词的中英文词义) . 先讲下不同语言特殊符号的输入方法, 文章最后会讲解如何安装US &#8211; International键盘布局 &#160; 意/法 闭音符(Acute Accent) (`+ 元音) &#8211; 先按一下 ` 键再输入元音(如果要输入大写字母只要照常加按Shift键就可以, 下同) 例如: ` + e = è &#160; 意/法 开音符(Grave Accent) (&#8216; + 元音) &#8211; 先按一下 &#8216; 键再输入元音 例如: &#8216; + a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://upload.wikimedia.org/wikipedia/commons/3/31/Left_side_of_modern_US-International_keyboard.JPG" alt="" width="240" height="180" /></p>
<p>最近空闲的时候背背歌词中的单词, 用的Anki, 自己输单词自己输意思那种土办法, 因为歌词法意德语都有, 好多特殊字符输入起来很麻烦, 我又不是生活在欧洲国家, 给三种语言各加一个键盘布局然后切来切去我觉得很麻烦&#8230;后来在网上查查发现有个好方法, 不能算是最好的, 但是目前来说最适合我的情况, 在这儿记下来, 也算是分享一下.</p>
<p>Windows本身自带了一个叫US &#8211; International的键盘布局, 支持输入不同语言中的特殊字符, 同时又不影响英文的正常输入 (这样既可以输入不同语言的单词, 又不用去记特殊的键盘布局影响我输入单词的中英文词义) .</p>
<p>先讲下不同语言特殊符号的输入方法, 文章最后会讲解如何安装US &#8211; International键盘布局</p>
<p>&nbsp;</p>
<p><strong>意/法 闭音符(Acute Accent)</strong></p>
<p><strong>(`+ 元音)</strong> &#8211; 先按一下 ` 键再输入元音(如果要输入大写字母只要照常加按Shift键就可以, 下同)</p>
<p><strong>例如</strong>: ` + e = <strong>è</strong></p>
<p>&nbsp;</p>
<p><strong>意/法 开音符(Grave Accent)</strong></p>
<p><strong>(&#8216; + 元音)</strong> &#8211; 先按一下 &#8216; 键再输入元音</p>
<p><strong>例如</strong>: &#8216; + a = <strong>á</strong></p>
<p>&nbsp;</p>
<p><strong>法语 分音符/德语 变元音(Umlaut Accent)</strong></p>
<p><strong>(” + 元音)</strong> &#8211; 先按一下 ” 键再输入元音</p>
<p><strong>例如</strong>: ” + o = <strong>ö</strong></p>
<p>&nbsp;</p>
<p><strong>法语 长音符(Circumflex Accent)</strong></p>
<p><strong>(SHIFT + 6 + 元音) </strong>- 先同时按下SHIFT键及数字6键, 再输入元音</p>
<p><strong>例如</strong>: SHIFT + 6 + u = <strong>û</strong></p>
<p>&nbsp;</p>
<p><strong>法语中的ç</strong></p>
<p>按住 右ALT键 + ,</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>德语中的ß</strong></p>
<p>按住 右ALT键 + S</p>
<p>&nbsp;</p>
<p><strong>符号€</strong></p>
<p><strong>输入方式</strong>: CTRL键 + 右ALT键 + 5</p>
<p>&nbsp;</p>
<p>注: 法语中的œ及Œ无法用此方法打出, 只能用OE代替或直接用ALT键 + 0140及0156输入</p>
<p>&nbsp;</p>
<p><strong>US-International 键盘布局在Windows中的安装方法</strong></p>
<p>1. 开始 –&gt; 控制面板 –&gt; 地区与语言设置 –&gt; 键盘与语言选项卡 –&gt; 更改键盘设置</p>
<p><a href="http://kang.fm/wp-content/uploads/2012/02/image.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://kang.fm/wp-content/uploads/2012/02/image_thumb.png" alt="image" width="640" height="449" border="0" /></a></p>
<p>2. 选中中文输入 –&gt; 点击”添加”按钮 –&gt; 勾上”显示更多”</p>
<p><a href="http://kang.fm/wp-content/uploads/2012/02/image1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://kang.fm/wp-content/uploads/2012/02/image_thumb1.png" alt="image" width="640" height="333" border="0" /></a></p>
<p>3. 勾上”United States-International” –&gt; 依次点击三次三个窗口中的”确定”按钮</p>
<p><a href="http://kang.fm/wp-content/uploads/2012/02/image2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://kang.fm/wp-content/uploads/2012/02/image_thumb2.png" alt="image" width="417" height="480" border="0" /></a></p>
<p>4. 大功告成, 使用的时候就像一般输入法一样调用就可以.</p>
<p>&nbsp;</p>
<p>如有建议请在下面评论中回复, 谢谢! =)</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/739/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>提问的艺术</title>
		<link>http://kang.fm/archives/721</link>
		<comments>http://kang.fm/archives/721#comments</comments>
		<pubDate>Mon, 13 Feb 2012 00:24:45 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[美声与歌剧]]></category>
		<category><![CDATA[声乐]]></category>
		<category><![CDATA[提问]]></category>
		<category><![CDATA[歌剧]]></category>
		<category><![CDATA[美声]]></category>

		<guid isPermaLink="false">http://kang.fm/?p=721</guid>
		<description><![CDATA[作者王亢 “在包括声乐在内的很多领域里，你在网络上所提问题的解答很大程度上会取决于你提问的方式和解决这个问题的难度，这篇文章将尽量向大家解释如何提问才更有可能得到你需要的答复。” 本文较长，如果感觉看不完，请至少读完粗体部分，谢谢！=） &#160; &#160; &#160; &#160; 本文改编自IT界一篇著名的文章“提问的智慧”（作者Eric Steven Raymond） 原版连接：http://www.catb.org/~esr/faqs/smart-questions.html  中文翻译连接：http://www.beiww.com/doc/oss/smart-questions.html） 感谢写作过程中提供帮助与建议的老金、猫大人及我的母亲大人。 转载请注明作者及原文连接 http://kang.fm/archives/721 ，谢谢。 唠在前面的嗑儿 经常看到学习美声的同学们在贴吧，人人网，微博和QQ群里提到的各种问题，有些值得思考而且可以引出很多有意义的讨论，另外一些则时常让人无语、被人忽略、甚至激起反感。接二连三的目睹提问者、回答者与旁人之间的不愉快让我想起了IT界很著名的一篇文章“提问的智慧”，讲的是在计算机相关的论坛与聊天室中有关提问的智慧。在这里我会把这篇文章精简改编，以适用于广大美声与歌剧相关的学生和爱好者们，又因为我们是艺术领域的，所以这篇文章就叫“提问的艺术”吧。 在包括声乐在内的很多领域里，你在网络上所提问题的解答很大程度上会取决于你提问的方式和解决这个问题的难度，这篇文章将尽量向大家解释如何提问才更有可能得到你需要的答复。 请明确一点：我们并不是在这里教育你该如何发言，如何发言完全取决于你自己，而我们也会在我们管理的领域里在不干扰他人正常交流的情况下尽量悍卫你的言论自由（被官方和谐的情况除外）—— 这篇文章的意义仅在于帮助更多人了解如何更好的发问和与人交流以获得自己想要的答案以及更多有用的信息。 首先想让大家知道的是我们在网络上针对美声与歌剧的交流探讨，最终目的都是直接或间接的能从彼此的问题与答案中获取知识或者说有实际意义的信息（仅为社交而社交的情形除外），无论是贴吧、QQ群还是人人网公共主页的管理者以及经常分享贡献有用资料的人，我们大多数都是自愿者，从自己繁忙的学习生活和工作中抽出时间来为大家服务，都会有力不从心的时候。因此，很多时候我们会毫不留情的滤除一些问题，特别是那些在我们看来像是“懒人”所提的，以便更有效的把回答问题的时间留给那些勤于动手动脑的人。 如果你认为这种态度令人反感、是以施惠者自居或是傲慢自大，那么请站在双方的角度上重新思考一下。事实上，如果你自己在提问之前已经做了功课 —— 比如来问有没有某首咏叹调的谱子之前起码去IMSLP电子图书馆（ http://imslp.org/wiki/ ）上稍微看上一眼，我们大多都非常愿意跟你平等的交流，但那些不愿自助自救的人却没有什么值得帮助的地方，因为那其实是对双方时间的一种浪费。 所以，你并不需要是一个不错的歌者，或是一个知识渊博的爱好者，但你必须表现得很乐于动手与动脑 —— 比如碰到英文起码查查手边或是电脑上的字典，如果你连这么基本的事都做不到，我们建议你付钱找专业老师或是艺术指导提问，而不是要求大家的无偿帮助。 如果你决定向大家提问或是寻求某方面的帮助，那么得到快速有效回答的最好方法就是使你看起来像一个聪明、自信、有想法又勤于动手动脑的人。 提问前 在通过QQ群，人人网，微博或是百度贴吧提问前，请至少自己动手完成以下几条： 尝试在你准备提问的地方的历史记录中搜索答案（公共主页的留言记录、微博与百度贴吧的贴子与回复中等） 尝试搜索互联网以找到答案（比如找谱子的同学们，请先去 http://imslp.org/wiki/ 或者谷歌/百度一下你想要的谱子，至少花上10分钟自己的时间） 尝试从不同的书籍上找到答案 尝试自己尝试以得到答案 尝试请教你身边懂行的人以得到答案 如果你是学生，请尝试向你的专业老师和艺术指导先提问，他们更了解你自身的情况，更能给出适合你的解答 提问时，请先简略的表明你已经做了以上的表情，这将有助于建立你不是无底洞并乐于浪费别人时间的印象（-_-b）。最好再提一提你在这个过程中学到的东西，大家都喜欢跟那些擅于自学的人交流。认真的思考，准备好你的问题。轻率的提问通常只会得到轻率的回答，或者干脆被无视。提问时你越能表现出你此前为解决这个问题而做出的努力，你就越有可能得到真正的帮助。 永远不要假设你有资格得到解答，没有人有这种资格，毕竟谁也没为答案付费。如果你并不是仅仅消极的要求获取他人的知识，而是能够提出有内容、能引出有意义的探讨的问题 —— 这种问题对于任何类似贴吧或者是QQ群这样的社区都是贡献性的，那么你肯定会“赚到”你的答案。 另外，表明你乐于参与自己的问题的解决也是一个不错的开始，比如“我自己的谱子丢了，请问哪个网站上可以找到‘冰凉的小手’这首咏叹调的谱子暂时应急？”，通常要比“跪求‘冰凉的小手’谱子，谢谢！！”这样的问题更容易得到回复，因为你表明了只要有人能给你指个方向，你就乐于自己完成剩下的过程。 提问 以下总结了几个提问中要注意的问题，有的相对概括，有的较为具体。 不要反复刷屏同样的问题（在贴吧因为没有人回复就反复发相同的贴子或是在QQ群中重复刷屏发送一样的问题）。这种方法确实有可能引起人的注意，但是更可能同时引出反感，在贴吧中经常会被直接删贴，在QQ群中可能管理员干脆就把你踢了，因为刷屏归根结底是一件不礼貌的事情，尤其是某些朋友为了引起注意会用巨大鲜艳的字体反复在QQ群里发同样的一段话 —— 对待这种人，大部分管理员都是踢之而后快。 尽量不要直接单独发消息给既非熟人也没有义务解决你问题的人。每个人都有自己的个人生活，如果你们并不很熟，而这人也没有义务回答你的问题（没人有这个义务，除非你这是付费服务……）那么最好不要反复单独发消息打扰别人的正常学习与工作，这是一种礼节，但在目前的互联网大环境中却常常被忽视，这时常导致一些很尴尬的结果 —— 比如你被直接无视，或是被劈头盖脸的教育一番，这其实可以理解，因为很多管理员或者在论坛和QQ群中无偿贡献资料的人可能正在承受过多的此类消息，你的消息可能会是压垮骆驼背的那最后一根稻草，让对方彻底的走入极端。这种单独的交流其实更适合留在你与你专业老师的一对一的课堂上，你的老师才是有义务回答你问题的人，同时因为面对面以及互相更为了解的缘故，你的老师时常能够更为有针对性的解决你的问题。 使用有意义且明确的题目。在论坛里，一个贴子的主题是你写明问题、吸引有兴趣的人来查看并尝试解决的机会，不要用“跪求大侠帮忙！！”、“请问”、“求解”或是“救命啊！！！”这一类的主题，它们的适用范围实在太广，一眼看过去根本不知道你到底有什么问题，尤其像“救命啊！！！”这种其实更适合打电话给110。在QQ群中有时有人会说“能问个问题么？”或是“有人吗？”，群里肯定是有人的，问问题肯定也是可以的，但是每个人都有别的事要忙，看到这种磨矶的问法，大多数人可能会选择无视你。不要在论坛或QQ群中尝试用你对此问题的苦闷程度来打动大家或者是靠你的过份礼貌来博取同情跟关爱（-_-），相反，请尽量在有限的几个字里简明的描述你的问题。 [...]]]></description>
			<content:encoded><![CDATA[<p>作者王亢</p>
<p><span style="font-size: small;"><strong><img class="size-medium wp-image-729 alignright" title="SIRI" src="http://kang.fm/wp-content/uploads/2012/02/siri_find_my_shoes-300x225.png" alt="" width="300" height="225" />“在包括声乐在内的很多领域里，你在网络上所提问题的解答很大程度上会取决于你提问的方式和解决这个问题的难度，这篇文章将尽量向大家解释如何提问才更有可能得到你需要的答复。”</strong></span></p>
<p><span style="color: #333333; font-size: small;"><strong>本文较长，如果感觉看不完，请至少读完粗体部分，谢谢！=）</strong></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr />
<blockquote><p><span style="color: #666666;">本文改编自IT界一篇著名的文章“提问的智慧”（作者Eric Steven Raymond）</span></p>
<p><span style="color: #666666;">原版连接：</span><a href="http://www.catb.org/~esr/faqs/smart-questions.html"><span style="color: #666666;">http://www.catb.org/~esr/faqs/smart-questions.html</span></a><span style="color: #666666;"> </span></p>
<p><span style="color: #666666;">中文翻译连接：</span><a href="http://www.beiww.com/doc/oss/smart-questions.html"><span style="color: #666666;">http://www.beiww.com/doc/oss/smart-questions.html</span></a><span style="color: #666666;">）</span></p>
<p><span style="color: #666666;">感谢写作过程中提供帮助与建议的<strong>老金</strong>、<strong>猫大人及我的母亲大人</strong>。</span></p>
<p><strong><span style="color: #666666;">转载请注明作者及原文连接 </span></strong><a href="http://kang.fm/archives/721"><strong><span style="color: #666666;">http://kang.fm/archives/721</span></strong></a><strong><span style="color: #666666;"> ，谢谢。</span></strong></p></blockquote>
<hr />
<h2>唠在前面的嗑儿</h2>
<p>经常看到学习美声的同学们在贴吧，人人网，微博和QQ群里提到的各种问题，有些值得思考而且可以引出很多有意义的讨论，另外一些则时常让人无语、被人忽略、甚至激起反感。接二连三的目睹提问者、回答者与旁人之间的不愉快让我想起了IT界很著名的一篇文章“提问的智慧”，讲的是在计算机相关的论坛与聊天室中有关提问的智慧。在这里我会把这篇文章精简改编，以适用于广大美声与歌剧相关的学生和爱好者们，又因为我们是艺术领域的，所以这篇文章就叫<strong>“提问的艺术”</strong>吧。</p>
<p>在包括声乐在内的很多领域里，你在网络上所提问题的解答很大程度上会取决于你提问的方式和解决这个问题的难度，这篇文章将尽量向大家解释如何提问才更有可能得到你需要的答复。</p>
<p><strong>请明确一点：我们并不是在这里教育你该如何发言，如何发言完全取决于你自己，而我们也会在我们管理的领域里在不干扰他人正常交流的情况下尽量悍卫你的言论自由（被官方和谐的情况除外）—— 这篇文章的意义仅在于帮助更多人了解如何更好的发问和与人交流以获得自己想要的答案以及更多有用的信息。</strong></p>
<p>首先想让大家知道的是我们在网络上针对美声与歌剧的交流探讨，最终目的都是直接或间接的能从彼此的问题与答案中获取知识或者说有实际意义的信息（仅为社交而社交的情形除外），无论是贴吧、QQ群还是人人网公共主页的管理者以及经常分享贡献有用资料的人，我们大多数都是自愿者，从自己繁忙的学习生活和工作中抽出时间来为大家服务，都会有力不从心的时候。因此，很多时候我们会毫不留情的滤除一些问题，特别是那些在我们看来像是“懒人”所提的，以便更有效的把回答问题的时间留给那些勤于动手动脑的人。</p>
<p>如果你认为这种态度令人反感、是以施惠者自居或是傲慢自大，那么请站在双方的角度上重新思考一下。事实上，如果你自己在提问之前已经做了功课 —— 比如来问有没有某首咏叹调的谱子之前起码去IMSLP电子图书馆（ <a href="http://imslp.org/wiki/">http://imslp.org/wiki/</a> ）上稍微看上一眼，我们大多都非常愿意跟你平等的交流，但那些不愿自助自救的人却没有什么值得帮助的地方，因为那其实是对双方时间的一种浪费。</p>
<p>所以，你并不需要是一个不错的歌者，或是一个知识渊博的爱好者，但你必须表现得很乐于动手与动脑 —— 比如碰到英文起码查查手边或是电脑上的字典，如果你连这么基本的事都做不到，我们建议你付钱找专业老师或是艺术指导提问，而不是要求大家的无偿帮助。</p>
<p>如果你决定向大家提问或是寻求某方面的帮助，那么得到快速有效回答的最好方法就是使你看起来像一个聪明、自信、有想法又勤于动手动脑的人。</p>
<h2><strong>提问前</strong></h2>
<p>在通过QQ群，人人网，微博或是百度贴吧提问前，请至少自己动手完成以下几条：</p>
<ol>
<li><strong>尝试在你准备提问的地方的历史记录中搜索答案（公共主页的留言记录、微博与百度贴吧的贴子与回复中等）</strong></li>
<li><strong>尝试搜索互联网以找到答案（比如找谱子的同学们，请先去 http://imslp.org/wiki/ 或者谷歌/百度一下你想要的谱子，至少花上10分钟自己的时间）</strong></li>
<li><strong>尝试从不同的书籍上找到答案</strong></li>
<li><strong>尝试自己尝试以得到答案</strong></li>
<li><strong>尝试请教你身边懂行的人以得到答案</strong></li>
<li><strong>如果你是学生，请尝试向你的专业老师和艺术指导先提问，他们更了解你自身的情况，更能给出适合你的解答</strong></li>
</ol>
<p>提问时，请先简略的表明你已经做了以上的表情，这将有助于建立你不是无底洞并乐于浪费别人时间的印象（-_-b）。最好再提一提你在这个过程中学到的东西，大家都喜欢跟那些擅于自学的人交流。认真的思考，准备好你的问题。轻率的提问通常只会得到轻率的回答，或者干脆被无视。<strong>提问时你越能表现出你此前为解决这个问题而做出的努力，你就越有可能得到真正的帮助。</strong></p>
<p><strong>永远不要假设你有资格得到解答，没有人有这种资格，毕竟谁也没为答案付费</strong>。如果你并不是仅仅消极的要求获取他人的知识，而是能够提出有内容、能引出有意义的探讨的问题 —— 这种问题对于任何类似贴吧或者是QQ群这样的社区都是贡献性的，那么你肯定会“赚到”你的答案。</p>
<p>另外，<strong>表明你乐于参与自己的问题的解决也是一个不错的开始</strong>，比如“我自己的谱子丢了，请问哪个网站上可以找到‘冰凉的小手’这首咏叹调的谱子暂时应急？”，通常要比“跪求‘冰凉的小手’谱子，谢谢！！”这样的问题更容易得到回复，因为你表明了只要有人能给你指个方向，你就乐于自己完成剩下的过程。</p>
<h2><strong>提问</strong></h2>
<p>以下总结了几个提问中要注意的问题，有的相对概括，有的较为具体。</p>
<ol>
<li><strong>不要反复刷屏同样的问题</strong>（在贴吧因为没有人回复就反复发相同的贴子或是在QQ群中重复刷屏发送一样的问题）。这种方法确实有可能引起人的注意，但是更可能同时引出反感，在贴吧中经常会被直接删贴，在QQ群中可能管理员干脆就把你踢了，因为刷屏归根结底是一件不礼貌的事情，尤其是某些朋友为了引起注意会用巨大鲜艳的字体反复在QQ群里发同样的一段话 —— 对待这种人，大部分管理员都是踢之而后快。</li>
<li><strong>尽量不要直接单独发消息给既非熟人也没有义务解决你问题的人</strong>。每个人都有自己的个人生活，如果你们并不很熟，而这人也没有义务回答你的问题（没人有这个义务，除非你这是付费服务……）那么最好不要反复单独发消息打扰别人的正常学习与工作，这是一种礼节，但在目前的互联网大环境中却常常被忽视，这时常导致一些很尴尬的结果 —— 比如你被直接无视，或是被劈头盖脸的教育一番，这其实可以理解，因为很多管理员或者在论坛和QQ群中无偿贡献资料的人可能正在承受过多的此类消息，你的消息可能会是压垮骆驼背的那最后一根稻草，让对方彻底的走入极端。这种单独的交流其实更适合留在你与你专业老师的一对一的课堂上，你的老师才是有义务回答你问题的人，同时因为面对面以及互相更为了解的缘故，你的老师时常能够更为有针对性的解决你的问题。</li>
<li><strong>使用有意义且明确的题目</strong>。在论坛里，一个贴子的主题是你写明问题、吸引有兴趣的人来查看并尝试解决的机会，不要用“跪求大侠帮忙！！”、“请问”、“求解”或是“救命啊！！！”这一类的主题，它们的适用范围实在太广，一眼看过去根本不知道你到底有什么问题，尤其像“救命啊！！！”这种其实更适合打电话给110。在QQ群中有时有人会说“能问个问题么？”或是“有人吗？”，群里肯定是有人的，问问题肯定也是可以的，但是每个人都有别的事要忙，看到这种磨矶的问法，大多数人可能会选择无视你。不要在论坛或QQ群中尝试用你对此问题的苦闷程度来打动大家或者是靠你的过份礼貌来博取同情跟关爱（-_-），相反，请尽量在有限的几个字里简明的描述你的问题。</li>
<li><strong>尽量用意思清晰且无错别字的语句来书写你的问题</strong>。根据以往的经验，问题写得粗心且草率的人通常在求学过程中对问题的思考也是如此，看到你充满错字、表意混乱的问题，我们宁可把给你解答问题的时间花在其它地方。清楚、良好地表达你的问题非常重要，我知道大部分人用拼音输入法，觉得只要字音打对了差不多就行了，但是如果你认为花点时间组织句子并纠正错别字这件事都很麻烦，大家会觉得给你解答问题更加麻烦！一般而言，如果你写问题像个半文盲似的傻子，或是在你的问题里加入很多奇怪的符号，那么你的问题很有可能不会有人理睬，所以请尽量用些心思组织你的句子并少打错别字。</li>
<li><strong>不要把问题写得很紧急，哪怕你确实很着急</strong>。这是你的问题，不是我们的。写上“紧急”或者是“急急急！！”很有可能事与愿违：有些管理员会直接删除这种贴子，因为他们认为这是对其它提问者的无礼和自私的企图得到即时与特殊的关照。</li>
<li><strong>找人点评你的录音，请尽量先发到优酷或土豆一类的网站上，并虚心接受点评</strong>。大家的时间都有限，QQ上单独发送或是以电子邮件的形式发送都会浪费彼此的时间，如果你有录音，请尽量先发到一个分享网站上，只需要给大家一个连接，每个人一点击就可以直接观看，方便快捷，更容易得到大家的评论。如果你只想给少数几个人听，可以设上密码或是在大家看完后再从网站上删掉。得到大家的点评时请虚心接受，有时会看到某些贴子里点评与被点评者吵起来的情况，我想说如果你是真心想来听大家的点评的，那就虚心接受，否则往后还有谁敢给你提建议呢？如果你只是想来找优越感的，那你可能来错了地方也用错了方式。</li>
<li><strong>找谱子请先自己找身边人问问，图书馆里看看，或是去IMSLP电子图书馆和谷歌上搜索一下</strong>。找谱子的问题实在是最让人纠结的问题之一，很多人喜欢在论坛或群里直接发问寻某首歌曲的谱子，更有甚者直接向管理员单独提问，没得到回复的人很多会反复发送同样的消息。这件事情其实十分浪费彼此的精力与时间。实话实说，据我所知，有些管理员是会完全无视此类问题的。正如上面一节提问前的准备工作中提到的，找谱前<strong>请至少自己搜索一次IMSLP电子图书馆（<a href="http://imslp.org/wiki/">http://imslp.org/wiki/</a>）和谷歌</strong>，并至少问问你身边的人，如你的专业老师、同学、艺术指导等等，再去你本地的图书馆里看看。找谱这件事实在是一个一般人力所能及的事，几乎所有已在版权公共领域且有点知名度的艺术歌曲、歌剧曲谱都可以在IMSLP电子图书馆（ <a href="http://imslp.org/wiki/">http://imslp.org/wiki/</a> ）和谷歌找到。只需下些功夫，碰到外文查一查字典，完全不需麻烦其它人，要知道很多时候答应帮你找谱子的人也是通过同样的渠道去帮你完成本应你自己动手做的事，你又有什么资格因为自己的懒惰去浪费别人的时间呢？当然此事也有例外，有时有的朋友做了以上所有的功课但仍然无法找到自己需要的谱子，这时请尽量在你的问题中提及你所做的工作，好让人知道你并不只想坐享其成，这样你将更容易得到帮助，万一正好有一个人手头上有自己扫描的版本也说不定。</li>
<li><strong>礼貌用语应是基本常识</strong>。有时会碰到一些奇特的提问者，自己有问题需要解答却还像大爷一样，这样的人通常很难得到他所需要的回答。所以请尽量礼貌一点，使用“请”和“谢谢你的帮助”等词并不会浪费你多少时间，但是会让别人明白你感谢他们无偿的花时间帮助你。当你的问题得到完美的解答后，也请回复一条以表谢意，至少让对方知道他/她的时间没有被白白浪费。</li>
<li><strong>应对无礼请心平气和，尽量不要让自己卷入口水战</strong>。有时你会碰到很无礼的回答者或是非常一针见血式的评判，如果你觉得被冒犯了，请试着平静的反应，看看是否确实是自己的问题，如果是，那么试着理解对方的观点（也许问题真正的答案就隐藏在这看似无理的批判中），修正自己的问题。如果你并没有什么问题，而对方确实是在无理的恶意挑衅，那么试着在屏幕前深呼吸并微笑，这些都没什么大不了的，愤怒并失去理智会让你说出很多不该说的话并把你自己拖入口水战的泥潭，这与你获得有用的信息这个目的背道而驰，而且是纯粹地浪费时间与生命，另外，少发脾气确实对身体健康十分有益 =) 。</li>
<li><strong>得不到回答时请有耐心</strong>。如果你的问题得不到回答，请不要认为大家不想帮你，有时只是因为看到这问题的朋友并不知道答案，反复的发送同一个问题很有可能被视为无意义的骚扰，耐心一点， 可能知道你答案的人生活在另一个时区现在正在睡觉（学习美声的朋友五湖四海，很多能人都在不同的国家）或是正忙于自己的工作和学习。</li>
</ol>
<p><strong>再次明确这一点：我们并不是在这里教育你该如何发言，如何发言完全取决于你自己，而我们也会在我们管理的领域里在不干扰他人正常交流的情况下尽量悍卫你的言论自由（被官方和谐的情况除外）—— 这篇文章的意义仅在于帮助更多人了解如何更好的发问和与人交流以获得自己想要的答案以及更多有用的信息。</strong></p>
<h2><strong><span style="color: #ff0000;">如何更好地回答</span></strong></h2>
<ol>
<li><span style="color: #333333;">态度和善一点，问题带来的压力常使人显得无礼和愚蠢，其实并不是这样。 </span></li>
<li><span style="color: #333333;">对初犯者私下回复，对那些坦诚犯错的人没有必要当众羞辱。 </span></li>
<li><span style="color: #333333;">如果你不确定，请告诉对方，一个听起来权威的错误回复比没回复还糟，别因为感觉很牛就像专家一样给别人乱指路。要谦虚并且诚实，给提问者和同行都树个好榜样。 </span></li>
<li><span style="color: #333333;">如果觉得对方的问题很傻，也用不着恶意的挖苦讽刺，每个人都是从不懂到懂一点点走过来的。 </span></li>
<li><span style="color: #333333;">探索性的反问以引出更多的细节，这样你们彼此都可以从中学到点东西，试试将傻问题变成一个好问题，别忘了我们曾经都是初学者。 </span></li>
<li><span style="color: #333333;">尽管告诉某些人“谱子自己去找”是正当的，但是适当的给出个大方向（如IMSLP图书馆的地址或是一个大概的搜索关键字）会更好。 </span></li>
<li><span style="color: #333333;">如果你决心回答这个问题，就请给出好的答案，否则是在浪费大家的时间。 </span></li>
<li><span style="color: #333333;">授人以鱼，不如授人以渔。</span></li>
<li><strong><span style="color: #0000ff;">最最重要的一点，请记住：己所不欲，勿施于人。</span></strong></li>
</ol>
<p><strong><br />
</strong></p>
<p><strong>美声与歌剧方面常用的工具网站</strong></p>
<p><strong><br />
</strong></p>
<ol>
<li>IMSLP电子图书馆（中文首页） <a href="http://imslp.org/wiki/%E9%A6%96%E9%A1%B5">http://imslp.org/wiki/%E9%A6%96%E9%A1%B5</a> —— 找谱请来这里，看不懂的英文可查字典</li>
<li>YouTube 油管 <a href="http://www.youtube.com/">http://www.youtube.com/</a> —— 需翻墙，翻墙工具请自行寻找，这里有许多歌唱家的音像资料</li>
<li>优酷 <a href="http://www.youku.com/">http://www.youku.com/</a> —— 可以用来上传你自己的录音录像，也可以找到许多歌唱家的音像资料甚至歌剧全剧</li>
<li>土豆 <a href="http://www.tudou.com/">http://www.tudou.com/</a> —— 同上</li>
<li>中文维基百科 <a href="http://zh.wikipedia.org/wiki/Wikipedia:%E9%A6%96%E9%A1%B5">http://zh.wikipedia.org/wiki/Wikipedia:%E9%A6%96%E9%A1%B5</a> —— 可能需要翻墙，可以找到许多美声与歌剧相关的文字资料，英文维基百科上的资料更全</li>
<li>最后的最后，外事不决问谷歌： <a href="http://www.google.com/">http://www.google.com/</a></li>
</ol>
<p>（如有其它工具网站请在下面评论中补充，谢谢）</p>
<p>&nbsp;</p>
<p>本文改编自IT界一篇著名的文章“提问的智慧”（作者Eric Steven Raymond）</p>
<p>原版连接：<a href="http://www.catb.org/~esr/faqs/smart-questions.html">http://www.catb.org/~esr/faqs/smart-questions.html</a></p>
<p>中文翻译连接：<a href="http://www.beiww.com/doc/oss/smart-questions.html">http://www.beiww.com/doc/oss/smart-questions.html</a></p>
<p>感谢写作过程中提供帮助与建议的<strong>老金</strong>、<strong>猫大人及我的母亲大人</strong>。</p>
<p><strong>转载请注明作者及原文连接 </strong><a href="http://kang.fm/archives/721"><strong>http://kang.fm/archives/721</strong></a><strong> ，谢谢</strong></p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/721/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>澳洲古典乐杂志Limelight上关于我的采访</title>
		<link>http://kang.fm/archives/704</link>
		<comments>http://kang.fm/archives/704#comments</comments>
		<pubDate>Fri, 27 Jan 2012 12:23:55 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[美声与歌剧]]></category>

		<guid isPermaLink="false">http://kang.fm/?p=704</guid>
		<description><![CDATA[好久没写博客了, 正好去年12月澳洲古典乐杂志Limelight上登了一篇关于我的采访, 帮我爹妈翻译了一份, 顺便也发博客上. &#160; 标题 请欢迎王亢 副标题 对一名澳洲杰出的青年艺术家关于音乐, 表演与未来的采访 出生在中国 &#124; 男高音 &#124; 生活在布里斯班 &#160; - 你在学IT的过程中决定改行搞声乐, 是什么引起了你这种转变呢? 我一直都想把歌唱做为我的事业, 编程只是我的一个爱好, 同时也是一条后路 &#8211; 如果歌唱这条路走不通的话! - 你会推荐其它的业余歌手像你一样进行这种转变么? 实话实说, 在遇到我现在的老师Joseph Ward以前, 我并不知道我这条路是否能在澳洲走得通. 我的老师曾与澳洲著名花腔女高音萨瑟兰女爵在英国科文特花园同台演出, 在我改行的过程中他也极大的鼓舞了我. 所以我认为如果你身边有这么一个人, 他十分的了解这个行业, 同时又对你的成功深信不疑, 那么你就应该勇敢的做出决定. 当初这对我来说也是一个艰难的决定,  但是我相信这个世上任何东西都来之不易, 想不冒点险是不可能的. - 你父母都是歌唱演员, 在这样一个环境下长大感觉是怎样的? 我父亲一直想让我成为一个歌剧演员, 我四岁那年父母也曾把我送去学习钢琴. 我是耳边伴着各种歌剧咏叹调长大的, 但是直到几年前我才意识到这样一个成长的环境对我现在事业的意义有多么重大. - 我们知道你参加过几次声乐比赛, 你觉得这些经历的感觉如何? 事实上我非常享受准备比赛的过程, 它能敦促我去学习新东西, 并不断完善我的技巧. 另外能听到其它同龄的歌手并跟这些与你拥有同一个梦想的歌手们成为朋友也是一件很享受的事. - 你认为在音乐文化中比赛是否是一个有用的部分? [...]]]></description>
			<content:encoded><![CDATA[<p>好久没写博客了, 正好去年12月澳洲古典乐杂志Limelight上登了一篇关于我的采访, 帮我爹妈翻译了一份, 顺便也发博客上.</p>
<p>&nbsp;</p>
<p><strong>标题 请欢迎王亢</strong></p>
<p><strong>副标题 对一名澳洲杰出的青年艺术家关于音乐, 表演与未来的采访</strong></p>
<p>出生在中国 | 男高音 | 生活在布里斯班</p>
<p>&nbsp;</p>
<p><strong>- 你在学IT的过程中决定改行搞声乐, 是什么引起了你这种转变呢?</strong></p>
<p>我一直都想把歌唱做为我的事业, 编程只是我的一个爱好, 同时也是一条后路 &#8211; 如果歌唱这条路走不通的话!</p>
<p><strong>- 你会推荐其它的业余歌手像你一样进行这种转变么?</strong></p>
<p>实话实说, 在遇到我现在的老师Joseph Ward以前, 我并不知道我这条路是否能在澳洲走得通. 我的老师曾与澳洲著名花腔女高音萨瑟兰女爵在英国科文特花园同台演出, 在我改行的过程中他也极大的鼓舞了我. 所以我认为如果你身边有这么一个人, 他十分的了解这个行业, 同时又对你的成功深信不疑, 那么你就应该勇敢的做出决定. 当初这对我来说也是一个艰难的决定,  但是我相信这个世上任何东西都来之不易, 想不冒点险是不可能的.</p>
<p><strong>- 你父母都是歌唱演员, 在这样一个环境下长大感觉是怎样的?</strong></p>
<p>我父亲一直想让我成为一个歌剧演员, 我四岁那年父母也曾把我送去学习钢琴. 我是耳边伴着各种歌剧咏叹调长大的, 但是直到几年前我才意识到这样一个成长的环境对我现在事业的意义有多么重大.</p>
<p><strong>- 我们知道你参加过几次声乐比赛, 你觉得这些经历的感觉如何?</strong></p>
<p>事实上我非常享受准备比赛的过程, 它能敦促我去学习新东西, 并不断完善我的技巧. 另外能听到其它同龄的歌手并跟这些与你拥有同一个梦想的歌手们成为朋友也是一件很享受的事.</p>
<p><strong>- 你认为在音乐文化中比赛是否是一个有用的部分?</strong></p>
<p>我认为这取决于人们如何对待比赛, 因为声乐不是拳击, 声乐比赛中并没有谁是胜利者或者谁是失败者这样的说法, 一切相对来说都是比较主观的, 仁者见仁, 智者见智. 做为一个参赛者, 你能做的就是从比赛的结果中学习, 并继续下去.</p>
<p><strong>- 作为一名抒情男高音, 你的偶像是谁?</strong></p>
<p>我很难从他们当中选出一或两个做为偶像. 但是如果我不得不选的话, 我会选择Franco Corelli和Fritz Wunderlich. 我喜欢Corelli因为他那绝对令人难以置信的声音还有他在他的事业中后期用他的声音所能做到的事(比如在一首咏叹调中的高音B上超过10秒的渐弱处理). 我喜欢Wunderlich因为他能用他富有光泽的音色去同时完美的演绎歌剧咏叹调和德文艺术歌曲, 而且你第一秒听到他演唱时你就能感觉到, 他是真的在用心歌唱.</p>
<p><strong>- 歌手经常很在意他们的嗓子 &#8211; 尽量避免烟尘, 冷水, 空调等等. &#8211; 你也会有这些焦虑么?</strong></p>
<p>在歌剧演出前我并不是很在意这些, 我认为我在精神上在台上把自己转化为自己所表演的角色的时候, 我的声音也时常会自然而然的放松从而完美的工作. 但是在音乐会和比赛前, 我确实会为我的嗓子感到紧张, 而这些也正是我需要在未来的演出中努力克服的, 因为这些焦虑对歌唱是一丁点儿帮助都没有的.</p>
<p>&nbsp;</p>
<p><a href="http://kang.fm/wp-content/uploads/2012/01/Photo-27-01-12-22-17-42.jpg"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="Photo 27-01-12 22 17 42" src="http://kang.fm/wp-content/uploads/2012/01/Photo-27-01-12-22-17-42_thumb.jpg" alt="Photo 27-01-12 22 17 42" width="576" height="768" border="0" /></a></p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/704/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何快速将Metadata导入MySource Matrix系统</title>
		<link>http://kang.fm/archives/587</link>
		<comments>http://kang.fm/archives/587#comments</comments>
		<pubDate>Tue, 04 May 2010 01:18:15 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[网站开发]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[mysource matrix]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=587</guid>
		<description><![CDATA[在本地的PWC进行的他们公司对外和局域网的网站建设断断续续已经进行了一年多了, 跟很多澳洲政府和教育相关部门一样, PWC的新INTERNET和INTRANET网站都是在MySource Matrix这个CMS系统上进行搭建的.  这个系统的特点就是&#8230;..复杂, 它包含了太多的功能, 感觉他的终极目标就是让一个不懂PHP的人也能借助这个系统和HTML/CSS/JS知识构建一个功能强大的网站. 但是降低门槛的同时也就提高了操作的繁琐性, 由于我们做为外聘的开发人员不能自由访问修改服务器上的代码文件, 而MATRIX系统本身虽然开源但其开发团队在代码开发文档方面十分小气(SQUIZ主要要靠出售技术支持为收入), 导致很多可以简单靠代码完成的功能不得不靠MATRIX繁琐的后台各种ASSET来拼凑. 而这系统本身说实话也十分缓慢, 甚至于ASSET LISTING仅仅是排序分类仅仅一千多个PDF图纸文件就要花上整整一分钟才能完成&#8230;.而进行一系列SQL语句的优化以后其实只需要 半秒&#8230;. 话题扯远了好像&#8230;&#8230;.闲话归闲话, 一年多来也算在这个系统的使用上积累了些技巧和经验, 现在就分享一则. PWC面向公众的网站很重要的一部分就是他们 的Standard Drawings查询系统, 由水电公司的一班POWER SUPPLY和WATER SEWERAGE的工程师维护. 主要就是提供一千多份水电相关零部件和设备的PDF图纸给用户查询. 当初这个系统是纯手工由HTML和CSS构建的, 导入到Matrix系统以后基本是大走样, 当时最头疼的问题之一就是一千多个PDF文件, 每个文件都有两个附属的数据要加上, 我们可以把属性以METADATA的形式加到所有PDF类文件上, 但是这些数据要怎么录入? 手动的话基本得把活人弄死, 而MATRIX本身的导入工具又无法完成类似任务, 跟同事讨论半天没啥结果, 感觉只能动动外部用PHP直接向数据库导入的方法了. 但是从来没对MATRIX的数据直接操作过, 而且话说MQTRIX用的POSTGRESS数据库我也没用过, 就这么愣写, 好像有点二叉&#8230; 无奈之下求助MATRIX的论坛, 别说还真就有高人通过修改MATRIX本身带的一个导入工具写出了把METADATA导入数据库的PHP程序. 代码本身刚下载下来的时候不适用, 因为原代码是以asset ID在数据库中查询的，但是我当时的数据只有asset文件名，于是我自己修改了一下总算是可以成功导入了, 但是由于导入时以asset文件名为准, 有时便会出现冲突的情况, 我就又改了下代码, 这样冲突的时候就可以记下编号, 去MATRIX系统里进行修正. -_- 导入前的准备工作也比较无奈, 原来的数据都是网页形式, 而导入程序需要CSV格式的数据, 我只得先把网页上数据转成EXCEL格式再转存CSV&#8230;. 转换时候还闹出些笑话, [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><span style="font-size: small;"> </span></p>
<p><span style="font-size: small;">在</span><span style="font-size: small;">本地的PWC进行的他们公司</span><span style="font-size: small;">对外和局域网的网站建设断断续续</span><span style="font-size: small;">已经</span><span style="font-size: small;">进行了一年多了, 跟很多澳洲</span><span style="font-size: small;">政府</span><span style="font-size: small;">和</span><span style="font-size: small;">教育</span><span style="font-size: small;">相关</span><span style="font-size: small;">部门</span><span style="font-size: small;">一样, PWC</span><span style="font-size: small;">的新INTERNET和INTRANET网站都是在MySource Matrix这个CMS</span><span style="font-size: small;">系统</span><span style="font-size: small;">上进行</span><span style="font-size: small;">搭建的.  这个</span><span style="font-size: small;">系统</span><span style="font-size: small;">的</span><span style="font-size: small;">特点</span><span style="font-size: small;">就是&#8230;..</span><span style="font-size: small;">复杂</span><span style="font-size: small;">, 它</span><span style="font-size: small;">包含</span><span style="font-size: small;">了太多的</span><span style="font-size: small;">功能</span><span style="font-size: small;">, </span><span style="font-size: small;">感觉</span><span style="font-size: small;">他的终极</span><span style="font-size: small;">目标</span><span style="font-size: small;">就是让一个不懂PHP的人也能借助这个</span><span style="font-size: small;">系统</span><span style="font-size: small;">和HTML/CSS/JS</span><span style="font-size: small;">知识</span><span style="font-size: small;">构建</span><span style="font-size: small;">一个</span><span style="font-size: small;">功能</span><span style="font-size: small;">强大的网站. 但是</span><span style="font-size: small;">降低门槛的</span><span style="font-size: small;">同时</span><span style="font-size: small;">也就提高了</span><span style="font-size: small;">操作</span><span style="font-size: small;">的</span><span style="font-size: small;">繁琐</span><span style="font-size: small;">性, </span><span style="font-size: small;">由于</span><span style="font-size: small;">我们做为外聘的开发人员不能</span><span style="font-size: small;">自由</span><span style="font-size: small;">访问</span><span style="font-size: small;">修改</span><span style="font-size: small;">服务</span><span style="font-size: small;">器上</span><span style="font-size: small;">的</span><span style="font-size: small;">代码</span><span style="font-size: small;">文件</span><span style="font-size: small;">, 而MATRIX</span><span style="font-size: small;">系统</span><span style="font-size: small;">本身</span><span style="font-size: small;">虽然</span><span style="font-size: small;">开源</span><span style="font-size: small;">但其开发团队</span><span style="font-size: small;">在</span><span style="font-size: small;">代码</span><span style="font-size: small;">开发</span><span style="font-size: small;">文档</span><span style="font-size: small;">方面</span><span style="font-size: small;">十分小气(SQUIZ主要要靠出售</span><span style="font-size: small;">技术</span><span style="font-size: small;">支持</span><span style="font-size: small;">为收入), 导致很多</span><span style="font-size: small;">可以</span><span style="font-size: small;">简单</span><span style="font-size: small;">靠</span><span style="font-size: small;">代码</span><span style="font-size: small;">完成</span><span style="font-size: small;">的</span><span style="font-size: small;">功能</span><span style="font-size: small;">不得不靠MATRIX</span><span style="font-size: small;">繁琐</span><span style="font-size: small;">的</span><span style="font-size: small;">后台</span><span style="font-size: small;">各种ASSET来拼凑.</span> <span style="font-size: small;">而这</span><span style="font-size: small;">系统</span><span style="font-size: small;">本身</span><span style="font-size: small;">说实话也十分</span><span style="font-size: small;">缓慢</span><span style="font-size: small;">, </span><span style="font-size: small;">甚至</span><span style="font-size: small;">于ASSET LISTING仅仅是排序分类</span><span style="font-size: small;">仅仅一千多</span><span style="font-size: small;">个PDF图纸</span><span style="font-size: small;">文件</span><span style="font-size: small;">就要花上整整一</span><span style="font-size: small;">分钟</span><span style="font-size: small;">才能</span><span style="font-size: small;">完成</span><span style="font-size: small;">&#8230;.</span><span style="font-size: small;">而进行一</span><span style="font-size: small;">系列</span><span style="font-size: small;">SQL</span><span style="font-size: small;">语句</span><span style="font-size: small;">的优化以后</span><span style="font-size: small;">其实</span><span style="font-size: small;">只</span><span style="font-size: small;">需要</span><span style="font-size: small;"> 半秒&#8230;.</span></p>
<p><span style="font-size: small;">话题扯远了</span><span style="font-size: small;">好像&#8230;</span><span style="font-size: small;">&#8230;.</span><span style="font-size: small;">闲话归闲话, 一年多来也算在这个</span><span style="font-size: small;">系统</span><span style="font-size: small;">的</span><span style="font-size: small;">使用</span><span style="font-size: small;">上</span><span style="font-size: small;">积累</span><span style="font-size: small;">了些</span><span style="font-size: small;">技巧</span><span style="font-size: small;">和</span><span style="font-size: small;">经验</span><span style="font-size: small;">, </span><span style="font-size: small;">现在</span><span style="font-size: small;">就分享一则.</span></p>
<p><span style="font-size: small;">PWC面向公众的网站很</span><span style="font-size: small;">重要</span><span style="font-size: small;">的一</span><span style="font-size: small;">部分</span><span style="font-size: small;">就是</span><span style="font-size: small;">他们</span> <span style="font-size: small;">的Standard Drawings</span><span style="font-size: small;">查询</span><span style="font-size: small;">系统</span><span style="font-size: small;">, 由水电</span><span style="font-size: small;">公司</span><span style="font-size: small;">的一班POWER SUPPLY和</span><span style="font-size: small;">WATER SEWERAGE的工程师</span><span style="font-size: small;">维护</span><span style="font-size: small;">. 主要就</span><span style="font-size: small;">是</span><span style="font-size: small;">提供</span><span style="font-size: small;">一千多份水电</span><span style="font-size: small;">相关零</span><span style="font-size: small;">部件</span><span style="font-size: small;">和</span><span style="font-size: small;">设备</span><span style="font-size: small;">的</span><span style="font-size: small;">PDF图纸</span><span style="font-size: small;">给</span><span style="font-size: small;">用户</span><span style="font-size: small;">查询</span><span style="font-size: small;">. 当初这个</span><span style="font-size: small;">系统</span><span style="font-size: small;">是纯手工由HTML和CSS</span><span style="font-size: small;">构建</span><span style="font-size: small;">的, 导入到Matrix</span><span style="font-size: small;">系统</span><span style="font-size: small;">以后</span><span style="font-size: small;">基本</span><span style="font-size: small;">是大</span><span style="font-size: small;">走样, 当时最头疼的</span><span style="font-size: small;">问题</span><span style="font-size: small;">之一就是一千多个PDF</span><span style="font-size: small;">文件</span><span style="font-size: small;">, 每个</span><span style="font-size: small;">文件</span><span style="font-size: small;">都有两</span><span style="font-size: small;">个</span><span style="font-size: small;">附属</span><span style="font-size: small;">的</span><span style="font-size: small;">数据</span><span style="font-size: small;">要加上, </span><span style="font-size: small;">我们</span><span style="font-size: small;">可以</span><span style="font-size: small;">把属性以METADATA的</span><span style="font-size: small;">形式</span><span style="font-size: small;">加到</span><span style="font-size: small;">所有</span><span style="font-size: small;">PDF类</span><span style="font-size: small;">文件</span><span style="font-size: small;">上, 但是这些</span><span style="font-size: small;">数据</span><span style="font-size: small;">要</span><span style="font-size: small;">怎么</span><span style="font-size: small;">录入? 手动的话</span><span style="font-size: small;">基本</span><span style="font-size: small;">得把活人弄死,</span> <span style="font-size: small;">而MATRIX</span><span style="font-size: small;">本身</span><span style="font-size: small;">的导入工具又</span><span style="font-size: small;">无法</span><span style="font-size: small;">完成</span><span style="font-size: small;">类似</span><span style="font-size: small;">任务</span><span style="font-size: small;">, 跟</span><span style="font-size: small;">同事</span><span style="font-size: small;">讨论</span><span style="font-size: small;">半天没啥</span><span style="font-size: small;">结果</span><span style="font-size: small;">, </span><span style="font-size: small;">感觉</span><span style="font-size: small;">只能动动外部用PHP</span><span style="font-size: small;">直接</span><span style="font-size: small;">向</span><span style="font-size: small;">数据</span><span style="font-size: small;">库导入的</span><span style="font-size: small;">方法</span><span style="font-size: small;">了. 但是从来没对MATRIX的</span><span style="font-size: small;">数据</span><span style="font-size: small;">直接</span><span style="font-size: small;">操作</span><span style="font-size: small;">过, </span><span style="font-size: small;">而且</span><span style="font-size: small;">话说MQTRIX用的POSTGRESS</span><span style="font-size: small;">数据</span><span style="font-size: small;">库我也没用过, 就这么愣写, 好像有点二叉&#8230; </span><span style="font-size: small;">无奈之下求助MATRIX的论</span><span style="font-size: small;">坛, 别说还真就有高人通过修改MATRIX</span><span style="font-size: small;">本身</span><span style="font-size: small;">带的一个导入工具写出了</span><span style="font-size: small;">把METADATA</span><span style="font-size: small;">导入</span><span style="font-size: small;">数据</span><span style="font-size: small;">库</span><span style="font-size: small;">的PHP</span><span style="font-size: small;">程序</span><span style="font-size: small;">.</span> <span style="font-size: small;">代码</span><span style="font-size: small;">本身</span><span style="font-size: small;">刚下载下来的</span><span style="font-size: small;">时候</span><span style="font-size: small;">不适用, 因为原代码是以asset ID在数据库中查询的，但是我当时的数据只有asset文件名，于是我</span><span style="font-size: small;">自己</span><span style="font-size: small;">修改了一下总算是</span><span style="font-size: small;">可以</span><span style="font-size: small;">成功导入了, 但是</span><span style="font-size: small;">由于</span><span style="font-size: small;">导入时以asset文件名</span><span style="font-size: small;">为准, 有时便会出现冲突的</span><span style="font-size: small;">情况</span><span style="font-size: small;">, 我就又改了下</span><span style="font-size: small;">代码</span><span style="font-size: small;">, 这样冲突的</span><span style="font-size: small;">时候</span><span style="font-size: small;">就</span><span style="font-size: small;">可以</span><span style="font-size: small;">记下</span><span style="font-size: small;">编号</span><span style="font-size: small;">, 去MATRIX</span><span style="font-size: small;">系统</span><span style="font-size: small;">里进行修正. -_-<br />
</span></p>
<p><span style="font-size: small;">导入前的</span><span style="font-size: small;">准备</span><span style="font-size: small;">工作也</span><span style="font-size: small;">比较</span><span style="font-size: small;">无奈, 原来的</span><span style="font-size: small;">数据</span><span style="font-size: small;">都是网页形式, 而导入</span><span style="font-size: small;">程序</span><span style="font-size: small;">需要</span><span style="font-size: small;">CSV</span><span style="font-size: small;">格式</span><span style="font-size: small;">的</span><span style="font-size: small;">数据</span><span style="font-size: small;">, 我只得先把网页上</span><span style="font-size: small;">数据</span><span style="font-size: small;">转</span><span style="font-size: small;">成EXCEL</span><span style="font-size: small;">格式</span><span style="font-size: small;">再转存CSV&#8230;. 转换</span><span style="font-size: small;">时候</span><span style="font-size: small;">还闹出些笑话, </span><span style="font-size: small;">比如</span><span style="font-size: small;">有的</span><span style="font-size: small;">日期</span><span style="font-size: small;">没写月份, 于是转出来的EXCEL</span><span style="font-size: small;">文件</span><span style="font-size: small;">里写着</span><span style="font-size: small;">日期</span><span style="font-size: small;">的</span><span style="font-size: small;">年份</span><span style="font-size: small;">是1905年&#8230;&#8230;..-____-</span></p>
<p><span style="font-size: small;">程序</span><span style="font-size: small;">具体</span><span style="font-size: small;">的</span><span style="font-size: small;">使用</span><span style="font-size: small;">我就用我的导入</span><span style="font-size: small;">经验</span><span style="font-size: small;">举例了.</span></p>
<ol type="1">
<li><span style="font-size: small;">需要</span><span style="font-size: small;">准备</span><span style="font-size: small;">的</span><span style="font-size: small;">CSV</span><span style="font-size: small;">数据</span><span style="font-size: small;">文件</span><span style="font-size: small;">的</span><span style="font-size: small;">格式</span><span style="font-size: small;">为: [Asset文件名], [Metadata Schema ID], [Metadata Schema 数据]     &#8212;&#8212; 后面两个metadata schema的id和数据想放多少放多少， 中间放逗号 (文章最后有附示例文件)<br />
</span></li>
<li><span style="font-size: small;">WINSCP把PHP</span><span style="font-size: small;">文件</span><span style="font-size: small;">和CSV</span><span style="font-size: small;">数据</span><span style="font-size: small;">放至</span><span style="font-size: small;">服务</span><span style="font-size: small;">器根</span><span style="font-size: small;">目</span><span style="font-size: small;">录</span></li>
<li><span style="font-size: small;">PUTTY登入</span><span style="font-size: small;">服务</span><span style="font-size: small;">器ROOT.</span></li>
<li><span style="font-size: small;">输入</span><span style="font-size: small;">命令</span><span style="font-size: small;">格</span><span style="font-size: small;">式: </span>php import_metadata.php [Matrix所在的目录] [csv file name]</li>
<li><span style="font-size: small;">回车导入</span><span style="font-size: small;">开始</span><span style="font-size: small;">.</span></li>
<li><span style="font-size: small;">如果</span><span style="font-size: small;">有冲突会有</span><span style="font-size: small;">提示</span><span style="font-size: small;">, 把ID记下来</span><span style="font-size: small;">以便过后</span><span style="font-size: small;">调整</span><span style="font-size: small;">, </span><span style="font-size: small;">然后</span><span style="font-size: small;">按C</span><span style="font-size: small;">继续</span><span style="font-size: small;">.</span></li>
</ol>
<p><span style="font-size: small;">全部一千多个PDF</span><span style="font-size: small;">花了</span><span style="font-size: small;">将近</span><span style="font-size: small;">半小时导入</span><span style="font-size: small;">成功</span><span style="font-size: small;">. </span><span style="font-size: small;">速度</span><span style="font-size: small;">慢了点, 但是</span><span style="font-size: small;">毕竟</span><span style="font-size: small;">比手工录入</span><span style="font-size: small;">已经</span><span style="font-size: small;">快了不</span><span style="font-size: small;">知道</span><span style="font-size: small;">多少</span><span style="font-size: small;">倍了. 在这</span><span style="font-size: small;">里</span><span style="font-size: small;">感谢</span><span style="font-size: small;">代码</span><span style="font-size: small;">的原</span><span style="font-size: small;">修改者</span>Tim Everist<span style="font-size: small;">.</span></p>
<p><span style="font-size: small;">希望</span><span style="font-size: small;">这篇</span><span style="font-size: small;">文章</span><span style="font-size: small;">对有相关</span><span style="font-size: small;">需要</span><span style="font-size: small;">的</span><span style="font-size: small;">朋友</span><span style="font-size: small;">有所</span><span style="font-size: small;">帮助</span><span style="font-size: small;">.</span></p>
<p><span style="font-size: small;"> </span></p>
<p><span style="font-size: small;">附:</span></p>
<p><span style="font-size: small;"> </span></p>
<p><span style="font-size: small;">用于</span><span style="font-size: small;">导入</span><span style="font-size: small;">METADATA</span><span style="font-size: small;">的PHP</span><span style="font-size: small;">程序及示例文件</span><span style="font-size: small;">下载:</span></p>
<p><span style="font-size: small;"><a href="http://www.k4ng.com/wp-content/uploads/2010/05/metadata_import1.zip">metadata_import1.zip</a><br />
</span></p>
<p><span style="font-size: small;"> </span></p>
<p><span style="font-size: small;">注意</span><span style="font-size: small;">, </span><span style="font-size: small;">对MATRIX</span><span style="font-size: small;">数据</span><span style="font-size: small;">库的</span><span style="font-size: small;">直接</span><span style="font-size: small;">操作</span><span style="font-size: small;">一定要</span><span style="font-size: small;">谨慎</span><span style="font-size: small;">进行,</span><span style="font-size: small;"> 对于本</span><span style="font-size: small;">程序</span><span style="font-size: small;">造成的</span><span style="font-size: small;">任何</span><span style="font-size: small;">后果本人不负</span><span style="font-size: small;">任何</span><span style="font-size: small;">责任</span><span style="font-size: small;">.</span></p>
<p><span style="font-size: small;"> </span></p>
</div>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/587/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>黑莓手机发送中文Email时出现问号乱码的修复方法</title>
		<link>http://kang.fm/archives/583</link>
		<comments>http://kang.fm/archives/583#comments</comments>
		<pubDate>Wed, 28 Apr 2010 12:57:17 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[IT相关]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[乱码]]></category>
		<category><![CDATA[黑莓]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/583</guid>
		<description><![CDATA[给媳妇儿新签的黑莓9700 bold发送的中文Email收到后只显示一堆”???”这样的乱码, 一开始以为是接收Email的电脑没中文支持, 后来发现是黑莓发出的信件的问题. 上网先搜遍了中文网页, 又搜遍了英文网页, 都没解决办法, 但基本知道这问题只在使用hotmail的黑莓机上出现, 大多人说是hotmail处理黑莓信件时本身编码支持问题, 也有人说是用手机的人的人品问题(-___-) 反正是没有说出解决办法的. 最后我想着, 除英文外的其它语种的支持应该都差不多, 就碰碰运气随便查查, 结果让我在一阿拉伯语网站上给搜出了解决办法&#8230;&#8230;..当然那上头有英文翻译, 咱可不懂阿拉伯语.. 不废话了, 上真相.. 修复方法如下: 1. 打开黑莓浏览器 2. 打开菜单 &#62; 选项 &#62; 浏览器配置 3. “浏览器”项 选 Internet Browser, 下面 “浏览器标识”项 从”BlackBerry” 改成 “Internet Explorer” 4. 点退出键, 提示是否保存设置, 选择保存. 5. 然后进入 “设置” 文件夹 &#62; “电子邮件设置”, 选择你当前的hotmail帐户, 删除. 6. 重新添加你的hotmail帐户. 现在试试用黑莓发个中文邮件吧. =D 上面方法已经经过我用Blackberry [...]]]></description>
			<content:encoded><![CDATA[<p>给媳妇儿新签的黑莓9700 bold发送的中文Email收到后只显示一堆”???”这样的乱码, 一开始以为是接收Email的电脑没中文支持, 后来发现是黑莓发出的信件的问题. 上网先搜遍了中文网页, 又搜遍了英文网页, 都没解决办法, 但基本知道这问题只在使用hotmail的黑莓机上出现, 大多人说是hotmail处理黑莓信件时本身编码支持问题, 也有人说是用手机的人的人品问题(-___-) 反正是没有说出解决办法的.<br />
最后我想着, 除英文外的其它语种的支持应该都差不多, 就碰碰运气随便查查, 结果让我在一阿拉伯语网站上给搜出了解决办法&#8230;&#8230;..当然那上头有英文翻译, 咱可不懂阿拉伯语..<br />
不废话了, 上真相..</p>
<p>修复方法如下:</p>
<p>1. 打开黑莓浏览器<br />
2. 打开菜单 &gt; 选项 &gt; 浏览器配置<br />
3. “浏览器”项 选 Internet Browser, 下面 “浏览器标识”项 从”BlackBerry” 改成 “Internet Explorer”<br />
4. 点退出键, 提示是否保存设置, 选择保存.<br />
5. 然后进入 “设置” 文件夹 &gt; “电子邮件设置”, 选择你当前的hotmail帐户, 删除.<br />
6. 重新添加你的hotmail帐户.</p>
<p>现在试试用黑莓发个中文邮件吧. =D</p>
<p>上面方法已经经过我用Blackberry 9700 bold 测试, 问题确实解决了.</p>
<p>如果想的话可以再重复1到4步把你的浏览器标识改回原来的, 不会再影响你黑莓的电子邮件了.</p>
<p>PS: 5到6步很重要, 一定要删了帐户再重新添加, 阿拉伯人那网站上有老外说这招不好使, 主要就是因为他们光改了浏览器标识, 没做5到6步.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/583/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>But doctor, I am Pagliacci.</title>
		<link>http://kang.fm/archives/499</link>
		<comments>http://kang.fm/archives/499#comments</comments>
		<pubDate>Fri, 30 Oct 2009 04:29:50 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[美声与歌剧]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/499</guid>
		<description><![CDATA[说有个男人去看医生, 他说他很难过, 觉得生活寒冷又残酷. 他感到自己在这个充满威胁的世界里是那么孤独无助, 前途一片惨淡迷茫, 他很痛苦, 不知道该怎么办. 医生对他说, 解决办法很简单, 今晚上在城里, 最伟大的丑角Pagliacci会来表演, 他总是带给人快乐和欢笑, 你去看了他的表演一切心理的纠结就都会消失不见了. 男人听了医生的话后, 流着眼泪说: &#34;医生, 我就是Pagliacci.&#34; Recitar! Mentre preso dal delirio, non so più quel che dico, e quel che faccio! Eppur è d&#8217;uopo, sforzati! Bah! sei tu forse un uom? Tu se&#8217; Pagliaccio! Vesti la giubba, e la faccia infarina. La gente paga, [...]]]></description>
			<content:encoded><![CDATA[<p>说有个男人去看医生, 他说他很难过, 觉得生活寒冷又残酷. 他感到自己在这个充满威胁的世界里是那么孤独无助, 前途一片惨淡迷茫, 他很痛苦, 不知道该怎么办. 医生对他说, 解决办法很简单, 今晚上在城里, 最伟大的丑角Pagliacci会来表演, 他总是带给人快乐和欢笑, 你去看了他的表演一切心理的纠结就都会消失不见了.    <br />男人听了医生的话后, 流着眼泪说: &quot;医生, 我就是Pagliacci.&quot;</p>
<p>Recitar! Mentre preso dal delirio,   <br />non so più quel che dico,    <br />e quel che faccio!    <br />Eppur è d&#8217;uopo, sforzati!    <br />Bah! sei tu forse un uom?    <br />Tu se&#8217; Pagliaccio!</p>
<p>Vesti la giubba,   <br />e la faccia infarina.    <br />La gente paga, e rider vuole qua.    <br />E se Arlecchin t&#8217;invola Colombina,    <br />ridi, Pagliaccio, e ognun applaudirà!    <br />Tramuta in lazzi lo spasmo ed il pianto    <br />in una smorfia il singhiozzo e &#8216;l dolor, Ah!</p>
<p>Ridi, Pagliaccio,   <br />sul tuo amore infranto!    <br />Ridi del duol, che t&#8217;avvelena il cor!</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/499/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP升级到2.7版本(或更高)以后 设置 &gt; 常规 选项页内容不全的问题</title>
		<link>http://kang.fm/archives/464</link>
		<comments>http://kang.fm/archives/464#comments</comments>
		<pubDate>Fri, 10 Jul 2009 05:27:50 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[代码相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/464</guid>
		<description><![CDATA[前一阵升级了这个WP到2.7版本, 今儿想把博客名字改下, nuts改成guts. 结果发现WP后台的 设置 &#62; 常规 选项卡里根本没有 保存更改 这个按钮, 进一步回忆发现原来的时间日期格式什么的都没了. 如图,&#160; 时区根本没有选项, 下面就是一片空白. 一开始以为是浏览器CSS的兼容问题, FF里把CSS关了, 看裸页, 发现还是一样, PHP在服务器端生成页面的时候好像就没生成全, 根据以前多次二逼经历的经验, 可能是memory_limit的问题. php.ini里的肯定够大了, 于是去WP根目录里找wp-settings.php , 前面的注释结束, 第13行 define(&#8216;WP_MEMORY_LIMIT&#8217;, &#8217;32M&#8217;); 顺手改成64M试试. define(&#8216;WP_MEMORY_LIMIT&#8217;, &#8217;64M&#8217;); 保存, 上传. 好使了. 如图, 下面那些该有现在全都出来了. 具体是咋回事还不太明白, 总之现在好使了就行. 分享到： 更多]]></description>
			<content:encoded><![CDATA[<p>前一阵升级了这个WP到2.7版本, 今儿想把博客名字改下, nuts改成guts. 结果发现WP后台的 设置 &gt; 常规 选项卡里根本没有 保存更改 这个按钮, 进一步回忆发现原来的时间日期格式什么的都没了. 如图,&#160; 时区根本没有选项, 下面就是一片空白.</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2009/07/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2009/07/image_thumb.png" width="543" height="498" /></a> </p>
<p>一开始以为是浏览器CSS的兼容问题, FF里把CSS关了, 看裸页, 发现还是一样, PHP在服务器端生成页面的时候好像就没生成全, 根据以前多次二逼经历的经验, 可能是memory_limit的问题. php.ini里的肯定够大了, 于是去WP根目录里找wp-settings.php , 前面的注释结束, 第13行</p>
<p>define(&#8216;WP_MEMORY_LIMIT&#8217;, &#8217;32M&#8217;);</p>
<p>顺手改成64M试试.</p>
<p>define(&#8216;WP_MEMORY_LIMIT&#8217;, &#8217;64M&#8217;);</p>
<p>保存, 上传.</p>
<p>好使了. 如图, 下面那些该有现在全都出来了.</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2009/07/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2009/07/image_thumb1.png" width="510" height="490" /></a> </p>
<p>具体是咋回事还不太明白, 总之现在好使了就行.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/464/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>泰山音 &#8211; 声乐大师们的失误</title>
		<link>http://kang.fm/archives/437</link>
		<comments>http://kang.fm/archives/437#comments</comments>
		<pubDate>Fri, 12 Jun 2009 14:11:26 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[美声与歌剧]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/437</guid>
		<description><![CDATA[泰山音, 专门用来形容歌唱中的破得像人猿泰山的嚎叫声一样破音&#8230;&#8230;&#8230;&#8230;&#8230; &#160; &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. &#160; 这篇算是娱乐, 也算是教学. 没有对大师们不敬的意思, 只是希望大家知道人非圣贤, 谁都有失误的时候. 歌唱这条道路是风险和机遇并存的, 既然走上舞台, 就要做好准备面对各式各样的观众, 以及自己可能发生的各种突发状况. 外行的全当看个乐子, 内行的应该可以从中学到些东西. 我自己很喜欢从别人的失误中学习. 全部是从youtube上搜集的. 连接都是Youtube的, 因为最近的封锁, 国内的朋友看不到的话, 我已经把他们都从youtube上扒下来压缩好了放在我网站的服务器上 所有视频打包下载地址: http://www.k4ng.com/crack.zip &#160; 1. 这个是卡雷拉斯在歌剧AIDA中Celesta Aida里的破音..破得相当泰山 http://www.youtube.com/v/IZ8WP4YkGY0 &#160; 2. 这个是阿兰尼亚2006年在斯卡拉唱的AIDA, 没有破音, 前面我都听了, 除了让人听着累没有别的感觉, 但是被顶楼的观众轰得很厉害, 阿兰尼亚愤然起身冲观众挥挥拳头下台不唱了&#8230; 替补的男高音连服装都没换就给推上来继续唱, 看女高音那不知所措的眼神&#8230;很无语. 事后斯卡拉的经理解除了跟阿兰尼亚的合约, 而且说至少那个季度不会再签他. http://www.youtube.com/v/AxyBxbGF-Qg &#160; 3. 第三个出场的..Villazon, 这人我不是经常听, 不过据说经常破. 网上经常有人骂, 说他总想学Monaco的声音但是又没Monaco的条件, 所以总破. 这个曼农唱得确实有点离谱, 而且你从他的表演能看出来他知道自己不行了. 0:24开始两个音一共破六下. http://www.youtube.com/v/jnDTo3d73o4 &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>泰山音, 专门用来形容歌唱中的破得像人猿泰山的嚎叫声一样破音&#8230;&#8230;&#8230;&#8230;&#8230;</p>
<p>&#160;</p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..</p>
<p>&#160;</p>
<p>这篇算是娱乐, 也算是教学. 没有对大师们不敬的意思, 只是希望大家知道人非圣贤, 谁都有失误的时候. 歌唱这条道路是风险和机遇并存的, 既然走上舞台, 就要做好准备面对各式各样的观众, 以及自己可能发生的各种突发状况.</p>
<p>外行的全当看个乐子, 内行的应该可以从中学到些东西. </p>
<p>我自己很喜欢从别人的失误中学习.</p>
<p>全部是从youtube上搜集的.</p>
<p>连接都是Youtube的, 因为最近的封锁, 国内的朋友看不到的话, 我已经把他们都从youtube上扒下来压缩好了放在我网站的服务器上</p>
<p>所有视频打包下载地址:</p>
<p><a href="http://www.k4ng.com/crack.zip">http://www.k4ng.com/crack.zip</a></p>
<p>&#160;</p>
<p>1. 这个是卡雷拉斯在歌剧AIDA中Celesta Aida里的破音..破得相当泰山 </p>
<p><a href="http://www.youtube.com/v/IZ8WP4YkGY0">http://www.youtube.com/v/IZ8WP4YkGY0</a> </p>
<p>&#160;</p>
<p>2. 这个是阿兰尼亚2006年在斯卡拉唱的AIDA, 没有破音, 前面我都听了, 除了让人听着累没有别的感觉, 但是被顶楼的观众轰得很厉害, 阿兰尼亚愤然起身冲观众挥挥拳头下台不唱了&#8230; 替补的男高音连服装都没换就给推上来继续唱, 看女高音那不知所措的眼神&#8230;很无语. 事后斯卡拉的经理解除了跟阿兰尼亚的合约, 而且说至少那个季度不会再签他. </p>
<p><a href="http://www.youtube.com/v/AxyBxbGF-Qg">http://www.youtube.com/v/AxyBxbGF-Qg</a> </p>
<p>&#160;</p>
<p>3. 第三个出场的..Villazon, 这人我不是经常听, 不过据说经常破. 网上经常有人骂, 说他总想学Monaco的声音但是又没Monaco的条件, 所以总破. 这个曼农唱得确实有点离谱, 而且你从他的表演能看出来他知道自己不行了. 0:24开始两个音一共破六下. </p>
<p><a href="http://www.youtube.com/v/jnDTo3d73o4">http://www.youtube.com/v/jnDTo3d73o4</a> </p>
<p>&#160;</p>
<p>4. 多明戈的在图兰朵第二幕里跟公主和唱High C的破音.</p>
<p><a href="http://www.youtube.com/watch?v=qcSYW5U3EdQ">http://www.youtube.com/watch?v=qcSYW5U3EdQ</a></p>
<p>&#160;</p>
<p>5. 清教徒中High F的破音位置0:22. 不知道谁唱的, 有人知道的话请留个言告知谢谢.</p>
<p><a href="http://www.youtube.com/watch?v=ALtkT99zvBM">http://www.youtube.com/watch?v=ALtkT99zvBM</a></p>
<p>&#160;</p>
<p>6. Nicolai Gedda 唱的弄臣中的女人善变, 整个都不错, 最后的B破乱套了.</p>
<p><a href="http://www.youtube.com/watch?v=64BNhZOaINc">http://www.youtube.com/watch?v=64BNhZOaINc</a></p>
<p>&#160;</p>
<p>7. 来一个老帕的, 74年他顶峰时期, 歌剧La favorita里的, 3:13 的时候High C破了, 破完以后旁边一个人乐得贼开心&#8230;人啊&#8230;. 不过除了这个高音外, 老帕整首的演唱都很完美.</p>
<p><a href="http://www.youtube.com/watch?v=b5EJvwPBMXo">http://www.youtube.com/watch?v=b5EJvwPBMXo</a></p>
<p>&#160;</p>
<p>8. Franco Bonisolli 的柴堆上火焰熊熊, 最后的High C上的mi直接不知道唱哪去了. 观众轰得很厉害. 这人我不了解, 不过根据网上很多的评论看好像这个人口碑也不怎么样. </p>
<p><a href="http://www.youtube.com/watch?v=vhqQR_qoYqE">http://www.youtube.com/watch?v=vhqQR_qoYqE</a></p>
<p>&#160;</p>
<p>9. 少见, 男中音破了..听着像是累的..不知道是谁, 有知道的给留个言谢谢.</p>
<p><a href="http://www.youtube.com/watch?v=aALFV3CjuXg">http://www.youtube.com/watch?v=aALFV3CjuXg</a></p>
<p>&#160;</p>
<p>10. 这个也不知道是谁, 不过破得真是太泰山了&#8230;同上, 有人了解内幕的给留个言</p>
<p><a href="http://www.youtube.com/watch?v=CO4owK3Wvkk">http://www.youtube.com/watch?v=CO4owK3Wvkk</a></p>
<p>&#160;</p>
<p>11. 这个我不知道是谁..也不知道是啥时候, 但是绝对是非常的无语. 这个女高音就跟喝多了一样在这唱, 整场都这么唱下来的, 观众, 指挥旁边的男高就一直陪着她这么唱&#8230;场面非常的恶搞&#8230;据体信息都不明, 同上, 了解内幕的给留个言</p>
<p><a href="http://www.youtube.com/watch?v=xXYQvrGn5fY">http://www.youtube.com/watch?v=xXYQvrGn5fY</a></p>
<p>&#160;</p>
<p>12. 重头戏来了, 这两个视频包括各路名家的失误, </p>
<p>两个视频包括了以下这些名家:</p>
<p>Umberto Grilli, Daniele Barioni, Erna Berger, Pier Miranda Ferraro, Carlo Bergonzi, Simon Estes, Ghena Dimitrova, José Carreras, Roberto Alagna, Luciano Pavarotti, Nicolai Gedda, Rolando Villazón, Anna Netrebko, Franco Bonisolli, Karan Armstrong, Calvin Marsh , Callas</p>
<p>第一部分</p>
<p><a href="http://www.youtube.com/watch?v=5k6c4MBG7h">http://www.youtube.com/watch?v=5k6c4MBG7h</a></p>
<p>第二部分</p>
<p><a href="http://www.youtube.com/watch?v=6hZweYnWdAk">http://www.youtube.com/watch?v=6hZweYnWdAk</a></p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/437/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>刚为兴记餐馆做的网站</title>
		<link>http://kang.fm/archives/306</link>
		<comments>http://kang.fm/archives/306#comments</comments>
		<pubDate>Fri, 15 May 2009 06:32:30 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[网站开发]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/306</guid>
		<description><![CDATA[地址: http://www.hingstonnt.com 暂时只有主页和几个PDF的各式菜单, 具体的今天还要跟老板娘继续商量.. 分享到： 更多]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.k4ng.com/wp-content/uploads/2009/05/hingston.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="hingston" src="http://www.k4ng.com/wp-content/uploads/2009/05/hingston-thumb.jpg" border="0" alt="hingston" width="640" height="462" /></a></p>
<p>地址: <a href="http://www.hingstonnt.com" target="_blank">http://www.hingstonnt.com</a><a title="http://www.k4ng.com/hingston/" href="http://www.k4ng.com/hingston/"></a></p>
<p>暂时只有主页和几个PDF的各式菜单, 具体的今天还要跟老板娘继续商量..</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/306/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CDU大学无线网络的设置(新来的同学不会设置的请进)</title>
		<link>http://kang.fm/archives/271</link>
		<comments>http://kang.fm/archives/271#comments</comments>
		<pubDate>Wed, 30 Jul 2008 11:51:11 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Windows相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/271</guid>
		<description><![CDATA[一般新来同学带来的笔记本应该驱动都是装好的, 如果自己有重装过系统的, 请先确定无线网卡的驱动已经装上, 如果找不到的话可以去电脑品牌的官方网站下载, 或者去驱动之家 http://www.mydrivers.com&#160; 也可以找到. 我买吃的去, 回来继续写. &#8230;好, 继续写. &#160; 一. 安装补丁 首先安装一个Windows XP的WPA2无线网络补丁. 有些笔记本自带的XP就已经补过这个补丁了, 或者电脑上已经装着Vista系统的同学, 就不需要了, 可以跳过这一步直接去看设置部分了. 这个补丁是用来使XP的无线网络设置支持WPA2标准的, 不补的话也一样可以上, 但是据我个人感觉补过了能稳定一些, 而且据说会增强无线信号(没做过对比测试).&#160; WPA2 补丁 下载地址: 英文版: http://www.k4ng.com/WindowsXP-KB893357-v2-x86-ENU.exe 中文版: http://www.k4ng.com/WindowsXP-KB893357-v2-x86-CHS.exe 请根据自己系统的语言来选择. &#160; 二. 设置无线网络 这里讲的设置都是以Windows XP为标准的, Vista的设置也大同小异. 1. 首先断开你当前的无线网络连接(因为设置之前显然是连不上的, 一直连也是白连..) 2. 开始菜单 -&#62; 设置 -&#62; 控制面板 -&#62;&#160; 网络连接 在 无线网络连接 上点右键, 点属性. (见图一) 图一 [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>一般新来同学带来的笔记本应该驱动都是装好的, 如果自己有重装过系统的, 请先确定无线网卡的驱动已经装上, 如果找不到的话可以去电脑品牌的官方网站下载, 或者去驱动之家 http://www.mydrivers.com&nbsp; 也可以找到.</p>
<p>我买吃的去, 回来继续写.</p>
<p>&#8230;<br />好, 继续写.</p>
<p>&nbsp;</p>
<p><strong>一. 安装补丁</strong></p>
<p>首先安装一个Windows XP的WPA2无线网络补丁. </p>
<p>有些笔记本自带的XP就已经补过这个补丁了, 或者电脑上已经装着Vista系统的同学, 就不需要了, 可以跳过这一步直接去看设置部分了.</p>
<p>这个补丁是用来使XP的无线网络设置支持WPA2标准的, 不补的话也一样可以上, 但是据我个人感觉补过了能稳定一些, 而且据说会增强无线信号(没做过对比测试).&nbsp; <br />WPA2 补丁 下载地址:</p>
<p>英文版: <a href="http://www.k4ng.com/WindowsXP-KB893357-v2-x86-ENU.exe">http://www.k4ng.com/WindowsXP-KB893357-v2-x86-ENU.exe</a></p>
<p>中文版: <a href="http://www.k4ng.com/WindowsXP-KB893357-v2-x86-CHS.exe">http://www.k4ng.com/WindowsXP-KB893357-v2-x86-CHS.exe</a></p>
<p>请根据自己系统的语言来选择.</p>
<p>&nbsp;</p>
<p><strong>二. 设置无线网络</strong></p>
<p>这里讲的设置都是以Windows XP为标准的, Vista的设置也大同小异.</p>
<p>1. 首先断开你当前的无线网络连接(因为设置之前显然是连不上的, 一直连也是白连..)</p>
<p>2. 开始菜单 -&gt; 设置 -&gt; 控制面板 -&gt;&nbsp; 网络连接 在 无线网络连接 上点右键, 点属性. (见图一)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image3.png"><img height="222" alt="图一" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb3.png" width="258" border="0"></a> </p>
<blockquote><p>图一</p>
</blockquote>
<p>3. 单击 无线网络配置 选项卡, 如果有看到CharlesDarwinStudents 一项, 请单击选中, 然后点 删除. (见图二)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image4.png"><img height="411" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb4.png" width="364" border="0"></a> </p>
<blockquote><p>图二</p>
</blockquote>
<p>4. 然后单击 添加 , 网络名后面写入 CharlesDarwinStudents (无空格, 要一模一样)</p>
<p>网络验证 选择WPA2, 数据加密 选择AES. (图三)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image5.png"><img height="410" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb5.png" width="392" border="0"></a> </p>
<blockquote><p>图三</p>
</blockquote>
<p>5. 单击 验证 选项卡, EAP类型 选择 受保护的EAP(PEAP), 将下面的 当计算机信息可用时验证为计算机 前的勾去掉. (图四)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image6.png"><img height="411" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb6.png" width="392" border="0"></a> </p>
<blockquote><p>图四</p>
</blockquote>
<p>6. 单击 EAP类型右下方的 属性 , 将 验证服务器证书 前的勾去掉. 选择验证方法 安全密码(EAP-MSCHAP v2) 并将下面的 启用快速重新连接 前的勾勾上. (图五)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image7.png"><img height="423" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb7.png" width="379" border="0"></a> </p>
<blockquote><p>图五</p>
</blockquote>
<p>7. 单击 选择验证方法 右侧的 配置, 将 自动使用Windows登录名和密码(以前域, 如果有的话) 前的勾去掉. (图六)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image8.png"><img height="163" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb8.png" width="287" border="0"></a> </p>
<p>8. 点两次 确定.</p>
<p>9. 单击 连接 选项卡, 在 当此网络在区域内时连接 前面打勾. (图七)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image9.png"><img height="410" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb9.png" width="389" border="0"></a> </p>
<blockquote><p>图七</p>
</blockquote>
<p>10. 单击两次 确定. 退出 无线网络连接 属性 窗口.</p>
<p>11. 双击屏幕最下方任务栏的 无线网络连接 图标, 单击 查看无线网络. 再单击 刷新网络列表, 单击 CharlesDarwinStudents (不是CharlesDarwinStaff, 图里点错了)点下方的, 连接 (图八)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image10.png"><img height="461" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb10.png" width="660" border="0"></a></p>
<blockquote><p>图八 </p>
</blockquote>
<p>12. 然后屏幕右下角会出一个小气泡对话框 在它上面单击 (图九)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image11.png"><img height="105" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb11.png" width="272" border="0"></a> </p>
<blockquote><p>图九</p>
</blockquote>
<p>13. 在出现的窗口中输入你的学生号以及你internet access的密码. (图十)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image12.png"><img height="357" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb12.png" width="347" border="0"></a> </p>
<blockquote><p>图十</p>
</blockquote>
<p>14. 等待连接成功. </p>
<p>&nbsp;</p>
<p><strong>三. 浏览器代理设置</strong></p>
<p>CDU的上网有一个登录脚本代理, 需要手工设置在浏览器里才可以登录外网, 否则只能上校内网络. 这里只讲IE的设置, FF及其它浏览器设置大同小异. (我的IE是英文的..大家凑合看)</p>
<p>1. 打开IE, 单击菜单栏中的 工具 -&gt; Internet选项 -&gt; 单击 连接 选项卡 -&gt; 单击 窗口下方的 局域网设置. 在新出现的窗口中 将 自动检测设置, 使用自动配置脚本都勾选上, 并在地址中填入&nbsp; <a href="http://proxy.cdu.edu.au/">http://proxy.cdu.edu.au/</a>&nbsp; 将下方的 使用代理服务器 也勾选上 并在地址中填入 kingfisher.cdu.edu.au 端口 80 (图十一)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image13.png"><img height="332" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb13.png" width="382" border="0"></a> </p>
<blockquote><p>图十一</p>
</blockquote>
<p>2. 单击两次确定, 把Internet 选项窗口关闭.</p>
<p>3. 在浏览器地址栏中 输入 10.0.0.10 回车. 在出现的对话框中 输入你的学生号和上网的密码. (可以把记住密码勾上, 免得以后总要重输) 单击确定, 会提示你 LOGIN Successful!&nbsp; </p>
<p>4. 到这里, 就大功告成了, 可以开始浏览网站下载软件&#8230;了.</p>
<p>&nbsp;</p>
<p><strong>四. QQ及迅雷代理设置</strong></p>
<p>现在国内应该说几乎没有不用QQ和迅雷的, 所以把代理设置方法也说一下. 这里以最新版本QQ和迅雷为例.</p>
<p>1. QQ</p>
<p>打开QQ, 单击登录窗口处的 设置. 在网络设置中, 类型后面 选择 HTTP代理, 地址后填入 kingfisher.cdu.edu.au 端口 80&nbsp;&nbsp; 之后就可以开始输入帐号密码正常登录了. (图十二)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image14.png"><img height="528" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb14.png" width="328" border="0"></a> </p>
<blockquote><p>图十二</p>
</blockquote>
<p>2. 迅雷</p>
<p>迅雷的设置很简单, 只要之前在IE里设置好代理后, 打开迅雷 单击菜单栏的 工具 -&gt; 使用IE代理 就可以了. (图十三)</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image15.png"><img height="237" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb15.png" width="180" border="0"></a> </p>
<blockquote><p>图十三</p>
</blockquote>
<p>&nbsp;</p>
<p><strong>好了, 到这里基本在CDU大学上无线网络的相关设置就都讲完了, 以后可能陆续会有补充.</strong></p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/271/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如果你忘记了DotnetNuke站点的host和admin密码&#8230;</title>
		<link>http://kang.fm/archives/244</link>
		<comments>http://kang.fm/archives/244#comments</comments>
		<pubDate>Thu, 10 Jul 2008 11:21:42 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[代码相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/archives/244</guid>
		<description><![CDATA[今儿在办公室发生一很无语的事, 有关我的一个DNN(dotnetnuke)项目的. 这个项目是几个月前开始做的, 一个Project Issue Registration System, 后台数据库都已经做完了, 只剩下网站前台, 由于这是个公司的内部项目, 后来的几个网站都是政府还有其它公司的, 优先级比较高, 所以一直在做后来的项目而把这个就一直撂置了, 这几天刚刚把后来的项目都sign off了, 开始有闲, 准备把这个PIRS捡起来做完. 结果把项目打开一运行就傻了, 这是个基于DNN框架的网站, 我把host和admin密码全忘了, 因为当初也是还在开发阶段, 所以根本没设别的用户, 试遍了我自己常用的密码组合, 还有公司的密码组合, 全不行.. 直接无语.&#160; 由于host密码不能用密码找回找到, 所以只能走数据库这一步了. 上SQL server, 进去了直奔dbo.aspnet_Membership, 密码是带salt和DNN自己另设的密文加密的, 我头脑一热加手一抖直接把admin和host的密码和salt删了, 然后想用其它站数据库里的密码和salt复制过来, 结果没用, 然后又用hash generator 做了数个加密后的密文+ salt 复制过去, 依然无效. 然后突然想起来,&#160; DNN的加密机制不太一样, 每个DNN站的web.config里自己有个独特的密文, 不同站的不一样, 这一下直接不能上了. 这回事情比原来还严重了, 不仅密码忘了, 原来的密码也没了, salt也没了. -.-&#124;&#124;&#124; OK, 事已至此, 咱上google上找一下先吧, 别自己再乱搞了. [...]]]></description>
			<content:encoded><![CDATA[<p>今儿在办公室发生一很无语的事, 有关我的一个DNN(dotnetnuke)项目的. 这个项目是几个月前开始做的, 一个Project Issue Registration System, 后台数据库都已经做完了, 只剩下网站前台, 由于这是个公司的内部项目, 后来的几个网站都是政府还有其它公司的, 优先级比较高, 所以一直在做后来的项目而把这个就一直撂置了, 这几天刚刚把后来的项目都sign off了, 开始有闲, 准备把这个PIRS捡起来做完. </p>
<p>结果把项目打开一运行就傻了, 这是个基于DNN框架的网站, 我把host和admin密码全忘了, 因为当初也是还在开发阶段, 所以根本没设别的用户, 试遍了我自己常用的密码组合, 还有公司的密码组合, 全不行.. 直接无语.&nbsp; 由于host密码不能用密码找回找到, 所以只能走数据库这一步了.</p>
<p>上SQL server, 进去了直奔dbo.aspnet_Membership, 密码是带salt和DNN自己另设的密文加密的, 我头脑一热加手一抖直接把admin和host的密码和salt删了, 然后想用其它站数据库里的密码和salt复制过来, 结果没用, 然后又用hash generator 做了数个加密后的密文+ salt 复制过去, 依然无效. 然后突然想起来,&nbsp; DNN的加密机制不太一样, 每个DNN站的web.config里自己有个独特的密文, 不同站的不一样, 这一下直接不能上了. 这回事情比原来还严重了, 不仅密码忘了, 原来的密码也没了, salt也没了. -.-|||</p>
<p>OK, 事已至此, 咱上google上找一下先吧, 别自己再乱搞了. 搜索一下, 还真找出不少方案来. 后来才知道, 这些方案在我目前的情况下都不适用, 不过那是后话, 我先把这些解决办法列出来, 方便一下看这篇文章的人.</p>
<p>&nbsp;</p>
<p><strong>方案一</strong></p>
<p>这个理论上适用于所有情况(但是实际上是痴人说梦..)</p>
<ol>
<li>在你DNN网站上注册一个新用户. 如果你的注册按钮被你在站点设置里关掉了, 那就去SQL server上把dbo.Portals表里的UserRegistration值改成2.
<li>用你开的registration建个新用户(把密码记住.. -.-|||)
<li>再进数据库, 找到dbo.ASPNet_Membership表
<li>到你新建的那个用户那一行中把password, passwordsalt的密文都复制到你的host用户那一行的同样列中(host是superuser).
<li>重新用你的host和你新设用户的密码登录DNN然后再把你新建的那个用户删掉就可以了.</li>
</ol>
<p>很不幸的是, 我的DNN网站的出于当初开发时的安全考虑被我关闭了, 而且他所说的改UserRegistration值的方法是无效的, 改过后Register依然没有在login module中出现.</p>
<p>&nbsp;</p>
<p><strong>方案二</strong></p>
<p>这个是需要你已经知道一个帐号的用户名和密码, 然后用下面的SQL query实现对host的密码的替换.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> password<span style="color: #66cc66;">,</span> passwordformat<span style="color: #66cc66;">,</span> passwordsalt
<span style="color: #993333; font-weight: bold;">FROM</span> aspnet_membership am 
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_users auON <span style="color: #66cc66;">&#40;</span>au<span style="color: #66cc66;">.</span>userid <span style="color: #66cc66;">=</span> am<span style="color: #66cc66;">.</span>userid<span style="color: #66cc66;">&#41;</span> 
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_applications aaON <span style="color: #66cc66;">&#40;</span>au<span style="color: #66cc66;">.</span>applicationId <span style="color: #66cc66;">=</span> aa<span style="color: #66cc66;">.</span>applicationid<span style="color: #66cc66;">&#41;</span><span style="color: #993333; font-weight: bold;">WHERE</span> au<span style="color: #66cc66;">.</span>username <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'admin'</span> 
<span style="color: #993333; font-weight: bold;">AND</span> aa<span style="color: #66cc66;">.</span>applicationname <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'DotNetNuke'</span></pre></td></tr></table></div>

<p>&nbsp;
<p>然后把你得到的password, passwordformat, passwordsalt复制到一个地方, 下面的query中从&#8217;TestUser&#8217;那行开始, 分别对应 用户名, password, passwordsalt, ChangeTime, passwordFormat. 所以你用你刚复制下来的替换下面这几个就可以了.</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DECLARE</span> @changeDate datetime
<span style="color: #993333; font-weight: bold;">SET</span> @changeDate <span style="color: #66cc66;">=</span> getdate<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">--set the password</span>
<span style="color: #993333; font-weight: bold;">EXEC</span> aspnet_Membership_setPassword <span style="color: #ff0000;">'DotNetNuke'</span><span style="color: #66cc66;">,</span> 
<span style="color: #ff0000;">'TestUser'</span><span style="color: #66cc66;">,</span> 
<span style="color: #ff0000;">'DM1tZvBjM+27Eck5eI1TWFeG42XuJnMuin3jqFOtMjS83RN6d7dFbQ=='</span><span style="color: #66cc66;">,</span> 
<span style="color: #ff0000;">'4e5Bb5jOOMYu/JFXVdRmlA=='</span><span style="color: #66cc66;">,</span>
@changeDate<span style="color: #66cc66;">,</span> 
<span style="color: #cc66cc;">2</span></pre></td></tr></table></div>

<p>&nbsp;</p>
<p>那么很不幸的, 这个方案也是无效的因为我根本没有任何一个知道密码的帐号.而且据我所知DNN 4.4.1以后的版本也不再使用Application ID了, 而是使用Application Name. 所以这里也需要做些小修改才能生效.</p>
<p>&nbsp;</p>
<p><strong>方案三</strong></p>
<p>在SQL server 运行这个query</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DECLARE</span> @UserName NVarChar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @NewPassword NVarChar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @PasswordSalt NVarChar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @Application NVarChar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">-- 在下面的单引号间输入你要做的修改(用户名, 密码)</span>
<span style="color: #808080; font-style: italic;">-- 别留任何空格除非你特意要留..</span>
<span style="color: #993333; font-weight: bold;">SET</span> @UserName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'admin'</span> <span style="color: #808080; font-style: italic;">-- 这个是DNN默认的admin用户, 这里我们要改成host</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">SET</span> @NewPassword <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'newpassword'</span> <span style="color: #808080; font-style: italic;">-- 这里是你的新密码</span>
<span style="color: #993333; font-weight: bold;">SET</span> @Application <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">&#91;</span>ApplicationID<span style="color: #66cc66;">&#93;</span> <span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Users <span style="color: #993333; font-weight: bold;">WHERE</span> UserName<span style="color: #66cc66;">=</span>@UserName<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @PasswordSalt <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> PasswordSalt <span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Membership <span style="color: #993333; font-weight: bold;">WHERE</span> UserID <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> UserID <span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Users <span style="color: #993333; font-weight: bold;">WHERE</span> UserName<span style="color: #66cc66;">=</span>@UserName<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">EXEC</span> dbo<span style="color: #66cc66;">.</span>aspnet_Membership_ResetPassword @Application<span style="color: #66cc66;">,</span> @UserName<span style="color: #66cc66;">,</span> @NewPassword<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span> @PasswordSalt<span style="color: #66cc66;">,</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">5</span></pre></td></tr></table></div>

<p>根据这个query来看, 这也是一个DNN 4.4.1以前的方案,但是我做了小量修改, 依然不能在新版本的DNN上有任何效果. 因为他是基于你没有删SALT的基础上的, 而很不幸, 我把密码+SALT都删没了.&nbsp; 失败.</p>
<p>&nbsp;</p>
<p><strong>方案四</strong></p>
<p>这个是一个老外的query, 无数老外跟着comment了说好用, 但是很不幸, 他的原理是跟方案一相同的, 也需要你有一个已知密码的帐号, 只不过用query的形式完成了.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">DECLARE</span> @databaseName <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> @databaseName <span style="color: #66cc66;">=</span> DB_NAME<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
PRINT <span style="color: #ff0000;">'RESET PASSWORD IN DATABASE : '</span> <span style="color: #66cc66;">+</span> @databaseName
PRINT <span style="color: #ff0000;">'-----------------------------'</span> <span style="color: #66cc66;">+</span> REPLICATE<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'-'</span><span style="color: #66cc66;">,</span> DATALENGTH<span style="color: #66cc66;">&#40;</span>@databaseName <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #993333; font-weight: bold;">DECLARE</span> @knownUserName NVARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @lostUserName NVARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @lostUserId NVARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @knownPassword NVARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @knownSalt NVARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">SET</span> @knownUserName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Tonic'</span>
<span style="color: #993333; font-weight: bold;">SET</span> @lostUserName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'host'</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span> @knownPassword <span style="color: #66cc66;">=</span> Password<span style="color: #66cc66;">,</span> @knownSalt <span style="color: #66cc66;">=</span> PasswordSalt
<span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Membership
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_users
<span style="color: #993333; font-weight: bold;">ON</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId <span style="color: #66cc66;">=</span> aspnet_users<span style="color: #66cc66;">.</span>UserId
<span style="color: #993333; font-weight: bold;">WHERE</span> UserName <span style="color: #66cc66;">=</span> @knownUserName;
&nbsp;
PRINT <span style="color: #ff0000;">''</span>
PRINT <span style="color: #ff0000;">'Known Password for &quot;'</span> <span style="color: #66cc66;">+</span> @knownUserName <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'&quot; is : '</span> <span style="color: #66cc66;">+</span> @knownPassword
PRINT <span style="color: #ff0000;">'Known Password Salt for &quot;'</span> <span style="color: #66cc66;">+</span> @knownUserName <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'&quot; is : '</span> <span style="color: #66cc66;">+</span> @knownSalt
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span> @lostUserId <span style="color: #66cc66;">=</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId
<span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Membership
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_users
<span style="color: #993333; font-weight: bold;">ON</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId <span style="color: #66cc66;">=</span> aspnet_users<span style="color: #66cc66;">.</span>UserId
<span style="color: #993333; font-weight: bold;">WHERE</span> UserName <span style="color: #66cc66;">=</span> @lostUserName;
&nbsp;
PRINT <span style="color: #ff0000;">''</span>
PRINT <span style="color: #ff0000;">'UserID for &quot;'</span> <span style="color: #66cc66;">+</span> @lostUserName <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'&quot; is : '</span> <span style="color: #66cc66;">+</span> @lostUserId
PRINT <span style="color: #ff0000;">''</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>DATALENGTH<span style="color: #66cc66;">&#40;</span>@lostUserName<span style="color: #66cc66;">&#41;</span> &amp;lt;<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">OR</span> @lostUserName <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>
PRINT <span style="color: #ff0000;">'Invalid Lost User Name '</span> <span style="color: #66cc66;">+</span> @lostUserName
<span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">BEGIN</span>
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>DATALENGTH<span style="color: #66cc66;">&#40;</span>@knownUserName<span style="color: #66cc66;">&#41;</span> &amp;lt;<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">OR</span> @knownUserName <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>
PRINT <span style="color: #ff0000;">'Invalid Lost User Name '</span> <span style="color: #66cc66;">+</span> @lostUserName
<span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">BEGIN</span>
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>DATALENGTH<span style="color: #66cc66;">&#40;</span>@knownPassword<span style="color: #66cc66;">&#41;</span> &amp;lt;<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">OR</span> @knownPassword <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>
PRINT <span style="color: #ff0000;">'Invalid Known Password '</span> <span style="color: #66cc66;">+</span> @knownPassword
<span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">BEGIN</span>
<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>DATALENGTH<span style="color: #66cc66;">&#40;</span>@knownSalt<span style="color: #66cc66;">&#41;</span> &amp;lt;<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">OR</span> @knownSalt <span style="color: #993333; font-weight: bold;">IS</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>
PRINT <span style="color: #ff0000;">'Invalid Known Salt '</span> <span style="color: #66cc66;">+</span> @knownSalt
<span style="color: #993333; font-weight: bold;">ELSE</span> <span style="color: #993333; font-weight: bold;">BEGIN</span>
PRINT <span style="color: #ff0000;">''</span>
PRINT <span style="color: #ff0000;">'BEFORE'</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span>UserName<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> UserName<span style="color: #66cc66;">,</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span>Email<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> Email<span style="color: #66cc66;">,</span> Password<span style="color: #66cc66;">,</span> PasswordSalt
<span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Membership <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_users <span style="color: #993333; font-weight: bold;">ON</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId <span style="color: #66cc66;">=</span> aspnet_users<span style="color: #66cc66;">.</span>UserId
<span style="color: #993333; font-weight: bold;">WHERE</span> UserName <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span> @knownUserName<span style="color: #66cc66;">,</span> @lostUserName <span style="color: #66cc66;">&#41;</span>;
PRINT <span style="color: #ff0000;">''</span>
PRINT <span style="color: #ff0000;">'Changing Password for User Id : &quot;'</span> <span style="color: #66cc66;">+</span> @lostUserId <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'&quot; to &quot;'</span> <span style="color: #66cc66;">+</span> @knownPassword <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">'&quot;'</span>
PRINT <span style="color: #ff0000;">''</span>
<span style="color: #993333; font-weight: bold;">UPDATE</span> aspnet_Membership
<span style="color: #993333; font-weight: bold;">SET</span> Password <span style="color: #66cc66;">=</span> @knownPassword<span style="color: #66cc66;">,</span>
PasswordSalt <span style="color: #66cc66;">=</span> @knownSalt
<span style="color: #808080; font-style: italic;">-- SELECT UserId, Password, PasswordSalt</span>
<span style="color: #808080; font-style: italic;">-- FROM aspnet_Membership</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> UserId <span style="color: #66cc66;">=</span> @lostUserId;
PRINT <span style="color: #ff0000;">''</span>
PRINT <span style="color: #ff0000;">'AFTER'</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span>UserName<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> UserName<span style="color: #66cc66;">,</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">LEFT</span><span style="color: #66cc66;">&#40;</span>Email<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> Email<span style="color: #66cc66;">,</span> Password<span style="color: #66cc66;">,</span> PasswordSalt
<span style="color: #993333; font-weight: bold;">FROM</span> aspnet_Membership <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_users <span style="color: #993333; font-weight: bold;">ON</span> aspnet_Membership<span style="color: #66cc66;">.</span>UserId <span style="color: #66cc66;">=</span> aspnet_users<span style="color: #66cc66;">.</span>UserId
<span style="color: #993333; font-weight: bold;">WHERE</span> UserName <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span> @knownUserName<span style="color: #66cc66;">,</span> @lostUserName <span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">END</span>
<span style="color: #993333; font-weight: bold;">END</span>
<span style="color: #993333; font-weight: bold;">END</span>
<span style="color: #993333; font-weight: bold;">END</span>
<span style="color: #993333; font-weight: bold;">GO</span>
PRINT <span style="color: #ff0000;">''</span> PRINT <span style="color: #ff0000;">' * * * END OF SCRIPT * * *'</span> PRINT <span style="color: #ff0000;">''</span> <span style="color: #993333; font-weight: bold;">GO</span></pre></td></tr></table></div>

<p>显然, 前面已经提过, 我没有一个现成的知道密码的帐号, 所以再次失败.</p>
<p><strong>方案五</strong></p>
<p>由于我之前的失败都因为没有一个可以工作的而且知道密码的帐号, 而又不能在网站上注册新帐号, 于是我找到了一个方法可以用SQL创建一个新帐号.</p>
<p>query如下</p>
<p>&nbsp;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> m<span style="color: #66cc66;">.</span>password<span style="color: #66cc66;">,</span> m<span style="color: #66cc66;">.</span>passwordsalt<span style="color: #66cc66;">,</span> m<span style="color: #66cc66;">.</span>passwordformat
<span style="color: #993333; font-weight: bold;">FROM</span> aspnet_users u
    <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> aspnet_membership m
        <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #66cc66;">&#40;</span>u<span style="color: #66cc66;">.</span>userid <span style="color: #66cc66;">=</span> m<span style="color: #66cc66;">.</span>userid<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">WHERE</span> u<span style="color: #66cc66;">.</span>UserName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'TestUser'</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> PortalId<span style="color: #66cc66;">,</span>
     PortalName
<span style="color: #993333; font-weight: bold;">FROM</span> Portals
<span style="color: #993333; font-weight: bold;">DECLARE</span> @ApplicationName nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">256</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @ApplicationName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'DotNetNuke'</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @UserName nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">256</span><span style="color: #66cc66;">&#41;</span> 
<span style="color: #993333; font-weight: bold;">SET</span> @UserName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'NewUser'</span> <span style="color: #808080; font-style: italic;">--The new user</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @Password nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">--From the existing user</span>
<span style="color: #993333; font-weight: bold;">SET</span> @Password <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'LLSXX8xW6+0EbrV4JBzL/YenA1D6BBfRnkYY7FtQvNGmmPOhVdPiAA=='</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @PasswordSalt nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">--From the existing user</span>
<span style="color: #993333; font-weight: bold;">SET</span> @PasswordSalt <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'P40ky5tExsx37nUIFnCWZQ=='</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @Email nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">256</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @Email <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'TestingAccount@test.com'</span> <span style="color: #808080; font-style: italic;">--You can set this to whatever you want</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @PasswordQuestion nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">256</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @PasswordQuestion <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">''</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @PasswordAnswer nvarchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SET</span> @PasswordAnswer <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">''</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @IsApproved bit
<span style="color: #993333; font-weight: bold;">SET</span> @IsApproved <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @CurrentTimeUtc datetime 
<span style="color: #993333; font-weight: bold;">SET</span> @CurrentTimeUtc <span style="color: #66cc66;">=</span> GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @CreateDate datetime
<span style="color: #993333; font-weight: bold;">SET</span> @CreateDate <span style="color: #66cc66;">=</span> @CurrentTimeUtc
<span style="color: #993333; font-weight: bold;">DECLARE</span> @UniqueEmail <span style="color: #993333; font-weight: bold;">INT</span>
<span style="color: #993333; font-weight: bold;">SET</span> @UniqueEmail <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @PasswordFormat <span style="color: #993333; font-weight: bold;">INT</span>
<span style="color: #993333; font-weight: bold;">SET</span> @PasswordFormat <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span> <span style="color: #808080; font-style: italic;">--NOTE: Value from existing user!</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @PortalId <span style="color: #993333; font-weight: bold;">INT</span>
<span style="color: #993333; font-weight: bold;">SET</span> @PortalId <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>    <span style="color: #808080; font-style: italic;">--The id of your portal</span>
<span style="color: #993333; font-weight: bold;">DECLARE</span> @UserId uniqueidentifier
<span style="color: #993333; font-weight: bold;">DECLARE</span> @DNNUserId <span style="color: #993333; font-weight: bold;">INT</span>
&nbsp;
<span style="color: #808080; font-style: italic;">--Make the stored procedure call</span>
<span style="color: #993333; font-weight: bold;">EXEC</span> dbo<span style="color: #66cc66;">.</span>aspnet_Membership_CreateUser @ApplicationName<span style="color: #66cc66;">,</span> @Username<span style="color: #66cc66;">,</span> @Password<span style="color: #66cc66;">,</span>
                @PasswordSalt<span style="color: #66cc66;">,</span> @email<span style="color: #66cc66;">,</span> @passwordquestion<span style="color: #66cc66;">,</span> @PasswordAnswer<span style="color: #66cc66;">,</span> 
                @IsApproved<span style="color: #66cc66;">,</span> @CurrentTimeUtc<span style="color: #66cc66;">,</span> @CreateDate<span style="color: #66cc66;">,</span> @UniqueEmail<span style="color: #66cc66;">,</span>
                @PasswordFormat<span style="color: #66cc66;">,</span> @UserId
&nbsp;
<span style="color: #808080; font-style: italic;">--Insert the record into the DotNetNuke users table</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> users <span style="color: #66cc66;">&#40;</span>Username<span style="color: #66cc66;">,</span> FirstName<span style="color: #66cc66;">,</span> LastName<span style="color: #66cc66;">,</span> IsSuperUser<span style="color: #66cc66;">,</span> Email<span style="color: #66cc66;">,</span>
                    DisplayName<span style="color: #66cc66;">,</span> UpdatePassword<span style="color: #66cc66;">&#41;</span>
    <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>@Username<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'My'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'NewAccount'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span> @Email<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'New Account'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">--Get the new userid, from the DNN users table</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> @dnnuserid <span style="color: #66cc66;">=</span> userid
<span style="color: #993333; font-weight: bold;">FROM</span> Users
<span style="color: #993333; font-weight: bold;">WHERE</span> username <span style="color: #66cc66;">=</span> @Username
&nbsp;
<span style="color: #808080; font-style: italic;">--Now, insert the record into the user portals table</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> UserPortals <span style="color: #66cc66;">&#40;</span>userId<span style="color: #66cc66;">,</span> PortalId<span style="color: #66cc66;">,</span> CreatedDate<span style="color: #66cc66;">&#41;</span>
    <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>@dnnuserid<span style="color: #66cc66;">,</span> @PortalId<span style="color: #66cc66;">,</span> GETDATE<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> 
&nbsp;
<span style="color: #808080; font-style: italic;">--Now Give the user permissions to the RECISTERED Users group</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> UserRoles <span style="color: #66cc66;">&#40;</span>userId<span style="color: #66cc66;">,</span> roleId<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> @dnnuserid<span style="color: #66cc66;">,</span>
        roleId
<span style="color: #993333; font-weight: bold;">FROM</span> Roles
<span style="color: #993333; font-weight: bold;">WHERE</span> RoleName <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Registered Users'</span></pre></td></tr></table></div>

<p>然而我不得不再次不幸的告诉大家, 从这个query来看, 要使用这个query建立一个DNN新用户, 也是需要事先有一个知道密码, salt, applicationname的帐户才可以的, 可悲的是我的密码和salt密文已经被我完全删干净了. 再次失败.</p>
<p>&nbsp;</p>
<p><strong>成功方案</strong></p>
<p><strong></strong>&nbsp;</p>
<p>经过了这数次失败以后, 我终于放弃google了, 看来这次真的无法找到我要的答案, 既然数据库方向我无法找到结果, 那么只能从代码上动手脚了, 不就是想注册新用户么, 我开始找login module的code.</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/07/image2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/07/image-thumb2.png" width="271" height="184"></a>&nbsp;</p>
<p>DNN的这个目录下存放着login module的代码, 打开后开始查找对portal setting里Userregistration属性的判定, 经过一翻查找和测试, 总算找到了, Page_Load里面的这一段</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="vbnet" style="font-family:monospace;">            <span style="color: #0600FF;">If</span> <span style="color: #804040;">Not</span> Request.<span style="color: #0000FF;">IsAuthenticated</span> <span style="color: #FF8000;">Then</span>
                <span style="color: #0600FF;">If</span> Page.<span style="color: #0000FF;">IsPostBack</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">False</span> <span style="color: #FF8000;">Then</span>
                    <span style="color: #0600FF;">Try</span>
                        <span style="color: #0600FF;">If</span> <span style="color: #804040;">Not</span> Request.<span style="color: #0000FF;">QueryString</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;username&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Is</span> <span style="color: #FF8000;">Nothing</span> <span style="color: #FF8000;">Then</span>
                            txtUsername.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> Request.<span style="color: #0000FF;">QueryString</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;username&quot;</span><span style="color: #000000;">&#41;</span>
                        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
                        <span style="color: #0600FF;">If</span> <span style="color: #804040;">Not</span> Request.<span style="color: #0000FF;">QueryString</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;verificationcode&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Is</span> <span style="color: #FF8000;">Nothing</span> <span style="color: #FF8000;">Then</span>
                            <span style="color: #0600FF;">If</span> PortalSettings.<span style="color: #0000FF;">UserRegistration</span> <span style="color: #008000;">=</span> PortalRegistrationType.<span style="color: #0000FF;">VerifiedRegistration</span> <span style="color: #FF8000;">Then</span>
                                <span style="color: #008080; font-style: italic;">' Comment this line above and the &quot;End If&quot; below out if you can't login as admin or host </span>
                                <span style="color: #008080; font-style: italic;">'   and can't change the register setting in SQL and don't even have an password-known account </span>
                                <span style="color: #008080; font-style: italic;">'   and really really desperatly want to register a new user.   -- Kang 10.07.2008</span>
&nbsp;
                                <span style="color: #008080; font-style: italic;">'Display Verification Rows </span>
                                rowVerification1.<span style="color: #0000FF;">Visible</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">True</span>
                                rowVerification2.<span style="color: #0000FF;">Visible</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">True</span>
                                txtVerification.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> Request.<span style="color: #0000FF;">QueryString</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;verificationcode&quot;</span><span style="color: #000000;">&#41;</span>
                            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
                        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
&nbsp;
                    <span style="color: #0600FF;">Catch</span>
                        <span style="color: #008080; font-style: italic;">'control not there </span>
                    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
                <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span></pre></td></tr></table></div>

<p>这段代码中的comment是我加的.. (当时实在很无语), 判定网站是否开放注册的部分就是其中If PortalSettings.UserRegistration = PortalRegistrationType.VerifiedRegistration Then 和下面的End IF这两行, 我把他们前面加个&#8217; 给comment掉再重新编译运行网站,&nbsp; register就出来了, 之后我把自己新注册的用户在数据库中的superuser设成true(dbo.Users表里面), 然后用这个帐号登录DNN, 把host和admin的salt随便写一个在数据库里加上, 再把他俩的密码reset, 然后重新change password为我想要的, 大功告成. 本来也可以用上面几个方案中给出的换密码的办法, 不过看了这么久的query我实在不想再弄了, 直接去万恶的DNN后台里改了.</p>
<p>希望对跟我一样犯了愚蠢错误的DNN开发人员有所帮助. </p>
<p>真的很长啊, 谢谢观赏.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/244/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple IE &#8211; 使多版本IE共存</title>
		<link>http://kang.fm/archives/234</link>
		<comments>http://kang.fm/archives/234#comments</comments>
		<pubDate>Fri, 27 Jun 2008 15:59:04 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[网站开发]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=234</guid>
		<description><![CDATA[做网站时候经常有些客户要求网站compatible with很多版本的IE, safari, FF, 但是正常来说IE只能装一个版本，装新版时候就会自动更新， 把原来的版本抹掉，IE现在已经更新到IE 8 beta, 可大多政府学校机构还在使用IE 6(万恶的IE6&#8230;&#8230;)&#160; 而偏偏由于IE本身对CSS/ javascript解释的问题， 网页在不同版本的浏览器， 甚至不同版本的IE中都有不同的样子&#8230;. 为了方便测试, 几乎每个网站开发人员都想过多个IE一起装进电脑里并存吧&#8230;(有的客户甚至要求网站跟IE5也兼容&#8230;-_-) , 于是这个叫Multi-IE的软件就在几个老外的努力下诞生了. 软件里包括了IE3-6, 由于新版IE 8 Beta有模拟IE 7的功能, 所以IE 7暂时没有列入其中. 软件使用很简单, 下载后安装, 选择想要的IE版本既可. 值得注意的是IE developer toolbar在Multi-IE的IE6里是不会工作的, 只会在你正常安装的当前版本IE里工作, 如果实在想在IE 6里用IE developer toolbar, 那唯一的办法貌似就是在virtual machine里全新安装一个win XP, 不要更新其中的IE, 在其中安装IE developer toolbar然后进行调试了. 而有时Multi-IE中的IE也会无故crash&#8230;比如我上一个项目里做的javascript的渐变图像, 有时在IE 6 中鼠标无意双击, 就会导致crash&#8230;-_- 另外这个软件包跟Vista不兼容, 不过目前没有多少开发人员在用Vista吧, 如果实在想在Vista下使用IE 6的话, 我稍后会发一篇Vista下安装IE 6的指南.&#160; 虽然有些不完美的地方, [...]]]></description>
			<content:encoded><![CDATA[<p>做网站时候经常有些客户要求网站compatible with很多版本的IE, safari, FF, 但是正常来说IE只能装一个版本，装新版时候就会自动更新， 把原来的版本抹掉，IE现在已经更新到IE 8 beta, 可大多政府学校机构还在使用IE 6(万恶的IE6&#8230;&#8230;)&#160; 而偏偏由于IE本身对CSS/ javascript解释的问题， 网页在不同版本的浏览器， 甚至不同版本的IE中都有不同的样子&#8230;. 为了方便测试, 几乎每个网站开发人员都想过多个IE一起装进电脑里并存吧&#8230;(有的客户甚至要求网站跟IE5也兼容&#8230;-_-) , 于是这个叫Multi-IE的软件就在几个老外的努力下诞生了. 软件里包括了IE3-6, 由于新版IE 8 Beta有模拟IE 7的功能, 所以IE 7暂时没有列入其中.</p>
<p>软件使用很简单, 下载后安装, 选择想要的IE版本既可. 值得注意的是IE developer toolbar在Multi-IE的IE6里是不会工作的, 只会在你正常安装的当前版本IE里工作, 如果实在想在IE 6里用IE developer toolbar, 那唯一的办法貌似就是在virtual machine里全新安装一个win XP, 不要更新其中的IE, 在其中安装IE developer toolbar然后进行调试了. 而有时Multi-IE中的IE也会无故crash&#8230;比如我上一个项目里做的javascript的渐变图像, 有时在IE 6 中鼠标无意双击, 就会导致crash&#8230;-_- 另外这个软件包跟Vista不兼容, 不过目前没有多少开发人员在用Vista吧, 如果实在想在Vista下使用IE 6的话, 我稍后会发一篇Vista下安装IE 6的指南.&#160; 虽然有些不完美的地方, 但暇不掩玉, 这个软件实用性还是很强. </p>
<p>软件的安装界面如下:</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image25.png"><img height="317" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb25.png" width="406" border="0" /></a> </p>
<p>安装后的效果:</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image26.png"><img height="151" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb26.png" width="349" border="0" /></a> </p>
<p>下载地址: <a href="http://tredosoft.com/files/multi-ie/multiple-ie-setup.exe">Multiple IE Installer</a> (10.3MB)</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/234/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>正版DVD电影转刻至一般DVD+转换为RMVB视频文件+字幕不完全手册(整合了所有相关工具本地下载, 免得大家到处找了)</title>
		<link>http://kang.fm/archives/229</link>
		<comments>http://kang.fm/archives/229#comments</comments>
		<pubDate>Thu, 12 Jun 2008 03:41:09 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=229</guid>
		<description><![CDATA[最近弄了很多正版碟回来想COPY下来收藏, 但是一般的DVD空盘只有4.7GB容量, 根本装不下100%画质的一般正版DVD电影, 只能视电影长度适当减少画质. Double Layer的大容量DVD又太贵, 不符合广大人民群众对性价比的狂热需求. 我通常的做法是降低画质, 去掉不必要的special features (幕后花缀,删剪镜头etc&#8230;), 然后转入普通的DVD空盘. 但是最近发现转成RMVB存硬盘or移动硬盘其实也是不错的方法, 在节省空盘的同时也可以降低光驱的磨损(每次看碟都要磨损光驱的). 经常过几天的查阅资料和尝试, 就来讲下心得体会和具体操作. &#160; 据我所知还有很多朋友不知道如何copy正版DVD电影, 关键是找不到正确的软件, 所以第一部分先讲一般正版DVD电影转刻的方法.&#160; 因为正版的DVD上都有区域码限制和一堆乱七八糟的加密(本着本篇文章注重实效的原则, 我就不讲都是些啥乱七八糟的加密了), 所以需要一些特殊的软件来把他们去掉, 才能对其进行复制, 我试用过很多软件, 最好用的就是AnyDVD配合CloneDVD. 下载地址: AnyDVD 6.3.1.5 : http://www.fmdemise.com/SetupAnyDVD6315.exe AnyDVD 6.3.1.5 破解补丁: http://www.fmdemise.com/AnyDVD_6.3.1.5_RES.rar (破解方法: 把AnyDVD 装上 ,然后把破解补丁里的AnyDVDtray.exe复制进安装完的目录里复制原文件) &#160; CloneDVD2 2.9.1.5 : http://www.fmdemise.com/SetupCloneDVD2915Slysoft.exe CloneDVD2 2.9.1.5 破解补丁: http://www.fmdemise.com/SlySoft.CloneDVD.v2.9.1.5.Final.rar (破解方法: 破解补丁里有N多keygen什么的, 随便找一个破解就行了) &#160; 以上两个版本的软件基本可以应付现在所有的正版DVD, 如果你要复制的太高科技, 实在没办法破解其加密的话, [...]]]></description>
			<content:encoded><![CDATA[<p>最近弄了很多正版碟回来想COPY下来收藏, 但是一般的DVD空盘只有4.7GB容量, 根本装不下100%画质的一般正版DVD电影, 只能视电影长度适当减少画质. Double Layer的大容量DVD又太贵, 不符合广大人民群众对性价比的狂热需求. 我通常的做法是降低画质, 去掉不必要的special features (幕后花缀,删剪镜头etc&#8230;), 然后转入普通的DVD空盘. 但是最近发现转成RMVB存硬盘or移动硬盘其实也是不错的方法, 在节省空盘的同时也可以降低光驱的磨损(每次看碟都要磨损光驱的). 经常过几天的查阅资料和尝试, 就来讲下心得体会和具体操作.</p>
<p>&#160;</p>
<p>据我所知还有很多朋友不知道如何copy正版DVD电影, 关键是找不到正确的软件, 所以第一部分先讲一般正版DVD电影转刻的方法.&#160; 因为正版的DVD上都有区域码限制和一堆乱七八糟的加密(本着本篇文章注重实效的原则, 我就不讲都是些啥乱七八糟的加密了), 所以需要一些特殊的软件来把他们去掉, 才能对其进行复制, 我试用过很多软件, 最好用的就是AnyDVD配合CloneDVD. </p>
<p>下载地址:</p>
<p>AnyDVD 6.3.1.5 : <a href="http://www.fmdemise.com/SetupAnyDVD6315.exe">http://www.fmdemise.com/SetupAnyDVD6315.exe</a></p>
<p>AnyDVD 6.3.1.5 破解补丁: <a href="http://www.fmdemise.com/AnyDVD_6.3.1.5_RES.rar">http://www.fmdemise.com/AnyDVD_6.3.1.5_RES.rar</a></p>
<p>(破解方法: 把AnyDVD 装上 ,然后把破解补丁里的AnyDVDtray.exe复制进安装完的目录里复制原文件)</p>
<p>&#160;</p>
<p>CloneDVD2 2.9.1.5 : <a href="http://www.fmdemise.com/SetupCloneDVD2915Slysoft.exe">http://www.fmdemise.com/SetupCloneDVD2915Slysoft.exe</a></p>
<p>CloneDVD2 2.9.1.5 破解补丁: <a href="http://www.fmdemise.com/SlySoft.CloneDVD.v2.9.1.5.Final.rar">http://www.fmdemise.com/SlySoft.CloneDVD.v2.9.1.5.Final.rar</a></p>
<p>(破解方法: 破解补丁里有N多keygen什么的, 随便找一个破解就行了)</p>
<p>&#160;</p>
<p>以上两个版本的软件基本可以应付现在所有的正版DVD, 如果你要复制的太高科技, 实在没办法破解其加密的话, 那就去 <a href="http://www.anydvd.com">http://www.anydvd.com</a>&#160; 下载最新版的AnyDVD和CloneDVD , 然后自己上网上找破解吧, 一般是找不到最新版的破解补丁的, 其实付钱也没啥不行的, 两个软件加一起好像是100美刀左右, 就终身免费升级了.</p>
<p>&#160;</p>
<p>打开AnyDVD的Anydvdtray.exe, 软件会在后台运行, 任务栏上多出一个小狐狸的图标, 当你把正版DVD光盘放进去以后, anydvd会去掉他的各种加密, 以及区域码. (这里有个例外, 我在之前的文章里有讲述, 一种特定牌子特定型号的光驱, 区域码无法通过软件破解, 所以有这种光驱的人就倒霉了, 买个新的吧). 这时候这张光盘就像普通的DVD一样可以随意复制了, 于是再打开CloneDVD2.</p>
<p>点<a href="http://www.k4ng.com/wp-content/uploads/2008/06/image.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="127" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb.png" width="318" border="0" /></a> 再点<a href="http://www.k4ng.com/wp-content/uploads/2008/06/image1.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="23" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb1.png" width="23" border="0" /></a>选择光盘里的video_ts文件夹. 会出现如下画面:</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image2.png"><img height="371" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb2.png" width="389" border="0" /></a> </p>
<p>左边的下拉菜单里, 如果你想把这张盘复制到double layer的盘里, 就选择DVD+/-R DL , 一张double layer的盘可以以100%画质复制下任何的整张正版DVD, 当然一般我们是将其复制进普通的4.7GB DVD光盘里, 所以选择自定义, 并调整容量为4700MB , 右边会显示当前的设置下能够达到的画质, 如果想高一点画质, 就把除了主视频外的其它文件都勾选掉</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image3.png"><img height="368" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb3.png" width="396" border="0" /></a> </p>
<p>去掉这些除了主视频以外的东西后, 画质居然达到100%了&#160; (-_-|||).. 其实不到100%也没关系, 60%-100%之间都是可以接受的画质.</p>
<p>调整满意后, 点下一步,在这里设置想要保留的字幕语言和音频, 我通常是留dolby 六声道的主语言(因为这是个正版英文电影, 所以只有English, 没得选). <a href="http://www.k4ng.com/wp-content/uploads/2008/06/image4.png"><img height="192" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb4.png" width="465" border="0" /></a> </p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image5.png"><img height="178" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb5.png" width="313" border="0" /></a> </p>
<p>在这里如果去掉你不想要的字幕和音频, 也是可以提高画质的.</p>
<p>再点下一步</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image6.png"><img height="83" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb6.png" width="379" border="0" /></a> </p>
<p>这里CloneDVD是先将整张DVD复制进硬盘中, 然后再刻录至你的DVD里, 所以这里要选择你想存入的文件夹, 如果上面你选的是DVD +/- R DL, 那么要保证你硬盘里还有6.5G以上的剩余空间, 如果是选的自定议, 4700MB, 则要保证你硬盘里还有4.7G以上的剩余空间.&#160; 再点击 执行&#160; , 复制就开始了. 需要的时间通常是10几分钟至40几分钟不等, 根据你光驱的速度还有你电脑的速度而定, 复制成功后会有一阵巨傻二的音乐传出来. 点确定就行了. 然后把原版电影拿出来, 把你准备好的空盘放进光驱. 点 重新开始, 然后点</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image7.png"><img height="100" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb7.png" width="347" border="0" /></a> </p>
<p>来源里把你刚才的copy电影的文件夹选上, 卷标里写上电影的名字(或者你想写啥都可以, 不影响). DVD刻录机里选上你要用的刻录机. 点 执行,&#160; 就开始了.&#160; 同上面一样, 需要的时间通常是10几分钟至40几分钟不等, 根据你光驱的速度还有你电脑的速度而定, 刻完了会有一阵巨傻二的音乐传出来, 你就知道完事了. </p>
<p>讲完怎么把正版电影DVD翻刻到普通DVD上, 最爽的部分就开始了, 下面来讲讲怎么把正版电影DVD转刻为RMVB文件+字幕.</p>
<p>网上有很多很多讲这个的文章, 很乱套, 我试了很多, 现在来讲讲自己总结的方法.</p>
<p>应用软件: SmartRipper, Elecard MPEG-2 Decoder&amp;Streaming Plug-in for WMP 3.6.80523, VobSub, Easy RealMedia ProducerV1.94, 影音风暴Storm Player(和暴风影音完全两回事, 别混了)</p>
<p>下载地址: </p>
<p>SmartRipper : <a href="http://www.fmdemise.com/SmartRipper 2.41.zip">http://www.fmdemise.com/SmartRipper 2.41.zip</a></p>
<p>Elecard MPEG-2 Decoder : <a href="http://www.fmdemise.com/EMPG2_Dec_Strm_Pack.zip">http://www.fmdemise.com/EMPG2_Dec_Strm_Pack.zip</a></p>
<p>VobSub : <a href="http://www.fmdemise.com/VobSub_2.23.exe">http://www.fmdemise.com/VobSub_2.23.exe</a></p>
<p>Easy RealMedia Producer : <a href="http://www.fmdemise.com/ermp_full.exe">http://www.fmdemise.com/ermp_full.exe</a></p>
<p>Storm Player : <a title="http://download.verycd.com/StormPlayer.exe" href="http://download.verycd.com/StormPlayer.exe">http://download.verycd.com/StormPlayer.exe</a></p>
<p>&#160;</p>
<p>首先安装Elecard MPEG-2 Decoder&amp;Streaming Plug-in for WMP 3.6.80523 这个解码器+插件, 然后依次把Smart Ripper, Vobsub, Easy realmedia producer和Storm Player都安装上. 打开AnyDVD(安装后Anydvd通常就是开机自动启动了), 把要复制的电影DVD放进光驱, AnyDVD会自动去除区域码和光盘加密, 打开Smart Ripper. 它会自动开始检查光盘, 解密, 去码(AnyDVD已经帮它做完了, 有很多光盘SmartRipper不能解密, 这就是为什么要 AnyDVD配合) 检查光盘内各个文件的可读性.</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image8.png"><img height="466" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb8.png" width="318" border="0" /></a> </p>
<p>成功后会显示如下画面</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image9.png"><img height="469" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb9.png" width="321" border="0" /></a> 以及程序的主窗口</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image10.png"><img height="550" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb10.png" width="709" border="0" /></a> </p>
<p>这里要做一些小的调整. 先点Stream Processing, </p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image11.png"><img height="316" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb11.png" width="493" border="0" /></a></p>
<p>如果是老手就按自己想要的选择吧, 其实跟CloneDVD是一样的, 新手的话就点右边的all, 都选上吧.</p>
<p>再点左边的<a href="http://www.k4ng.com/wp-content/uploads/2008/06/image12.png"><img height="36" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb12.png" width="96" border="0" /></a> </p>
<p>&#160;<a href="http://www.k4ng.com/wp-content/uploads/2008/06/image13.png"><img height="369" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb13.png" width="486" border="0" /></a> </p>
<p>在这个窗口里, 因为有anyDVD进行解密在key-check下选don&#8217;t decrypt, File-splitting里选max-filesize, 并把max-filesize改为8000MB, 这样转换下来的电影都在同一个VOB文件里, 不需要二次合并, 方便转换为rmvb文件. 再点上面的Files/Backup</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image14.png"><img height="288" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb14.png" width="458" border="0" /></a> </p>
<p>在这里选择Key-check下的don&#8217;t decrypt, 跟上面一个道理.</p>
<p>其余的都不动, 点OK.</p>
<p>这样设置就算结束了, 其它的都不需要动 点 <a href="http://www.k4ng.com/wp-content/uploads/2008/06/image15.png"><img height="33" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb15.png" width="91" border="0" /></a> 开始复制.</p>
<p>&#160;</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image16.png"><img height="372" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb16.png" width="587" border="0" /></a> </p>
<p>Remaining后面是预计的剩余时间, 根据你光驱的速度会有所不同, 比如我这个破光驱就得40分钟, 借的朋友的新外挂光驱就10分钟就行了. (囧&#8230;.)</p>
<p>然后打开Easy Realmedia Producer</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image17.png"><img height="495" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb17.png" width="494" border="0" /></a></p>
<p>点添加, 把刚刚转换完的VOB文件选中.&#160; 单击添加的文件, 点 参数设置.</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image18.png"><img height="559" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb18.png" width="436" border="0" /></a> </p>
<p>这里把动态码率改成2440kbps, 视频质量调为100%, 视频编码RealVideo 9, 过滤设置里选上调整画面大小, 通常现在的DVD都是16:9的画面了, 所以调整画面大小为854 x 480, 并选上 高质量调整画面大小.&#160; 在剪辑信息里写上电影标题和制作人(其实爱写不写..无所谓). 这样一般的电影转出来大概有1-2G左右, 但是画质非常好, 跟DVD也差不多, 不过有的朋友可能喜欢小的, 那就按自己喜好调整就可以. 这里点确定, 就算设置完毕了. 有的文章里有讲把字幕和视频文件压在一起, RMVB视频出来就带自幕, 我个人觉得不喜欢, 因为有时候大家想看中文字幕, 但是有时候想只看英文字幕做学习用. 或者有时候干脆不想看字幕, 我这里的做法是直接转换时候就不带字幕, 然后播放时再让storm player自动外挂字幕. 这样可以自己选择, 关于字幕的问题下面会细说.</p>
<p>下面点 开始压缩, 程序就会开始将VOB文件转换为RMVB视频格式了. 大概要一两小时的时间, 视电影长度而定, 且转换过程中会有电影中的声音伴随, 而且是所有语言一起讲的, 不过不用担心, 转出来的RMVB文件只会是默认语言的音频, 英文就英文, 中文就中文. (英文电影还是听原声吧, 中文配音的实在扯, 就像看功夫之王里一帮傻二在古中国讲英文一样郁闷.. ) . 听它叽哩哇啦响一两个小时以后, 就转换完了. 这时候的RMVB视频已经算是可以看了, 只不过没有字幕.&#160; 下面有两个办法得到字幕, 一个是从电影里用vobsub的vobsub configure提取字幕ifo文件里的字幕.</p>
<p>打开vobsub里的vobsub Configure组件</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image19.png"><img height="219" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb19.png" width="656" border="0" /></a></p>
<p> 点Open, 打开转换出来的主电影视频匹配的ifo文件(文件名是一样的, 记着这里vob文件, ifo文件要都在一起, 否则会无法转换)</p>
<p>然后选择一个另存的位置, 就选你放电影的文件夹吧.</p>
<p>之后出现如下窗口:</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image20.png"><img height="356" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb20.png" width="323" border="0" /></a> </p>
<p>在这里把不想要的字幕都按&lt;&#8211; 导到左边Program Chain no.1下面去, 其它的不用动.</p>
<p>点OK就可以了.</p>
<p>程序会先find key</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image21.png"><img height="154" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb21.png" width="332" border="0" /></a> </p>
<p>然后index</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image22.png"><img height="152" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb22.png" width="333" border="0" /></a> </p>
<p>indexing大概需要几分钟的时间, 之后会生成.idx和.sub两个文件, 将其文件名都改为rmvb视频文件的文件名, 这样用storm player播放时, 会自动调用. </p>
<p>另外一个办法是去射手网 <a href="http://www.shooter.cn">http://www.shooter.cn</a> 下载你的电影的字幕，一般我会选项下载srt格式的, 并且看好要不分段的(一般电影的应该都能在射手网上找到). 然后文件名也改成RMVB文件的文件名就可以了. </p>
<p>&#160;</p>
<p>但是有时候会遇上一个问题, 有时候字幕和声音对不上, 快了或者慢了, 这里就要用到vobsub的一个叫subResync 的工具了. 播放器里只能调整加快或者减慢字幕自动调用的速度, 但是只有这个通常是不够的.</p>
<p>先播放视频文件, 记下第一句需要字幕和最后一句需要字幕的地方的时间(精确到秒)</p>
<p>然后用subResync打开你下载的或者转换出来的字幕文件</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image23.png"><img height="322" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb23.png" width="516" border="0" /></a> </p>
<p>这里unlink一定不要选上, 否则程序不会自动整体调校. </p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/06/image24.png"><img height="319" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/06/image-thumb24.png" width="521" border="0" /></a></p>
<p>在第一句和最后一句字幕上点右键, 其前方的白色圆圈会变为绿色, 然后在绿色圆圈后的时间上单击左键, 把时间改为你刚才所记下的时间, 点 Save As, 把字幕另存为一个文件. 再将原来的字幕改为其它名字, 将新做好的字幕文件改为rmvb视频文件的名字. </p>
<p>再用Storm Player打开rmvb视频看看, 字幕应该就已经都能吻合了.</p>
<p>&#160;</p>
<p>**关于更多的Storm Player播放时的字幕问题, 比如改文件名后字幕仍然不加载等等, 请参考Storm Player官方讨论组的这个贴子: <a title="http://www.verycd.com/groups/StormPlayer/93042.topic" href="http://www.verycd.com/groups/StormPlayer/93042.topic">http://www.verycd.com/groups/StormPlayer/93042.topic</a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>好, 到这里就算大功告成了.&#160; </p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>谢谢观赏.&#160; </p>
<p>The End. </p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:918b86be-7dad-484f-8dc3-cd86b96dff16" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">del.icio.us Tags: <a href="http://del.icio.us/popular/rmvb" rel="tag">rmvb</a>,<a href="http://del.icio.us/popular/dvd" rel="tag">dvd</a>,<a href="http://del.icio.us/popular/vob" rel="tag">vob</a>,<a href="http://del.icio.us/popular/%e8%a7%86%e9%a2%91%e8%bd%ac%e6%8d%a2" rel="tag">视频转换</a>,<a href="http://del.icio.us/popular/%e5%ad%97%e5%b9%95" rel="tag">字幕</a>,<a href="http://del.icio.us/popular/%e7%a0%b4%e8%a7%a3" rel="tag">破解</a></div>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/229/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IE 8 beta vs.  Firefox 3 vs Safari 3.1.1</title>
		<link>http://kang.fm/archives/162</link>
		<comments>http://kang.fm/archives/162#comments</comments>
		<pubDate>Fri, 30 May 2008 02:11:30 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[网站开发]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=162</guid>
		<description><![CDATA[说实话, 对一个网站开发人员来说, 最头疼事情之一的就是网站代码与各个不同版本浏览器的兼容性了, 现在市场上浏览器主流的虽不多, 但是设置和解释代码的方式却各不相同, 着实很烦, IE 7 , IE 6/5.5,&#160; FF 2/3, Safari, Opera&#8230;..&#160; 等等 经常在写CSS的时候为了能让网站在这些主流浏览器中看起来一模一样, 而写各种各样的所谓 &#34;HACK&#34;, 见过很多抓狂了的老外程序员甚至在CSS的comment里面就出言讽刺IE (实话实说.. IE确实很无语, 尤其是IE 6及以下版本, 连PNG图象都不支持, IE 7 明里说支持, 其实有些时候也会出问题, 说到PNG..更无语了, 又是另一个无穷HACK的故事&#8230;) 比如什么..&#34;/*Holy SUPER HAAAACK for our BELOVED IE 6&#34;&#160; . IE 系列有很多问题, 尤其是老版本IE 6 ,不支持纯css的下拉菜单, 不支持PNG图像的半透明效果, 都要靠各种hack, fix 来实现.&#160; 但偏偏现在很多的政府部门还有私人大多都在使用ie 6&#160; 让人不胜其烦&#8230; 好了, 言归正传, 来谈谈我们今天的三大主角..&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>说实话, 对一个网站开发人员来说, 最头疼事情之一的就是网站代码与各个不同版本浏览器的兼容性了, 现在市场上浏览器主流的虽不多, 但是设置和解释代码的方式却各不相同, 着实很烦, IE 7 , IE 6/5.5,&#160; FF 2/3, Safari, Opera&#8230;..&#160; 等等 经常在写CSS的时候为了能让网站在这些主流浏览器中看起来一模一样, 而写各种各样的所谓 &quot;HACK&quot;, 见过很多抓狂了的老外程序员甚至在CSS的comment里面就出言讽刺IE (实话实说.. IE确实很无语, 尤其是IE 6及以下版本, 连PNG图象都不支持, IE 7 明里说支持, 其实有些时候也会出问题, 说到PNG..更无语了, 又是另一个无穷HACK的故事&#8230;) 比如什么..&quot;/*Holy SUPER HAAAACK for our BELOVED IE 6&quot;&#160; . IE 系列有很多问题, 尤其是老版本IE 6 ,不支持纯css的下拉菜单, 不支持PNG图像的半透明效果, 都要靠各种hack, fix 来实现.&#160; 但偏偏现在很多的政府部门还有私人大多都在使用ie 6&#160; 让人不胜其烦&#8230;</p>
<p>好了, 言归正传, 来谈谈我们今天的三大主角..&#160; 都是最新版本的主流浏览器, IE 不用说了, 广大群众的最爱, FF则是天才少年的作品, 现在有Mozilla 撑腰, 简洁高效, 我的最爱 =P. Safari 则是苹果机上的标准浏览器, 大多搞图形,影视, 音频的人老外都用这, 再就是苹果机在国外类似一种文化, 虽然性价比不高, 但是却总是有那么一批固定用户群, 于是safari也是不可忽视. 如何让网站在这些不同标准下兼容而正常工作, 就是个问题.</p>
<p>再来讲下现在一个很著名的acid 测试, 本文中将要用的是acid 2 和acid 3, acid 2 可以说主要是一个css 测试, 用来检查浏览器是否能够正确的以标准方式解释CSS代码, 而acid 3 则主要是一个javascript测试. </p>
<p>acid 2 和 acid 3的网址分别为</p>
<p>acid2: <a title="http://acid2.acidtests.org/" href="http://acid2.acidtests.org/">http://acid2.acidtests.org/</a></p>
<blockquote><p><a title="http://www.webstandards.org/files/acid2/test.html" href="http://www.webstandards.org/files/acid2/test.html">http://www.webstandards.org/files/acid2/test.html</a></p>
</blockquote>
<p>acid3: <a title="http://acid3.acidtests.org/" href="http://acid3.acidtests.org/">http://acid3.acidtests.org/</a></p>
<p>先从ACID 2 开始,</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/05/image.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb.png" width="184" height="240" /></a>&#160;&#160; 这是acid2 的标准结果图, 出现这个图 代表该浏览器已通过测试.&#160; 如果有一丝不同, 便是FAIL.&#160; =.=|||</p>
<p>先来看FF和Safari. </p>
<p>FireFox3: <a href="http://www.k4ng.com/wp-content/uploads/2008/05/image1.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb1.png" width="180" height="240" /></a>&#160; Safari 3.1.1: <a href="http://www.k4ng.com/wp-content/uploads/2008/05/image2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb2.png" width="180" height="240" /></a> </p>
<p>IE 8 beta 自称通过了ACID 2 测试, 但是这里却出了点小问题. </p>
<p>如果登录<a title="http://www.webstandards.org/files/acid2/test.html" href="http://www.webstandards.org/files/acid2/test.html">http://www.webstandards.org/files/acid2/test.html</a> 这个地址来进行acid 2 测试, 则IE 8 的图示如下</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/05/image2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb2.png" width="180" height="240" /></a></p>
<p>但若是通过<a title="http://acid2.acidtests.org/" href="http://acid2.acidtests.org/">http://acid2.acidtests.org/</a> 这个地址进行测试, IE 8 则完完全全的是FAIL&#8230;如图</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/05/image3.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb3.png" width="178" height="240" /></a> </p>
<p>至于这个问题&#8230; 微软的Phil Nachreiner同志进行了解释. 据他所说 由于两个地址中的测试代码是一样的, 所以不存在因代码不同而使IE 8无法通过其中一个测试的说法, 而是因为IE 8 beta中本身的一个cross domain security设置, 而在acid2测试的代码中有object tag (去网站看源码就知道我在说啥了) , 而本身ie 8 beta对object tag 一类的解释方式有所不同, 其实是因为不同域名而导至的测试失败, 却不是IE 8&#160; 本身代码编译标准的问题.</p>
<p>好吧..至此 IE 8 beta, Firefox 3, Safari 3.1.1 都通过了acid 2 测试. CSS民工们可以欢呼了. 俺们迎来了互联网一个全新的时代..&amp;$!^!#%^$!,&#8230;.</p>
<p>&#160;</p>
<p>切慢..</p>
<p>&#160;</p>
<p>话说Acid2后..还有个ACID3测试呢&#8230; ( -.- |||)&#160; ,专门给浏览器javascript挑刺儿的&#8230;(多亏了这些挑刺儿的&#8230;.)</p>
<p>这是ACID 3 的标准图</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/05/image4.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb4.png" width="240" height="161" /></a> </p>
<p>开始吧 事先说明吧, acid3 要拿 100/100分才算pass, 具体说明去网站一看便知, 而这三个浏览器.. 嗯, 没有一个通过的. </p>
<p>Firefox 3: <a href="http://www.k4ng.com/wp-content/uploads/2008/05/image5.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb5.png" width="240" height="170" /></a> </p>
<p>Safari 3.1.1 : <a href="http://www.k4ng.com/wp-content/uploads/2008/05/image6.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb6.png" width="244" height="175" /></a> </p>
<p>重头戏来了, 看我们伟大的IE 8 &#8230;</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/05/image7.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/05/image-thumb7.png" width="440" height="152" /></a> </p>
<p>这是多少分我都看不见&#8230;.不过据同事讲, 他们前几天做测试时是17分.. (成吉思汗 &#8211; -|||)</p>
<p>据说IE 5.5 在ACID 3里都比IE 7/8 分高&#8230;</p>
<p>&#160;</p>
<p>测试结束&#8230;废话不用多说了, 于是 CSS民工们欢呼吧.. js 民工们.. IE 8 beta版便是这样了.. 希望正式版能好起来, 不然新版IE 给js同志们不仅带不来解脱&#8230;还得带来更多的BUG 也就是更多的痛苦&#8230; = =.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/162/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>电影 The Happening 预告+英文剧本</title>
		<link>http://kang.fm/archives/130</link>
		<comments>http://kang.fm/archives/130#comments</comments>
		<pubDate>Sat, 17 May 2008 09:16:43 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=130</guid>
		<description><![CDATA[之前在电影院看别的电影时 看到了这个电影的预告&#8230; 觉得很感兴趣, 但是电影6月份才会上映, 为了解馋, 在网上搜了个剧本, 拿出来分享下. &#160; 剧本下载地址: http://www.k4ng.com/The_Happening.pdf 预告: 分享到： 更多]]></description>
			<content:encoded><![CDATA[<p>之前在电影院看别的电影时 看到了这个电影的预告&#8230; 觉得很感兴趣, 但是电影6月份才会上映, 为了解馋, 在网上搜了个剧本, 拿出来分享下.</p>
<p>&#160;</p>
<p>剧本下载地址: <a title="http://www.k4ng.com/The_Happening.pdf" href="http://www.k4ng.com/The_Happening.pdf">http://www.k4ng.com/The_Happening.pdf</a></p>
<p>预告:</p>
<div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3ea8d23a-3f32-4515-b888-e4b40ec6816b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div id="c7696224-92cf-4668-807a-45acb86eda42" style="margin: 0px; padding: 0px; display: inline;">
<div><a href="http://www.youtube.com/watch?v=7yyMqcrHtlo&amp;hl=en" target="_new"><img src="http://www.k4ng.com/wp-content/uploads/2008/05/videoae64d9ec9847.jpg" galleryimg="no" onload="var downlevelDiv = document.getElementById('c7696224-92cf-4668-807a-45acb86eda42'); downlevelDiv.innerHTML = &quot;&lt;div&gt;&lt;object width=\&quot;425\&quot; height=\&quot;350\&quot;&gt;&lt;param name=\&quot;movie\&quot; value=\&quot;http://www.youtube.com/v/7yyMqcrHtlo&amp;hl=en\&quot;&gt;&lt;\/param&gt;&lt;param name=\&quot;wmode\&quot; value=\&quot;transparent\&quot;&gt;&lt;\/param&gt;&lt;embed src=\&quot;http://www.youtube.com/v/7yyMqcrHtlo&amp;hl=en\&quot; type=\&quot;application/x-shockwave-flash\&quot; wmode=\&quot;transparent\&quot; width=\&quot;425\&quot; height=\&quot;350\&quot;&gt;&lt;\/embed&gt;&lt;\/object&gt;&lt;\/div&gt;&quot;;" alt=""></a></div>
</div>
</div>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/130/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何在Netbeans中开发Android程序.</title>
		<link>http://kang.fm/archives/79</link>
		<comments>http://kang.fm/archives/79#comments</comments>
		<pubDate>Thu, 03 Apr 2008 05:39:38 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[代码相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=79</guid>
		<description><![CDATA[Google Android项目的用IDE开发时通常是Eclipse + Android SDK + Android plugin for Eclipse.&#160; Eclipse因为有IBM撑腰, 前几年一直是Java IDE的首选..不过现在Sun公司经过多年的摸黑和偷窥(..-_-&#124;&#124;&#124;)&#160; 从NetBeans 5.5开始&#160; 就已经让很多的JAVA开发者开始接受Sun自己的Java IDE, 目前又新推出了NetBeans 6.0.1, 无论从哪方面讲, 都已经是可以和Eclipse相提并论甚至很多方面也已经强过了Eclipse (尤其是俺学校做作业开始要求用NetBeans了&#8230;.)&#160; 所以俺一直在找寻在NetBeans下开发Android的方法&#8230; 写作业用NetBeans , 做Android用Eclipse 那我不是吃饱了没事闲的给自己找罪受么&#8230; 于是, 答案被俺在NetBeans的wiki上找到.. 下面就分享下.. *****插播刚看的新闻(April 3rd, 2008): 美国最大的通信公司AT&#38;T 已经同意将推出运行Google Android操作系统的手机***** &#160; 首先需要下载以下的程序 NetBeans Android SDK Android plugins for NetBeans (Undroid) &#160; 1. 安装Undroid(为Netbeans设计的Android 开发插件) 下载插件并安装, Tools-&#62; Plugins -&#62; Downloaded [...]]]></description>
			<content:encoded><![CDATA[<p>Google Android项目的用IDE开发时通常是Eclipse + Android SDK + Android plugin for Eclipse.&#160; Eclipse因为有IBM撑腰, 前几年一直是Java IDE的首选..不过现在Sun公司经过多年的摸黑和偷窥(..-_-|||)&#160; 从NetBeans 5.5开始&#160; 就已经让很多的JAVA开发者开始接受Sun自己的Java IDE, 目前又新推出了NetBeans 6.0.1, 无论从哪方面讲, 都已经是可以和Eclipse相提并论甚至很多方面也已经强过了Eclipse (尤其是俺学校做作业开始要求用NetBeans了&#8230;.)&#160; 所以俺一直在找寻在NetBeans下开发Android的方法&#8230; 写作业用NetBeans , 做Android用Eclipse 那我不是吃饱了没事闲的给自己找罪受么&#8230; 于是, 答案被俺在NetBeans的wiki上找到.. 下面就分享下..</p>
<p>*****插播刚看的新闻(April 3rd, 2008): 美国最大的通信公司AT&amp;T 已经同意将推出运行Google Android操作系统的手机*****</p>
<p>&#160;</p>
<p>首先需要下载以下的程序</p>
<p><a href="http://www.netbeans.org/">NetBeans</a></p>
<p><a href="http://code.google.com/android/download.html">Android SDK</a></p>
<p><a href="http://undroid.nolimit.cz/">Android plugins for NetBeans (Undroid)</a></p>
<p>&#160;</p>
<p>1. 安装Undroid(为Netbeans设计的Android 开发插件) </p>
<p>下载插件并安装, Tools-&gt; Plugins -&gt; Downloaded </p>
<p>确定你安装了Platform Support 和Project Support模块. 再装个Examples看看例子也不错..</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image10.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="372" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image-thumb10.png" width="600" border="0" /></a> </p>
<p>2. 填加 Android Platform</p>
<p>装完插件后, 你需要从Tools-&gt; Java Platforms中填加Android Platform</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image71.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="570" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image7-thumb.png" width="668" border="0" /></a></p>
<p>指向你的Android SDK目录</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image11.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="389" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image11-thumb.png" width="609" border="0" /></a></p>
<p>3. 创建新的Android项目</p>
<p>从Files-&gt; New Projects.&#160; 你可以看到分类里有一个新项目叫Android</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image15.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="374" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image15-thumb.png" width="604" border="0" /></a></p>
<p>换不换默认程序名随你便&#8230;</p>
<p>&#160;<a href="http://www.k4ng.com/wp-content/uploads/2008/04/image19.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="429" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image19-thumb.png" width="604" border="0" /></a></p>
<p>新Android项目的结构应该是下面这样的</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image23.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="208" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image23-thumb.png" width="292" border="0" /></a></p>
<p>MainActivity.java的代码如下</p>
<blockquote><pre>package org.me.androidapplication1;

import android.app.Activity;
import android.os.Bundle;

/**
 *
 * @author amit
 */
public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        // ToDo add your GUI initialization code here
    }

}</pre>
</blockquote>
<pre>4. 运行项目</pre>
<pre>现在就可以试着运行一下了, 运行成功的话, Android模拟器就会跳出来</pre>
<pre><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image27.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="454" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image27-thumb.png" width="604" border="0" /></a></pre>
<pre> 5. NetBeans中Android 的Hello World</pre>
<pre>填加一行</pre>
<blockquote>
<pre>TextView tv = new TextView(this);
tv.setText(&quot;Hello, Android&quot;);
setContentView(tv);</pre>
</blockquote>
<pre>在这一行的上面</pre>
<blockquote>
<pre>// ToDo add your GUI initialization code here</pre>
</blockquote>
<pre>&#160;</pre>
<p>然后你会发现Netbeans告诉你&quot;Cannot find symbol&quot;. 这是因为还需要导入TextView&#8230;(-_-|||..)</p>
<p>Netbeans里导个这东西很简单.</p>
<pre><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image31.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="223" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image31-thumb.png" width="538" border="0" /></a></pre>
<pre> 代码现在应该看起来是这样的</pre>
<blockquote>
<pre>package org.me.androidapplication1;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

/**
 *
 * @author amit
 */
public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

       TextView tv = new TextView(this);
       tv.setText(&quot;Hello, Android&quot;);
       setContentView(tv);
    }

}</pre>
</blockquote>
<pre>再次运行, 俺们的Hello World 就出来了.</pre>
<pre><a href="http://www.k4ng.com/wp-content/uploads/2008/04/image35.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="462" alt="image" src="http://www.k4ng.com/wp-content/uploads/2008/04/image35-thumb.png" width="401" border="0" /></a> </pre>
<pre> 附:  Android SDK M5-rc15 发布后 Netbeans的Android开发插件Undroid无法运行的解决方案:</pre>
<pre><a title="http://abhrajit.blogspot.com/2008/03/undroid-and-android-sdk-m5-rc15.html" href="http://abhrajit.blogspot.com/2008/03/undroid-and-android-sdk-m5-rc15.html">http://abhrajit.blogspot.com/2008/03/undroid-and-android-sdk-m5-rc15.html</a></pre>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/79/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]互联网周刊:Google的全球计算机猜想</title>
		<link>http://kang.fm/archives/55</link>
		<comments>http://kang.fm/archives/55#comments</comments>
		<pubDate>Tue, 01 Apr 2008 05:01:19 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[IT相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=55</guid>
		<description><![CDATA[想象一下,未来的企业将不再需要自己桌面软件和数据中心,全球数据处理和存储服务都由Google将进行托管, 这个猜想如此另人兴奋,以致于让人怀疑其现实性与可行性. 尼克拉斯卡尔(Nicholas Carr)曾经是《哈佛商业评论 》的编辑,在他的新书 《大转变》(The Big Switch)中,他向人们描述了将要发生的数字生活的巨大转变. 为了更好地说明,卡尔首先引入了一个类似的变革:电力的发明.卡尔认为,真正的电力发明并不是爱迪生,他的想法是为每家工厂安装独立发电机,这个想法现在看来如此地不切实际,而具有功效的发明应该来自于爱迪生的财务员工萨穆埃尔因苏尔(Samuel Insull),他首先想到了创建一个中心电厂来为整个地区供电.因苏尔的想法使电真正转化为效用,并大幅降低了电的成本. 卡尔在接受福布斯专访时,谈到,100年前曾经在机械动力领域上演的这一幕,现在又将发生在今天的计算领域.在19世纪末期,如果你的企业需要运转一台机器,你没有其它选择,只能自己生成动力.因此,你需要在企业内建造一个大型的动力运营部门,最初利用的是水力和蒸汽动力,然后便是电力.当尼克拉特斯拉(Nicola Tesla)发明了电力传输方式之后,一切都发生了变化.你只要处于一个供电网络之中,就可以获得来自遥远地方的电力.因苏尔首先认识到了集中供电的经济优势,并创建了多家公司共享电力资源的模型,因为生产制造公司不需要再自己发电,所以大幅降低了电价. 早些时候,Google推出一款名为Google Apps的免费软件包,是 Google 推出的在线的应用服务.说得通俗一点,通过 Goolge Apps ,你可以向你的用户提供带有私人标志的电子邮件、即时通信(网上聊天),日历工具,网站设计工具,协同办公工具等.当然,这些服务都是由 Google 托管,而不需要你安装或维护任何软硬件,并且和 Google 的其他服务一样,它们都是免费的. Google刚刚进入企业市场的,大多数客户都乐意试用这款免费产品. 其实,Google Apps缺乏Microsoft Office中的许多功能.但Google这样解释:大多数人只用了Office中很少一部分功能.产品负责人戴夫格罗伍德所取得的成果感到很满意.他说,每个工作日有约2000家公司签约使用Google Apps.Google Apps是面向任务的小型软件工具, Google的涉足已经激起了在企业中普及&#8220;云计算&#8221;技术的兴趣.包括通用电气和宝洁在内的一些大公司已经公开表示将至少试用Google Apps.他预测,明年将有大量大公司使用Google Apps.这将可以为Google带来更多的与搜索相关的广告收入. Google Apps只不过是Google通过互联网向用户提供更大计算能力计划的一个步骤.对于大多数人而言,计算机是复杂而不可靠的.如果Google能够通过 Web提供计算服务,将是人们计算体验的真正改进.Google认为这一切将发生在遥远的数据中心中的服务器,用户可以通过许多有线和无线设备访问这些服务,这就是所谓的&#8220;云计算&#8221; (cloud computing),这和电力革命有着何等相似之处啊! Google的CEO施密特指出,随着互联网连接速度的提高和互联网软件的改进,&#8220;云计算&#8221;能够完成的任务会越来越多.他说,90%计算任务都能够通过&#8220;云计算&#8221;技术完成,其中包括几乎所有的企业计算任务和白领员工的任务.仍认为Google只是一家搜索引擎公司的看法已经过时.尽管 Google Docs、Google Spreadsheets、Blogger和YouTube等产品或服务还没有给Google创造太多营收,但它们绝非是Google的附属业务.卡尔认为,这些网络应用代表着根本性的变革,意味着从桌面到网络的巨大转变,这将重新定义计算和Google的业务模式. 微软这个后腿 如果Google获得成功,Google基本模式将改变软件世界的所有规则,那么目前微软提供的基于桌面PC的许多价值都将化为乌有. 计算机科学家出身的施密特职业生涯中大部分时间都在与微软抗争,眼看着微软战胜了其大多数竞争对手.在Sun担任技术总监时,施密特与麦克利尼一道反对微软及其领导人. 施密特相信,无论他如何努力地避免激怒微软,Google与微软的摩擦是不可避免的.当然了,微软也不会停滞不前,它已经在搜索和互联网广告领域投资数十亿美元,以赶超Google,但迄今为止并没有获得成功.它们还在其它一些领域相互争斗,例如Web地图、在线视频、手机软件. 最近的消息是,微软计划将软件业务纳入&#8220;云计算 &#8221;,看一下资本支出,该公司和Google一样在中心数据中心投入了数十亿美元.但是,微软所面临的一大难题是,该公司绝大多数营收来自于原有模式,如何推广新模式,但又不影响到旧模式生成的营收.微软心有旁骛地希望这一转型进程将非常缓慢,从而能够不伤及公司现有业务.微软拥有客户资源,而Google 没有旧业务拖后腿. Google和微软之间日益激烈的对立将是一场史诗般的企业战争,这将是一场有趣的竞赛.两家公司的成功和发展将决定了消费者和企业未来将如何工作、购物、通讯,勾勒出数字生活的真实图景. 在曾经担任Novell CEO的4年中,施密特认为,任何戏弄微软的竞争对手都是愚蠢的,这只会激发微软的愤怒. 微软将Google的乐观称作是一厢情愿. 微软企业部门总裁莱科斯表示,Google对微软的攻击被误导了,也是自大的.Google关注的是自己的利益,它是为了削弱微软,而不是满足客户的需求.微软在产品开发和客户研究上花费了数年时间并投入了数十亿美元,仔细研究了员工和企业使用软件的方式. 确实,微软的优势在于其在办公软件市场上巨大的领先优势.有人说,Google不能在桌面软件领域与微软直接对抗就开始另辟蹊径,引领桌面软件正在向 Web软件转型. [...]]]></description>
			<content:encoded><![CDATA[<h1></h1>
<p>想象一下,未来的企业将不再需要自己桌面软件和数据中心,全球数据处理和存储服务都由Google将进行托管, 这个猜想如此另人兴奋,以致于让人怀疑其现实性与可行性.</p>
<p>尼克拉斯卡尔(Nicholas Carr)曾经是《哈佛商业评论 》的编辑,在他的新书 《大转变》(The Big Switch)中,他向人们描述了将要发生的数字生活的巨大转变.</p>
<p>为了更好地说明,卡尔首先引入了一个类似的变革:电力的发明.卡尔认为,真正的电力发明并不是爱迪生,他的想法是为每家工厂安装独立发电机,这个想法现在看来如此地不切实际,而具有功效的发明应该来自于爱迪生的财务员工萨穆埃尔因苏尔(Samuel Insull),他首先想到了创建一个中心电厂来为整个地区供电.因苏尔的想法使电真正转化为效用,并大幅降低了电的成本.</p>
<p> 卡尔在接受福布斯专访时,谈到,100年前曾经在机械动力领域上演的这一幕,现在又将发生在今天的计算领域.在19世纪末期,如果你的企业需要运转一台机器,你没有其它选择,只能自己生成动力.因此,你需要在企业内建造一个大型的动力运营部门,最初利用的是水力和蒸汽动力,然后便是电力.当尼克拉特斯拉(Nicola Tesla)发明了电力传输方式之后,一切都发生了变化.你只要处于一个供电网络之中,就可以获得来自遥远地方的电力.因苏尔首先认识到了集中供电的经济优势,并创建了多家公司共享电力资源的模型,因为生产制造公司不需要再自己发电,所以大幅降低了电价.</p>
<p> 早些时候,Google推出一款名为Google Apps的免费软件包,是 Google 推出的在线的应用服务.说得通俗一点,通过 Goolge Apps ,你可以向你的用户提供带有私人标志的电子邮件、即时通信(网上聊天),日历工具,网站设计工具,协同办公工具等.当然,这些服务都是由 Google 托管,而不需要你安装或维护任何软硬件,并且和 Google 的其他服务一样,它们都是免费的. Google刚刚进入企业市场的,大多数客户都乐意试用这款免费产品. 其实,Google Apps缺乏Microsoft Office中的许多功能.但Google这样解释:大多数人只用了Office中很少一部分功能.产品负责人戴夫格罗伍德所取得的成果感到很满意.他说,每个工作日有约2000家公司签约使用Google Apps.Google Apps是面向任务的小型软件工具, Google的涉足已经激起了在企业中普及&#8220;云计算&#8221;技术的兴趣.包括通用电气和宝洁在内的一些大公司已经公开表示将至少试用Google Apps.他预测,明年将有大量大公司使用Google Apps.这将可以为Google带来更多的与搜索相关的广告收入.</p>
<p> Google Apps只不过是Google通过互联网向用户提供更大计算能力计划的一个步骤.对于大多数人而言,计算机是复杂而不可靠的.如果Google能够通过 Web提供计算服务,将是人们计算体验的真正改进.Google认为这一切将发生在遥远的数据中心中的服务器,用户可以通过许多有线和无线设备访问这些服务,这就是所谓的&#8220;云计算&#8221; (cloud computing),这和电力革命有着何等相似之处啊!</p>
<p> Google的CEO施密特指出,随着互联网连接速度的提高和互联网软件的改进,&#8220;云计算&#8221;能够完成的任务会越来越多.他说,90%计算任务都能够通过&#8220;云计算&#8221;技术完成,其中包括几乎所有的企业计算任务和白领员工的任务.仍认为Google只是一家搜索引擎公司的看法已经过时.尽管 Google Docs、Google Spreadsheets、Blogger和YouTube等产品或服务还没有给Google创造太多营收,但它们绝非是Google的附属业务.卡尔认为,这些网络应用代表着根本性的变革,意味着从桌面到网络的巨大转变,这将重新定义计算和Google的业务模式.</p>
<p> 微软这个后腿</p>
<p> 如果Google获得成功,Google基本模式将改变软件世界的所有规则,那么目前微软提供的基于桌面PC的许多价值都将化为乌有.</p>
<p> 计算机科学家出身的施密特职业生涯中大部分时间都在与微软抗争,眼看着微软战胜了其大多数竞争对手.在Sun担任技术总监时,施密特与麦克利尼一道反对微软及其领导人.</p>
<p> 施密特相信,无论他如何努力地避免激怒微软,Google与微软的摩擦是不可避免的.当然了,微软也不会停滞不前,它已经在搜索和互联网广告领域投资数十亿美元,以赶超Google,但迄今为止并没有获得成功.它们还在其它一些领域相互争斗,例如Web地图、在线视频、手机软件.</p>
<p> 最近的消息是,微软计划将软件业务纳入&#8220;云计算 &#8221;,看一下资本支出,该公司和Google一样在中心数据中心投入了数十亿美元.但是,微软所面临的一大难题是,该公司绝大多数营收来自于原有模式,如何推广新模式,但又不影响到旧模式生成的营收.微软心有旁骛地希望这一转型进程将非常缓慢,从而能够不伤及公司现有业务.微软拥有客户资源,而Google 没有旧业务拖后腿.</p>
<p> Google和微软之间日益激烈的对立将是一场史诗般的企业战争,这将是一场有趣的竞赛.两家公司的成功和发展将决定了消费者和企业未来将如何工作、购物、通讯,勾勒出数字生活的真实图景.</p>
<p> 在曾经担任Novell CEO的4年中,施密特认为,任何戏弄微软的竞争对手都是愚蠢的,这只会激发微软的愤怒.</p>
<p> 微软将Google的乐观称作是一厢情愿. 微软企业部门总裁莱科斯表示,Google对微软的攻击被误导了,也是自大的.Google关注的是自己的利益,它是为了削弱微软,而不是满足客户的需求.微软在产品开发和客户研究上花费了数年时间并投入了数十亿美元,仔细研究了员工和企业使用软件的方式. 确实,微软的优势在于其在办公软件市场上巨大的领先优势.有人说,Google不能在桌面软件领域与微软直接对抗就开始另辟蹊径,引领桌面软件正在向 Web软件转型.</p>
<p> 而另外一方面,利用Web软件收发电子邮件、处理文档和电子表格、进行协作很方便吗?高速宽带连接会象Google断言的那样普及和可靠吗?企业、大学、消费者会让Google保存他们的资料吗?另外,如何解决&#8220;飞机问题&#8221;,以及在不能上网时,用户如何工作?</p>
<p> 这些问题是否都能从Google那里找到答案?</p>
<p> 人工智能搜索</p>
<p> 施密特承认&#8220;云计算&#8221;不会在一夜之间普及.象年长的消费者一样,大公司通常会慢慢地改变自己的习惯.他说,这 是为了解决其它问题.</p>
<p> 未来五年,Google要解决的问题就是不断地完善搜索,很多人仍认为Google是一家搜索公司.一年之前,Google高层也表示该公司只挖掘了 5%的搜索潜力.Google联合创始人拉里?佩奇(Larry Page)和塞吉?布林(Sergey Brin)在接受《大转变》作者卡尔采访时曾表示,Google认为搜索是人工智能的最基本形式.这就意味着,为了提供最佳的搜索结果,Google搜索引擎需要了解用户的意图甚至用户的思维方式.</p>
<p> 在这方面,国内的搜索老大百度也曾发表过关于智能搜索的看法,在今年,李彦红在上海会见了英国首相布朗,布朗作为政治舞台上的大腕对于新技术,新商业模式的如数家珍让李彦红大吃一惊,布朗最后告诉李说,未来的搜索引擎将会越来越智能化,而李彦红说,人工智能只是一个方面,更多的还要靠百度知道这类产品来匹配检索.</p>
<p> 而《大转变》一书的作者卡尔所预测的Google的人工智能是将把搜索和人脑整合在一起.这听起来有些像科幻小说,但这正是Google的终极目标. 如果这一预测成真,人们将不再需要坐在计算机前,也不再需要键盘,搜索将会自动完成.按照佩奇的想法,只要你想到一个问题,Google就会通过手机告诉你答案.</p>
<p> 这就是未来将要发生的大转变吗?但无庸质疑的一点是,Google越接近人类大脑的思考,就会赚到越多的钱.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/55/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>官方出版的苹果机安装Windows指南+工具包 &#8212; Apple Boot Camp</title>
		<link>http://kang.fm/archives/37</link>
		<comments>http://kang.fm/archives/37#comments</comments>
		<pubDate>Thu, 27 Mar 2008 23:56:43 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[IT相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=37</guid>
		<description><![CDATA[根据Apple官网上介绍, 用这套方法可以安装最新32bit的Windows XP和Vista,  并且能够完全发挥苹果的性能. 安装时候, Boot Camp Assistant会自动创建一个新分区给Windows使用,Mac OS上的一切都会保留在硬盘的其它地方. 装完Windows后, 用Leopard DVD就可以把机器原来的驱动都装上, 省得上网找还麻烦 0.0.   开机时候可以自选是要进Mac OS还是Windows.(..当然要有要不要他有啥用..)  看起来还不错..自带PDF guide可以参照. 网址: http://www.apple.com/macosx/features/bootcamp.html 分享到： 更多]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.apple.com/macosx/features/images/bootcamp_hero20071016.png" style="border-width: 0px" border="0" /></p>
<p>根据Apple官网上介绍, 用这套方法可以安装最新32bit的Windows XP和Vista,  并且能够完全发挥苹果的性能. 安装时候, Boot Camp Assistant会自动创建一个新分区给Windows使用,Mac OS上的一切都会保留在硬盘的其它地方. 装完Windows后, 用Leopard DVD就可以把机器原来的驱动都装上, 省得上网找还麻烦 0.0.   开机时候可以自选是要进Mac OS还是Windows.(..当然要有要不要他有啥用..)  看起来还不错..自带PDF guide可以参照.</p>
<p>网址:</p>
<p><a href="http://www.apple.com/macosx/features/bootcamp.html">http://www.apple.com/macosx/features/bootcamp.html</a></p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/37/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>百度hi公测开始&#8230;</title>
		<link>http://kang.fm/archives/28</link>
		<comments>http://kang.fm/archives/28#comments</comments>
		<pubDate>Thu, 27 Mar 2008 03:45:22 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[IT相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=28</guid>
		<description><![CDATA[刚拿了个帐号&#8230;我靠百度hi长得巨像tm2008 preview. 给个图: 分享到： 更多]]></description>
			<content:encoded><![CDATA[<p>刚拿了个帐号&#8230;我靠百度hi长得巨像tm2008 preview.  给个图:</p>
<p><a href="http://www.k4ng.com/wp-content/uploads/2008/03/baiduhi.JPG" title="百度hi"><img src="http://www.k4ng.com/wp-content/uploads/2008/03/baiduhi.JPG" alt="百度hi" height="430" width="218" /></a><a href="http://www.k4ng.com/wp-content/uploads/2008/03/tm2008.JPG" title="TM 2008"><img src="http://www.k4ng.com/wp-content/uploads/2008/03/tm2008.JPG" alt="TM 2008" height="523" width="206" /></a></p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/28/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPhone?.. Android!!</title>
		<link>http://kang.fm/archives/27</link>
		<comments>http://kang.fm/archives/27#comments</comments>
		<pubDate>Thu, 27 Mar 2008 02:50:41 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[IT相关]]></category>

		<guid isPermaLink="false">http://www.k4ng.com/?p=27</guid>
		<description><![CDATA[ 一直传言google要出手机了, 现在看来手机的事一直还是未知, 不过这个新的操作系统已经是板上定钉了&#8230;05年时google收购了Android Inc. 三年时间终于有成果了&#8230; 这个貌似要成为手机界的windows的系统貌似真的不错.. 拭目以待吧. 具说第一个支持Android的手机会是HTC的HTC Dream&#8230;.不知是真是假&#8230;很想弄个试试的说&#8230;期待. 分享到： 更多]]></description>
			<content:encoded><![CDATA[<p width="425" height="355">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="425" height="355"><param name="height" value="355" /><param name="width" value="425" /><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/1FJHYqE0RDg&amp;hl=en" /><embed type="application/x-shockwave-flash" height="355" width="425" wmode="transparent" src="http://www.youtube.com/v/1FJHYqE0RDg&amp;hl=en"></embed></object></p>
<p> 一直传言google要出手机了, 现在看来手机的事一直还是未知, 不过这个新的操作系统已经是板上定钉了&#8230;05年时google收购了Android Inc. 三年时间终于有成果了&#8230; 这个貌似要成为手机界的windows的系统貌似真的不错.. 拭目以待吧. 具说第一个支持Android的手机会是HTC的HTC Dream&#8230;.不知是真是假&#8230;很想弄个试试的说&#8230;期待.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/27/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs &amp; VI</title>
		<link>http://kang.fm/archives/13</link>
		<comments>http://kang.fm/archives/13#comments</comments>
		<pubDate>Sun, 03 Feb 2008 05:36:35 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nonhumsub.org/?p=13</guid>
		<description><![CDATA[&#160;      Vi and Emacs NOT “Vi vs. Emacs” &#8212; Despite twenty or thirty years of abuse thrown at each other by adherents of the Church of Vi vs the Church of Emacs, I feel the two editors are complementary, rather than antagonistic. They have a very different “look and feel”, but that&#8217;s not a [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 10pt"> </span></p>
<p align="justify">&nbsp;</p>
<p><center> <span style="font-size: 10pt"><img src="http://www.io.com/%7Edierdorf/vi-emacs2.jpg" align="left" height="262" width="473" /> </span></center><br />
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">     Vi <em>and</em> Emacs</span></h1>
<p><span style="font-size: 10pt">NOT “Vi vs. Emacs” &#8212; Despite twenty or thirty years of abuse thrown at each other by adherents of the Church of Vi vs the Church of Emacs, I feel the two editors are complementary, rather than antagonistic. They have a very different “look and feel”, but that&#8217;s not a real reason for choosing one over the other.  They were designed for different jobs, they are better at different things, and I use both of them, depending on the job.  </span></p>
<p><span style="font-size: 10pt">Specifically, I use <strong>GNU Emacs</strong> and <strong>Vim</strong>, and every time I say “Emacs” or “Vi”, assume these programs unless proven otherwise.   </span></p>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">Vi and Emacs are alike:</span></h1>
<ul><span style="font-size: 10pt"></p>
<li>  Full-function editors
<ul>
<li>  Indenting, reformatting.</li>
<li>  Syntax highlighting.</li>
<li>  Unlimited undo and redo.</li>
<li>  Multiple cut and paste clipboards.</li>
<li>  Spell checking.</li>
<li>  Multiple language support (including Unicode, R-to-L for Hebrew, Arabic, etc.)</li>
<li>  Extendable
<ul>
<li>  Macros and functions.</li>
<li>  Fully customizable keys vs. actions.</li>
</ul>
</li>
<li>  Handle text strings, full lines, rectangles.</li>
<li>  Adapt to type of file (.txt, .c, .html, etc.) being edited.</li>
<li>  No line length or file size limits, within reason.</li>
<li>  Automatically handle UNIX, MAC, DOS line endings (LF, CR, CRLF respectively).</li>
<li>  Binary file editing.</li>
<li>  Well documented, both internally and via available books and ebooks.</li>
</ul>
</li>
<li>  TTY and GUI versions.
<ul>
<li>  The command <strong><code>emacs</code></strong> will start in either TTY or GUI mode, depending on where it is invoked.  Use <strong><code>emacs -nw</code></strong> to force the program to use an Xterm window in text mode instead of starting its own.</li>
<li>  The command <strong><code>vi[m]</code></strong> always starts in TTY mode, even in an Xterm session; use <strong><code>gvim</code></strong> or <strong><code>vi[m] -g</code></strong> to start the graphical version.</li>
</ul>
</li>
<li>  Implemented on many platforms:
<ul>
<li>  Unix/Linux</li>
<li>  Win32</li>
<li>  Mac</li>
<li>  Etc.</li>
</ul>
</li>
<li>  Widespread Availability
<ul>
<li>  Both will be on any Unix/Linux machine</li>
<li>  Freely available for download for Windows, Mac, etc.</li>
</ul>
</li>
<li>  Several versions available:
<ul>
<li>  The original <strong>GNU Emacs</strong> from RMS, and <strong>Xemacs</strong>, forked from an earlier version of GNU Emacs source, are the most common.  Other editors like Epsilon and JOVE are Emacs derivatives.</li>
<li>  The original UNIX <strong>Vi</strong> (which almost nobody uses), <strong>Nvi</strong> (New Vi), <strong>Vim</strong> (Vi Improved), <strong>Vile</strong> (Vi like Emacs), <strong>Elvis</strong>.</li>
<li>  For Linux distributions at least, “emacs” gives you the GNU version, and “vi” gives you vim.</li>
</ul>
</li>
<p></span></ul>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">Vi and Emacs are different:</span></h1>
<ul><span style="font-size: 10pt"></p>
<li>  Most simply, Vi was designed to write PROGRAMS, with all other types of file possible.  Emacs was designed to write TEXT, with all other types of file possible.</li>
<li>  Vi is much smaller and loads much faster; it will fit on a diskette while Emacs quite definitely will not.</li>
<li>  The Biggie: Emacs is <strong>modeless</strong>, Vi has <strong>modes</strong>.
<ul>
<li>  This relates to how an editor performs its two main functions: entering text and executing commands relating to the text.</li>
<li>  Most modern editors and word processors are <strong>modeless</strong>, so that a user may enter text (e.g., typing “A”) or a command (^S to save the file) at any time.</li>
<li>  Vi has three <strong>modes</strong>:
<ul>
<li>  Text insert mode</li>
<li>  Keystroke command mode (vi mode)</li>
<li>  Command line mode (ex mode)</li>
</ul>
</li>
</ul>
</li>
<li>  Plus and Minus for <strong>modeless</strong> (Emacs):
<ul>
<li>  (+) Familiar.</li>
<li>  (+) Easily adapts to standard GUI pull-down menu style.</li>
<li>  (-) Commands have complicated syntax and hard-to-type keystrokes, since a limited number of keys are available for commands.</li>
<li>  (-) Some needed keys might not be available on all keyboards.</li>
</ul>
</li>
<li>  Plus and Minus for <strong>modes</strong> (Vi):
<ul>
<li>  (-) Confusion about which mode program is currently in.</li>
<li>  (-) Nuisance of switching modes frequently.</li>
<li>  (+) Many more keystrokes (~90) available for commands.</li>
<li>  (+) Touch typists tend to become very proficient because the fingers can stay in their normal positions almost all the time.</li>
</ul>
</li>
<li>  The <code><strong>bash</strong></code> shell can be configured for either style through the commands <strong><code>set -o emacs</code></strong> (the default) or <strong><code>set -o vi</code></strong></li>
<p></span></ul>
<p><span style="font-size: 10pt">   </span></p>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">Vi and Emacs Keystroke Usage</span></h1>
<p><span style="font-size: 10pt">Here are a few typical commands, showing the differences between “mode” style and “modeless” style:  </span></p>
<pre><span style="font-size: 10pt"><strong>                        VI        EMACS
		        --        -----
Right one column        k         ^f
Right one word          w         Esc,f
Left one word           b         Esc,b
Next sentence           )         Esc,e
Previous sentence       (         Esc,a
Save file               :w        ^x,^s
Delete paragraph        d}        Esc,x,kill-p[TAB],[RET]
Edit a new file         :e<em>name</em>   ^x,^f,<em>name</em>
RegEx search for "foo"  /<em>foo</em>      Esc,^s<em>foo</em>
Repeat search           n         ^s,[RET]
Exit                    :q or QQ  ^x,^c
Save and Exit           :x        ^x,^s,^x,k,[RET]
Repeat last search      n         ^s,[RET]
Paste from clipboard    p         ^y
Delete 7 lines          7dd       ^a,Esc,7,^k
Undo                    u         ^x,u  or ^/
Change a letter to "x"  rx        ^d,x
Go to line 6            :6[RET]   Esc,&lt;,Esc,5,^n
   ..or                 6G        Esc,x,goto-l[TAB][RET],6[RET]
</strong></span></pre>
<p><span style="font-size: 10pt">You can easily see Vi tends to have simpler commands (in command mode) because it has all the “ordinary” letters and numbers available for navigational use.  </span></p>
<p><span style="font-size: 10pt">Note that the Emacs documentation makes frequent mention of the “Meta” key, including key sequences like M-a, etc.  Since most keyboards do not have such a key, M-a, for example, can be done two different ways:  </span></p>
<ul><span style="font-size: 10pt"></p>
<li>  <strong>Esc,a</strong> That is, hit the Escape key, let go, then hit the “a” key.  This will work on all keyboards.</li>
<li>  <strong>Alt-a</strong> That is, while holding down the Alt key, press “a”, then release both.  This will usually work on a local PC keyboard (one actually attached to the machine where the editing is taking place), but almost certainly will not work on a remote terminal.</li>
<p></span></ul>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">Vi Mode Navigation</span></h1>
<ul><span style="font-size: 10pt"></p>
<li>  [ESC] always enters vi (keystroke command) mode.  If already there, it just beeps. (Hint: Bottom line is blank)</li>
<li>  From vi mode, colon (:) enters ex (command line) mode.  (Hint: colon (:) and cursor show on bottom line)</li>
<li>  From vi mode, various commands enter insert mode: i (insert), a(append), o (open line), cw (change word), etc. (Hint: Cursor doesn&#8217;t move, &#8211;INSERT&#8211; shows on bottom line)</li>
<p></span></ul>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">GUI vs TTY</span></h1>
<p><span style="font-size: 10pt">   </span></p>
<ul><span style="font-size: 10pt"></p>
<li>  The Vi TTY program loads very quickly, and is particularly useful for small changes to files.</li>
<li>  SSH and Telnet are text-only, so you need to use the TTY version of either editor if remotely connected.</li>
<li>  If you plan to spend a long time in the editor, the GUI versions are the better choice:
<ul>
<li>  They start in different windows, so the command line is still there.</li>
<li>  Font size, color scheme, window dimensions easily adjustable.</li>
<li>  Editing several files at once is easier.</li>
</ul>
</li>
<p></span></ul>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">Emacs LISP </span></h1>
<p><span style="font-size: 10pt">Emacs actually consists of a LISP interpreter executing a few pre-compiled primitive routines written in C plus about 200,000 lines of LISP code to implement all the functions of the editor.  This makes Emacs <strong>extremely</strong> flexible, since an experienced LISP programmer can change anything and everything, as well as create new actions the program&#8217;s author never thought of.  </span></p>
<p><span style="font-size: 10pt">Emacs can be made into an e-mail client, a web browser, a chess opponent, etc. by simply adding the proper code.  A single keystroke can be mapped to execute an entire LISP program, which uses the file being edited as its subject matter.  For example, here is a segment of my <em>.emacs</em> file, which defines a function called <em>lookat-file</em> and then “binds” it to the CTRL-F key.  </span></p>
<pre><strong>(defun lookat-file ()
"Edit file with name delimited by colon at beginning of current line."
  (interactive)
  (save-excursion
    (save-match-data
      (beginning-of-line)
      (search-forward-regexp "^\\(.*\\):")
      (find-file (match-string 1)))))

(define-key global-map "^F" 'lookat-file)</strong></pre>
<p><span style="font-size: 10pt">LISP functions are all defined the same way:</span></p>
<p>(funcname arg1 arg2 &#8230;)</p>
<p>The last line in the example calls the function <em>define-key</em> with three arguments: the <strong>variable</strong> <em>global-map</em>, the <strong>literal</strong> <em>^F</em> (the CTRL-F key), and the <strong>function name</strong> <em>lookat-file</em>, previously defined.</p>
<p><span style="font-size: 10pt">All built-in functions (like <em>define-key</em> and variables (like <em>global-map</em>) are fully documented in the extensive Emacs help system.  In the definition of <em>lookat-file</em> shown above, every single keyword is a built-in LISP function.  </span></p>
<p><span style="font-size: 10pt">Note that Emacs is fairly easy to port to a new architecture, because the “look and feel” is entirely defined by the LISP code, and that is unchanged whether Emacs is running on Solaris, Linux, Win98, or whatever.  The only code that has to be modified is the LISP interpreter itself plus the primitives that handle platform-dependent stuff like file i/o and the other interfaces to the OS.  </span></p>
<hr /><span style="font-size: 10pt"> </span><br />
<hr />
<h1><span style="font-size: 10pt">LISP Structure</span></h1>
<p><span style="font-size: 10pt">LISP is actually very simple, because <strong><em>everything</em></strong> has the same form, namely a list of items enclosed in parentheses, and <strong><em>all</em></strong> program operations are function calls.  Variables are untyped.  For example:  </span></p>
<pre><span style="font-size: 10pt"><strong>(+ 2 3)             ; add 2 and 3, return 5 as the value of the function.
(setq foo "John")   ; store the string "John" into the variable foo.
(setq foo (+ 2 3))  ; store 5 into foo
(setq foo (and huey dewey louie))
                    ; set foo true if all three are true, else false
(setq bar (* (+ 2 3) (- 6 2) (* 2 2) (sqrt 9)))
                    ; store 240 into bar.
(setq ans (if (&lt; foo bar) 1 2))
                    ; ans is 1 if foo is less than bar, 2 otherwise
(defun myfun (arglist) statements)
                    ; define function myfun

</strong></span></pre>
<p><span style="font-size: 10pt">From these examples, it is easy to see why it&#8217;s a standard joke that LISP (which really stands for LISt Processor) is an acronym for “Lots of Irritating Silly Parentheses”.  BTW, Vi enthusiasts tend to claim that Emacs is an acronym for “Eight Meg and Continuously Swapping”. Note that this joke has been around since the days when eight MB was a lot of memory.  On the other hand, Emacs bigots will refer to Vi as “six”.  (In which case Vim would be what, 994?)  </span></p>
<p><span style="font-size: 10pt">I have to correct one statement I made earlier.  Actually, Emacs also has a command-line. Typing Alt-x (or Esc,x) puts the cursor into what Emacs calls the “mini-buffer” at the bottom of the screen, where the user can execute thousands of built-in or user-defined LISP routines. For example, I could execute my <em>lookat-file</em> function by typing <code>Alt-x lookat-file[ENTER]</code>.  (Emacs has tab completion just like bash or zsh, so in practice I would have typed <code>Alt,x loo[TAB][ENTER]</code>, there being no other LISP function on my machine that starts with those three letters.)  </span></p>
<h1><span style="font-size: 10pt">Bottom Line</span></h1>
<p><span style="font-size: 10pt">I use both editors regularly.  Sometimes the choice is random, but for some tasks I will always use either Vi or Emacs.  </span></p>
<ul><span style="font-size: 10pt"></p>
<li>  Emacs GUI is much easier to use for large text jobs &#8211; writing the Great American Novel or whatever &#8211; and producing a “clean” file.</li>
<li>  Vi TTY is always used for editing .rc files, producing quick-and-dirty scripts, etc.</li>
<li>  I have extended Emacs to perform a couple of tasks that neither editor will do automatically in their virgin state.</li>
<li>  Gvim is better integrated with Xwindows &#8211; easier “look and feel”, better fonts, better syntax highlighting, a button bar, etc.  It looks very different from the TTY version, whereas the TTY and GUI versions of Emacs look very much the same, but some of that is because Emacs managed to implement a “pull-down” menu system in TTY mode!</li>
<li>  Emacs is better at editing many files at once.  It is simple, for example, to switch to a directory containing a programming project and say: <strong><code>emacs Makefile *.[ch]</code></strong> to edit the whole project at the same time. Both editors can issue the actual “make” from within the editor, capture and parse the error messages, and position the cursor on the correct line in the correct file.<br />
<hr />
<hr />
<h1>Useful Links</h1>
<p><a href="http://www.io.com/%7Edierdorf/.emacs.txt">My .emacs customization</a><br />
<a href="http://www.io.com/%7Edierdorf/.vimrc.txt">My .vimrc customization</a><br />
<a href="http://www.vim.org/">Vim Home Page</a><br />
<a href="http://www.gnu.org/software/emacs/">Gnu Emacs Home Page</a><br />
<a href="http://www.gnu.org/software/emacs/windows/ntemacs.html">Win32 Emacs precompiled binary</a><br />
<a href="ftp://ftp.vim.org/pub/vim/pc">Win32 Vim precompiled binaries</a> You need files gvim70.exe and vim70d32.zip.<br />
<a href="http://cygwin.com/">Cygwin Unix Utilities for Win32 (rm, ls, egrep, etc.)</a> Click on “Install Now”<br />
<a href="http://www.ora.com/">O&#8217;Reilly &amp; Associates</a>, publisher of full books and pocket references for both GNU Emacs and Vi (including Vim).<br />
<a href="http://www.quepublishing.com/bookstore/product.asp?isbn=0735710015&amp;rl=1">New Riders</a>, publisher of <em>Vi Improved</em>, by Steve Oualline.</p>
<hr /> <!-- hhmts start --> Last modified: Wed Apr 11 16:28:18 2007 <!-- hhmts end --></li>
<p></span></ul>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/13/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs常用命令速查</title>
		<link>http://kang.fm/archives/12</link>
		<comments>http://kang.fm/archives/12#comments</comments>
		<pubDate>Sun, 03 Feb 2008 03:51:09 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nonhumsub.org/?p=12</guid>
		<description><![CDATA[1）与文件操作有关的命令 C-x C-f 查找文件并且在新缓冲区中打开 C-x C-v 读入另一个文件替换掉用C-x C-f打开的文件 C-x i 把文件插入到光标的当前位置 C-x C-s 保存文件 C-x C-w 把缓冲区内容写入一个文件 C-x C-c 退出Emacs 2）与光标移动操作有关的命令 C-f 光标前移一个字符（右） C-b 光标后移一个字符（左） C-p 光标前移一行（上） C-n 光标后移一行（下） M-f 前移一个单词 M-b 后移一个单词 C-a 移动到行首 C-e 移动到行尾 M-e 前移一个句子 M-a 后移一个句子 M-} 前移一个段落 M-{ 后移一个段落 C-v 屏幕上卷一屏 M-v 屏幕下卷一屏 C-x ] 前移一页 C-x [ 后移一页 [...]]]></description>
			<content:encoded><![CDATA[<p>1）与文件操作有关的命令<br />
C-x C-f    查找文件并且在新缓冲区中打开<br />
C-x C-v    读入另一个文件替换掉用C-x C-f打开的文件<br />
C-x i    把文件插入到光标的当前位置<br />
C-x C-s    保存文件<br />
C-x C-w    把缓冲区内容写入一个文件<br />
C-x C-c    退出Emacs  2）与光标移动操作有关的命令<br />
C-f     光标前移一个字符（右）<br />
C-b     光标后移一个字符（左）<br />
C-p     光标前移一行（上）<br />
C-n     光标后移一行（下）<br />
M-f     前移一个单词<br />
M-b     后移一个单词<br />
C-a     移动到行首<br />
C-e     移动到行尾<br />
M-e     前移一个句子<br />
M-a     后移一个句子<br />
M-}     前移一个段落<br />
M-{     后移一个段落<br />
C-v     屏幕上卷一屏<br />
M-v     屏幕下卷一屏<br />
C-x ]    前移一页<br />
C-x [    后移一页<br />
M-&lt;     前移到文件头<br />
M-&gt;;     后移到文件尾<br />
C-l     重新绘制屏幕，当前行放在画面中心<br />
M-n 或者 C-u n  重复执行n次后续命令<br />
按下M-x后在辅助输入区中输入”goto-line”跳到指定的行，输入”goto-char”跳到指定的字符</p>
<p>3）与文件删除操作有关的命令<br />
C-d     删除光标位置上的字符<br />
DEL     删除光标前面的字符<br />
M-d     删除光标后面的单词<br />
M-DEL    删除光标前面的单词<br />
C-k     从光标位置删除到行尾<br />
M-k     删除光标后面的句子<br />
C-x DEL    删除光标前面的句子<br />
C-y     恢复被删除的文本或者粘贴最近删除或复制的文本<br />
C-w     删除文件块<br />
按下M-x后在辅助输入区中输入”kill-paragraph”删除光标后面的段落，按下”backward-kill-paragraph”删除光标前面的段落</p>
<p>4）与文本块操作有关的命令<br />
C-@     标记文本块的开始（或结束）位置<br />
C-x C-x    互换插入点和文本标记的位置<br />
C-w 或 SHIFT-DEL 删除文本块<br />
M-w     复制文本块<br />
M-h     标记段落<br />
C-x C-p    标记页面<br />
C-x h    标记整个缓冲区</p>
<p>5）与位置交换操作有关的命令<br />
C-t     交换两个字符的位置<br />
M-t     交换两个单词的位置<br />
C-x C-t    交换两个文本行的位置<br />
按下M-x后在辅助输入区中输入”transpose-sentences”交换两个句子的位置，按下”transpose-paragraph”交换两个段落的位置</p>
<p>6）与改变字母大小写操作有关的命令<br />
M-c     单词首字母改为大写<br />
M-u     单词的字母全部改为大写<br />
M-l     单词的字母全部改为小写</p>
<p>7）与查找操作相关的命令<br />
C-s     向前递增查找<br />
C-r     向后递增查找<br />
C-s C-w    开始递增查找，把光标位置的单词做查找字符串<br />
C-s C-y    开始递增查找，把光标位置到行尾之间的文本做查找字符串<br />
C-s return searchstring return  向前开始非递增查找操作<br />
C-r return searchstring return  向后开始非递增查找操作<br />
C-s return C-w  向前开始单词查找（不受换行符、空格、标点符号影响）<br />
C-r return C-w  向后开始单词查找（不受换行符、空格、标点符号影响）</p>
<p>与使用编辑缓冲区和窗口有关的命令<br />
C-x b    如果输入一个新的文件名则新建一个文件并且编辑,否则打开该文件<br />
C-x s    保存全部缓冲区<br />
C-x b    删除缓冲区<br />
M-x rename-buffer 重命名当前缓冲区<br />
C-x C-q    把当前编辑缓冲区设置为只读属性<br />
C-x 0    删除当前所在的窗口<br />
C-x 1    当前缓冲区满屏显示<br />
C-x 2    创建上下排列的窗口<br />
C-x 3    创建左右排列的窗口<br />
C-x o    在窗口之间移动</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/12/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vi 简单用法</title>
		<link>http://kang.fm/archives/11</link>
		<comments>http://kang.fm/archives/11#comments</comments>
		<pubDate>Sun, 03 Feb 2008 03:13:28 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nonhumsub.org/?p=11</guid>
		<description><![CDATA[一、基本命令介绍　　&#8212;- 1．光标命令 k、j、h、l&#8211;上、下、左、右光标移动命令。虽然您可以在linux中使用键盘右边的4个光标键，但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。 nG&#8211;跳转命令。n为行数，该命令立即使光标跳到指定行。 Ctrl+G&#8211;光标所在位置的行数和列数报告。 w、b&#8211;使光标向前或向后跳过一个单词。 &#8212;- 2．编辑命令 i、a、r&#8211;在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。 cw、dw&#8211;改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。 x、d$、dd&#8211;删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。 &#8212;- 3．查找命令 &#8212;- /string、?string&#8211;从光标所在处向后或向前查找相应的字符串的命令。 &#8212;- 4．拷贝复制命令 &#8212;- yy、p&#8211;拷贝一行到剪贴板或取出剪贴板中内容的命令。 二、常见问题及应用技巧 &#8212;- 1．在一个新文件中读/etc/passwd中的内容，取出用户名部分。 &#8212;- vi file &#8212;- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd &#8212;- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。 &#8212;- 您也可以在指定的行号后读入文件内容，例如使用命令”:3r /etc/passwd”从新文件的第3行开始读入 /etc/passwd的所有内容。 &#8212;- 我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。 &#8212;- #cat squid.conf.default &#124; grep -v &#8216;^$&#8217; &#124; grep -v &#8216;^#&#8217; &#8212;- 2．在打开一个文件编辑后才知道登录的用户对该文件没有写的权限，不能存盘，需要将所做修改存入临时文件。 &#8212;- vi file [...]]]></description>
			<content:encoded><![CDATA[<p>一、基本命令介绍　　&#8212;- 1．光标命令</p>
<p>k、j、h、l&#8211;上、下、左、右光标移动命令。虽然您可以在linux中使用键盘右边的4个光标键，但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。</p>
<p>nG&#8211;跳转命令。n为行数，该命令立即使光标跳到指定行。</p>
<p>Ctrl+G&#8211;光标所在位置的行数和列数报告。</p>
<p>w、b&#8211;使光标向前或向后跳过一个单词。</p>
<p>&#8212;- 2．编辑命令</p>
<p>i、a、r&#8211;在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。</p>
<p>cw、dw&#8211;改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。</p>
<p>x、d$、dd&#8211;删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。</p>
<p>&#8212;- 3．查找命令</p>
<p>&#8212;- /string、?string&#8211;从光标所在处向后或向前查找相应的字符串的命令。</p>
<p>&#8212;- 4．拷贝复制命令</p>
<p>&#8212;- yy、p&#8211;拷贝一行到剪贴板或取出剪贴板中内容的命令。</p>
<p>二、常见问题及应用技巧</p>
<p>&#8212;- 1．在一个新文件中读/etc/passwd中的内容，取出用户名部分。</p>
<p>&#8212;- vi file</p>
<p>&#8212;- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd</p>
<p>&#8212;- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。</p>
<p>&#8212;- 您也可以在指定的行号后读入文件内容，例如使用命令”:3r /etc/passwd”从新文件的第3行开始读入 /etc/passwd的所有内容。</p>
<p>&#8212;- 我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。</p>
<p>&#8212;- #cat squid.conf.default | grep -v &#8216;^$&#8217; | grep -v &#8216;^#&#8217;</p>
<p>&#8212;- 2．在打开一个文件编辑后才知道登录的用户对该文件没有写的权限，不能存盘，需要将所做修改存入临时文件。</p>
<p>&#8212;- vi file</p>
<p>&#8212;- :w /tmp/1 保存所做的所有修改，也可以将其中的某一部分修改保存到临时文件，例如仅仅把第20～59行之间的内容存盘成文件/tmp/1，我们可以键入如下命令。</p>
<p>&#8212;- vi file</p>
<p>&#8212;- :20,59w /tmp/1</p>
<p>&#8212;- 3．用VI编辑一个文件，但需要删除大段的内容。</p>
<p>&#8212;- 首先利用编辑命令”vi file”打开文件，然后将光标移到需要删除的行处按Ctrl+G显示行号，再到结尾处再按Ctrl+G，显示文件结尾的行号。</p>
<p>&#8212;- :23,1045d 假定2次得到的行号为23和1045，则把这期间的内容全删除，也可以在要删除的开始行和结束行中用ma、mb命令标记，然后利用”:&#8217;a,&#8217;bd”命令删除。</p>
<p>&#8212;- 4．在整个文件的各行或某几行的行首或行尾加一些字符串。</p>
<p>&#8212;- vi file</p>
<p>&#8212;- :3,$s/^/some string / 在文件的第一行至最后一行的行首插入”some string”。</p>
<p>&#8212;- :%s/$/some string/g 在整个文件每一行的行尾添加”some string”。</p>
<p>&#8212;- :%s/string1/string2/g 在整个文件中替换”string1&#8243;成”string2&#8243;。</p>
<p>&#8212;- :3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的”string1&#8243;成”string2&#8243;。</p>
<p>&#8212;- 注意: 其中s为substitute，%表示所有行，g表示global。</p>
<p>&#8212;- 5．同时编辑2个文件，拷贝一个文件中的文本并粘贴到另一个文件中。</p>
<p>&#8212;- vi file1 file2</p>
<p>&#8212;- yy 在文件1的光标处拷贝所在行</p>
<p>&#8212;- :n 切换到文件2 (n=next)</p>
<p>&#8212;- p 在文件2的光标所在处粘贴所拷贝的行</p>
<p>&#8212;- :n 切换回文件1</p>
<p>&#8212;- 6．替换文件中的路径。</p>
<p>&#8212;- 使用命令”:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin。也可以使用命令”:%s//usr/bin//bin/g”实现，其中”"是转义字符，表明其后的”/”字符是具有实际意义的字符，不是分隔符。本文来自：http://www.linuxpk.com/126.html</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V for Vendetta 经典台词..</title>
		<link>http://kang.fm/archives/10</link>
		<comments>http://kang.fm/archives/10#comments</comments>
		<pubDate>Sat, 02 Feb 2008 11:21:38 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://www.nonhumsub.org/?p=10</guid>
		<description><![CDATA[Voila. In view, a humble vaudevillian veteran cast vicariously as both victim and villain by the vicissitudes of fate.This visage, no mere veneer of vanity is a vestige of the vox populi, now vacant, vanished. However, this valorous visitation of a bygone vexation stands vivified and has vowed to vaquish these venal and virulent vermin [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000">V</span>oila. In <span style="color: #ff0000">v</span>iew, a humble <span style="color: #ff0000">v</span>aude<span style="color: #ff0000">v</span>illian <span style="color: #ff0000">v</span>eteran cast <span style="color: #ff0000">v</span>icariously as both <span style="color: #ff0000">v</span>ictim and <span style="color: #ff0000">v</span>illain by the <span style="color: #ff0000">v</span>icissitudes of fate.This <span style="color: #ff0000">v</span>isage, no mere <span style="color: #ff0000">v</span>eneer of <span style="color: #ff0000">v</span>anity is a <span style="color: #ff0000">v</span>estige of the <span style="color: #ff0000">v</span>ox populi, now <span style="color: #ff0000">v</span>acant, <span style="color: #ff0000">v</span>anished. Howe<span style="color: #ff0000">v</span>er, this <span style="color: #ff0000">v</span>alorous <span style="color: #ff0000">v</span>isitation of a bygone <span style="color: #ff0000">v</span>exation stands <span style="color: #ff0000">v</span>i<span style="color: #ff0000">v</span>ified and has <span style="color: #ff0000">v</span>owed to <span style="color: #ff0000">v</span>aquish these <span style="color: #ff0000">v</span>enal and <span style="color: #ff0000">v</span>irulent <span style="color: #ff0000">v</span>ermin <span style="color: #ff0000">v</span>anguarding <span style="color: #ff0000">v</span>ice and <span style="color: #ff0000">v</span>ouchsafing the <span style="color: #ff0000">v</span>iolently <span style="color: #ff0000">v</span>icious and <span style="color: #ff0000">v</span>oracious <span style="color: #ff0000">v</span>iolation of <span style="color: #ff0000">v</span>olition. The only <span style="color: #ff0000">v</span>erdict is <span style="color: #ff0000">v</span>engeance, a <span style="color: #ff0000">VENDETTA</span> held as a <span style="color: #ff0000">v</span>oti<span style="color: #ff0000">v</span>e not in <span style="color: #ff0000">v</span>ain, for the <span style="color: #ff0000">v</span>alue and <span style="color: #ff0000">v</span>eractiy of such shall one day <span style="color: #ff0000">v</span>indicate the <span style="color: #ff0000">v</span>igilant and the <span style="color: #ff0000">v</span>irtuous.<span style="color: #ff0000">v</span>erily this <span style="color: #ff0000">v</span>ichyssoise of <span style="color: #ff0000">v</span>erbiage <span style="color: #ff0000">v</span>eers most <span style="color: #ff0000">v</span>erbose. So let me simply add that it&#8217;s my <span style="color: #ff0000">v</span>ery good honor to meet you and you may call me <span style="color: #ff0000">V</span>.</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/10/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>移除Windows WGA防盗版补丁 批处理文件</title>
		<link>http://kang.fm/archives/9</link>
		<comments>http://kang.fm/archives/9#comments</comments>
		<pubDate>Sat, 02 Feb 2008 10:39:20 +0000</pubDate>
		<dc:creator>Kang</dc:creator>
				<category><![CDATA[Windows相关]]></category>
		<category><![CDATA[WGA]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.nonhumsub.org/?p=9</guid>
		<description><![CDATA[更新Windows后会有防盗版补丁， 检查到你的Windows是盗版就不让你用了&#8230;. -.- 用下面的这个.cmd可以解决 在记事本里把下面红字文本插入， 另存为 &#60;你的文件名&#62;.cmd 文件 双击运行， 问题解决 @echo off TITLE WGA FIX&#8230; cd %windir%\system32 if exist wgalogon.dll goto rmwga if exist wgalogon.old goto delwga goto nowga :rmwga regsvr32.exe /u /s LegitCheckControl.dll ren wgalogon.dll *.old ren wgatray.exe *.old shutdown.exe -r -f -t 0 exit :delwga del wga*.old del LegitCheckControl.dll reg.exe delete “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WgaLogon” [...]]]></description>
			<content:encoded><![CDATA[<p>更新Windows后会有防盗版补丁， 检查到你的Windows是盗版就不让你用了&#8230;. -.-  用下面的这个.cmd可以解决</p>
<p>在记事本里把下面红字文本插入， 另存为 &lt;你的文件名&gt;.cmd 文件 双击运行， 问题解决</p>
<p><span style="color: #e00000"><span style="color: #800000">@echo off<br />
TITLE WGA FIX&#8230;<br />
cd %windir%\system32<br />
if exist wgalogon.dll goto rmwga<br />
if exist wgalogon.old goto delwga<br />
goto nowga</span></span></p>
<p><span style="color: #e00000"><span style="color: #800000">:rmwga<br />
regsvr32.exe /u /s LegitCheckControl.dll<br />
ren wgalogon.dll *.old<br />
ren wgatray.exe *.old<br />
shutdown.exe -r -f -t 0<br />
exit</span></span></p>
<p><span style="color: #e00000"><span style="color: #800000">:delwga<br />
del wga*.old<br />
del LegitCheckControl.dll<br />
reg.exe delete “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WgaLogon” /f<br />
goto finish</span></span></p>
<p><span style="color: #e00000"><span style="color: #800000">:finish<br />
cls<br />
echo.<br />
echo                        “Have completed of removing MS WGA”<br />
echo.<br />
pause<br />
exit<br />
:nowga<br />
cls<br />
echo.<br />
echo                        “MS WGA is not installed on the System”<br />
echo.<br />
pause<br />
exit</span></span></p>
<p><span style="color: #800000"></span><br />
Development team的同志写的，我抄过来<br />
Enjoy. lol</p>
<div style=float:left><!-- JiaThis Button BEGIN -->
<div id="ckepop">
	<span class="jiathis_txt">分享到：</span>
	<a class="jiathis_button_tools_1"></a>
	<a class="jiathis_button_tools_2"></a>
	<a class="jiathis_button_tools_3"></a>
	<a class="jiathis_button_tools_4"></a>
	<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --></div>]]></content:encoded>
			<wfw:commentRss>http://kang.fm/archives/9/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

