好吧,我是一个懒人。
刚刚折腾完了Vim的配色我就想着要实现代码的自动补全了。一开始不知道需要添加什么插件,直到搜索了一下才知道原来VIm对代码补全的支持做的很好。
只需要在_vimrc中添加几行:
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascrīpt set omnifunc=javascrīptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
这下,Vim就已经支持对python,javascript,html,css,xml,php和C的自动补全了,在写代码的时候按Ctrl+x和Ctrl+o就可以看到一个供选择的列表了。
爽。
Category Archives: Endless Learning
Vim的代码补全功能
修改Windows下Vim的配色
一直以来只是看到很多朋友向我推荐Vim说这是一款实用而且强大的编辑器。
但是,那个时候我一直觉得现有的编辑器已经够用,为什么要为了一个编辑器去记忆那么多快捷命令? 实在有些匪夷所思。
直到上星期五的时候,我决定还是体验一下Vim的强大好了,没想到,不用则已以用就发现我被折服了。果然Vim被这么多朋友爱戴不是没有道理的。
不过,默认的gVim实在是难看。我决定修改一下gVim的配色方案和字体。可是,我一直头疼在怎么保存设置。如果每次打开编辑器再修改也太麻烦了吧。
后来,终于被我发现,需要修改 $Vimruntime(这个代表你在磁盘上的安装路径)下的_vimrc这个文件。我这里用C:\Program Files\Vim 来表示。
首先用 :e c:\Program\Files\Vim\_vimrc 来打开这个文件
然后在最后的时候加上
colorscheme evening
set guifont=Lucida_Console
这么两句。按“ESC” 再:wq 保存退出就可以了。再次打开gVim的时候就是下图的样子啦。
很多人推荐torte这个配色方案。我个人觉得还是evening看着舒服些。同样,字体我比较推荐Lucida_Console,仁者见仁吧。
刚开始学习Vim,特地在这里记一笔。
iPhone Human Interface Guidelines中文翻译(2)
iPhone Human Interface Guidelines
这部分内容是我在空余时间的翻译联系。中间可能存在一些翻译的不准确,如果您在阅读的过程中发现这类问题,请和我(chouti AT Gmail.com)取得联系。当然这部分翻译内容请勿用作商业的使用。转载请注明来源和保留以上声明。
第一部分计划你的iPhone软件产品
iPhone人机交互界面指导的这一部分描述了关于为iPhone操作系统设计和开发软件的想法,和表现了成为优秀的软件设计的基本原则。阅读这一个部分来学习你可以为iPhone操作系统开发的不同软件类型和你可以运用到你工作中的设计原则。你也可以学习到如何在你的程序的外观设计中如何运用这些原则,所以你可以创造一个顶级的产品提供直观的强制的用户界面。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++The iPhone OS Platform: Rich with Possibilities
iPhone的操作系统支持数目众多的软件,从用户在iPhone中内置的Safari浏览器浏览的网页,到原生的运行在基于iPhone操作系统移动设备的程序。本章主要讲述你可以为基于iPhone操作系统设备所开发的不同类型的软件解决方法。
如果你是这个平台的新手,那么请务必从“总览各个系统的不同”这个总结iPhone操作系统设备和电脑之间的不同这部分开始。虽然在这一节中的信息不是非常全面,但是它一针见血地指出了你在设计iPhone软件时需要注意的问题。
为了帮助人们计划一个iPhone程序,这一节描述了思考不同程序风格和定义他们的典型特征。这一节也描述了那些Mac OSX附带的软件是如何移植到iPhone操作系统上来的。如果你有一个想要移植到iPhone操作系统的Mac OSX软件,你关键需要理解这个步骤。
纵览各个系统的不同
一个基于iPhone操作系统的设备不是一个台式电脑或者笔记本电脑,所以iPhone程序也不是和台式机的程序一样的。虽然他们看起来只不过是通用的状态,虽然如此,至关重要的是去保持他们,就好比你在其他设备上开发软件一样容易上手。
============================================================================================注意:如果你只是需要为基于iPhone操作系统设备设计一个只有网上内容的程序,你可能已经对于不同的平台对你造成的影响非常熟悉了。如果不是,你可以在iPhone为Web程序的人机界面指导中得到更多的内容。这一个部分主要关注于不同的平台是如何对你开发那些原生的iPhone程序造成影响的。=============================================================================================
为基于iPhone操作系统的设备设计软件需要它是不是可以成为你的第二天性这样的想法。详细点说,如果你的大量经验都是在开发桌面程序的话,你需要认识到在桌面电脑和移动平台上设计软件有那些重要的不同。
这一个部分总结了在你设计决定是有很高潜在影响的具体不同。对于如何来处理这些不同以及你iPhone程序开发过程中遇到的其他问题的具体信息,请参考iPhone操作系统编程指南。
Technorati Tags: iphone, human interface, guideline, translate, chinese, iPhone OS
iPhone Human Interface Guidelines中文翻译(1)
iPhone Human Interface Guidelines
这部分内容是我在空余时间的翻译联系。中间可能存在一些翻译的不准确,如果您在阅读的过程中发现这类问题,请和我(chouti AT Gmail.com)取得联系。当然这部分翻译内容请勿用作商业的使用。转载请注明来源和保留以上声明。
Introduction++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++重要:这是一份对API或者开发中的技术的初步文档。虽然这份文档已经在技术的正确性上做过了检查,但这不是最终的检查。Apple提供这些信息来帮助你们计划采纳在这份文档中描述的技术和程序界面。这个信息是会被改动的,而且软件根据这份文档执行需要在最终的操作系统和最终的文档上来确认。这份文档将包含新的API和新的技术再发布。关于更新这份文档和其他开发文档的信息,请查看在后来的文档中侧边栏的New&Update。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
iPhone和iPod touch 是在一个久经考验的设备(iPod)上整合了革命性的多点触控界面,这个界面具有很多强大特性,比如电子邮件和即时消息的能力,支持全部特性的浏览器,iPod,当然在iPhone中我们还加入了移动电话模块。iPhone操作系统是运行在iPhone和iPod Touch 上的系统软件。随着iPhone SDK的出现,这些强大的特性会被扩展成为开发者有意义的机会。更进一步,对创建基于iPhone操作系统的网络内容来说,开发者可以使用这个SDK来创建原生的程序,人们可以在他们的设备上直接使用和存储。
通过阅读这份文档学习你可以为iPhone操作系统开发的程序种类的范围和人机交互设计的原则,这些来自于其他所有优秀的程序的信息。在这份文档中,你也可以学习当你在设计一个程序时怎么来遵循这种顶级的用户界面和用户体验的原则。不管你是富有经验的计算机程序开发者,还是一个经验丰富的移动设备程序开发者,或者是这个领域的新手,这份指导会帮助你做出用户想要的iPhone程序。
Organization of This Document
iPhone 人机交互界面指导被分为两个部分,每个部分都包含了一个章节:- 第一部分,“计划你的iPhone软件产品”描述了iPhone操作系统环境和你能为它开发怎样的软件。它同样包含了从一切优秀的软件得到的用户界面的人机界面设计的基本原则,它还描述了如何去在你的iPhone程序上遵循这样的原则。- 第二部分,“用iPhone操作系统用户界面元素进行设计”探究了你用来创建你iPhone程序的那些组件。它描述了你可以得到的多样的视图和控制方法,同样也提供了如何有效地使用他们的指导。
Technorati Tags: iPhone, gudieline, translate, Human interface, document
OS X Human Interface Guidelines(2)
注意:这个是我对OS X Human Interface
Guidelines的翻译练习。没有得到官方的授权,正式的文档可以在http://developer.apple.com
得到。请不要做商业性的转载。文中如果有什么不当的地方,还希望大家可以和我一起探讨。
What Are the Apple Human Interface Guidelines?这份文档是Mac OS X主要的用户界面文档. 它提供了为Mac OS X 10.5的Aqua界面设计的详细参数,虽然一些信息可以使用在Mac OS X之前的版本上。
Aqua是Mac OS X的总的外观和行为。Aqua定义了像窗口,菜单和控制这些组件的用户界面的标准外观参数,还赋予了外观上不把文字和图像混淆,阴影,透明度,和慎重地使用色彩。Aqua传达了标准化了的统一的行为和促进通过动态通知,视觉效果等等来表达的清晰的沟通。遵循Aqua的标准来设计可以保证你提供最佳的用户体验给你的客户。
Aqua在Cocoa,Carbon和Java软件上都可以做到。对Cocoa和Carbon程序开发来讲,Interface Builder是一个开始打造Aqua标准图形用户界面的最好方式。如果你在把现有的Mac OS9的程序移植到Mac OS X上,请参照Carbon移植向导(Carbon Porting Guide)。Java开发者可以使用Swing工具包,这个包包含了Aqua界面看起来和Mac OS X一样。
Who Should Read This Document?任何一个为Mac OS X开发程序的人需要阅读和对文档的内容变得熟悉。这个文档包含了在机械学中用软件设计的原则和信息来做方针的撬动Mac OS X技术的设计优秀的用户界面。
Organization of This Document这个文档主要分成3个主要部分,每个部分都包含了几个章节:*第一部分,“程序设计方针”描述了纲要的设计原则在整个设计程序的过程中一直保持遵守。*第二部分,“Macintosh体验”讨论了很多Mac OS X用户习惯使用的技术。你可以得到这些技术的更进一步信息来使你的开发进程变得合理化,保证你的程序在整个操作系统中有一个良好的表现。*第三部分,“Aqua界面”描述了Mac OS X Aqua用户界面。它解释了你可以用到的特定用户界面组件和包含了广泛的怎么使用以及在你的程序上实现的指导。
一些这些地方你可以得到补充的信息:* 在“键盘快捷方式参考”中得到一个Mac OS X推荐的和保留的键盘快捷方式。* 在“文档版本历史”中得到一个这份文档在这么多版本的转变中的一些变化。* 在“词汇表”中得到一个在这份文档中使用的词汇和他们的定义。
Technorati Tags: Mac, OSX, Scrap, Guideline
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【9】【完】
注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.3.2 数据完整性数据完整性测试是在你的数据库表中查找错误数据的过程。这个测试和你在测试商务层的时候进行的数据验证不同。数据验证主要是要找到在数据收集的时候有什么错误发生。数据完整性的检查是努力找到你存储数据过程中的错误。
很多因素会影响到你如何去存储数据。数据的类型和长度可能使得数据被截断或者损失精度。比如在日期和时间区域中,时区的问题就会发生。比方说,你存储时间基于客户端的本地时间,还是Web服务器,程序服务器还是RDBMS的本地时间?国际化和字符集可能也会影响到数据的完整性。比如,多字节的字符可能占去两倍的存储空间,另外他们也会导致查询时得到一些填充的无用数据。
你还应该调查一下你程序所使用到的查询/参考表格的数据准确性,比如消费税,邮编,还有时区信息。不只是你必须确保这些信息是对的,你还要保证他们能得到及时的更新。
9.3.3.3 容错和可恢复
如果你的电子商务站点依赖于RDBMS,那么这个系统必须一直开着保持运行。在这个方案中几乎没有可以停下来的时间。因此你必须测试你数据库系统的容错和可恢复性。
数据库操作的一个目标,通常来说就是把MTBF最大化和MTTR最小化。你应该在你电子商务站点的需求文档中找到标明的这些数值。你测试数据库系统的强壮程度的时候你的目标上就是要超过这些数值。
MTBF的最大化是依赖于你数据库的容错等级。你可能有一个可以让你在主系统发生问题时把主数据转移到一个新的数据库的容错转移结构。如果这样的话,你的顾客只是感觉到一个很短暂的服务停顿,但是系统还是可以用的。另外的方案就是你在你的程序中建立一个容错转移系统,当你的数据库当机的时候对系统的影响会很小。你的测试将会依赖于这个结构。
你还需要考虑数据库的恢复,这也相当重要。数据的恢复性测试的目的在于创造一个你无法恢复数据库系统的方案。在某些时候,你的数据库可能会崩溃,所以你必须有一个快速恢复它的步骤。恢复的计划,在开始需要包括一个对备份的验证。如果你不能在可恢复性测试时恢复数据库,他们你需要改变你的备份方案了。
-EOF-
Technorati Tags: Art of software testing, internet application test
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【8】
注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.3 数据层的测试
一旦你的站点开始运行,你收集到的数据将会变得非常有价值。信用卡号码,支付信息,和用户资料是你开设你的电子商务站点时将会从用户哪里收集到的信息的一些例子。如果你丢失了这些数据,损失是非常惨重的,而且可能使你的业务变成残废。因此,你必须开发一个程序来保护你的数据存储系统。
测试你的数据层主要由测试你程序用来存储和检索信息的数据库管理系统所组成。小型的站点可能在文本文件中存储信息,但是大型的复杂的站点使用的是企业级的全面的数据库。根据你自己的需求,你可能这两者都会用到。
和测试这个层面相关的最大的挑战是重现产品的环境。你必须使用和现实一样的硬件和软件来验证测试。另外,一旦你得到了财务和人力的资源,你必须开发一个保持你的测试环境和产品环境相互同步的方法。
就像其他层一样,你必须在测试数据层的时候找到哪个特定的区域有错误。这些错误包括了下列的:.相应时间。DML(SQL INSERTs,UPDATEs,和 DELETEs)的定量完成时间,查询(SELECTs)和执行。.数据完整性。验证数据正确的存储着。.容错和可恢复性。MTBF的最大值和MTTR的最小值。
9.3.3.1 响应时间慢速的电子商务程序会使得客户不愉快。因此,你应该想办法保证你的站点在用户需求和动作之后的相应时间。在这一层上测试的相应时间不包含页面的载入时间,但是主要专注于定义数据库操作是不是达到了性能标准。当测试数据层的相应时间时,你必须保证个体的数据库可以很快的操作,不会成为其他操作的瓶颈。
不管怎么说,你开始衡量数据库操作之前,你必须明白数据库由什么组成。就这个讨论来讲,数据库的操作包含了在RDBMS中对数据的插入,删除或者查询操作。衡量相应时间简单的是包括决定每个操作占用多长的时间。你不需要对衡量执行次数太过关心,因为他们可能包含在多数据库操作中。在测试商务层的时候外观的执行速度测试已经做过了。
因为你想要定位数据库的错误,你不想测试数据层的响应速度是衡量完成交易的速度。在整个执行的过程中,太多的因素会影响到测试的结果。比方说,如果用户试着取回自己资料的时候耽误了很长时间。你应该决定那个是操作中存在的瓶颈。是在SQL 声明中还是Web服务器还是防火墙中?如果单独测试数据库操作,使得你可以确认问题。在这个例子中,如果SQL声明写的很差,在你测试响应时间的时候它会自己显示出来。
数据层的响应时间测试是充满挑战的折磨。你必须有和你产品一样的测试环境。否则,你可能得到不正确的测试结果。同样,你必须对你数据库系统有一个直观的了解来确保它是正确地设置和高效地运行。你可以找到数据库运行低效的原因是因为RDBMS被不正确地配置。
通常来说,你对响应时间的测试大多数时候是用的黑盒方式进行测试。你所关心的是数据库执行所花去的时间。有很多工具可以做这个事情,或者你可以自己写一个。
Technorati Tags: Art of software testing, internet application test, data
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【7】
注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.2.2 数据验证
商务层的一个非常重要的功能就是要确保你从用户那里收集的数据是正确的。如果你的系统运作在像错误的信用卡号码或者错误的地址这样的不正确的信息上的话,就会发生含义错误(歧义?)。如果你运气不好,那么这些错误将会导致你和你的客户发生财务上的问题。你测试数据收集的错误就应该像你测试独立的程序时的用户输入或者参数错误那样测试。请参考第5章来取得设计这些测试用例的信息。
9.3.2.3 业务处理测试
你的电子商务网站必须一直100%地正确处理交易业务。不能有例外。客户是不会容忍失败的交易业务的。另外,名声上的污点也会导致顾客的流失,你还可能因为失败的业务招来法律责任上相关的麻烦。
你可以在测试商务层的时候,考虑像测试系统测试一样测试业务流程测试。换句话说,你从头到尾地来测试商务层,试着揭露问题。再说一次,你应该有一份制定整个业务交易的详细流程文档。它到底是用户怎么在站内查询,填充购物车,或者还是只是由购买的流程所组成?
从一个典型的互联网应用来讲,交易业务的组成远远比财务上的业务交易要复杂的多(比如处理信用卡)。客户在整个业务交易中产生的事件主要包括以下一些:.查询存货清单。.收集客户想要购买的物品。.购买物品,当然这中间除了进行财务的交易处理以外,还包括了交易税和运输费用的计算。.通知顾客这个交易已经完成,这通常是用E-mail来完成的。
除了测试内部的交易流程,你还必须要测试外部的服务,比如信用卡的验证,银行还有地址的认证。你基本上使用第三方的组件和财务机构在指导财务交易时定义好的交流界面。不要认为这些项目已经很好地工作着了。你必须测试和验证你可以和外部的服务沟通还有你从他们哪里收到正确的反馈。
Technorati Tags: art of software testing, internet application test, data
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【6】
注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.2.1性能测试
糟糕的互联网程序使你的用户怀疑你网站的强壮能力,而且会让顾客离开。冗长的页面和缓慢的下载速度就是这中差体验的典型。为了帮助达成足够的性能水平。你需要保证,操作仕样已经在需求收集的阶段就已经写好了。如果没有写好仕样或者目标,你没办法知道你的程序到底运行的怎么样。操作手顺经常一条一条地列出相应时间或者吞吐率。举例来说,一个页面载入了x秒,或者程序服务器一分钟完成y张信用卡支付。
通常的捷径是,你可以用压力测试来当做性能测试。通常来说,对系统的需求变得过载的时候,系统的性能表现将会下降到一个不能使用的点。这可能是导致时间敏感型处理程序失败的原因。当然程序的错误将会导致你的顾客浪费金钱。压力测试的概念我们在第六章中就提到过了,可以用到测试商务层的性能上。
我们来做一个快速的回顾,压力测试包含了用过多个登录和模拟处理来使得程序出错,你可以以此来判断你的程序有没有达到一个性能的目标。当然,你也需要一个典型的用户访问模型来验证结果。只是载入主页不等于传输购物信息和处理交易。你应该使系统承受重压来暴露过程上的错误。
压力测试也允许你调查你网络构造的坚固和轻装。你可能会觉得你的程序每秒钟只处理x个交易是一个瓶颈。但是进一步的调查显示配置不正确的路由,服务器,或者防火墙的浪费了带宽。因此,你应该保证之前用来进行压力测试的的网络结构是支持的。而不是做了很多之后得到一个错误的结果。
Technorati Tags: artofsoftwaretesting, internet application, performance
怎么在Wordpress MU中开启注册这个链接?
昨天还在问我爱水煮鱼,怎么在WP MU中打开“注册”这个链接。今天就在WP MU的文档中找到了答案。
要打开“注册”这个链接,需要在管理员后台打开“anyone can register”这个功能。应该是任何人都可以注册用户的功能,而不是任何人都可以注册用户并开启Blog这个功能吧。
然后,编辑header.php
<body> <div id=”rap”> <div id=”header”> <ul id=”topnav”> <li><a href=”http://blogs.sitename.com/”>blogs.sitename.com</a> | </li> <li><?php wp_register(’ ‘ , ‘ ‘); ?> | </li> <li><?php wp_loginout(); ?> | </li>
OK,这样应该就可以了。但是具体的还没有时间试验,等到回家之后或许可以试验一下。当然,我觉得这个链接也不一定需要出现在header中,如果你设置了单独的首页入口的话,也是一样的。
Technorati Tags: wordpress mu, code, project azz

