<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-4963495270953079363</id><updated>2008-08-05T10:31:31.285+08:00</updated><title type='text'>的米-漠石's Blog</title><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-2780952473344818769</id><published>2008-06-16T21:19:00.002+08:00</published><updated>2008-06-16T21:21:56.117+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>佳的美(GADMEI) UTV 380 在 XP SP3 上安装驱动</title><content type='html'>升级了 SP3，无法安装电视棒的驱动程序了，提示要先安装 SP2。&lt;br /&gt;驱动安装程序是使用 install shield 打包的，可以解压缩驱动程序包，使用 inf 文件，windows xp 自动安装。&lt;br /&gt;&lt;br /&gt;1.下载 install shield cab 解压缩工具 i6comp&lt;br /&gt;下载地址：http://hobbes.nmsu.edu/cgi-bin/h-viewer?sh=1&amp;fname=/pub/os2/win32os2/i6comp020.zip&lt;br /&gt;&lt;br /&gt;2.将下载的工具 i6comp020.zip 解压缩到任意文件夹&lt;br /&gt;&lt;br /&gt;3.将 UTV 380 的驱动文件安装目录下的 driver\install\ 的所有文件复制到上面的文件夹中的 Release 的下级文件夹中&lt;br /&gt;&lt;br /&gt;4.在开始菜单中，选择运行，输入命令： cmd，打开 Dos 命令窗口&lt;br /&gt;&lt;br /&gt;5.在 Dos 窗口输入命令, []内为说明，无需输入，每行输入结束，按回车键&lt;br /&gt;cd M:\i6comp020\Release         [将 M:\i6comp020 改为你解的文件夹]&lt;br /&gt;i6comp e data1.cab&lt;br /&gt;i6comp e data2.cab&lt;br /&gt;&lt;br /&gt;6.插入电视棒，系统提示找到新硬件，点击浏览按钮，打开刚才驱动解压出来的文件夹，点击 OK，一路继续。&lt;br /&gt;&lt;br /&gt;7.安装应用程序。&lt;br /&gt;&lt;br /&gt;其实，造成无法安装的原因，我想是驱动安装程序将系统环境设置死了，如果是有意为之，那是太细心了，未来没测试过的平台，就不给安装了。如果不是，那是有点粗心了，或是思维定势？&lt;br /&gt;&lt;br /&gt;不管怎么说，我按上面的方法安装后，并没有发现使用与 SP2 有任何差别，况且，听说 SP3 也就是收集了 SP2 之后的补丁而已，并没有什么大的改变。&lt;br /&gt;&lt;br /&gt;令人遗憾的是，在官方论坛上，却迟迟没有发布新的驱动程序安装包，如果不是管理问题，那只能说,对客户实在是不敬。因为，在我看来，改一下安装包，只不过是在判断条件上，多加一个 OR 而已：&lt;br /&gt;if (systemEv != sp2 || systemEv != sp3){&lt;br /&gt;  alert("请安装SP2.")&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;在 ubuntu 8.04 中，安装了 v4l2 后，使用 card=37(UTV330)，检索不到频道，看频段，55M~900M，应该是正确的吧。改为 card = 6，则提示无法设置频率，可能因为代码中没定义 turn。v4l2 的代码，没精力和时间去研究，只能遗憾放弃，看电视，还是重启到 xp 了。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2008/06/gadmei-utv-380-xp-sp3.html' title='佳的美(GADMEI) UTV 380 在 XP SP3 上安装驱动'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=2780952473344818769' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/2780952473344818769'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/2780952473344818769'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-3725461699760759086</id><published>2008-02-10T13:47:00.000+08:00</published><updated>2008-02-10T14:20:24.717+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>注意安全</title><content type='html'>总是很容易粗心大意，做事不够严谨，一般来说，这不会有太大的后果，但涉及到安全问题，还是不能太随便。&lt;br /&gt;  年前，为了方便，在厨房加装一个插座。这对于我来说，是很平常的事。准备了线材，工具等就开工了。第一步，当然是拉闸断电；第二步是爬上天花板，走暗线；第三步是并上电源线，第四步是安装多用插座。在打开多用插座后，发现里面少了枚螺丝，不想再去弄一只，于是打算直接穿线后拧死。事情就在这时发生了，当我直接用手去穿线时，天哪，我被结结实实地电着了！忙乱中，使劲地甩手，当我下来时，手被多用插座的铜片划出了N道血口，但还不如被电击时那浑身震颤的难受滋味，这在我N次被电的记录中，是最为严重的一次，可能与我捏实了电线有关系吧，这次电下来，半天才回过神来。&lt;br /&gt;  追查原因是，家里竟然有两处电闸！我断的是与厨房无关的那只，天哪，太恐怖了！&lt;br /&gt;&lt;br /&gt;  这次的教训是非常“沉重”的，分析了我的处理流程，有多处马虎的地方：&lt;br /&gt;1、这是在老丈人家，由于刚翻修过房子，电路被重新改过，而我却不知情。照理，在断电后，应当进行确认，尤其是在别人布的线路上作业时。如果当时我开灯，或是用电笔进行测试，就会在第一时间发现这个问题。&lt;br /&gt;2、为了安全起见，应该小心地以假想带电模式下进行操作。如电源并接应当在连接终端完成之后来做，而我却是先连接电源，然后再安装多用插座。（连接电源其实是做了个插头，接到一处插座上，因此没有发生触电）连接插座时，发现少了一枚螺丝，最好还是重新换一个，因为直接拧线连接，有可能会造成连接不可靠，在接入大功率设备时（如电炉等几千瓦的加热器），容易产生电弧发热，留下火灾的安全隐患。&lt;br /&gt;&lt;br /&gt;  还好，没有造成更严重的结果，真是万幸，安全一定要注意啊。&lt;br /&gt;  还有象插头制作，一定要考虑连接线头是不是牢固可靠，线头是不是压实了，或是考虑打个结，不要简单一接了事，不是每个人，每一次都会老老实实地握住插头来拨电线的，万一拉出一根线来，可就危险了。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2008/02/blog-post.html' title='注意安全'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=3725461699760759086' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/3725461699760759086'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/3725461699760759086'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-6958424135143701368</id><published>2008-01-23T21:32:00.000+08:00</published><updated>2008-01-24T21:14:12.375+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>eclipse3.3 + tomcat5.5.25 启动web服务器错误</title><content type='html'>在启动tomcat5.5服务器时出错,提示:&lt;br /&gt;atalina.startup.Bootstrap  start&lt;br /&gt;java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina&lt;br /&gt;        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)&lt;br /&gt;        at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)&lt;br /&gt;        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)&lt;br /&gt;        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)&lt;br /&gt;        at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:222)&lt;br /&gt;        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:410)&lt;br /&gt;&lt;br /&gt;eclipse3.3启动器生成的命令是:&lt;br /&gt;M:\Application\Java\jdk1.5.0_14\bin\javaw.exe -Dcatalina.base=M:\Mostone.Personal\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 -Dcatalina.home=M:\Application\apache-tomcat-5.5.25 -Dwtp.deploy=M:\Mostone.Personal\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps -Djava.endorsed.dirs=M:\Application\apache-tomcat-5.5.25\common\endorsed -classpath M:\Application\apache-tomcat-5.5.25\bin\bootstrap.jar;M:\Application\Java\jdk1.5.0_14\lib\tools.jar org.apache.catalina.startup.Bootstrap start&lt;br /&gt;&lt;br /&gt;最终找到原因是:catalina.base不正确而找不到tomcat的lib目录下那些jar文件,如:apache-tomcat-5.5.25\server\lib\catalina.jar等,启动失败.&lt;br /&gt;&lt;br /&gt;关于catalina.base和catalina.home这两个参数的描述,我在apache-tomcat-5.5.25\bin\catalina.bat中找到的相关信息是:&lt;br /&gt;rem   CATALINA_HOME   May point at your Catalina "build" directory.&lt;br /&gt;rem&lt;br /&gt;rem   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions&lt;br /&gt;rem                   of a Catalina installation.  If not present, resolves to&lt;br /&gt;rem                   the same directory that CATALINA_HOME points to.&lt;br /&gt;catalina.home应该是Application所在目录,catalina.base是tomcat的安装目录,如果省略catalina.base参数,则使用catalina.home作为tomcat的安装目录.&lt;br /&gt;&lt;br /&gt;将VM参数的-Dcatalina.base与-Dcatalina.home互换,启动成功,但eclipse IDE环境下的Server project中配置文件 server.xml 不能载入,载入的是tomcat目录下的 server.xml,影响eclipse自动发布.&lt;br /&gt;&lt;br /&gt;我不确定,出现这个问题与安装tomcat是否有关.我的环境是:&lt;br /&gt;OS: Windows XP Pro&lt;br /&gt;JDK: jkd1.5-14(只安装了开发包,PATH变量是手工加的)&lt;br /&gt;tomcat: 5.5.25(下载的是zip包,而不是service安装包)&lt;br /&gt;&lt;br /&gt;tomcat解压后,startup成功,但eclipse缺省下run on server出现以上问题,不知道在直接安装service版tomcat情况下是否能成功启动。&lt;br /&gt;&lt;br /&gt;时间不早了,昨天没睡好,今晚早点睡,改天折腾吧.&lt;br /&gt;&lt;br /&gt;(续上)&lt;br /&gt;今天无意打开Server project目录下的文件，发现catalina.policy和catalina.properties中有运行环境的设置，才猛然想起，这些文件被我覆盖过。因为原来用的是tomcat 6.0，我改过server.xml。&lt;br /&gt;&lt;br /&gt;将Servers project删除，重新建立，这次再运行，一切OK。&lt;br /&gt;&lt;br /&gt;费了这么多时间，真是冤枉啊，太郁闷了，未能快速找出错误的解决方法，是我不了解eclipse启动的背后，不知道从哪里入手查找问题，不过，翻看E文文档资料，对于我来说还是件难事。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2008/01/eclipse33-tomcat5525-web.html' title='eclipse3.3 + tomcat5.5.25 启动web服务器错误'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=6958424135143701368' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/6958424135143701368'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/6958424135143701368'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-7225058680505500336</id><published>2007-10-08T10:01:00.000+08:00</published><updated>2007-10-08T10:14:07.350+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>“萝莎”台风</title><content type='html'>十一后的第一天上班时间，起床后，雨挺大的，但没有收到不上班的通知，只好持伞出门。才走几步，转上大路，竟然全是积水，风又大，很多人把鞋子拿在手上，光脚行走。我的裤子也早就被风雨吹湿了，鞋子自是更不用说。好不容易到了公司，竟然就两个人！着湿漉漉的鞋子，被打混的裤子紧贴着大腿，下身犹如刚从水里捞上来似的，甭提有多难受了。在公司里实在坐不了几分钟，想想反正也没什么人，得，回去换身衣服，在家休息好了。&lt;br /&gt;  回去的路上，从马路的另一侧走，才发现，路边的小河已经漫到岸上了，河沿边的长椅，已经被水没过了椅面，水下是青青的绿草，太夸张了，看来杭州的泄洪能力实在是不堪台风的蹂躏啊。&lt;br /&gt;  回家上QQ，发现其它公司很多人都收到通知不上班了，哎，真不厚道啊，我们没有 :-(</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/10/blog-post.html' title='“萝莎”台风'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=7225058680505500336' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/7225058680505500336'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/7225058680505500336'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-2823101929184600220</id><published>2007-08-01T20:05:00.000+08:00</published><updated>2007-08-01T20:14:32.964+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>生病了？自己吓自己！</title><content type='html'>身体不舒服，不一定是生病了，有时，是心理作用。&lt;br /&gt;  这段时间，感觉胸口闷，心脏不舒服，吓坏了，今天上医院（上海仁济医院[东部]），O，GOD。人山人海！昨天晚上去急诊，也是人山人海，楞给吓回来了，后来11点钟打电话去问，说还有N多人。&lt;br /&gt;  进了医院，由于急诊时给我的是内科，一大早我也挂了个内科，等了一个小时多，终于轮到了，结果没问几句，要我改挂心内科，郁闷啊，又是漫长的等待。。。&lt;br /&gt;  后来又是心电图，又是胸透，均查无异常，最终结论：自己吓自己的。&lt;br /&gt;&lt;br /&gt;  敲键盘的，长时间保持一个姿势，又缺少锻炼，身体本来就很虚，疲劳或是没休息好，有个不适感很正常，可是老被人说太“瘦”，没精神，又有“胃出血”的既往病史，消化一直不太好，以至于心理上有了“阴影”，总以为自己有个什么不好的病。。。。&lt;br /&gt;&lt;br /&gt;  还好，没事就好，呵呵，保持开朗的心情最重要！</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/08/blog-post.html' title='生病了？自己吓自己！'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=2823101929184600220' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/2823101929184600220'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/2823101929184600220'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-247925144680585794</id><published>2007-07-24T09:01:00.000+08:00</published><updated>2007-07-24T09:08:57.612+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>十年同学会</title><content type='html'>7/21，老班长组织了我们高中的十年同学会，还请了当时的班主任及几位任课老师。&lt;br /&gt;  比预想的人数要多，本以为有一半就不错了，但那天来了近五十多位同学（我们班是两个理科慢班的合集，总人数好象是64）。看来，慢班也有好处，大部分同学依然在家乡，容易聚在一起，不象快班，基本上都散落在全国各地了，甚至好些在国外了。&lt;br /&gt;  象我这么瘦的，也有两三，哈哈哈，颇为慰藉啊。当然，也有好些个本就不瘦的，现在更胖了。得盯着那张脸看上半天，才能与昔日的形象对上！</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/blog-post_24.html' title='十年同学会'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=247925144680585794' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/247925144680585794'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/247925144680585794'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-3903694856724480445</id><published>2007-07-18T07:59:00.000+08:00</published><updated>2007-07-24T09:00:14.527+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>mp4 3gp 视频格式转换</title><content type='html'>新入手了一台双模手机：大唐DT508,支持GSM和小灵通。&lt;br /&gt;  国产的手机，品质不怎么样，倒是杂七杂八的功能N多。其中就支持MP4，3GP媒体格式。于是也将手头的一些影片给转成MP4，但怎么试都不行，要么有图象没声音，要么就给个“格式不支持”。&lt;br /&gt;  最后，找了个Total Video Converter 2.603，转换成3gp格式，使用默认设置生成的文件，可以正常播放，但品质较差。尝试将视频比特率设为原比特率后，品质好多了，不过，生成的MP4，倒是死活不能成功播放，不知是什么原因。&lt;br /&gt;  另外有款开源软件：Media Coder，功能要强大很多，但具体设置比较复杂，必须得有相关的背景知识，象比特率，画面大小，每种格式都有自己的标准，不是随便设就可以的，但输出AVI格式的，一般来说没问题，那倒是可以用这款软件来做前期处理，如拆分，合并，声音，画面处理等。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/mp4-3gp.html' title='mp4 3gp 视频格式转换'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=3903694856724480445' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/3903694856724480445'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/3903694856724480445'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-8313946806139836810</id><published>2007-07-07T06:52:00.000+08:00</published><updated>2007-07-07T07:08:24.966+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#2.0 首次使用匿名方法</title><content type='html'>从知道C#2.0引入了匿名方法后，这还是首次使用:-)&lt;br /&gt;goodsIDs是List&amp;lt;int&amp;gt;，为了拼接SQL文，使用String.Join方法，可遗憾的是，它只支持字符型数组，在不想写个循环的情况下，选择使用Array的转换方法，但它需要一个委托方法来进行类型转换。本就想省事，当然也不想新建一个方法，于是想到了匿名方法，由此有了第一次体验，呵呵，感觉挺有趣的，和JavaScript的prototype指定一个无名称的function差不多。&lt;br /&gt;&lt;br /&gt;            // 生成SQL文&lt;br /&gt;            sql.AppendLine("UPDATE LINGS_GOODS");&lt;br /&gt;            sql.AppendLine("    SET LINKID=0");&lt;br /&gt;            sql.AppendLine(&lt;br /&gt;                String.Format("ID IN (@GOODSID{0})",&lt;br /&gt;                    String.Join(",@GOODSID",&lt;br /&gt;                    goodsIDs.ConvertAll&amp;lt;string&amp;gt;(new Converter&amp;lt;int,string&amp;gt;(&lt;span style="color:red"&gt;delegate(int value) { return value.ToString(); }&lt;/span&gt;)).ToArray())),&lt;br /&gt;                true);&lt;br /&gt;&lt;br /&gt;不过，最终也没有使用匿名方法，因为想起来框架中有现成的转换方法可用：&lt;br /&gt;            // 生成SQL文&lt;br /&gt;            sql.AppendLine("UPDATE LINGS_GOODS");&lt;br /&gt;            sql.AppendLine("    SET LINKID=0");&lt;br /&gt;            sql.AppendLine(&lt;br /&gt;                String.Format("ID IN (@GOODSID{0})",&lt;br /&gt;                    String.Join(",@GOODSID",&lt;br /&gt;                    goodsIDs.ConvertAll&amp;lt;string&amp;gt;(new Converter&amp;lt;int,string&amp;gt;(&lt;span style="color:red"&gt;Convert.ToString&lt;/span&gt;)).ToArray())),&lt;br /&gt;                true);&lt;br /&gt;&lt;br /&gt;连C# 2.0的新特性都还没体验过，C# 3.0已经出来了，感叹这世界变化太快 :-)</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/c20.html' title='C#2.0 首次使用匿名方法'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=8313946806139836810' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/8313946806139836810'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/8313946806139836810'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-1832636740314367585</id><published>2007-07-06T09:16:00.000+08:00</published><updated>2007-07-06T09:25:23.643+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>令人郁闷的MDB SQL转参</title><content type='html'>折腾了半天，一个SQL死活通不过：&lt;br /&gt;UPDATE&lt;br /&gt; LINGS_GOODS&lt;br /&gt;SET LINKID=@LINKID&lt;br /&gt;WHERE ID IN (&lt;br /&gt; SELECT&lt;br /&gt;  ID&lt;br /&gt; FROM LINGS_GOODS&lt;br /&gt; WHERE LINKID IN (&lt;br /&gt;  SELECT&lt;br /&gt;   DISTINCT LINKID&lt;br /&gt;  FROM LINGS_GOODS&lt;br /&gt;  WHERE LINKID&amp;lt;&amp;gt;0&lt;br /&gt;  AND ID IN (@GOODSID4LINKID6&lt;br /&gt;   ,@GOODSID4LINKID14&lt;br /&gt;   ,@GOODSID4LINKID7&lt;br /&gt;   ,@GOODSID4LINKID10&lt;br /&gt;   ,@GOODSID4LINKID11) )&lt;br /&gt; OR ID IN (@GOODSID4GOODSID6&lt;br /&gt;  ,@GOODSID4GOODSID14&lt;br /&gt;  ,@GOODSID4GOODSID7&lt;br /&gt;  ,@GOODSID4GOODSID10&lt;br /&gt;  ,@GOODSID4GOODSID11) )&lt;br /&gt;&lt;br /&gt;转参：&lt;br /&gt;LINKID:6&lt;br /&gt;GOODSID4LINKID6:6&lt;br /&gt;GOODSID4LINKID14:14&lt;br /&gt;GOODSID4LINKID7:7&lt;br /&gt;GOODSID4LINKID10:10&lt;br /&gt;GOODSID4LINKID11:11&lt;br /&gt;GOODSID4GOODSID6:6&lt;br /&gt;GOODSID4GOODSID14:14&lt;br /&gt;GOODSID4GOODSID7:7&lt;br /&gt;GOODSID4GOODSID10:10&lt;br /&gt;GOODSID4GOODSID11:11&lt;br /&gt;&lt;br /&gt;更新之后，发现新的值竟然是 11， 而不是 6。&lt;br /&gt;最后试着将 LINKID 参数的位置调整到最后，更新正确了！&lt;br /&gt;Access SQL 的参数问题以前也遇到过，之前以为只要名称对上，次序可以随意，但结果却是非得要按参数在SQL中出现的次序来一一指定参数不可，不然就错位了，似乎不支持参数名，SQL中的参数名，完全可以用 ? 来代替。&lt;br /&gt;&lt;br /&gt;但现在这问题来看，对于参数的次序问题，看来不是完全按 SQL 文文本的次序来定，而是按实际执行的子查询的次序来定。&lt;br /&gt;上面的 SQL 中，两个子查询先执行，更新操作是最后执行，所以更新内容的参数就要放在最后。&lt;br /&gt;&lt;br /&gt;哎，实在令人郁闷，一个知识点的缺失，贴进去大半天的时间。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/mdb-sql.html' title='令人郁闷的MDB SQL转参'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=1832636740314367585' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1832636740314367585'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1832636740314367585'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-5698644421407700292</id><published>2007-07-06T05:47:00.000+08:00</published><updated>2007-07-06T06:21:30.315+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>文档标准多样与Linux</title><content type='html'>在很大程度上，常用的 MicroSoft Word/Excel 文档在 Linux 无法完全交换，阻碍了 Linux 的普及，特别是在Ubuntu7推出后，桌面应用的可操作性更加容易之后。&lt;br /&gt;&lt;br /&gt;  办公文档是各单位及个人最要的电脑资料，广泛用于信息传播，网上资料下载及各单位的内部管理系统，都会维护大量的办公文档，采用的最广泛的，应该是 MicroSoft Wrod/Excel，虽然 OpenOffice 能打开，但不能保证编辑后完全兼容，因此大部分人迫不得已使用 Wine 来编辑文档。&lt;br /&gt;&lt;br /&gt;  常见的文档格式有金山的 WPS，Adobe 的 pdf，Microsoft Word，OpenOffice，甚至于文档标准就有多个：国内的 UOF，国际的 ODF，微软的 OpenXML，还有 “Adobe的Acrobat 软件和它所支持的 PDF 格式已经得到广泛的认同，现已被国际标准化组织（ISO）评为很多领域的标准，比如，PDF/X 是电子印刷数据交换标准，PDF/A 成为长期保存及存档的电子记录标准。”&lt;br /&gt;&lt;br /&gt;  如果国际标准统一，并实现完全兼容，将会大大提高Ubuntu的竞争力，减少推广阻力，让用户在做同一件事上，有多种选择。&lt;br /&gt;&lt;br /&gt;参考资料：&lt;br /&gt;1、&lt;a href="http://www4.it168.com/ztsys/zhuanti/683/default.shtml"&gt;开放文档格式标准ODF/UOF互通互融&lt;/a&gt;（IT168-软件频道）&lt;br /&gt;2、&lt;a href="http://soft.chinabyte.com/462/2628462.shtml"&gt;中文文档国家标准呼之欲出&lt;/a&gt;（天极网）&lt;br /&gt;3、&lt;a href="http://news.chinabyte.com/190/2707190.shtml"&gt;微软OpenXML不示弱 被ECMA批为国际文档标准&lt;/a&gt;（天极网）&lt;br /&gt;4、&lt;a href="http://media.ccidnet.com/art/2615/20051219/395645_1.html"&gt;统一文档标准 改善业务流程&lt;/a&gt;(赛迪网)</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/linux.html' title='文档标准多样与Linux'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=5698644421407700292' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/5698644421407700292'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/5698644421407700292'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-4129350507984719006</id><published>2007-07-05T13:36:00.000+08:00</published><updated>2007-07-05T13:47:48.219+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>今天是我和老婆的阳历生日</title><content type='html'>今天生日，两个人的共同生日，夫妻同月同日生的应该不多吧，不过，家庭节日却是少了一个，呵呵。&lt;br /&gt;&lt;br /&gt;想去吃海鲜，好久没回家了，实在是太想吃海鲜了。以前在家，几乎天天满桌的海鲜，而出外飘泊的这么些年，吃海鲜却已经是一种奢望了。&lt;br /&gt;&lt;br /&gt;最爱吃的海鲜有很多，黄鱼，带鱼，黄梅鱼，虾姑，鲳鱼，鱿鱼，还有很多不知道怎么说的……&lt;br /&gt;海鲜当然要野生的才好吃，但价格实在是太贵了，有些甚至是有价无市。听我妈说，她小的时候，一阵浪过，海岸上到处可见被浪打上来的海蛰，可现在，环境污染，海洋资源保护的欠缺，这种盛况，早已经看不到了。&lt;br /&gt;&lt;br /&gt;目前状况下，如果能吃到新鲜又肥美的，已经是很不错了，希望晚上能吃上新鲜又肥美的 :-)</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/blog-post.html' title='今天是我和老婆的阳历生日'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=4129350507984719006' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4129350507984719006'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4129350507984719006'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-5916571578994611698</id><published>2007-07-05T13:31:00.000+08:00</published><updated>2007-07-05T13:32:04.418+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Asp.net'/><title type='text'>关于 FormView 状态的判断</title><content type='html'>在一个页面，想要根据 FormView 的状态来切换按钮显示时，在不同的事件里，取得的 FormView 状态会有不同。&lt;br /&gt;&lt;br /&gt;  例如：当前的 FormView 是 Insert 状态，点击 Insert 按钮，在 Inserted 事件中，将状态切换到 ReadOnly 时，在不同的页面事件中，取到的 FormView 的 CurrentMode 是不同的。要想在页面输出时，根据 FormView 状态切换按钮显示，要选择合适的事件。&lt;br /&gt;&lt;br /&gt;  最初，我使用 Page_Load 事件来进行处理，但发现取到的状态不正确。在上面举例的操作过程中，我预想的结果是 ReadOnly，然而实际上却是 Insert 状态。经过了解，最后使用 Page_PreRenderComplete 事件正确取得 FormView 的状态。&lt;br /&gt;&lt;br /&gt;  首先，需要了解页面生命周期中，各事件的先后顺序，简单列几个事件的次序：&lt;br /&gt;    1、Page_PreLoad&lt;br /&gt;    2、Page_Load&lt;br /&gt;    3、RaiseChangedEvents(各个控件的 Changed 事件)&lt;br /&gt;    4、RaisePostBackEvent(各个控件的处理事件，如 onClick 等)&lt;br /&gt;    5、Page_LoadComplete&lt;br /&gt;    6、Control_PreRender&lt;br /&gt;    7、Page_PreRenderComplete&lt;br /&gt;    &lt;br /&gt;  为此，我写了一个测试程序，在各个事件中输出日志记录，部分内容如下：&lt;br /&gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 5603808" Level="Debug_Level"&amp;gt;Page_PreLoad&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 5603808" Level="Debug_Level"&amp;gt;FormMode:Insert&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 5904240" Level="Debug_Level"&amp;gt;Page_Load&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6004384" Level="Debug_Level"&amp;gt;FormMode:Insert&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6505104" Level="Debug_Level"&amp;gt;Page_LoadComplete&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6505104" Level="Debug_Level"&amp;gt;FormMode:ReadOnly&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6705392" Level="Debug_Level"&amp;gt;FormView_PreRender&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6705392" Level="Debug_Level"&amp;gt;FormMode:ReadOnly&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6705392" Level="Debug_Level"&amp;gt;Page_PreRenderComplete&amp;lt;/Log&amp;gt;&lt;br /&gt;&amp;lt;Log Date="2007-07-05 12:51:09 6705392" Level="Debug_Level"&amp;gt;FormMode:ReadOnly&amp;lt;/Log&amp;gt;&lt;br /&gt;&lt;br /&gt;  从日志记录中可以看出，要到 Page_LoadComplete 事件时，FormView 的状态才由 Insert 状态切换到 ReadOnly 状态。而我在开始编写ASP.Net程序时，总是想当然地以为在 Page_Load 事件时，所有的控件都已经加载并处理完毕。&lt;br /&gt;  &lt;br /&gt;  同样，在 Page_Load 事件中，如果查看 GridView 的行数，所取得的结果是变更前的行数，而不是最终输出到客户浏览器后的行数。在 Page_Load 事件中所取得的行数，可能是从ViewState 中取得原始数据，是系统状态的还原结果，还没有去处理用户事件并重新检索数据。&lt;br /&gt;  &lt;br /&gt;  综上，或许我们应该先花点时间了解页面的生命周期，从网上，我搜索到一些相关内容的网页，摘录以参考。&lt;br /&gt;  &lt;br /&gt;  1、&lt;a href="http://geekswithblogs.net/emanish/archive/2006/07/13/85028.aspx"&gt;Asp.Net Page LiftCycle&lt;/a&gt;（页面生命周期）&lt;br /&gt;    这在以前，我也看到过这张图，但不在自己电脑上，未保存，后来再想找时，一直没找到，呵呵，和这页面的作者差不多：-）&lt;br /&gt;    另外，这张图中，似乎少了些事件，如 Page_PreRenderComplete。 而图例中的 Adapter 和 Page Persister 是什么意思也不懂。&lt;br /&gt;  2、&lt;a href="http://msdn2.microsoft.com/zh-cn/library/ms178473(VS.80).aspx"&gt;ASP.NET 应用程序生命周期概述&lt;/a&gt;（MSDN的文章）&lt;br /&gt;  3、&lt;a href="http://www.cnblogs.com/hjf1223/archive/2006/09/29/518305.aspx"&gt;客观看待ViewState对Asp.net程序作用和影响&lt;/a&gt;（某位博客的文章）</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/07/formview.html' title='关于 FormView 状态的判断'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=5916571578994611698' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/5916571578994611698'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/5916571578994611698'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-4756121267013024509</id><published>2007-06-30T12:31:00.000+08:00</published><updated>2007-06-30T12:35:37.202+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>房价跟美国接轨,工资跟非洲接轨?[转]</title><content type='html'>在某论坛看到这篇文章，感觉挺有意思的，转以保存。&lt;br /&gt;通过google搜索，找到一个地址，但不确定是否是原始出处。&lt;br /&gt;&lt;a href="http://zihan868.bokee.com/viewdiary.15389472.html"&gt;&lt;br /&gt;http://zihan868.bokee.com/viewdiary.15389472.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　银行跨行查询收费，和哪个国家接轨你绝对想不到，美国绝大多数的银行根本不存在什么所谓的跨行查询收费。美国的绝大多数银行是股份制银行，这种自己突然规定跨行查询收费的只有在垄断银行才会发生。专家说，如果国外只要有一个银行实行了跨行查询收费，中国就会以和国际接轨为理由，采用这种方式。然后他们查阅了很多资料发现，我们周围这些国家，只有唯一一个巴基斯坦是跨行查询收费的。看到这里我彻底晕了，原来中国几家银行跨行查询收费的所谓和国际接轨，居然是和巴基斯坦接轨啊。&lt;br /&gt;　　&lt;br /&gt;　　有些决策者在制定政策的时候，手里有两套法宝，一套是“中国国情”一套是“与国际接轨”，当制定不利于人民的政策时，如房改，要求大家自己掏钱购买商品房，就说是和“国际接轨”，理由是，人家外国都是自己买房子,没有福利分房的说法,但与此同时，他们却恰恰忽略了人家外国土地私有这个关键因素，中国人并不拥有土地的所有权，土地都属于国家，却要被迫付出昂贵的价钱购买一套只有使用权的商品房，而当人们对此提出质疑的时候，他们又会说这是中国特殊国情决定的。&lt;br /&gt;　　&lt;br /&gt;　　又比如医改，教改，人家其他国家是免费医疗，免费义务教育，但这一点他们又不与国际接轨了，又强调中国国情了，什么财力不堪重负啦之类，结果导致大家看不起病，上不起学。&lt;br /&gt;　　&lt;br /&gt;　　又比如所谓“高薪养廉”，据说是新加坡、香港的成功经验，所以要和“国际接轨”，所以五次三番地给公务员加薪。但人家严格的监督制度，对公务员近乎苛刻的约束，廉政公署等等，他们又不和国际接轨了，又强调中国国情了。韩国首都汉城（现名首尔）只有14辆公务车，这点他们就不愿意接轨，中国现在一个乡镇 14辆公车都不算多吧？这就是中国国情。&lt;br /&gt;　　&lt;br /&gt;　　美国有个燃油税，他们就要和“国际接轨”，也要征燃油税，但美国高速公路、大桥绝大多数是不收费的，在美国养一辆车除汽油费外每年仅需170多美元，这点他们又不和国际接轨了，不仅养路费、车船税等等一大堆，而且到处设置关卡，几乎路路收费。全世界总共只有14万公里收费公路，但就有10万公里在中国！这就又是中国国情了.&lt;br /&gt;　　&lt;br /&gt;　　美国格林斯潘加息了，他们就要和“国际接轨”，但美国购房享受退税，购买第一套住房享受低利率，对出租房屋屋主进行补贴以降低租金，这些他们又不和国际接轨了，又强调中国国情了，不仅不对出租房屋进行补贴，反而变本加厉地对出租屋提高税收，导致这部分成本转嫁给租客，租金上涨。　&lt;br /&gt;　　&lt;br /&gt;　　世界绝大多数国家都是土地私有的，人民买房的同时就买了地皮，具有永久所有权。当然，他们在这一点上就不和国际接轨了，因为中国国情特殊啊！但是，当他们发现香港的使用权制度对自己比较有利后，就立即和香港接轨了！订了个70年使用权制度，迫使人民祖祖辈辈不断花巨资购买有限使用权，但香港是什么情况？香港原先是殖民地啊！英国只租用了99年啊，它搞个使用权无可厚非，因为土地本不是它的，时间到了就要归还的，你搞使用权到底是什么意思？不是说中国是公有制吗?　不是全国人民拥有对一切生产资料的所有权吗？但落实到的最后怎么变成绝大多数人都一无所有了呢？怎么就变成必须购买本属于自己的土地使用权呢？所以在这方面就和香港这个“殖民地”接轨，就不和其他的国际接轨。&lt;br /&gt;　　&lt;br /&gt;　　又比如，油价要涨、电价要涨、水价要涨，理由还是和国际接轨，说什么人家的都很贵，中国的油价水价电价便宜的很，所以就该涨，但说到人民的工资水平、福利水平、劳动保障制度，就又不和国际接轨了，就又强调中国的特殊国情了，人家的工会都是工人选举产生，实实在在代表工人权益，这一点咱们就是不和人家接轨，咱就是要让工会成为资本家压迫工人的帮凶，原因还是：中国国情。所以，不要拿什么美国、英国的加息说事，什么时候中国成为完全市场经济国家了，权力部门受公众严格监督了，再说这些不迟！</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/blog-post_30.html' title='房价跟美国接轨,工资跟非洲接轨?[转]'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=4756121267013024509' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4756121267013024509'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4756121267013024509'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-1152972084064034185</id><published>2007-06-09T21:15:00.000+08:00</published><updated>2007-06-09T21:22:03.712+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='YY'/><title type='text'>YY还不会走路，好心急啊</title><content type='html'>YY已经15个月了，但是还不会走路。&lt;br /&gt;牵着她的一只手，会走，但一放开就倒。&lt;br /&gt;在网上查了一下，一般是12~14个月就会走路，但18个月，则100%都会走。或许YY是后者。&lt;br /&gt;YY开始长牙也晚，老婆说是缺钙，她自己也缺钙。现在我们在给她服龙牡壮骨粉。&lt;br /&gt;YY现在不在身边，下次回她外婆家，要考虑带她去做体检了。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/yy.html' title='YY还不会走路，好心急啊'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=1152972084064034185' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1152972084064034185'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1152972084064034185'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-4383975884825986649</id><published>2007-06-09T21:01:00.001+08:00</published><updated>2007-06-09T21:11:50.847+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='other'/><title type='text'>uTorrent：提示磁盘空间不足</title><content type='html'>下载并试用 uTorrent 时，出现磁盘空间不足的提示，而实际上我的磁盘还有10多个G的可用空间。最后发现是分区格式的问题，FAT32允许的单文件最大值是4GB，而 BT 下载文件却有 4.3G，一张DVD。&lt;br /&gt;所以认为是一个 BUG 并提交到官方网站。&lt;br /&gt;&lt;br /&gt;得到的回复是，uTorrent 只是简单的返回 Windows API 的出错信息而已，原来这是 Windows 的 Bug。&lt;br /&gt;但记得有个下载工具是有判断并明确提醒是分区格式的问题，想再建议加入判断，但E文写不出来，只好作罢，对于大部分懂电脑的来说，可能会找出问题原因，但普通用户，是比较困难的，而且使用FAT32的概率也相当高，而用 BT 下载大文件，也是比较普遍的。&lt;br /&gt;&lt;br /&gt;相关链接：&lt;br /&gt;&lt;a href="http://forum.utorrent.com/viewtopic.php?pid=255809#p255809"&gt;http://forum.utorrent.com/viewtopic.php?pid=255809#p255809&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/utorrent.html' title='uTorrent：提示磁盘空间不足'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=4383975884825986649' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4383975884825986649'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4383975884825986649'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-8060703291189191235</id><published>2007-06-09T18:02:00.000+08:00</published><updated>2007-06-09T18:34:55.270+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>一种新颖的验证方式</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lingsmm.com/blog/uploaded_images/validate-724392.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://www.lingsmm.com/blog/uploaded_images/validate-724389.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;今天注册了一个uTorrent的论坛帐号，发现该网站使用了一种新颖的验证方式。&lt;br /&gt;当前网上，为了防止有人恶意访问，流行在登录或发帖时，追加验证码的输入及校验。而这个网站所使用的方式是：显示的是一张含有一个小方块的图片，要求用户点击图片某一角落的小方块进行验证。&lt;br /&gt;原理应该比较简单，就是从表单数据中提取点击的坐标值，进行对比校验。&lt;br /&gt;&lt;br /&gt;采用这种方式有一个明显的优点，它减少了用户的键盘输入。若是使用了自动填表功能，则不需要任何输入即可一点马上提交登录信息。&lt;br /&gt;&lt;br /&gt;但这种方式也有缺点，如果用户没有鼠标或不喜欢使用鼠标，则会造成不便，虽然这是少数情况。如果同时提供两种方式，校验时，任何一种通过即成功返回，或许是个不错的完美方案。&lt;br /&gt;&lt;br /&gt;从根本上来说，这是为了防止恶意防问，一般指程序的自动攻击。采用这种方式，被突破的概率不知道是多少，其安全强度能有几分。我的数学向来较差，不知道是不是=小方块的面积（象素单位）：图片的面积。直觉上，应该是较为可靠的。但相比于若干位英文字母+数字的方式，似乎被突破要容易得多。&lt;br /&gt;&lt;br /&gt;另外，除了单纯的穷举法外，对图片进行分析的难度，也不及英文字母+数字的方式。但不管怎么说，在人性化方面要强上许多，对于防范要求不高的网站，还是一个比较受用户欢迎的不错选择。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/blog-post.html' title='一种新颖的验证方式'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=8060703291189191235' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/8060703291189191235'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/8060703291189191235'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-5842531774037273151</id><published>2007-06-04T07:06:00.000+08:00</published><updated>2007-06-04T07:29:59.407+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>安装Windows后，恢复Ubuntu的启动菜单</title><content type='html'>安装Windows后，MBR上的GRUB被清掉了，按网上资料显示，恢复是相当简单。&lt;br /&gt;确实，若顺利的话，也就两句Grub命令：&lt;br /&gt;root (hd0,1)&lt;br /&gt;setup (hd0)&lt;br /&gt;但是，这是有前提的，你得要用root帐户来操作，虽然这有点象废话，然而我还是犯了这个错误。&lt;br /&gt;由于Grub也是可以由非root帐户执行的，所以在命令行输入grub，没有提示权限不足，只是在进行以上操作时，总是说找不到磁盘，郁闷的说。&lt;br /&gt;错误消息：Error 21: Selected disk does not exist&lt;br /&gt;&lt;br /&gt;总结一下，完整而有简单的操作步骤是：&lt;br /&gt;sudo -i&lt;br /&gt;grub&lt;br /&gt;root (hdX,X)&lt;br /&gt;setup (hdX[,X])&lt;br /&gt;quit&lt;br /&gt;&lt;br /&gt;sudo -i是取得root权限，以前的命令su的替代，若单执行一条命令，也可以直接sudo grub。&lt;br /&gt;root (hdX,X) 其中“X”是数字，表示第几个磁盘，第几个分区是root所在分区&lt;br /&gt;setup (hdX,[X]) “X”同上，但如果是要将grub安装到MBR，而不是分区的Boot扇区，可以省略后者。&lt;br /&gt;另外有一条非常有用的命令：&lt;br /&gt;find /boot/grub/stage1&lt;br /&gt;它会帮你找出，你的root分区所在的磁盘位置，返回如：(hd0,1)，就不用去瞎猜了。&lt;br /&gt;&lt;br /&gt;另外一个问题是，我在安装系统时，喜欢将老系统分区删除，再重建，如此一来，WindowsXp的安装程序重建分区时，竟然留了1M的空间，害得又多出个未分配空间，而且，系统分区的位置也变了，还没细查，估计有可能变成逻辑分区了。还有更可恶的，它竟然将启动分区弄到原来的数据盘上去了，真想不通啊，这实在令人难以接受。愣是把我干净的数据分区的根目录弄得乱七八糟，放上那么多个文件！Windows的分区，不得不让人不屑。&lt;br /&gt;&lt;br /&gt;最后，提供一个资源，比较丰富的相关信息，主题与本文相同，作为继续学习资料：&lt;br /&gt;&lt;a href="http://blog.linuxmine.com/9084/viewspace-1220"&gt;http://blog.linuxmine.com/9084/viewspace-1220&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/windowsubuntu.html' title='安装Windows后，恢复Ubuntu的启动菜单'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=5842531774037273151' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/5842531774037273151'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/5842531774037273151'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-6963438037340884232</id><published>2007-06-03T22:09:00.000+08:00</published><updated>2007-06-03T22:18:31.948+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='随笔'/><title type='text'>Sony VGN-S16C的驱动程序</title><content type='html'>悔不该，当初弄了这个Sony。得,这回，没带驱动光盘，玩完了，人家根本就不提供驱动下载。&lt;br /&gt;在网上七折腾，八折腾，下的声卡驱动不正确，光有图标，就不出声，气死人！！！&lt;br /&gt;最后，在美版网站，下了正确的驱动，但也花了一整天时间，郁闷透顶！&lt;br /&gt;若有谁也有这种烦恼，也可以考虑到美版网站，找配置相当的机型，下载对应的驱动，应该可以用的。&lt;br /&gt;哎，想不通啊，为什么中文版的，就不提供所有驱动下载？NND。&lt;br /&gt;&lt;br /&gt;VGN-S16：&lt;a href="http://esupport.sony.com/US/perl/swu-list.pl?mdl=VGNS170&amp;UpdateType=Everything"&gt;http://esupport.sony.com/US/perl/swu-list.pl?mdl=VGNS170&amp;UpdateType=Everything&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sony北美支持网站：&lt;a href="http://esupport.sony.com/"&gt;http://esupport.sony.com/&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/sony-vgn-s16c.html' title='Sony VGN-S16C的驱动程序'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=6963438037340884232' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/6963438037340884232'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/6963438037340884232'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-1431279427937442985</id><published>2007-06-03T18:50:00.000+08:00</published><updated>2007-06-03T18:57:28.905+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Asp'/><category scheme='http://www.blogger.com/atom/ns#' term='XML， XSLT'/><title type='text'>上传老代码：ASP同学录源码</title><content type='html'>简介：&lt;br /&gt;语言：Javascript（完全抛弃了VBScript）&lt;br /&gt;数据库：Access2000以上&lt;br /&gt;特点：ASP-&gt;XML + XLST-&gt;HTML&lt;br /&gt;对DB访问做了简单封装，全部使用Commond来进行数据操作，规避注入侵害。&lt;br /&gt;其它：&lt;br /&gt;1、由于JS操作二进制很困难，所以对图片的支持不是很好，上传个人相片时，有可能程序无法识别实际的图片高度，宽度，以致上传失败。&lt;br /&gt;2、由于纯粹是个人玩玩的，虽然当前自己在用，但后台管理依然没做，功能很不完善，仅供学习或继续开发用。&lt;br /&gt;&lt;br /&gt;下载地址：&lt;a href="http://download.csdn.net/source/188952"&gt;http://download.csdn.net/source/188952&lt;/a&gt;&lt;br /&gt;登录帐号：97-696 密码：jsj02</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/asp.html' title='上传老代码：ASP同学录源码'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=1431279427937442985' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1431279427937442985'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1431279427937442985'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-7644135181025516714</id><published>2007-06-03T08:52:00.000+08:00</published><updated>2007-06-03T08:55:13.204+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Asp.net'/><title type='text'>真遗憾,AutoCompleteExtender竟然不支持多列</title><content type='html'>自动填充,就我来说,最常用的应该是代码输入,这时,总是要求能显示代码所对应的名称,如此一来,AutoCompleteExtender就不适用了,它竟然不支持多列,令人有种想骂人的冲动!哎,枉费这么多时间来折腾,算了,不要它了.</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/autocompleteextender.html' title='真遗憾,AutoCompleteExtender竟然不支持多列'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=7644135181025516714' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/7644135181025516714'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/7644135181025516714'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-1529094902577539592</id><published>2007-06-02T20:10:00.000+08:00</published><updated>2007-06-02T20:42:59.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Asp.net'/><title type='text'>添加Ajax自动填充控件(AutoCompleteExtender)所遇到的问题</title><content type='html'>1、添加AutoCompleteExtender控件&lt;br /&gt;从ajax.asp.net上下载了最新的SampleWebSite，将Bin目录下的Dll中的组件添加到控件面板上。打开既存的网站，在其中一个页面添加了AutoCompleteExtender控件。&lt;br /&gt;2、添加ScriptManager控件&lt;br /&gt;按提示，自动填充控件需要信赖ScriptManager，但是当前页面并非Page页，而是自定义组件，如果直接添加在ascx页面上，相信Page页肯定不能再添加ScriptManager了，若其也需要添加此类依赖组件，则会产生冲突，所以我认为应当添加ScriptManagerProxy来替代。&lt;br /&gt;3、添加自定义的后台ServiceMethod&lt;br /&gt;4、运行。&lt;br /&gt;  在文本框输入字符后，未能出现下拉列表框，反复检查代码，未能发现任何问题。&lt;br /&gt;5、检查FireFox的Error Console，发现有脚本错误：&lt;br /&gt;   'Sys' is undefined.&lt;br /&gt;  定位代码：&lt;br /&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;    //&amp;lt;![CDATA[&lt;br /&gt;    Sys.WebForms.PageRequestManager._initialize('ctl00$Main$kdkd', document.getElementById('aspnetForm'));&lt;br /&gt;Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90);&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;5、安装FireBug后，发现有好几个URL请求发生了404错误，URI是当前网站根目录下的ScriptResource.axd&lt;br /&gt;6、能过以上，确定了是Web.config的配置问题，缺少axd类型的Handler&lt;br /&gt;7、能过查找，发现一个网上资料：&lt;a href="http://codebetter.com/blogs/jay.kimble/archive/2006/10/26/How-To_3A00_-Enable-Microsoft-Ajax-Beta-over-on-an-existing-site.aspx"&gt;http://codebetter.com/blogs/jay.kimble/archive/2006/10/26/How-To_3A00_-Enable-Microsoft-Ajax-Beta-over-on-an-existing-site.aspx&lt;/a&gt;&lt;br /&gt;  看了看，一来是E文，另外，有好向个step，感觉有点麻烦。于是决定新建一个“ASP.NET AJAX-Enabled WebSite”，将其自动生成的Web.config直接复制过来，并重新添加我自己的appSettings小节与connectionStrings小节。但位置似乎有讲究，紧跟着放在&lt;configuration&gt;后，产生编译错误：&lt;br /&gt;错误 38 Only one &amp;lt;configSections&amp;gt; element allowed per config file and if present must be the first child of the root &amp;lt;configuration&amp;gt; element. M:\LingsJob\src.new\Web.config 33 &lt;br /&gt;等错误及警告。改变位置，放到&amp;lt;/configSections&amp;gt;与&amp;lt;system.web&amp;gt;之间即可。&lt;br /&gt;8、重新编译并运行，在文本框输入时，成功产生XHR，但返回的结果却是错误提示：&lt;br /&gt;Unknown web method XXX.&lt;br /&gt;9、反复检查，未能找出原因，对比AJAX的Sample，索性也改成请求*.asmx再指向AppCode下的WebService类的Public方法。&lt;br /&gt;10、测试成功。&lt;br /&gt;&lt;br /&gt;以上是我在使用AutoCompleteExtender所遇的问题及解决措施，方法比较“粗鲁”，而没有去深究细节，个人认为，如非太闲，能实现，就真的是不想去多研究了，感觉做程序，已经是够累了...</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/06/ajaxautocompleteextender.html' title='添加Ajax自动填充控件(AutoCompleteExtender)所遇到的问题'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=1529094902577539592' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1529094902577539592'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1529094902577539592'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-4668455768360796830</id><published>2007-05-24T06:58:00.000+08:00</published><updated>2007-05-24T07:41:49.393+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>初用Ubuntu 7.04 -- 修改分区，添加Windows</title><content type='html'>想要做多系统，追回一个windows2003。&lt;br /&gt;先是为新系统分配一个磁盘分区。原来的分区为swap, /, /XXX，共三个，将最后一个分区一分为二，变为一个ntfs分区和一个fat32分区，重启系统后，使用ghost，将以前的windows2003备份恢复到新的ntfs分区中。&lt;br /&gt;原先只有一个ubuntu系统，grub被安装在磁盘的mbr中，重启后，进入ubuntu的过程中，提示出错，原因是最后一个分区被修改，导致挂载失败。系统没有直接进入图形的登录界面，而是以root身分，运行了一个shell。令人意想不到的是，输入"reboot"，竟然进入了图形登录界面，输入用户名密码，进入了gnome桌面，这对于没有多少命令记得的我来说，是最好不过了。&lt;br /&gt;&lt;br /&gt;进入系统后，为了能正常启动ubuntu和windows2003，需要修改/etc/fstab和/boot/grub/menu.lst这两个文件。&lt;br /&gt;fstab保存了系统自动挂载项目，打开后，将/dev/sda3注释掉（即原来的最后一个分区），再追加新的两个分区的挂载项。&lt;br /&gt;&lt;br /&gt;/dev/sda3       /ntfs   ntfs noauto,codepage=936,iocharset=cp936 0 0&lt;br /&gt;/dev/sda4       /mos   vfat defaults,codepage=936,iocharset=cp936 0 0&lt;br /&gt;&lt;br /&gt;这也是从网上参考的，没去查手册，/dev/sda3是第一个磁盘的第3个分区，现在装的是windows2003，这不需要挂载，所以加了noauto选项，否则进入到Gnome桌面后，会自动挂载，并在桌面上出现磁盘图标，不过加了这个选项后，在文件浏览器的位置面板上，还是能看到，但双击时，提示非root不能挂载。&lt;br /&gt;&lt;br /&gt;/dev/sda4是我分出来，作为两个系统共同使用的数据存储分区，使用了两个系统都能稳定可靠操作的fat32格式。使用目前的参数，却有一个问题，这个分区对于普通用户来说，是只读的，我只好用sudo来操作写数据，还勉强可以接受，就此也没再去细究。另外还有一个问题是，在ubuntu下将中文文件名的文件复制过去，到windows2003下，变成了乱码，估计也是参数不正确的原因，一般来说，不大会使用中文文件名，所以也就懒得管了。&lt;br /&gt;&lt;br /&gt;menu.lst这个文件的修改很顺利，因为它本身就有启动win98/2000的sample，复制过来，去掉注释即可，或再改一下title，启动时菜单等待时间等。。。&lt;br /&gt;&lt;br /&gt;title           Windows 2003&lt;br /&gt;root            (hd0,2)&lt;br /&gt;makeactive&lt;br /&gt;chainloader     +1&lt;br /&gt;&lt;br /&gt;另外几个选项，含有详细的说明&lt;br /&gt;## default num&lt;br /&gt;# Set the default entry to the entry number NUM. Numbering starts from 0, and&lt;br /&gt;# the entry number 0 is the default if the command is not used.&lt;br /&gt;#&lt;br /&gt;# You can specify 'saved' instead of a number. In this case, the default entry&lt;br /&gt;# is the entry saved with the command 'savedefault'.&lt;br /&gt;# WARNING: If you are using dmraid do not change this entry to 'saved' or your&lt;br /&gt;# array will desync and will not let you boot your system.&lt;br /&gt;default         0&lt;br /&gt;&lt;br /&gt;## timeout sec&lt;br /&gt;# Set a timeout, in SEC seconds, before automatically booting the default entry&lt;br /&gt;# (normally the first entry defined).&lt;br /&gt;timeout         3&lt;br /&gt;&lt;br /&gt;## hiddenmenu&lt;br /&gt;# Hides the menu by default (press ESC to see the menu)&lt;br /&gt;hiddenmenu&lt;br /&gt;&lt;br /&gt;最后一项，如果要默认显示菜单，我估计可能是：showmenu吧，可以试试，或是到网上确认一下。</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/05/ubuntu-704-windows_24.html' title='初用Ubuntu 7.04 -- 修改分区，添加Windows'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=4668455768360796830' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4668455768360796830'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4668455768360796830'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-1260553302895213299</id><published>2007-05-16T14:30:00.000+08:00</published><updated>2007-05-16T14:53:02.952+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>初用Ubuntu 7.04 -- 如何完成Windows中常见的设置(陆续添加中...)</title><content type='html'>同样是图形界面的操作，很多需求是类似的，但Ubuntu的Gnome毕竟与Windows还是有很大的区别，所以初用，总是难免不知道如何设置。&lt;br /&gt;这里将使用过程中遇到的，陆续添加进来，力求使用简单的图形程序来解决，而不是命令行，或是手工编辑配置文件。&lt;br /&gt;&lt;br /&gt;1、更改文件的默认打开程序&lt;br /&gt;  右键点击文件，选择弹出菜单中的“属性”－“打开方式”，选择自己的要定制的应用程序。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lingsmm.com/blog/uploaded_images/file-714606.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.lingsmm.com/blog/uploaded_images/file-714603.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;2、设置启动项目，在进入桌面后，自动运行指定的程序，同Windows中的“启动”菜单&lt;br /&gt;  选择系统菜单：系统－首选项－会话－启动程序－新建。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lingsmm.com/blog/uploaded_images/Screenshot-729698.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.lingsmm.com/blog/uploaded_images/Screenshot-729694.png" border="0" alt="" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/05/ubuntu-704-windows.html' title='初用Ubuntu 7.04 -- 如何完成Windows中常见的设置(陆续添加中...)'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=1260553302895213299' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1260553302895213299'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/1260553302895213299'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-393576537126802662</id><published>2007-05-16T10:35:00.000+08:00</published><updated>2007-05-16T11:38:21.375+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>［转摘］细说字体 Sans Serif 与 Serif</title><content type='html'>出处：&lt;a href="http://yx.takeback.net/serif-font.html"&gt;http://yx.takeback.net/serif-font.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;拜读了 LGJ Font Notes 的 Serif VS. Sans Serif &lt;sup&gt;注1&lt;/sup&gt; 一文，顿时胸中豁然开朗，终于明白了什么是Sans Serif字体，什么是Serif字体，什么地方应该使用Sans Serif字体，什么地方又应该使用Serif字体。这些问题，不管是对Web Designer还是普通用户，了解它我觉得还是十分必要的，比如在很多浏览器中就涉及相应的设置。&lt;br /&gt;&lt;br /&gt;  在西方国家罗马字母阵营中，字体分为两大种类：Sans Serif和 Serif，打字机体虽然也属于 Sans Serif，但由于是等宽字体，所以另外独立出 Monospace 这一种类，例如在Web中，表示代码时常常要使用等宽字体。&lt;br /&gt;&lt;br /&gt;  Serif的意思是，在字的笔画开始及結束的地方有额外的装饰，而且笔画的粗细会因直橫的不同而有不同。相反的，Sans Serif则沒有这些额外的装饰，笔画粗细大致差不多。如下图：&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lingsmm.com/blog/uploaded_images/serif-700343.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://www.lingsmm.com/blog/uploaded_images/serif-700334.gif" alt="" border="0" /&gt;&lt;/a&gt;字体对比图&lt;br /&gt;&lt;br /&gt;  可以看出，我们平时所用的Georgia、Times New Roman等就属于Serif字体，而Arial、Tahoma、Verdana等则属于Sans Serif字体。对中文而言，同样存在这两大种类，很明显，宋体、细明体（繁体中常用）等就属于Serif，而黑体、幼圆等则属于Sans Serif。&lt;br /&gt;  Serif 和 Sans Serif 的一般比较&lt;br /&gt;&lt;br /&gt;      * Serif的字体容易辨认，因此易读性较高。反之Sans Serif 则较醒目，但在行文阅读的情況下，Sans Serif 容易造成字母辨认的困扰，常会有来回重读及上下行错乱的情形。&lt;br /&gt;      * Serif 强调了字母笔画的开始及结束，因此较易前后连续性的辨识。&lt;br /&gt;      * Serif 强调一个word，而非单一的字母，反之Sans Serif则强调个别字母。&lt;br /&gt;      * 在小字体的场合，通常Sans Serif比Serif更清晰。&lt;br /&gt;&lt;br /&gt;  适用用途：&lt;br /&gt;&lt;br /&gt;  通常文章的內文、正文使用的是易读性较佳的 Serif 字体，这可增加易读性，而且长时间阅读下因为会以word为单位来阅读，较不容易疲倦。而标题、表格內用字则采用较醒目的Sans Serif字体，它需要显著、醒目，但不必长时间盯著这些字来阅读。&lt;br /&gt;&lt;br /&gt;  像宣传品、海报类，为求醒目，它的短篇的段落也会采用Sans Serif字体。但在书籍、报刊杂志，正文有相当篇幅的情形下，则应采用Serif字体来减轻读者阅读上的负担。在Web设计及浏览器设置中也应遵循此原则为是。&lt;br /&gt;&lt;br /&gt;实际应用&lt;br /&gt;&lt;br /&gt;在Firefox中（目前似乎只有Firefox有此功能），可以分别单独指定Sans Serif、Serif及Monospace的中西文字体，然而这个选项并未设置在工具菜单中，不过可以在Addressbar中键入about:config，然后在Filter中过滤font找到如下Preference Name：&lt;br /&gt;&lt;br /&gt;font.name.monospace.x-western&lt;br /&gt;font.name.monospace.zh-CN&lt;br /&gt;font.name.sans-serif.x-western&lt;br /&gt;font.name.sans-serif.zh-CN&lt;br /&gt;font.name.serif.x-western&lt;br /&gt;font.name.serif.zh-CN&lt;br /&gt;&lt;br /&gt;你可以依照上述Sans Serif、Serif及Monospace的原则来分别指定一种对应字体，按照W3C的CSS规则 &lt;sup&gt;注2&lt;/sup&gt; ，在font（或者font-family）的最后都要求指定一个Serif这样的Generic-family，避免客户端实在没有指定字体时使用本机上的Serif默认字体。&lt;br /&gt;&lt;br /&gt;由于Mozilla系的浏览器的这种特性，我们在CSS的font设定中，可以分别设定中西文字体来丰富版面，例如我们指定一组小字体（类似此文章标题下的日期、作者、类别）：&lt;br /&gt;&lt;br /&gt;font-family: Arial, PMingLiU, Sans-Serif;&lt;br /&gt;/*按照文章前面所讲，在小字体时Sans-serif更为清晰，所以随便指定一个Arial，&lt;br /&gt;而作为Serif的PMingLiU（明体）在小字体显示时也有不俗的外观。&lt;br /&gt;最后不忘指定一个Sans-Serif类。*/&lt;br /&gt;&lt;br /&gt;参考资料：&lt;br /&gt;&lt;br /&gt; 1. &lt;a href="http://blog.bs2.to/post/EdwardLee/3401"&gt;Serif VS. Sans Serif&lt;/a&gt;&lt;br /&gt; 2. &lt;a href="http://www.w3.org/TR/CSS21/fonts.html#propdef-font-family"&gt;Font family: the ‘font-family’ property&lt;br /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/05/sans-serif-serif.html' title='［转摘］细说字体 Sans Serif 与 Serif'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=393576537126802662' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/393576537126802662'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/393576537126802662'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4963495270953079363.post-4529591607065044310</id><published>2007-05-16T08:45:00.000+08:00</published><updated>2007-05-16T08:52:33.020+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>初用Ubuntu 7.04 -- 关于输入法</title><content type='html'>一直以来，对于Ubuntu输入法不甚了解，出了问题，不知道如何配置解决，直到找到这篇文章，才稍稍明白些。&lt;br /&gt;出处：&lt;a href="http://comcat.blog.openrays.org/blog-htm-do-showone-tid-58.html"&gt;http://comcat.blog.openrays.org/blog-htm-do-showone-tid-58.html&lt;/a&gt;（comcat 的BLOG）&lt;br /&gt;&lt;br /&gt;&lt;div class="pnlParagraph"&gt;解析环境变量XMODIFIERS/GTK_IM_MODULE&lt;br /&gt;作者: comcat   发表日期: 2006-09-05 18:28&lt;br /&gt;&lt;br /&gt;我们配置输入法时,都是习惯性的在输入法启动前导出环境变量:&lt;br /&gt;&lt;br /&gt;export XMODIFIERS=@im=SCIM&lt;br /&gt;export GTK_IM_MODULE=SCIM&lt;br /&gt;&lt;br /&gt;他们有何用意呢??&lt;br /&gt;&lt;br /&gt;我们常用的输入法有以下几种:&lt;br /&gt;&lt;br /&gt;1. XIM (X输入法, 所有 X 图形程序都是可用的)&lt;br /&gt;2. GTK immodule（GTK输入模块, 专给 GTK+2/Gnome 程序用的，GTK+ 1 不适用）&lt;br /&gt;3. QT immodule（QT输入模块, 专给 QT/KDE 程序用的）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;XMODIFIERS实际上是指定 X图形程序的输入法.&lt;br /&gt;&lt;br /&gt;GTK_IM_MODULE 则是指定GTK+2的程序默认所用的输入法模块.&lt;br /&gt;&lt;br /&gt;有关GTK+2 所有输入法模块都安装在 /usr/lib/gtk-2.0/2.4.0/immodules/ 目录下.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;关于他们之间的关系,我们有一个比较直观的经验就是, 当我们因为设置XMODIFIERS失误(比如在有些情况下scim小写),导致X输入法没法使用时,我们在gnome-terminal里单击鼠标右键,移动到 "输入法",再选择 "SCIM Input Method"时,我们在gnome-terminal下却是可以输入中文的. 当然前提是我们已经安装scim-gtk2-immodule包.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;一般情况下XMODIFIERS的优先级高于GTK_IM_MODULE ,即当我们同时设定这两个环境变量,在GTK+2的应用程序里优先使用的是XMODIFIERS指定的X输入法.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GTK immodule 比起 XIM 有很多好处：&lt;br /&gt;1. 不受 locale 限制&lt;br /&gt;2. 完全不用设定，随时可用，会自动调用 IM server&lt;br /&gt;3. 可以任意切换各种不同 IM server，随时可改,无需重启X.&lt;br /&gt;4. 真正支援游标跟随.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;但是因为 c++ 的兼容性问题使 scim-gtk2-immodule 跟许多程序相冲突,故而在目前,如果我们使用scim的话,还不能流畅享受到GTK 输入模块的种种妙处,只能使用 Scim for XIM.&lt;br /&gt;&lt;br /&gt;注：mozilla, firefox, thunderbird 等不是正规的 GTK+ 2，没办法用鼠标动态选择输入法. 如果你仅仅使用GTK immodule的话, 一定要使用GTK_IM_MODULE指定默认的GTK 输入模块.&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.lingsmm.com/blog/2007/05/ubuntu-704_16.html' title='初用Ubuntu 7.04 -- 关于输入法'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4963495270953079363&amp;postID=4529591607065044310' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lingsmm.com/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4529591607065044310'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4963495270953079363/posts/default/4529591607065044310'/><author><name>lingsmm</name><uri>http://www.blogger.com/profile/06086233866143198145</uri><email>noreply@blogger.com</email></author></entry></feed>