2009年4月7日星期二

Swfkit Pro中设置默认Flash播放器

SwfKit Pro3.4 中安装的Flash播放器为9.0.124.0,其并不支持FlashCS4所输出的Flash10格式。要将其Standalone打包中的默认Flash播放器升级为10.0,应采取如下操作:
  1. 下载最新版的Flash ActiveX安装软件(install_flash_player_10_active_x.exe),
  2. 将安装软件复制到 Swfkit 的 Data 目录下
  3. 修改 Data目录下的flash_player.ini 文件,由原来的:
    [Info]
    Version=9.0.124.0
    Name=install_flash_player_active_x.exe

    修改成:
    [Info]
    Version=10.0.12.36
    Name=install_flash_player_10_active_x.exe

  4. 重新编译Swfkit项目

2009年3月31日星期二

当MathML与Flash相遇

在理工科网络化教学中,最麻烦的就是如何在Web上正确有效地显示数学公式。在MathML之前,通常做法是利用专用工具将Word或LaTeX文档中的数学公式渲染成JPG或GIF格式,再嵌入到HTML文件中。这样的做法问题在于数学公式与HTML文本间无对应关系,排版困难,且不能随浏览字体大小的改变而自动缩放。随后出现了OpenMath,其采用XML方式来对数学公式进行表达。由于Openmath提供了特定格式的XML语言定义了数学对象的语义字典,故其可将数学对象在不同的计算机环境间交换,从理论上解决了Web环境的兼容性问题。但Openmath的问题在于其只关心数学公式的语意,而不关心数学公式的视觉效果,故其主要面向数学系统专家而非Web出版者。基于上述原因,1999年W3C组织提出了基于XML语言标准的数学标记语言——MathML,其结合了HTML、XHTML与Openmath等语言的优点,具有良好的数据存储格式、可拓展性与高度结构化,从而成为Web上数学公式出版的工业标准。目前主流浏览器,如Firefox、Opera等都默认支持MathML,而IE6则可用通过插件(如IBM的TechExplorer或 MathPlayer)来浏览MathML。

MathML的缺点在于其繁缛的语法结构不利于人的输入与阅读,从而又出现了许多MathML辅助输入工具。比如利用MathType公式编辑器可将当前的公式用MathML形式输出,或者利用TeX4ht工具将TeX公式输出成MathML代码。这些都是非在线时的MathML辅助输入工具。

目前,在线式的MathML编辑工具主要有两类:基于TeX或者LaTeX系统的写作工具,如 AsciiaMathML 与 LaTeXMathML。其采用Javascript将TeX或LaTeX数据控制字符串转换成MathML语义字符串。另一类是所见即所得的Web编辑器,如 Webeq 和 amaya 等,其利用Javascript或Java构建一个类Word的编辑环境来输入公式。

上述的工具都是基于HTML或XHTML的,在以Flash为主流的RIA日益盛行的今天,如何在Flash中创建MathML呢?Ionel Alexandru给出了一个很好的解决方法。他开发了一个AS3的代码包,可以方便地渲染出基于MathML语义字符串的Flash MovieClip。虽然其尚未能完全覆盖所有MathML定义,但已经很不错了。加油 Ionel Alexandru!

当MathML遇上Flash,必然带来基于Flash平台的理工类网络教学软件一次技术上的飞跃!而基于LaTeX的Flash交互平台也离我们不远了!

2009年3月30日星期一

用Endnote进行资源管理心得

 

Endnote是一个优秀的文献管理软件。经过一段时间的试用,我逐步建立一个用Endnote的文献资源管理流程。本文主要介绍Endnote中的一些基本类型,与我使用Endnote的一些技巧。


