??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成人无限看,亚洲制服中文字幕第一区,亚洲成AV人片久久http://m.tkk7.com/guitarpoet/archive/2008/09/01/edoc_2.htmlguitarpoetguitarpoetMon, 01 Sep 2008 06:37:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/09/01/edoc_2.htmlhttp://m.tkk7.com/guitarpoet/comments/226079.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/09/01/edoc_2.html#Feedback0http://m.tkk7.com/guitarpoet/comments/commentRss/226079.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/226079.html
那么针对q几个类别该怎么区别对待呢?

1、对于经典的、手册类型的书:对于q种l常会用刎ͼ而且极有价值的书,要放到最Ҏ获得的地斏V通常每个人的q种书都不多。把它们理好(后面会说怎么理Q后Q做一个链接放到桌面上或者桌面上的文件夹里。——当Ӟ在Mac下还有更好的方式Q不q在Windows和Linux下,按上面的方式来做p够了

2、对于经常喜Ƣ看的、消遣的书:如果可能Q放到手机、MP3里面吧。那样你׃么时候都能看了。呵c?br />
3、对于教材、普通的书:分门别类的管理好。给你正在看的书Z链接攑ֈ桌面上。看完了怎么处理后面再说

4、对于难懂的和别人推荐的书:扔掉它吧。再好的书,不看也是垃圾一堆。不要担心你可能会有真正惌的时候,一般来_技术类书籍Q你现在不想读,你永q都不会惌的。而且Q如果是l典的话Q你惌的时候自然会扑־到?br />
好了。有了上面的对电子书区别对待的前提后Q我们来开始讨论如何在计算Z理电子书吧?br />
首先Q我要先说一说我认ؓ电子书管理中最重要的两个前提:
1、CPU的时钟周期不值钱Q你的时间值钱?br /> 2、硬盘的定w不值钱Q你的大脑容量值钱?br />
有了q两个前提,可以说说我在电子书理斚w的经验啦。我的经验大体如下:
1、不要徏立过多、过q文g夹:
一般来_除了该死的javaE序Q你的文件夹都不要徏?U以上。因为即使每个文件夹里面只有两个文g夹,你就会有32个文件夹。你的大脑容量是有限的,你不需要记住这些文件夹的,一般h也记不住?br /> 你终I会发现Qؓ了找C个文Ӟ你L在不同的文g夹中跌?br />
2、集中管理:
不要告诉我你的文档散布在多个分区QC:、D:、E:...Q的多个文g夹下。相信我Q那l对是一个噩梦。你可能会反x_我把所有的鸡蛋都装C一个篮子中Q会有风险。实际上Q你只有一个文档文件夹的话Q备份和同步是一仉常容易的事情?br />
3、要搜,不要找:
当你的文档越来越多的时候,你就会发现在文档文g多w扑ֈ你想要的文档是多么麻烦的一件事情了。现在的操作pȝ都有可以q行全文索的高性能搜烦引擎了。毕竟机器要比肉眼精,你的旉要比CPU的时钟周期更值钱

4、利用元数据
在这一点上QMac是做得最好的。它提供了Spotlight注释q个完美的东ѝ你可以以注释的方式来ؓ文档d搜烦的元数据。这也是我现在进行电子书理的精髓所在。Google Desktop好像没有q个功能?br />
ȝ一下,通过在电子书理的两个前提下Q灵zȝ使用链接、搜索的功能。是我管理电子书的手Dc?br />
我会在下一文章里Q说说我理电子书的方式?br />

guitarpoet 2008-09-01 14:37 发表评论
]]>
关于个h文档理 Q?电子?/title><link>http://m.tkk7.com/guitarpoet/archive/2008/08/31/ebook.html</link><dc:creator>guitarpoet</dc:creator><author>guitarpoet</author><pubDate>Sun, 31 Aug 2008 09:46:00 GMT</pubDate><guid>http://m.tkk7.com/guitarpoet/archive/2008/08/31/ebook.html</guid><wfw:comment>http://m.tkk7.com/guitarpoet/comments/225918.html</wfw:comment><comments>http://m.tkk7.com/guitarpoet/archive/2008/08/31/ebook.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/guitarpoet/comments/commentRss/225918.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/guitarpoet/services/trackbacks/225918.html</trackback:ping><description><![CDATA[<div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-top: 8px; margin-right: 8px; margin-bottom: 8px; margin-left: 8px; background-image: initial; background-repeat: initial; background-attachment: initial; background-color: #ffffff; background-position: initial initial; "> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">作ؓ一个Y件开发h员。电子书、文档基本上是每天都要看的。手头都会有一些电子文档或者电子书?br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">理好这些电子书Q却q比惌得要复杂得多。ؓ什么呢Q因为它涉及C书。它不仅仅是单的文档理Q而是个h的学习资料、知识管理。我们来分析一下吧?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">一般而言Q根据个人的查看方式Q电子书可以分成q么几类?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">1、有些书下蝲了,却未必会?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">׃下蝲的方便性,以及电子文档的特D性,使hҎ忽略电子书的信息量?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">很多电子书,同样的信息量Q换成纸质文档,书本的大就会让很多人望而却步。但是,变成电子文档后,使很多h忘记了这一炏V?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">只是觉得可能会有用,׃载下来了。其实根本就不会ȝ。又舍不得删掉,成了电子垃圾Q不要跟我说有什么收藏h|那是自己安慰自己|了Q没人看的电子书是电子垃圾Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">2、有些书需要反复的?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">有一些书Q比如设计模式)Q是典型的手册型书。你会发玎ͼ你可能会l常性的</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">而且Q往往会有一些书值得反复阅读Q或者用来当作手册来时常查阅?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">3、有些书看一遍就可以扔掉?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">重构是q种cdQ不是说q本书不好。而是你看完了之后Q你q解了它的思想。在日常的工作中Q你会经常的遇到q些问题Q用这些方法。你不会忘记它的教诲了,因ؓ它已l成Z你工作的一部分了。这U书可以比喻成电器的说明书,一般你只在刚刚买到的时候看一下,之后扔C边去了?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">q可以从另外一个方面来看,是信息量的斚wQ电子书可以分成下面几类</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">1、大信息量型</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">有的书的内容有很大的信息量(比如存a理性批判)Q需要采用精ȝ臛_复读的方式来q行理解和消化。往往每天只能d消化几页Q有的时候几就不错了)?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">2、中{信息量?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">一般的技术文章或者刊物、书c,都属于这U类型。这U书c的阅读效果最好。Martin Fowlerp此道。写的书往往比较易读?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">3、低信息量型</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">比较差的技术类书籍属于此等cd。篇q很大,但是有h值的内容乏善可陈。或者供׃使用的书。比如某些网l小说?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">通过q两个分c,可以通过一个表格把电子书分cR?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">    反复?span class="Apple-tab-span" style="white-space: pre; "> </span>看一?span class="Apple-tab-span" style="white-space: pre; "> </span>未必?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">   ==========================</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">大|l典<span id="npzx1vt" class="Apple-tab-span" style="white-space: pre; "> </span>教材、经?span class="Apple-tab-span" style="white-space: pre; "> </span>难懂的书</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">中|手册<span id="fbz39dx" class="Apple-tab-span" style="white-space: pre; "> </span>普通的?span class="Apple-tab-span" style="white-space: pre; "> </span>别h推荐的书</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">|喜欢?span class="Apple-tab-span" style="white-space: pre; "> </span>消遣<span id="93nnhdx" class="Apple-tab-span" style="white-space: pre; "> </span>骗h的书<span id="pr3rzrr" class="Apple-tab-span" style="white-space: pre; "> </span></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">没把大部头加上去Q因为大部头的定义不是很清晰?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">好了Qȝ一下?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">我们可以按照书的信息量和自己是否看把自己的书分成下面几个分类Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">l典、手册、喜Ƣ的、教材、普通的书、消遣、难懂的书、别人推荐的书、骗人的?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">下一文章,我就会针对这些分cd始讨论电子书的管理方式?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br /> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">PSQ当Ӟq这是我的分cR你可以有其他更好的分类方式?/p> <p> </p> </div> <img src ="http://m.tkk7.com/guitarpoet/aggbug/225918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/guitarpoet/" target="_blank">guitarpoet</a> 2008-08-31 17:46 <a href="http://m.tkk7.com/guitarpoet/archive/2008/08/31/ebook.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于个h文档理 - 电子邮g2http://m.tkk7.com/guitarpoet/archive/2008/08/25/email_management3.htmlguitarpoetguitarpoetMon, 25 Aug 2008 13:57:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/08/25/email_management3.htmlhttp://m.tkk7.com/guitarpoet/comments/224307.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/08/25/email_management3.html#Feedback0http://m.tkk7.com/guitarpoet/comments/commentRss/224307.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/224307.html
我的邮g理心得大概可以分成下面几个点:

