Archive for December, 2005

我是 MS Office 文盲

2005-12-14 08:56 | by 2ndboy

  我一年当中使用 Word 和 PowerPoint 写东西的机会屈指可数,要写也是非常简单的格式,所以里面百分之九十的功能都不怎么会用,可以说是个标准的 MS Office 文盲。最近由于要在公司里做培训所以要用 PowerPoint 做课件,算是跟 PPT 亲密接触了一把,下面记些心得。

  PowerPoint 里面有个模板的概念,一旦应用了模板将会改变整个演示文稿的外观。这有点像是做网页时 CSS 扮演的角色,可以方便快捷的将文档设定成同一的风格。为了把演示文稿做成公司里通行的风格,我打算把手边以前其他人做的 PPT 里面的模板用在自己的 PPT 中。开始打开那个文档,另存为设计模板成功,但是在我的文档里把另存为的设计模板应用时却把整个文档都复制过来了,总不能一页一页再删掉吧?!经过一番摸索,现在把成功经验记在这里:-)

  想要把其它 PPT 中的模板应用在自己的 PPT 中可以这样操作:在我们自己的 PPT 中空白处点击右键,在快捷菜单中选取“应用设计模板……”,在应用设计模板对话框中把文件类型改成“所有文件”,然后选中想要借用模板的 PPT 文件,点击“确定”按钮后就可以把别人的模板应用到自己的 PPT 中了。

  一般别人做好的 PPT 都比较大,老存着拿来用里面的模板也不方便,有办法把里面的模板直接“扣”出来吗?可以这样操作,新建一个空白演示文稿,然后按上面说的步骤先把模板借过来,然后在文件菜单中选择“另存为……”,在另存为对话框中将文件类型改成“演示文稿设计模板(*.pot)”,这样就可以把模板单独保存下来以备后用了。

  另外在 PowerPoint 里面的两个东西让我晕了好一阵子才搞明白,一个是“设计模板”一个是“母版”,后来试了几次才搞清楚,设计模板里面可以包含几个母版,只是母版只有几种有限的类型,比如“标题母版”、“幻灯片母版”。如果 PPT 应用了一个具有多个母版的设计模板的话,则将 PPT 中的某一页的版式进行修改就可以套用不同的母版了。

  呵呵,一直都对 Office 里面的一些组件不太了解(我用的最熟的就是 FrontPage 了),今天弄清楚了 PowerPoint 的设计模板还是挺有成就感的:-)希望上面分享的东西对大家有用。

《战争之王》

2005-12-11 22:42 | by 2ndboy

  确实是部好片子!整部片子充满了黑色幽默,全片的第一局台词就让我有点意外,Yuri 站在满是弹壳的大街上说:“全世界有大约五千五百万只枪,也就是说每 12 个人就有一支枪,唯一的问题是……”,听到这里我还以为他是个反战分子,想表达这世界上枪太多了,谁知话锋一转:“我们如何让其他 11 个人也有枪?”!

  影片最后的字幕打出:“当私人枪支走私继续茁壮成长时,世界上最大的军火供应商是美国、英国、俄罗斯、法国和中国,他们也是联合国安全理事会常任理事国”。

  片中对亲情、伦理、和平和黑幕都进行了一些表达,自欺欺人身不由己的哥哥,顾及兄弟亲情但又脆弱的弟弟,非洲大陆的杀戳,执着的国际刑警……我想看过的人都对会有自己的理解和感受。

  片中扮演 Yuri 妻子的原来就是《Serendipity》中 Jonathan 的未婚妻,曾经看过她拍的广告,应该是个专业模特吧?那个国际刑警也一直有点眼熟,后来才发现居然就是《训练日》中的那个白人警察,呵呵,这部片子里面又演警察,顺便提一句,《训练日》也是部好片子。

  Ricky 说在里面看到了 PLA,片子里确实有人说中文,但是看帽子上的徽章好像不像:)