Endnote提供了许多的文献类型,从使用角度上,我觉得可分为如下几类:

  • 学术:这是Endnote最主要的功能,即管理科学文献。

    • Journal Article:学术期刊论文
    • Conference Proceeding:学术会议论文集中的论文
    • Conference Paper:学术会议论文:其与Conference Processin的区别在于其主要指未发表或未收入论文集中的论文
    • Book:出版的书籍
    • Thesis:学位论文
    • Report:学术报告

    学术文献主要可通过一些国内外的学术数据库进行查找,然后通过对应的Filter(过滤器)导入到Endnote中。

  • 书籍:主要是建立自己的图书馆。

    • Book:图书
    • Electronic Book:电子图书
    • Edited Book:其与Book的区别在于其是某个书系中的由多个编辑制作的书

    对于外文图书信息的录入,可利用Endnote的Remote Library Search 方式在国外图书馆中进行搜索,我常用的是Yale与MIT的图书馆,其藏书量大且连接速度快。在搜索时尽量利用搜索式缩小范围,否则会下载许多图书条目而浪费流量。对于国内图书,则只能在国家的OPAC中进行检索,或是到本地图书馆OPAC中进行检索。一般这些系统都不提供Endnote远程接口,一些有MARC条目输入。可根据MARC条目自己编写Filter,但比较麻烦。还一种方法是利用Google Scholar Search进行搜索,然后用其BibTeX输出,再导入到Endnote中。

  • 工作:建立面向工作的参考文献集。

    • Govenment Document:政府文档,也可将单位的主要文档存放其中
    • Grant:授权书
    • Encyclopedia:百科全书
    • Directory:字典,一些工程手册也放在这个类别中
    • Legal Rule/Regulation:规则条例
    • Patent:专利,有时也将项目说明书等文档放入其中
    • Catalog:目录,主要是一些汇总文件集
    • Standard:标准,以及一些常用参考手册

    这些文献应单独放在一个库中,这样利于快速浏览。

  • 网络收藏:用Endnote来管理自己浏览与下载的网络资源

    • Blog:博客文章,用PDF打印
    • Web Page:网页,用抓屏软件存储为JPG格式。
    • Computer Program:优秀的软件与源代码等。
    • Electronic Article:下载的电子文档
    • Online Multimedia:下载一些小视频或动画等,并且将下载的图片等也放入其中

    • 定期清理迅雷/FlashGet等下载目录,将有用的信息放入Endnote库。

  • 个人:建立自己个人文档的数据库

    • Personal Communication:一些个人交流信息,如Email,MSN/QQ的聊天记录等
    • Film or Broadcast:看过的电影等信息,就是将豆瓣的本地化
    • Case:项目,主要用来管理一些个人项目




Endnote的使用技巧:

  • 不要将所有的文献都放入一个Endnote库中,而要建立多个库,比如 BookLibrary,WebArticleLibrary等,这样可以设置每个库的默认文献类型,利于进行输入。而且由于库比较小,在打开时比较快。Endnote有导入Endnote库文件的功能,故可定期(如半年/一年)将文献库进行合并(注意Endnote在导入文献库时并不将文献条目上附加的文件一并导入)。

  • 应充分利用 Research Note 字段,而且利用(0-5)分来给每个文献进行打分,如"5.详细介绍了Omega函数的应用"这样的短小笔记,如果是比较长的笔记,则应存入Text文档中,然后将该文件Attach到该条目上

  • 将Keyword作为Tag来进行管理,每个关键词用分号来分隔

Posted by Picasa

2009年3月20日星期五

listings宏包的设置

经过一个上午的尝试,我采用如下的方法来定义listings宏包,可得到一个格式优美的源程序PDF渲染效果。


在导言区的命令是