1、即看即理Q收到邮件之后,如果没有处于不可打断的状态下Q就要立卛_始处理,处理方式大概分成下面几种
    *如果是无用的邮gQ立x它删?br />     *如果邮g很长Q或者邮件中链接比较多(比如订阅的期刊)Q而时间有限,把邮件设|成为未读,留待有时间的时候读
    *如果邮g跟工作有养I而没有时间处理,l邮件打上旗标,留待有时间的时候处?br /> 2、周期性管理:每天都需要整理该天的邮gQ这也是务必做到当日事,当日毕的工作态度Q,处理掉未ȝ和加注旗标的。对于期刊,未必一定要d。加注旗标的工作Q则需要进行工作管理了?br /> 3、阶D|梳理:在到ND|的旉ҎQ如一个项目结,每个月的W一天或者最后一天)。需要对q一阶段内的工作和相x料进行梳理。电子邮件也是其中之一?br /> 4、善用搜索:在充分的l护元数据之后,你就会发现搜索的好处了。比如,在你为项目干pMh建立联系人组之后。相x间跨度内的项目相关的邮g一个相x询就_了。如果你的邮件客L支持在查询的l果上查询的功能。通过联系人、主题等{信息,一般说来,扑ֈ你想扄邮gQ不会非常困难?br /> 5、保存常用的搜烦Q我有几个常用的搜烦Q以文g夹的方式保存h了。这些常用的搜烦是:
    *To ReadQ所有的未读邮g
    *TodayQ当天收到的邮g
    *FlaggedQ所有加旗标的邮?br />     *Has AttachmentQ所有有附g的邮?br /> 6、充分利用邮件客L的特色功能:有的邮g客户端(如GMail和Apple MailQ都可以Ҏ话题q行邮g自动分组。GMail的类D坛帖子的方式是更加优雅一些。按话题自动分组邮gQ可以极大的减轻利用邮g讨论一件事情的负担。尤其是在多论的时候?br /> 7、充分利用邮件的处理规则Q很多邮件的理和处理都可以采用规则q行自动化的处理。比如,可以把所有来自家里h的邮件打上绿色的标签。便于和工作邮g区别开来。或者把相关邮g拯到相关的文g夹中QGMail的对应操作是个邮件打上标{)?br /> 8、利用搜索引擎技术:不要用OutLook自带的查找。那h找效率太低了。可以利用MSN Toolbar或者Google Desktopq种搜烦工具来帮助你。我用的是Mac OSXQSpotlight已经很好用了?br />
好了Q关于电子邮件的理Q就说到q么多吧。下一里Q我会讨论电子书的理?br />

guitarpoet 2008-08-25 21:57 发表评论
]]>
关于个h文档理 - 电子邮ghttp://m.tkk7.com/guitarpoet/archive/2008/08/24/email_management2.htmlguitarpoetguitarpoetSun, 24 Aug 2008 02:26:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/08/24/email_management2.htmlhttp://m.tkk7.com/guitarpoet/comments/223956.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/08/24/email_management2.html#Feedback0http://m.tkk7.com/guitarpoet/comments/commentRss/223956.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/223956.html
无论你用什么邮件客LQGMail除外QGMail属于比较奇怪的Q待会儿再提Q。邮件的理操作都可以简单的看成是对只读文g的操作?br />
邮g是一个个的只读邮Ӟ你通过文g夹(可以分——也是文g夹套文g夹)来分cȝ理它们?br />
你可以通过邮g的元数据Q收件h、发件h、抄送、发送时间、接收时间、重要程度、是否已诅R所在邮、内宏V。。)来检索、排列和查找邮g?br />
下面Q我来列丑և个我所见过的邮件管理方式(我在q里只列举我所见到的方式,使用技巧打在下一文章里写)Q?br />
1、日期型Q?br /> q类的邮件管理方式,一个最大的特点是每个月都建立一个新的文件夹。文件夹的名U就是当月的q䆾和月份,?008-02。当月收到的邮g都从收g׃拯或者直接{Ud该文件夹中(q个规则应该很好写)?br />
以一天^均收?00邮件的频度来算Q如果是普通工作邮件的话,已经是非常多了Q以我的l验来说Q^均一?0?0是正常的)。在一个工作月内,可以收到2200邮件。在一个文件夹内ƈ不难理Q何况你q会删掉一些无意义的邮Ӟq且q可以在q个基础上进行分l和qoQ?br />
如果你确实有_求精的追求,你可以在q个文g夹下再分成工作细cR这Lh更漂亮?br />
q种理方式很适合短期杂事很多的hQ比如HRQ。这U方式的优点是,月底q行个hl计的时候非常方ѝ而且做查询也比较方便Q直接用眼睛看)?br />
当然Q这U方式缺点也非常明显。你肯定不能从一串数字上看出你这个月都干什么了Q当然你愿意在其下花力气分成l类Q这一点就Ҏ一些)。对于经常ƈ行的q行有时间跨度工作(比如多个目的^台技术支持)的h而言Q这一理方式明显效率低下?br />
2、项目型Q?br /> 即是进行项目型的管理,仍然需要通过旉来划分邮ӞZ归档和写q终ȝ方便Q。但是时间的划分往往会比较长Q比如用一季度、半q或者一q来划分?br />
目型管理的最大特点就是按目分组理邮g。D例来说吧?br />
假设我是一个^台Y件工E师Q我支持着公司在广东、山东、北京、上四个目?br />
我会在今q_2008Q的文g夹下建立四个文g夹分别是q东电力、山东社保、北京移动、上通。我会在我的联系人里建立q四个组。然后徏立四个规则,把所有在收g׃q四个组中联pMh发的邮g分别拯或者移动到q四个文件夹中?br />
目型的方式Q适合于对多个目Q子目Q进行ƈ行工作的人。在目相关的文件夹中可以通过Z旉的查询查扑ֈ相应的邮件。可以很一目了然的看出你在某一q都做了哪些目。而且Q通过按照旉的查询,仍然可以查出你在某个月的工作邮g?br />
如果你的杂项工作很多或者大多数都是没有规律的工作,q种方式׃一定合适?br />
3、区别对待型Q?br /> 区别对待型的_NQ就是看Z菜碟。以我的l验Q在营销的h员中采用的比较多。不q也有技术h员采用。呵c?br />
区别对待型就是按照联pMh的组来安排邮件。比如可以徏q么几个文g夹:领导、山东社保项目组、朋友、其他?br />
说真的我没看出来q种理方式的优炏V我觉得q种方式跟没理没啥区别。真的?br />
4、状态分cdQ?br /> 按照邮g所兌的工作的状态进行分cR可以分成:待办、正在处理、已l处理、已lgq和其他几个部分?br />
有的目l理是采用这U方式来理邮g的。所有的未读邮g都是待分cȝ邮g。之后通过手工拣选的方式来进行管理?br />
q种方式Q不是很便于存档和查询(试想Q过了一D|间之后,已经处理q个文g多w面会有多邮ӞQ?br />
ȝ一下:
1、邮件会积多的。相信我Q真的会积多?br /> 2、邮件对工作非常重要Q所以邮件的归档、保存和索都非常重要
3、从目前的效果上看,邮g客户端仍然无法被GMail的Ajax客户端代?br /> 4、最好要Ҏ自己的工作性质Q决定出一个适合自己的邮件管理风根{在q个基础上还可以应用很多的技巧。机器不怕重复,但是人都x复?br />
好了Q下一里Q我把我所知的邮g理的技巧都写出来。也作ؓ一个存档。留待以后接着完善吧?br />
另外Q关于电子邮件写得太多,未免开始离题了。再写一,p开始写电子?文档的管理(我打把q个斚w重点写一写)了?br />

guitarpoet 2008-08-24 10:26 发表评论
]]>
关于电子邮ghttp://m.tkk7.com/guitarpoet/archive/2008/08/22/email_management.htmlguitarpoetguitarpoetFri, 22 Aug 2008 12:38:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/08/22/email_management.htmlhttp://m.tkk7.com/guitarpoet/comments/223781.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/08/22/email_management.html#Feedback0http://m.tkk7.com/guitarpoet/comments/commentRss/223781.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/223781.html
好了Q今天来讨论电子邮g?br />
电子邮g是非怼雅和O的交方式——邮件的电子表示方式。它拥有前辈的很多优点,在某些方面上甚至出了前辈?br />
但是Q你虽然可以把信U换成薰衣草的颜Ԍ你却无论如何也无法发出有薰衣草香气的信来。有时候,歪歪扭扭的手写字Q要比你选择的Q何字体都能代表你的心意。——你休想拿电子邮件写出完的情书来。呵c?br />
好了Q言归正传,我们先列举一下电子邮件的Ҏ吧?br />
1、只读:电子邮g的只ȝ性与它的前辈一P你无法改掉别人发l你的邮Ӟ你只能选择保留q是扔掉它。因一点,电子邮g是有法律上的证据意义的。以我的了解Q世界上某些国家——包括中国,都可以用电子邮g存根作ؓ证据?br /> 2、异步:异步的消息发送方式,使得非同时工作(时区差异、地区差异等Q变得容易,而且使得个h工作的安排和调度方式更加灉|Q你可以选择何时L邮gQ收到邮件后何时q行处理Q?br /> 3、高效:虽然Q相对于前辈Q电子邮件的发送和接收都容易了很多。但是,׃电子邮g仍然是邮件。在书写电子邮g的时候,仍然需要经q一定的构思。务必达到条理清晰、言意赅的程度。虽然不能实现实时的沟通,在很多的情况下反倒会比实时的沟通有更高的沟通效果?br /> 4、安全:基本上,所有的电子邮g服务器都采用了传输层加密了吧Q如果再加入个h的公、私钥加密的话。应该说邮g信息的安全还是比较容易得C证的?br /> 5、检索容易:当然Q这也和电子邮g的管理方式有兟뀂不q,无论如何Q电子邮仉比IM的聊天记录容易检索。比无法q行记录和检索的语音聊天要高更多
6、沟通方便:灉|的用电子邮Ӟ可以非常方便的实现网l异步会议室。实现非常好的沟通效果(比如Apache的Malling List或者Google Groups——不得不_Google Groups是基于电子邮件的非常优雅的应用之一Q。另外,通过灉|的用CC。也可以非常大的提高沟通的效率?)
7、用方便:电子邮g已经逐步的移动化Q不是iPhoneq是蓝莓Q电子邮仉是非帔R要的功能之一。在现在如果你愿意,你可以随时访问你的邮,发送、查看和理邮g

好啦Q就写到q里吧。先在这里ȝ一下。下一再讨论我的电子邮g理方式?br />
1、良好的电子邮g沟通是高效工作的重要组成部分。Apache是靠这个成功的Q相信它吧?br /> 2、电子邮件的异步和检索容易的Ҏ,对电子邮件的理提出了很高的要求Q在q一点上Q有好的电子邮g理方式要比没有工作效率高很?br /> 3、你l究会发现可以在M旉、Q何地炏VQ何机器上理你的邮g是多么重要的一件事情。所以,攑ּPOP3Q拥抱IMAP吧?br />

guitarpoet 2008-08-22 20:38 发表评论
]]>
关于个h文档理Q图片和视频文ghttp://m.tkk7.com/guitarpoet/archive/2008/08/19/photo_and_video_manament.htmlguitarpoetguitarpoetTue, 19 Aug 2008 01:32:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/08/19/photo_and_video_manament.htmlhttp://m.tkk7.com/guitarpoet/comments/222919.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/08/19/photo_and_video_manament.html#Feedback2http://m.tkk7.com/guitarpoet/comments/commentRss/222919.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/222919.html
我不是一个摄q好者(所以到现在q没有数码相机)Q也不是一个很爱拍照的人。我自己拍得最多的是每周一ơ用W记本拍的减肥效果记录?br />
׃电媄一般看完就删、很多音乐视频都可以在网上看Q而我又不q电视节目Q所以我的视频简直屈指可数?br />
视频和图片的最大的特点是它们都是大把吃掉盘的怪物。D例来_一个SRV的Live from Austin Texas吃掉了?00M的硬盘。我的工作区中所有的文档大小的d都不及它的一半?br />
我对待视频的{略Q仍然是我用的最熟的大抽屉策略:最常看的和马上要看的视频(比如最新的电媄Q,攑ֈMovies文g夹中。其他需要保留的l典Q刻盘保存(太大了,装它们移动硬盘吃不消Q?br />
׃我再看它们的可能性不是非常的大,所以刻盘保存的风险我可以接受?br />
我用iPhoto来管理我的图片。用iPhoto来管理相片的体验Q和用iTunes理音乐差不多。只不过播放列表变成了相册。我自定义了一个关键字“减肥日记“Q开始是x天照Q可是我实在太懒Q呵呵)Q我每周拍的减肥效果记录都会加上q个关键字。在q个基础上,我徏立了一个查询,列出所有关键字?#8221;减肥日记“的相片。这P我的减肥效果可以一目了然了。哈哈?br />
ȝ一下:

1、视频由于体U大Q收看次数较。可以考虑采用ȝ归档的方式。但是一定要预留一些空间用大抽屉原则Q常用的东西攑ֈ最Ҏ扑ֈ的地方)。在使用ȝ保存的时候,一定要考虑为所有的光盘建立可供索和查询的烦引(光盘的编受光盘的内容、光盘的存档旉Q。对于个言Q这些只要一个Excel表格矣Q不需要什么额外的软g?br /> 2、图片的理Ҏ与音乐异曲同工。因为除了媒介和使用方式有所不同外。二者的Ҏ都是大的二进制文?Q?围绕q个文g的一pd元数据。而且Q与音乐一样图片数据的备䆾和查看也被iPod很好的支持?br />
关于我的囄和视频的理方式Q就到这里吧。下一需要讨论的Q是对工作非帔R要的Q电子邮件的理。由于它太重要了Q而且涉及到的技巧也太多了(很多人都有很优秀的经验)。如果一写不完Q可以考虑多写几篇?-)


guitarpoet 2008-08-19 09:32 发表评论
]]>
关于个h文档理 ?个h音乐理http://m.tkk7.com/guitarpoet/archive/2008/08/18/music_management.htmlguitarpoetguitarpoetMon, 18 Aug 2008 04:49:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/08/18/music_management.htmlhttp://m.tkk7.com/guitarpoet/comments/222736.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/08/18/music_management.html#Feedback0http://m.tkk7.com/guitarpoet/comments/commentRss/222736.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/222736.html
托生在中国的,我只׃很少的代P听C很多高质量的音乐Q谁都知道是怎么回事Q呵呵)?br />
对于我这U须臄不开音乐的h来说。找到自׃天、现在想听的音乐。ƈ不是一仉常容易的事情?br />
说v个h的音乐管理,我打从革命的传家史开始?br />
我的音乐理可以分ؓ下面几个阶段?br />
1、卡?Q?录音机:
    所有的卡带都放到写字台的大抽屉里。大抽屉放不下后Q则把所有的音乐分成两批Q常听的、不常听的。不常听的放到写字台的柜子里。常听的攑ֈ大抽屉里Q对Q就像当时卖卡带的店一P不过是按照个人好恶来排序的,最爱听的,攑ֈ最外面Q?br />    
    当我要开始听音乐的时候(也就是写作业或者看书的时候)Q我会拿Z盘卡带(要知? × 45Q时间也不短了,呵呵Q。作为最l手头的音乐?br />
2、卡?Q?随n听:
    我有了第一个随w听的时候,l于可以实现边走路边听歌的欲望了。从那个时候vQ我的书包里开始放卡带。不q,虽然讑֤升了,我还是用以前的管理方式?br />
3、CD Q?CD随n?br />     我在有CD随n听之前就开始听CD了(托VCD行的福Q。开始我的CD不多Q没q多久就有PC了(大学的时候)。所以,q个阶段乏善可陈?br />
4、PC Q?播放?Q?MP3Q硬件设备,呵呵Q?br />     有了CD、PC和MP3之后Q卡带对我就已经成了历史Q我成功的以不算太低的h|2元一盘?Q把我所有的卡带都甩了出去,除了几个实在舍不得的Q比如鲁道夫的贝多芬钢琴奏鸣曌Ӏ布鲁诺的马勒第九)。当时用的播攑֙是Windows Media Player、金山媄霸(多难听的名字Q)。文件管理也很简单,每个CD一个文件夹。而且Q没有Q何的元数据,全是Track1.wma、Track9.wmaQ呵c?br />
    我的W一个MP3得可怜,128M。放我从CD抓的WMA文gQ只能放一张专辑多Q放交响曲的话,最多也是两个Q。只能每天都在曲库(一个文件夹——跟我管理的卡带的大抽屉异曲同工Q里挑——真的是_挑l选?br />
    之后是删除、拷贝操作。然后是打开MP3的@环播放?br />
    在PC上,我有几个常用的播攑ֈ表。这样在使用WMP的时候,可以很Ҏ扑ֈ自己惛_的歌了?br />
    q种方式非常差劲Q我l常会丢掉我的元数据、播攑ֈ表,其是在重装pȝ的时候?br />
5、PC Q?iTunes Q?iPod——现?br />     l过多年Q我q是入了Apple的贼船,q入了iPod的圈套。好了,我来仔细的讲一下我现在的音乐管理吧?br />
我现在的音乐理方式Q?br />
1、所有音乐集中管理:
    我尽可能的把我所有的音乐都集中的理hQ目前是几百张专辑吧——不多)Q十几个G的音乐统一的交liTunes来管理。我之后买的所有的CDQ全都是在用iTunes抓轨之后收藏。只听iTunes理的音乐?br />
2、收集和整理音乐的元数据Q?br />     对于音乐QiTunes可以支持的元数据有:名称、表演者、年份、歌词、专辑表演者、轨道编受BPM、专辑名、专辑图、光盘编受风根{作曌Ӏ归cR注释、评仗音量、均衡器、播放次数?br />    
    其中后面的归cR注释、评仗音量、均衡器、播放次数这些元数据是可以自行定义的Q而前面的元数据则是可以通过各种方式来获取到的?br />
    我在抓取CD的时候,一定会保证iTunes能够正常的连接到互联|。让它通过互联|替我找到唱片的元数据。ƈ把这些元数据保存在抓取的文g以及曲库中。我也尽我最大的能力把其余欠~的元数据补充上Q从|上下蝲的音乐,一般说来,元数据都损失得很大——有的下载站实太过分了Q把所有的元数据都h它们的网址Q?br />
3、徏立播攑ֈ?br />     要想时刻扑ֈ惛_的音乐,播放列表是必不可的Q尤其对iPod而言Q。我机器上徏立的播放列表Q基本上都是以精选ؓ主(比如On my way、On my way II{)Q因为我在坐车、船、走路的时候,更多的是听podcast或者是听随机播放。只有在某些嘈杂的场合(比如飞机上或者听podcast听篏了)或者是不便于操作iPod的时候(比如骑自行R的时候)才会改听_N。我的精选是我精心的挑的高频D|较明显,q且旋律一般都处于高频D늚音乐Q这样可以尽量的避免周围环境噪音寚w乐的q扰Q却可以让我能够可能的听清周围的声韟?br />
4、徏立ƈ保存查询
    iTunes的查询能力做得很不错Q而且你可以把查询作ؓ动态的播放列表保存。这个概念很让h受用Q尤其在音乐的元数据得到良好的维护之后)。我的智能播攑ֈ表不多,列D几个吧:RagtimeQ我的所有风格是Ragtime的音乐列表)、JS Bach By GouldQ我的所有由Gould演奏的作曲家为JS Bach的音乐列表)、My Favorite not played since last weekQ所有我的评价在四星以上q且臛_有一周没有播放过的音乐列表)