《杀破狼》

2005-12-10 18:38 | by 2ndboy

  周六早上独自一人看完了《杀破狼》,GF 说这部片子太恐怖,不要看。一直觉得她胆子太小,但是看完后觉得这部片子确实太血腥了。整部片子的气氛可以说处理的非常好,风格有点像《黑白森林》,不知道导演或者摄影是不是同一个人。最近一两年在《无间道》的影响下,香港连续拍摄了好几部警与匪、黑与白、善与恶相互纠缠的跟风之作,但是各有各的特色,我想,大概《杀破狼》的特色之一就是血腥吧:-)

  看过这些风格不尽相同的同质影片后我发现了他们在叙事或者说讲道理当中的一个共同点,那就是都在表达一个“无奈”。人生在世,很多事情无法预料,很多事情的发展也不受个人愿望和意志好恶的影响而改变,正所谓“人在江湖身不由己”,“出来混,迟早要还的”:-)

  个人认为任达华发挥的最好,非常到位!但是甄子丹不论从服饰还是表演上都感觉跟角色有点错位,感觉上更像好莱坞电影中那种不守规矩的美国警察,表现的虽然比较 Cool,但是跟影片的整体风格有点不匹配。吴京这位功夫片“明星”虽然已经出道好多年了,但一直没有什么经典之作,印象中还是电视剧里面那个嘻嘻哈哈的形象,这次演了一个杀人不眨眼的狠角色,但只听到了他的两句台词:-)

  整部片子比较悲情,显然在一个阴天选择看这么一部片子并不是个好主意:-)下午要出去溜溜散散心,晚上回来看《战争之王》。

用 Ajax 和 RSS 攒个首页新闻——(下)

