﻿<?xml version="1.0" encoding='utf-8'?>
   <feed xmlns="http://www.w3.org/2005/Atom" rel="self">
	
	 <title>A blog about life, tech, and programing - JIEblog System</title>
	 <link href="http://jieblog.appspot.com/"/>
	 <updated>2010-02-08T14:34:42+00:00</updated>
	 <author>
	   <name>lucidanui</name>
	 </author>
	 <id>http://jieblog.appspot.com/</id>

	
	 <entry>
	   <title>Persephone的插件包</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/persephone_addons"/>
	   <id>http://jieblog.appspot.com/post/persephone_addons"</id>
	   <updated>2010-02-08T14:34:42+00:00</updated>
	   <summary type='html'><![CDATA[ <p><strong>ACP</strong>(Addon Control Panel)
  <br />
  管理插件的插件
  <br />
  <a href="http://www.wowace.com/addons/acp/">http://www.wowace.com/addons/acp/</a> </p>
<p><strong>Atlas</strong><br />
  副本地图<br />
<a href="http://www.wowinterface.com/downloads/info3896-Atlas.html">http://www.wowinterface.com/downloads/info3896-Atlas.html</a> </p>
<p><strong>Combuctor
  </strong><br />
  背包整合
  <br />
  <strong>Bagnon_Forever</strong><br />
  离线银行
  <br />
  <strong>Bagnon_Tooltips<br />
  </strong>背包物品提示
  <br />
<a href="http://www.wowinterface.com/downloads/info8113-Combuctor.html">http://www.wowinterface.com/downloads/info8113-Combuctor.html</a> </p>
<p><strong>Chatter</strong> <br />
  聊天框体的各种设置
	<br />
<a href="http://www.wowace.com/addons/chatter/">http://www.wowace.com/addons/chatter/ </a></p>
<p><strong>Chippu
  </strong><br />
  为物品提示信息添加各种品质颜色的边框
  <br />
<a href="http://www.wowinterface.com/downloads/info7294-Chippu.html">http://www.wowinterface.com/downloads/info7294-Chippu.html </a></p>
<p><strong>Clique
  </strong><br />
  点击施法插件<br />
<a href="http://www.wowinterface.com/downloads/info8113-Combuctor.html">http://www.wowinterface.com/downloads/info5108-Clique.html</a></p>
<p><strong>Decursive
  </strong><br />
  一键驱散
  <br />
<a href="http://www.wowinterface.com/downloads/info4937-Decursive.html">http://www.wowinterface.com/downloads/info4937-Decursive.html </a></p>
<p><strong>Dominos</strong><br />
  动作条插件<br />
<a href="http://www.wowinterface.com/downloads/info5108-Clique.html">http://www.wowinterface.com/downloads/info9085-Dominos.html </a></p>
<p><strong>EasyChannel
  </strong><br />
  在文字输入框按下tab键可在聊天频道之间切换
  <br />
  <a href="http://www.wowinterface.com/downloads/info7294-Chippu.html">http://bbs.game.mop.com/viewthread.php?tid=1853542&extra=page%3D1

</a></p>
<p><strong>EquipCompare
  </strong><br />
  装备比较插件
  <br />
<a href="http://www.wowinterface.com/downloads/info4392-EquipCompare.html">http://www.wowinterface.com/downloads/info4392-EquipCompare.html </a></p>
<p><strong>Fizzle
  </strong><br />
  在人物面板显示装备耐久度的百分比
  <br />
  设置/fizzle or /fizz
  <br />
<a href="http://www.wowinterface.com/downloads/info4937-Decursive.html">http://www.wowinterface.com/downloads/info5018-Fizzle.html </a></p>
<p><strong>ForteXorcist
  </strong><br />
  法术计时、冷却计时，警报提示
  <br />
  设置/fx or /fw 
  <br />
<a href="http://www.wowinterface.com/downloads/info7532-ForteXorcist.html">http://www.wowinterface.com/downloads/info7532-ForteXorcist.html </a></p>
<p><strong>FriendsMenuXP
  </strong><br />
  右键菜单增强<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/friends-menu-xp.aspx">http://wow.curse.com/downloads/wow-addons/details/friends-menu-xp.aspx</a>
</p>
<p><strong>FuBar
  </strong><br />
  插件吸附面板<br />
<a href="http://www.wowace.com/addons/fubar/">http://www.wowace.com/addons/fubar/ </a></p>
<p><strong>FuBar_ClockFu
  </strong><br />
  FuBar上显示时钟
  <br />
<a href="http://www.wowinterface.com/downloads/info5018-Fizzle.html">http://www.wowace.com/addons/fubar_clockfu/ </a></p>
<p><strong>FuBar_DurabilityFu
  </strong><br />
  FuBar上显示装备耐久<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_durabilityfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_durabilityfu.aspx </a></p>
<p><strong>FuBar_EmoteFu2
  </strong><br />
  发送设置好的表情
  <br />
<a href="http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&amp;t=14314">http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&t=14314</a></p>
<p> <strong>FuBar_ExpFu </strong><br />
  FuBar上显示人物的经验<br />
<a href="http://www.wowace.com/addons/fubar_clockfu/">http://wow.curse.com/downloads/wow-addons/details/fubar_expfu.aspx</a></p>
<p><strong>FuBar_FactionsFu</strong><br />
  FuBar显示阵营的声望<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_factionsfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_factionsfu.aspx</a></p>
<p><strong>FuBar_LocationFu</strong><br />
  FuBar显示你当前的位置<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_locationfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_locationfu.aspx</a></p>
<p><strong>FuBar_MoneyFu</strong><br />
  FuBar上显示你的金币数量
  <br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_expfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_moneyfu.aspx </a></p>
<p><strong>FuBar_PerformanceFu</strong><br />
  显示系统当前延迟、内存占用等信息
  <br />
  <a href="http://www.wowace.com/addons/fubar_performancefu/">http://www.wowace.com/addons/fubar_performancefu/</a></p>
<p><strong>FuBar_RecountFu</strong><br />
  使在FuBar上可以打开Recount的设置<br />
<a href="http://www.wowace.com/addons/fu-bar_recount-fu/">http://www.wowace.com/addons/fu-bar_recount-fu/</a></p>
<p><strong>FuBar_WhisperFu</strong><br />
在FuBar上记录收到和发出的密语
  <br />
<a href="http://www.wowace.com/addons/fu-bar_whisper-fu/">http://www.wowace.com/addons/fu-bar_whisper-fu/</a></p>
<p><strong>GatherMate
  </strong><br />
  采集助手<br />
<a href="http://www.wowace.com/addons/fubar_performancefu/">http://www.wowace.com/addons/gathermate/</a></p>
<p><strong>GatherMate_Data
  </strong><br />
  wowhead.com上导入的GatherMate数据<br />
<a href="http://www.wowace.com/addons/fu-bar_recount-fu/">http://www.wowace.com/addons/gathermate_data/</a></p>
<p><strong>Gnosis
  </strong><br />
  施法条增强插件
  <br />
<a href="http://wow.curse.com/downloads/wow-addons/details/gnosis.aspx">http://wow.curse.com/downloads/wow-addons/details/gnosis.aspx</a></p>
<p> <strong>Grid </strong><br />
  团队框架<br />
<a href="http://www.wowace.com/addons/gathermate_data/">http://www.wowace.com/addons/grid/</a></p>
<p><strong>GridManaBars </strong><br />
  在Grid框体上可以显示人物的法力值
	<br />
<a href="http://www.wowace.com/addons/grid-mana-bars/">http://www.wowace.com/addons/grid-mana-bars/</a></p>
<p><strong>ItemRack
  </strong><br />
  一键换装
  <br />
<a href="http://www.wowinterface.com/downloads/info4148-ItemRack.html">http://www.wowinterface.com/downloads/info4148-ItemRack.html</a></p>
<p><strong>JPack</strong><br />
  背包整理<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/jpack.aspx">http://wow.curse.com/downloads/wow-addons/details/jpack.aspx</a></p>
<p><strong>Kennel</strong><br />
宠物管理<br />
<a href="http://www.wowinterface.com/downloads/info4442-Kennel.html">http://www.wowinterface.com/downloads/info4442-Kennel.html</a></p>
<p><strong>Mapster
  </strong><br />
  比cartographer更轻量级的地图插件
  <br />
<a href="http://www.wowace.com/addons/mapster/">http://www.wowace.com/addons/mapster/</a></p>
<p><strong>Mendeleev
  </strong><br />
  在信息提示中显示物品掉落的信息<br />
<a href="http://www.wowace.com/addons/mendeleev/">http://www.wowace.com/addons/mendeleev/</a></p>
<p><strong>oGlow
  </strong><br />
  将物品的图标边框显示成物品品质的颜色<br />
<a href="http://www.wowinterface.com/downloads/info7142-oGlow.html">http://www.wowinterface.com/downloads/info7142-oGlow.html</a></p>
<p><strong>Omen
  </strong><br />
  仇恨统计插件<br />
<a href="http://www.wowace.com/addons/omen-threat-meter/">http://www.wowace.com/addons/omen-threat-meter/</a></p>
<p> <strong>OmniCC </strong><br />
  在动作条上显示冷却时间的具体秒数<br />
<a href="http://www.wowinterface.com/downloads/info4836-OmniCC.html">http://www.wowinterface.com/downloads/info4836-OmniCC.html</a></p>
<p><strong>OmniCC_Pulse
  </strong><br />
  技能冷却以后再动作条上闪烁<br />
<a href="http://www.wowinterface.com/downloads/info12458-OmniCCPulse.html">http://www.wowinterface.com/downloads/info12458-OmniCCPulse.html</a></p>
<p> <strong>oRA3 </strong><br />
  团队助手
  <br />
<a href="http://www.wowace.com/search/?search=oRA3">http://www.wowace.com/search/?search=oRA3</a></p>
<p><strong>PitBull4
  </strong><br />
  单位头像框架
  <br />
<a href="http://www.wowace.com/addons/pitbull4/">http://www.wowace.com/addons/pitbull4/</a></p>
<p><strong>Postal</strong><br />
邮箱增强
  <br />
<a href="http://www.wowace.com/addons/postal/">http://www.wowace.com/addons/postal/</a></p>
<p><strong>PowerAuras</strong>(Power Auras Classic) <br />
  根据技能冷却BUFF等条件产生华丽的提示效果
  <br />
  设置： /powa
  <br />
<a href="http://wow.curse.com/downloads/wow-addons/details/powerauras-classic.aspx">http://wow.curse.com/downloads/wow-addons/details/powerauras-classic.aspx</a></p>
<p><strong>QuestAnnounce</strong><br />
  任务进度通告插件
  <br />
  设置： /qa
  <br />
<a href="http://www.wowinterface.com/downloads/info5343-QuestAnnouncer.html">http://www.wowinterface.com/downloads/info5343-QuestAnnouncer.html</a></p>
<p><strong>QuestHelper
  </strong><br />
  任务助手
  <br />
  设置： /qh
  <br />
<a href="http://www.wowinterface.com/downloads/info9896-QuestHelper.html">http://www.wowinterface.com/downloads/info9896-QuestHelper.html</a></p>
<p> <strong>RatingBuster </strong><br />
  装备具体属性计算并比较<br />
<a href="http://www.wowace.com/addons/rating-buster/">http://www.wowace.com/addons/rating-buster/</a></p>
<p><strong>Recount</strong><br />
  战斗数据统计插件<br />
<a href="http://www.wowace.com/addons/recount/">http://www.wowace.com/addons/recount/</a></p>
<p><strong>SexyMap</strong><br />
小地图美化插件
  <br />
<a href="http://www.wowace.com/addons/sexymap/">http://www.wowace.com/addons/sexymap/</a></p>
<p><strong>SharedMedia
  </strong><br />
  为其他插件提供更多的材质<br />
<a href="http://www.wowace.com/addons/sharedmedia/">http://www.wowace.com/addons/sharedmedia/</a></p>
<p><strong>SilverDragon
  </strong><br />
  稀有怪追踪插件
  <br />
<a href="http://www.wowinterface.com/downloads/info6606-SilverDragon.html">http://www.wowinterface.com/downloads/info6606-SilverDragon.html</a></p>
<p><strong>Talented
  </strong><br />
  天赋面板增强
  <br />
h<a href="ttp://www.wowinterface.com/downloads/info12593-Talented.html">ttp://www.wowinterface.com/downloads/info12593-Talented.html</a></p>
<p><strong>tekticles
  </strong><br />
  修改游戏中默认的字体以及字体的比例<br />
<a href="http://www.wowinterface.com/downloads/info8786-tekticles.html">http://www.wowinterface.com/downloads/info8786-tekticles.html</a></p>
<p><strong>Tipachu</strong><br />
在信息提示内部显示物品的图标<br />
<a href="http://www.wowinterface.com/downloads/info8808-Tipachu.html">http://www.wowinterface.com/downloads/info8808-Tipachu.html</a></p>
<p><strong>WhisperPop</strong><br />
  密语提醒插件<br />
<a href="http://wow.178.com/200901/25404270985.html">http://wow.178.com/200901/25404270985.html </a></p>
<p><strong>XLoot
  </strong><br />
  移动修改默认的拾取窗口<br />
<a href="http://www.wowinterface.com/downloads/info6347-XLoot.html">http://www.wowinterface.com/downloads/info6347-XLoot.html</a></p>
<p><strong>Ztip
  </strong><br />
  强化鼠标悬浮的信息提示<br />
<a href="http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&amp;t=19837">http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&t=19837</a></p>
<p> <strong>备用插件 </strong></p>
<p><strong>AshChat</strong><br />
聊天框体增强
  3.3版本会报错，屏蔽以后可以正常使用

</p>
<p><strong>BaudBag
  </strong><br />
  背包整合插件<br />
<a href="http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&amp;t=12454">http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&t=12454</a></p>
<p> <strong>Cartographer</strong><br />
  地图增强<br />
<a href="http://www.wowace.com/addons/cartographer/">http://www.wowace.com/addons/cartographer/</a></p>
<p><strong>EasyTrinket
  </strong><br />
  饰品管理插件</p>
<p> <strong>Grid2</strong><br />
  团队框架<br />
  <a href="http://www.wowace.com/addons/grid2/">http://www.wowace.com/addons/grid2/</a><br />
<br />
<strong>Recount2 </strong><br />
  战斗数据统计<br />
<a href="http://www.wowace.com/addons/recount2/">http://www.wowace.com/addons/recount2/</a></p>
<p><strong>SatrinaBuffFrame
  </strong><br />
  光环增强插件
  <br />
  <a href="http://wow.curse.com/downloads/wow-addons/details/satrina-buff-frame.aspx">http://wow.curse.com/downloads/wow-addons/details/satrina-buff-frame.aspx</a></p>
<p><strong>_Cursor
  </strong><br />
  在游戏鼠标上显示华丽的图案和效果
  <br />
  设置：在插件管理里
  <br />
<a href="http://www.wowinterface.com/downloads/info10531-_Cursor.html">http://www.wowinterface.com/downloads/info10531-_Cursor.html </a>]]></summary>
	   <content type='html'><![CDATA[ <p><strong>ACP</strong>(Addon Control Panel)
  <br />
  管理插件的插件
  <br />
  <a href="http://www.wowace.com/addons/acp/">http://www.wowace.com/addons/acp/</a> </p>
<p><strong>Atlas</strong><br />
  副本地图<br />
<a href="http://www.wowinterface.com/downloads/info3896-Atlas.html">http://www.wowinterface.com/downloads/info3896-Atlas.html</a> </p>
<p><strong>Combuctor
  </strong><br />
  背包整合
  <br />
  <strong>Bagnon_Forever</strong><br />
  离线银行
  <br />
  <strong>Bagnon_Tooltips<br />
  </strong>背包物品提示
  <br />
<a href="http://www.wowinterface.com/downloads/info8113-Combuctor.html">http://www.wowinterface.com/downloads/info8113-Combuctor.html</a> </p>
<p><strong>Chatter</strong> <br />
  聊天框体的各种设置
	<br />
<a href="http://www.wowace.com/addons/chatter/">http://www.wowace.com/addons/chatter/ </a></p>
<p><strong>Chippu
  </strong><br />
  为物品提示信息添加各种品质颜色的边框
  <br />
<a href="http://www.wowinterface.com/downloads/info7294-Chippu.html">http://www.wowinterface.com/downloads/info7294-Chippu.html </a></p>
<p><strong>Clique
  </strong><br />
  点击施法插件<br />
<a href="http://www.wowinterface.com/downloads/info8113-Combuctor.html">http://www.wowinterface.com/downloads/info5108-Clique.html</a></p>
<p><strong>Decursive
  </strong><br />
  一键驱散
  <br />
<a href="http://www.wowinterface.com/downloads/info4937-Decursive.html">http://www.wowinterface.com/downloads/info4937-Decursive.html </a></p>
<p><strong>Dominos</strong><br />
  动作条插件<br />
<a href="http://www.wowinterface.com/downloads/info5108-Clique.html">http://www.wowinterface.com/downloads/info9085-Dominos.html </a></p>
<p><strong>EasyChannel
  </strong><br />
  在文字输入框按下tab键可在聊天频道之间切换
  <br />
  <a href="http://www.wowinterface.com/downloads/info7294-Chippu.html">http://bbs.game.mop.com/viewthread.php?tid=1853542&extra=page%3D1

</a></p>
<p><strong>EquipCompare
  </strong><br />
  装备比较插件
  <br />
<a href="http://www.wowinterface.com/downloads/info4392-EquipCompare.html">http://www.wowinterface.com/downloads/info4392-EquipCompare.html </a></p>
<p><strong>Fizzle
  </strong><br />
  在人物面板显示装备耐久度的百分比
  <br />
  设置/fizzle or /fizz
  <br />
<a href="http://www.wowinterface.com/downloads/info4937-Decursive.html">http://www.wowinterface.com/downloads/info5018-Fizzle.html </a></p>
<p><strong>ForteXorcist
  </strong><br />
  法术计时、冷却计时，警报提示
  <br />
  设置/fx or /fw 
  <br />
<a href="http://www.wowinterface.com/downloads/info7532-ForteXorcist.html">http://www.wowinterface.com/downloads/info7532-ForteXorcist.html </a></p>
<p><strong>FriendsMenuXP
  </strong><br />
  右键菜单增强<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/friends-menu-xp.aspx">http://wow.curse.com/downloads/wow-addons/details/friends-menu-xp.aspx</a>
</p>
<p><strong>FuBar
  </strong><br />
  插件吸附面板<br />
<a href="http://www.wowace.com/addons/fubar/">http://www.wowace.com/addons/fubar/ </a></p>
<p><strong>FuBar_ClockFu
  </strong><br />
  FuBar上显示时钟
  <br />
<a href="http://www.wowinterface.com/downloads/info5018-Fizzle.html">http://www.wowace.com/addons/fubar_clockfu/ </a></p>
<p><strong>FuBar_DurabilityFu
  </strong><br />
  FuBar上显示装备耐久<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_durabilityfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_durabilityfu.aspx </a></p>
<p><strong>FuBar_EmoteFu2
  </strong><br />
  发送设置好的表情
  <br />
<a href="http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&amp;t=14314">http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&t=14314</a></p>
<p> <strong>FuBar_ExpFu </strong><br />
  FuBar上显示人物的经验<br />
<a href="http://www.wowace.com/addons/fubar_clockfu/">http://wow.curse.com/downloads/wow-addons/details/fubar_expfu.aspx</a></p>
<p><strong>FuBar_FactionsFu</strong><br />
  FuBar显示阵营的声望<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_factionsfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_factionsfu.aspx</a></p>
<p><strong>FuBar_LocationFu</strong><br />
  FuBar显示你当前的位置<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_locationfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_locationfu.aspx</a></p>
<p><strong>FuBar_MoneyFu</strong><br />
  FuBar上显示你的金币数量
  <br />
<a href="http://wow.curse.com/downloads/wow-addons/details/fubar_expfu.aspx">http://wow.curse.com/downloads/wow-addons/details/fubar_moneyfu.aspx </a></p>
<p><strong>FuBar_PerformanceFu</strong><br />
  显示系统当前延迟、内存占用等信息
  <br />
  <a href="http://www.wowace.com/addons/fubar_performancefu/">http://www.wowace.com/addons/fubar_performancefu/</a></p>
<p><strong>FuBar_RecountFu</strong><br />
  使在FuBar上可以打开Recount的设置<br />
<a href="http://www.wowace.com/addons/fu-bar_recount-fu/">http://www.wowace.com/addons/fu-bar_recount-fu/</a></p>
<p><strong>FuBar_WhisperFu</strong><br />
在FuBar上记录收到和发出的密语
  <br />
<a href="http://www.wowace.com/addons/fu-bar_whisper-fu/">http://www.wowace.com/addons/fu-bar_whisper-fu/</a></p>
<p><strong>GatherMate
  </strong><br />
  采集助手<br />
<a href="http://www.wowace.com/addons/fubar_performancefu/">http://www.wowace.com/addons/gathermate/</a></p>
<p><strong>GatherMate_Data
  </strong><br />
  wowhead.com上导入的GatherMate数据<br />
<a href="http://www.wowace.com/addons/fu-bar_recount-fu/">http://www.wowace.com/addons/gathermate_data/</a></p>
<p><strong>Gnosis
  </strong><br />
  施法条增强插件
  <br />
<a href="http://wow.curse.com/downloads/wow-addons/details/gnosis.aspx">http://wow.curse.com/downloads/wow-addons/details/gnosis.aspx</a></p>
<p> <strong>Grid </strong><br />
  团队框架<br />
<a href="http://www.wowace.com/addons/gathermate_data/">http://www.wowace.com/addons/grid/</a></p>
<p><strong>GridManaBars </strong><br />
  在Grid框体上可以显示人物的法力值
	<br />
<a href="http://www.wowace.com/addons/grid-mana-bars/">http://www.wowace.com/addons/grid-mana-bars/</a></p>
<p><strong>ItemRack
  </strong><br />
  一键换装
  <br />
<a href="http://www.wowinterface.com/downloads/info4148-ItemRack.html">http://www.wowinterface.com/downloads/info4148-ItemRack.html</a></p>
<p><strong>JPack</strong><br />
  背包整理<br />
<a href="http://wow.curse.com/downloads/wow-addons/details/jpack.aspx">http://wow.curse.com/downloads/wow-addons/details/jpack.aspx</a></p>
<p><strong>Kennel</strong><br />
宠物管理<br />
<a href="http://www.wowinterface.com/downloads/info4442-Kennel.html">http://www.wowinterface.com/downloads/info4442-Kennel.html</a></p>
<p><strong>Mapster
  </strong><br />
  比cartographer更轻量级的地图插件
  <br />
<a href="http://www.wowace.com/addons/mapster/">http://www.wowace.com/addons/mapster/</a></p>
<p><strong>Mendeleev
  </strong><br />
  在信息提示中显示物品掉落的信息<br />
<a href="http://www.wowace.com/addons/mendeleev/">http://www.wowace.com/addons/mendeleev/</a></p>
<p><strong>oGlow
  </strong><br />
  将物品的图标边框显示成物品品质的颜色<br />
<a href="http://www.wowinterface.com/downloads/info7142-oGlow.html">http://www.wowinterface.com/downloads/info7142-oGlow.html</a></p>
<p><strong>Omen
  </strong><br />
  仇恨统计插件<br />
<a href="http://www.wowace.com/addons/omen-threat-meter/">http://www.wowace.com/addons/omen-threat-meter/</a></p>
<p> <strong>OmniCC </strong><br />
  在动作条上显示冷却时间的具体秒数<br />
<a href="http://www.wowinterface.com/downloads/info4836-OmniCC.html">http://www.wowinterface.com/downloads/info4836-OmniCC.html</a></p>
<p><strong>OmniCC_Pulse
  </strong><br />
  技能冷却以后再动作条上闪烁<br />
<a href="http://www.wowinterface.com/downloads/info12458-OmniCCPulse.html">http://www.wowinterface.com/downloads/info12458-OmniCCPulse.html</a></p>
<p> <strong>oRA3 </strong><br />
  团队助手
  <br />
<a href="http://www.wowace.com/search/?search=oRA3">http://www.wowace.com/search/?search=oRA3</a></p>
<p><strong>PitBull4
  </strong><br />
  单位头像框架
  <br />
<a href="http://www.wowace.com/addons/pitbull4/">http://www.wowace.com/addons/pitbull4/</a></p>
<p><strong>Postal</strong><br />
邮箱增强
  <br />
<a href="http://www.wowace.com/addons/postal/">http://www.wowace.com/addons/postal/</a></p>
<p><strong>PowerAuras</strong>(Power Auras Classic) <br />
  根据技能冷却BUFF等条件产生华丽的提示效果
  <br />
  设置： /powa
  <br />
<a href="http://wow.curse.com/downloads/wow-addons/details/powerauras-classic.aspx">http://wow.curse.com/downloads/wow-addons/details/powerauras-classic.aspx</a></p>
<p><strong>QuestAnnounce</strong><br />
  任务进度通告插件
  <br />
  设置： /qa
  <br />
<a href="http://www.wowinterface.com/downloads/info5343-QuestAnnouncer.html">http://www.wowinterface.com/downloads/info5343-QuestAnnouncer.html</a></p>
<p><strong>QuestHelper
  </strong><br />
  任务助手
  <br />
  设置： /qh
  <br />
<a href="http://www.wowinterface.com/downloads/info9896-QuestHelper.html">http://www.wowinterface.com/downloads/info9896-QuestHelper.html</a></p>
<p> <strong>RatingBuster </strong><br />
  装备具体属性计算并比较<br />
<a href="http://www.wowace.com/addons/rating-buster/">http://www.wowace.com/addons/rating-buster/</a></p>
<p><strong>Recount</strong><br />
  战斗数据统计插件<br />
<a href="http://www.wowace.com/addons/recount/">http://www.wowace.com/addons/recount/</a></p>
<p><strong>SexyMap</strong><br />
小地图美化插件
  <br />
<a href="http://www.wowace.com/addons/sexymap/">http://www.wowace.com/addons/sexymap/</a></p>
<p><strong>SharedMedia
  </strong><br />
  为其他插件提供更多的材质<br />
<a href="http://www.wowace.com/addons/sharedmedia/">http://www.wowace.com/addons/sharedmedia/</a></p>
<p><strong>SilverDragon
  </strong><br />
  稀有怪追踪插件
  <br />
<a href="http://www.wowinterface.com/downloads/info6606-SilverDragon.html">http://www.wowinterface.com/downloads/info6606-SilverDragon.html</a></p>
<p><strong>Talented
  </strong><br />
  天赋面板增强
  <br />
h<a href="ttp://www.wowinterface.com/downloads/info12593-Talented.html">ttp://www.wowinterface.com/downloads/info12593-Talented.html</a></p>
<p><strong>tekticles
  </strong><br />
  修改游戏中默认的字体以及字体的比例<br />
<a href="http://www.wowinterface.com/downloads/info8786-tekticles.html">http://www.wowinterface.com/downloads/info8786-tekticles.html</a></p>
<p><strong>Tipachu</strong><br />
在信息提示内部显示物品的图标<br />
<a href="http://www.wowinterface.com/downloads/info8808-Tipachu.html">http://www.wowinterface.com/downloads/info8808-Tipachu.html</a></p>
<p><strong>WhisperPop</strong><br />
  密语提醒插件<br />
<a href="http://wow.178.com/200901/25404270985.html">http://wow.178.com/200901/25404270985.html </a></p>
<p><strong>XLoot
  </strong><br />
  移动修改默认的拾取窗口<br />
<a href="http://www.wowinterface.com/downloads/info6347-XLoot.html">http://www.wowinterface.com/downloads/info6347-XLoot.html</a></p>
<p><strong>Ztip
  </strong><br />
  强化鼠标悬浮的信息提示<br />
<a href="http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&amp;t=19837">http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&t=19837</a></p>
<p> <strong>备用插件 </strong></p>
<p><strong>AshChat</strong><br />
聊天框体增强
  3.3版本会报错，屏蔽以后可以正常使用

</p>
<p><strong>BaudBag
  </strong><br />
  背包整合插件<br />
<a href="http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&amp;t=12454">http://wowbox.yatta.com.tw/bbs/viewtopic.php?f=84&t=12454</a></p>
<p> <strong>Cartographer</strong><br />
  地图增强<br />
<a href="http://www.wowace.com/addons/cartographer/">http://www.wowace.com/addons/cartographer/</a></p>
<p><strong>EasyTrinket
  </strong><br />
  饰品管理插件</p>
<p> <strong>Grid2</strong><br />
  团队框架<br />
  <a href="http://www.wowace.com/addons/grid2/">http://www.wowace.com/addons/grid2/</a><br />
<br />
<strong>Recount2 </strong><br />
  战斗数据统计<br />
<a href="http://www.wowace.com/addons/recount2/">http://www.wowace.com/addons/recount2/</a></p>
<p><strong>SatrinaBuffFrame
  </strong><br />
  光环增强插件
  <br />
  <a href="http://wow.curse.com/downloads/wow-addons/details/satrina-buff-frame.aspx">http://wow.curse.com/downloads/wow-addons/details/satrina-buff-frame.aspx</a></p>
<p><strong>_Cursor
  </strong><br />
  在游戏鼠标上显示华丽的图案和效果
  <br />
  设置：在插件管理里
  <br />
<a href="http://www.wowinterface.com/downloads/info10531-_Cursor.html">http://www.wowinterface.com/downloads/info10531-_Cursor.html </a>]]></content>
	 </entry>
	
	 <entry>
	   <title>Falling Stars by 2ND Moon</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/falling-stars"/>
	   <id>http://jieblog.appspot.com/post/falling-stars"</id>
	   <updated>2009-11-15T10:12:33+00:00</updated>
	   <summary type='html'><![CDATA[ <pre style="padding: 10px;background-color:#eee; line-height: 20px; color: #666;">
Summer winds blow 
All the leaves fall 
These things don't die 
As time goes by 
In the night sky 
Stars bare your name 
They only fall 
For you 
So you can 
Catch the stars from the sky 
Hold it close to your heart 
Remember all that we had 
I will be there wherever you are 

Catch the stars from the sky 
Hold it close to your heart 
Remember all that we had and then 
I will be there wherever you are 

Winter snows come 
Spring green breaks through 
These things don't die 
They stay 
As time goes by 
They will live on 
For you 
In falling stars
</pre>]]></summary>
	   <content type='html'><![CDATA[ <pre style="padding: 10px;background-color:#eee; line-height: 20px; color: #666;">
Summer winds blow 
All the leaves fall 
These things don't die 
As time goes by 
In the night sky 
Stars bare your name 
They only fall 
For you 
So you can 
Catch the stars from the sky 
Hold it close to your heart 
Remember all that we had 
I will be there wherever you are 

Catch the stars from the sky 
Hold it close to your heart 
Remember all that we had and then 
I will be there wherever you are 

Winter snows come 
Spring green breaks through 
These things don't die 
They stay 
As time goes by 
They will live on 
For you 
In falling stars
</pre>]]></content>
	 </entry>
	
	 <entry>
	   <title>Google App Engine SDK Version 1.2.6更新 </title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/google-app-engine-sdk-v1-2-6"/>
	   <id>http://jieblog.appspot.com/post/google-app-engine-sdk-v1-2-6"</id>
	   <updated>2009-10-14T07:22:02+00:00</updated>
	   <summary type='html'><![CDATA[ <p><b>收取Email</b> - 你的App Engine程序以前就可以发送Email了...但是现在，随着1.2.6版本的到来，你的程序可以实现接收email功能了。在起用mail作为Inbound服务(就像XMPP)以后，用户可以使用类似<i>whatever</i>@<i>yourappid</i>.appspotmail.com这样的地址给你的程序发送mail。Inbound信息被转变成一个你可以接收的webhook句柄HTTP请求(同样类似XMPP)。关于这部分的文档，<a target="_blank" href="http://code.google.com/appengine/docs/python/mail/receivingmail.html">Python</a>版和<a target="_blank" href="http://code.google.com/appengine/docs/java/mail/receiving.html">Java</a>版。
</p>

<p>
<b>删除一个程序</b> - 我们的开发人员收到了很多希望实现删除不再使用的程序功能的请求(Top5的特性请求之一)。这一特性已经可以在管理后台实现！可以通过访问Application Settings页面获得更多信息，<a target="_blank" href="http://code.google.com/appengine/kb/adminconsole.html#delete_app">更多</a>。
</p>
<p>
<b>数据库状态</b> - 你现在可以在管理后台看到程序数据的更多统计细节。这些信息也可以通过程序来访问，文档<a target="_blank" href="http://code.google.com/appengine/docs/python/datastore/stats.html">Python</a>, <a target="_blank" href="http://code.google.com/appengine/docs/java/datastore/stats.html">Java</a>。
</p>
<p>更多细节察看<a target="_blank" href="http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes">Release Notes</a>：</p>
<ul><li><a name="Version_1.2.6_-_October_13,_2009">加入收取email支持</a><a href="http://code.google.com/p/googleappengine/issues/detail?id=165" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=165</a> </li>
<li>远程API支持XMPP和任务列队。</li>
<li>所有默认的句柄现在更加安全：可选的。用户能够通过SSL访问所有的页面除非它被明确禁用。</li>
<li>远程API现在支持HTTPS</li>
<li><a href="http://code.google.com/p/googleappengine/issues/detail?id=1461" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=1461</a></li>
<li>Appcfg现在默认会使用https</li>
<li><a href="http://code.google.com/p/googleappengine/issues/detail?id=794" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=794</a> </li>
<li>Appcfg.py现在支持--application和--version参数覆盖app.yaml中的参数</li>
<li><a href="http://code.google.com/p/googleappengine/issues/detail?id=670" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=670</a> </li>
<li>GQL现在支持'= NULL'查询</li>
<li>db.Model构造器现在支持为Model实例设置一个key</li>
<li>新数据库状态api。状态也可以通过管理后台访问</li>
<li>Bulkloader转储和恢复现在支持恢复成不同的程序id和存储数字key</li>
</ul>]]></summary>
	   <content type='html'><![CDATA[ <p><b>收取Email</b> - 你的App Engine程序以前就可以发送Email了...但是现在，随着1.2.6版本的到来，你的程序可以实现接收email功能了。在起用mail作为Inbound服务(就像XMPP)以后，用户可以使用类似<i>whatever</i>@<i>yourappid</i>.appspotmail.com这样的地址给你的程序发送mail。Inbound信息被转变成一个你可以接收的webhook句柄HTTP请求(同样类似XMPP)。关于这部分的文档，<a target="_blank" href="http://code.google.com/appengine/docs/python/mail/receivingmail.html">Python</a>版和<a target="_blank" href="http://code.google.com/appengine/docs/java/mail/receiving.html">Java</a>版。
</p>

<p>
<b>删除一个程序</b> - 我们的开发人员收到了很多希望实现删除不再使用的程序功能的请求(Top5的特性请求之一)。这一特性已经可以在管理后台实现！可以通过访问Application Settings页面获得更多信息，<a target="_blank" href="http://code.google.com/appengine/kb/adminconsole.html#delete_app">更多</a>。
</p>
<p>
<b>数据库状态</b> - 你现在可以在管理后台看到程序数据的更多统计细节。这些信息也可以通过程序来访问，文档<a target="_blank" href="http://code.google.com/appengine/docs/python/datastore/stats.html">Python</a>, <a target="_blank" href="http://code.google.com/appengine/docs/java/datastore/stats.html">Java</a>。
</p>
<p>更多细节察看<a target="_blank" href="http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes">Release Notes</a>：</p>
<ul><li><a name="Version_1.2.6_-_October_13,_2009">加入收取email支持</a><a href="http://code.google.com/p/googleappengine/issues/detail?id=165" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=165</a> </li>
<li>远程API支持XMPP和任务列队。</li>
<li>所有默认的句柄现在更加安全：可选的。用户能够通过SSL访问所有的页面除非它被明确禁用。</li>
<li>远程API现在支持HTTPS</li>
<li><a href="http://code.google.com/p/googleappengine/issues/detail?id=1461" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=1461</a></li>
<li>Appcfg现在默认会使用https</li>
<li><a href="http://code.google.com/p/googleappengine/issues/detail?id=794" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=794</a> </li>
<li>Appcfg.py现在支持--application和--version参数覆盖app.yaml中的参数</li>
<li><a href="http://code.google.com/p/googleappengine/issues/detail?id=670" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=670</a> </li>
<li>GQL现在支持'= NULL'查询</li>
<li>db.Model构造器现在支持为Model实例设置一个key</li>
<li>新数据库状态api。状态也可以通过管理后台访问</li>
<li>Bulkloader转储和恢复现在支持恢复成不同的程序id和存储数字key</li>
</ul>]]></content>
	 </entry>
	
	 <entry>
	   <title>Google App Engine SDK Version 1.2.5更新 </title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/google-app-engine-sdk-v1-2-5"/>
	   <id>http://jieblog.appspot.com/post/google-app-engine-sdk-v1-2-5"</id>
	   <updated>2009-09-07T05:09:34+00:00</updated>
	   <summary type='html'><![CDATA[ <p>
<ul>
<li><b>Python和Java的SDK版本更新到了1.2.5</b>-<a href="http://code.google.com/appengine/downloads.html" title="Google App Engine"> 下载</a></li>
<li>App Engine现在可以通过XMPP协议来收发消息，支持和类似Jabber或者Google Talk这样的即时通讯服务进行通信。</li>
<li>Java SDK现在有测试Task Queue服务的API</li>
<li>Java SDK现在支持所有的内置数据类型，包括GData类型，比如GeoPt</li>
<li>JDO和JPA现在支持使用查询来删除实体</li>
<li>JDO现在可以使用makePersisitentAll()和deletePersistentAll()进行数据批处理操作</li>
<li>数据实体的key现在可以使用数字开头，不再需要用户ID必须使用非数字字符来作为实体key的前缀</li>
<li>数据<a href="http://code.google.com/appengine/docs/python/datastore/transactions.html" title="transactions">transactions</a>现在支持多次同步写入和删除实体在一个transaction过程中</li>
<li>URL Fetch请求现在能够设置Referer的Header。如果程序不设置header，将不对headers请求。此前，App Engine一直强制使用特定的App Engine header</li>
<li>Java程序现在可以使用java.net.URLConnection接口的setConnectionTimeout()为URL Fetch设置deadline</li>
<li>Java程序可以在开发环境的web.xml中使用<mime-mapping>元素调整MIME类型</li>
<li>Java程序可以使用appengine-web.xml文件控制浏览器缓存过期的时间</li>
<li>bulkloader加入了一个试验中的特性，可以删除和恢复每个实体而不需要加入任何代码和设置。目前这个特性仅仅在bulkloader.py工具中可用；这一功能将在稳定后被移动到appcfg.py工具中</li>
<li>Python SDK for Windows现在加入了图形化的接口来提供创建、测试和开发项目的功能。这一功能和Mac上的Launcher一样。Windows版本的启动器使用Python和wxWidgets开发，所以Linux用户也可以下载</li>
<li>使用Python appcfg.py request_logs命令行，你现在可以调整log的日期来使用--end_date参数下载代码。而且文档已经加入了介绍以前版本的--include_vhost参数</li>
</ul>
</p>]]></summary>
	   <content type='html'><![CDATA[ <p>
<ul>
<li><b>Python和Java的SDK版本更新到了1.2.5</b>-<a href="http://code.google.com/appengine/downloads.html" title="Google App Engine"> 下载</a></li>
<li>App Engine现在可以通过XMPP协议来收发消息，支持和类似Jabber或者Google Talk这样的即时通讯服务进行通信。</li>
<li>Java SDK现在有测试Task Queue服务的API</li>
<li>Java SDK现在支持所有的内置数据类型，包括GData类型，比如GeoPt</li>
<li>JDO和JPA现在支持使用查询来删除实体</li>
<li>JDO现在可以使用makePersisitentAll()和deletePersistentAll()进行数据批处理操作</li>
<li>数据实体的key现在可以使用数字开头，不再需要用户ID必须使用非数字字符来作为实体key的前缀</li>
<li>数据<a href="http://code.google.com/appengine/docs/python/datastore/transactions.html" title="transactions">transactions</a>现在支持多次同步写入和删除实体在一个transaction过程中</li>
<li>URL Fetch请求现在能够设置Referer的Header。如果程序不设置header，将不对headers请求。此前，App Engine一直强制使用特定的App Engine header</li>
<li>Java程序现在可以使用java.net.URLConnection接口的setConnectionTimeout()为URL Fetch设置deadline</li>
<li>Java程序可以在开发环境的web.xml中使用<mime-mapping>元素调整MIME类型</li>
<li>Java程序可以使用appengine-web.xml文件控制浏览器缓存过期的时间</li>
<li>bulkloader加入了一个试验中的特性，可以删除和恢复每个实体而不需要加入任何代码和设置。目前这个特性仅仅在bulkloader.py工具中可用；这一功能将在稳定后被移动到appcfg.py工具中</li>
<li>Python SDK for Windows现在加入了图形化的接口来提供创建、测试和开发项目的功能。这一功能和Mac上的Launcher一样。Windows版本的启动器使用Python和wxWidgets开发，所以Linux用户也可以下载</li>
<li>使用Python appcfg.py request_logs命令行，你现在可以调整log的日期来使用--end_date参数下载代码。而且文档已经加入了介绍以前版本的--include_vhost参数</li>
</ul>
</p>]]></content>
	 </entry>
	
	 <entry>
	   <title>Google App Engine SDK Version 1.2.4更新</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/google-app-engine-sdk-v1-2-4"/>
	   <id>http://jieblog.appspot.com/post/google-app-engine-sdk-v1-2-4"</id>
	   <updated>2009-08-07T21:56:20+00:00</updated>
	   <summary type='html'><![CDATA[ <p>
<blockquote>
<ul>
<li>远程API现在支持更多的API，包括Images、memcache、和URLFetch<br/><a href="http://code.google.com/p/googleappengine/issues/detail?id=1596">http://code.google.com/p/googleappengine/issues/detail?id=1596</a></li>
<li>在本地可以使用shell命令行访问Remote API</li>
<li>支持无kind的查询(又名transaction descendant查询)<br/><a href="http://code.google.com/p/googleappengine/issues/detail?id=913">http://code.google.com/p/googleappengine/issues/detail?id=913</a></li>
<li>PolyModel现在支持keys_only<br/><a href="http://code.google.com/p/googleappengine/issues/detail?id=1630">http://code.google.com/p/googleappengine/issues/detail?id=1630</a></li>
<li>Model和PolyModel支持多重继承</li>
<li>改进了bulkloader中的异常报告</li>
<li>SearchableModel支持多重属性索引</li>
<li>复合indexes不再需要关键词查询</li>
</ul>
</blockquote>
</p>
[<a href="http://googleappengine.blogspot.com/2009/08/python-sdk-version-124-released.html">via</a>]]]></summary>
	   <content type='html'><![CDATA[ <p>
<blockquote>
<ul>
<li>远程API现在支持更多的API，包括Images、memcache、和URLFetch<br/><a href="http://code.google.com/p/googleappengine/issues/detail?id=1596">http://code.google.com/p/googleappengine/issues/detail?id=1596</a></li>
<li>在本地可以使用shell命令行访问Remote API</li>
<li>支持无kind的查询(又名transaction descendant查询)<br/><a href="http://code.google.com/p/googleappengine/issues/detail?id=913">http://code.google.com/p/googleappengine/issues/detail?id=913</a></li>
<li>PolyModel现在支持keys_only<br/><a href="http://code.google.com/p/googleappengine/issues/detail?id=1630">http://code.google.com/p/googleappengine/issues/detail?id=1630</a></li>
<li>Model和PolyModel支持多重继承</li>
<li>改进了bulkloader中的异常报告</li>
<li>SearchableModel支持多重属性索引</li>
<li>复合indexes不再需要关键词查询</li>
</ul>
</blockquote>
</p>
[<a href="http://googleappengine.blogspot.com/2009/08/python-sdk-version-124-released.html">via</a>]]]></content>
	 </entry>
	
	 <entry>
	   <title>GAE技术文章更新和一些新的开源项目</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/gae-articles-update"/>
	   <id>http://jieblog.appspot.com/post/gae-articles-update"</id>
	   <updated>2009-07-12T02:06:25+00:00</updated>
	   <summary type='html'><![CDATA[ <p>App Engine团队近日更新了App Engine文档中一些介绍程序扩展性的文章——<a href="http://code.google.com/appengine/articles/scaling/overview.html">编写可扩展性程序的最佳实践</a>。此外，<a href="http://code.google.com/appengine/articles/">新的文档的分类</a>也更加详细。</p>
<ul>
<li><a href="http://code.google.com/appengine/articles/scaling/minimize.html">Minimizing work</a></li>
<li><a href="http://code.google.com/appengine/articles/paging.html">Paging through large datasets</a></li>
<li><a href="http://code.google.com/appengine/articles/scaling/contention.html">Avoiding datastore contention</a></li>
<li><a href="http://code.google.com/appengine/articles/sharding_counters.html">Sharding counters</a></li>
<li><a href="http://code.google.com/appengine/articles/scaling/memcache.html">Effective memcache</a></li>
</ul>
<b>GeoModel开源项目</b>
<p><a href="http://code.google.com/p/geomodel/">GeoModel</a>是用来索引和查询的地理空间数据的一个开源项目，由Google Earth API的工程师Roman Nurrik发起。GeoModel使用称之为<a href="http://code.google.com/p/geomodel/source/browse/trunk/geo/geocell.py">geocells</a>的<a href="http://www.google.com/url?sa=U&start=1&q=http://en.wikipedia.org/wiki/Geohash">geohash</a>-like对象来进行索引和查询。GeoModel不仅优化了基本房地产搜索/商业定位，而且可以适用于大型的数据集。</p>
<p>使用GeoModel开发者可以通过继承GeoModel中的类迅速建立地理背景的数据模型。目前，数据实体可以与一个单一的地理坐标对应，随后索引和过滤符合周围地区或接近（最近n ）到搜索中心点的坐标。</p>
<b>其他开源项目</b>
<ul>
<li><a href="http://code.google.com/p/gaevfs/">GaeVFS</a>，使用App Engine数据存储移植的Apache Commons VFS插件，使用了数据库和memcache APIs。</li>
<li><a href="http://www.graniteds.org/">GraniteDS 2.0</a>，支持App Engine for Java：Granite DS是一个为Java EE服务器开发的Adobe生命周期数据服务的替代品，支持服务器的推进和持续机制。更多信息请参考他们的<a href="http://graniteds.blogspot.com/2009/05/graniteds-20-now-supports-server-push.html">announcement</a></li>
<li><a href="http://www.jiql.org/xwiki/bin/view/Main/">jiql</a>是基于JDBC的包装的应用程序引擎的低级别的数据存储的API，提供了开发人员熟悉的分布式数据库的接口。</li>
<li><a href="http://blog.herbert.groot.jebbink.nl/2009/06/how-to-use-rpg.html">pQg</a>是基于PHP的从SQL到JDO的概念程序和一些<a href="http://sql-to-jdo-for-php-at-gae.appspot.com/">范例</a></li>
</ul>]]></summary>
	   <content type='html'><![CDATA[ <p>App Engine团队近日更新了App Engine文档中一些介绍程序扩展性的文章——<a href="http://code.google.com/appengine/articles/scaling/overview.html">编写可扩展性程序的最佳实践</a>。此外，<a href="http://code.google.com/appengine/articles/">新的文档的分类</a>也更加详细。</p>
<ul>
<li><a href="http://code.google.com/appengine/articles/scaling/minimize.html">Minimizing work</a></li>
<li><a href="http://code.google.com/appengine/articles/paging.html">Paging through large datasets</a></li>
<li><a href="http://code.google.com/appengine/articles/scaling/contention.html">Avoiding datastore contention</a></li>
<li><a href="http://code.google.com/appengine/articles/sharding_counters.html">Sharding counters</a></li>
<li><a href="http://code.google.com/appengine/articles/scaling/memcache.html">Effective memcache</a></li>
</ul>
<b>GeoModel开源项目</b>
<p><a href="http://code.google.com/p/geomodel/">GeoModel</a>是用来索引和查询的地理空间数据的一个开源项目，由Google Earth API的工程师Roman Nurrik发起。GeoModel使用称之为<a href="http://code.google.com/p/geomodel/source/browse/trunk/geo/geocell.py">geocells</a>的<a href="http://www.google.com/url?sa=U&start=1&q=http://en.wikipedia.org/wiki/Geohash">geohash</a>-like对象来进行索引和查询。GeoModel不仅优化了基本房地产搜索/商业定位，而且可以适用于大型的数据集。</p>
<p>使用GeoModel开发者可以通过继承GeoModel中的类迅速建立地理背景的数据模型。目前，数据实体可以与一个单一的地理坐标对应，随后索引和过滤符合周围地区或接近（最近n ）到搜索中心点的坐标。</p>
<b>其他开源项目</b>
<ul>
<li><a href="http://code.google.com/p/gaevfs/">GaeVFS</a>，使用App Engine数据存储移植的Apache Commons VFS插件，使用了数据库和memcache APIs。</li>
<li><a href="http://www.graniteds.org/">GraniteDS 2.0</a>，支持App Engine for Java：Granite DS是一个为Java EE服务器开发的Adobe生命周期数据服务的替代品，支持服务器的推进和持续机制。更多信息请参考他们的<a href="http://graniteds.blogspot.com/2009/05/graniteds-20-now-supports-server-push.html">announcement</a></li>
<li><a href="http://www.jiql.org/xwiki/bin/view/Main/">jiql</a>是基于JDBC的包装的应用程序引擎的低级别的数据存储的API，提供了开发人员熟悉的分布式数据库的接口。</li>
<li><a href="http://blog.herbert.groot.jebbink.nl/2009/06/how-to-use-rpg.html">pQg</a>是基于PHP的从SQL到JDO的概念程序和一些<a href="http://sql-to-jdo-for-php-at-gae.appspot.com/">范例</a></li>
</ul>]]></content>
	 </entry>
	
	 <entry>
	   <title>Google App Engine SDK Version 1.2.3更新</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/google-app-engine-sdk-v1-2-3"/>
	   <id>http://jieblog.appspot.com/post/google-app-engine-sdk-v1-2-3"</id>
	   <updated>2009-06-19T00:30:18+00:00</updated>
	   <summary type='html'><![CDATA[ <blockquote>
<ul>
<li>google.appengine.api.labs.taskqueue开始支持计划任务列队<br /><a href="http://code.google.com/appengine/docs/python/taskqueue">http://code.google.com/appengine/docs/python/taskqueue</a></li>
<li>开始支持Django 1.0，需要在本地环境中安装django但不需要上传到服务器<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=872">http://code.google.com/p/googleappengine/issues/detail?id=872</a></li>
<li>Urlfetch开始支持异步请求<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=958">http://code.google.com/p/googleappengine/issues/detail?id=958</a></li>
<li>Urlfetch在开发套件中更接近于在App Engine的服务器中：默认中会设置referer header，而并不设置Accept header，而且会设置gzip.Urlfetch的Accept-Encoding<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=970">http://code.google.com/p/googleappengine/issues/detail?id=970</a></li>
<li>Fixed issue with httplib and absolute URLs.修复httplib和绝对路径的问题<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=1311">http://code.google.com/p/googleappengine/issues/detail?id=1311</a></li>
<li>Memcache的key长度不再限制为250字节：更长的keys将会被key的hash取代</li>
<li>transactions中支持使用Datastore的ancestor进行查询</li>
<li>在开发套件中会对第一个operation进行快照，所以不会显示在transaction的所有写入。和在服务器中一样。</li>
</ul>
</blockquote>]]></summary>
	   <content type='html'><![CDATA[ <blockquote>
<ul>
<li>google.appengine.api.labs.taskqueue开始支持计划任务列队<br /><a href="http://code.google.com/appengine/docs/python/taskqueue">http://code.google.com/appengine/docs/python/taskqueue</a></li>
<li>开始支持Django 1.0，需要在本地环境中安装django但不需要上传到服务器<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=872">http://code.google.com/p/googleappengine/issues/detail?id=872</a></li>
<li>Urlfetch开始支持异步请求<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=958">http://code.google.com/p/googleappengine/issues/detail?id=958</a></li>
<li>Urlfetch在开发套件中更接近于在App Engine的服务器中：默认中会设置referer header，而并不设置Accept header，而且会设置gzip.Urlfetch的Accept-Encoding<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=970">http://code.google.com/p/googleappengine/issues/detail?id=970</a></li>
<li>Fixed issue with httplib and absolute URLs.修复httplib和绝对路径的问题<br /><a href="http://code.google.com/p/googleappengine/issues/detail?id=1311">http://code.google.com/p/googleappengine/issues/detail?id=1311</a></li>
<li>Memcache的key长度不再限制为250字节：更长的keys将会被key的hash取代</li>
<li>transactions中支持使用Datastore的ancestor进行查询</li>
<li>在开发套件中会对第一个operation进行快照，所以不会显示在transaction的所有写入。和在服务器中一样。</li>
</ul>
</blockquote>]]></content>
	 </entry>
	
	 <entry>
	   <title>关于GAE你可能不知道的十件事</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/10-things-about-appengine"/>
	   <id>http://jieblog.appspot.com/post/10-things-about-appengine"</id>
	   <updated>2009-06-06T01:05:41+00:00</updated>
	   <summary type='html'><![CDATA[ <p><ul>
<li><b>程序版本号并不是number类型而是string</b><br/>
尽管在多数的例子中都将app.yaml和appengine-web.xml中的'version'字段作为number类型，实际上这只是人们的一种习惯。程序版本可以是任何URL中允许的string类型。例如，你可以将你的版本设置成"live"和"dev"，这样你就可以通过"live.latest.yourapp.appspot.com"和"dev.latest.yourapp.appspot.com"这样的地址来访问了。</li>
<li><b>你可以在程序中同时使用多个版本</b><br/>
这里有一点是很NB的，不同的版本可以使用不同的运行环境。换言之，你可以为你的程序开发使用Java语言的版本和Python语言的版本。</li>
<li><b>Java运行时支持任何编译成Java bytecode的语言</b><br/>
这就是为什么人们需要Java runtime的原因，一旦这家伙被支持了就等于你可以在GAE上使用什么JRuby,Groovy,Scala,Rhino(JavaScript编译器),Quercus(PHP编译器),甚至Jython!</li>
<li><b>使用'IN'和'!='运算符可以生成多重数据查询</b><br/>
例如，查询"SELECT * FROM People WHERE name IN ('Bob', 'Jane')"将会被编译成两个查询等价于使用"SELECT * FROM People WHERE name = 'Bob'"和"SELECT * FROM People WHERE name = 'Jane'"并合并查询的结果。<br/>查询"SELECT * FROM People WHERE name IN ('Bob', 'Jane') AND age != 25"将会为每种可能生成生成查询，(age小于或者等于25, 和name是否为'Bob'或者'Jane')，然后将每种可能合并成结果。
</li>
<li><b>你可以使用批处理执行put,get和delete操作来提高效率。</b><br/>
每当你做出一个数据请求，比如一个查询或者get()操作，你的程序将会对数据库发出请求，而数据库将会执行这些操作并返还一个response。请求到响应的循环过程将会花费一定时间，所以如果你执行的请求过多的话将会导致用户等待结果的时间过长(万恶的datastore timeout: operation took too long异常)。
<br/>
很幸运的是，GAE提供一个简单的方法来减少数据查询中的这种循环：批处理操作。db.put(),db.get(),和db.delete()函数都可以接受可选的list参数来执行操作。当一个传递一个list以后这些操作将会并行的遍历list的每一个元素，这样就大大节省了操作的时间。例如：
<pre class="prettyprint">
for entity in MyModel.all().filter("color =",
    old_favorite).fetch(100):
  entity.color = new_favorite
  entity.put()
</pre>
更新操作需要一个数据库往返的查询，还需要加上一次操作来更新数据库中实体的属性————也就是说一共需要101次的往返！再看下面的例子：
<pre class="prettyprint">
updated = []
for entity in MyModel.all().filter("color =",
    old_favorite).fetch(100):
  entity.color = new_favorite
  updated.append(entity)
db.put(updated)
</pre>
这个例子中只需要2次数据库往返，也就是说我们将101次往返减少到了2次。</li>
<li><b>数据库的性能并不取决于其中实体的数量</b></li>
<li><b>建立索引的时间开销并不全部取决于它的大小</b></li>
<li><b>'Stored Data'的值是按日更新的</b></li>
<li><b>app.yaml，web.xml和appengine-web.xml中指明了项目的处理顺序</b><br/>
人们经常犯的一个错误是忘记配置程序处理文件的顺序是自上而下的。比如，当使用remote_api时候很多人这样做:
<pre class="prettyprint">
handlers:
- url: /.*
  script: request.py

- url: /remote_api
  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
  login: admin
</pre>
上面的例子看起来没有什么问题，但是由于handler是按照顺序处理的，request.py是首先出现的，而所有请求包括对remote_api的请求都是使用request.py处理的。由于request.py加载后并没有出现remote_api，所以就会造成a 404 Not Found error的错误。解决的方法是将request.py的handler放置到remote_api的handler下面。在Java环境的配置文件中也是一样。
</li>
<li><b>你不需要手动构造GQL字符</b><br/>下面是一个反例：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = '" + first_name 
    + "' AND last_name = '" + last_name + "'")
</pre>
很幸运，GAE支持在GqlQuery语句中使用参数替换，上面例子可以改写成：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = :1 "
    "AND last_name = :2", first_name, last_name)
</pre>
GqlQuery还支持使用name来代替数字参数：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = :first_name "
    "AND last_name = :last_name", 
    first_name=first_name, last_name=last_name)
</pre>
这样做出了能使代码看起来更加简洁以外，还可以进行一些优化。如果你需要使用不同的值来进行多次同样的查询，你可以使用bind()函数来为每个查询重新绑定参数。这比起每次都要构造新的查询更加快捷，因为查询只需要分析一次：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = :first_name "
    "AND last_name = :last_name")
for first, last in people:
  q.bind(first, last)
  person = q.get()
  print person
</pre>
</li>
</ul></p>
<p>作者Nick Johnson, App Engine Team[<a href="http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/sU7lLvGeLQM/10-things-you-probably-didnt-know-about.html">via</a>]</p>]]></summary>
	   <content type='html'><![CDATA[ <p><ul>
<li><b>程序版本号并不是number类型而是string</b><br/>
尽管在多数的例子中都将app.yaml和appengine-web.xml中的'version'字段作为number类型，实际上这只是人们的一种习惯。程序版本可以是任何URL中允许的string类型。例如，你可以将你的版本设置成"live"和"dev"，这样你就可以通过"live.latest.yourapp.appspot.com"和"dev.latest.yourapp.appspot.com"这样的地址来访问了。</li>
<li><b>你可以在程序中同时使用多个版本</b><br/>
这里有一点是很NB的，不同的版本可以使用不同的运行环境。换言之，你可以为你的程序开发使用Java语言的版本和Python语言的版本。</li>
<li><b>Java运行时支持任何编译成Java bytecode的语言</b><br/>
这就是为什么人们需要Java runtime的原因，一旦这家伙被支持了就等于你可以在GAE上使用什么JRuby,Groovy,Scala,Rhino(JavaScript编译器),Quercus(PHP编译器),甚至Jython!</li>
<li><b>使用'IN'和'!='运算符可以生成多重数据查询</b><br/>
例如，查询"SELECT * FROM People WHERE name IN ('Bob', 'Jane')"将会被编译成两个查询等价于使用"SELECT * FROM People WHERE name = 'Bob'"和"SELECT * FROM People WHERE name = 'Jane'"并合并查询的结果。<br/>查询"SELECT * FROM People WHERE name IN ('Bob', 'Jane') AND age != 25"将会为每种可能生成生成查询，(age小于或者等于25, 和name是否为'Bob'或者'Jane')，然后将每种可能合并成结果。
</li>
<li><b>你可以使用批处理执行put,get和delete操作来提高效率。</b><br/>
每当你做出一个数据请求，比如一个查询或者get()操作，你的程序将会对数据库发出请求，而数据库将会执行这些操作并返还一个response。请求到响应的循环过程将会花费一定时间，所以如果你执行的请求过多的话将会导致用户等待结果的时间过长(万恶的datastore timeout: operation took too long异常)。
<br/>
很幸运的是，GAE提供一个简单的方法来减少数据查询中的这种循环：批处理操作。db.put(),db.get(),和db.delete()函数都可以接受可选的list参数来执行操作。当一个传递一个list以后这些操作将会并行的遍历list的每一个元素，这样就大大节省了操作的时间。例如：
<pre class="prettyprint">
for entity in MyModel.all().filter("color =",
    old_favorite).fetch(100):
  entity.color = new_favorite
  entity.put()
</pre>
更新操作需要一个数据库往返的查询，还需要加上一次操作来更新数据库中实体的属性————也就是说一共需要101次的往返！再看下面的例子：
<pre class="prettyprint">
updated = []
for entity in MyModel.all().filter("color =",
    old_favorite).fetch(100):
  entity.color = new_favorite
  updated.append(entity)
db.put(updated)
</pre>
这个例子中只需要2次数据库往返，也就是说我们将101次往返减少到了2次。</li>
<li><b>数据库的性能并不取决于其中实体的数量</b></li>
<li><b>建立索引的时间开销并不全部取决于它的大小</b></li>
<li><b>'Stored Data'的值是按日更新的</b></li>
<li><b>app.yaml，web.xml和appengine-web.xml中指明了项目的处理顺序</b><br/>
人们经常犯的一个错误是忘记配置程序处理文件的顺序是自上而下的。比如，当使用remote_api时候很多人这样做:
<pre class="prettyprint">
handlers:
- url: /.*
  script: request.py

- url: /remote_api
  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
  login: admin
</pre>
上面的例子看起来没有什么问题，但是由于handler是按照顺序处理的，request.py是首先出现的，而所有请求包括对remote_api的请求都是使用request.py处理的。由于request.py加载后并没有出现remote_api，所以就会造成a 404 Not Found error的错误。解决的方法是将request.py的handler放置到remote_api的handler下面。在Java环境的配置文件中也是一样。
</li>
<li><b>你不需要手动构造GQL字符</b><br/>下面是一个反例：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = '" + first_name 
    + "' AND last_name = '" + last_name + "'")
</pre>
很幸运，GAE支持在GqlQuery语句中使用参数替换，上面例子可以改写成：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = :1 "
    "AND last_name = :2", first_name, last_name)