5、随机播?br />     对于我来_我有数千个音乐文Ӟ肯定会有人比我更多,比如我的一个朋友,光CD数千)Q天天从中挑惛_的音乐,是一件很乏味的事情,而且会造成q度的挑食。更有趣的是Q有时候我都会忘记我有某个专辑。而有的专辑我抓进我的曲库之后Q一ơ都没有听过。而且Q不同的时候、不同的情AQ听不同的音乐也有不同的感觉?br />
    所以我的策略是一般的情况下,我都是用随机播放。如果这首歌不喜Ƣ,q个差评,跛_下一首。让iTunes来帮我记录播放次数。这个元数据Ҏ理音乐和评价音乐也有很高的应用价倹{而iPod能够很好的支持这个元数据。仅一点,我就M开iTunes和iPod了?br />
6、下载和理podcast
    ?看Podcast真是一件让Z瘄事情。iTunes把Podcast区别对待的方式,是我最舒服的方式(因ؓ我就是用了iTunes后开始听Podcast的,W一印象永远是最有力的)?br />
    我订阅了二十几个podcastQ到现在只有二百多个文gQ而且Qpodcast的最大特点就是时效性特别强Q一般是听完、看完一遍就删掉了,所以不存在理的问题?br />
7、其他格式的音乐
    iTunes支持播放的音乐格式很。ؓ了统一的管理所有的音乐Q我把所有的其他格式的音乐都转成了MP3?br />
8、iPodUdҎ
    我的由iTunes理的音乐(Podcast Q?音乐 Q?iPod能播攄视频Qd不到20G。装在我?0G的iPod中Ԓl有余。我每次出门都会带着我所有的音乐。我在用iPod之前l对会认是不可思议的?br />
9、备份管?br />     我的所有音乐都在我的MacBook里。MacBook是源。我?0G iPod与MacBook完全同步Q是W一手备份。我q有一?20G的专有备份移动硬盘(用来备䆾我的Home文g夹,当然Q同时也备份了音乐、和iTunes元数据——以后会_是第二手备䆾。我觉得我有_的信心相信这三个讑֤不会同时坏掉Q只要有一个备份,我就能恢复我所有的音乐。我不刻盘,盘刻多了不好理。而且Q光盘更不好保存Q不如硬盘——v码我觉得Q当然了Q我CL带机?br />
回顾到现在,我觉得这么多q来Q我仿佛在音乐管理方面没有Q何进步,q步的只是技术。呵c?br />
ȝ一下:

1、我认ؓQ个人的音乐应该l一的交l一个Y件来l一的进行管?—?原因Q用和备䆾都方ѝ能够实C套元数据是最好的
2、音乐应该是随机的听?br /> 3、音乐的元数据非帔R要,其是在你对音乐要求很高或者你的音乐非常多的时?br /> 4、要善用音乐理软g的自定义查询功能Q能够发挥个人的创意更好了

当然Q现在网l的音乐电台也是听音乐的一个非怸错的选择。不q极其可惜的是Pandoraq不面向大陆开放。而感觉大陆的|络音乐电台中我惛_的音乐ƈ不是很多?br />
我很看好|络音乐电台。试惻I如果能够实现|络 Q?PC Q?手机的无~结合。保证可以随时听到想听的高质量的音乐Qƈ且系l可以统一的管理所有你相关的音乐的元数据。又可以免去理、维护音乐文件的烦恼。是多么惬意的事情?

我愿意ؓq个服务付费Q因为我每天都要听音乐,所以即使是每天10元(也就是每q?K的服务费Q我也可以接受——因为我q省M购买专辑和维护CD的支出)?br />

guitarpoet 2008-08-18 12:49 发表评论
]]>
关于个h文档理http://m.tkk7.com/guitarpoet/archive/2008/08/17/document_management.htmlguitarpoetguitarpoetSun, 17 Aug 2008 01:10:00 GMThttp://m.tkk7.com/guitarpoet/archive/2008/08/17/document_management.htmlhttp://m.tkk7.com/guitarpoet/comments/222514.htmlhttp://m.tkk7.com/guitarpoet/archive/2008/08/17/document_management.html#Feedback2http://m.tkk7.com/guitarpoet/comments/commentRss/222514.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/222514.html
诚然Q一个h的文档管理风|跟一个h的性格和能力有很大的关p,跟他的卧室(如果是结婚了的话Q那q办公室吧Q也有很大的关系?-)

其实Q优U的个人文档管理的_N是能够在需要的时候找到需要的东西Q当Ӟ是自q东西Q。不你用何U方式,不管你采用何U手Dc?br />
首先Q我打算区分一下个人电子文档的cd?br />
所有的个h电子文档都可以就需不需要进行变更管理分成两c:需要进行变更管理的和不需要进行变更管理的?br />
不需要进行变更管理的最典型例子是邮g。一旦阅d毕,它就变成了历Ԍ只有查阅和{发的功能了。各U电子书、电子文档、媒体文Ӟ音乐、视频、图片等Q等Q它们和电子邮g的情形基本一P对一般h来说也都是不需要进行变更管理的?br />
需要进行变更管理的文档Q我把它们一律称之ؓ工作文档。关于工作文档的理Q我打算在讨论完不需要进行变更管理的文档以后再讨论?br />
那么Q不需要进行变更管理的文档。怎样q行理比较好呢Q?br />
我先说说我自ql验吧?br />
我把我的不需要进行变更管理的文档分成5U类型:音乐、视频、图片、Email和电子书?br />
我打在下一的blog里,写写我的音乐文g的管理方式?br />


guitarpoet 2008-08-17 09:10 发表评论
]]>
关于ZJavaSript的RIA客户端数据处理(下)http://m.tkk7.com/guitarpoet/archive/2007/12/15/javascript_ria_data_processing_2.htmlguitarpoetguitarpoetSat, 15 Dec 2007 05:15:00 GMThttp://m.tkk7.com/guitarpoet/archive/2007/12/15/javascript_ria_data_processing_2.htmlhttp://m.tkk7.com/guitarpoet/comments/167935.htmlhttp://m.tkk7.com/guitarpoet/archive/2007/12/15/javascript_ria_data_processing_2.html#Feedback2http://m.tkk7.com/guitarpoet/comments/commentRss/167935.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/167935.html一、引?/h1> 上一讨Z关于客户端数据处理的一些问题,以简单的用例场景的方式描qC出来。很明显Q要惛_C个功能完整的Rich客户端的话,必须能够满上述用例场景的需求。能否根据这些需求做出合理的设计Q是一个挑战。尤其对于设计而言Q不同的人有着不同的风|而且׃背景不同Q也会有不同的见解。本文中Q我只是陈述q一些想法和设想Q更多的是希望能够抛砖引玉,通过在这个方面的讨论也能增进我的理解。呵c?br />
很显Ӟblog的Ş式更适合作ؓ思\的介l以及探讨的q_Q而不是详l设计的文档。而且很明显这一文章是承蝲不了所有的详细设计的。我争取把我在各个细化的斚w的想法在后箋的文章里面发出来。如果时间允许的话,整理出初始的文档和代码,建立一个小的开源项目未不可(因ؓ如此Q所有的JS都是采用英文来注释──其实q有一个原因是l习英文 :)Q。这都是后话了?br />