2005-12-8 22:59 | by 2ndboy

  在做完 RSS 部分后我突然有了一个想法,为了给使用 Ajax 取数据的浏览器提供信息,服务器要针对 Ajax 的请求单独作些响应处理,那何不就让浏览器把我们前面已经生成了的 RSS 当作数据源来显示首页新闻呢?这似乎是个不错的想法,但 RSS 是个 XML 格式的文件,很显然,想达到这样的目的就要让客户端用 JavaScript 来解析 XML 文件并加以显示。

  为了用 JavaScript 来操控 XML,我决定使用 Google 的一个开源项目——AjaXSLT(http://goog-ajaxslt.sourceforge.net/),更多 Google 开源项目可以访问 http://code.google.com/。Google 提供的这个 AjaXSLT 项目用 JS 实现了一个 XML 的 DOM 接口和一个 XSLT 实现,下面把里面的几个主要文件做个简单介绍:
misc.js:一些常量定义和 helper 函数,还有 log 的实现。
dom.js:XML DOM 接口的 JS 实现,主要的函数是 xmlParse( XMLString ),调用成功后就可以用标准 DOM 方式来操控返回的 XDocument 了。
xpath.js:XPath 的 JS 实现。
xslt.js:XSLT 的 JS 实现,要用到里面的 xsltProcess( XML, XSLT ),给定 XML 和 XSLT 得到转换的结果。

  你可以只使用其中的 DOM 实现部分,而 dom.js 又依赖于 misc.js,所以要先载入 misc.js 再载入 dom.js。为了在首页上显示好看的新闻,我们要用 CSS 来打扮一下新闻的外观,所以要对新闻的数据组织方式有些要求,比如说要把得到的新闻最终组织成下面这个样子:

  1. <div id="News">
  2.    <div class="News">
  3.      <span class="Title">title</span>
  4.      <span class="Time">time</span>
  5.      <span class="Content">content</span>
  6.    </div>
  7.  </div>

  这样之后我们就可以事先写一些针对 #News 和 div.News 等等的规则来装扮首页新闻了。好了,下面看看用 JS 解析 RSS 的代码怎么写(当然,之前我们先要用 Ajax 取到 RSS 数据):

  1. var News = "";
  2.  var doc = xmlParse( rss );
  3.  items = doc.getElementsByTagName( "item" );
  4.  for( var i = 0; i < items.length; i++ )
  5.  {
  6.    News += "<div class='News'>";
  7.    title = items[i].getElementsByTagName( "title" );
  8.    News += ( "<span class='Title'>" + title[0].firstChild.nodeValue + "<\/span>" );
  9.    time = items[i].getElementsByTagName( "pubDate" );
  10.    News += ( "<span class='Time'>" + time[0].firstChild.nodeValue + "<\/span>" );
  11.    description = items[i].getElementsByTagName( "description" );
  12.    News += ( "<span class='Content'>" + description[0].firstChild.nodeValue + "<\/span>" );
  13.    News += "<\/div>";
  14.  }
  15.  document.getElementById('News').innerHTML = News;

  好了,到现在为止我们的首页新闻就算完工了,但是……,等等,既然 AjaXSLT 提供了 XSLT 的 JS 实现,我们何不拿来试试呢?!好,先照着《XML 高级编程》写个 XSLT:

  1. <?xml version="1.0"?>
  2.  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.    <xsl:template match="/">
  4.      <xsl:apply-templates select="//item"/>
  5.    </xsl:template>
  6.  
  7.    <xsl:template match="item">
  8.      <div class="News">
  9.        <xsl:apply-templates select="title"/>
  10.        <xsl:apply-templates select="pubDate"/>
  11.        <xsl:apply-templates select="description"/>
  12.      </div>
  13.    </xsl:template>
  14.  
  15.    <xsl:template match="title">
  16.      <span class="Title"><xsl:value-of select="."/></span>
  17.    </xsl:template>
  18.    <xsl:template match="pubDate">
  19.      <span class="Time"><xsl:value-of select="."/></span>
  20.    </xsl:template>
  21.  
  22.    <xsl:template match="description">
  23.      <span class="Content"><xsl:value-of select="."/></span>
  24.    </xsl:template>
  25.  </xsl:stylesheet>

  我们上面的 JavaScript 代码还要把这个 XSLT 从服务器上取下来,之后一句话就可以搞定上面一堆 JS 代码才能完成的工作:

  1. document.getElementById('News').innerHTML = xsltProcess( xmlParse( rss ), xmlParse( xslt ) );

怎么样,用 XSLT 方便吧!好了,大功告成!对了,由于 XSLT 在转换时使用了 XPath,所以要先包含 xpath.js 再引用 xslt.js。

  连续几天,用三个 post 的篇幅写完了这个东西,其中省略了很多很简单的,用不着废话去描述的细节,各位感兴趣的看客不知看明白了没有。呵呵,不管怎么样,发在这里记录一下我这几天的实践过程吧。

老罗重出江湖

2005-12-6 22:17 | by 2ndboy

  老罗这个猛男真是有着彪悍的人生,当他的录音于 2005 年年末重出江湖时,很多人崩溃了:-)

  自从从同事那里第一次听说老罗这个从诗人沦为一个教师的新东方讲师时,我就成了他的 fans!他在英语课堂上调侃户口制度和暂住证、拉斯维加斯和离婚、讲述儿时经历,我们则听着他的“扯淡”开怀大笑,不时的也被他的思维火花所触动。

  最近偶尔在网上看到他班上的学生整理的 2005 年新老罗语录不禁喜出望外,马上下载!老罗不愧是老罗,水准还是让人崩溃的高!不敢独享,拿出来跟大家同乐:

2005 版老罗语录 MP3 下载:http://blog.guoshuang.com/david/showlog.asp?cat_id=37&log_id=3117
老罗语录文本全集:http://games.sina.com.cn/downgames/amusement/2005-06-22/161989155.shtml

  唯一有些遗憾的是老罗自己公布的网站现在不知道为什么不能访问了:-(