Nov 06

做个广告先:我的 wiki 搬家且更新了,重新设计了 CSS。新地址在这里。

My Wiki

写了一个生成 ASCII arts 的程序,效果如下。

 __   __                           _
 \ \ / / ___  _  _   ___ _  _  __ | |__
  \ V / / _ \| || | (_-<| || |/ _|| / /
   |_|  \___/ \_,_| /__/ \_,_|\__||_\_\

这个程序支持读取 FIGlet 的字体,并且支持两种 kerneling style: 不 kernel 和 fitting。展示如下:

         _____
 _ __   |_   _|   ___
| '_ \    | |    / _ \
| | | |   | |   |  __/
|_| |_|   |_|    \___|
    
       _____
 _ __ |_   _| ___
| '_ \  | |  / _ \
| | | | | | |  __/
|_| |_| |_|  \___|
    
No kerneling Fitting

字体在 figlet 网站下载。顺便展示几个~~

 \_/  _         _      _ |  |
  |  (_) |_|   _> |_| (_ |< o 

 .oooooo..o                       oooo        .o.
d8P'    `Y8                       `888        888
Y88bo.      oooo  oooo   .ooooo.   888  oooo  888
 `"Y8888o.  `888  `888  d88' `"Y8  888 .8P'   Y8P
     `"Y88b  888   888  888        888888.    `8'
oo     .d8P  888   888  888   .o8  888 `88b.  .o.
8""88888P'   `V88V"V8P' `Y8bod8P' o888o o888o Y8P

  _____            ______        _  __  __
 / ___/ ___   ___ /_  __/ ___   | |/_/ / /_
/ /__  / _ \ / _ \ / /   / -_) _>  <  / __/
\___/  \___//_//_//_/    \__/ /_/|_|  \__/

嘿嘿 :-D

Sep 23

囧阿,一直用 Emacs 的 dictionary.el 作字典,但是启动 dictd 的时候都要跑到终端里去,因为要 sudo。今天下决心解决这个问题。到 emacswiki 里看了一圈,到 IRC 里问了一圈,把 Tramp, shell-modeintcmd-mod 的 sudo 问题都解决了,但还是搞不定 shell-command 的 sudo。看来这个函数运行的时候完全没有办法接受用户的输入作为 stdin。最后翻到 Tramp 的手册,发现以 root 权限运行 shell-command 需要先 C-x C-f /sudo::,把当前目录变为 /sudo::/root,然后再 M-! 运行 shell-command… 太囧了…

Aug 25

本来是陪我弟买 PHP 相关书籍的,结果我也忍不住买了三本。

第一本是 N. Gregory Mankiw 写的 Principles of Microeconomics,一本普通的微观经济学著作,不说了。

第二本是漫画《找死的兔子》,以前在网上看到过一些,这次发现有卖的,顺手就买了。

第三本是孙荣恒的《趣味随机问题》。这本书看名字显然是一本科普读物,但是我翻看来第一节赫然是讲集合和可测性的,而且所有的定义都像教科书一样严密的给出,所有的定理都有详细证明,每个例子都给出详细的推导,而不像某些自诩为教科书的书那样充满了“显然,xxxx”和“经证明,可得xxx”,遂买下。这书的内容虽不高深,但对我这样没有正经学过数学的人来说,也合适了。

Jun 23

负暄琐话里看到关于 suffix tree 的帖子,感觉很牛逼,于是用 scheme 实现了一个,写了一个多小时。唉,以我现在的水平,用 scheme 写点东西还是很费劲的… 话说用 suffix tree 可以在线性时间内实现很多字符串匹配和查找的功能,无边强大~

Continue reading »

Mar 28

Gould 是个争议性人物,他的钢琴演奏受到无数人的唾骂,也受到无数人的赞美。我今天听了他的 Mozart piano sonata no.12,感觉是:这应该才是 Mozart 爷爷想说的。

下面是一个 Gould 弹 Mozart 的视频。传说他在音乐会上也是这样弹的…

下面有个 comment 也表达了我的想法:

Glenn is such a phenomenom to me, he plays exact, and precise, evey note is exactly equal in value, yet, there is passion and love for the music, if anybody else played like this, it would be almost mechanical, robotic, gould has mastered something i dont think many others will come close to.

Mar 11

Phun 是一个 “2D physics sandbox”,是 Umeå 大学一个硕士生的毕业作品,使用了 C++ + boost + OpenGL + GLEW + SDL。这个东西最强悍的地方在于可以用鼠标画一个任意形状的物体参与计算。以下是官方的介绍视频:

以下两个是我做的~~ :-p

这个东西目前还未开源,不过作者说以后会开的~~

Mar 06

KDE 新出的 4.0.2 版changelog 的最后有

Icelandic has been added to KDE translations.

难道这就是传说中的只有几千人用的冰岛语??:-D

Dec 30

这几天重新看 The Matrix,发现在第二部的后面,Trinity crack 进电力系统的网络,准备关闭备用系统的时候,她用的居然是 SSH?!看截图

从这个截图里还可以推测出他们 crack 的过程:

  1. 使用 nmap 对主机 10.2.2.2 进行端口扫描,看到 SSH 端口开着。虽然这个命令行没有给出,不过可以想象大概为这个样子:
    # nmap -sT 10.2.2.2
  2. 使用 sshnuke 更改 10.2.2.2 的 root 密码。不用试了,你的机器里没有这个程序
  3. 以 root 登录 10.2.2.2

另外,我发现两个证据说明这是一个苹果机网络(起码都运行着苹果的操作系统)。一个是那个输入密码的对话框,窗口装饰很像是古老的 Mac OS,另一个是 nmap 的扫描过程。大家注意这行字:

The 1539 port scanned but not shown below are in state: closed

1539 端口貌似是一种叫作 Mac-net 的服务的端口…

补充(2008-03-06):sshnuke 的输出里有一句

Attempting to exploit SSHv1 CRC32 … successful.

也许使用 SSHv1 协议正是服务器这么轻易就被攻破的原因~~。所以在此提醒大家:一定要使用 v2 协议!^_^

Nov 19

CGH,计算机生成全息,就是可以把入射光的相位信息保存下来的东西。目前网上介绍这个东西的文章大多以论文(而且都是要钱的…)的形式出现,不利于我等民间人士访问。正好这几天由于学习上的需要写了一个二维 CGH 的程序。大家都知道光学的全息就是让物光通过一组透镜产生傅立叶变换,然后用一束参考光干涉来记录,所以在 CGH 里只要对物做傅立叶变换,然后记录变换结果就行了。具体步骤如下:

  1. 把物做成图片
  2. 对图片做 FFT,生成一组复数
  3. 把复数编码成图片并保存

要还原时只需要从生成的图片里导出频域信息,并做 FFT 逆变换。

我这个程序比较弱智,我自己写了一个读写 bmp 文件的类,只能操作 windows 格式的 24 bit bmp,编码用了类似 Lohmann 的,用开孔的位置表示相位,孔的深浅表示幅度。用法为

holo -i <inputfile> [-o <outputfile>] [-w <site width>]
    [-h <site height>] [-d <hole width>] [-r]

其中 site width 是每个孔能活动的宽度,site height 是孔的高度,hole width 是孔的宽度,site width - hole width 决定了相位的精度,而幅度的精度永远是 8 bit。

Oct 06

id Tech5 Logo

上个月的 QuakeCon 上,id 发布了使用 id Tech5 引擎制作的 Rage 的一段 demo,传说这是用 id Tech5 引擎实际渲染出来的。从这个 demo 里,我们可以大概看出新引擎的一些特性:

  1. 真实的景深效果,只有镜头焦点附近的东西是清晰的,其它东西按照离焦点的远近呈现不同半径的模糊。按照 John Carmack 的一贯作风,我怀疑离焦点的远近被简化成 z 轴坐标~~
  2. 真实的阴影。Doom3 引擎的阴影已经很好了,就缺少模糊的边缘。很多其他游戏里有边缘模糊的阴影,一般来说这可能是两种情况:
    • 阴影是 buffer shadow,精度不够所以模糊了
    • 先搞一个精确的阴影,然后对阴影整体模糊

    前面一种显然是错误的,后面一种则是对真实阴影的“零阶近似”。为什么?看看这张图就知道了,这是我用 Blender 渲染的。看到了么?真实的阴影在离物体近的地方是比较锐利的,离物体越远越模糊。而 id Tech5 似乎已经实现了真实阴影的“一阶近似”(也许是更高阶)。注意下面第三张截图的左边,人物肩膀上的盔甲在衣服上投下的阴影。

  3. 开放的户外场景,改进的 MegaTexture。
  4. 更先进的 shader。从截图上看,不仅是金属,其他各种材质在 id Tech5 里都有异常真实的表现,不像 Doom3 里只有金属… 那个人脸的特写,就像照片一样…
  5. HDR。这个是 Doom3 的一大缺憾…

John Carmack

改写一段 Man in Black 的台词作为结尾吧:

After Quake, everybody knew that the world was a 3D one. After Quake II, everybody knew that lights could be colorful. After Quake III, everybody knew that a texture could be mapped onto a cylinder. After Doom3, everybody knew that without light, the world would be all black. Today, we know that shadows are fuzzy. Imagine what we will know, tomorrow.

Oct 03

在写完上一篇关于 CSS3 分栏的 post 以后,我查看分栏的效果,突然发现底下英文那一段中的 figure 比较诡异,放大以后发现 Firefox 居然支持字体中的 ligatures~~

关于 ligatures,简单的说就是把某些字母组合搞成一个字母,这样看起来更好看(一般来说是更紧凑)。还有三点补充:

  1. Ligatures 很神奇
  2. Windows 下的程序基本都不能识别 ligatures,除非是 Safari 3 和 Adobe 这样自己写字体引擎的
  3. X 的 Freetype 2 在 patch 之后支持 ligatures。

看截图,是在 Firefox 里放大到 4 倍的结果,字体是 Adobe 的 Gill Sans Std:

Ligatures in Firefox Normal i
连在一起的 f 和 i 普通的 i
Oct 03

CSS3 中增添了对分栏排版的支持,这个我很早就知道了,但是今天才发现 Firefox 和 Safari 3 已经实现了这个东西,真是惊天地泣鬼神… 测试一下~~

中文的:

从那以后,他的预感就不太灵了。那一天,乌苏娜在狱里探望他的时候,他经过长久思考得出结论,这一次,死神很可能不会马上来临,因为死神的来临取决于刽子手的意志,他被自己的脓疮弄得很苦,整夜都没睡着。黎明前不久,走廊上响起了脚步声。“他们来啦,”奥雷连诺自言自语地说,他不知为什么突然想起了霍⋅阿⋅布恩蒂亚;就在这一片刻,在黎明前的晦暗里,霍⋅阿⋅布恩蒂亚蜷缩在粟树下面的板凳上,大概也想到了他。奥雷连诺上校心里既没有留恋,也没有恐惧,只有深沉的恼怒,因他想到,由于这种过早的死亡,他看不到自己来不及完成的一切事情如何完成了……牢门打开,一个士兵拿着一杯咖啡走了进来。第二天,也在这个时刻,奥雷连诺上校腋下照旧痛得难受的时候,同样的情况又重复了一遍。星期四,他把乌苏娜带来的蜜饯分给了卫兵们,穿上了他觉得太紧的干净衣服和漆皮鞋。到了星期五,他们仍然没有枪毙他。

英文的:

A small figure gallops across the windswept ice slope. The bundled rider is mounted on a large gray snow lizard, a Tauntaun. Curving plumes of snow rise from beneath the speeding paws of the two-legged beast. The rider gallops up a slope and reins his lizard to a stop. Pulling off his protective goggles, Luke Skywalker notices something in the sky. He takes a pair of electrobinoculars from his utility belt and through them sees smoke rising from where the probe robot has crashed. The wind whips at Luke’s fur-lined cap and he activates a comlink transmitter. His Tauntaun shifts and moans nervously beneath him.
Sep 30

这是以前写的 texpng 程序的图形界面版,我把以前的 texpng.py 改写了一下(这是好听的说法,其实是剪切粘贴了一下),把转换过程抽象了一下,方便在图形界面里调用。和 texpng.py 一样,这个东西需要一个正常的 LaTeX 系统、dvipng 和 Imagemagick,除此之外,图形库使用了 wxpython。用法就不废话了,GUI 啊同志们… 最后,那三个图标是 oslo 图标集中的,版权属于原作者。

对了,过几天大家可能会看到一个更牛逼的转换 TeX 的程序,不过不是在我这里~~ :-p

最后的最后,说点感想~~

  1. 在 Linux 下写程序太方便了,感觉 Linux 就是写程序用的~~。这两天狂用了 Mac OS X 之后,隆重宣布:宇宙里最好用的 PC 操作系统是配置好的 Linux~~
  2. 现在写个图形界面太方便了!这个小破程序是我三个小时攒的…
  3. 还没想好…

PS:这个程序在运行的的时候会覆盖当前目录下的 temp.png 文件(如果有的话),退出的时候把这个文件删除。

Sep 27

安上了 MacTeX,这是运行在 Mac OS X 下的基于 TeXLive 的发行版,比 CTeX 还大… 不过像 CTeX 一样,装起来很方便,不用配置,而且一上来就可以排中文~~,不过据我的试验,编码只能为 utf-8,而且可以用的简体字体只有一个 gbsn,这个字体比 M$ 的那个 simsun 好看多了~~。

\\documentclass[12pt]{article}
\\usepackage{CJK}
\\begin{document}
\\begin{CJK}{UTF8}{gbsn}
This is a test. 中文测试。

\\textbf{粗体}\\textit{斜体}\\texttt{等宽字体}\\ldots
\\end{CJK}
\\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: 

Font gbsn

Sep 26

可能是由于安在 x86 上的缘故,Safari 不太稳定,一打开某些中文网页就崩溃… 真不知道为啥在中国大家都不遵守 HTML 4 和 XHTML 1.0 呢~~~ 于是还是用 Firefox… 但是 Firefox 似乎对 OS X 的 Type1 字体有强烈的不满,不是显示一堆火星文就是显示成脚标/上标状… 搞得我看中文像看公式一样… 后来听说还有个 Camino,也是 Mozilla 的,会好一点,赶快安上,发现确实好一点,基本没有火星文,公式也比较少… 看截图:

Firefox 截图 Camino 截图
Firefox Camino

我想出现这种鸟事是因为 Mozilla 们为了跨平台,搞了自己的字体引擎,不肯使用各操作系统自带的 API,但是对 Type1 支持又不好,不能正确读取字体中的某些信息,于是就出现了火星文和公式…

Close
E-mail It