二、羃略语

  1. RIAQ?/span>Rich Internet Application的羃写?/span>RIA是拥有传l本地应用的功能和效果的Web应用?/span>RIA一般把UI相关的处理交l了Web客户端,但是大量的数据(包括应用的状态、数据等Q还是交l服务端处理

  2. AjaxQ又写ؓAJAXQ是"Asynchronous JavaScript and XML"的羃写。是一U用浏览器技术进?/span>RIA开发的技?/span>

  3. PrototypeQ开源的优雅的Ajax以及JavaScript基础扩展框架。由于被Rails采用而闻名,使用相当q泛
  4. jQueryQ功能类似Prototype + script.aculo.us的开源Ajax框架。据我所知,Google用得比较?br />
  5. ExtQ对YUI的一个扩展的UI构g库。经q改q后Q可以用jQuery或者Prototype作ؓ基础。目前好像正在完善自w的基础Ext base。以优秀的构仉名。虽然目前仍然属于商业构件库Q但是License相对宽松Q一般的商业应用可以免费使用
  6. dojoQ由dojo foundation理的一个开?/span>JavaScript框架。提供了很好?/span>JavaScript扩展Q目前被IBM?/span>Sun{大公司支持和?/span>

  7. JsonQ? JavaScript Object Notation的羃写。它是一U纯文本的数据对象传输协议,?/span>Ajax的应用中被广泛采?/span>

  8. CRUDQ?/span>CreateQ创建)?/span>RetrieveQ获取)?/span>UpdateQ更斎ͼ?/span>DeleteQ删除)q四U简单的数据操作的羃?/span>

  9. FormQ本文中?/span>Form指的是经q?/span>Ajax扩展的简单的HTML电子表单。表单内部可以拥有很多如ComboBox?/span>TextBox{构件。一般来_一个表单对应着一个业务的数据对象

  10. TreeQ树形显C结构化数据的构Ӟ׃数据是高度结构化的,往往可以采用懒加载等技术来提高性能

  11. GridQ以表格形式昄和编辑数据的UI构g。一般分_标题栏)、表w(数据列表Q和表尾Q合计、状态显C等Q三个部分。其中,表头可以是复合的表头Q而表w可以是复合的格式(Tree?/span>Grid?/span>ComboBox?/span>CheckBox{)。一?/span>Grid可以有一个复杂的Grid定义

  12. Enhanced GridQ下面简UCؓEGridQ是Grid的扩展。在Grid的功能基之上提供了数据获取和数据持久化的能力Q可以大大的减少开发应用的旉Q?/span>Ext中的Grid可以认ؓ是一?/span>化了的EGridQ?/span>

  13. CodeListQ代码表Q一般用在下拉列表数据处Q在pȝ的实CQ由于性能以及标准的要求,下拉列表一般都是采用代码保存数据,但是用户在填写表单的时候需要看到正常的文字而不是代码,q就需要系l通过CodeListq行文字和代码的转换

  14. LRUQ?/span>Least Recent Used的羃写,是一U简单的~存{略Q如果缓存已满,那么释放最q最用的那个~存数据

  15. RESTQ是REpresentational State Transfer的羃写,是一U基?/span>轻量U?/span>WebService协议

  16. JDBCQ是Java DataBase Connectivity对羃写,是基于Java的数据库q接规范?/span>

三、基

既然军_采用AjaxQ就最好采用一个基Q在q个有很多优U的Ajax框架可供选择的时代,谁要是还要赤手空拳的来写Ajax应用Q就未免有点儿过于勇敢,而近于鲁莽了。这文章不是Ajax框架Ҏ文章Q我不打在q里一一列D各个行的Ajax框架的优~点Q我只拿下面几个q行讨论Qdojo、Prototype、jQuery、Ext?br />
先提需求,框架应该Q?br />
  1. 以一UŞ式支持面向对象(毕竟开发h员多数都是JavaE序员,更有可能的是Q他/她只对Java熟悉Q?/li>
  2. 以一U方式来支持命名I间和分包机Ӟ开发企业应用与开发网站不同,复杂的不是技术而是业务。没有命名空间和分包支持Q对于大型应用,基本不可控制。──设想一下如果Java没有package关键字会怎样Q?/li>
  3. 有完善的模块装与管理规范或者最佛_践,能够自动处理模块间的依赖则更好(模块的定义不在这里解释了Q一个例子说明吧Q一个Jar是一个模块。模块化和构件化是实现、维护和理大型应用的重要手D)
  4. 提供丰富的调优选项Q得对复杂的应用调优是可能的(q一点对于UI层尤为重要,因ؓ它直接面对用者)
  5. 便于调试Q这一点对于开发者致关重要)

l合上面几点Q我选择dojo作ؓ基础。Sorry Prototype?br />

四、整体构?/h1>
整体构架如下图所C(Z便于理解UI构g与其对关p,我把需要数据处理的UI构g也加了上去,图中蓝背景色的部分就是)Q?br />



一目了Ӟ整个客户端数据处理由3个部分构成,DataSource、DataSet和DataStore。下面分别进行简单的介绍?br />

五、DataSet

DataSet的概念很单,是数据对象的集合。它的构架如下图所C(注意QDataSet只是一套标准的APIQ可以有不同的实现——比如XML形式的)Q?br />

如图所C,DataSet由四个部分构成,Record SetQ数据集合)、Change TrackerQ数据变更追t)、Meta DataQ数据对象源信息Q和CursorsQ游标APIQ?br />
分别介绍如下Q?br />
  1. Record SetQRecord Set是Record的集合,一个Record是一个数据对象,它由一pd的属性(PropertyQ构成,属性是一个简单的字符Ԍ其对应的值可以是Lcd。Record提供属性读写的ҎQ可以直接在Record上对属性进行读写,q且QRecord会ؓ写操作提供一个事件。Record Set内部的元素必LRecordQRecord Set支持对内部Record的CRUD操作。ƈ且会有相应的事g触发
  2. Change TrackerQChangeTracker为DataSet提供所有写操作的追t,可以通过配置选择Change Tracker是否记录修改Q如果记录修改,采用的是针对每一个Record记录增加、删除以及针Ҏ一个属性记录First和Last修改的策?/li>
  3. Meta DataQ提供DataSet中Record的元数据Q属性名、属性对应类型、其他自定义数据——校验、Form Label信息、表头信息等Q以及DataSet的元数据Q在全部数据中的位置{)?/li>
  4. CursorsQCursor其实是Record的P代器Q可以通过对dataset查询Q一般都是非常简单的filter或者rangeQ得刎ͼ推荐通过Cursorq行Record讉KQ而不是通过IndexQ因为通过q代器访问RecordQDataSet拥有更多的能力。虽焉过Cursor完全可以讉K所有的Record及其中的数据Q但是由于DataSet拥有MetaDataQ所以还是采用DataSet作ؓ数据l定的主?/li>

DataSet是整个客L数据处理构架的核心,所有的数据讉K都应该通过DataSet的API。这样客L的数据处理才是统一的一个整体?br />
解决的用例问题:
  • 数据l定QForml定、Gridl定
  • 数据变更q踪QGrid变更提示、数据集合变更追t、Form修改的追t?/li>
  • 数据讉KQ数据对象元数据信息讉K、数据写操作的统一事g定义、统一的数据读取方?/li>

六、DataSource

DataSource的功能是提供Ҏ据进行查询以及数据的持久化(持久化到客户端或者服务器端)。与DataSet一P不同的格式数据就会有不同的DataSourceQ一UDataSource代表了一U客L与服务端的数据传输协议。但是由于DataSource的逻辑与结构过于复杂(事实上,DataSet的实C完全依赖DataSource的实玎ͼ可以cLJDBCQ,不应该对每一U格式都重新实现一个DataSourceQ由此,DataSource不应该是一套标准的APIQ而是使用了Adapter模式Q来满不同的数据来源,其构架如下图所C:
看上d单?实际上这是最复杂的部分,关于q个部分Q至可以再?文章来详细探讨Q在本文中,׃q度讨论了?)

如图所C,DataSource由Cache、Query、Persist以及Providers构成Q分别介l如下:
  1. CacheQCache的概念在前面已经阐述了,不在q里多说了。在q里单的介绍一下客LCache的策略以及技术,׃Z览器的数据~存技术非帔R要,拟在后箋的文档《客L的缓存策略与相关技术》中对其q行详细讨论
    • ~存{略Q这一斚w客户端数据的~存与服务端的数据缓存考虑的问题应该是cM的,唯一的区别是Q客L的数据缓存不必考虑集群支持?)Q?/li>
      • LRUQ基的Cache法Q如果缓存已满时Q根据最q很用算法来定哪些对象需要被清除
      • PriorityQ按照优先高低来清理缓存空间的{略Q当~存已满Ӟ按照优先U高低来定哪些对象需要被清除Q可以与LRU法共存
      • RefreshableQ有时效性的数据Q或者在q行时有可能会被修改需要同步或者刷新的数据。可以设|数据过期时_到时间则数据处于stale状态,再度讉K该数据时Q如果不能重新获得该数据Q则报错
      • ExpireableQ时性数据,可以讄失效旉Q到旉则数据失效,在缓存需要清理时Q缓存会清理掉这些失效的对象
    • ~存持久化(属于高的缓存策略,依赖客户端基于JavaScript的数据存储技术)
      • SaveQ持久化Q:把缓存当中的数据持久化到本地或者服务端Q其用处如下
        • 通过把数据持久化可以增加Cache的容?/li>
        • 数据本地~存提供了离U表单填写的能力
      • Retrieve、DeleteQ对~存中数据的基本操作
      • SyncQ离U缓存的本地数据Q可以与q程服务端进行同步,从而实现离U表单提交以及实现离UCodeList{功?/li>
    • ~存技?/li>
      • Client
        • 内存引用
        • Cookie
        • Google Gear
      • ServerQ服务端协助客户端做一些缓存,q在传统的B/S下是匪夷所思的设计Q在RIA的情况下却未不是一U手D)
        • WebService或者REST
        • Post + Get
  2. QueryQ其实Query只是一个方法,׃有可能会向服务端发XmlHttpRequestQ所以这个方法需要回调方法。其参数应该是一个Query对象Q一个配|对象,有一些事件的关键字(onBegin、onError、onSuccess{)。Query对象以及配置对象的格式在本文中就不详l说明了Q留l以后慢慢说Q因个部分是我最喜欢的部分)。很明显Q如果查询成功,查询的结果应该是DataSetQ一般来_DataSource是DataSet来源。不同的DataSourceQ查询的语言未必相同。不一定所有的查询对象都支持SQL语法Q比如可以支持HQL或者XQuery啊)Q而且我最推荐采用的是服务端提供一个服务抽象层Q接受Json格式的查询请求,q返回Json格式的数?/li>
  3. PersistQ数据持久化。只是Save和Update两个Ҏ。接受DataSet和配|对象作为参敎ͼq两个方法也应该是异步的Q。如果DataSet里面没有_的元数据信息Q需要在配置对象里面提供q些信息。这个部分不比Query部分复杂
  4. ProvidersQ数据的来源Q提供了Query和Persist API的实玎ͼ是DataSource的底层实玎ͼ它DataSource的实现可以跨不同协议而用。给DataSource提供不同的ProviderQDataSource可以支持不同的数据传输协议?/li>

DataSource是数据查询和持久化的核心Q所有的客户端的数据查询和持久化基本都应该采用DataSourceQ从而获得DataSource提供的强大而灵zȝҎ?br />
解决的用例问题:
  • 数据~存Q离U运行的CodeList、离U表单填写、性能考虑
  • 数据查询Q样本查询、模p查询、Range查询、逻辑查询、自定义查询
  • 数据处理Q数据处理事件、过滤、排?/li>

七、DataStore

DataStoreZDataSource和DataSet的实玎ͼ实现了dojo的data api。这h实现了对需要dojo api的dojo构g的支持,又满了cMTree、EGridq种既需要绑定又需要数据来源的高构g的要求。M来说QDataStore只是薄薄的一层接口,实际的实现完全依赖于DataSource?br />
解决的用例问题:
  • 数据l定、查询、处理:Treel定、ComboBox数据源、EGridl定

八、待讨论的问?/h1> 客户端的数据处理事实上要比我惌得还要复杂,我还有一些设计决{没有确定,列D下来以供讨论吧?br />

8.1 客户端的事务处理Q?/h2> ׃很多数据处理都放在了客户端。客L的数据处理操作相应增多而且复杂Q是否应该在DataSource中添加写事务的处理?以便Ҏ据操作进行更l粒度的理Q而不是仅仅停留在Query、Save和Track阶段Q?br />

8.2 权限数据的来?/h2> 如果可以q接到服务端Q用户在向服务端d后,服务端会q回用户的权限信息列表。客L接收后,可以相应的提供权限控制。但是,如果客户端离U运行,用户无法向服务的dQ权限信息列表无从获得,怎么提供权限控制Q?br />
探讨Ҏ1Q离U客L无须dQ由于没有权限控制列表,默认拥有pȝ最低权限(固定的配|在客户端)Q由pȝ开发h员决定用户在ȝ时可以进行何U操作。用户在U提交数据的时候,服务端也要根据相应的权限q行验证以防止越权的数据操作

探讨Ҏ2Q离U客L仍须dQ权限控制列表用用户在U登录时~存的数据。其余与在线方式相同。如果用h有在U登录过Q那么离U应用无法用?br />

8.3 跨域数据的来?/h2> ׃览器的安全性策略,JavaScript无法向除本n域之外的其他服务器发送请求。也是_对于JavaScript而言Q所有的数据必须来源于同一个域的服务器。对客户端进行集成非怸利?br />
探讨Ҏ1Q服务端提供一个服务接入层Q接受如Spring Bean、EJB、JMS、WebService{Ş式的服务Qƈ且把所有的服务都{化成ZU固定格式的协议与客L交互。所有的服务集成与协议{化都交给服务端,对客L完全透明?br />
探讨Ҏ2Q服务端提供一个简单的ProxyQ通过一定的协议把请求和回复转发l客LQ处理交l客L来做

九、小l?/h1> 虽然Cq里Q但是对于基于JavaScript的RIA客户端数据处理的讨论却才刚刚开始,q需要很多后l的展开讨论。但是,上午已经q去了,需要去吃午饭了?)



guitarpoet 2007-12-15 13:15 发表评论
]]>关于ZJavaSript的RIA客户端数据处理(上)http://m.tkk7.com/guitarpoet/archive/2007/12/08/javascript_ria_data_processing_1.htmlguitarpoetguitarpoetSat, 08 Dec 2007 02:31:00 GMThttp://m.tkk7.com/guitarpoet/archive/2007/12/08/javascript_ria_data_processing_1.htmlhttp://m.tkk7.com/guitarpoet/comments/166221.htmlhttp://m.tkk7.com/guitarpoet/archive/2007/12/08/javascript_ria_data_processing_1.html#Feedback2http://m.tkk7.com/guitarpoet/comments/commentRss/166221.htmlhttp://m.tkk7.com/guitarpoet/services/trackbacks/166221.html

一、引?/h1>

q个blog已经荒废近一q了Q久也不写,自然有很多的理由Q但更多的怕是懒吧。不说闲话了Q{入正题?/p>


关于ZJavaScript的RIA客户端数据处理这个话题,我打分成两文章来写,一陈q我所ȝ出的ZB/Sl构的RIA客户端数据处理的问题Q另一则陈述针对q些问题我所提出的技术解x案构架?/p>


二、RIAQRIAQ?/h1>

关于RIA其是基于Ajax的RIA怕是屡见不鲜了吧Q尤其是在Google推手之后Q文字处理、表格处理、灯片放映q种看v来非常客L的应用,都可以采用Ajax的技术来实现了。作Z个关注企业应用开发的技术h员,一个很自然的想法就会生,是否可以采用q种技术来改进我们ZJava EE技术开发的B/Sl构的企业应用呢Q?/p>


先说有没有必要,{案是肯定的。B/S被广病的一个问题就是降低了最l用L操作效率Q以我的l验来说Q用戯然普遍的感到Z览器的界面要漂亮得多,用鼠标操作也很直观,但是却实在比以前的界面复杂而且操作困难。而且每次面提交后的{待也实在是对工作效率的一个降低。当Ӟ我这里也没有必要意义列DB/S在客L的缺点,实际上这个问题是被广泛认同的?/p>


再说可行性,可行性分ZU:技术上的可行性以及工E开发上的可行性?/p>


技术上的可行性就无须验证了,Google Reader、Gmail、Google Docs的稳定运行都是非常好的证明?/p>


但是它是否一定适合旉要求相对比较严格的工E开发呢Q?/p>


q就需要一个非常稳定的q_来进行支持,而且׃工程开发的Ҏ性,最好还要有可视化的开发和调试环境才更有说服力。目前看来是没有非常完善的,但是很多的Ajax框架Q如Ext、GWT、Tibco GI以及服务端框架Struts2、JSF{,都在以自q方式实现着。关于这个方面的探讨我打放C一个系列《基于MDA的企业应用RIA解决Ҏ》里面讨论,不在q里多费口舌了?/p>


技术上是可行的Q而如果又一个非常稳定和成熟的^台支持的话,在工E开发上也是可行的,那么q个q_怎样才算是稳定和成熟的呢Q本pd讨论的就是其中的一部分Q客L的数据处理?/p>


三、定义、羃略语

下面是本文中使用的技术名词的定义以及~略语简介?br />
  1. RIAQ?/span>Rich Internet Application的羃写?/span>RIA是拥有传l本地应用的功能和效果的Web应用?/span>RIA一般把UI相关的处理交l了Web客户端,但是大量的数据(包括应用的状态、数据等Q还是交l服务端处理

  2. AjaxQ又写ؓAJAXQ是"Asynchronous JavaScript and XML"的羃写。是一U用浏览器技术进?/span>RIA开发的技?/span>

  3. ECMA ScriptQ由European Computer Manufacturers AssociationQ欧z计机刉商协会Q维护的一个脚本语a标准。当前最通行的版本是ECMA-262 Edition 3Q通常也被UCؓJavaScript 1.5

  4. dojoQ由dojo foundation理的一个开?/span>JavaScript框架。提供了很好?/span>JavaScript扩展Q目前被IBM?/span>Sun{大公司支持和?/span>

  5. JsonQ? JavaScript Object Notation的羃写。它是一U纯文本的数据对象传输协议,?/span>Ajax的应用中被广泛采?/span>

  6. CRUDQ?/span>CreateQ创建)?/span>RetrieveQ获取)?/span>UpdateQ更斎ͼ?/span>DeleteQ删除)q四U简单的数据操作的羃?/span>

  7. FormQ本文中?/span>Form指的是经q?/span>Ajax扩展的简单的HTML电子表单。表单内部可以拥有很多如ComboBox?/span>TextBox{构件。一般来_一个表单对应着一个业务的数据对象

  8. TreeQ树形显C结构化数据的构Ӟ׃数据是高度结构化的,往往可以采用懒加载等技术来提高性能

  9. GridQ以表格形式昄和编辑数据的UI构g。一般分_标题栏)、表w(数据列表Q和表尾Q合计、状态显C等Q三个部分。其中,表头可以是复合的表头Q而表w可以是复合的格式(Tree?/span>Grid?/span>ComboBox?/span>CheckBox{)。一?/span>Grid可以有一个复杂的Grid定义

  10. Enhanced GridQ下面简UCؓEGridQ是Grid的扩展。在Grid的功能基之上提供了数据获取和数据持久化的能力Q可以大大的减少开发应用的旉Q?/span>Ext中的Grid可以认ؓ是一?/span>化了的EGridQ?/span>

  11. CodeListQ代码表Q一般用在下拉列表数据处Q在pȝ的实CQ由于性能以及标准的要求,下拉列表一般都是采用代码保存数据,但是用户在填写表单的时候需要看到正常的文字而不是代码,q就需要系l通过CodeListq行文字和代码的转换

  12. LRUQ?/span>Least Recent Used的羃写,是一U简单的~存{略Q如果缓存已满,那么释放最q最用的那个~存数据

  13. RESTQ是REpresentational State Transfer的羃写,是一U基?/span>轻量U?/span>WebService协议


四、客L数据处理的技术场?/h1> 在本部分里将会针对下面六个分cd客户端数据处理的技术场景进行概q?br />
  • 数据l定Q?/span>Data BindingQ?/span>

  • 数据变更q踪Q?/span>Data Change TrackingQ?/span>

  • 数据讉KQ?/span>Data AccessQ?/span>

  • 数据~存Q?/span>Data CachingQ?/span>

  • 数据查询Q?/span>Data QueryQ?/span>

  • 数据处理Q?/span>Data ProcessingQ?/span>


4.1 数据l定Q?/span>Data BindingQ?/span>

概念Q?/strong>

以非常简单的声明方式实现Form?/span>Gridq种数据填写、修Ҏ件与数据之间的对应关pR?/span>


场景Q?/strong>

  • Forml定Q把一?/span>Form与一个数据对象通过声明的方式绑定,使得Form的修改直接可以体现在数据对象中,而数据对象的修改也可以马上由Form体现出来

  • Gridl定Q把一?/span>Grid和一个数据对象集合通过声明或者设|数据源的方式绑定,使得?/span>Grid上的写操作都可以体现在数据对象集合中Q而数据对象集合的操作也可以马上由Grid构g体现出来

  • Treel定Q由?/span>Tree的特D性,与其?/span>Tree与一个数据对象集合绑定,不如?/span>Tree使用了一个可以根据查询提供数据的数据来源更合适。当Ӟ׃Tree有可能被可视化的修改Q如l织机构理Q,所以这个数据来源必L持对数据的写操作

  • 其它Q如菜单的绑定等Q相对于上述三个都属于非常用的绑定,而且如果上述l定能够实现Q那么其他的l定也可以采用同L技术实?/span>

 4.2 数据变更q踪Q?/span>Data Change TrackingQ?/span>

概念Q?/strong>

Ҏ据的整个生命周期q行q踪。主要的目的是可以通过记录看出数据做了哪些改变Q然后根据这些改变做出相应的处理Q其使用场景?/span>Grid的变更提C?/span>Form修改的追t等?/span>


场景Q?/strong>

  • Grid变更提示Q在Grid中以明显的方式提C用户做了哪些修?/span>

  • 数据集合变更q踪Q根据变更的效果Q可以有选择的发送合适的数据l服务端q行处理

  • Form修改的追t:为用户在提交Form时提C用户哪些重要的字段q行了修Ҏ供支?/span>

4.3 数据讉KQ?/span>Data AccessQ?/span>

概念Q?/strong>

服务端与客户端数据传输的格式未必相同Q而且数据对象属性的cd{信息也需要一?/span>Meta Data API来进行支持。所以,抽象Z个抽象的拥有Meta Data的数据访问层是有意义的?/span>


场景Q?/strong>

  • 数据对象元数据信息访问:可以通过q些元数据信息了解数据对象的各个属性以及对应的数据cdQ这一点对?/span>Json格式的数据传输尤光要,因ؓJson规范里面没有DateTimecdQ?/span>

  • 数据写操作的l一事g定义Q通过Data Access API来访问数据,所有的写操作都会有l一的事件定义,?/span>JavaScript 1.5中,普通的JavaScript对象是做不到?/span>

  • l一的数据读取方式:不管数据?/span>XML格式的还?/span>Json格式的,讉K数据的方式都是统一?/span>

4.4 数据~存Q?/span>Data CachingQ?/span>

概念Q?/strong>

数据~存是指把获得的数据以一定的{略~存hQ以备用的技术?/span>Cache是客L数据处理中涉及到功能和性能的重要部分,原因误下面的场?/span>


场景Q?/strong>

  • ȝq行?/span>CodeListQ系l如果需要离U运行,那么CodeList肯定需要客L~存

  • ȝ表单填写Q如果允许用LU填写表单,那么需要采用客L~存{略保存用户的数?/span>

  • 性能考虑Q向服务端发hQ服务端查询q返回属于非常耗费资源和时间的操作Q所以对于服务端的数据,客户端应该有一定的~存以及同步{略

4.5 数据查询Q?/span>Data QueryQ?/span>

概念Q?/strong>

数据查询的概念非常简单,Ҏ用户的查询条件向服务端发送查询请求,得到服务端返回的数据对象集合?/span>

但由于数据查询是pȝ中最常用的功能,所以,数据查询需要非常强大的功能。简单列丑֦下?/span>


场景Q?/strong>

  • h查询Q给Z个样本,比如{age : 20, gender : 'male'}Q返回所有符合样本的l果

  • 模糊查询Q用户可以提供非明确的查询参敎ͼ如李Q?Q查询所有姓李的Q名字ؓ三个字的人)Q返回结果供用户q一步的{?/span>

  • Range查询Q根?/span>Start Index?/span>Countq回整个大数据集中的一部分Q一般用在分|询处理方面,当然也可以用在其他的需要整个数据集的一部分的地?/span>

  • 逻辑查询Q采用逻辑操作Ҏ据进行过滤查询,比如Q?/span>employee中所有满?/span>age < 40 && age >30 && gender = ‘male’ && married条g的员工——年龄大?/span>30且小?/span>40的已婚男员工Q,实际上上面所说的查询都可以以某种方式归ؓ逻辑查询的一U?/strong>Q之所以明的提出来,是因为查询的语法有可能有所不同Qƈ且有些构件或者服务会Ҏ些查询有特别的需求或者加强的支持以简化开发的隑ֺQ提高开发的效率

  • 自定义查询:Ҏ用户的需要可以对上面的查询进行有机地l合

4.6 数据处理Q?/span>Data ProcessingQ?/span>

概念Q?/strong>

在数据查询、显C、修改和持久化的q程中,用户有可能还需要做一些监控,以及一些自定义的操作,如过滤、排序等。这需要一套数据处理的事g以及数据处理的方法。这些统一归到数据处理用例中。列丑֦下?/span>


场景Q?/strong>

  • 数据处理事gQ数据的查询以及持久化过E中的事?/span>

  • 数据qoQ通过数据qoQ查询前、查询后Q可以满x限控制等功能的要?/span>

  • 排序Q可以对数据q行自定义的排序Q查询、查询结?/span>

五、小l?/h1> 客户端的数据处理能力是客L最主要的基能力Q它直接影响C应用服务器的负荷以及用户UI响应的速度和效率。所以,客户端的数据处理支持是一个RIAq_非常重要的考核炏V可以上面的六类场景去考核各种RIAq_Q同Ӟ它们也ؓ我提出我的RIA客户端数据处理解x案提供了基础的用例?br />


guitarpoet 2007-12-08 10:31 发表评论
]]> վ֩ģ壺 Ѹ߹ۿ| һƵ| һ߹ۿ| ޾ƷӰԺþþþþ| Ļ߹ۿ| ԾþþӰԺ| VAĻһ| Ůʮ·Ůbbw | AVƬɫ߹ۿ| ŷղwww| ˳߹ۿվ| ҹѸƬۿ| ø߹ۿ| ɫƵ߹ۿ| ߳ëƬڵ| 91鶹ѹۿ| רVAV| ŮֻѵƵ| ɫƵ߹ۿŷ޹ۺ| ĻѸ| һaëһaƵ| ҹѹۿ| avɫ㽶һ | è˳վ | ѹۿƬëƬ| ԻƵ30ӳ| ձѴ߹ۿ| ձ| aëƬѹۿƵ| ߾Ʒۿѹۿ| 99þþù| һaëһaƵ| Ƶ | ˳߹ۿ| Ļ˳޵Ӱ| þþƷ޾Ʒ| ޾ƷƷۺ| Ļһ| þù˾Ʒ| һĻ | Ƶ߹ۿƵվWWW|