<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Doom 的呐喊</title>
	<atom:link href="http://darksair.org/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://darksair.org/blog</link>
	<description>Crying in the Day of Doom</description>
	<lastBuildDate>Thu, 22 Jul 2010 19:43:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>今日十大</title>
		<link>http://darksair.org/blog/2010/07/windoze-sucks-251</link>
		<comments>http://darksair.org/blog/2010/07/windoze-sucks-251#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:43:07 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[随便说说]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=251</guid>
		<description><![CDATA[今天小百合十大的前三条是这样的：

第二条的内容是这样的：

]]></description>
			<content:encoded><![CDATA[<p>今天小百合十大的前三条是这样的：</p>
<p><a class="highslide img_3" href="http://darksair.org/blog/wp-content/uploads/2010/07/shot.png" onclick="return hs.expand(this)"><img class="aligncenter size-medium wp-image-252" title="Top ten" src="http://darksair.org/blog/wp-content/uploads/2010/07/shot-300x74.png" alt="shot" width="300" height="74" /></a></p>
<p>第二条的内容是这样的：</p>
<p><a class="highslide img_4" href="http://darksair.org/blog/wp-content/uploads/2010/07/shot_.png" onclick="return hs.expand(this)"><img class="aligncenter size-medium wp-image-255" title="Top ten no.2" src="http://darksair.org/blog/wp-content/uploads/2010/07/shot_-300x189.png" alt="Top ten no.2" width="300" height="189" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2010/07/windoze-sucks-251/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RPN Calculator for iPhone</title>
		<link>http://darksair.org/blog/2010/06/windoze-sucks-230</link>
		<comments>http://darksair.org/blog/2010/06/windoze-sucks-230#comments</comments>
		<pubDate>Sun, 27 Jun 2010 03:58:31 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=230</guid>
		<description><![CDATA[从拿到 iPhone 的第一天起，我就在不断地寻找好用的 RPN 计算器。我的要求是

类似 Emacs Calc 的进栈出栈方式
无限大的堆栈
要牛逼


我一直使用的都是一个 HP i41CX 模拟器。它基本符合第一条，但是不符合第二条：它的堆栈只有四层，而且最顶层还就是你正在输入的这个。不过它非常非常得符合第三条，看看这个计算器的像板砖一样的手册就知道了。这个计算器也有一些不便，它实在是太复杂了。比如他默认的键盘配置上没有切换弧度和角度的键。键绑定是可以设的，但是我一直没有搞明白怎么设&#8230;  同样因为这个原因，我一直不知道怎么算双曲三角函数。其他的 RPN 计算器要不就是操作方式诡异，要不就是功能太少。所以昨天我终于决定自己写一个计算器。
奋斗了两天以后把四则运算都搞定了&#8230; -_-  在 iPhone 上开发程序还是很方便的，和在 Mac 上差不多，熟练了以后写界面用不了太多的时间，而且 Interface Builder 做 prototyping 也非常得爽。我的时间主要都浪费在用 UITableView 显示一个堆栈上。UITableView 就是一个和菜单差不多的可选择的列表，几乎每一个 iPhone 程序里都能看到。但是这个东西必须要有一个符合某种特定协议的数据源&#8230;  我曾经一度都想自己用 label 和 UIScrollView 实现一个这种列表了&#8230;  不过最后搞定以后发现这个东西还是挺爽的，并且附赠动画效果~~
在 iPhone 上开发程序需要花 $99 买一个许可证。&#8230; &#8230; &#8230;&#8230; 噢，不对，说错了，是苹果声称你需要买一个，实际上你不需要。免费开发程序的代价就是开发出来的程序只能在 jailbreak 过的 iPhone 上运行。当然这其实没什么，因为各种迹象表明，没有 jailbreak 过的 iPhone 的使用价值其实就和一个板砖差不多。默认情况下，如果你没买这个许可证，Xcode 是不会让你把程序往 iPhone 上传的，只能在模拟器里运行。要想在 iPhone [...]]]></description>
			<content:encoded><![CDATA[<p>从拿到 iPhone 的第一天起，我就在不断地寻找好用的 RPN 计算器。我的要求是</p>
<ol>
<li>类似 Emacs Calc 的进栈出栈方式</li>
<li>无限大的堆栈</li>
<li>要牛逼</li>
</ol>
<p><img class="size-full wp-image-233 alignright" title="iPhone RPN Icon" src="http://darksair.org/blog/wp-content/uploads/2010/06/calc-icon.png" alt="iPhone RPN Icon" width="77" height="88" /></p>
<p>我一直使用的都是一个 HP i41CX 模拟器。它基本符合第一条，但是不符合第二条：它的堆栈只有四层，而且最顶层还就是你正在输入的这个。不过它非常非常得符合第三条，看看这个计算器的像板砖一样的手册就知道了。这个计算器也有一些不便，它实在是太复杂了。比如他默认的键盘配置上没有切换弧度和角度的键。键绑定是可以设的，但是我一直没有搞明白怎么设&#8230;  同样因为这个原因，我一直不知道怎么算双曲三角函数。其他的 RPN 计算器要不就是操作方式诡异，要不就是功能太少。所以昨天我终于决定自己写一个计算器。</p>
<p>奋斗了两天以后把四则运算都搞定了&#8230; -_-  在 iPhone 上开发程序还是很方便的，和在 Mac 上差不多，熟练了以后写界面用不了太多的时间，而且 Interface Builder 做 prototyping 也非常得爽。我的时间主要都浪费在用 <code>UITableView</code> 显示一个堆栈上。<code>UITableView</code> 就是一个和菜单差不多的可选择的列表，几乎每一个 iPhone 程序里都能看到。但是这个东西必须要有一个符合某种特定协议的数据源&#8230;  我曾经一度都想自己用 label 和 <code>UIScrollView</code> 实现一个这种列表了&#8230;  不过最后搞定以后发现这个东西还是挺爽的，并且附赠动画效果~~</p>
<p>在 iPhone 上开发程序需要花 $99 买一个许可证。&#8230; &#8230; &#8230;&#8230; 噢，不对，说错了，是苹果声称你需要买一个，实际上你不需要。免费开发程序的代价就是开发出来的程序只能在 jailbreak 过的 iPhone 上运行。当然这其实没什么，因为<a class="highslide img_6" title="iPhone vs. stone" href="http://www.eatliver.com/img/2008/3509.jpg" onclick="return hs.expand(this)">各种迹象表明</a>，没有 jailbreak 过的 iPhone 的使用价值其实就和一个板砖差不多。默认情况下，如果你没买这个许可证，Xcode 是不会让你把程序往 iPhone 上传的，只能在模拟器里运行。要想在 iPhone 里运行，</p>
<ol>
<li>当然要先 jailbreak</li>
<li>照着 <a href="http://iphonedevwiki.net/index.php/Xcode#Compiling">Compiling 一节</a>做</li>
<li><a href="http://iphonedevwiki.net/index.php/Xcode#Replacing_codesign_with_ldid">Replacing codesign with <code>ldid</code></a>，这一节貌似没什么用，我从来没有成功的运行过 <code>ldid</code>，不过我还是做了。</li>
<li>给 iPhone 装 AppSync 补丁。很多 Cydia 源里都有，比如 hackulo.us 源。</li>
<li>编译时使用自己生成的那个许可证。</li>
</ol>
<p>关于调试，在开始使用 Linux 之后，我就再也没有使用过任何调试器，只使用 <code>printf</code>（及各种语言里的等效的函数）。Objective-c 里是有 <code>printf </code>的，但是比较方便的做法是使用 <code>NSLog()</code>。运行的时候在 Xcode 里选择 Run -&gt; Console，可以看到输出。顺便提一下，Objective-c 的标准库还是很牛逼的，嗯，<code>NSString</code>, <code>NSNumber</code>, <code>NSArray</code>, &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2010/06/windoze-sucks-230/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typescripts Rearranged</title>
		<link>http://darksair.org/blog/2010/05/windoze-sucks-222</link>
		<comments>http://darksair.org/blog/2010/05/windoze-sucks-222#comments</comments>
		<pubDate>Wed, 12 May 2010 19:08:17 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[Typesetting]]></category>
		<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/2010/05/windoze-sucks-222</guid>
		<description><![CDATA[今天好好看了一下 ConTeXt 的新文档 co-fonts，然后把平时常用的字体都写成 typescript 放到 texmf-local 里。这样以后写作业就不会出现字体定义比文档内容还长的情况了-_-&#8230;
首先定义几个 feature sets

\definefontfeature[latin-smallcaps][smallcaps][script=latn]
\definefontfeature
  [fancy]
  [language=dflt, script=latn, method=node, pnum=yes, onum=no,
    kern=yes, liga=yes, dlig=no, zero=no, tlig=yes, trep=yes,
    protrusion=quality, expansion=quality, mapping=tex-text]

然后定义单个字体的 typescript

\starttypescript[myCaslon]
  \definefontsynonym[proserif][name:ACaslonPro-Regular]
  \definefontsynonym[proserifit][name:ACaslonPro-Italic]
  \definefontsynonym[proserifbf][name:ACaslonPro-Bold]
  \definefontsynonym[proserifbi][name:ACaslonPro-BoldItalic]
  \definefontsynonym[Serif][proserif][features=fancy]
  \definefontsynonym[SerifItalic][proserifit][features=fancy]
  \definefontsynonym[SerifBold][proserifbf][features=fancy]
  \definefontsynonym[SerifBoldItalic][proserifbi][features=fancy]
  \definefontsynonym[SerifCaps][Serif][features=latin-smallcaps]
\stoptypescript
&#160;
\starttypescript[myPalatino]
  \definefontsynonym[palarm][name:PalatinoLTStd-Roman]
  [...]]]></description>
			<content:encoded><![CDATA[<p>今天好好看了一下 ConTeXt 的新文档 <a href="http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf" title="Open this PDF">co-fonts</a>，然后把平时常用的字体都写成 typescript 放到 <code>texmf-local</code> 里。这样以后写作业就不会出现字体定义比文档内容还长的情况了-_-&#8230;</p>
<p>首先定义几个 feature sets</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">\definefontfeature[latin-smallcaps][smallcaps][script=latn]
\definefontfeature
  [fancy]
  [language=dflt, script=latn, method=node, pnum=yes, onum=no,
    kern=yes, liga=yes, dlig=no, zero=no, tlig=yes, trep=yes,
    protrusion=quality, expansion=quality, mapping=tex-text]</pre></div></div>

<p>然后定义单个字体的 typescript</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">\starttypescript[myCaslon]
  \definefontsynonym[proserif][name:ACaslonPro-Regular]
  \definefontsynonym[proserifit][name:ACaslonPro-Italic]
  \definefontsynonym[proserifbf][name:ACaslonPro-Bold]
  \definefontsynonym[proserifbi][name:ACaslonPro-BoldItalic]
  \definefontsynonym[Serif][proserif][features=fancy]
  \definefontsynonym[SerifItalic][proserifit][features=fancy]
  \definefontsynonym[SerifBold][proserifbf][features=fancy]
  \definefontsynonym[SerifBoldItalic][proserifbi][features=fancy]
  \definefontsynonym[SerifCaps][Serif][features=latin-smallcaps]
\stoptypescript
&nbsp;
\starttypescript[myPalatino]
  \definefontsynonym[palarm][name:PalatinoLTStd-Roman]
  \definefontsynonym[palait][name:PalatinoLTStd-Italic]
  \definefontsynonym[palabf][name:PalatinoLTStd-Bold]
  \definefontsynonym[palabi][name:PalatinoLTStd-BoldItalic]
  \definefontsynonym[Serif][palarm][features=fancy]
  \definefontsynonym[SerifItalic][palait][features=fancy]
  \definefontsynonym[SerifBold][palabf][features=fancy]
  \definefontsynonym[SerifBoldItalic][palabi][features=fancy]
  \definefontsynonym[SerifCaps][Serif][features=latin-smallcaps]
\stoptypescript
&nbsp;
\starttypescript[myOptima]
  \definefontsynonym[prosans][name:OptimaLTStd]
  \definefontsynonym[prosansit][name:OptimaLTStd-Italic]
  \definefontsynonym[prosansbf][name:OptimaLTStd-Bold]
  \definefontsynonym[prosansbi][name:OptimaLTStd-BoldItalic]
  \definefontsynonym[Sans][prosans][features=fancy]
  \definefontsynonym[SansItalic][prosansit][features=fancy]
  \definefontsynonym[SansBold][prosansbf][features=fancy]
  \definefontsynonym[SansBoldItalic][prosansbi][features=fancy]
  \definefontsynonym[SansCaps][Sans][features=latin-smallcaps]
\stoptypescript
&nbsp;
\starttypescript[myFutura]
  \definefontsynonym[prosans][name:FuturaStd-Medium]
  \definefontsynonym[prosansit][name:FuturaStd-MediumOblique]
  \definefontsynonym[prosansbf][name:FuturaStd-Bold]
  \definefontsynonym[prosansbi][name:FuturaStd-BoldOblique]
  \definefontsynonym[Sans][prosans][features=fancy]
  \definefontsynonym[SansItalic][prosansit][features=fancy]
  \definefontsynonym[SansBold][prosansbf][features=fancy]
  \definefontsynonym[SansBoldItalic][prosansbi][features=fancy]
  \definefontsynonym[SansCaps][Sans][features=latin-smallcaps]
\stoptypescript
&nbsp;
\starttypescript[myMyriad]
  \definefontsynonym[prosans][name:MyriadPro-Regular]
  \definefontsynonym[prosansit][name:MyriadPro-It]
  \definefontsynonym[prosansbf][name:MyriadPro-Bold]
  \definefontsynonym[prosansbi][name:MyriadPro-BoldIt]
  \definefontsynonym[Sans][prosans][features=fancy]
  \definefontsynonym[SansItalic][prosansit][features=fancy]
  \definefontsynonym[SansBold][prosansbf][features=fancy]
  \definefontsynonym[SansBoldItalic][prosansbi][features=fancy]
  % No smallcaps
%  \definefontsynonym[SansCaps][Sans][features=latin-smallcaps]
\stoptypescript
&nbsp;
\starttypescript[myMonaco]
  \definefontsynonym[promono][name:Monaco_Linux]
  \definefontsynonym[Mono][promono][features=default]
\stoptypescript</pre></div></div>

<p>把 <a href="http://wiki.contextgarden.net/ConTeXt_Minimals" title="ConTeXt Minimals @ contextgarden.net">ConTeXt Minimals</a> 自带的 px-math 也定义一个</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">% The internal px-math
\starttypescript[myPxMath]
  \loadfontgoodies[px-math]
  \definefontsynonym[MathRoman][pxmath@px-math]
\stoptypescript</pre></div></div>

<p>最后写几个常用组合</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">\starttypescript[PalatinoOptima]
  \usetypescript[myPalatino]
  \usetypescript[myOptima]
  \usetypescript[myMonaco]
  \usetypescript[myPxMath]
  \definetypeface[PalatinoOptima][rm][serif][myPalatino][default]
  \definetypeface[PalatinoOptima][ss][sans][myOptima][default]
  \definetypeface[PalatinoOptima][tt][mono][myMonaco][default][rscale=0.8]
  \definetypeface[PalatinoOptima][mm][math][myPxMath][default]
\stoptypescript
&nbsp;
\starttypescript[PalatinoMyriad]
  \usetypescript[myPalatino]
  \usetypescript[myMyriad]
  \usetypescript[myMonaco]
  \usetypescript[myPxMath]
  \definetypeface[PalatinoMyriad][rm][serif][myPalatino][default]
  \definetypeface[PalatinoMyriad][ss][sans][myMyriad][default]
  \definetypeface[PalatinoMyriad][tt][mono][myMonaco][default][rscale=0.8]
  \definetypeface[PalatinoMyriad][mm][math][myPxMath][default]
\stoptypescript
&nbsp;
\starttypescript[CaslonMyriad]
  \usetypescript[myCaslon]
  \usetypescript[myMyriad]
  \usetypescript[myMonaco]
  \usetypescript[myPxMath]
  \definetypeface[CaslonMyriad][rm][serif][myCaslon][default]
  \definetypeface[CaslonMyriad][ss][sans][myMyriad][default]
  \definetypeface[CaslonMyriad][tt][mono][myMonaco][default][rscale=0.8]
\stoptypescript</pre></div></div>

<p>把这些写成一个文件扔到 <code>textmf-local/tex/context/base</code> 里，然后<br />
<code>luatools --generate; context --make</code>。测试：</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">\input type-mine
\usetypescript[PalatinoOptima]
\setupbodyfont[PalatinoOptima, roman, 12pt]
&nbsp;
\setuppapersize[B5][B5]
\setupinterlinespace[line=1.4em]
&nbsp;
\starttext
Serif test 1234567890.  {\ss Sans test}.  {\tt Typewriter test.}
&nbsp;
{\it Serif test 1234567890.  {\ss Sans test}.}
&nbsp;
{\bf Serif test 1234567890.  {\ss Sans test}.}
&nbsp;
$M_{ath} \times t^{est} = 1234567890.$ \placeformula
\startformula
  \widetilde{G}(\vec k, \omega) = \int_{-\infty}^{+\infty} e^{i(\vec
    k\cdot \vec x - \omega t)} G(\vec x, t)\, {\rm d}^3 \vec x\, {\rm d}t
\stopformula
\stoptext</pre></div></div>

<p>效果如图</p>
<table style="text-align: center; width: 100%;">
<tr>
<td><a class="highslide img_9" href="http://img532.imageshack.us/img532/8115/palatino.png" title="Palatino + Optima" onclick="return hs.expand(this)"><img src="http://img99.imageshack.us/img99/9029/palatinothumb.png" alt="Palatino + Optima" /></a></td>
<td><a class="highslide img_10" href="http://img121.imageshack.us/img121/3751/caslon.png" title="Caslon + Myriad" onclick="return hs.expand(this)"><img src="http://img132.imageshack.us/img132/2117/caslonthumb.png" alt="Caslon + Myriad" /></a></td>
</tr>
<tr>
<td>Palatino</td>
<td>Caslon</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2010/05/windoze-sucks-222/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Hilighting in ConTeXt</title>
		<link>http://darksair.org/blog/2010/04/windoze-sucks-215</link>
		<comments>http://darksair.org/blog/2010/04/windoze-sucks-215#comments</comments>
		<pubDate>Thu, 01 Apr 2010 16:15:25 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[Typesetting]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=215</guid>
		<description><![CDATA[今天需要排一个带 Scheme 代码的文档，里面还有点数学公式，所以决定用 ConTeXt。正好前几天 Steamedfish 同学跟我说过 ConTeXt 可以读取 Vim 的语法加亮，决定看一看。
Google 了一下之后发现 ConTeXt 是使用一个叫做 t-vim 的 module 来干这件事的，我使用的 ConTeXt 发行是 ConTeXt Minimal，于是进入 ConTeXt 的安装目录，更新

./first-setup.sh --extras=t-vim

然后随便排了一个代码。ConTeXt 报错

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar  8 2010 22:56:09)
Garbage after option argument: "-u NONE -e -C -n -c "set tabstop=8" -c
"syntax on" -c "set syntax=scheme" -c [...]]]></description>
			<content:encoded><![CDATA[<p>今天需要排一个带 Scheme 代码的文档，里面还有点数学公式，所以决定用 ConTeXt。正好前几天 <a href="http://www.steamedfish.org/" title="Homepage of SteamedFish">Steamedfish</a> 同学跟我说过 ConTeXt 可以读取 Vim 的语法加亮，决定看一看。</p>
<p>Google 了一下之后发现 ConTeXt 是使用一个叫做 <code>t-vim</code> 的 module 来干这件事的，我使用的 ConTeXt 发行是 <a href="http://wiki.contextgarden.net/ConTeXt_Minimals" title="ConTeXt minimal @ ConTeXt Garden">ConTeXt Minimal</a>，于是进入 ConTeXt 的安装目录，更新</p>
<pre>
./first-setup.sh --extras=t-vim
</pre>
<p>然后随便排了一个代码。ConTeXt 报错</p>
<pre>
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar  8 2010 22:56:09)
Garbage after option argument: "-u NONE -e -C -n -c "set tabstop=8" -c
"syntax on" -c "set syntax=scheme" -c "let contextstartline=1" -c "let
contextstopline=0" -c "source 2context.vim" -c "wqa"
"009-vimsyntax.tmp" "
</pre>
<p>哭了&#8230; 这不是要整死我这个 Vim 白痴么&#8230;  经过无穷多小时的 google，我终于认识到“Garbage after option argument”错误表示 Vim 的参数有错&#8230; 看来要改 <code>t-vim</code> 的代码了。于是打开 <code>t-vim.tex</code>，一看又哭了&#8230; 一个 macro 都不认识，这不是要整死我这个 TeX 白痴么&#8230;  经过 3000+ ms 的搜索，我终于认识到问题出在 <code>t-vim.tex</code> 的第 344 行：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
</pre></td><td class="code"><pre class="latex" style="font-family:monospace;">   <span class="sy0">{</span><span class="re12">\executesystemcommand</span>
      <span class="sy0">{</span>mtxrun --verbose --noquote bin:vim
          &quot;-u NONE  <span class="co1">% No need to read unnessary configurations</span>
           -e       <span class="co1">% run in ex mode</span>
           -C       <span class="co1">% Set compatibile</span>
           -n       <span class="co1">% No swap</span>
<span class="co1">%          -V10log  % For debugging only, will go away later.</span>
           -c <span class="re12">\shellescapedquote</span> set tabstop=<span class="sy0">\</span>@@vstab <span class="re12">\shellescapedquote</span><span class="re12">\space</span>    
           -c <span class="re12">\shellescapedquote</span> syntax on<span class="re12">\shellescapedquote</span><span class="re12">\space</span> 
           -c <span class="re12">\shellescapedquote</span> set syntax=<span class="sy0">\</span>@@vssyntax<span class="re12">\shellescapedquote</span><span class="re12">\space</span>
           -c <span class="re12">\shellescapedquote</span> let contextstartline=<span class="sy0">\</span>@@vsstart<span class="re12">\shellescapedquote</span><span class="re12">\space</span>
           -c <span class="re12">\shellescapedquote</span> let contextstopline=<span class="sy0">\</span>@@vsstop<span class="re12">\shellescapedquote</span>  <span class="re12">\space</span>
           -c <span class="re12">\shellescapedquote</span> source kpse:2context.vim<span class="re12">\shellescapedquote</span><span class="re12">\space</span>
           -c <span class="re12">\shellescapedquote</span> wqa<span class="re12">\shellescapedquote</span><span class="re12">\space</span>    
            <span class="re12">\shellescapedquote</span>#1<span class="re12">\shellescapedquote</span><span class="re12">\space</span> &quot;<span class="sy0">}}</span></pre></td></tr></table></div>

<p>Macro <code>\shellescapedquote</code> 后面的 <code>\space</code> 会在文件名（<code>#1</code>）的后面加上一个空格。而 <code>mtxrun</code> 会把这个空格当作参数的一部分？？！！！于是 vim 就会收到一个很诡异的参数而报错。所以我首先想到的解决方法就是把最后那个 <code>\space</code> 去掉。然后发现编译时最后的那个引号（<code>\shellescapedquote</code>）居然就没了，还是出错&#8230;  于是我怒了，毅然决定把 <code>mtxrun</code> 换成无敌的 Bash。</p>

<div class="wp_syntax"><div class="code"><pre class="latex" style="font-family:monospace;"><span class="re12">\<span class="kw1">def</span></span><span class="re12">\runvimsyntax</span>#1
   <span class="sy0">{</span><span class="re9"><span class="re12">\executesystemcommand</span>
      <span class="sy0">{</span>bash -c &quot;vim -u NONE -e -C -n -c <span class="re12">\shellescapedquote</span> set tabstop=<span class="sy0">\</span>@@vstab <span class="re12">\shellescapedquote</span><span class="re12">\space</span> -c <span class="re12">\shellescapedquote</span> syntax on<span class="re12">\shellescapedquote</span><span class="re12">\space</span> -c <span class="re12">\shellescapedquote</span> set syntax=<span class="sy0">\</span>@@vssyntax<span class="re12">\shellescapedquote</span><span class="re12">\space</span> -c <span class="re12">\shellescapedquote</span> let contextstartline=<span class="sy0">\</span>@@vsstart<span class="re12">\shellescapedquote</span><span class="re12">\space</span> -c <span class="re12">\shellescapedquote</span> let contextstopline=<span class="sy0">\</span>@@vsstop<span class="re12">\shellescapedquote</span>  <span class="re12">\space</span> -c <span class="re12">\shellescapedquote</span> source /home/corsair/software/context/tex/texmf-context/tex/context/third/vim/2context.vim<span class="re12">\shellescapedquote</span><span class="re12">\space</span> -c <span class="re12">\shellescapedquote</span> wqa<span class="re12">\shellescapedquote</span><span class="re12">\space</span> <span class="re12">\shellescapedquote</span>#1<span class="re12">\shellescapedquote</span><span class="re12">\space</span> &quot;</span><span class="sy0">}}</span></pre></div></div>

<p>宇宙终于又开始正常运行了。</p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2010/04/windoze-sucks-215/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>春节</title>
		<link>http://darksair.org/blog/2010/02/windoze-sucks-210</link>
		<comments>http://darksair.org/blog/2010/02/windoze-sucks-210#comments</comments>
		<pubDate>Tue, 16 Feb 2010 02:39:01 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[随便说说]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=210</guid>
		<description><![CDATA[把房间整理了一下，准备过节。【全文】
]]></description>
			<content:encoded><![CDATA[<p>把房间整理了一下，准备过节。<a title="Read full post" href="http://darksair.org/car/?p=263">【全文】</a></p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2010/02/windoze-sucks-210/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于 Photoshop</title>
		<link>http://darksair.org/blog/2009/12/windoze-sucks-205</link>
		<comments>http://darksair.org/blog/2009/12/windoze-sucks-205#comments</comments>
		<pubDate>Sun, 13 Dec 2009 19:10:26 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[随便说说]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=205</guid>
		<description><![CDATA[这几天我给一个同学看我的照片，他听说我用了 PS 以后大喊：“You ruined your photos man!  Don&#8217;t do it!”
本来我想以中学作文的形式来写这个东西的。写了一半发现没必要，因为有些东西太显然了。所以我决定这么写：

摄影是一种艺术，我的目标是艺术（有没有达到是另一回事哈）
艺术是用来让人（别人）深思的
制作艺术的过程不能让人（别人）深思
艺术品的艺术价值与制作过程无关，只与内容有关

另外

暗房和 PS 都是 post-processing
胶片机和 DC 都是照相机
刻活字和 Fontforge 都是字体设计
排活字和 TeX 都是排版
用笔写和用计算机写都是写作
手算和 Mathematica 算都是计算
 乱摸和在网上使用挑逗性言论都是性骚扰
还用再举例么？

最后
老子就是要 PS，老子就是要狂 PS，老子的 PS 水平巨高，老子能把照片 PS 得巨贱，怎么着吧你～～？
]]></description>
			<content:encoded><![CDATA[<p>这几天我给一个同学看我的照片，他听说我用了 PS 以后大喊：“You ruined your photos man!  Don&#8217;t do it!”</p>
<p>本来我想以中学作文的形式来写这个东西的。写了一半发现没必要，因为有些东西太显然了。所以我决定这么写：</p>
<ol>
<li>摄影是一种艺术，我的目标是艺术（有没有达到是另一回事哈）</li>
<li>艺术是用来让人（别人）深思的</li>
<li>制作艺术的过程不能让人（别人）深思</li>
<li>艺术品的艺术价值与制作过程无关，只与内容有关</li>
</ol>
<p>另外</p>
<ol>
<li>暗房和 PS 都是 post-processing</li>
<li>胶片机和 DC 都是照相机</li>
<li>刻活字和 Fontforge 都是字体设计</li>
<li>排活字和 TeX 都是排版</li>
<li>用笔写和用计算机写都是写作</li>
<li>手算和 Mathematica 算都是计算</li>
<li> 乱摸和在网上使用挑逗性言论都是性骚扰</li>
<li>还用再举例么？</li>
</ol>
<div class="wp-caption alignleft" style="width: 210px"><a href="http://darksair.org/gallery3/index.php/photo/us/weekly/DSC_0048"><img title="Four" src="http://darksair.org/gallery3/var/thumbs/photo/us/weekly/DSC_0048.jpg?m=1260055198" alt="Four" width="200" height="132" /></a><p class="wp-caption-text">Four</p></div>
<p>最后</p>
<p>老子就是要 PS，老子就是要狂 PS，老子的 PS 水平巨高，老子能把照片 PS 得巨贱，怎么着吧你～～？</p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2009/12/windoze-sucks-205/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>听 Muse 新砖有感</title>
		<link>http://darksair.org/blog/2009/11/windoze-sucks-202</link>
		<comments>http://darksair.org/blog/2009/11/windoze-sucks-202#comments</comments>
		<pubDate>Sat, 21 Nov 2009 18:38:49 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[随便说说]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=202</guid>
		<description><![CDATA[我一直认为我不听流行不是因为我高雅，而是因为流行实在过于低俗。我几乎不听非主流摇滚就是我不高雅的最好佐证。[... full text]
]]></description>
			<content:encoded><![CDATA[<p>我一直认为我不听流行不是因为我高雅，而是因为流行实在过于低俗。我几乎不听非主流摇滚就是我不高雅的最好佐证。<a title="Link to full text in C.A.R." href="http://darksair.org/car/?p=224">[... full text]</a></p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2009/11/windoze-sucks-202/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>D40 Test</title>
		<link>http://darksair.org/blog/2009/11/windoze-sucks-196</link>
		<comments>http://darksair.org/blog/2009/11/windoze-sucks-196#comments</comments>
		<pubDate>Fri, 13 Nov 2009 16:48:36 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[随便说说]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=196</guid>
		<description><![CDATA[Just bought a Nikon D40 DSLR.  Since today I had an exam, I just did one test to it: night shooting in my very dim room.

Shot with the lens in package, under 18mm, aperture-priority, f/3.5, 1/6s, ISO1600.  And white-balanced in Photoshop, because I only have two light bubbles that emit yellow white lights.   A [...]]]></description>
			<content:encoded><![CDATA[<p>Just bought a Nikon D40 DSLR.  Since today I had an exam, I just did one test to it: night shooting in my very dim room.</p>
<p><a class="highslide img_13" href="http://img2.pict.com/7f/37/44/1975100/0/800/dsc0020.jpg" onclick="return hs.expand(this)"><img title="My Room" src="http://img2.pict.com/7f/37/44/1975100/0/320/dsc0020.jpg" alt="My Room" width="320" height="213" /></a></p>
<p>Shot with the lens in package, under 18mm, aperture-priority, f/3.5, 1/6s, ISO1600.  And white-balanced in Photoshop, because I only have two light bubbles that emit yellow white lights.   A portion of the 100% image is <a class="highslide img_14" title="100% Croped" href="http://img2.pict.com/18/53/76/1975103/0/dsc0020crop.jpg" onclick="return hs.expand(this)">here</a>.  I&#8217;m more than satisfied with this photo because</p>
<ol>
<li>My room is very dim, very very dim.</li>
<li>This was shot under ISO1600, which means D40&#8217;s high ISO is awesome.</li>
<li>I can hold this camera steadily enough.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2009/11/windoze-sucks-196/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPhone Jailbreak</title>
		<link>http://darksair.org/blog/2009/10/windoze-sucks-193</link>
		<comments>http://darksair.org/blog/2009/10/windoze-sucks-193#comments</comments>
		<pubDate>Mon, 12 Oct 2009 05:43:47 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=193</guid>
		<description><![CDATA[正在 Dev-team 忙着整 3.1 jailbreak 的时候，惊闻某大牛已经搞出了 3.1 和 3.1.2 都能用的 jailbreak，Blackra1n。遂装，成功。然后第一件事就是装了个 MobileTerminal 和 OpenSSH，呵呵。不过 jailbreak 了以后还是不能运行自己写的代码，有两个问题：

Xcode 只能编译在 simulator 运行的代码，编译 iPhone 上运行的代码还需要 sign。
IPhone 还是需要检查 SHA1 hash。

第一个问题很好解决，编辑文件 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist，把 CODE_SIGNING_REQUIRED 下面的 YES 改成 NO，然后在 Xcode 里设置项目的 certificate identity 为不需要签名。第二个问题比较麻烦。Cydia 的网站里提到可以在 iPhone 里运行一条命令
sysctl -w security.mac.proc_enforce=0 \
security.mac.vnode_enforce=0
就搞定了。我这里执行以后的确可以运行没有签名的程序了，但是副作用是一旦重启 SpringBoard 就连不上 wifi。不过这个倒是不麻烦，把这两个值都恢复成原来的就行了。其实最好的解决办法是 self-signing。但是我用 codesign 老是出错&#8230; 嗯。不废话了，上 pp~~

]]></description>
			<content:encoded><![CDATA[<p>正在 Dev-team 忙着整 3.1 jailbreak 的时候，惊闻某大牛已经搞出了 3.1 和 3.1.2 都能用的 jailbreak，<a title="Blackra1n" href="http://www.blackra1n.com">Blackra1n</a>。遂装，成功。然后第一件事就是装了个 MobileTerminal 和 OpenSSH，呵呵。不过 jailbreak 了以后还是不能运行自己写的代码，有两个问题：</p>
<ol>
<li>Xcode 只能编译在 simulator 运行的代码，编译 iPhone 上运行的代码还需要 sign。</li>
<li>IPhone 还是需要检查 SHA1 hash。</li>
</ol>
<p>第一个问题很好解决，编辑文件 <code>/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/SDKSettings.plist</code>，把 <code>CODE_SIGNING_REQUIRED</code> 下面的 <code>YES</code> 改成 <code>NO</code>，然后在 Xcode 里设置项目的 certificate identity 为不需要签名。第二个问题比较麻烦。Cydia 的网站里提到可以在 iPhone 里运行一条命令</p>
<pre>sysctl -w security.mac.proc_enforce=0 \
security.mac.vnode_enforce=0</pre>
<p>就搞定了。我这里执行以后的确可以运行没有签名的程序了，但是副作用是一旦重启 SpringBoard 就连不上 wifi。不过这个倒是不麻烦，把这两个值都恢复成原来的就行了。其实最好的解决办法是 self-signing。但是我用 <code>codesign</code> 老是出错&#8230; 嗯。不废话了，上 pp~~</p>
<p style="text-align: center;"><a href="http://www.pict.com/view/1751335/0/jailbreak"><img class="  aligncenter" title="IPhone Jailbreak" src="http://img2.pict.com/09/bc/23/1751329/0/jailbreakthumb.png" alt="IPhone Jailbreak" width="460" height="220" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2009/10/windoze-sucks-193/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>误人子弟记</title>
		<link>http://darksair.org/blog/2009/09/windoze-sucks-187</link>
		<comments>http://darksair.org/blog/2009/09/windoze-sucks-187#comments</comments>
		<pubDate>Sat, 12 Sep 2009 00:44:53 +0000</pubDate>
		<dc:creator>Corsair</dc:creator>
				<category><![CDATA[physics]]></category>
		<category><![CDATA[随便说说]]></category>

		<guid isPermaLink="false">http://darksair.org/blog/?p=187</guid>
		<description><![CDATA[今天上完电动力学课，我去某指定地点答疑。进去时已经有三个小孩在了。其中两个在激烈讨论（这两个好像都比我大&#8230;），还有一个闷头做题。然后我自我介绍说我是 lab TA。过了一会儿，那个闷头做题的过来问一道很弱智的电磁学问题。我想我虽然不是电磁学的 TA，但是应付一下也是没问题的，于是就看题目。题目是这样的
两个电荷都是 -q 相距 10cm。求空间中总电场为零的点。
于是我就很认真的告诉那个小孩，设两电荷之间的一点，距其中一个电荷为 r。这点的总电场为两个电荷的电场之和

 也就是 ，鉴于这是两个平方之和，所以 ，所以这道题出错了。
下午上数理的时候才反应过来，下课后想去找该小孩，未遂。
郑重告诫各位，刚上完电动量子广相或场论之后不宜思考。思考必死。
]]></description>
			<content:encoded><![CDATA[<p>今天上完电动力学课，我去某指定地点答疑。进去时已经有三个小孩在了。其中两个在激烈讨论（这两个好像都比我大&#8230;），还有一个闷头做题。然后我自我介绍说我是 lab TA。过了一会儿，那个闷头做题的过来问一道很弱智的电磁学问题。我想我虽然不是电磁学的 TA，但是应付一下也是没问题的，于是就看题目。题目是这样的</p>
<blockquote><p>两个电荷都是 -<em>q</em> 相距 10cm。求空间中总电场为零的点。</p></blockquote>
<p>于是我就很认真的告诉那个小孩，设两电荷之间的一点，距其中一个电荷为 <em>r</em>。这点的总电场为两个电荷的电场之和</p>
<p><img src="http://l.wordpress.com/latex.php?latex=%5Cdisplaystyle%20E%20%3D%20%5Cfrac%7B-q%7D%7B4%5Cpi%5Cepsilon_0%7D%5Cleft%5B%5Cfrac%7B1%7D%7Br%5E2%7D%20%2B%20%5Cfrac%7B1%7D%7B%2810%20-%20r%29%5E2%7D%5Cright%5D&#038;bg=2E3735&#038;fg=B6BEB4&#038;s=0" title="\displaystyle E = \frac{-q}{4\pi\epsilon_0}\left[\frac{1}{r^2} + \frac{1}{(10 - r)^2}\right]" style="vertical-align:-20%;" class="tex" alt="\displaystyle E = \frac{-q}{4\pi\epsilon_0}\left[\frac{1}{r^2} + \frac{1}{(10 - r)^2}\right]" /></p>
<p><img src="http://l.wordpress.com/latex.php?latex=E%3D0&#038;bg=2E3735&#038;fg=B6BEB4&#038;s=0" title="E=0" style="vertical-align:-20%;" class="tex" alt="E=0" /> 也就是 <img src="http://l.wordpress.com/latex.php?latex=r%5E2%20%2B%20%2810%20-%20r%29%5E2%20%3D%200&#038;bg=2E3735&#038;fg=B6BEB4&#038;s=0" title="r^2 + (10 - r)^2 = 0" style="vertical-align:-20%;" class="tex" alt="r^2 + (10 - r)^2 = 0" />，鉴于这是两个平方之和，所以 <img src="http://l.wordpress.com/latex.php?latex=r%20%3D%2010%20-%20r%20%3D%200&#038;bg=2E3735&#038;fg=B6BEB4&#038;s=0" title="r = 10 - r = 0" style="vertical-align:-20%;" class="tex" alt="r = 10 - r = 0" />，所以这道题出错了。</p>
<p>下午上数理的时候才反应过来，下课后想去找该小孩，未遂。</p>
<p>郑重告诫各位，刚上完电动量子广相或场论之后不宜思考。思考必死。</p>
]]></content:encoded>
			<wfw:commentRss>http://darksair.org/blog/2009/09/windoze-sucks-187/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.361 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-30 06:01:03 -->
