<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-692791959136808932</atom:id><lastBuildDate>Mon, 18 Jan 2010 17:33:37 +0000</lastBuildDate><title>ELNODE * 电子节点</title><description>Live in BitOcean.</description><link>http://elnode.com/sayo-nara/</link><managingEditor>noreply@blogger.com (土人)</managingEditor><generator>Blogger</generator><openSearch:totalResults>193</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-8803073003879641650</guid><pubDate>Mon, 18 Jan 2010 17:08:00 +0000</pubDate><atom:updated>2010-01-19T01:13:05.379+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>私语志</category><title>Closed</title><description>这个 blog 到现在已经 4 年了，不知道什么时候开始我自己都很少来看，更别说更新。随手翻翻，确实没有任何营养可言，所以我决定把这个 blog 关闭。其实我本想直接删除的，但这毕竟也是几年的痕迹，无论获得了什么亦或没有。&lt;br /&gt;&lt;br /&gt;WordPress 因此显得过于庞大，我也没兴趣照看一个“死去”的 blog，所幸丢给 Google 看管好了。如果哪天 Google 也倒了，那对于这堆数据而言，也算没白制造？呵呵。&lt;br /&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/692791959136808932-8803073003879641650?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2010/01/closed.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-140251649615522674</guid><pubDate>Mon, 18 Jan 2010 16:17:00 +0000</pubDate><atom:updated>2010-01-19T00:26:22.001+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>WordPress 转 blogger</title><description>1、导出 WordPress 的 xml 数据文件。&lt;br /&gt;&lt;br /&gt;2、申请 PIXNET 账号，将导出的 xml 文件汇入，再将数据以 MT 数据格式导出。&lt;br /&gt;&lt;br /&gt;3、去 &lt;a href="http://gaagaaga.blogspot.com/2008/09/blogger.html"&gt;http://gaagaaga.blogspot.com/2008/09/blogger.html&lt;/a&gt; 下载转换工具。把从 PIXNET 导出的数据用转换工具转为 Blogger 的格式。&lt;br /&gt;&lt;br /&gt;4、从 Blogger 后台汇入数据。发布。&lt;br /&gt;&lt;br /&gt;---split---&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/692791959136808932-140251649615522674?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2010/01/wordpress-blogger.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-4104445912984523078</guid><pubDate>Sun, 29 Nov 2009 04:29:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.039+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>Déjà vu</title><description>A new startup.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-4104445912984523078?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2009/11/deja-vu.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-1819642437637054158</guid><pubDate>Thu, 23 Jul 2009 18:32:00 +0000</pubDate><atom:updated>2010-01-19T00:40:02.609+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>左手使ubuntu 9.04</title><description>鼠标设置只能设置左右键，这是触控板的设置。&lt;br&gt;&lt;br /&gt;创建 /etc/hal/fdi/policy/shmconfig.fdi&lt;br&gt;&lt;br /&gt;sudo gedit /etc/hal/fdi/policy/shmconfig.fdi&lt;br&gt;&lt;br /&gt;复制下列内容到文档中：&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;deviceinfo version="0.2"&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;device&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;match key="input.x11_driver" string="synaptics"&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;merge key="input.x11_options.SHMConfig" type="string"&amp;gt;True&amp;lt;/merge&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;/match&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;/device&amp;gt;&lt;br&gt;&lt;br /&gt; &amp;lt;/deviceinfo&amp;gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br /&gt;保存并关闭。&lt;br&gt;&lt;br /&gt;在 $HOME/bin 目录中创建文档：&lt;br&gt;&lt;br /&gt;gedit $HOME/bin/gnome-left-hand&lt;br&gt;&lt;br /&gt;复制下列内容到文档中：&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;#!/bin/bash&lt;br&gt;&lt;br /&gt;# This script contains gnome settings for left-handed people&lt;br&gt;&lt;br /&gt;#swap tap settings from button1 to button3&lt;br&gt;&lt;br /&gt;synclient TapButton1=3&lt;/blockquote&gt;&lt;br&gt;&lt;br /&gt;保存并关闭。&lt;br&gt;&lt;br /&gt;在终端中输入以下命今:&lt;br&gt;&lt;br /&gt;chmod u+x $HOME/bin/gnome-left-hand&lt;br&gt;&lt;br /&gt;打开"系统-&gt;首选项-&gt;启动程序“，点击“添加启动程序”&lt;br&gt;&lt;br /&gt;在弹出的窗口中输入：&lt;br&gt;&lt;br /&gt;名称: Left-Hand script（或者别的什么）&lt;br&gt;&lt;br /&gt;命令：/home/yourusername/bin/gnome-left-hand&lt;br&gt;&lt;br /&gt;注释可以不填。&lt;br&gt;&lt;br /&gt;最后点击添加，注销后重新登即可。&lt;br&gt;&lt;br /&gt;鼠标的光标可以在&lt;a href="http://www.gnome-look.org"&gt;gnome-look&lt;/a&gt;上找到。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-1819642437637054158?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2009/07/ubuntu-904.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-9199444734600806706</guid><pubDate>Sun, 17 May 2009 01:32:00 +0000</pubDate><atom:updated>2010-01-19T00:42:57.368+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Blogger</category><title>Notube, No blogger, so we need to break wall</title><description>本文已失效&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-9199444734600806706?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2009/05/notube-no-blogger-so-we-need-to-break.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-8540580425996223477</guid><pubDate>Wed, 28 Jan 2009 23:00:00 +0000</pubDate><atom:updated>2010-01-19T00:40:32.669+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>高速更新Ubuntu</title><description>国内基本上没有快速的ubuntu源，原来还经常用台湾源，可是从去年10月以后台湾源也不行了。&lt;br /&gt;&lt;br /&gt;ubuntu中文wiki上推荐的，新立得自动选择的全部不行……这也许就是国内网络生态吧，至少网通和电信之间的距离和中国与国外的距离一般远 :sad:&lt;br /&gt;&lt;br /&gt;不扯了。最近琢磨出来一个点子，先用迅雷下更新包，然后再切换到 ubuntu 本地更新，双系统的好处就是这么多&lt;br /&gt;&lt;br /&gt;具体做法：&lt;br /&gt;&lt;br /&gt;用更新管理器更新的时候点取消，出来提示框显示未下载哪些更新包，把里面的内容全部复制，保存到一个空文档。给文档添加后缀 &lt;strong&gt;.lst&lt;/strong&gt;，切换到 Windows。&lt;br /&gt;&lt;br /&gt;打开迅雷，点击“文件-&gt;导入下载列表”，选择刚才的新建的文件，开始下载。&lt;br /&gt;&lt;br /&gt;下载完毕切回来，把所有更新文件放到一个文件夹里，在终端运行 &lt;strong&gt;find 更新文件的路径 -name *.deb &gt;&gt; list.sh&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;打开 list.sh，给每行前面加 &lt;strong&gt;sudo dpkg -i -E -G --refuse-&lt;/strong&gt;，注意命令和路径之间有空格&lt;br /&gt;&lt;br /&gt;在终端中运行 &lt;strong&gt;bash list.sh&lt;/strong&gt; 即可。&lt;br /&gt;&lt;br /&gt;可能出现部分包依赖关系不满足无法安装的问题，多运行几次就可以了。&lt;br /&gt;&lt;br /&gt;update: 别忘了最后在新立得中升级或删除损坏的包，然后再运行一次。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-8540580425996223477?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2009/01/ubuntu.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-6411513730472866909</guid><pubDate>Sat, 01 Nov 2008 01:21:00 +0000</pubDate><atom:updated>2010-01-19T00:41:12.940+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>Ubuntu 8.04 美化字体</title><description>这次回家没带本本，家里的台式机已经病入膏肓，光进入 WinXP 就要四五分钟，遂装 Ubuntu 自用。&lt;br&gt;&lt;br /&gt;Ubuntu 默认的中文字体实在是不怎么样，于是把华文黑体设置为默认的中文字体。设置方法如下：&lt;br&gt;&lt;br /&gt;1、下载华文黑体，将其复制到 /usr/share/fonts/ 的任意目录底下，我是自己新建了一个目录放乱七八糟的字体。&lt;br&gt;&lt;br /&gt;2、设置 STHeiti（华文黑体） 为首选中文字体：&lt;br&gt;&lt;br /&gt;&lt;pre&gt;$ sudo gedit /etc/fonts/conf.d/69-language-selector-zh-cn.conf&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;找到 &lt;code&gt;&amp;lt;string&amp;gt;AR PL UMing CN&amp;lt;/string&amp;gt;&lt;/code&gt; （反正就是插入排第一位的中文字体之上）添加 &lt;code&gt;&amp;lt;string&amp;gt;STHeiti&amp;lt;/string&amp;gt;&lt;/code&gt;&lt;br&gt;&lt;br /&gt;3、设置英文字体和渲染方式&lt;br&gt;&lt;br /&gt;打开 “系统－首选项－外观－字体” 面板，在字体选项里选择一款英文字体，如 Lucida Grande。然后在 “字体渲染” 选项中选择 “最佳形状” ，再在 “细节” 里面把平滑选择为 “次像素(LCD)” 。&lt;br&gt;&lt;br /&gt;4、另外我发现 Ubuntu 默认的中文字体似乎不是文泉驿正黑，而是一种貌似叫“明”的字体，总之歪歪扭扭的不太好看，我修改了一下中文字体的渲染顺序。就是修改 /etc/fonts/conf.avail/ 下的 40-generic.conf 和 65-nonlatin.conf 这两个文件，在 AR PL KairiM GB 和 AR PL KaitiM Big5 之前添加了 STHeiti（STHeiti是一种 Sans Serif 字体，只需修改 Sans Serif 部分即可）。&lt;br&gt;&lt;br /&gt;刷新字体缓存：&lt;br&gt;&lt;br /&gt;&lt;pre&gt;$ sudo fc-cache -f -v&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;最后重启一下X即可。&lt;br&gt;&lt;br /&gt;本文参考：&lt;br&gt;&lt;br /&gt;&lt;a href="http://www.linuxsir.org/bbs/showthread.php?t=289738%EF%BC%89"&gt;《字体设置小结》&lt;/a&gt; &lt;br&gt;&lt;br /&gt;&lt;a href="http://www.osxcn.com/ubuntu/stheiti-drawing.html"&gt;更好的华文黑体渲染效果&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://www.lazyard.com/node/48"&gt;Ubuntu 8.04 中的字体美化配置，修正前辈介绍&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://blog.donews.com/CNBorn/archive/2007/06/26/1180073.aspx"&gt;修改Ubuntu中字体渲染的顺序&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-6411513730472866909?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/10/ubuntu-804.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-1229957952190130921</guid><pubDate>Sat, 27 Sep 2008 17:42:00 +0000</pubDate><atom:updated>2010-01-19T00:39:22.978+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>英文 WinXP 玩魔兽争霸冰封王座简体中文版</title><description>最近喜欢上玩DotA，于是从某地搞到简体中文版的冰封王座，没想到不能在英文版本的 WinXP 运行，在 Google 上搜索半天找到解决方案。注意，由于要修改游戏安装文件，请提前做好备份以防万一。&lt;br&gt;&lt;br /&gt;打开 WarCraft 安装目录，找到 game.dll 文件，用 UltraEdit 或者类似的编辑器打开此文件，搜索 16 进制字符串“3D 04 08 00 00 74 2A 3D 04”，将 74 修改为 EB，然后保存退出。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-1229957952190130921?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/09/winxp.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-3584604717299244474</guid><pubDate>Tue, 19 Aug 2008 01:44:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.052+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>My Essential Firefox Extensions</title><description>&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4286"&gt;Access Flickr!&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Bypasses the flickr.com fliter in Iran &amp; ...&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865"&gt;Adblock Plus&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Get grid of ads.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2489"&gt;CacheViewer&lt;/a&gt;&lt;br&gt;&lt;br /&gt;This extenion is GUI Front-end of "about:cache". &lt;br&gt;&lt;br /&gt;Allows searching and sorting memory and disk cache files.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3235"&gt;CHM Reader&lt;/a&gt;&lt;br&gt;&lt;br /&gt;An extension make firefox support CHM file reading.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201"&gt;DownThemAll!&lt;/a&gt;&lt;br&gt;&lt;br /&gt;DownThemAll is all you can desire from a download manager: it features an advanced accelerator that increases speed up to 400% and it allows you to pause and resume downloads at any time.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Web Development Evolved.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2410"&gt;Foxmarks Bookmark Synchronizer&lt;/a&gt;&lt;br&gt;&lt;br /&gt;If you use Firefox on more than one computer, you'll want Foxmarks. Install Foxmarks on each computer, and it will work silently in the background to keep your bookmarks synchronized.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;Greasemonkey&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Allows you to customize the way a webpage displays using small bits of JavaScript. &lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/8182"&gt;SingletonFox&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Use only one instance of Firefox to handle all the URL requests.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/125"&gt;SwitchProxy Tool&lt;/a&gt;&lt;br&gt;&lt;br /&gt;A tool that allow you to manage and switch between multiple proxy configurations quickly and easily.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-3584604717299244474?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/08/my-essential-firefox-extensions.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-1460201911145880738</guid><pubDate>Thu, 07 Aug 2008 18:39:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.055+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>我的公钥</title><description>&lt;strong&gt;&lt;small&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----&lt;br&gt;&lt;br /&gt;Version: GnuPG v1.4.6 (GNU/Linux)&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;mQGiBEiaUa4RBACg8VXxnHN8vTyUpcqH9pPeUmY4xBqLXirqlSE++vDGmWPRFtGe&lt;br&gt;&lt;br /&gt;v+KU8TC1gH8Y7OO5j5oHrHZuJZOReTXpPfPG70T4psYW+jE3R6voiinYlt2/eEk1&lt;br&gt;&lt;br /&gt;CyKhuIC+W9jwKl4frKmvWo2cVhXJWriaF9MhwCv4oAs28IUwVFMx8DQRXwCg6Abn&lt;br&gt;&lt;br /&gt;8DRkqWINjSREL69ybAIUMuUD+wUM+rpKQUrAv4GK6TqXLSmjvVwPkAE+2CxS4He/&lt;br&gt;&lt;br /&gt;S/Tm84uhXqWWg26+oxLsPX4PY6nxeOg/oLCP8RdtbH/D1Vgb3YjFk/0X2/dUkEr8&lt;br&gt;&lt;br /&gt;dDHCNb3y9q36GfiHe8eVOKw6NVz4m09YaJKGREulxky0T5SeAsyI3yA5zT76hA/u&lt;br&gt;&lt;br /&gt;DGLOBACTx1fvbgRis4j6JSVFtnAWce9UZESCWrygHmqg0jOuTXjtD5RW7GAY3utl&lt;br&gt;&lt;br /&gt;8n493li9vNK9oQrwQeQJpKHi+jMIJ4SCEgyb5zr+y1hisvIScPUgb+LmeKEt179G&lt;br&gt;&lt;br /&gt;TlKV31uJljdJBeksZEXj23b6k5p/uVBVAmDghyVHwgp154FTILQfVmF5biBUc2Fp&lt;br&gt;&lt;br /&gt;IDxkZXJhbXgwMDdAZ21haWwuY29tPohgBBMRAgAgBQJImlGuAhsDBgsJCAcDAgQV&lt;br&gt;&lt;br /&gt;AggDBBYCAwECHgECF4AACgkQZOc0QlqRhmDFUwCeOWn0ScO9sOla1QzgcYkIq2k3&lt;br&gt;&lt;br /&gt;tCYAnRpLPxc1Ys6kvpOk4DGTro10/QR0uQENBEiaUa4QBAC+RKTwO9bG2C5Ij6+D&lt;br&gt;&lt;br /&gt;TdaUs+iE0JDp+TiDM2arayweB/UuRDn2aJen5WNgIgBh+I8xCEOB1bVLPFQvg2xc&lt;br&gt;&lt;br /&gt;3SmIAaJIw4DIfrHJywwOa0pYy0c4mXgV6IFLbGF1ID+HVavBvSeCVmoyx+Vw6fJz&lt;br&gt;&lt;br /&gt;YFUtF83pXaswFmMCKbXO5DyfUwADBgP8DeoydEj3ALSvCOeQV2+FnQmXDn9HIwgt&lt;br&gt;&lt;br /&gt;ILRUiRlBw0UHaFqVVWoubzmFg/hF7miSgETyOimStA4OEmAbjhowZ0FFdfG5g2ms&lt;br&gt;&lt;br /&gt;NOlJhOpw+RHOUSd5Cat0QvsPBilwVLx0FLkKT4HDrhFonTfDwiOgrq83+RfFkZxW&lt;br&gt;&lt;br /&gt;axrJRaEeORqISQQYEQIACQUCSJpRrgIbDAAKCRBk5zRCWpGGYEVsAKDKXCW7i0Ra&lt;br&gt;&lt;br /&gt;XrRhEGnPmMCGYr4ImQCeO3Y4NFwhB6JOLEHApj8kc/lK5Io=&lt;br&gt;&lt;br /&gt;=U0bF&lt;br&gt;&lt;br /&gt;-----END PGP PUBLIC KEY BLOCK-----&lt;/small&gt;&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;欢迎发送加密函件 :mrgreen: &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-1460201911145880738?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/08/blog-post.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-3110935199421766565</guid><pubDate>Thu, 31 Jul 2008 18:59:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.056+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 9</title><description>LOAD DATA INFILE&lt;br&gt;&lt;br /&gt;LOAD DATA INFILE "filename.txt" INTO TABLE tablename;&lt;br&gt;&lt;br /&gt;字段包括在单引号内，用 tab 键进行间隔，每行由 \n 换行，特殊字符用 \ 转义。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;存储引擎&lt;br&gt;&lt;br /&gt;MyISAM(MySQL 默认)&lt;br&gt;&lt;br /&gt;ISAM&lt;br&gt;&lt;br /&gt;MEMORY&lt;br&gt;&lt;br /&gt;MERGE&lt;br&gt;&lt;br /&gt;BDB&lt;br&gt;&lt;br /&gt;InnoDB&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;用 ALTER TABLE 语句转换，比如：&lt;br&gt;&lt;br /&gt;alter table tablename type=innodb;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;事务安全性的四个需求（ACID 原则）：Atomicity, Consistency, Isolation, Durability。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;MySQL 默认为 autocommit 模式。&lt;br&gt;&lt;br /&gt;mysql&gt;set autocommit=0;    ＃关闭 autocommit&lt;br&gt;&lt;br /&gt;在自动提交打开前提下开始事务：&lt;br&gt;&lt;br /&gt;mysql&gt;start transaction;&lt;br&gt;&lt;br /&gt;完成后手动提交：&lt;br&gt;&lt;br /&gt;mysql&gt;commit;&lt;br&gt;&lt;br /&gt;回滚：&lt;br&gt;&lt;br /&gt;mysql&gt;rollback;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;InnoDB 支持强制使用 foreign key。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建存储过程 create procedure&lt;br&gt;&lt;br /&gt;设置分隔符 delimiter ...&lt;br&gt;&lt;br /&gt;调用过程 call procedurename(@t);&lt;br&gt;&lt;br /&gt;查看该变量 select @t;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建函数 create function&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;局部变量 declare variablename&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;游标（cursor）&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;&lt;br&gt;&lt;br /&gt;&lt;img src="http://photo1.bababian.com/upload12/20080801/02C7192859EA56CE6CFFBA0678755A2E_500.jpg" title="control_structures_cursor" /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-3110935199421766565?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-9.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-2177087447504502543</guid><pubDate>Thu, 31 Jul 2008 04:30:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.059+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 8</title><description>EXPLAIN&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;id&lt;br&gt;&lt;br /&gt;select_type&lt;br&gt;&lt;br /&gt;table&lt;br&gt;&lt;br /&gt;type&lt;br&gt;&lt;br /&gt;possible_keys&lt;br&gt;&lt;br /&gt;key&lt;br&gt;&lt;br /&gt;key_len&lt;br&gt;&lt;br /&gt;ref&lt;br&gt;&lt;br /&gt;rows&lt;br&gt;&lt;br /&gt;Extra&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;关联优化器&lt;br&gt;&lt;br /&gt;$myisamchk --analyze &lt;em&gt;pathtomysqldatabase/table&lt;/em&gt;&lt;br&gt;&lt;br /&gt;$myisamchk --analyze &lt;em&gt;pathtomysqldatabase/*.MYI&lt;/em&gt;&lt;br&gt;&lt;br /&gt;$myisamchk --analyze &lt;em&gt;pathtomysqldatabase/*/*.MYI&lt;/em&gt;&lt;br&gt;&lt;br /&gt;mysql&gt;analyze table tablename1, tablename2, ...;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;将列创建为索引&lt;br&gt;&lt;br /&gt;ALTER TABLE table ADD INDEX (column);&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;表的优化&lt;br&gt;&lt;br /&gt;mysql&gt;OPTIMIZE TABLE tablename;&lt;br&gt;&lt;br /&gt;$myisamchk -r table&lt;br&gt;&lt;br /&gt;$myisamchk --sort-index --sort-records=1 &lt;em&gt;pathtomysqldatabase/*/*.MYI&lt;/em&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;备份数据库&lt;br&gt;&lt;br /&gt;1. LOCK TABLES table lock_type [, table lock_type ...]&lt;br&gt;&lt;br /&gt;锁定类型 READE ／ WRITE，备份之前必须执行 FLUSH TABLES。&lt;br&gt;&lt;br /&gt;&lt;del datetime="2008-07-31T12:50:59+00:00"&gt;＊＊＊＊＊＊＊没明白＊＊＊＊＊＊＊&lt;/del&gt;&lt;br&gt;&lt;br /&gt;&lt;strong&gt;以文件方式备份&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;2. $mysqldump --opt --all-databases &gt; backup-file.sql&lt;br&gt;&lt;br /&gt;再，停止 mysqld 进程，通过 --log-bin[=logfile] 重新启动进程。日志将记录备份后数据库发生的变化。&lt;br&gt;&lt;br /&gt;&lt;del datetime="2008-07-31T12:50:59+00:00"&gt;＊＊＊＊＊＊＊还是没明白＊＊＊＊＊＊＊&lt;/del&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;3. $mysqlhotcopy database /path/for/backup&lt;br&gt;&lt;br /&gt;再，停止 mysqld 进程，通过 --log-bin[=logfile] 重新启动进程。日志将记录备份后数据库发生的变化。&lt;br&gt;&lt;br /&gt;&lt;del datetime="2008-07-31T12:50:59+00:00"&gt;＊＊＊＊＊＊＊模模糊糊＊＊＊＊＊＊＊&lt;/del&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;恢复 MySQL 数据库&lt;br&gt;&lt;br /&gt;使用了方法 1，可将数据文件重新复制到安装 MySQL 的相同位置。&lt;br&gt;&lt;br /&gt;使用了方法 2，首先在导出文件中运行查询（？？？）从而将数据库重新构建至导出时的状态，接着将数据库更新至保存在二进制日志文件中的状态 —— $mysqlbinlog hostname-bin.[0-9]* | mysql&lt;br&gt;&lt;br /&gt;&lt;del datetime="2008-07-31T12:50:59+00:00"&gt;＊＊＊＊＊＊＊没明白＊＊＊＊＊＊＊&lt;/del&gt;&lt;br&gt;&lt;br /&gt;先 $mysql db_name &lt; backup-file.sql 将转储文件读回到服务器，然后再更新。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;设置主服务器和从服务器，略过&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;--eof--&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;p.s. &lt;del datetime="2008-07-31T13:06:29+00:00"&gt;这一章基本没怎么看懂 :sad:&lt;/del&gt;&lt;br&gt;&lt;br /&gt;&lt;del datetime="2008-07-31T12:45:40+00:00"&gt;p.s.2 貌似小站被墙了 :shock: &lt;/del&gt;&lt;br&gt;&lt;br /&gt;意外发现 WordPress 彩蛋，已经有人发现了 http://www.youtube.com/watch?v=gkF4WLSkz-U&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-2177087447504502543?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-8.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-6922629037950267508</guid><pubDate>Wed, 30 Jul 2008 17:04:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.062+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 7</title><description>抽象类(abstract class): 不能被实例化.&lt;br&gt;&lt;br /&gt;抽象方法(abstract operation): 只提供了一个方法的声明, 但是不提供方法的具体实现.&lt;br&gt;&lt;br /&gt;包含抽象方法的任何类自身必须是抽象的.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;使用 PEAR::DB 抽象类与数据库进行交互&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;安装: $sudo apt-get install php-pear&lt;br&gt;&lt;br /&gt;检查最新版本: $pear list-upgrades&lt;br&gt;&lt;br /&gt;升级 DB: $sudo pear upgrade DB&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;require_once('DB.php');    # set for using PEAR DB&lt;br&gt;&lt;br /&gt;$dsn = "mysqli://$user:$pass@$host/$db_name";     # set up DSN&lt;br&gt;&lt;br /&gt;$db = $DB::connect($dsn);    # connect to database&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;与实例化 mysqli 类连接数据库相比其实都差不多.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Prepared 语句向 MySQL 发送需要执行的查询模板, 再单独发送数据.&lt;br&gt;&lt;br /&gt;$query = "insert into table values(?, ?, ...)";&lt;br&gt;&lt;br /&gt;$stmt = $db-&gt;prepare($query);&lt;br&gt;&lt;br /&gt;$stmt-&gt;bind_param("sssd", $value1, $value2, ...);&lt;br&gt;&lt;br /&gt;$stmt-&gt;execute();&lt;br&gt;&lt;br /&gt;$stmt-&gt;affected_rows;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;除了 bind_param()[insert?] 还有 bind_result() [select?] 函数.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;注意! 一定要细心! 下面使用上面的变量, 拼写要正确, 不要想当然 :mrgreen: &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-6922629037950267508?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-7.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-3178739627743374895</guid><pubDate>Sun, 27 Jul 2008 19:04:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.063+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 6</title><description>设计 Web 数据库&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;列(Column), 又称域或属性.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;行(row), 也称为记录.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;表中的标志列称为键(key), 一个键可以由不止一列组成. 主键(primary key)和外键(foreign key). 考虑要建模的实际对象, 避免保存冗余数据(避免 3 种更新不规则: 修改, 插入, 删除). 使用原子列值, 每行的每个属性只储存一个数据. 确认所选择的键是唯一的, 要有意义, 事先考虑需要询问数据库的问题. 避免空属性的设计.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Web 数据库架构, 暂不讨论.&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;---------------------------------------------------------------&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建 Web 数据库(仅学习 MySQL 数据库)&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;登录 MySQL Monitor: $mysql -h hostname -u username -p&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;-h 希望连接的主机, 默认为本机(localhost)&lt;br&gt;&lt;br /&gt;-u 登录时的用户名(可以不是 root)&lt;br&gt;&lt;br /&gt;-p 提示需要密码&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建 root: &lt;br&gt;&lt;br /&gt;$mysql -u root&lt;br&gt;&lt;br /&gt;mysql&gt; SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd');&lt;br&gt;&lt;br /&gt;mysql&gt; SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd');&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;删除匿名用户:&lt;br&gt;&lt;br /&gt;mysql&gt; DELETE FROM mysql.user WHERE Host='localhost' AND User='';&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建数据库: mysql&gt; create database dbname;&lt;br&gt;&lt;br /&gt;(注意, 不能忘记分号!)&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建用户(最少权限原则): &lt;br&gt;&lt;br /&gt;GRANT privileges [columns]&lt;br&gt;&lt;br /&gt;ON item&lt;br&gt;&lt;br /&gt;TO user_name [IDENTIFIED BY 'password']&lt;br&gt;&lt;br /&gt;[REQUIRE ssl_options]&lt;br&gt;&lt;br /&gt;[WITH [GRANT OPTION | limit_options] ]&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;用户权限(PMWD3rd P164), 管理员权限(PMWD3rd P164), 特别权限(ALL, USAGE).&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;收回权限:&lt;br&gt;&lt;br /&gt;REVOKE privileges [columns]&lt;br&gt;&lt;br /&gt;ON item&lt;br&gt;&lt;br /&gt;FROM user_name&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;使用指定数据库:&lt;br&gt;&lt;br /&gt;mysql&gt; use dbname;&lt;br&gt;&lt;br /&gt;或者&lt;br&gt;&lt;br /&gt;$mysql -D dbname -h hostname -u username -p&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;创建数据库表, 略过. :mrgreen: &lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;---------------------------------------------------------------&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;插入数据(INSERT):&lt;br&gt;&lt;br /&gt;INSERT LOW_PRIORITY DELAYED IGNORE [INTO] table [(column1, ...)] VALUES (value1, ...);&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;注意: 会按顺序插入数据.&lt;br&gt;&lt;br /&gt;向指定列插入数据:&lt;br&gt;&lt;br /&gt;insert into tablename (column1, column2, ...) values ('value1', 'value2', ...);&lt;br&gt;&lt;br /&gt;或者&lt;br&gt;&lt;br /&gt;insert into tablename set column1='value1', column2='value2', ...;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;将脚本插入数据库:&lt;br&gt;&lt;br /&gt;$mysql -h host -u username -p &lt; name_insert.sql&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;---------------------------------------------------------------&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;获取数据(SELECT):&lt;br&gt;&lt;br /&gt;略过. :mrgreen: &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;UPDATE&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;创建后修改表:&lt;br&gt;&lt;br /&gt;ALTER TABLE&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;删除:&lt;br&gt;&lt;br /&gt;DELETE&lt;br&gt;&lt;br /&gt;DROP&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;--eof--&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-3178739627743374895?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-6.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-3324073140501649209</guid><pubDate>Sun, 27 Jul 2008 17:18:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.065+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>设技志</category><title>Dict in Ubuntu</title><description>最近经常上英文网站，本来一直使用 Baidu 内嵌的 Dr.eye，后来发现不太方便于是安装了 dict.cn 的网页划词。但这两天 dict.cn 的服务器似乎有问题，老是查不到词汇（而且使用在线划词会把 firefox 搞死……）。于是乎上网查了一下，发现在 Linux 上可以用 terminal 查单词，除了没发音该有的都有。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;实际上用的是 dict 开放协议。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;pre&gt;$sudo apt-get install dict #客户端 （在 /etc/dictd/dict.conf 注释掉服务器，让其只使用本地读字典）&lt;br&gt;&lt;br /&gt;$sudo apt-get install dictd #服务器端&lt;br&gt;&lt;br /&gt;$sudo apt-get dict-xdict dict-stardic dict-gcide #三个字典文件&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;最后使用 $dict word 就可以查单词了，退出按 Q 键。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;参考：&lt;a href="http://blog.cathayan.org/item/1715"&gt;http://blog.cathayan.org/item/1715&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;p.s. &lt;a href="http://www.vayn.cn/archives/211.html"&gt;今早遇到件特不愉快的事&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-3324073140501649209?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/dict-in-ubuntu.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-8981018807515609971</guid><pubDate>Fri, 25 Jul 2008 18:41:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.070+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 5</title><description>就着教程和 PHP Manual 磕磕绊绊把 PHP 的基础知识了解了一遍（只能算是了解）。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;没想到在最后又被卡了一下——Object Iteration。我始终没明白 Iterator 的处理机制，也没理解 IteratorAggregate 和 Iterator 的区别。在 Google 上大概查了下，貌似都是 Manual 的拷贝，所以只能先把这块儿放下。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;教程和 Manual 相比各有千秋吧，Manual 的实效性当然是最棒的，上面的例子也比教程的简单一些。不过 Manual 说到底还是有些干巴。另外语言也是一道不宽不窄的障碍，如果英语再好一些也许就可以放下教程，User Contributed Notes 更有人情味 :mrgreen: &lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;接下来还是打算跟着教程走（PHP Manual 上不会有 MySQL 手册吧 :grin: ），学习有关数据库的知识。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;就先这么计划了，也不知道这个速度快不快，我是觉得自己有点心急，嗯欲速则不达，心态平和。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;update：迭代器好像是把 foreach 的实现方法一步一步展示出来，只是不知道迭代器的流程怎么这么怪。&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-8981018807515609971?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-5.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-1505419695790949560</guid><pubDate>Thu, 24 Jul 2008 18:58:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.072+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 4</title><description>&lt;p class="fp"&gt;从下篇起不再使用首字下沉（first-letter 伪类应该不被 IE6 支持吧 :mrgreen: ）。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;$c = new myClass;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;在以前的 PHP 版本中可以这样创建一个新类并将该类的实例复制给 $c？这样做的坏处是“&lt;em&gt;假设对象是按引用传递对象的，尤其是在向函数传递对象时，这种行为可能会导致问题&lt;/em&gt;”，会导致什么问题？这句话貌似在逻辑上有问题，例子明明是按值传递对象的么。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;select_object()-&gt;display();&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;“select_object()方法返回了一个具有display()方法的对象”——“&lt;em&gt;属性可以与成员变量和特性这些词交替使用，操作也可以与方法交替使用&lt;/em&gt;”——我恨&lt;strong&gt;交替使用&lt;/strong&gt;。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;类的设计——看代码能明白，自己写又忘了 :sad: &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-1505419695790949560?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-4.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-6525536500328869714</guid><pubDate>Wed, 23 Jul 2008 20:24:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.074+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 3</title><description>&lt;p class="fp"&gt;我知道困难就在不远处，只是没想到来的这么快。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;遇到的第一个难点是“递归函数”，所谓递归函数就是函数自己调用自己，概念很简单，但要理解却是另外一回事儿了。十分感谢 fcicq 的指导，同时也感谢他告诉我一个新的天地 :mrgreen: &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;&lt;br&gt;&lt;br /&gt;update: &lt;br&gt;&lt;br /&gt;嗯，重看一遍果然有所收获，虽然还是不太明白面向对象的好处，但感觉对数据的使用确实方便不少。&lt;br&gt;&lt;br /&gt;原来很简单就可以实现对属性和操作的调用，昨天晚上咋就没明白捏。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;看来需要找一些基础理论来看看了 :grin: &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-6525536500328869714?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-3.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-3623989962762703014</guid><pubDate>Tue, 22 Jul 2008 18:49:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.075+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 2</title><description>&lt;p class="fp"&gt;虽然学习速度不是很快，但自己感觉还是有很大收获。PHP 的确不难学，当然到目前为止我只是学习了一些基本的函数，明天进入简单的函数编写单元。我想最大的问题是如何把这些函数记住，现在能想到的办法就是去查 manual。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;另外，vim 是一个很不错的编辑器，如果加上自动闭合、每段可以折叠就更好了~&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://www.bababian.com/phoinfo/2985BD7D56D6315B0EC42D11DFDF1F95DT"&gt;&lt;img src="http://photo1.bababian.com/upload12/20080723/2985BD7D56D6315B0EC42D11DFDF1F95_240.jpg" border="0" alt="VIM"/&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;p.s.原来正则表达式在某些时候比字符串函数效率要低啊，看来对什么都不可迷信 :wink: &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-3623989962762703014?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-2.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-8670128492866503459</guid><pubDate>Sat, 19 Jul 2008 02:16:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.077+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>第一个实例</title><description>&lt;a href="http://www.bababian.com/phoinfo/60F4491955CD3EF3D0F81128D43122C6DT"&gt;&lt;img src="http://photo1.bababian.com/upload12/20080719/60F4491955CD3EF3D0F81128D43122C6_500.jpg" border="0" alt="PHP in gVim"/&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;p class="fp"&gt;照着书上写的，第一步，不知道自己能走多远。&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-8670128492866503459?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/blog-post.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-4986380734877444397</guid><pubDate>Fri, 18 Jul 2008 20:03:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.078+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>PHP Day 1</title><description>&lt;p class="fp"&gt;以前总想一步登天，结果发现死的比较难看。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Vim算马马虎虎上手了，20 分钟前才学会复制。对自己的记忆力表示强烈质疑，或者是条件反射训练不够？&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;书是 05 年出的，照着书动手抄了第一个实例——Bob's Auto Parts，结果被 &lt;a href="http://www.fcicq.net/wp/"&gt;fcicq&lt;/a&gt; 同学&lt;a href="http://www.elnode.com/blog/first-instance-of-php.vn?cp=1#comment-1338"&gt;发现 XSS&lt;/a&gt;，我就无语了。从&lt;a href="http://jerrylovesrebol.blogspot.com/2008/06/it.html"&gt;小学到大学&lt;/a&gt;还有很长的路要走啊。&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-4986380734877444397?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/07/php-day-1.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-8466024089779730790</guid><pubDate>Sat, 14 Jun 2008 00:06:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.080+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>旧闻志</category><title>Opera 9.5</title><description>&lt;p class="fp"&gt;自我感觉 FF3 和 FF2 相比性能明显下降（可能是我设置的问题？）。拖动一个稍微长点的网页那叫一个卡，如果网页恰巧又使用了 &lt;strong&gt;background-attachment: fixed&lt;/strong&gt;，那就更是卡的一塌糊涂。也许正式版出现后这些问题能解决，不过在那之前，还是换一个选择好了。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;重新安装 FireFox2？太没意思了，干脆换个浏览器好了。OK，就 &lt;a href="http://www.opera.com"&gt;Opera&lt;/a&gt;。直接在 Opera 的网站上下载 deb 包（懒人的选择），双击安装。很快就安好了，当然中文字体难看是肯定的:(&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;一般的方法是修改 ~/opera/styles/user.css 文件，先创建它：&lt;br&gt;&lt;br /&gt;&lt;pre&gt;$ cd ~/opera/styles/&lt;br&gt;&lt;br /&gt;$ sudo touch user.css&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;然后在里面添加如下内容：&lt;br&gt;&lt;br /&gt;&lt;pre&gt;html, body, * {&lt;br&gt;&lt;br /&gt;font-family: "&lt;em&gt;Your Font&lt;/em&gt;" !important;&lt;br&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;把 &lt;em&gt;Your Font&lt;/em&gt; 改成要设置的字体，保存，重启 Opera。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;还是很难看？对了，Opera 现在多了个设置字体的地方 &lt;strong&gt;~/opera/ini/font.ini&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;找到 &lt;strong&gt;family:song|song ti|fangsong*=chinese-s good try-first&lt;/strong&gt; 这一行（大概在第 35 行），把冒号和等号之间的字体改成想要的字体。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;重启。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;update: 没有 Greasemonkey 的日子很难受，还是捡起 FF2 了……这篇笔记虽然没什么技术含量，但兴许以后能用到，就先留着吧。&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-8466024089779730790?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/06/opera-95.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-2817395583234458233</guid><pubDate>Wed, 11 Jun 2008 01:43:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.082+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>旧闻志</category><title>Google Reader的彩蛋</title><description>&lt;p class="fp"&gt;在 &lt;a target="_blank" href="http://www.wired.com"&gt;Wired&lt;/a&gt; 上看到 Google Reader 的一个小彩蛋，和大家分享一下。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;不知道有多少人玩过 Konami 的经典游戏《魂斗罗》，至少我周围的人小时候都对这个游戏乐此不疲，并且大家都知道魂斗罗的 30 条命秘籍—— &lt;strong&gt;↑ ↑ ↓ ↓ ← → ← → B A&lt;/strong&gt;。这条秘籍不仅出现在魂斗罗，Konami 的其他游戏也有这条“经典秘籍”。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;现在这条秘籍被 GR 继承了！只要在 GR 的首页输入这段 Konami Code，你就会发现 GR 的侧栏出现了一个小小忍者~&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a target="_blank" href="http://tu.6.cn/pic/show/id/27578"&gt;&lt;img src="http://i1.6.cn/tu.6.cn/71/48/58/9944b01cdb126a66122edd1657ccddca.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-2817395583234458233?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/06/google-reader.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-4985615076342600123</guid><pubDate>Sat, 07 Jun 2008 19:48:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.083+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>比特志</category><title>欧洲杯智能计分表</title><description>&lt;p class="fp"&gt;从&lt;a href="http://cs72.com"&gt;Crazy Software&lt;/a&gt;那儿看到的，一张很有意思的欧冠计分表。&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;img src="http://static.zooomr.com/images/5027613_d8c80e4c3b.jpg" alt="euro2008" /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;这张 Excel 计分表最有意思的地方在于只要你输入了每场比赛的结果，计分表会自动计算积分和排名。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;我把这张表转成 ODF 格式了，如果你和我一样使用 Linux 或者 OpenOffice，可以下载 ODF 格式的电子表，如果你使用的是 Excel，可以去&lt;a href="http://cs72.com/euro2008/"&gt;Crazy Software&lt;/a&gt;那里下载。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;ODF版下载地址：&lt;br&gt;&lt;br /&gt;&lt;a href="http://www.box.net/shared/gnalqles4g"&gt;http://www.box.net/shared/gnalqles4g&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-4985615076342600123?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/06/blog-post.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-692791959136808932.post-4032591224441560342</guid><pubDate>Fri, 06 Jun 2008 23:02:00 +0000</pubDate><atom:updated>2010-01-18T23:21:54.086+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>螺旋志</category><title>Accesskey</title><description>&lt;p class="fp"&gt;以前一直没有注意到 accessibility 的问题，最近开始关注各式各样的快捷键。从 windows 到 photoshop 再到 google reader，当我掌握那些快捷键之后，世界突然变得轻快起来。&lt;/p&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;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;strong&gt;磨刀不误砍柴功&lt;/strong&gt;。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;当然，今天的重点不是教各位各种 services 的快捷键，而是聊一聊超级链接的 accesskey 属性。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;经常上一些国外的网站，偶尔打开网页源代码的时候会发现这样的东东：&lt;br&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;a href="#content" accesskey="2"&amp;gt;Skip to main content&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;br&gt;&lt;br /&gt;基本上这是个正常的链接，除了多了个在国内网页上很少见到的属性 accesskey。当链接定义了 accesskey，可以使用快捷键(ALT+字母)访问，似乎用处不是很大。可是当我某次用网页做一本电子小说的时候，accesskey 这个属性让我了解到 accessbility 的重要性。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;不仅仅是在电子小说或者百科网页（比如从A－Z罗列内容的时候）可以用到 accesskey，在网页的菜单上也可以利用 accesskey，尤其是一些 SNS 网站，hardcore 级的用户需要这些看似无甚大用的功能。就我自己的经验，在国内网页上用的最多的快捷键应该是论坛的 Ctrl+Enter，哈哈。合理利用 HTML 现有属性显然比用 js 要好很多。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;accessbility 不是简单的强调一下，而是“随风潜入夜，润物细无声”，显然，在这点上国外要做的更好。&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;tip: 在 firefox 里可以使用光标浏览网页（按 F7 开启和关闭）。从今天开始减少蹂躏鼠标吧。&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/692791959136808932-4032591224441560342?l=elnode.com%2Fsayo-nara' alt='' /&gt;&lt;/div&gt;</description><link>http://elnode.com/sayo-nara/2008/06/accesskey.html</link><author>noreply@blogger.com (土人)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>