<?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>zneil</title>
	<atom:link href="http://www.zneil.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zneil.net</link>
	<description>coding</description>
	<lastBuildDate>Fri, 02 Jul 2010 09:20:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>linux下让pdf使用单一字体</title>
		<link>http://www.zneil.net/2010/07/linux%e4%b8%8b%e8%ae%a9pdf%e4%bd%bf%e7%94%a8%e5%8d%95%e4%b8%80%e5%ad%97%e4%bd%93/</link>
		<comments>http://www.zneil.net/2010/07/linux%e4%b8%8b%e8%ae%a9pdf%e4%bd%bf%e7%94%a8%e5%8d%95%e4%b8%80%e5%ad%97%e4%bd%93/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 09:00:41 +0000</pubDate>
		<dc:creator>zneil</dc:creator>
				<category><![CDATA[记录]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://www.zneil.net/?p=141</guid>
		<description><![CDATA[很多pdf文件的字体没有嵌入到文件中，以致于在windows下可以正常阅读到文件在linux下面是乱码或者不显示相关内容，为解决这一问题，可以为pdf文件分配单一的字体。
代码如下：
&#60;?xml version=&#8221;1.0&#8243;?&#62;
&#60;!DOCTYPE fontconfig SYSTEM &#8220;fonts.dtd&#8221;&#62;
&#60;fontconfig&#62;
&#60;!&#8211;
If the font still has no generic name, add sans-serif
&#8211;&#62;
&#60;match target=&#8221;pattern&#8221;&#62;
&#60;test qual=&#8221;all&#8221; name=&#8221;family&#8221; compare=&#8221;not_eq&#8221;&#62;
&#60;string&#62;URW Bookman L&#60;/string&#62;
&#60;/test&#62;
&#60;test qual=&#8221;all&#8221; name=&#8221;family&#8221; compare=&#8221;not_eq&#8221;&#62;
&#60;string&#62;URW Bookman L&#60;/string&#62;
&#60;/test&#62;
&#60;test qual=&#8221;all&#8221; name=&#8221;family&#8221; compare=&#8221;not_eq&#8221;&#62;
&#60;string&#62;URW Bookman L&#60;/string&#62;
&#60;/test&#62;
&#60;edit name=&#8221;family&#8221; mode=&#8221;append_last&#8221;&#62;
&#60;string&#62;URW Bookman L&#60;/string&#62;
&#60;/edit&#62;
&#60;/match&#62;
&#60;/fontconfig&#62;
将上述代码拷贝至新建文件中，命名为：49-sansserif.conf，并将文件移动至：/etc/fonts/conf.d/49-sansserif.conf。
如果仍然不起作用，在终端输入下列代码：
 sudo apt-get install poppler-data
]]></description>
			<content:encoded><![CDATA[<p>很多pdf文件的字体没有嵌入到文件中，以致于在windows下可以正常阅读到文件在linux下面是乱码或者不显示相关内容，为解决这一问题，可以为pdf文件分配单一的字体。<br />
代码如下：</p>
<p><span style="color: #993300;">&lt;?xml version=&#8221;1.0&#8243;?&gt;</span></p>
<p><span style="color: #993300;">&lt;!DOCTYPE fontconfig SYSTEM &#8220;fonts.dtd&#8221;&gt;</span></p>
<p><span style="color: #993300;">&lt;fontconfig&gt;</span></p>
<p><span style="color: #993300;">&lt;!&#8211;</span></p>
<p><span style="color: #993300;">If the font still has no generic name, add sans-serif</span></p>
<p><span style="color: #993300;">&#8211;&gt;</span></p>
<p><span style="color: #993300;">&lt;match target=&#8221;pattern&#8221;&gt;</span></p>
<p><span style="color: #993300;">&lt;test qual=&#8221;all&#8221; name=&#8221;family&#8221; compare=&#8221;not_eq&#8221;&gt;</span></p>
<p><span style="color: #993300;">&lt;string&gt;URW Bookman L&lt;/string&gt;</span></p>
<p><span style="color: #993300;">&lt;/test&gt;</span></p>
<p><span style="color: #993300;">&lt;test qual=&#8221;all&#8221; name=&#8221;family&#8221; compare=&#8221;not_eq&#8221;&gt;</span></p>
<p><span style="color: #993300;">&lt;string&gt;URW Bookman L&lt;/string&gt;</span></p>
<p><span style="color: #993300;">&lt;/test&gt;</span></p>
<p><span style="color: #993300;">&lt;test qual=&#8221;all&#8221; name=&#8221;family&#8221; compare=&#8221;not_eq&#8221;&gt;</span></p>
<p><span style="color: #993300;">&lt;string&gt;URW Bookman L&lt;/string&gt;</span></p>
<p><span style="color: #993300;">&lt;/test&gt;</span></p>
<p><span style="color: #993300;">&lt;edit name=&#8221;family&#8221; mode=&#8221;append_last&#8221;&gt;</span></p>
<p><span style="color: #993300;">&lt;string&gt;URW Bookman L&lt;/string&gt;</span></p>
<p><span style="color: #993300;">&lt;/edit&gt;</span></p>
<p><span style="color: #993300;">&lt;/match&gt;</span></p>
<p><span style="color: #993300;">&lt;/fontconfig&gt;</span></p>
<div id="_mcePaste">将上述代码拷贝至新建文件中，命名为：<span style="color: #800000;">49-sansserif.conf</span>，并将文件移动至：<span style="color: #ff0000;">/etc/fonts/conf.d/49-sansserif.conf</span>。</div>
<p>如果仍然不起作用，在终端输入下列代码：<br />
<strong><span style="color: #000080;"> sudo apt-get install poppler-data</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zneil.net/2010/07/linux%e4%b8%8b%e8%ae%a9pdf%e4%bd%bf%e7%94%a8%e5%8d%95%e4%b8%80%e5%ad%97%e4%bd%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>emacs简单配置</title>
		<link>http://www.zneil.net/2010/07/emacs%e7%ae%80%e5%8d%95%e9%85%8d%e7%bd%ae/</link>
		<comments>http://www.zneil.net/2010/07/emacs%e7%ae%80%e5%8d%95%e9%85%8d%e7%bd%ae/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 02:13:09 +0000</pubDate>
		<dc:creator>zneil</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://www.zneil.net/?p=131</guid>
		<description><![CDATA[1 自动启动ecb
;;;; 自动启动ecb，并且不显示每日提示
(setq ecb-auto-activate t
ecb-tip-of-the-day nil)
2显示行号
1.下载扩展文件linum.el，可以在http://stud4.tuwien.ac.at/~e0225855/linum/linum.html进行下载，它有不同的版本供你使用，我选择emacs22及以上版本。
2.设置.emacs文件:
(add-to-list &#8216;load-path &#8220;/usr/share/emacs/mylisp&#8221;)
(require &#8216;linum)
(global-linum-mode 1)
3鼠标的支持
默认情况下，使用鼠标点击ECB窗口中的内容，不起作用，并不能打开它，要回车才可以。可以在Emacs中执行“M-x ecb-customize-most-important”，找到“Ecb Primary Secondary Mouse Buttons”选项，将其设为“Primary: mouse-1, secondary: mouse-2”，并且以“Save for Future Sessions”保存。
4全屏
(defun my-fullscreen ()
(interactive)
(x-send-client-message
nil 0 nil &#8220;_NET_WM_STATE&#8221; 32
&#8216;(2 &#8220;_NET_WM_STATE_FULLSCREEN&#8221; 0))
)
;该函数用于最大化,状态值为1说明最大化后不会被还原
;因为这里有两次最大化 (分别是水平和垂直)
(defun my-maximized ()
(interactive)
(x-send-client-message
nil 0 nil &#8220;_NET_WM_STATE&#8221; 32
&#8216;(1 &#8220;_NET_WM_STATE_MAXIMIZED_HORZ&#8221; 0))
(interactive)
(x-send-client-message
nil 0 nil &#8220;_NET_WM_STATE&#8221; 32
&#8216;(1 &#8220;_NET_WM_STATE_MAXIMIZED_VERT&#8221; 0)))
(my-maximized)
5自定义按键
(global-set-key [f1] &#8217;shell);F1进入Shell
(global-set-key [f5] &#8216;gdb);F5调试程序
(setq compile-command &#8220;make -f Makefile&#8221;)
(global-set-key [f7] &#8216;do-compile);F7编译文件
(global-set-key [f8] &#8216;other-window);F8窗口间跳转
(global-set-key [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1 自动启动ecb</strong></p>
<p>;;;; 自动启动ecb，并且不显示每日提示</p>
<p>(setq ecb-auto-activate t</p>
<p>ecb-tip-of-the-day nil)</p>
<p><strong>2显示行号</strong></p>
<p>1.下载扩展文件linum.el，可以在http://stud4.tuwien.ac.at/~e0225855/linum/linum.html进行下载，它有不同的版本供你使用，我选择emacs22及以上版本。<br />
2.设置.emacs文件:<br />
(add-to-list &#8216;load-path &#8220;/usr/share/emacs/mylisp&#8221;)<br />
(require &#8216;linum)<br />
(global-linum-mode 1)</p>
<p><strong>3鼠标的支持</strong></p>
<p>默认情况下，使用鼠标点击ECB窗口中的内容，不起作用，并不能打开它，<span style="color: #ff0000;">要回车才可以</span>。可以在Emacs中执行“M-x ecb-customize-most-important”，找到“Ecb Primary Secondary Mouse Buttons”选项，将其设为“Primary: mouse-1, secondary: mouse-2”，并且以“Save for Future Sessions”保存。</p>
<p><strong>4全屏</strong><br />
(defun my-fullscreen ()<br />
(interactive)<br />
(x-send-client-message<br />
nil 0 nil &#8220;_NET_WM_STATE&#8221; 32<br />
&#8216;(2 &#8220;_NET_WM_STATE_FULLSCREEN&#8221; 0))<br />
)<br />
;该函数用于最大化,状态值为1说明最大化后不会被还原<br />
;因为这里有两次最大化 (分别是水平和垂直)<br />
(defun my-maximized ()<br />
(interactive)<br />
(x-send-client-message<br />
nil 0 nil &#8220;_NET_WM_STATE&#8221; 32<br />
&#8216;(1 &#8220;_NET_WM_STATE_MAXIMIZED_HORZ&#8221; 0))<br />
(interactive)<br />
(x-send-client-message<br />
nil 0 nil &#8220;_NET_WM_STATE&#8221; 32<br />
&#8216;(1 &#8220;_NET_WM_STATE_MAXIMIZED_VERT&#8221; 0)))<br />
(my-maximized)</p>
<div id="_mcePaste"><strong>5自定义按键</strong></div>
<div id="_mcePaste">(global-set-key [f1] &#8217;shell);F1进入Shell</div>
<div id="_mcePaste">(global-set-key [f5] &#8216;gdb);F5调试程序</div>
<div id="_mcePaste">(setq compile-command &#8220;make -f Makefile&#8221;)</div>
<div id="_mcePaste">(global-set-key [f7] &#8216;do-compile);F7编译文件</div>
<div id="_mcePaste">(global-set-key [f8] &#8216;other-window);F8窗口间跳转</div>
<div id="_mcePaste">(global-set-key [f10] &#8217;split-window-vertically);F10分割窗口</div>
<div id="_mcePaste">(global-set-key [f11] &#8216;delete-other-windows);F11 关闭其它窗口</div>
<div id="_mcePaste">(global-set-key [f12] &#8216;my-fullscreen);F12 全屏</div>
<div><strong>6简单配置</strong></div>
<div>
<div>(fset &#8216;yes-or-no-p &#8216;y-or-n-p)                      ;以 y/n代表 yes/no</div>
<div>(tool-bar-mode nil)                                   ;去掉那个大大的工具栏</div>
<div>(setq x-select-enable-clipboard t)          ;支持emacs和外部程序的粘贴</div>
<div>(setq frame-title-format &#8216;(&#8220;&#8221; buffer-file-name &#8220;@emacs&#8221; ));在标题栏显示buffer名称</div>
<div>(setq default-fill-column 80)                  ;默认显示 80列就换行</div>
<div>(show-paren-mode 1)                              ;当指针到一个括号时，自动显示所匹配的另一个括号</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.zneil.net/2010/07/emacs%e7%ae%80%e5%8d%95%e9%85%8d%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用递归求排列</title>
		<link>http://www.zneil.net/2010/06/%e7%94%a8%e9%80%92%e5%bd%92%e6%b1%82%e6%8e%92%e5%88%97/</link>
		<comments>http://www.zneil.net/2010/06/%e7%94%a8%e9%80%92%e5%bd%92%e6%b1%82%e6%8e%92%e5%88%97/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 13:16:59 +0000</pubDate>
		<dc:creator>zneil</dc:creator>
				<category><![CDATA[数据结构]]></category>

		<guid isPermaLink="false">http://www.zneil.net/?p=100</guid>
		<description><![CDATA[通常我们希望检查n 个不同元素的所有排列方式以确定一个最佳的排列。比如，a，b 和c 的排列方式有：a b c, a c b, b a c, b c a, cab 和c b a。n 个元素的排列方式共有n ！种。
由于采用非递归的C + +函数来输出n 个元素的所有排列方式很困难，所以可以开发一个递归函数来实现。令E= {e1 , &#8230;, en }表示n 个元素的集合，我们的目标是生成该集合的所有排列方式。令Ei 为E中移去元素i 以后所获得的集合，perm (X) 表示集合X 中元素的排列方式，ei . p e r m(X)表示在perm (X) 中的每个排列方式的前面均加上ei 以后所得到的排列方式。例如，如果E= {a, b, c}，那么E1= {b, c}，perm (E1 ) = ( b c, c [...]]]></description>
			<content:encoded><![CDATA[<p>通常我们希望检查n 个不同元素的所有排列方式以确定一个最佳的排列。比如，a，b 和c 的排列方式有：a b c, a c b, b a c, b c a, cab 和c b a。n 个元素的排列方式共有n ！种。</p>
<p>由于采用非递归的C + +函数来输出n 个元素的所有排列方式很困难，所以可以开发一个递归函数来实现。令E= {e1 , &#8230;, en }表示n 个元素的集合，我们的目标是生成该集合的所有排列方式。令Ei 为E中移去元素i 以后所获得的集合，perm (X) 表示集合X 中元素的排列方式，ei . p e r m(X)表示在perm (X) 中的每个排列方式的前面均加上ei 以后所得到的排列方式。例如，如果E= {a, b, c}，那么E1= {b, c}，perm (E1 ) = ( b c, c b)，e1 .perm (E1) = (a b c, a c b)。</p>
<p>对于递归的基本部分，采用n = 1。当只有一个元素时，只可能产生一种排列方式，所以perm (E) = ( e)，其中e 是E 中的唯一元素。当n &gt; 1时，perm (E) = e1 .perm (E1 ) +e2 .p e r m  (E2 ) +e3.perm (E3) + ⋯ +en .perm (En )。这种递归定义形式是采用n 个perm (X) 来定义perm (E), 其中每个X 包含n- 1个元素。至此，一个完整的递归定义所需要的基本部分和递归部分都已完成。</p>
<p>当n= 3并且E=（a, b, c）时，按照前面的递归定义可得perm (E) =a.perm ( {b, c} ) +b.perm ( {a,c} ) +c.perm ( {a, b} )。同样，按照递归定义有perm ( {b, c} ) =b.perm ( {c} ) +c.perm ( {b}), 所以a.perm ( {b, c} ) = ab.perm ( {c} ) + ac.perm ( {b}) = a b . c + ac.b = (a b c, a c b)。同理可得b.perm ( {a, c}) = ba.perm ( {c}) + bc.perm ( {a}) = b a . c + b c . a = (b a c, b c a)，c.perm ( {a, b}) =ca.perm ( {b}) + cb.perm ( {a}) = c a . b + c b . a = (c a b, c b a)。所以perm (E) = (a b c, a c b, b a c, b c a,c a b, c b a)。</p>
<p>注意a.perm ( {b, c} )实际上包含两个排列方式：abc 和a c b，a 是它们的前缀，perm ( {b, c} )是它们的后缀。同样地，ac.perm ( {b}) 表示前缀为a c、后缀为perm ( {b}) 的排列方式。</p>
<p>程序1 &#8211; 1 0把上述perm (E) 的递归定义转变成一个C++ 函数，这段代码输出所有前缀为l i s t [ 0：k-1], 后缀为l i s t [ k：m] 的排列方式。调用Perm(list, 0, n-1) 将得到list[0: n-1] 的所有n! 个排列方式，在该调用中，k=0, m= n &#8211; 1，因此排列方式的前缀为空，后缀为list[0: n-1] 产生的所有排列方式。当k =m 时，仅有一个后缀l i s t [ m ]，因此list[0: m] 即是所要产生的输出。当k</p>
<p style="text-align: center;">1-10 使用递归函数生成排列</p>
<pre class="brush:cpp">template
void Perm(T list[],int k,int m)
{
int i;
if(k == m)
{
for(i = 0;i &lt;= m;i++)
{
cout &lt;&lt; list[i];
}
cout &lt;&lt; endl;
}
else
{
for(i = k;i &lt;= m;i++)
{
Swap(list[k],list[m]);
Perm(list,k+1,m);
Swap(list[k],list[m]);
}
}
}</pre>
<p style="text-align: center;">1-11 Swap函数</p>
<pre class="brush:cpp">template inline void Swap(T&amp; a, T&amp; b)

{// 交换a和b

T temp = a; a = b; b = temp;

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.zneil.net/2010/06/%e7%94%a8%e9%80%92%e5%bd%92%e6%b1%82%e6%8e%92%e5%88%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cedet和ecb在emacs中的配置</title>
		<link>http://www.zneil.net/2010/03/cedet-%e5%92%8c-ecb-%e5%9c%a8emacs%e4%b8%ad%e7%9a%84%e9%85%8d%e7%bd%ae/</link>
		<comments>http://www.zneil.net/2010/03/cedet-%e5%92%8c-ecb-%e5%9c%a8emacs%e4%b8%ad%e7%9a%84%e9%85%8d%e7%bd%ae/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 13:04:18 +0000</pubDate>
		<dc:creator>zneil</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://www.zneil.net/?p=92</guid>
		<description><![CDATA[最近，研究emacs的使用，期间遇到很多配置方面的问题，在http://www.emacer.com上面寻找到一些相关的教程，但中间仍然出现了很多难以预料的问题，在这里，把我用的的相应配置过程记录一下，一是为自己以后备用，二来为那些和我一样挣扎的新手提供一些帮助，废话少说，进入正文。
我使用的系统是ubuntu 9.10, 在这里我主要是配置cedet和ecb的相关内容，内容全部在.emacs 文件中（.emacs文件一般在/home/你的用户名 目录下，一般是隐藏的，按ctrl+h可以查看隐藏文件）。
1 安装前的准备
1.1 Emacs已经安装好,且版本号必须高于或等于21.(我用的是Emacs23.1)
1.2 安装Cedet套件:
1.2.1 首先下载cedet的cvs版本(请先安装cvs)
cvs -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet login
cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P
cedet
1.2.2 编译Cedet
进入到cedet
$ cd cedet-1.0pre6
编译:
$ make EMACS=emacs
如果这里没有安装texinfo, 会出现makeinfo命令未找到的出错. 请把texinfo安装就行了.
更多的编译过程, 请参阅cedet目录下的INSTALL文件.
1.2.4 配置Cedet
打开.emacs, 在最后加入:
(load-file &#8220;/home/你的用户名/cedet/common/cedet.el&#8221;)
(require &#8217;semantic-ia)
(require &#8216;eldoc)
(require &#8217;semantic-gcc)
(global-ede-mode 1)                      ; Enable the Project management system
(semantic-load-enable-code-helpers)      ; Enable prototype help and smart completion
(global-srecode-minor-mode [...]]]></description>
			<content:encoded><![CDATA[<p>最近，研究emacs的使用，期间遇到很多配置方面的问题，在<a href="http://www.emacer.com"><span style="color: #000000;">http://www.emacer.com</span></a>上面寻找到一些相关的教程，但中间仍然出现了很多难以预料的问题，在这里，把我用的的相应配置过程记录一下，一是为自己以后备用，二来为那些和我一样挣扎的新手提供一些帮助，废话少说，进入正文。</p>
<p>我使用的系统是ubuntu 9.10, 在这里我主要是配置cedet和ecb的相关内容，内容全部在.emacs 文件中（.emacs文件一般在/home/你的用户名 目录下，一般是隐藏的，按ctrl+h可以查看隐藏文件）。</p>
<p>1 安装前的准备</p>
<p>1.1 Emacs已经安装好,且版本号必须高于或等于21.(我用的是Emacs23.1)</p>
<p>1.2 安装Cedet套件:</p>
<p>1.2.1 首先下载cedet的cvs版本(请先安装cvs)</p>
<p>cvs -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet login</p>
<p>cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P</p>
<p>cedet</p>
<p>1.2.2 编译Cedet</p>
<p>进入到cedet</p>
<p>$ cd cedet-1.0pre6</p>
<p>编译:</p>
<p>$ make EMACS=emacs</p>
<p>如果这里没有安装texinfo, 会出现makeinfo命令未找到的出错. 请把texinfo安装就行了.</p>
<p>更多的编译过程, 请参阅cedet目录下的INSTALL文件.</p>
<p>1.2.4 配置Cedet</p>
<p>打开.emacs, 在最后加入:</p>
<p>(load-file &#8220;/home/你的用户名/cedet/common/cedet.el&#8221;)</p>
<p>(require &#8217;semantic-ia)</p>
<p>(require &#8216;eldoc)</p>
<p>(require &#8217;semantic-gcc)</p>
<p>(global-ede-mode 1)                      ; Enable the Project management system</p>
<p>(semantic-load-enable-code-helpers)      ; Enable prototype help and smart completion</p>
<p>(global-srecode-minor-mode 1)            ; Enable template insertion menu</p>
<p>更多的配置, 请参阅cedet目录下的INSTALL文件.</p>
<p>到此, Cedet套件已安装好, 接下来安装Ecb.</p>
<p>注1:XEmacs用户及Java-coder请参阅: <a href="http://ecb.sourceforge.net/docs/Requirements.html#Requirements"><span style="color: #000000;">http://ecb.sourceforge.net/docs/Requirements.html#Requirements</span></a></p>
<p>2 安装Ecb</p>
<p>2.1 下载Ecb</p>
<p>cvs -z3 -d:pserver:anonymous@ecb.cvs.sourceforge.net:/cvsroot/ecb co -P ecb</p>
<p>2.2 添加Ecb目录到load-path变量</p>
<p>你可以在.emacs文件最后添加以下代码, 也可以在site-list/site-start.el文件下添加:</p>
<p>(add-to-list &#8216;load-path</p>
<p>&#8220;/path/to/your/ecb/installation/directory&#8221;)</p>
<p>注意:上面那行代码里的&#8221; &#8220;里面是指你解码完的那个目录. 例如我的是/home/zneil/ecb</p>
<p>2.3 加载Ecb</p>
<p>在.emacs文件最后加上以下代码:</p>
<p>(require &#8216;ecb)</p>
<p>(require &#8216;ecb-autoloads)</p>
<p>重启Emacs, 打开一个C/CPP文件, 选择tool-&gt;start code browser, 试一下效果吧.</p>
<p>当然, 做到这一步, 仅仅只是让Emacs看起来像个IDE, 实际上还有很多功能, 例如像Smart Completion, Symbol References, Code Generation, UML Diagrams等功能都要动手配置.emacs文件才可以完成.</p>
<p>以下的配置可以利用DECET让你更好的编写代码：（这些代码必须放在加载CEDET之后和ECB之前）</p>
<p>(require &#8217;semantic-ia)</p>
<p>(require &#8217;semantic-gcc)</p>
<p>;; Enable template insertion menu</p>
<p>(global-srecode-minor-mode 1)</p>
<p>(setq-mode-local c-mode semanticdb-find-default-throttle</p>
<p>&#8216;(project unloaded system recursive))</p>
<p>(defun my-semantic-hook ()</p>
<p>(imenu-add-to-menubar &#8220;TAGS&#8221;))</p>
<p>(add-hook &#8217;semantic-init-hooks &#8216;my-semantic-hook)</p>
<p>(require &#8217;semanticdb)</p>
<p>(global-semanticdb-minor-mode 1)</p>
<p>(defun my-cedet-hook ()</p>
<p>(local-set-key [(control return)] &#8217;semantic-ia-complete-symbol)</p>
<p>(local-set-key &#8220;\C-c?&#8221; &#8217;semantic-ia-complete-symbol-menu)</p>
<p>(local-set-key &#8220;\C-c&gt;&#8221; &#8217;semantic-complete-analyze-inline)</p>
<p>(local-set-key &#8220;\C-cp&#8221; &#8217;semantic-analyze-proto-impl-toggle))</p>
<p>(add-hook &#8216;c-mode-common-hook &#8216;my-cedet-hook)</p>
<p>(defun my-c-mode-cedet-hook ()</p>
<p>(local-set-key &#8220;.&#8221; &#8217;semantic-complete-self-insert)</p>
<p>(local-set-key &#8220;&gt;&#8221; &#8217;semantic-complete-self-insert))</p>
<p>(add-hook &#8216;c-mode-common-hook &#8216;my-c-mode-cedet-hook)</p>
<p>更多的信息请参阅:</p>
<p><a href="http://ecb.sourceforge.net/"><span style="color: #000000;">http://ecb.sourceforge.net/</span></a></p>
<p><a href="http://cedet.sourceforge.net/"><span style="color: #000000;">http://cedet.sourceforge.net/</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zneil.net/2010/03/cedet-%e5%92%8c-ecb-%e5%9c%a8emacs%e4%b8%ad%e7%9a%84%e9%85%8d%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>约瑟夫环问题</title>
		<link>http://www.zneil.net/2010/03/%e7%ba%a6%e7%91%9f%e5%a4%ab%e7%8e%af%e9%97%ae%e9%a2%98/</link>
		<comments>http://www.zneil.net/2010/03/%e7%ba%a6%e7%91%9f%e5%a4%ab%e7%8e%af%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 02:38:18 +0000</pubDate>
		<dc:creator>zneil</dc:creator>
				<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.zneil.net/?p=81</guid>
		<description><![CDATA[约瑟夫环 是一个数学的应用问题：
已知n个人（以编号1，2，3&#8230;n分别表示）围坐在一张圆桌周围。从编号为k的人开始报数，数到m的那个人出列；他的下一个人又从1开始报数，数到m的那个人又出列；依此规律重复下去，直到圆桌周围的人全部出列。
这个就是约瑟夫环问题的实际场景，有一种是要通过输入n,m,k三个正整数，来求出列的序列。这个问题采用的是典型的循环链表的数据结构，就是将一个链表的尾元素指针指向队首元素。 p-&#62;link=head
解决问题的核心步骤：
1.建立一个具有n个链结点，无头结点的循环链表
2.确定第1个报数人的位置
3.不断地从链表中删除链结点，直到链表为空
void JOSEPHUS(int n,int k,int m) //n为总人数，k为第一个开始报数的人，m为出列者喊到的数
{
/* p为当前结点  r为辅助结点，指向p的前驱结点  list为头节点*/
LinkList p,r,list;

/*建立循环链表*/
for(int i=0,i&#60;n,i++)
{
p=(LinkList)malloc(sizeof(LNode));
p-&#62;data=i;
if(list==NULL)
list=p;
else
r-&#62;link=p;
r=p;
}
p&#62;link=list; /*使链表循环起来*/
p=list; /*使p指向头节点*/

/*把当前指针移动到第一个报数的人*/
for(i=0;i&#60;k;i++)
{
r=p；
p=p-&#62;link;
}

/*循环地删除队列结点*/
while(p-&#62;link!=p)
{
for(i=0;i&#60;m;i++)
{
r=p;
p=p-&#62;link;
}
r-&#62;link=p-&#62;link;
printf("被删除的元素：%4d ",p-&#62;data);
free(p);
p=r-&#62;link;
}
printf("\n最后被删除的元素是：％4d",P-&#62;data);
}
证明：
Josephus(约瑟夫)问题的数学方法(转)约瑟夫 （转）
无论是用链表实现还是用数组实现都有一个共同点：要模拟整个游戏过程，不仅程序写起来比较烦，而且时间复杂度高达O(nm)，当n
，m非常大(例如上百万，上千万)的时候，几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号，
而不是要读者模拟整个过程。因此如果要追求效率，就要打破常规，实施一点数学策略。
为了讨论方便，先把问题稍微改变一下，并不影响原意：问题描述：n个人（编号0~(n-1))，从0开始报数，报到(m-1)的退出
，剩下的人继续从0开始报数。求胜利者的编号。我们知道第一个人(编号一定是m%n-1) 出列之后，剩下的n-1个人组成了一个新的约瑟夫环（以编号为k=m%n的人开始）:
k   k+1   k+2   &#8230; n-2, n-1, 0, 1, 2, &#8230; k-2
并且从k开始报0。
现在我们把他们的编号做一下转换：
k      &#8211;&#62; 0
k+1    &#8211;&#62; 1
k+2    &#8211;&#62; 2
&#8230;
&#8230;
k-2    &#8211;&#62; n-2
k-1    &#8211;&#62; n-1
变换后就完完全全成为了(n-1)个人报数的子问题，假如我们知道这个子问题的解：例如x是最终的胜利者，那么根据上面这个表把这个x
变回去不刚好就是n个人情况的解吗？！！变回去的公式很简单，相信大家都可以推出来：x‘=(x+k)%n
如何知道(n-1)个人报数的问题的解？对，只要知道(n-2)个人的解就行了。(n-2)个人的解呢？当然是先求(n-3)的情况 &#8212;- 这显然就是
一个倒推问题！好了，思路出来了，下面写递推公式：令f表示i个人玩游戏报m退出最后胜利者的编号，最后的结果自然是f[n]
递推公式
f[1]=0;
f=(f[i-1]+m)%i;   (i&#62;1)
有了这个公式，我们要做的就是从1-n顺序算出f的数值，最后结果是f[n]。因为实际生活中编号总是从1开始，我们输出f[n]+1
由于是逐级递推，不需要保存每个f，程序也是异常简单：

#include &#60;stdio.h&#62;
main()
{
int n, m, i, s=0;
printf ("N M = "); scanf("%d%d", &#38;n, &#38;m);
for (i=2; i&#60;=n; i++) [...]]]></description>
			<content:encoded><![CDATA[<p style="padding-left: 30px;">约瑟夫环 是一个数学的应用问题：</p>
<p>已知n个人（以编号1，2，3&#8230;n分别表示）围坐在一张圆桌周围。从编号为k的人开始报数，数到m的那个人出列；他的下一个人又从1开始报数，数到m的那个人又出列；依此规律重复下去，直到圆桌周围的人全部出列。</p>
<p>这个就是约瑟夫环问题的实际场景，有一种是要通过输入n,m,k三个正整数，来求出列的序列。这个问题采用的是典型的循环链表的数据结构，就是将一个链表的尾元素指针指向队首元素。 p-&gt;link=head</p>
<p>解决问题的核心步骤：<br />
1.建立一个具有n个链结点，无头结点的循环链表<br />
2.确定第1个报数人的位置<br />
3.不断地从链表中删除链结点，直到链表为空</p>
<pre class="brush:cpp">void JOSEPHUS(int n,int k,int m) //n为总人数，k为第一个开始报数的人，m为出列者喊到的数
{
/* p为当前结点  r为辅助结点，指向p的前驱结点  list为头节点*/
LinkList p,r,list;

/*建立循环链表*/
for(int i=0,i&lt;n,i++)
{
p=(LinkList)malloc(sizeof(LNode));
p-&gt;data=i;
if(list==NULL)
list=p;
else
r-&gt;link=p;
r=p;
}
p&gt;link=list; /*使链表循环起来*/
p=list; /*使p指向头节点*/

/*把当前指针移动到第一个报数的人*/
for(i=0;i&lt;k;i++)
{
r=p；
p=p-&gt;link;
}

/*循环地删除队列结点*/
while(p-&gt;link!=p)
{
for(i=0;i&lt;m;i++)
{
r=p;
p=p-&gt;link;
}
r-&gt;link=p-&gt;link;
printf("被删除的元素：%4d ",p-&gt;data);
free(p);
p=r-&gt;link;
}
printf("\n最后被删除的元素是：％4d",P-&gt;data);
}</pre>
<p>证明：<br />
Josephus(约瑟夫)问题的数学方法(转)约瑟夫 （转）</p>
<p>无论是用链表实现还是用数组实现都有一个共同点：要模拟整个游戏过程，不仅程序写起来比较烦，而且时间复杂度高达O(nm)，当n<br />
，m非常大(例如上百万，上千万)的时候，几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号，<br />
而不是要读者模拟整个过程。因此如果要追求效率，就要打破常规，实施一点数学策略。<br />
为了讨论方便，先把问题稍微改变一下，并不影响原意：问题描述：n个人（编号0~(n-1))，从0开始报数，报到(m-1)的退出<br />
，剩下的人继续从0开始报数。求胜利者的编号。我们知道第一个人(编号一定是m%n-1) 出列之后，剩下的n-1个人组成了一个新的约瑟夫环（以编号为k=m%n的人开始）:</p>
<p>k   k+1   k+2   &#8230; n-2, n-1, 0, 1, 2, &#8230; k-2<br />
并且从k开始报0。<br />
现在我们把他们的编号做一下转换：<br />
k      &#8211;&gt; 0<br />
k+1    &#8211;&gt; 1<br />
k+2    &#8211;&gt; 2<br />
&#8230;<br />
&#8230;<br />
k-2    &#8211;&gt; n-2<br />
k-1    &#8211;&gt; n-1<br />
变换后就完完全全成为了(n-1)个人报数的子问题，假如我们知道这个子问题的解：例如x是最终的胜利者，那么根据上面这个表把这个x<br />
变回去不刚好就是n个人情况的解吗？！！变回去的公式很简单，相信大家都可以推出来：x‘=(x+k)%n<br />
如何知道(n-1)个人报数的问题的解？对，只要知道(n-2)个人的解就行了。(n-2)个人的解呢？当然是先求(n-3)的情况 &#8212;- 这显然就是<br />
一个倒推问题！好了，思路出来了，下面写递推公式：令f表示i个人玩游戏报m退出最后胜利者的编号，最后的结果自然是f[n]<br />
递推公式<br />
f[1]=0;<br />
f=(f[i-1]+m)%i;   (i&gt;1)<br />
有了这个公式，我们要做的就是从1-n顺序算出f的数值，最后结果是f[n]。因为实际生活中编号总是从1开始，我们输出f[n]+1<br />
由于是逐级递推，不需要保存每个f，程序也是异常简单：</p>
<pre class="brush:cpp">
#include &lt;stdio.h&gt;
main()
{
int n, m, i, s=0;
printf ("N M = "); scanf("%d%d", &amp;n, &amp;m);
for (i=2; i&lt;=n; i++) s=(s+m)%i;
printf ("The winner is %d\n", s+1);
}</pre>
<p>这个算法的时间复杂度为O(n)，相对于模拟算法已经有了很大的提高。算n，m等于一百万，一千万的情况不是问题了。可见，适当地运用数学策略，不仅可以让编程变得简单，而且往往会成倍地提高算法执行效率。</p>
<p>c 代码示例：
<pre class = "brush:cpp">

	#include &lt;stdio.h&gt;
	main()
	{
	 int n, m, i, s=0;
	 printf ("N M = "); scanf("%d%d", &amp;n, &amp;m);
	 for (i=2; i&lt;=n; i++) s=(s+m)%i;
	 printf ("The winner is %d\n", s+1);
	}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.zneil.net/2010/03/%e7%ba%a6%e7%91%9f%e5%a4%ab%e7%8e%af%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>35个air（flex）教程</title>
		<link>http://www.zneil.net/2010/02/35%e4%b8%aaair%e6%95%99%e7%a8%8b/</link>
		<comments>http://www.zneil.net/2010/02/35%e4%b8%aaair%e6%95%99%e7%a8%8b/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 08:15:19 +0000</pubDate>
		<dc:creator>zneil</dc:creator>
				<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.zneil.net/?p=27</guid>
		<description><![CDATA[一些开发教程]]></description>
			<content:encoded><![CDATA[<p><a href="http://net.tutsplus.com/tutorials/tools-and-tips/introduction-to-adobe-air/" target="_blank"><strong>什么是 Adobe AIR</strong></a></p>
<p><strong><br />
</strong></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/11.jpg"><img class="size-medium wp-image-28 aligncenter" title="1" src="http://zneil.net/wp-content/uploads/2010/02/11-300x151.jpg" alt="" width="300" height="151" /></a></strong></p>
<p><a href="http://net.tutsplus.com/tutorials/tools-and-tips/introduction-to-adobe-air/" target="_blank"></a></p>
<p><a href="http://www.switchonthecode.com/tutorials/adobe-air-and-flex-getting-started" target="_blank"><strong>Adobe AIR and Flex – 开始</strong></a></p>
<p><strong><br />
</strong></p>
<p style="text-align: center;"><a href="http://zneil.net/wp-content/uploads/2010/02/2.jpg"><img class="size-medium wp-image-29    aligncenter" title="2" src="http://zneil.net/wp-content/uploads/2010/02/2-300x166.jpg" alt="" width="300" height="166" /></a></p>
<p><a href="http://www.switchonthecode.com/tutorials/adobe-air-and-flex-getting-started" target="_blank"></a></p>
<p><strong><a href="http://net.tutsplus.com/tutorials/other/building-an-adobe-air-application-with-flex/" target="_blank">F</a><a href="http://net.tutsplus.com/tutorials/other/building-an-adobe-air-application-with-flex/" target="_blank">lex</a><a href="http://net.tutsplus.com/tutorials/other/building-an-adobe-air-application-with-flex/" target="_blank">创建Adobe AIR 应用程序</a></strong></p>
<p><strong><br />
</strong></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/3.jpg"><img class="size-medium wp-image-30  aligncenter" title="3" src="http://zneil.net/wp-content/uploads/2010/02/3-300x116.jpg" alt="" width="300" height="116" /></a><br />
</strong></p>
<p><a href="http://net.tutsplus.com/tutorials/other/building-an-adobe-air-application-with-flex/" target="_blank"></a></p>
<p><a href="http://arno.org/arnotify/2009/05/writing-well-behaved-efficient-air-applications/" target="_blank"><strong>创建高效的AIR应用程序</strong></a></p>
<p><strong><br />
</strong></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/4.jpg"><img class="size-medium wp-image-31  aligncenter" title="4" src="http://zneil.net/wp-content/uploads/2010/02/4-300x290.jpg" alt="" width="300" height="290" /></a><br />
</strong></p>
<p><a href="http://arno.org/arnotify/2009/05/writing-well-behaved-efficient-air-applications/" target="_blank"></a></p>
<p><a href="http://tv.adobe.com/watch/max-2008-develop/performance-apps-for-air-by-oliver-goldman/" target="_blank"><strong>Performance Apps for AIR</strong></a> (video)</p>
<p style="text-align: center;"><a href="http://zneil.net/wp-content/uploads/2010/02/5.jpg"><img class="size-medium wp-image-32  aligncenter" title="5" src="http://zneil.net/wp-content/uploads/2010/02/5-300x178.jpg" alt="" width="300" height="178" /></a></p>
<p><a href="http://tv.adobe.com/watch/max-2008-develop/performance-apps-for-air-by-oliver-goldman/" target="_blank"></a></p>
<p><a href="http://24ways.org/2007/christmas-is-in-the-air" target="_blank"><strong>Christmas is in the Air</strong></a> (building a to-do list app)</p>
<p style="text-align: center;"><a href="http://zneil.net/wp-content/uploads/2010/02/6.jpg"><img class="size-medium wp-image-33  aligncenter" title="6" src="http://zneil.net/wp-content/uploads/2010/02/6-300x184.jpg" alt="" width="300" height="184" /></a></p>
<p><a href="http://24ways.org/2007/christmas-is-in-the-air" target="_blank"></a></p>
<p><a href="http://www.thetechlabs.com/xml/how-to-build-a-contact-manager-in-air-using-xml/" target="_blank"><strong>How to Build a Contact Manager in AIR using XML Part I</strong></a> and <a href="http://www.thetechlabs.com/xml/how-to-build-a-contact-manager-in-air-using-xml-part-2/" target="_blank"><strong>Part II</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/7.jpg"><img class="size-medium wp-image-34  aligncenter" title="7" src="http://zneil.net/wp-content/uploads/2010/02/7-300x177.jpg" alt="" width="300" height="177" /></a><br />
</strong></p>
<p><a href="http://www.thetechlabs.com/xml/how-to-build-a-contact-manager-in-air-using-xml/" target="_blank"></a></p>
<p><a href="http://www.extjs.com/blog/2007/06/29/building-a-desktop-application-with-ext-air-aptana-and-red-bull/" target="_blank"><strong>Building a Desktop Application with Ext, AIR, Aptana and Red Bull</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/8.jpg"><img class="size-medium wp-image-35  aligncenter" title="8" src="http://zneil.net/wp-content/uploads/2010/02/8-300x173.jpg" alt="" width="300" height="173" /></a><br />
</strong></p>
<p><a href="http://www.extjs.com/blog/2007/06/29/building-a-desktop-application-with-ext-air-aptana-and-red-bull/" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/air/articles/developing_crossplatform.html" target="_blank"><strong>Developing Cross-Platform Adobe AIR Applications</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/9.jpg"><img class="size-medium wp-image-36  aligncenter" title="9" src="http://zneil.net/wp-content/uploads/2010/02/9-300x161.jpg" alt="" width="300" height="161" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/air/articles/developing_crossplatform.html" target="_blank"></a></p>
<p><a href="http://active.tutsplus.com/tutorials/air/create-a-drag-and-drop-mp3-player-with-adobe-air/" target="_blank"><strong>Create a Drag and Drop MP3 Player with Adobe AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/10.jpg"><img class="size-medium wp-image-37  aligncenter" title="10" src="http://zneil.net/wp-content/uploads/2010/02/10-300x116.jpg" alt="" width="300" height="116" /></a><br />
</strong></p>
<p><a href="http://active.tutsplus.com/tutorials/air/create-a-drag-and-drop-mp3-player-with-adobe-air/" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/air/articles/building_commercial_air_apps.html" target="_blank"><strong>Building Lupo: A Case Study in Building Commercial AIR Applications</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/111.jpg"><img class="size-medium wp-image-38  aligncenter" title="11" src="http://zneil.net/wp-content/uploads/2010/02/111-300x221.jpg" alt="" width="300" height="221" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/air/articles/building_commercial_air_apps.html" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/air/flex/articles/flex_air_codebase.html" target="_blank"><strong>Building Web and Adobe AIR Applications from a Shared Flex Code Base</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/12.jpg"><img class="size-medium wp-image-39  aligncenter" title="12" src="http://zneil.net/wp-content/uploads/2010/02/12-300x201.jpg" alt="" width="300" height="201" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/air/flex/articles/flex_air_codebase.html" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/flex/articles/flex_aws.html" target="_blank"><strong>Creating Desktop Applications for the Cloud with Adobe Flex, AIR, and Amazon S3</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/13.jpg"><img class="size-medium wp-image-40  aligncenter" title="13" src="http://zneil.net/wp-content/uploads/2010/02/13-300x167.jpg" alt="" width="300" height="167" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/flex/articles/flex_aws.html" target="_blank"></a></p>
<p><a href="http://www.petefreitag.com/item/667.cfm" target="_blank"><strong>Adobe Air Tutorial for HTML/JavaScript Developers</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/14.jpg"><img class="size-medium wp-image-41  aligncenter" title="14" src="http://zneil.net/wp-content/uploads/2010/02/14-300x203.jpg" alt="" width="300" height="203" /></a><br />
</strong></p>
<p><a href="http://www.petefreitag.com/item/667.cfm" target="_blank"></a></p>
<p><a href="http://www.peachpit.com/articles/article.aspx?p=1247721" target="_blank"><strong>Implementing Drag and Drop Between the OS and AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/15.jpg"><img class="size-medium wp-image-42  aligncenter" title="15" src="http://zneil.net/wp-content/uploads/2010/02/15-300x164.jpg" alt="" width="300" height="164" /></a><br />
</strong></p>
<p><a href="http://www.peachpit.com/articles/article.aspx?p=1247721" target="_blank"></a></p>
<p><a href="http://blog.kevinhoyt.org/?p=286" target="_blank"><strong>Notification Windows with JavaScript and AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/16.jpg"><img class="size-medium wp-image-43  aligncenter" title="16" src="http://zneil.net/wp-content/uploads/2010/02/16-300x167.jpg" alt="" width="300" height="167" /></a><br />
</strong></p>
<p><a href="http://blog.kevinhoyt.org/?p=286" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/air/ajax/articles/mapcache_on_air.html" target="_blank"><strong>Recreating MapCache on Adobe AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/17.jpg"><img class="size-medium wp-image-44  aligncenter" title="17" src="http://zneil.net/wp-content/uploads/2010/02/17-300x172.jpg" alt="" width="300" height="172" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/air/ajax/articles/mapcache_on_air.html" target="_blank"></a></p>
<p><a href="http://www.thetechlabs.com/video/creating-a-downloader-for-youtube-with-flexair-2/" target="_blank"><strong>Creating a Downloader for YouTube with Flex/AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/18.jpg"><img class="size-medium wp-image-45  aligncenter" title="18" src="http://zneil.net/wp-content/uploads/2010/02/18-300x203.jpg" alt="" width="300" height="203" /></a><br />
</strong></p>
<p><a href="http://www.thetechlabs.com/video/creating-a-downloader-for-youtube-with-flexair-2/" target="_blank"></a></p>
<p><a href="http://articles.sitepoint.com/article/adobe-air-todo-list-5-minutes" target="_blank"><strong>Walk on AIR: Create a To-do List in Five Minutes</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/19.jpg"><img class="size-medium wp-image-46  aligncenter" title="19" src="http://zneil.net/wp-content/uploads/2010/02/19-300x156.jpg" alt="" width="300" height="156" /></a><br />
</strong></p>
<p><a href="http://articles.sitepoint.com/article/adobe-air-todo-list-5-minutes" target="_blank"></a></p>
<p><a href="http://jurnal.tripmedia.ro/phone-book-adobe-air/1536.html" target="_blank"><strong>Adobe AIR &amp; Flash Tutorial</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/20.jpg"><img class="size-medium wp-image-47  aligncenter" title="20" src="http://zneil.net/wp-content/uploads/2010/02/20-300x291.jpg" alt="" width="300" height="291" /></a><br />
</strong></p>
<p><a href="http://jurnal.tripmedia.ro/phone-book-adobe-air/1536.html" target="_blank"></a></p>
<p><a href="http://www.gotoandlearn.com/play?id=41" target="_blank"><strong>Developing AIR in Flash</strong></a> (video)</p>
<p style="text-align: center;"><a href="http://zneil.net/wp-content/uploads/2010/02/21.jpg"><img class="size-medium wp-image-48  aligncenter" title="21" src="http://zneil.net/wp-content/uploads/2010/02/21-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p><a href="http://www.gotoandlearn.com/play?id=41" target="_blank"></a></p>
<p><a href="http://www.gotoandlearn.com/play?id=44" target="_blank"><strong>Webcams, PNGs, and AIR</strong></a> (video)</p>
<p style="text-align: center;"><a href="http://zneil.net/wp-content/uploads/2010/02/22.jpg"><img class="size-medium wp-image-49  aligncenter" title="22" src="http://zneil.net/wp-content/uploads/2010/02/22-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p><a href="http://www.gotoandlearn.com/play?id=44" target="_blank"></a></p>
<p><a href="http://articles.sitepoint.com/article/adobe-air-pref-javascript" target="_blank"><strong>How to Store Adobe AIR Application Preferences Using JavaScript</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/23.jpg"><img class="size-medium wp-image-50  aligncenter" title="23" src="http://zneil.net/wp-content/uploads/2010/02/23-300x157.jpg" alt="" width="300" height="157" /></a><br />
</strong></p>
<p><a href="http://articles.sitepoint.com/article/adobe-air-pref-javascript" target="_blank"></a></p>
<p><a href="http://articles.sitepoint.com/article/css-desktop-adobe-air" target="_blank"><strong>Take Your CSS to the Desktop with AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/24.jpg"><img class="size-medium wp-image-51  aligncenter" title="24" src="http://zneil.net/wp-content/uploads/2010/02/24-300x176.jpg" alt="" width="300" height="176" /></a><br />
</strong></p>
<p><a href="http://articles.sitepoint.com/article/css-desktop-adobe-air" target="_blank"></a></p>
<p><a href="http://articles.sitepoint.com/article/debugging-adobe-air-application" target="_blank"><strong>Adobe AIR: Supercharged Development with Debugging</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/25.jpg"><img class="size-medium wp-image-52  aligncenter" title="25" src="http://zneil.net/wp-content/uploads/2010/02/25-300x173.jpg" alt="" width="300" height="173" /></a><br />
</strong></p>
<p><a href="http://articles.sitepoint.com/article/debugging-adobe-air-application" target="_blank"></a></p>
<p><a href="http://www.thetechlabs.com/tutorials/xml/creating-an-air-rss-reader-application-from-scratch-with-flex-puremvc/" target="_blank"><strong>Creating an AIR RSS Reader Application from Scratch with Flex and PureMVC</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/26.jpg"><img class="size-medium wp-image-53  aligncenter" title="26" src="http://zneil.net/wp-content/uploads/2010/02/26-300x198.jpg" alt="" width="300" height="198" /></a><br />
</strong></p>
<p><a href="http://www.thetechlabs.com/tutorials/xml/creating-an-air-rss-reader-application-from-scratch-with-flex-puremvc/" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/air/flex/articles/xml_viewer_on_air_print.html" target="_blank"><strong>Building an XML Viewer on AIR with Flex</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/27.jpg"><img class="size-medium wp-image-54  aligncenter" title="27" src="http://zneil.net/wp-content/uploads/2010/02/27-300x246.jpg" alt="" width="300" height="246" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/air/flex/articles/xml_viewer_on_air_print.html" target="_blank"></a></p>
<p><a href="http://devzone.zend.com/article/3447-Synchronizing-Drupal-Modules-with-Adobe-AIR" target="_blank"><strong>Synchronizing Drupal Modules with Adobe AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/28.jpg"><img class="size-medium wp-image-55  aligncenter" title="28" src="http://zneil.net/wp-content/uploads/2010/02/28-300x164.jpg" alt="" width="300" height="164" /></a><br />
</strong></p>
<p><a href="http://devzone.zend.com/article/3447-Synchronizing-Drupal-Modules-with-Adobe-AIR" target="_blank"></a></p>
<p><a href="http://www.hieu.co.uk/blog/index.php/2009/05/11/getting-start-with-adobe-air-as-web-developer-designer/" target="_blank"><strong>Getting Started with Adobe AIR as a Web Developer/Designer</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/29.jpg"><img class="size-medium wp-image-56  aligncenter" title="29" src="http://zneil.net/wp-content/uploads/2010/02/29-300x221.jpg" alt="" width="300" height="221" /></a><br />
</strong></p>
<p><a href="http://www.hieu.co.uk/blog/index.php/2009/05/11/getting-start-with-adobe-air-as-web-developer-designer/" target="_blank"></a></p>
<p><a href="http://blog.kevinhoyt.org/?p=160" target="_blank"><strong>Simple Zip Viewer with JavaScript and AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/30.jpg"><img class="size-medium wp-image-57  aligncenter" title="30" src="http://zneil.net/wp-content/uploads/2010/02/30-300x166.jpg" alt="" width="300" height="166" /></a><br />
</strong></p>
<p><a href="http://blog.kevinhoyt.org/?p=160" target="_blank"></a></p>
<p><a href="http://www.adobe.com/devnet/air/flex/articles/framerate_throttling.html" target="_blank"><strong>Reducing CPU Usage in Adobe AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/31.jpg"><img class="size-medium wp-image-58  aligncenter" title="31" src="http://zneil.net/wp-content/uploads/2010/02/31-300x164.jpg" alt="" width="300" height="164" /></a><br />
</strong></p>
<p><a href="http://www.adobe.com/devnet/air/flex/articles/framerate_throttling.html" target="_blank"></a></p>
<p><a href="http://blogs.adobe.com/air/2009/05/performance_tips_for_adobe_air.html" target="_blank"><strong>Performance Tips for Adobe AIR</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/32.jpg"><img class="size-medium wp-image-59  aligncenter" title="32" src="http://zneil.net/wp-content/uploads/2010/02/32-300x162.jpg" alt="" width="300" height="162" /></a><br />
</strong></p>
<p><a href="http://blogs.adobe.com/air/2009/05/performance_tips_for_adobe_air.html" target="_blank"></a></p>
<p><a href="http://active.tutsplus.com/tutorials/air/create-your-own-adobe-air-application-with-flash/" target="_blank"><strong>Create Your Own Adobe Air Application with Flash</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/33.jpg"><img class="size-medium wp-image-60  aligncenter" title="33" src="http://zneil.net/wp-content/uploads/2010/02/33-300x249.jpg" alt="" width="300" height="249" /></a><br />
</strong></p>
<p><a href="http://active.tutsplus.com/tutorials/air/create-your-own-adobe-air-application-with-flash/" target="_blank"></a></p>
<p><a href="http://active.tutsplus.com/tutorials/air/build-a-custom-file-extension-air-app/" target="_blank"><strong>Build a Custom File Extension AIR App</strong></a></p>
<p style="text-align: center;"><strong><a href="http://zneil.net/wp-content/uploads/2010/02/34.jpg"><img class="size-medium wp-image-61  aligncenter" title="34" src="http://zneil.net/wp-content/uploads/2010/02/34-300x116.jpg" alt="" width="300" height="116" /></a><br />
</strong></p>
<p><a href="http://active.tutsplus.com/tutorials/air/build-a-custom-file-extension-air-app/" target="_blank"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zneil.net/2010/02/35%e4%b8%aaair%e6%95%99%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
