jjgod / blog Random notes & thoughts by Jiang Jiang.

Archive for November 2007

文档标记语言的一点思考

近来在水木上讨论文档标记语言的优劣,想起前些天查资料时正好又碰到了一个熟悉的名字: Scribe,于是多花了一点时间查找,没想到找到的资料仍然非常稀少。 Scribe,是 Brian Reid 在 Carnegie Mellon 的 Ph.D Thesis,也是对文档格式研究中所绕不开的一个重要的名字 (另一个,当然是 Don Knuth 的 TeX),这个项目大概在 1976 年开始,1980 年 Reid 发表这篇 Scribe: A Document Specification Language and its Compiler 以后,就甚少有什么改进了,尽管 Reid 的论文中也研究了 Knuth 的工作,但可以认为 Scribe 和 TeX 是同时代的作品。从对后续文档格式的影响说,Scribe 还更大一点,我们熟悉的 SGML (XML 的前身),BibTeX 都受了 Scribe 的影响。在 1982 年,Reid 还因为这一贡献 (Ground-breaking text-formatting language.) 获得了 Grace Hopper Medal。 [...]

TeX Live 的新包管理架构

临近年末,TeX Live 2008 的发行就成为了一个有趣的话题,我们都知道 TeX Live 2007 最大的改进是 XeTeX 的集成,那 TeX Live 2008 呢,会有什么新东西? LuaTeX? 有可能,LuaTeX 恐怕是今年来在 TeX 引擎开发上的又一创新,不过虽然今年 LuaTeX 的底层代码已经有了很大的完善 (参考这个由开发者 Hans Hagen 在 TUG 2007 上的演讲),但上层结构: TeX 的排版格式定义:Mark IV (下一代的 ConTeXt,基于 LuaTeX) 和 LuaTeX 兼容的 LaTeX2e 格式都未趋于稳定。当然,可能 LuaTeX 和相关格式会被包含在 TeX Live 2008 中,但多半会作为试验性特性来介绍。 事实上,自从 TeX Live 2007 发布后,TeX Live 的开发者们就开始讨论如何改进 TeX Live 的包管理架构,因为 [...]

Droid

全世界都在关注 Android 这套手机平台时,字体爱好者们也有惊喜,这就是由 Ascender Corp 设计的一套完整的包含 serif (衬线体), sans-serif (非衬线体) 和 monospaced (等宽) 字体的新字体集: Droid。 根据报道,这套字体将作为 Android 平台的系统 UI (User Interface) 字体,和 Apple 在 iPhone 中选用 Arial 的怪异行为相比,Android 的这个选择肯定会更让人觉得满意。 这套字体目前还没有提供任何形式的下载,虽然 Android 的模拟器的确使用了这套字体,但在提供下载的 SDK 和模拟器源代码中都找不到它的踪迹,也许是通过某种方法压缩存储了。 更新: 这套 Apache License 的字体在这里可以下载,原来它是存放在 emulator 的 system.img 文件中,这是一个磁盘镜像,使用的是 yaffs2 文件系统。其中 Droid Sans Fallback 包含了中文。 最令人高兴的是,Droid Sans 字体中提供了对简体、繁体中文、日文和韩文的支持,根据 specimen 的介绍,涵盖了 GB2312, [...]

用 Python 维护 iTunes Library

Mac OS X 10.5 中,由于 Scripting Bridge 的引入,用 Ruby 或 Python 程序完成原来 AppleScript 才能完成的任务变得非常简单,而因为这两门语言自身的强大,无形中,可以完成的工作也多了不少。比如我们原来可能要用 ID3Mod 这样的软件进行 iTunes Music Library 的歌曲乱码转换,现在写一段不到十行的 Python 脚本就能完成 (当然,界面没有那么方便)。 一个小例子 这里先用 Python 简单的展示一点可以完成的操作: # 导入必要的模块 from Foundation import * from ScriptingBridge import * # 找到 iTunes 这个应用程序 iTunes = SBApplication.applicationWithBundleIdentifier_(“com.apple.iTunes”) # 打印出当前正在播放的音乐名称 print iTunes.currentTrack().name() 这段代码在 Leopard 下,既可以保存为 .py 文件,用系统自带的 python 解释器 [...]

TODO List 的乐趣在于写

而不在于完成它。 看 LLVM 的设计文档 了解一些关于 OpenGL Shading Language 的东西 完成 vim-cocoa 的 [Core Text](http://developer.apple.com/documentation/Carbon/ Conceptual/CoreText_Programming/CoreText_Programming.pdf) 分支 ctex 宏包在 XeTeX 下的重构 根据一个古旧的扫描版本重新排版 The Little LISPer, 3rd Edition

← Before