《完美Excel》(第2期)发布了
《完美Excel》(第2期)终于发布了!希望大家多提建议。
本期主要内容为Office功能区的开发,汇集了大多数权威的基础资料,相信有兴趣的读者在学习后,会顺利地开发出适合自已的Office功能区界面来。
下载:
Excel资讯 技术 技巧 资源 应用 相关技术 …… 还有Excel外的生活
《完美Excel》(第2期)终于发布了!希望大家多提建议。
本期主要内容为Office功能区的开发,汇集了大多数权威的基础资料,相信有兴趣的读者在学习后,会顺利地开发出适合自已的Office功能区界面来。
下载:
很喜欢一些能够引起人共鸣的文字!往往让人体味良久,回味良久……
下面是InfoQ的电子杂志《架构师》中的一些卷首语,个人觉得写得很好,特摘录于此,与大家共勉。
《架构师》(试刊第三期)篇首语──合适就好
……语言、框架、工具等当然有好坏之分,但是如果只是将目光放在孰优孰劣上,而不能潜心研究并将其付之于实践,不就沦为“空谈”了吗。在目前所运行的软件系统中,我们可以看到其背后的平台、语言等是各种各样,MySpace是基于.NET平台的,淘宝网是基于Java的,而Google则推崇使用Python等,我还听说现在许多大型的电力系统还依然运行在C++平台上,这有什么关系吗?每门技术自有其缺点,但它们也都自有其优点,如果它的优点恰好能符合你的需要,用它就好了。重要的是,你有没有使用好它的能力。
还有个例子,是从前和BEA(现在已经被Oracle收购)的销售人员聊天时了解到的,他说现在BEA的WebLogic产品在日本市场很好,但是他们用的多是5.0或者6.0的版本,我们试图说服他们更换到最新的10.0版本上,他们丝毫不为之所动,还很纳闷地问我们:现在系统运行的很稳定,为什么要换?另外,你会发现这些产品的支持工程师对产品的特性、功能和管理等理解的非常深入,每一个能够优化的地方都进行了调整优化。
这儿提“合适就好”并不是说让我们不再追求进步,而是强调对任何一个策略、技术平台或者语言、工具,如果我们没有做选择,那么就根据自己的系统选择最合适的(而不是最好的),而一旦做了选择,那么就深入地研究,发掘它们的潜力,而不是在选择面前犹豫徘徊。
《架构师》(8月刊)技术的乐趣
在中国的技术圈子里,流行着这样一种说法:过了三十五岁,就一定得改行。在技术飞速发展的今天,只要稍不留神,就会掉下队来。因此,诸多技术工作者在仔细权衡利弊之后,终于还是决定跳离技术这个是非之地,将工作机会让给那些更青春更朝气的年轻一辈们。
当然,还是有相当一部分的技术从业人员对这种说法很不以为然。一方面,技术工作的人际关系相对简单,这对于不喜欢权术政治的人来说,无疑有很大的吸引力。有位朋友曾经跟我说:“比起和人打交道,我更愿意和机器打交道”,相信抱有类似观点的朋友不在少数。而另一方面,技术给人带来的乐趣和满足感,往往是最吸引人的地方,让人沉迷其中,难以自拔。通过指尖流淌出的一行一行代码,拥有超乎想象的力量,不但可以承载数亿次的访问,还能够猜到你喜欢读什么书,喜欢听哪种音乐。这些代码,才是整个世界信息化建设的基石;而技术人员,才是IT行业真正的核心和价值所在。
有一个形容,说程序员就是魔法师,只要在键盘上输入正确的咒语,系统中相互啮合的齿轮便开始运转起来。技术很大程度上满足了人类原始的创造欲。还记得第一次成功编译一段代码,在屏幕上打印出“Hello World”的喜悦吗?那种愉悦有多纯粹多美妙,相信只有技术人员自己才能体会得到吧。通过架构改造,让一个系统的吞吐量翻了几倍;通过代码重构,让一个项目的代码量变成原来的几分之一;通过算法创新,让识别用户自然属性和预测用户行为成为可能。以上种种,皆是乐趣,妙趣横生。
喜爱,方能专注;专注,方能成功。与其做无谓之争,不如踏踏实实静下心里,品味技术的乐趣,寻找简单的快乐。用自己的双手改变世界,帮助他人。正是这种自豪感,支撑着我在技术上一路走来,相信还会伴随着我继续走下去。不知道作为读者的你,又是如何抉择的呢?
《架构师》(9月刊)篇首语:不要生活在真空中
很多时候,我常常听到那些有志在技术上有所成就的工程师表示“宁愿和机器打交道也不愿意和人打交道”。而发出这种论调的,尤以刚刚踏入工作岗位的工程师居多。的确,和人相比,机器的可控性要高得多,而且只要你掌握了足够的技能,它基本上就会任你摆布,唯命是从。此时,对机器而言,你就是上帝。对此,Brooks在《人月神话》中这样写道:“我想这种快乐是上帝创造世界的折射,一种呈现在每片独特、崭新的树叶和雪花上的喜悦”。相反,与人打交道就没有这么轻松了。这其中不可避免的要有说服、妥协、耍心机等等一系列的活动,用一个词来形容就是“累”。
可是,有一点被这些工程师们忽略了,那就是如何判断你在技术上有所成就了?或者更通俗的说,你怎么知道自己已经是牛人了?人是一种存在感很强的动物,这种存在感在和他人进行比较或者得到他人的认可时会大大加强。说到底,你必须和他人接触才能得到问题的答案。在这一过程中,和人打交道自然无法避免。结果,“只和机器打交道”只不过是自己的一厢情愿罢了。从另一方面来讲,技术人员执着于技术,无非是想通过自己最擅长的手段去体现个人的价值。但是,仔细想想便会明白,所谓价值,它是不会凭空体现的,它必须要有个载体,这个载体就是需求。没有需求,自然就没有价值。而需求本身则是非常个性化的东西,为了能展现出自己的价值,你就得千方百计的去了解需求,并最终将其解决。到头来,你会发现你已经和不少人打了交道。
既然不可能与世隔绝,为何不干脆直面现实?既然横竖要做,为何不开开心心的做?天堂还是地狱,只在一念之间。
以上文字不过是笔者毕业以来的一些个人感悟罢了。而我之所以啰啰嗦嗦写出这些,只不过是想说明,要想成为一名优秀的架构师,沟通是你必须学会的技能。而且它也是你最重要的技能之一。为什么这么说?因为在我看来,你的架构合不合理,有无价值都得由需求说了算。只有在搞清楚需求的前提之下,才有可能去构建出优秀的架构;否则,要是需求弄错,即便你的架构在你看来是完美无缺,但在客户那里,它也是一文不值。除了和客户沟通,将你的设计意图很好地向你的团队传达同样也很重要。换句话说,你得和你的团队进行沟通。软件行业发展到今天这个程度,单凭一己之力去构建一个大规模系统,几乎已经成了不可能的任务。在每个成功软件的背后,都有一个成功的团队。“默契”是这些团队的共同特征,而这其中,架构师和团队成员之间的通畅沟通发挥着至关重要的作用。缺乏沟通,就好比拥有优秀的大脑和强健的体魄,但却没有发达的神经网络,到时指东打西,南辕北辙也不是什么新鲜事。
平心而论,但凡一个人,只要他还有理智,基本上不存在沟通的问题。而大多数令技术人员不愉快的沟通,也是因为技术人员只注重个人技能的修炼,而不费心沟通技巧的结果。再加上和人打交道的时间本来就少,久而久之,沟通技巧便越来越差。一旦面对他人,其效果可想而知。然而,作为社会性的动物,人不是生活在真空中的。要想达到自己的目的,实现自己的理想和抱负,你必须学会和他人合作,而所有这些的前提都是有效的沟通。
作为本期杂志的开篇语,罗列沟通技巧显然不是本文的目的,况且InfoQ中文站上的敏捷社区中已有不少文章对此已有专门论述,笔者在此就不再作学舌之语。最后,在各位阅读本期杂志的正文之前,容笔者再唠叨一句:“功夫在诗外”。
《架构师》(10月刊)篇首语:保持一颗好学之心
初见这个题目,许多人可能会对自己相当满意:“我还是很好学的”。真的是这样吗?个人之见,有不少人其实并不像他们想象的那么好学,尤其是那些有了一定经验,在某些方面有些过人之处的“聪明”之人,随着技术水平和自信心的积累,往往丢失了好学之心,而他们自己却浑然不知。对此,去年Infoq刊登的一篇新闻《初心,聆听之术》谈到了如何保持学习心态的问题。或许有人要说,好学与否,真的就那么重要吗?工作如期、按质完成不就得了。好学不好学,无非就是其自身修炼的心态发生了变化,难以进步而已。确实,对于一般的程序员来说,仅此而已。但是如果此人担负着重要的角色,比如架构师,或领导者,那就得另当别论了。他的固执和自负,不但会使其丢掉好学之心,而且难以接受别人的建议,甚至造成与其他人沟通不畅,这样,整个项目和团队都将受到影响。另外,如果没有充分利用好一些新的、成熟的成果或共享资源,凡事都自行研究,这无异于闭门造车,代价高昂而难以保证质量,在竞争中将自己摆在不利的位置之上。毕竟,IT行业的发展已经不是前些年那种“闭塞”的局面了,互联网极大的推动了各种信息及制品的流通。在互联网上,信息的传递与共享速度是以前所无法比拟的,共享资源也是异常丰富。如果我们能够充分利用这些信息以及共享资源,可以节约大量宝贵时间,从而更快更好的达成目标。这就更要求我们始终保持一颗好学之心,充分摄取各种有用资源及信息,将其应用于自身的工作任务当中,以便又快又好的完成任务。同时通过运用成熟先进的框架和工具,也能大大提高项目的质量。
当然,对于新技术、新方法、新框架的运用也要根据实际需求而定,不能走另一种极端,而应充分了解其特性,仔细筛选,逐步采用。这也要求我们有非常强的学习能力,能够快速准确掌握这些技术、方法、工具、框架的特点、适用范围及场合。因此,我们要时刻保持一种初学者的好学之心:“那是一种不包含预测、评判、和偏见的纯朴心态。是探索、观察并发现事情本质的一种表现。”而不应有一颗“专家之心”:“认为自己知道一切,因而关闭了学习之门”。
《架构师》(11月刊)篇首语:修炼技术全局观
很高兴能在这期的架构师中与大家见面。这次,我想和大家谈谈“技术全局观”这样一个概念。下面,我将简单探讨一下何谓技术全局观、为什么要具备技术全局观及如何修炼技术全局观。
所谓技术全局观,指在某个技术领域里,对其中的技术有一个全面了解,对这些技术具体情况做到心中有数;但是,全局观并不要求对所有技术中的细枝末节都烂熟于心。重要的是,学习技术不仅要知其然,还要知其所以然;理解各种技术相互之间的关系,它们搭配协同的方式;了解各种技术演变的历史,发展的趋势;明白各种技术的适用情况,知道它们的优缺点;等等。
对于架构师这样的角色来说,具备技术全局观是必需也是必然的要求。由于架构师(特指应用或解决方案架构师)的职责就是要技术和业务结合起来,把正确的技术用来解决业务问题。假设,对涉及领域的技术没有一个全局的理解,试问如何把技术正确应用起来呢?而且,也只有具备了技术全局观,才能对不断推陈出新的新技术做到快速学习,快速融入到技术体系中,并用来事半功倍地解决实际问题。
冰冻三尺非一日之寒,滴水石穿非一日之功。要具备技术全局观也需要一个长期的学习积累过程,需要不断的实践和总结。不过,要修炼技术全局观,还有一点不能忽视——主动意识。要主动全面深入地学习技术基础原理,要主动思考各个技术点间的关系,要主动弄清楚各个技术存在、设计和演化的缘由,要主动分析各种技术的不足并尝试思考解决方法,要主动开放地接受本领域甚至跨领域的新技术并加于适当应用。
《架构师》(12月刊)篇首语:时间总是不够用
The Matrix中经典台词很多,然而最让我印象深刻的,却是Morpheus的一句并不起眼的台词:“Time is always again us”,中文大意是“时间总是不够用”。是的,不仅仅是时间,人力、设备、预算,经常通通都不够用。资源总是宝贵的,资源也总是紧缺的。
开发人员都会遇到类似的问题,团队成员人力不足,或者项目进度太紧,又或者再多加两台服务器才能够满足性能要求,但是已经没有那么多预算了。资源在项目开发中,似乎总是不够用。开发者们都是追求完美的生物,他们都在力图保持着事物最接近完美的趋势。因此,资源问题往往让开发者们头疼不已。再多几个人,这个项目一定能按时发布;再多三个月,这个项目的BUG一定会少很多;服务器的配置再好一些,这个系统一定不会像现在这么慢。类似的抱怨,相信大家一定不会陌生。
资源受限是开发过程中的常态。我们在追求完美的同时,身上也负着沉重的枷锁。不管有多少资源,可能最终还是不够用。这对于开发人员来说,是一个难题,但更是一个有趣的挑战。既然不能“开源”,那我们还可以“节流”。我们可以让团队更加敏捷,从而消除开发过程中的浪费,提高团队生产力。还可以通过更高效的设计和更精心的优化,提升硬件利用率。珍惜每一分可以节约的资源,充分地利用资源,这是一门功夫,更是一门艺术。与其抱怨,不如改变。有心者,依然可以戴着镣铐翩翩起舞。
时间总是不够用,但是Morpheus还是成功了。相信成功之时,资源问题便不再是一个抱怨,而是一种炫耀的资本了。我很高兴看到那一天的到来,仿佛勋章一样,记述着当年开发者们和资源斗争的传奇。
又是暂新的一年!
在这里,给大家送上迟到的祝福:Happy New Year!
找到了Andy Pope制作的两个Excel工作簿,与大家分享Excel带来的乐趣。
如下图:

使用标准的XY图表构造,通过工作表公式计算图表数据,通过滚动条人工控制显示屏移动,也可以使用VBA自动控制移动。也可以通过Alphabet工作表构造自已的字体形状。
原工作簿下载:
原文链接:http://www.andypope.info/fun/pixilate.htm
如下图:

用户能够控制发射焰火的数量,以及火花的数量和重力的影响。这也是通过使用XY图表实现的。
原工作簿下载:
原文链接:http://www.andypope.info/fun/fireworks.htm
哈哈……过瘾吧!这又一次验证了:实现不是问题,就怕你没有想象力和创造力。
微软官方在Office商店公开了Office Pro 2010 Beta的下载,通过登录自己的LIVE ID之后,直接获取下载地址和KEY,并可免费使用到2010年10月。
Office Pro 2010 Beta中文版,包括Word、Excel、PowerPoint、OneNote、Access、Outlook、Publisher组件,组合了在任何地方创建、编辑和共享文档所需的一切。
Office Professional 2010 Beta获取地址:
http://www.officebeta2010.com/referrer.aspx?r=f4c00acb-c1cb-45d2-a665-711ba1e4faa4
让我们来看看Andy Pope的作品:RibbonX可视化设计器(RibbonX Visual Designer),作为系品RibbonX细列的结尾。
首先,在下列地址下载RibbonX可视化设计器加载项:
RibbonX Visual Designer
或者:
然后,将该加载项装载到Excel中。此时,在“开发工具”选项卡中出现名为“Ribbon Designer”的组,带有两个命令按钮:Load RibbonX和Designer,如下图所示。

LoadRibbonX用来处理已存在的文件以维护RibbonX信息,如下图所示。中间的树形目录框列出了通用的选项卡和添加的组件,右侧显地了自定义的XML代码(当然,根据顶部的选项卡不同可以显示不同的代码)。

Designer用来设计功能区,如下图所示。

这是一款针对RibbonX定制而开发的图形化设计器,版本1.6,如果获得最新版本的信息,可以访问Andy Pope的网站。