\usepackage{xcolor} % 颜色增强
\definecolor{lightgrey}{HTML}{D0CFCF}% 亮灰色
\definecolor{lightblue}{HTML}{D5EDF1}% 亮蓝色
\definecolor{greyblue}{HTML}{0A499B}% 灰蓝色
\definecolor{greygreen}{HTML}{19400B}% 灰绿色
\usepackage{listings}
\lstset{basewidth={0.5em,0.35em},basicstyle=\small,keywordstyle=\color{greyblue}, commentstyle=\color{greygreen}, frame=shadowbox, rulesepcolor=\color{lightgrey},numbers=left, numberstyle=\tiny,breaklines=true,framesep=5pt,rulesep=5pt,framexleftmargin=5mm}%
\lstnewenvironment{tex}{\lstset{language={[LaTeX]TeX}}}{}%TeX 代码
\lstnewenvironment{cpp}{\lstset{language={[ISO]C++},mathescape,escapechar='}}{}%C++ 代码
\lstnewenvironment{matlab}{\lstset{language={MatLab},mathescape,escapechar='}}{}%MatLab 代码
\lstnewenvironment{html}{\lstset{language={HTML},escapechar='}}{}%HTML
\lstnewenvironment{makefile}{\lstset{language={[gnu]make},escapechar='}}{}%Gnu Make
\lstnewenvironment{python}{\lstset{language={python},escapechar='}}{}%Python
\lstnewenvironment{vbscript}{\lstset{language={VBScript},escapechar='}}{}% VBScript


在主体部分的样例为

\begin{cpp}
#include
using namespace std;
int main(void)
{
// '\textit{创建一个简单的程序}'
std::cout << "hello" << endl; // sample code $\alpha$
return 0;
}
\end{cpp}


如果需要文本环绕的话,则可采用 wrapfigure 宏包,代码如下:

\begin{wrapfigure}{L}{0.5\textwidth}
\begin{cpp}
#include
using namespace std;
int main(void)
{
// '\textit{创建一个简单的程序}'
std::cout << "hello" << endl; // sample code $\alpha$
return 0;
}
\end{cpp}
\end{wrapfigure}


令人遗憾的是,我尚不能写一个通用的环境,其能将 latex 代码的渲染效果与 latex 源代码 并行显示

2009年3月18日星期三

升级到 Python 3.1 的兼容问题

Python 3.1 已经发布了。兴冲冲地将陪伴了我多年的 2.X 版本卸载了,安装上 Python 3.1。结果一些旧 Py 脚本无法正常运行。其原因是 Python 3.1 并不与 2.X 相兼容。看来在日新月异的今天,保持“兼容性”与追求“创新性”间的矛盾越来越大了。理解理解,不妨将旧程序的移植作为学习的动力
IBM DevelopWorks 中国网站上有一组介绍 Python 3 的入门文章,由此进入

2009年1月30日星期五

MonkeyGTD 3 的网络升级方法

MonkeyGTD 3 支持网络升级。其方法是:
1.先备份现有的MonkeyGTD3
2.点击页眉右上角的"backstage",打开页眉主菜单
3.点击"import"
4.将"http://monkygtd.tiddlyspot.com/upgrade.html"填入"URL or Pathname"文本框中
5.点击"open"按钮,开始网络升级
6.在下载的tiddlers列表首部,选中表格首行的选中框,这样可以选中所有的tiddlers
7.在该列表下面有两个选择框,都不要选中(很重要!)
8.点击"Ok"按钮,重新修改所有的tiddlers,这样就完成了升级
9.升级后realms会默认不选中,所以要选取realms,这样方能显示以往的GTD信息
10.保存当前的MonkeyGTD 3

2008年8月24日星期日

给MonkeyGTD初学者的信

你好:
首先,你要知道GTD的基本知识。
GTD是用来管理日常事务的一种工作方法。而MonkeyGTD则是一种帮助你实现GTD的软件。其实存在许多的GTD软件,而且许多人也采用Gmail、Outlook等常用工具来实现GTD。而我则是将MonkeyGTD与纸笔结合来使用的。GTD的宗旨在于提高工作效率,对于究竟采用某种工具并不是很重要的。最重要的是工具要能符合你目前的工作需要脱离目前的工作需求而单纯的学习GTD软件是不会成功的。毕竟它不是Word、也不是Java。
如何确定自己的工作需求呢?先准备一张大白纸和几种颜色的笔,然后将你所能想到的要做的工作写下来(用色笔标注其不同的优先等级),然后用线段将其中有关联的工作联起来。比如:"整理办公桌""将文件夹中的下载歌曲整理""刻录工作日常文件"等。当你完成这步后,你就可以开始使用MonkeyGTD了。
打开MonkeyGTD,先创建一个Project(项目),然后在项目中建立一些Action(行动)。比如"工作文档的整理"项目中就可以将上面的"刻录工作日常文件"作为一个Action。在GTD中Action是有优先次序的,如"Next(立即要做)""WaitFor(等待某人或某事发生时做""Future(暂时不急日后再做)",将不同的Action标识上不同的优先级。MonkeyGTD会自动将不同的Project中的"Next"工作组合给你看。这样你要做的事情就清晰了。
注意GTD是手段,一定要循序渐进,创建适合自己的GTD,提高生活质量是最重要的。