</pre>
GqlQuery还支持使用name来代替数字参数：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = :first_name "
    "AND last_name = :last_name", 
    first_name=first_name, last_name=last_name)
</pre>
这样做出了能使代码看起来更加简洁以外，还可以进行一些优化。如果你需要使用不同的值来进行多次同样的查询，你可以使用bind()函数来为每个查询重新绑定参数。这比起每次都要构造新的查询更加快捷，因为查询只需要分析一次：
<pre class="prettyprint">
q = db.GqlQuery("SELECT * FROM People "
    "WHERE first_name = :first_name "
    "AND last_name = :last_name")
for first, last in people:
  q.bind(first, last)
  person = q.get()
  print person
</pre>
</li>
</ul></p>
<p>作者Nick Johnson, App Engine Team[<a href="http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/sU7lLvGeLQM/10-things-you-probably-didnt-know-about.html">via</a>]</p>]]></content>
	 </entry>
	
	 <entry>
	   <title>Google App Engine SDK Version 1.2.2发布</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/google-app-engine-sdk-v1-2-2"/>
	   <id>http://jieblog.appspot.com/post/google-app-engine-sdk-v1-2-2"</id>
	   <updated>2009-05-13T12:01:57+00:00</updated>
	   <summary type='html'><![CDATA[ <blockquote>
<ul>
<li>新的quota API将当前请求转向CPU使用</li>
<li>Urlfetch开始支持自定义deadlines</li>
<li>SDK中的Urlfetch允许设置在header中设置Encoding来匹配appengine</li>
<li>urllib现在增添了对https支持</li>
<li>数据库的indexes现在可以通过设置在属性构造函数中设置indexed=False来禁用</li>
<li>数据库api支持Key-only查询，或者使用SELECT __key__ or db.Query(Model, keys_only=True)</li>
<li>修复IN关键字的筛选和排序问题</li>
<li>修复开发服务器控制台(/_ah/admin/datastore)当某属性是NoneType时不能显示的问题</li>
<li>Bulk Loader改进：新的appcfg下载数据命令，更好的后台支持和debug长请求输出</li>
<li>appcfg中新增参数--vhost会为特定的host选择记录</li>
<li>可以通过import导入Python的_ast模块</li>
<li>修复Images API颜色参数问题</li>
</ul>
</blockquote>
<p>另外最近还加入了<a href="http://www.web2py.com">web2py</a>的支持，不过依然是不支持管理后台数据库等等，总之和django一样反正是你什么用的顺手就不支持什么。</p>]]></summary>
	   <content type='html'><![CDATA[ <blockquote>
<ul>
<li>新的quota API将当前请求转向CPU使用</li>
<li>Urlfetch开始支持自定义deadlines</li>
<li>SDK中的Urlfetch允许设置在header中设置Encoding来匹配appengine</li>
<li>urllib现在增添了对https支持</li>
<li>数据库的indexes现在可以通过设置在属性构造函数中设置indexed=False来禁用</li>
<li>数据库api支持Key-only查询，或者使用SELECT __key__ or db.Query(Model, keys_only=True)</li>
<li>修复IN关键字的筛选和排序问题</li>
<li>修复开发服务器控制台(/_ah/admin/datastore)当某属性是NoneType时不能显示的问题</li>
<li>Bulk Loader改进：新的appcfg下载数据命令，更好的后台支持和debug长请求输出</li>
<li>appcfg中新增参数--vhost会为特定的host选择记录</li>
<li>可以通过import导入Python的_ast模块</li>
<li>修复Images API颜色参数问题</li>
</ul>
</blockquote>
<p>另外最近还加入了<a href="http://www.web2py.com">web2py</a>的支持，不过依然是不支持管理后台数据库等等，总之和django一样反正是你什么用的顺手就不支持什么。</p>]]></content>
	 </entry>
	
	 <entry>
	   <title>wow-dkp-engine笔记:数据库中文编码问题及其他</title>
		<author>
			<name>lucidanui</name>
		</author>
		
			<category term='Python and Django'/>
		
			<category term='Linux'/>
		
			<category term='Fiction'/>
		
			<category term='Music and Movies'/>
		
			<category term='World of Warcraft'/>
		
			<category term='Google App Engine'/>
		
			<category term='Others'/>
		
			<category term='Site Log'/>
		
			<category term='Applications'/>
		
			<category term='心情'/>
		
	   <link href="/post/wow-dkp-engine-chinese-encoding"/>
	   <id>http://jieblog.appspot.com/post/wow-dkp-engine-chinese-encoding"</id>
	   <updated>2009-04-30T03:19:01+00:00</updated>
	   <summary type='html'><![CDATA[ <p>先前我需要处理的问题是生成一个类似<a href="http://zhun.appspot.com/pub/overview/score/">这个连接</a>的表格，由于这个表格的各项数据是直接从数据库提取数据计算出来然后在提交给<a href="http://code.google.com/intl/en/apis/visualization/">Google Visualization API</a>,最后返还结果。这样做最大的弊端是如果数据比较多的情况下会引发一个datastore timeout: operation took too long的异常，于是我重写了这个程序把计算的结果变成一个数据库，这样做就避免了引发这个异常的问题。</p>
<p><b>使用正则表达式匹配中英文字符</b></p>
<p>这个问题也困扰了我很长时间。我需要从类似:</p>
<pre class="prettyprint">

MiDKPData = {};
MiDKPData["dkp"] = {};


MiDKPData["dkp"][1] = {};
MiDKPData["dkp"][1]["name"] = "开心圈圈DKP";
MiDKPData["dkp"][1]["members"] = {};
MiDKPData["dkp"][1]["members"]["Donesee"] = 5;
MiDKPData["dkp"][1]["members"]["Latrogue"] = 0;
MiDKPData["dkp"][1]["members"]["Longwalker"] = 15;
MiDKPData["dkp"][1]["members"]["Lovelace"] = 56;
MiDKPData["dkp"][1]["members"]["Lucid"] = 232;
MiDKPData["dkp"][1]["members"]["Mitnick"] = 0;
MiDKPData["dkp"][1]["members"]["Neverlose"] = 33;
MiDKPData["dkp"][1]["members"]["Ooxxoo"] = 10;
MiDKPData["dkp"][1]["members"]["Shadowghost"] = 3;
MiDKPData["dkp"][1]["members"]["Steafinie"] = 14;
MiDKPData["dkp"][1]["members"]["一脸猥琐"] = 5;
MiDKPData["dkp"][1]["members"]["三聚氰胺"] = 31;
MiDKPData["dkp"][1]["members"]["人生真谛"] = 20;
MiDKPData["dkp"][1]["members"]["伟大的乌瑟尔"] = 5;
MiDKPData["dkp"][1]["members"]["光之留香"] = 73;
</pre>
<p>这样的数据中提取字符，这应该是Lua中数据类型。开始我考虑用处理字符串的方法提取，但经过测试效率很低而且容易出错。然后我尝试使用正则表达式匹配这些数据，使用正则表达式匹配的话需要对里面可能出现的中文进行匹配，该文件正常情况下应该是采用UTF-8编码。</p>
<pre class="prettyprint">
def retext(data):
    data = data.split('\n')
    dict0 = {}
    for li in data:
        m = re.match(r"(\[\")(\w+|[\x80-\xff]+|[\u3400-\u9FFF]+)(\"\]\s\=\s)(\d+)(\;)",li)
        try:
            dict0[m.group(3)]=m.group(5)
        except AttributeError:
            pass
    return dict0
</pre>
<p>retext()中的[\x80-\xff]+可以匹配任意长度的UTF-8编码的中文，而[\u3400-\u9FFF]+可以匹配任意长度的unicode编码中文。我在函数中加入了对unicode编码进行匹配的原因是我需要处理的这个字符串是通过request.POST.get()发送到服务器的。而这个request.POST.get()正是使用unicode编码。如果在数据库中查询这些数据则还需要使用decode('utf-8')将字符转化成UTF-8编码。</p>
<p><b>数据对象key_name属性</b><p>
<p>设置数据库字段的<a href="http://code.google.com/intl/zh-CN/appengine/docs/python/datastore/keysandentitygroups.html#Kinds_Names_and_IDs" title="key_name">key_name</a>属性:如果某些字符串和数据库的对象是一一对应的，而这些字符串刚好又符合设置成key_name的条件，那么把这些字符串设置成key_name属性会<a href="http://code.google.com/intl/en/appengine/docs/python/datastore/modelclass.html#Model_get_by_key_name">方便许多</a>。</p>]]></summary>
	   <content type='html'><![CDATA[ <p>先前我需要处理的问题是生成一个类似<a href="http://zhun.appspot.com/pub/overview/score/">这个连接</a>的表格，由于这个表格的各项数据是直接从数据库提取数据计算出来然后在提交给<a href="http://code.google.com/intl/en/apis/visualization/">Google Visualization API</a>,最后返还结果。这样做最大的弊端是如果数据比较多的情况下会引发一个datastore timeout: operation took too long的异常，于是我重写了这个程序把计算的结果变成一个数据库，这样做就避免了引发这个异常的问题。</p>
<p><b>使用正则表达式匹配中英文字符</b></p>
<p>这个问题也困扰了我很长时间。我需要从类似:</p>
<pre class="prettyprint">

MiDKPData = {};
MiDKPData["dkp"] = {};


MiDKPData["dkp"][1] = {};
MiDKPData["dkp"][1]["name"] = "开心圈圈DKP";
MiDKPData["dkp"][1]["members"] = {};
MiDKPData["dkp"][1]["members"]["Donesee"] = 5;
MiDKPData["dkp"][1]["members"]["Latrogue"] = 0;
MiDKPData["dkp"][1]["members"]["Longwalker"] = 15;
MiDKPData["dkp"][1]["members"]["Lovelace"] = 56;
MiDKPData["dkp"][1]["members"]["Lucid"] = 232;
MiDKPData["dkp"][1]["members"]["Mitnick"] = 0;
MiDKPData["dkp"][1]["members"]["Neverlose"] = 33;
MiDKPData["dkp"][1]["members"]["Ooxxoo"] = 10;
MiDKPData["dkp"][1]["members"]["Shadowghost"] = 3;
MiDKPData["dkp"][1]["members"]["Steafinie"] = 14;
MiDKPData["dkp"][1]["members"]["一脸猥琐"] = 5;
MiDKPData["dkp"][1]["members"]["三聚氰胺"] = 31;
MiDKPData["dkp"][1]["members"]["人生真谛"] = 20;
MiDKPData["dkp"][1]["members"]["伟大的乌瑟尔"] = 5;
MiDKPData["dkp"][1]["members"]["光之留香"] = 73;
</pre>
<p>这样的数据中提取字符，这应该是Lua中数据类型。开始我考虑用处理字符串的方法提取，但经过测试效率很低而且容易出错。然后我尝试使用正则表达式匹配这些数据，使用正则表达式匹配的话需要对里面可能出现的中文进行匹配，该文件正常情况下应该是采用UTF-8编码。</p>
<pre class="prettyprint">
def retext(data):
    data = data.split('\n')
    dict0 = {}
    for li in data:
        m = re.match(r"(\[\")(\w+|[\x80-\xff]+|[\u3400-\u9FFF]+)(\"\]\s\=\s)(\d+)(\;)",li)
        try:
            dict0[m.group(3)]=m.group(5)
        except AttributeError:
            pass
    return dict0
</pre>
<p>retext()中的[\x80-\xff]+可以匹配任意长度的UTF-8编码的中文，而[\u3400-\u9FFF]+可以匹配任意长度的unicode编码中文。我在函数中加入了对unicode编码进行匹配的原因是我需要处理的这个字符串是通过request.POST.get()发送到服务器的。而这个request.POST.get()正是使用unicode编码。如果在数据库中查询这些数据则还需要使用decode('utf-8')将字符转化成UTF-8编码。</p>
<p><b>数据对象key_name属性</b><p>
<p>设置数据库字段的<a href="http://code.google.com/intl/zh-CN/appengine/docs/python/datastore/keysandentitygroups.html#Kinds_Names_and_IDs" title="key_name">key_name</a>属性:如果某些字符串和数据库的对象是一一对应的，而这些字符串刚好又符合设置成key_name的条件，那么把这些字符串设置成key_name属性会<a href="http://code.google.com/intl/en/appengine/docs/python/datastore/modelclass.html#Model_get_by_key_name">方便许多</a>。</p>]]></content>
	 </entry>
	
   </feed>