<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>ZaySky</title>
	
	
	<link>http://www.zaykl.tk</link>
	<description>A guy using Linux in Windows</description>
	<pubDate>Fri, 13 Aug 2010 14:17:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/zaykl" /><feedburner:info uri="zaykl" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>华中科技大学2010届本科毕业典礼上根叔的讲话</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/RVDTi2k73ts/</link>
		<comments>http://www.zaykl.tk/?p=628#comments</comments>
		<pubDate>Sat, 26 Jun 2010 08:31:29 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=628</guid>
		<description><![CDATA[亲爱的2010届毕业生同学们：

你们好！

首先，为你们完成学业并即将踏上新的征途送上最美好的祝愿。

同学...]]></description>
			<content:encoded><![CDATA[<p><embed src="http://player.youku.com/player.php/sid/XMTg0NDk2MzM2/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed><br />
亲爱的2010届毕业生同学们：</p>
<p>你们好！</p>
<p>首先，为你们完成学业并即将踏上新的征途送上最美好的祝愿。</p>
<p>同学们，在华中科技大学的这几年里，你们一定有很多珍贵的记忆！</p>
<p>你们真幸运，国家的盛世如此集中相伴在你们大学的记忆中。08奥运留下的记忆，不仅是金牌数的第一，不仅是开幕式的华丽，更是中华文化的魅力和民族向心力的显示；六十年大庆留下的记忆，不仅是领袖的挥手，不仅是自主研制的先进武器，不仅是女兵的微笑，不仅是队伍的威武整齐，更是改革开放的历史和旗帜的威力；世博会留下的记忆，不仅是世博之夜水火相容的神奇，不仅是中国馆的宏伟，不仅是异国场馆的浪漫，更是中华的崛起，世界的惊异；你们一定记得某国总统的傲慢与无礼，你们也让他记忆了你们的不屑与蔑视；同学们，伴随着你们大学记忆的一定还有什锦八宝饭；还有一个G2的新词，它将永远成为世界新的记忆。</p>
<p>近几年，国家频发的灾难一定给你们留下深刻的记忆。汶川的颤抖，没能抖落中国人民的坚强与刚毅；玉树的摇动，没能撼动汉藏人民的齐心与合力。留给你们记忆的不仅是大悲的哭泣，更是大爱的洗礼；西南的干旱或许使你们一样感受渴与饥，留给你们记忆的，不仅是大地的喘息，更是自然需要和谐、发展需要科学的道理。</p>
<p>在华中大的这几年，你们会留下一生中特殊的记忆。你一定记得刚进大学的那几分稚气，父母亲人送你报到时的情景历历；你或许记得“考前突击而带着忐忑不安的心情走向考场时的悲壮”， 你也会记得取得好成绩时的欣喜；你或许记得这所并无悠久历史的学校不断追求卓越的故事；你或许记得裘法祖院士所代表的同济传奇以及大师离去时同济校园中弥漫的悲痛与凝重气息；你或许记得人文素质讲堂的拥挤，也记得在社团中的奔放与随意；你一定记得骑车登上“绝望坡”的喘息与快意；你也许记得青年园中令你陶醉的发香和桂香，眼睛湖畔令你流连忘返的圣洁或妖娆；你或许“记得向喜欢的女孩表白被拒时内心的煎熬”，也一定记得那初吻时的如醉如痴。可是，你是否还记得强磁场和光电国家实验室的建立？是否记得创新研究院和启明学院的耸起？是否记得为你们领航的党旗？是否记得人文讲坛上精神矍铄的先生叔子？是否记得倾听你们诉说的在线的“张妈妈”？是否记得告诉你们捡起路上树枝的刘玉老师？是否记得应立新老师为你们修改过的简历，但愿它能成为你们进入职场的最初记忆。同学们，华中大校园里，太多的人和事需要你们记忆。</p>
<p>请相信我，日后你们或许会改变今天的某些记忆。瑜园的梧桐，年年飞絮成“雨”，今天或许让你觉得如淫雨霏霏，使你心情烦躁、郁闷。日后，你会觉得如果没有梧桐之“雨”，瑜园将缺少滋润，若没有梧桐的遮盖，华中大似乎缺少前辈的庇荫，更少了历史的沉积。你们一定还记得，学校的排名下降使你们生气，未来或许你会觉得“不为排名所累”更体现华中大的自信与定力。</p>
<p>我知道，你们还有一些特别的记忆。你们一定记住了“俯卧撑”、“躲猫猫”、“喝开水”，从热闹和愚蠢中，你们记忆了正义；你们记住了“打酱油”和“妈妈喊你回家吃饭”，从麻木和好笑中，你们记忆了责任和良知；你们一定记住了姐的狂放，哥的犀利。未来有一天，或许当年的记忆会让你们问自己，曾经是姐的娱乐，还是哥的寂寞？</p>
<p>亲爱的同学们，你们在华中科技大学的几年给我留下了永恒的记忆。我记得你们为烈士寻亲千里，记得你们在公德长征路上的经历；我记得你们在各种社团的骄人成绩；我记得你们时而感到“无语”时而表现的焦虑，记得你们为中国的“常青藤”学校中无华中大一席而灰心丧气；我记得某些同学为“学位门”、为光谷同济医院的选址而愤激；我记得你们刚刚对我的呼喊：“根叔，你为我们做成了什么？”——是啊，我也得时时拷问自己的良心，到底为你们做了什么？还能为华中大学子做什么？</p>
<p>我记得，你们都是小青年。我记得“吉丫头”，那么平凡，却格外美丽；我记得你们中间的胡政在国际权威期刊上发表多篇高水平论文，创造了本科生参与研究的奇迹；我记得“校歌男”，记得“选修课王子”，同样是可爱的孩子。我记得沉迷于网络游戏甚至频临退学的学生与我聊天时目光中透出的茫然与无助，他们还是华中大的孩子，他们更成为我心中抹不去的记忆。</p>
<p>我记得你们的自行车和热水瓶常常被偷，记得你们为抢占座位而付出的艰辛；记得你们在寒冷的冬天手脚冰凉，记得你们在炎热的夏季彻夜难眠；记得食堂常常让你们生气，我当然更记得自己说过的话：“我们绝不赚学生一分钱”，也记得你们对此言并不满意；但愿华中大尤其要有关于校园丑陋的记忆。只要我们共同记忆那些丑陋，总有一天，我们能将丑陋转化成美丽。</p>
<p>同学们，你们中的大多数人，即将背上你们的行李，甚至远离。请记住，最好不要再让你们的父母为你们送行。“面对岁月的侵蚀，你们的烦恼可能会越来越多，考虑的问题也可能会越来越现实，角色的转换可能会让你们感觉到有些措手不及。”也许你会选择“胶囊公寓”，或者不得不蜗居，成为蚁族之一员。没关系，成功更容易光顾磨难和艰辛，正如只有经过泥泞的道路才会留下脚印。请记住，未来你们大概不再有批评上级的随意，同事之间大概也不会有如同学之间简单的关系；请记住，别太多地抱怨，成功永远不属于整天抱怨的人，抱怨也无济于事；请记住，别沉迷于世界的虚拟，还得回到社会的现实；请记住，“敢于竞争，善于转化”，这是华中大的精神风貌，也许是你们未来成功的真谛；请记住，华中大，你的母校。“什么是母校？就是那个你一天骂他八遍却不许别人骂的地方”。多么朴实精辟！</p>
<p>亲爱的同学们，也许你们难以有那么多的记忆。如果问你们关于一个字的记忆，那一定是“被”。我知道，你们不喜欢“被就业”、“被坚强”，那就挺直你们的脊梁，挺起你们的胸膛，自己去就业，坚强而勇敢地到社会中去闯荡。</p>
<p>亲爱的同学们，也许你们难以有那么多的记忆，也许你们很快就会忘记根叔的唠叨与琐细。尽管你们不喜欢“被”，根叔还是想强加给你们一个“被”：你们的未来“被”华中大记忆！</p>

<p><a href="http://feedads.g.doubleclick.net/~a/bZ2Rxbi2sZlTrDO-jDK3WoJFHdg/0/da"><img src="http://feedads.g.doubleclick.net/~a/bZ2Rxbi2sZlTrDO-jDK3WoJFHdg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bZ2Rxbi2sZlTrDO-jDK3WoJFHdg/1/da"><img src="http://feedads.g.doubleclick.net/~a/bZ2Rxbi2sZlTrDO-jDK3WoJFHdg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/RVDTi2k73ts" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=628</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=628</feedburner:origLink></item>
		<item>
		<title>通过动态导入实现工厂模式</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/UuWxdwLtsHU/</link>
		<comments>http://www.zaykl.tk/?p=624#comments</comments>
		<pubDate>Sun, 13 Jun 2010 01:56:29 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[工厂模式]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=624</guid>
		<description><![CDATA[忘记曾经在哪里看到过这样的一句话,文件的命名是相当的重要的,在开发的过程,程序员应该充分利用这一强大的功...]]></description>
			<content:encoded><![CDATA[<p>忘记曾经在哪里看到过这样的一句话,文件的命名是相当的重要的,在开发的过程,程序员应该充分利用这一强大的功能.大概意思是这样吧,由于最近大脑萎缩得厉害很多东西记不住.</p>
<p>现在发一份关于使用文件名而实现工厂模式的文章,希望大家都能过来踩踩.实现语言是使用python</p>
<p>文件如下:</p>
<p>&#8212;-main.py</p>
<p>&#8212;-infactory</p>
<p>&#8212;-Bfactory</p>
<p>&#8212;-Afactory</p>
<p>功能: 通过main.py生成Afactory和Bfactory实例,如果看过head first 设计模式的话,可以知道传统的工厂模式实现说白了就是在另外一个内使用if,else来控制传入的参数在生成实例.现在我使用python的动态导入功能来实现这一功能,核心的一个语句就是 __import__(param, globals(), locals(), [param], -1).</p>
<p>接下来我先post出我的main.py是怎么写的:</p>
<p>def instanceFactory(param):</p>
<p>try:</p>
<p>temp = __import__(param, globals(), locals(), [param], -1)</p>
<p>instance=temp.factory()</p>
<p>instance.tostring()</p>
<p>except:</p>
<p>print param+&#8221; not found!&#8221;</p>
<p>def main():</p>
<p>instanceFactory(&#8217;Afactory&#8217;)</p>
<p>instanceFactory(&#8217;Bfactory&#8217;)</p>
<p>infactory.py:</p>
<p>class infactory:</p>
<p>def create(self):</p>
<p>pass</p>
<p>def tostring(self):</p>
<p>pass</p>
<p>Afactory.py:</p>
<p>from infactory import infactory</p>
<p>class factory(infactory):</p>
<p>def create(self):</p>
<p>print &#8216;A factory!&#8217;</p>
<p>def tostring(self):</p>
<p>print &#8216;A factory!&#8217;</p>
<p>Bfactory.py:</p>
<p>from infactory import infactory</p>
<p>class factory(infactory):</p>
<p>def create(self):</p>
<p>print &#8216;B factory!&#8217;</p>
<p>def tostring(self):</p>
<p>print &#8216;B factory!&#8217;</p>
<p>但是这样有个瑕疵就是Bfactory.py和Afactory.py里面的类名是相同的,因为 temp = __import__(param, globals(), locals(), [param], -1)这条语句的作用只是import了Bfactory.py和Afactory.py并没有进行实例,如果是使用Java的话可以使用class.forname(),所以只好折中将AB的类名都命名为factory,然后加入instance=temp.factory()进行实例.懒得折腾wp的排版有兴趣的朋友可以download完整的源代码,如下:</p>
<p><a href="https://zaysky.googlecode.com/svn/trunk/design/infactory.rar">https://zaysky.googlecode.com/svn/trunk/design/infactory.rar</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/MxxSiNW3J0ncpOXhYDOgFB6CMXU/0/da"><img src="http://feedads.g.doubleclick.net/~a/MxxSiNW3J0ncpOXhYDOgFB6CMXU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MxxSiNW3J0ncpOXhYDOgFB6CMXU/1/da"><img src="http://feedads.g.doubleclick.net/~a/MxxSiNW3J0ncpOXhYDOgFB6CMXU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/UuWxdwLtsHU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=624</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=624</feedburner:origLink></item>
		<item>
		<title>分享下Don’t Repeat Yourself的想法</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/M-anJKC3T_8/</link>
		<comments>http://www.zaykl.tk/?p=618#comments</comments>
		<pubDate>Sun, 13 Jun 2010 01:19:05 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=618</guid>
		<description><![CDATA[写毕业设计遇到了小瓶颈,跑来写下俺的小博客,

那天看到tim大牛的博客http://timyang.net/programming/pr...]]></description>
			<content:encoded><![CDATA[<p>写毕业设计遇到了小瓶颈,跑来写下俺的小博客,</p>
<p>那天看到tim大牛的博客http://timyang.net/programming/pragmatic-programmer/里面写了关于DRY(Don’t Repeat Yourself)于是乎看到了以下的题目,最近在公司写个小程序刚好遇到这样的问题太多的if~endif:</p>
<p>if (state == TEXAS) {</p>
<p>rate = TX_RATE;</p>
<p>amt = base * TX_RATE;</p>
<p>calc = 2 * basis(amt) + extra(amt) * 1.05;</p>
<p>} else if ((state == OHIO || (state == MAINE)) {</p>
<p>rate = ((state == OHIO) ? OH_RATE : ME_RATE);</p>
<p>amt = base * rate;</p>
<p>calc = 2 * basis(amt) + extra(amt) * 1.05;</p>
<p>if (state == OHIO)</p>
<p>points = 2;</p>
<p>} else {</p>
<p>rate = 1;</p>
<p>amt = base;</p>
<p>calc = 2 * basis(amt) + extra(amt) * 1.05;</p>
<p>}</p>
<p>然后自己就拿着这道题目去考小bluef,并且自己也给出了自己的想法</p>
<p>dict={&#8217;texas&#8217;:fun,OHIO:fun1,MAINE:fun,default:fun}</p>
<p>def fun(parm1=1):</p>
<p>rate = parm1;</p>
<p>amt = base * parm1;</p>
<p>calc = 2 * basis(amt) + extra(amt) * 1.05;</p>
<p>def fun1(parm):</p>
<p>fun(parm)</p>
<p>points = 2;</p>
<p>def main(key,parm):</p>
<p>cal=dict.get(key)</p>
<p>cal(parm)</p>
<p>结束语:当然这样实现的机制完全是倚赖着python的强大面向对象,如果是rpg这类过程语言实在想不到好的办法,那天弄if我就烦了,所以在写python开发的时候自己是极度痛恨使用if语句的,原因很简单,看起来不舒服很乱&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/W8HMI3D2LAFFNVEmx7D5F1MiezI/0/da"><img src="http://feedads.g.doubleclick.net/~a/W8HMI3D2LAFFNVEmx7D5F1MiezI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/W8HMI3D2LAFFNVEmx7D5F1MiezI/1/da"><img src="http://feedads.g.doubleclick.net/~a/W8HMI3D2LAFFNVEmx7D5F1MiezI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/M-anJKC3T_8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=618</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=618</feedburner:origLink></item>
		<item>
		<title>Google密码被盗</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/GncRLe6atzs/</link>
		<comments>http://www.zaykl.tk/?p=609#comments</comments>
		<pubDate>Wed, 02 Jun 2010 12:21:24 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=609</guid>
		<description><![CDATA[我顶啊我顶啊,居然Google的密码会被盗...这样的事情居然发生了,这个该引起我的警惕了]]></description>
			<content:encoded><![CDATA[<p>我顶啊我顶啊,居然Google的密码会被盗&#8230;这样的事情居然发生了,这个该引起我的警惕了</p>

<p><a href="http://feedads.g.doubleclick.net/~a/QsFpynbCMWBcK8h6XHJNsd4q67Q/0/da"><img src="http://feedads.g.doubleclick.net/~a/QsFpynbCMWBcK8h6XHJNsd4q67Q/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QsFpynbCMWBcK8h6XHJNsd4q67Q/1/da"><img src="http://feedads.g.doubleclick.net/~a/QsFpynbCMWBcK8h6XHJNsd4q67Q/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/GncRLe6atzs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=609</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=609</feedburner:origLink></item>
		<item>
		<title>今天折腾了下hibernate</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/TwdAUuMqxk0/</link>
		<comments>http://www.zaykl.tk/?p=603#comments</comments>
		<pubDate>Sat, 29 May 2010 15:12:40 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<category><![CDATA[杂记]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=603</guid>
		<description><![CDATA[拖了很久的毕业设计进行核心部分的coding,今天总算把hibernate的一些细节的东西都一个个的测试了一番,下一步...]]></description>
			<content:encoded><![CDATA[<p>拖了很久的毕业设计进行核心部分的coding,今天总算把hibernate的一些细节的东西都一个个的测试了一番,下一步完成系统的查询功能.<br />
本来这次的毕业设计自己是打算用python加GAE来完成的,但是考虑到老是用这样的东西,老师可能问不了自己什么问题,并且当初是为了应聘的时候能回答出些东东.谁知道现在去的这家H公司却完全用不上以前学的语言和系统,从而导致现在培训期实习期面临着很大的挑战.<br />
但是不管怎么说,毕业设计还是得进行的,加上啃了一个月的Java和设计类的书籍,这个小系统基本出了个小成果.但是由于之前打算使用hibernate的时候发现配置起来很繁琐,老实说真的是很繁琐,可能自己还是个新手.于是乎今天好好的看了下现有的例子和文档(中文文档翻译得简直是一坨垃圾,不建议阅读,还是英文的准确点),总算把one2many,many2many这些映射给调试运行成功.<br />
对于hibernate的一点不满就是需要使用xml进行sqlserver的映射,谁让自己写py写太多了,django|gae这些都不需要自己在配置上面花很多时间.不过有点很庆幸的是自己在刚接触orm的时候是使用py还有些编程思想在这段时间转Java的时候却有了不少的感悟.<br />
在这家公司都不知道能否在将来的日子使用上Java,毕竟Java比rpg还是能够更好的适合自己将来的发展.至于python,可惜自己找不到使用这门语言的公司愿意收留我,不过这门语言就把它当作自己的业余工具呗,等完成毕业设计后俺还是打算继续写些开源source&#8230;<br />
ps:祝福自己在实习期能够尽快掌握3门全新的语言和那个从未接触过并且令人崩溃的系统&#8230;.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/T15IE6w9DJiCO5Aehd5Pxow9h18/0/da"><img src="http://feedads.g.doubleclick.net/~a/T15IE6w9DJiCO5Aehd5Pxow9h18/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T15IE6w9DJiCO5Aehd5Pxow9h18/1/da"><img src="http://feedads.g.doubleclick.net/~a/T15IE6w9DJiCO5Aehd5Pxow9h18/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/TwdAUuMqxk0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=603</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=603</feedburner:origLink></item>
		<item>
		<title>终于稳定下来了</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/AYIdhAbWsoE/</link>
		<comments>http://www.zaykl.tk/?p=598#comments</comments>
		<pubDate>Mon, 17 May 2010 09:16:21 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=598</guid>
		<description><![CDATA[长话短说,今天终于用上小区宽带了,并且星期五将于公司签三方,剩下的就是毕业设计等麻烦事了...]]></description>
			<content:encoded><![CDATA[<p>长话短说,今天终于用上小区宽带了,并且星期五将于公司签三方,剩下的就是毕业设计等麻烦事了&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/PSuWh44ifUK9Pocw6RZdi9o1mV0/0/da"><img src="http://feedads.g.doubleclick.net/~a/PSuWh44ifUK9Pocw6RZdi9o1mV0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PSuWh44ifUK9Pocw6RZdi9o1mV0/1/da"><img src="http://feedads.g.doubleclick.net/~a/PSuWh44ifUK9Pocw6RZdi9o1mV0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/AYIdhAbWsoE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=598</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=598</feedburner:origLink></item>
		<item>
		<title>oh no pygooglevoice被人抢先一步开发出更完整的了</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/v4OsA-2z-ro/</link>
		<comments>http://www.zaykl.tk/?p=592#comments</comments>
		<pubDate>Sat, 01 May 2010 07:49:36 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<category><![CDATA[pyGooglevoice]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=592</guid>
		<description><![CDATA[最近的一个多月都在忙应聘的事,在广州上网又不方便,谁知道今天看reader,无意中发现了有另外一个外国友人同样...]]></description>
			<content:encoded><![CDATA[<p>最近的一个多月都在忙应聘的事,在广州上网又不方便,谁知道今天看reader,无意中发现了有另外一个外国友人同样在开发Googlevoice并且支持Googlevoice的其他功能,而本人当初开发仅仅是sms的这一块.<br />
有兴趣的朋友可以去参观下:<br />
http://code.google.com/p/pygooglevoice/</p>

<p><a href="http://feedads.g.doubleclick.net/~a/13UtdMqor9baZzr7kuWHjWRomvE/0/da"><img src="http://feedads.g.doubleclick.net/~a/13UtdMqor9baZzr7kuWHjWRomvE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/13UtdMqor9baZzr7kuWHjWRomvE/1/da"><img src="http://feedads.g.doubleclick.net/~a/13UtdMqor9baZzr7kuWHjWRomvE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/v4OsA-2z-ro" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=592</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=592</feedburner:origLink></item>
		<item>
		<title>Oracle学习小计一</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/STC35-YP1E8/</link>
		<comments>http://www.zaykl.tk/?p=585#comments</comments>
		<pubDate>Tue, 23 Mar 2010 06:44:54 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[介绍]]></category>

		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=585</guid>
		<description><![CDATA[前几天在医院实习时遇到了一个数据库的表同步的问题,由于慧通需要调用les系统的检查结果,由于厂家不允许我们...]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">前几天在医院实习时遇到了一个数据库的表同步的问题<span lang="EN-US">,</span>由于慧通需要调用<span lang="EN-US">les</span>系统的检查结果<span lang="EN-US">,</span>由于厂家不允许我们在他们的数据库上面建触发器<span lang="EN-US">,</span>但是给了我们数据库的用户和密码并且使用到的相关表<span lang="EN-US">,</span>因此在和凯斌师兄讨论之下有几个解决方法<span lang="EN-US">:</span></p>
<p class="MsoNormal"><span lang="EN-US">1:</span><span>触发器<span lang="EN-US">,</span>这个无疑是最简单高效的<span lang="EN-US">,</span>可惜实际上不允许<span lang="EN-US">.</span></span></p>
<p class="MsoNormal"><span lang="EN-US">2:</span><span>建立<span lang="EN-US">dblink</span>进行同步<span lang="EN-US">,</span>效果不好</span></p>
<p class="MsoNormal"><span lang="EN-US">3:</span><span>写个中间程序解析在目标表的<span lang="EN-US">sql</span>操作<span lang="EN-US">,</span>然后再写入我们自己的数据库上面<span lang="EN-US">(</span>我是打算用<span lang="EN-US">python</span>写一个脚本的<span lang="EN-US">).</span></span></p>
<p class="MsoNormal"><span>如果是<span lang="EN-US">mysql</span>的话他的每一步操作都会记录在<span lang="EN-US">log</span>文件上面<span lang="EN-US">,</span>而<span lang="EN-US">oracle</span>也是如此<span lang="EN-US">,</span>但是解析起来<span lang="EN-US">oracle</span>有点困难<span lang="EN-US">,</span>于是在无意之中发现了一位阿里巴巴的工程师写了个<span lang="EN-US">datacopy</span>的工具进行数据同步<span lang="EN-US">,</span>不过他采用的是</span><span><span lang="EN-US">OCI</span></span><span><span>接口的资料</span>写了一个<span lang="EN-US"><a href="http://www.anysql.net/software/datacopy.zip"><span>DataCopy</span></a></span>程序</span><span lang="EN-US">,</span><span lang="EN-US"> <span>DataCopy</span></span><span><span>可以在两个<span lang="EN-US">Oracle</span>库之间以比较快的速度拷贝数据</span><span lang="EN-US">.</span></span></p>
<p class="MsoNormal"><span><span>以下是我根据使用文档写的使用教程<span lang="EN-US">:</span></span></span></p>
<p class="MsoNormal"><span><span>假设<span lang="EN-US">,</span>目前我们的机器<span lang="EN-US">A</span>上面有一张表<span lang="EN-US">Ta,</span>机器<span lang="EN-US">B</span>的<span lang="EN-US">Tb</span>需要使用<span lang="EN-US">Ta</span>上面的数据<span lang="EN-US">,</span>于是乎我们就得对他们这两张表进行同步操作<span lang="EN-US">:</span></span></span></p>
<p class="MsoNormal"><span><span>使用如下<span lang="EN-US">:</span></span></span><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span><span lang="EN-US">datacopy.exe user1=sys/sys@A user2=sys/sys@B table1=Ta table2=Tb sync=delins<span> </span>unique=id</span></span><span></span></p>
<p class="MsoNormal"><span><span>现在进行命令分解</span></span><span><span lang="EN-US">,user1</span></span><span><span>填入机器</span></span><span><span lang="EN-US">A</span></span><span><span>的地址</span></span><span><span lang="EN-US">,user2</span></span><span><span>填入机器</span></span><span><span lang="EN-US">B</span></span><span><span>的地址</span></span><span><span lang="EN-US">,table1</span></span><span><span>为源</span></span><span><span lang="EN-US">Ta,table2</span></span><span><span>为目标表</span></span><span><span lang="EN-US">Tb,sync</span></span><span><span>代表同步的方式</span></span><span><span lang="EN-US">,unique</span></span><span><span>为表</span></span><span><span lang="EN-US">Ta</span></span><span><span>和</span></span><span><span lang="EN-US">Tb</span></span><span><span>使用的主键</span></span><span><span lang="EN-US">.</span></span><span><span>因为我的两张表都是使用</span></span><span><span lang="EN-US">id</span></span><span><span>那一列当作主键</span></span><span><span lang="EN-US">,</span></span><span><span>因此</span></span><span><span lang="EN-US">unique=id.</span></span></p>
<p class="MsoNormal"><span><span>适用情况</span></span><span><span lang="EN-US">:</span></span></p>
<p class="MsoNormal"><span><span>该工具只是适用于那些对表</span></span><span><span lang="EN-US">Ta</span></span><span><span>进行</span></span><span><span lang="EN-US">update</span></span><span><span>和</span></span><span><span lang="EN-US">insert的</span></span><span><span>操作</span></span><span><span lang="EN-US">,</span></span><span><span>如果进行</span></span><span><span lang="EN-US">delete</span></span><span><span>操作的话</span></span><span><span lang="EN-US">,datacopy</span></span><span><span>是无法在</span></span><span><span lang="EN-US">Tb</span></span><span><span>表进行</span></span><span><span lang="EN-US">delete</span></span><span><span>操作的</span></span><span><span lang="EN-US">,</span></span><span><span>并且不能对主键</span></span><span><span lang="EN-US">id</span></span><span><span>进行修改</span></span><span><span lang="EN-US">,</span></span><span><span>如果主键</span></span><span><span lang="EN-US">id=’oracle’</span></span><span><span>修改为</span></span><span><span lang="EN-US">’mysql’</span></span><span><span>的话</span></span><span><span lang="EN-US">,</span></span><span><span>那么</span></span><span><span lang="EN-US">datacopy</span></span><span><span>只会在</span></span><span><span lang="EN-US">Tb</span></span><span><span>添加一个</span></span><span><span lang="EN-US">id=’mysql’</span></span><span><span>的数据而不会把</span></span><span><span lang="EN-US">id=’oracle’</span></span><span><span>删除的</span></span><span><span lang="EN-US">.</span></span><span><span>在医院每个病人都会拥有自己的</span></span><span><span lang="EN-US">cardid,</span></span><span><span>一般用此来当主键并且不会对主键修改</span></span><span><span lang="EN-US">.</span></span><span><span>因此使用</span></span><span><span lang="EN-US">datacopy</span></span><span><span>的话就能很好的使用于医院的</span></span><span><span lang="EN-US">les</span></span><span><span>数据库和</span></span><span><span lang="EN-US">his</span></span><span><span>数据库的同步要求了</span></span><span><span lang="EN-US">.</span></span></p>
<p class="MsoNormal"><span><span>当然我是一个技术人</span></span><span><span lang="EN-US">,</span></span><span><span>当然得要求多点</span></span><span><span lang="EN-US">,</span></span><span><span>如果遇上主键频繁被修改的情况</span></span><span><span lang="EN-US">,</span></span><span><span>又应该怎么做呢</span></span><span><span lang="EN-US">?</span></span><span><span>因此应该自己试着写个</span></span><span><span lang="EN-US">python</span></span><span><span>脚本来解决下真正的</span></span><span><span lang="EN-US">sync</span></span><span><span>要求</span></span><span><span lang="EN-US">.</span></span></p>
<p class="MsoNormal"><span><span lang="EN-US"> </span></span></p>
<p class="MsoNormal"><span><span>参考文献</span></span><span><span lang="EN-US">:</span></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="http://www.anysql.net/tools/datacopy-utility.html"><span>http://www.anysql.net/tools/datacopy-utility.html</span></a></span></p>
<p><span lang="EN-US"><a href="http://www.anysql.net/tools/datacopy-data-sync-mode.html"><span>http://www.anysql.net/tools/datacopy-data-sync-mode.html</span></a></span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/tE23IlSdQosnuLhLdKG8J-Q7VdQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/tE23IlSdQosnuLhLdKG8J-Q7VdQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tE23IlSdQosnuLhLdKG8J-Q7VdQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/tE23IlSdQosnuLhLdKG8J-Q7VdQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/STC35-YP1E8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=585</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=585</feedburner:origLink></item>
		<item>
		<title>公司实习小记</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/ot_4grX80zE/</link>
		<comments>http://www.zaykl.tk/?p=584#comments</comments>
		<pubDate>Mon, 22 Mar 2010 03:10:31 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=584</guid>
		<description><![CDATA[目前在一家不大不小的公司当实习生,初到广州很不习惯这边的空气和环境,宿舍住下来还没拉网线,这点比较痛苦,...]]></description>
			<content:encoded><![CDATA[<p>目前在一家不大不小的公司当实习生,初到广州很不习惯这边的空气和环境,宿舍住下来还没拉网线,这点比较痛苦,手机被自己破解权限导致进不了系统,现在还在维护当中.郁闷死了&#8230;<br />
目前两个想法,希望能尽快安定下来,手机能快点弄好.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/7_X681B2sssaO6xCJg5MeB5Fg0M/0/da"><img src="http://feedads.g.doubleclick.net/~a/7_X681B2sssaO6xCJg5MeB5Fg0M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7_X681B2sssaO6xCJg5MeB5Fg0M/1/da"><img src="http://feedads.g.doubleclick.net/~a/7_X681B2sssaO6xCJg5MeB5Fg0M/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/ot_4grX80zE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=584</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=584</feedburner:origLink></item>
		<item>
		<title>應騰訊的員工要求,上截圖</title>
		<link>http://feedproxy.google.com/~r/zaykl/~3/EuZgkZpxZR4/</link>
		<comments>http://www.zaykl.tk/?p=579#comments</comments>
		<pubDate>Sun, 21 Feb 2010 03:36:14 +0000</pubDate>
		<dc:creator>zay</dc:creator>
		
		<category><![CDATA[生活点滴]]></category>

		<category><![CDATA[QQ]]></category>

		<guid isPermaLink="false">http://www.zaykl.tk/?p=579</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<div><img src="http://zay.appspot.com/image/27201/" alt="" /></div>
<p><img src="http://zay.appspot.com/image/27202/" alt="" /></p>

<p><a href="http://feedads.g.doubleclick.net/~a/YhHv7ba4IvGdityr0HwTmMM-VLs/0/da"><img src="http://feedads.g.doubleclick.net/~a/YhHv7ba4IvGdityr0HwTmMM-VLs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YhHv7ba4IvGdityr0HwTmMM-VLs/1/da"><img src="http://feedads.g.doubleclick.net/~a/YhHv7ba4IvGdityr0HwTmMM-VLs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zaykl/~4/EuZgkZpxZR4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaykl.tk/?feed=rss2&amp;p=579</wfw:commentRss>
		<feedburner:origLink>http://www.zaykl.tk/?p=579</feedburner:origLink></item>
	</channel>
</rss>
