<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4834765047637955161</id><updated>2011-07-08T00:11:32.082-07:00</updated><category term='disease biology'/><category term='opensource blender'/><category term='tips'/><title type='text'>信的Weblog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-6968027082331460719</id><published>2010-07-23T22:23:00.000-07:00</published><updated>2010-07-23T23:44:36.524-07:00</updated><title type='text'>cpufreq stuck in lowest gear</title><content type='html'>我的M1330不知道从哪个kernel版本开始, 会时不时被锁定在最低频率上运行, ondemand 和performance都一样,并且/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq始终为800000.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;找了一圈google后, 有人使用acpi_osi="!Windows 2006" gets workaround, 尝试后无效.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;打开cpufreq.debug=7后发现以下日志:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: cpufreq-core: setting new policy for CPU 0: 800000 - 2401000 kHz&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: acpi-cpufreq: acpi_cpufreq_verify&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: freq-table: request for verification of policy (800000 - 2401000 kHz) for cpu 0&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: freq-table: verification lead to (800000 - 2401000 kHz) for cpu 0&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: acpi-cpufreq: acpi_cpufreq_verify&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: freq-table: request for verification of policy (800000 - 800000 kHz) for cpu 0&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: freq-table: verification lead to (800000 - 800000 kHz) for cpu 0&lt;/div&gt;&lt;div&gt;Jul 22 16:18:05 laptop kernel: cpufreq-core: new min and max freqs are 800000 - 800000 kHz&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;追踪代码至: /usr/src/linux/drivers/cpufreq/cpufreq.c 有 static int __cpufreq_set_policy(struct cpufreq_policy *data, struct cpufreq_policy *policy) 函数&lt;/div&gt;&lt;div&gt;得知它会检查CPU温度来获得一个加权过的值和ACPI P-State的容忍值.&lt;/div&gt;&lt;div&gt;定位在此,写上&lt;/div&gt;&lt;div&gt;&lt;div&gt;dprintk("after CPUFREQ_ADJUST, %u - %u kHz", policy-&gt;min, policy-&gt;max);&lt;/div&gt;&lt;div&gt;dprintk("after CPUFREQ_INCOMPATIBLE, %u - %u kHz", policy-&gt;min, policy-&gt;max);&lt;/div&gt;&lt;/div&gt;&lt;div&gt;出现&lt;/div&gt;&lt;div&gt;&lt;div&gt;Jul 23 23:39:31 laptop kernel: cpufreq-core: after CPUFREQ_ADJUST, 800000 - 2401000 kHz&lt;/div&gt;&lt;div&gt;Jul 23 23:39:31 laptop kernel: cpufreq-core: after CPUFREQ_INCOMPATIBLE, 800000 - 800000 kHz&lt;/div&gt;&lt;/div&gt;&lt;div&gt;comment之,结束&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-6968027082331460719?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/6968027082331460719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2010/07/cpufreq-stuck-in-lowest-gear.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6968027082331460719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6968027082331460719'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2010/07/cpufreq-stuck-in-lowest-gear.html' title='cpufreq stuck in lowest gear'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-5280243506408476708</id><published>2009-05-15T18:39:00.000-07:00</published><updated>2009-05-18T16:00:08.641-07:00</updated><title type='text'>secondlife 修改拍照目录</title><content type='html'>每次拍照，secondlife都会弹出个对话框，然后默认目录在/usr/share/games/secondlife下，很气人。今天搞了一下，很dirty不过it works。&lt;br /&gt;&lt;br /&gt;找到linden/indra/newview/llviewerwindow.cpp文件，大概在3911行左右有一个void LLViewerWindow::resetSnapshotLoc()方法。&lt;br /&gt;删除 sSnapshotDir.clear();加上如下几行:&lt;br /&gt;sSnapshotDir = gDirUtilp-&gt;getOSUserAppDir();&lt;br /&gt;sSnapshotDir += gDirUtilp-&gt;getDirDelimiter();&lt;br /&gt;sSnapshotDir += "/screenshot";&lt;br /&gt;&lt;br /&gt;搞定，然后把目标目录软链接到$SECONDLIFE_USER_DIR/.就可以了(这个是我在llvfs_linux.cpp里发现的，有一个环境变量$SECONDLIFE_USER_DIR，默认是$HOME/.secondlife)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-5280243506408476708?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/5280243506408476708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/05/secondlife.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/5280243506408476708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/5280243506408476708'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/05/secondlife.html' title='secondlife 修改拍照目录'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-5200234630948428315</id><published>2009-05-13T13:38:00.000-07:00</published><updated>2009-05-13T13:41:06.097-07:00</updated><title type='text'>omvviewer-light - GTK# application</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CDi50Af-jLk/SgswEkCGUjI/AAAAAAAABS4/ojI3IxzvZjA/s1600-h/2009-05-13-1242245846.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_CDi50Af-jLk/SgswEkCGUjI/AAAAAAAABS4/ojI3IxzvZjA/s320/2009-05-13-1242245846.png" alt="" id="BLOGGER_PHOTO_ID_5335411038500573746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;我一直对mono没什么兴趣，这次因为要装一个omvviewer-light，所以安上了&lt;br /&gt;感觉好像还可以&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-5200234630948428315?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/5200234630948428315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/05/omvviewer-light-gtk-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/5200234630948428315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/5200234630948428315'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/05/omvviewer-light-gtk-application.html' title='omvviewer-light - GTK# application'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CDi50Af-jLk/SgswEkCGUjI/AAAAAAAABS4/ojI3IxzvZjA/s72-c/2009-05-13-1242245846.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-2432396740627969511</id><published>2009-05-12T14:29:00.000-07:00</published><updated>2009-05-12T14:30:10.969-07:00</updated><title type='text'>函数指针 (*(void (*)( ) )0)( ) 解析[转]</title><content type='html'>&lt;div id="blog_text" class="cnt"&gt;&lt;div width="100%" style="margin: 15px;"&gt;概述&lt;br /&gt;&lt;br /&gt;在很多情况下，尤其是读别人所写代码的时候，对 C语言声明的理解能力变得非常重要，而C语言本身的凝练简约也使得C语言的声明常常会令人感到非常困惑，因此，在这里我用一篇的内容来集中阐述一下这个问题。&lt;br /&gt;&lt;br /&gt;问题：声明与函数&lt;br /&gt;&lt;br /&gt;有一段程序存储在起始地址为 0的一段内存上，如果我们想要调用这段程序，请问该如何去做？&lt;br /&gt;&lt;br /&gt;答案&lt;br /&gt;&lt;br /&gt;答案是 (*(void (*)( ) )0)( )。看起来确实令人头大，那好，让我们知难而上，从两个不同的途径来详细分析这个问题。&lt;br /&gt;&lt;br /&gt;答案分析：从尾到头&lt;br /&gt;&lt;br /&gt;首先，最基本的函数声明： void function (paramList);&lt;br /&gt;&lt;br /&gt;最基本的函数调用： function(paramList);&lt;br /&gt;&lt;br /&gt;鉴于问题中的函数没有参数，函数调用可简化为 function();&lt;br /&gt;&lt;br /&gt;其次，根据问题描述，可以知道 0是这个函数的入口地址，也就是说，0是一个函数的指针。使用函数指针的函数声明形式是：void (*pFunction)()，相应的调用形式是： (*pFunction)()，则问题中的函数调用可以写作：(*0)( )。&lt;br /&gt;&lt;br /&gt;第三，大家知道，函数指针变量不能是一个常数，因此上式中的 0必须要被转化为函数指针。&lt;br /&gt;&lt;br /&gt;我们先来研究一下，对于使用函数指针的函数：比如 void (*pFunction)( )，函数指针变量的原型是什么？这个问题很简单，pFunction函数指针原型是( void (*)( ) )，即去掉变量名，清晰起见，整个加上（）号。&lt;br /&gt;&lt;br /&gt;所以将 0强制转换为一个返回值为void，参数为空的函数指针如下：( void (*)( ) )。&lt;br /&gt;&lt;br /&gt;OK，结合2)和3)的分析，结果出来了，那就是：(*(void (*)( ) )0)( ) 。&lt;br /&gt;&lt;br /&gt;答案分析：从头到尾理解答案&lt;br /&gt;&lt;br /&gt;(void (*)( )) ，是一个返回值为void，参数为空的函数指针原型。&lt;br /&gt;(void (*)( ))0，把0转变成一个返回值为void，参数为空的函数指针，指针指向的地址为0.&lt;br /&gt;*(void (*)( ))0，前面加上*表示整个是一个返回值为void的函数的名字&lt;br /&gt;(*(void (*)( ))0)( )，这当然就是一个函数了。&lt;br /&gt;&lt;br /&gt;我们可以使用 typedef清晰声明如下：&lt;br /&gt;&lt;br /&gt;typedef void (*pFun)( );&lt;br /&gt;&lt;br /&gt;这样定义之后，pFun就是一个返回类型为void无参数的函数指针变量了。&lt;br /&gt;&lt;br /&gt;这样函数变为 (*(pFun)0 )( );&lt;br /&gt;&lt;br /&gt;问题：三个声明的分析&lt;br /&gt;&lt;br /&gt;对声明进行分析，最根本的方法还是类比替换法，从那些最基本的声明上进行类比，简化，从而进行理解，下面通过分析三个例子，来具体阐述如何使用这种方法。&lt;br /&gt;&lt;br /&gt;＃ 1：int* (*a[5])(int, char*);&lt;br /&gt;&lt;br /&gt;首先看到标识符名 a，"[]"优先级大于"*"，a与"[5]"先结合。所以a是一个数组，这个数组有5个元素，每一个元素都是一个指针，指针指向"(int, char*)"，很明显，指向的是一个函数，这个函数参数是"int, char*"，返回值是"int*"。OK，结束了一个。：）&lt;br /&gt;&lt;br /&gt;＃ 2：void (*b[10]) (void (*)());&lt;br /&gt;&lt;br /&gt;b是一个数组，这个数组有10个元素，每一个元素都是一个指针，指针指向一个函数，函数参数是"void (*)()"【注10】，返回值是"void"。完毕！&lt;br /&gt;&lt;br /&gt;注意：这个参数又是一个指针，指向一个函数，函数参数为空，返回值是 "void"。&lt;br /&gt;&lt;br /&gt;＃ 3. doube(*)() (*pa)[9];&lt;br /&gt;&lt;br /&gt;pa是一个指针，指针指向一个数组，这个数组有9个元素，每一个元素都是"doube(*)()"（也即一个函数指针，指向一个函数，这个函数的参数为空，返回值是"double"）。&lt;br /&gt;&lt;br /&gt;C语言中的函数指针&lt;br /&gt;&lt;br /&gt;函 数在内存中有一个物理位置，而这个位置是可以赋给一个指针的。一零点函数的地址就是该函数的入口点。因此，函数指针可被用来调用一个函数。函数的地址是用 不带任何括号或参数的函数名来得到的。（这很类似于数组地址的得到方法，即，在只有数组名而无下标是就得到数组地址。）&lt;br /&gt;&lt;br /&gt;怎样说明一个函数指针变量呢 ?&lt;br /&gt;为了说明一个变量 fn_pointer 的类型是"返回值为 int 的函数指针", 你可以使用下面的说明语句:&lt;br /&gt;int (*fn_pointer) ();&lt;br /&gt;为了让编译器能正确地解释这句语句, *fn_pointer 必须用括号围起来。若漏了这对括号, 则:&lt;br /&gt;int *fn_pointer ();&lt;br /&gt;的意思完全不同了。fn_pointer 将是一个函数名, 其返回值为 int 类型的指针。&lt;br /&gt;&lt;br /&gt;函数指针变量 &lt;br /&gt;&lt;br /&gt;在Ｃ语言中规定，一个函数总是占用一段连续的内存区，   而函数名就是该函数所占内存区的首地址。   我们可以把函数的这个首地址 ( 或称入口地址 ) 赋予一个指针变量，   使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。   我们把这种指向函数的指针变量称为 " 函数指针变量 " 。&lt;br /&gt;函数指针变量定义的一般形式为： &lt;br /&gt;类型说明符  (* 指针变量名 )(); &lt;br /&gt;其中 " 类型说明符 " 表示被指函数的返回值的类型。 "(*  指针变量名 )" 表示 "*" 后面的变量是定义的指针变量。    最后的空括号表示指针变量所指的是一个函数。 &lt;br /&gt;例如：  int (*pf)();&lt;br /&gt;表示 pf 是一个指向函数入口的指针变量，该函数的返回值 ( 函数值 ) 是整型。 &lt;br /&gt;下面通过例子来说明用指针形式实现对函数调用的方法。 &lt;br /&gt;int max(int a,int b){&lt;br /&gt;if(a&gt;b)return a;&lt;br /&gt;else return b;&lt;br /&gt;}&lt;br /&gt;main(){&lt;br /&gt;int max(int a,int b);&lt;br /&gt;int(*pmax)();&lt;br /&gt;int x,y,z;&lt;br /&gt;pmax=max;&lt;br /&gt;printf("input two numbers:\n");&lt;br /&gt;scanf("%d%d",&amp;amp;x,&amp;amp;y);&lt;br /&gt;z=(*pmax)(x,y);&lt;br /&gt;printf("maxmum=%d",z);&lt;br /&gt;}&lt;br /&gt;从上述程序可以看出用，函数指针变量形式调用函数的步骤如下：&lt;br /&gt;&lt;br /&gt;1.  先定义函数指针变量，如后一程序中第 9 行  int (*pmax)(); 定义 pmax 为函数指针变量。 &lt;br /&gt;&lt;br /&gt;2.  把被调函数的入口地址 ( 函数名 ) 赋予该函数指针变量，如程序中第 11 行  pmax=max;&lt;br /&gt;&lt;br /&gt;3.  用函数指针变量形式调用函数，如程序第 14 行  z=(*pmax)(x,y); 　调用函数的一般形式为：  (* 指针变量名 ) ( 实参表 ) 使用函数指针变量还应注意以下两点： &lt;br /&gt;&lt;br /&gt;a.  函数指针变量不能进行算术运算，这是与数组指针变量不同的。数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素，而函数指针的移动是毫无意义的。 &lt;br /&gt;&lt;br /&gt;b.  函数调用中 "(* 指针变量名 )" 的两边的括号不可少，其中的 * 不应该理解为求值运算，在此处它只是一种表示符号。   &lt;/div&gt;  &lt;span style="color:#000099;"&gt;&lt;strong&gt;原文地址&lt;/strong&gt;&lt;/span&gt; &lt;a target="_blank" href="http://blog.csdn.net/norbe/archive/2006/03/14/624257.aspx"&gt;&lt;u&gt;http://blog.csdn.net/norbe/archive/2006/03/14/624257.aspx&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-2432396740627969511?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/2432396740627969511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/05/void-0.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/2432396740627969511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/2432396740627969511'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/05/void-0.html' title='函数指针 (*(void (*)( ) )0)( ) 解析[转]'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-4660653637617919359</id><published>2009-05-11T20:42:00.000-07:00</published><updated>2009-05-11T22:45:30.381-07:00</updated><title type='text'>很萌的clannad paino</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-5abf94dc7e63f1e8" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v10.nonxt6.googlevideo.com/videoplayback?id%3D5abf94dc7e63f1e8%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331336550%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D8C5841276DE0B4431EB76A01DED0CA9ED419768.188A671350996DABCF4C67309462EEF7B97CC413%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5abf94dc7e63f1e8%26offsetms%3D5000%26itag%3Dw160%26sigh%3DJRYlRqC8jmC2hx6mNMjXKouf-vQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v10.nonxt6.googlevideo.com/videoplayback?id%3D5abf94dc7e63f1e8%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331336550%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D8C5841276DE0B4431EB76A01DED0CA9ED419768.188A671350996DABCF4C67309462EEF7B97CC413%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5abf94dc7e63f1e8%26offsetms%3D5000%26itag%3Dw160%26sigh%3DJRYlRqC8jmC2hx6mNMjXKouf-vQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;就是发现视频和音频不是很同步，随便看看拉&lt;br /&gt;现在很佩服用脚键盘的，高手啊&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-4660653637617919359?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=5abf94dc7e63f1e8&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/4660653637617919359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/05/clannad-paino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/4660653637617919359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/4660653637617919359'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/05/clannad-paino.html' title='很萌的clannad paino'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-8574607754779393646</id><published>2009-05-04T22:01:00.000-07:00</published><updated>2009-05-04T22:18:39.720-07:00</updated><title type='text'>Secondlife on Gentoo AMD64</title><content type='html'>一直想玩Secondlife，但他就是不出64位版本，搞得我非常不舒服。这次用了2个星期好好整了一下。&lt;br /&gt;&lt;br /&gt;首先用techwolf的overlay: http://overlay.techwolf.net/&lt;br /&gt;然后编译secondlife。注意，我编译的时候出现'-Wl,--as-needed'链接问题，在configure之后立马在编译目录中寻找这个关键词，删除之(记得有2处)。&lt;br /&gt;&lt;br /&gt;然后准备让openal支持pulseaudio，发现有个ebuild在http://www.lastlog.de/wiki/index.php/Pulseaudio 装上！！&lt;br /&gt;openal现在版本的配置文件从.openalrc迁移到.alsoftrc，格式也完全不一样。填上drivers=pulseaudio&lt;br /&gt;&lt;br /&gt;关键是SLVoice没有64bit版本，只好使用emul-linux-x86-*模拟。这边吃尽了苦头，SLVoice死活不工作！！把SLVoice move 成SLVoice.bin，再加入-ll 5 使loglevel=5 发现dns无法工作，查了google很久都没有发现，后来想到好像以前googleearth也出现这个状况，推测并非SLVoice的问题。把nsswtich.conf的mdns删掉后成功了。原来是SLVoice没有找到mdns的32位lib，结果dns无法工作。这个问题真的很tricky！&lt;br /&gt;&lt;br /&gt;好了，开始研究如何建模了，在学校上了堂blender的课，稍微了解了一下如何建模。哎……小时候没有好好学画画，现在后悔了。我要找个画画好的女朋友！！～～&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这是我在Help Desk看到的一位非常好看的MM&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CDi50Af-jLk/Sf_LTSGfGdI/AAAAAAAABSY/ysWi5JVwvJI/s1600-h/Snapshot_012.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_CDi50Af-jLk/Sf_LTSGfGdI/AAAAAAAABSY/ysWi5JVwvJI/s320/Snapshot_012.png" alt="" id="BLOGGER_PHOTO_ID_5332204015966951890" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-8574607754779393646?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/8574607754779393646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/05/secondlife-on-gentoo-amd64.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/8574607754779393646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/8574607754779393646'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/05/secondlife-on-gentoo-amd64.html' title='Secondlife on Gentoo AMD64'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CDi50Af-jLk/Sf_LTSGfGdI/AAAAAAAABSY/ysWi5JVwvJI/s72-c/Snapshot_012.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-6311860988227727130</id><published>2009-04-29T22:16:00.000-07:00</published><updated>2009-05-12T15:25:10.335-07:00</updated><title type='text'>NU的教授让我们做这个……</title><content type='html'>哎……什么都不说了，这个是第一个星期的作业，搞个计算长方体和圆柱体的体积计算器……这……&lt;br /&gt;&lt;br /&gt;加个opengl的实时作图，否则这个作业实在不像硕士生的作业……&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CDi50Af-jLk/Sfk07HTLZDI/AAAAAAAABSA/AzEl8Uasxnw/s1600-h/screenshot.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_CDi50Af-jLk/Sfk07HTLZDI/AAAAAAAABSA/AzEl8Uasxnw/s320/screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5330349824146105394" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-6311860988227727130?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/6311860988227727130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/04/nu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6311860988227727130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6311860988227727130'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/04/nu.html' title='NU的教授让我们做这个……'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CDi50Af-jLk/Sfk07HTLZDI/AAAAAAAABSA/AzEl8Uasxnw/s72-c/screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-7648977615724342161</id><published>2009-04-29T21:36:00.000-07:00</published><updated>2009-04-29T22:46:53.073-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>amd64环境下让skype使用pulseaudio</title><content type='html'>哎……以前写的好多tips就这样没了。算了，重新积累吧。&lt;br /&gt;&lt;br /&gt;我的gentoo是multilib ~amd64，在装了pulseaudio之后skype无法使用alsa的pulse plugin，显示无法找到/usr/lib32/alsa-lib/libasound_module_pcm_pulse.so。原因是我们gentooer在amd64 multilib的情况下有app-emulation/emul-linux-x86-medialibs的包，里面有32位的alsa，但是没有alsa-plugin。&lt;br /&gt;有同学说了，可以让pulseaudio使用dmix呀。我当初也这么想的，但发现用dmix的话，很容让pulseaudio发生颤音，而且dmix本身就是一个software mixing，pulseaudio又是一个，没什么必要。&lt;br /&gt;言归正传，解决这个问题其实很简单，去ftp.debian.org找libasound2-plugins_1.0.16-1+b1_i386.deb (有个高版本的1.0.19的，和我gentoo的版本一样，但会让skype崩溃)，用deb2targz转一下，解开，把/usr/lib32/alsa-lib/*pulse*.so copy过来，搞定。&lt;br /&gt;&lt;br /&gt;pulseaudio的每个声道都可以调整音量，还有可以在不同的sink中切换，这2点我特别喜欢。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-7648977615724342161?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/7648977615724342161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/04/amd64skypepulseaudio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/7648977615724342161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/7648977615724342161'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/04/amd64skypepulseaudio.html' title='amd64环境下让skype使用pulseaudio'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-6448811109991593405</id><published>2009-04-29T21:19:00.000-07:00</published><updated>2009-04-29T22:47:20.141-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensource blender'/><title type='text'>第一次接触blender</title><content type='html'>最近在看blender，虽然自己在美术方面完全无脑，不过还是玩了一下它的game engine。&lt;br /&gt;感觉还是挺专业的，装好以后没有任何素材，完全靠自己。有很多功能只有shortcut才能调出，比如UV mapping。&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;上个渲染的图，其实这个project我用的是game engine，在touch running object时触发python脚本。在game engine中，因为用nvidia渲染的关系，texture图片必须是2的n指数,比如 64x64, 128x128。还有许多额外限制。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CDi50Af-jLk/Sfknc4aRRkI/AAAAAAAABRs/PdUYpd5QMHo/s1600-h/screenshot6.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_CDi50Af-jLk/Sfknc4aRRkI/AAAAAAAABRs/PdUYpd5QMHo/s320/screenshot6.jpg" alt="" id="BLOGGER_PHOTO_ID_5330335011102082626" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CDi50Af-jLk/SfkpApx-PpI/AAAAAAAABR0/gT0OCTMhHoA/s1600-h/screenshot7.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_CDi50Af-jLk/SfkpApx-PpI/AAAAAAAABR0/gT0OCTMhHoA/s320/screenshot7.jpg" alt="" id="BLOGGER_PHOTO_ID_5330336725161885330" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-6448811109991593405?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/6448811109991593405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/04/blender.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6448811109991593405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6448811109991593405'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/04/blender.html' title='第一次接触blender'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CDi50Af-jLk/Sfknc4aRRkI/AAAAAAAABRs/PdUYpd5QMHo/s72-c/screenshot6.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-6787236789710393082</id><published>2009-04-29T21:16:00.000-07:00</published><updated>2009-04-29T22:47:34.520-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='disease biology'/><title type='text'>Swine Flu</title><content type='html'>猪猪喷嚏病现在很惶很暴力啊，WHO都把警戒级别调高到5级了。解释一下，6级最高，是全球大疫情。&lt;br /&gt;&lt;br /&gt;此病毒的RNA序列在此: http://www.ncbi.nlm.nih.gov/genomes/FLU/SwineFlu.html&lt;br /&gt;蛋白质序列在点进去以后，有protein链接。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-6787236789710393082?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/6787236789710393082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/04/swine-flue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6787236789710393082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/6787236789710393082'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/04/swine-flue.html' title='Swine Flu'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4834765047637955161.post-5728066093507914545</id><published>2009-04-29T21:06:00.000-07:00</published><updated>2009-04-29T21:09:29.881-07:00</updated><title type='text'>09年5月 新的开始</title><content type='html'>突然发现我的域名nowboy.com因久无续费，被别人抢注了。原来的数据因托管在公司，因故数据也不见了，泪奔。&lt;br /&gt;本来想用google app engine 做一个blog，结果发现google的storage还有1000条记录限制。先在这里定居一下吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4834765047637955161-5728066093507914545?l=xintan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xintan.blogspot.com/feeds/5728066093507914545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://xintan.blogspot.com/2009/04/095.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/5728066093507914545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4834765047637955161/posts/default/5728066093507914545'/><link rel='alternate' type='text/html' href='http://xintan.blogspot.com/2009/04/095.html' title='09年5月 新的开始'/><author><name>shin</name><uri>http://www.blogger.com/profile/02074278167952596906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_CDi50Af-jLk/SfklF6jwf3I/AAAAAAAABRI/imL1QbupF5w/S220/120_9271523_4.jpg'/></author><thr:total>0</thr:total></entry></feed>
