tag:blogger.com,1999:blog-63854353770088693502024-03-13T09:06:24.422+08:00晓月简陋的界面,不深刻的内容Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.comBlogger353125tag:blogger.com,1999:blog-6385435377008869350.post-22185277867842717922012-01-09T22:00:00.000+08:002012-01-10T01:31:57.440+08:00BlackBerry 9000<h2 id="toc_1.1"> 前言<br />
</h2><p> 之前用过多台黑莓,一直都是用最便宜的机型,这次的 9000 也是要淘汰的机型了。不过我是初次详细接触 5.0 的系统。<br />
</p><p> RIM 感觉要倒闭了,但是我对黑莓有想当的好感,希望能多坚持坚持。以前我对西门子的手机也有好感,可能是和我第一个手机是西门子的有关。西门子的手机业务后来卖给了明基,明基一年后宣布放弃。<br />
</p><p> 不过黑莓就是黑莓,我觉得如果单论短信和电话功能,我最喜欢黑莓,全键盘真是太棒了。但是,黑莓的软件不够丰富,系统也不是为了娱乐应用而开发的,所以在 iOS 和 Android 的打压下,似乎情况不太妙。<br />
</p><h2 id="toc_1.2"> 硬件和内存<br />
</h2><p> 9000 板载了一个 1G 的 TF 卡,真是神奇的设计思路。也可以再插一张。<br />
</p><p> RAM 大概 32M 左右,用 MemoryBooster 查看的应该就是这个。我的重启后在 13M 左右,有的时候也会用光。<br />
</p><p> ROM 大概 128M 左右,其中至少 70M 用来安装内核,用 Option - Memory 查看的 Application Memory 剩余大概是这个,刚安装完 ROM 剩余了 40M 左右(稍微精简了下)。因为 9000<br />
的内存真的很小,所以需要小心翼翼地安装软件。<br />
</p><p> 另外 Option - Security Options - Advanced Security Options - Memory Cleaning 应该是为了安全性擦除信息的,不是为了释放内存。<br />
</p><p> 至于 200W 的摄像头,我基本不用...624MHz 的处理器也马马虎虎。<br />
</p><h2 id="toc_1.3"> OS<br />
</h2><p> 5.0 OS 的中文字体感觉太好了,这是驱使我更换掉 8820 的主要原因。输入法感觉还成,就是没有快捷选字了,用轨迹球也不慢倒是。<br />
</p><p> 长按黑莓键可以进入后台程序列表,这个设计比之前只能用 Alt+返回 切换程序方便多了。<br />
</p><p> 短信的界面变了,变成会话模式了,习惯后感觉还不错。就是不能直接 R 回复不太习惯。通话记录的显示方式也变了,不过看起来也挺好的。<br />
</p><p> 主屏幕界面的 R 本来是闹钟,取消了,但是在 Clock 的界面里面 R 可以设置闹钟。<br />
</p><h2 id="toc_1.4"> Bug<br />
</h2><p> 一年多前我入手了这台 9000,当时最大的问题是铃声 bug,大概是设置铃声的时候会出现铃声和振动都失效的情况。目前 ROM 升级后修复。<br />
</p><p> 重启大量掉电的问题,似乎是 5.0 OS 普遍的问题,目前还没解决。听说 4.6 OS 正常。我现在重启的时候都是插着电源。<br />
</p><p> 断网问题,这个是黑莓系统普通存在的问题,网上的讨论非常多。现在有"黑莓断续膏"的软件,可以手动修复。<br />
</p><h2 id="toc_1.5"> 软件<br />
</h2><p> 安装软件不要太多, Application Memory 保持 10M 以上的剩余,给短信和通话记录留下地方。不然应该会出现自动删除短信的情况。<br />
</p><p> Google 放弃了 BlackBerry 上的 Gmail,但是软件还能从别的地方下到 2.0.7 版本的使用。<br />
</p><p> 本文无评论墙内镜像:<a href="http://arccos.github.com/blog/20120109-blackberry-9000.html" target="_blank">BlackBerry 9000</a>。<br />
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com4tag:blogger.com,1999:blog-6385435377008869350.post-28770344234251294712012-01-04T23:00:00.000+08:002012-01-05T23:01:54.702+08:00一些电子产品因为泰国洪水,买不了硬盘,只好随便买些电子产品。<br />
<br />
<h2 id="toc_1.1"> 欧姆龙 HEM-7201 血压计 379<br />
</h2>给妈妈买的,这款血压计外观比较漂亮,至于功能什么的,我觉得都差不多。所谓的礼品装就是附带了一个计步器。<br />
<br />
Link:<a href="http://www.360buy.com/product/311292.html">http://www.360buy.com/product/311292.html</a><br />
<br />
<h2 id="toc_1.2"> SanDisk CZ33 8GB U盘 59<br />
</h2>冲动消费的产物(其实下面每一个都是)。小巧是优势,写入速度不要指望了,大约 3.5M/s 。它作为车载或者 OTG 应用的配件倒是不错,因为插入后就很小了。<br />
<br />
Link:<a href="http://www.360buy.com/product/526928.html">http://www.360buy.com/product/526928.html</a><br />
<br />
<h2 id="toc_1.3"> 昂达 VX580T 8G MP4播放器 白色 379<br />
</h2>给妹妹买的,以前都是台电最便宜的,但是她说总死机。其实这玩意本来就容易死机倒是,台电我觉得已经是低端中好的了。不过既然指名点姓不要台电,那就买个昂达的吧。<br />
<br />
这款 MP4 的优势在于 800x480 的分辨率,触屏,非智能系统应该比较稳定。我简单试用了一下,触摸屏的手感当然不能要求太高,但是基本的视频播放功能还是可以用的,比较流畅。(我也没有进行极限测试,随便用了下。)<br />
<br />
Link:<a href="http://www.360buy.com/product/418572.html">http://www.360buy.com/product/418572.html</a><br />
<br />
<h2 id="toc_1.4"> iPad2 蓝牙键盘+皮套 125<br />
</h2>淘宝的山寨货,键盘手感一般,整体设计还不错,各个功能键齐全,和 iPad 很搭。<br />
<br />
Link:<a href="http://detail.tmall.com/item.htm?id=13053523639">http://detail.tmall.com/item.htm?id=13053523639</a><br />
<br />
<h2 id="toc_1.5"> iPazzPort 迷你蓝牙键盘 KP-810-10BTT 175<br />
</h2>压力大,所以乱买东西了。这款键盘功能齐全,有触摸板,有 iPad 的 Home 键,不过似乎没有虚拟键盘弹出的键。<br />
<br />
使用起来触摸板有点碍事,比较好的操作方式是左手在下、右手在上得斜握。<br />
<br />
Link:<a href="http://item.taobao.com/item.htm?id=9493852825">http://item.taobao.com/item.htm?id=9493852825</a><br />Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com1tag:blogger.com,1999:blog-6385435377008869350.post-81606921412789796992011-07-05T21:22:00.000+08:002011-07-05T21:22:53.858+08:00多次插拔网线才能连上网络的问题<p>
今天我新买的笔记本发现一个问题,插着网线开机可以连上网络,但是如果开机后才插上网线,就连接不上。我一开始以为是没有检测到网络自动把网卡关闭了,但是后来发现不是这样,因为有的时候多插拔几次也能连上。</p>
<p>
在网卡中设置电源管理或者禁用网卡重新启用,也能连上,但是重启后故障依旧。</p>
<p>
换了网线也是如此。</p>
<p>
我怀疑可能是路由器问题,于是换了网线,不接路由器,就正常了。</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com1tag:blogger.com,1999:blog-6385435377008869350.post-69861841751571416092011-05-14T11:24:00.000+08:002011-05-14T11:24:11.058+08:00Python 的 and-or 技巧<p>本文在 github 中的镜像:<a href="http://arccos.github.com/blog/20110514-python-and-or-trick.html">Python 的 and-or 技巧</a>。</p>
<h2 id="toc_1.1">布尔上下文</h2>
<p>
在 Python 中,可以在布尔上下文中使用几乎所有类型的表达式。通常的数据类型的“空值”都为 False。
</p>
<ul>
<li>
<code>None</code> 为假值
</li>
<li>
数值 <code>0</code>,<code>0.0</code> 等为假值
</li>
<li>
空串 <code>""</code> 为假值
</li>
<li>
空列表 <code>[]</code> 为假值
</li>
<li>
空元组 <code>()</code> 为假值
</li>
<li>
...
</li>
</ul>
<h2 id="toc_1.2">逻辑演算</h2>
<p>
在 Python 中,and 和 or 按照下面的规则执行布尔逻辑演算:
</p>
<p>
对于 and,从左到右运算:
</p>
<ul>
<li>
如果所有表达式都为真,则 and 返回最后一个表达式。
</li>
<li>
否则,and 返回第一个假值。
</li>
</ul>
<p>
对于 or,从左到右运算:
</p>
<ul>
<li>
如果有一个为真,则 or 立刻返回该值。
</li>
<li>
否则,or 返回最后一个表达式。
</li>
<li>
or 找到第一个真值后会忽略计算剩余的表达式。
</li>
</ul>
<p>
注意到:返回的并不是布尔值,而是其中某个参与比较的表达式值。
</p>
<h2 id="toc_1.3">and-or 技巧</h2>
<p>
在 C 中,表达式 <code>bool ? a : b</code> 表示当 bool 为真时结果为 a,其它值则为 b。在 Python 中可以使用 and-or 实现类似的功能。
</p>
<pre>
((test and [x]) or [y])[0]
</pre>
<p>
在这个 Python 表达式中,如果 test 为真,则返回 x,否则返回 y。
</p>
<p>
这里使用列表将 x 和 y 括起来是为了防止 x 为空值的情况,比如想要实现:“如果 test 为真,则取 0,如果 test 为假,则取 1”,如果不将 0 括起来则为:
</p>
<pre>
(test and 0) or 1
</pre>
<p>
不论 test 是真是假,都只会返回 1。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-39052281675809093612011-05-12T23:40:00.000+08:002011-05-14T04:44:34.354+08:00不同操作系统中的行结束符<h2 id="toc_1.1">行结束符</h2>
<p>
一个文本文件是由行组成的,本文所说的就是行与行之间用来表示新行(newline)的间隔,一般称作断行符(link break)或者行结束符(end-of-line, EOF)。
</p>
<p>
由于历史的原因,不同的操作系统用来表示换行的字符不同,这就给跨操作系统编辑文件带来不便。
</p>
<h2 id="toc_1.2">操作系统中的差异</h2>
<p>
使用下面的 Unicode 标准定义的符号:
</p>
<ul>
<li>
LF: Line Feed, U+000A, '\n'
</li>
<li>
CR: Carriage Return, U+000D, '\r'
</li>
</ul>
<p>
不同的操作系统使用的行结束符:
</p>
<ul>
<li>
Windows 使用 CR+LF,也就是 '\r\n'
</li>
<li>
Linux/Unix 系列使用 LF,也就是 '\n'
</li>
</ul>
<p>
特别的,目前 Mac OS X 是基于 Unix 的,所以行结束符也是 LF。只有 v9 之前 Mac OS 才是用 '\r'。
</p>
<h2 id="toc_1.3">历史</h2>
<p>
为什么对“另起一行”的处理有这样的差异,是因为早期的电传打字机(teletype)从左至右打完一行的时候,需要给打印机头重新移回左边界的时间,在一个字符的时间内,不足以让打印机头移动到正确的位置,这样会影响下一个字符的打印。所以就需要在一行结束的时候额外传递一个 CR 字符令装置 carriage 归位。
</p>
<p>
进一步阅读:<a href="http://en.wikipedia.org/wiki/Newline">Wikipedia: Newline</a>。
</p>
<h2 id="toc_1.4">对不同换行符的处理</h2>
<p>
一般操作系统的运行库决定了文本文件的换行格式,在一个平台上使用另一种换行符的文件通常会有问题。大部分编辑器会自动识别换行符类型,并带有换行转换的功能。
</p>
<p>
比如某些 FTP 软件在进行文本传输的时候会对换行符进行转换(这样修改了原文件)。
</p>
<p>
Python 使用 "<a href="http://www.python.org/dev/peps/pep-0278/">Universal Newline</a>" 处理这个问题。在以文本方式 open() 的时候,会对换行符进行识别并一致处理成 '\n',在文件写入的时候,也只要 write('\n') 即可,Python 会根据操作系统自动处理。有关文档:
</p>
<ul>
<li>
<a href="http://docs.python.org/library/stdtypes.html#file.newlines">http://docs.python.org/library/stdtypes.html#file.newlines</a>
</li>
<li>
<a href="http://docs.python.org/library/functions.html#open">http://docs.python.org/library/functions.html#open</a>
</li>
</ul>
<p>本文 github 中的<a href="http://arccos.github.com/blog/20110512-newline.html">镜像</a>。</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-84931806266790063162011-05-12T15:46:00.000+08:002011-05-14T04:44:35.212+08:00HTML5 的本地存储<p>可以访问<a href="http://arccos.github.com/blog/20110508-html5-local-storage.html">本文镜像</a>。</p>
<h2 id="toc_1.1">为什么要引入本地存储</h2>
<p>
这个问题也是在做 Web App 的时候自然注意到,HTTP 的传输是无状态的(stateless),所以为了给用户个性化体验就必须在客户端存储一些数据。比如,网站的登录过程,事实上就是利用 Cookie 在客户端保存了用户的验证信息,在用户每一次发送 Request 的时候都会在 Header 部分加入 cookie 的信息,从而让网站服务器得知用户已经登录,并提供用户所需的信息。
</p>
<h2 id="toc_1.2">Cookie 的缺点</h2>
<p>
Cookie 已经实现了在客户端储存资料,不过它有几点不足:
</p>
<ul>
<li>
Cookie 的设计限制了大小为 4KB;
</li>
<li>
Cookie 每次 HTTP Request 都要传输一遍,并且通常不加密传输(可以使用 SSL 加密);
</li>
<li>
Cookie 通常存储了用户的浏览行为和隐私相关的信息,有可能造成安全隐患。
</li>
</ul>
<h2 id="toc_1.3">快速入门</h2>
<p>
如今知名的浏览器都已经支持了 HTML5 Storage,不过对国内来说 IE 的版本才是最大的问题(IE8 以上才支持)。并且包括 iPhone 和 Android 在内的手机浏览器也支持。
</p>
<p>
以下文章可以快速了解 HTML5 Storage 的特性和用法:
</p>
<ul>
<li>
<a href="http://html5.litten.com/html5-web-storage-using-localstorage-and-sessionstorage-objects/">HTML5 Web Storage, Using localStorage and sessionStorage Objects</a>
</li>
<li>
<a href="http://php-html.net/tutorials/html5-local-storage-guide/">HTML5 Local Storage – Complete Guide</a>
</li>
</ul>
<h2 id="toc_1.4">localStorage 和 sessionStorage</h2>
<p>
localStorage 可以认为不主动清除则一直存在。
</p>
<p>
sessionStorage 则是和会话相关,刷新页面不会清除,但是关闭浏览器则会清除。所以浏览器崩溃后,通常 sessionStorage 还可以存在。
</p>
<h2 id="toc_1.5">更多参考</h2>
<ul>
<li>
<a href="http://dev.w3.org/html5/webstorage/">W3C: Web Storage</a>
</li>
<li>
<a href="http://diveintohtml5.org/storage.html">The Past, Present & Future of Local Storage for Web Applications</a>
</li>
<li>
<a href="http://www.smashingmagazine.com/2010/10/11/local-storage-and-how-to-use-it/">Local Storage And How To Use It On Websites</a>
</li>
<li>
一个例子:<a href="http://hacks.mozilla.org/2009/06/localstorage/">saving data with localStorage</a>
</li>
</ul>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-68420725796701662002011-05-12T15:28:00.000+08:002011-05-14T04:44:35.318+08:00使用 VimWiki 进行知识管理<p>
可以访问:<a href="http://arccos.github.com/blog/20110512-use-vimwiki-for-knowledge-managment.html">本文镜像</a>。
</p>
<h2 id="toc_1.1">为什么要用 VimWiki</h2>
<p>
个人 Wiki 个性化的程度比较严重,所以千挑万选总也找不到好用的。Vim 虽然学习成本很高,但是我想既然已经到使用个人 Wiki 了,应该不会在乎这点投资。
</p>
<p>
Wiki 形式的文档好处在于易于写作,纯文本的管理,即使是源文件也有很强的可读性,可以方便地导出规范的 HTML 文件。
</p>
<p>
Wiki 的格式也很多,比如 Markdown,reStructuredText 等等,这都被称作 <a href="http://en.wikipedia.org/wiki/Lightweight_markup_language">Lightweight markup language</a>,在这个维基词条上也有些简单的对比。<a href="http://www.subspacefield.org/~travis/">Travis</a> 的主页有文章对这些做了总结(文章提到,选择太多,很难总结完善)。我个人依照我的喜好选择了 <a href="http://code.google.com/p/support/wiki/WikiSyntax">Google Code Wiki</a>,其实我也觉得,如果不是写书,其实哪种 Wiki 形式都一样,重要的是开始写,选一个喜欢的语法和实现,并且保证用的人比较多的就行。
</p>
<p>
说了半天还没有介绍 <a href="http://code.google.com/p/vimwiki/">VimWiki</a>,它是一个 Vim 的开源插件,采用类似 Google Code Wiki 的语法,所有的文档组织就是利用 Wiki 格式的纯文本。结合 Dropbox 可以轻松实现同步。我觉得 Wiki 就不用版本控制了,简单在文中标注下必要的更新说明就是。
</p>
<h2 id="toc_1.2">Quick Start</h2>
<p>
为了快速上手,下面各种操作不多做解释,官方文档能提供所有的解答,也有<a href="http://code.google.com/p/vim-script-cn/source/browse/trunk/doc/vimwiki.cnx">中文文档</a>。另外,这个软件的更新较快,网上的一些设置介绍可能过时,需要及时查阅官方的文档。
</p>
<h3 id="toc_1.2.1">下载安装</h3>
<p>
方法一:下载 .vba 是 Vimball 的安装文件,打开后使用 <code>:so %</code> 即可。
</p>
<p>
方法二:也可以直接使用 zip 文件,解压复制到相应路径。
</p>
<p>
注意:Vim 中涉及到的路径最好不要含有比较特殊的字符(比如空格,括号等),以免出现各种错误。
</p>
<h3 id="toc_1.2.2">配置 vimrc</h3>
<p>
安装官方文档的要求,需要确保 vimrc 文件中有如下的设置:
</p>
<pre>
set nocompatible
filetype plugin on
syntax on
</pre>
<p>
另外就是要设置个人 Wiki 库的存放地址和 HTML 模板:
</p>
<pre>
let g:vimwiki_list = [{'path': 'D:\Link\Wiki\wiki\',
\ 'path_html': 'D:\Link\Wiki\html\',
\ 'template_path': 'D:\Link\Wiki\templates\',
\ 'template_default': 'def_template',
\ 'template_ext': '.html',
\ 'css_name': '',
\ 'auto_export': 1,
\ 'diary_link_count': 5}]
</pre>
<p>
注意到有关模板我使用的是 Dev (2010-12-27) 版本,所以和当前的 1.1.1 的设置有所不同。
因为 VimWiki 可以定义 css,所以有一个 css_name 的设置,应该是保存在文档中定义的 css(不确定)。
</p>
<h3 id="toc_1.2.3">使用</h3>
<p>
这部分请看<a href="http://xbeta.info/vimwiki.htm|善用佳软的的">VimWiki 介绍</a>中第二节。
</p>
<p>
在 Vim 中,键入 <leader>ww 三个键即可进入第一个 Wiki 库的首页(index.wiki)。其中 <leader> 一般是 \ 字符。
</p>
<p>
在首页中就可以随意输入了,使用类似 NewPage 之类的驼峰词可以创建新页面。如果需要创建中文词条可以使用: <code>[[中文]]</code> 或者 <code>[[文件名|中文描述]]</code> 的方法。
</p>
<p>
<tab> 和 <shift> + <tab> 键可以在词条之间跳转,<enter> 可以进入词条进行编辑,<backspace> 可以返回。注意到,通常情况下 VimWiki 会自动存盘。
</p>
<p>
使用 :Vimwiki2HTML 和 :VimwikiAll2HLML 可以导出 HTML 格式的网页。
</p>
<h2 id="toc_1.3">Tips</h2>
<ul>
<li>
可配置多个 Wiki 库。访问第二个 Wiki 库可以键入 2<leader>ww,或者通过 <leader>ws 进行选择。
</li>
</ul>
<ul>
<li>
Wiki 中的 CamelCase 会自动转换为 link,按 <enter> 即可进入编辑,按 <backspace> 回到前一页。
<pre>
" 不需要驼峰英文成为维基词条
let g:vimwiki_camel_case = 0
</pre>
</li>
</ul>
<ul>
<li>
可以设置在存档后自动更新 HTML 文件,在 vimwiki_list 中的 auto_export 属性。
</li>
</ul>
<ul>
<li>
可以建立 to-do list,只不过默认的快捷键 <C-space> 和中文输入法切换的热键冲突,可以重新映射。比如下面映射成 <leader>tt,
<pre>
:map <leader>tt <Plug>VimwikiToggleListItem
</pre>
</li>
</ul>
<ul>
<li>
方便的日记功能,使用 <leader>w<leader>w 就可以开启一个以今天日期命名的 diay page,还可以结合 <a href="http://www.vim.org/scripts/script.php?script_id=52">Calendar</a> 插件,以日历形式显示日记。
</li>
</ul>
<h2 id="toc_1.4">发布</h2>
<p>
通过 HTML 模板,可以把 VimWiki 当做 Blog 和个人 Wiki 的发布工具使用,而且文档编辑简单,内容和样式分离,非常省心。
目前一个选择是使用 <a href="https://github.com/">github</a> 的 <a href="http://pages.github.com/">Pages feature</a>。本来 github 是代码托管服务,但是允许作者发布静态的网页作为主页。
</p>
<p>
对此不再赘述,可以参考:
</p>
<ul>
<li>
<a href="http://blog.hotoo.me/use-vimwiki-for-blog.html">用 Vimwiki 写博客</a>
</li>
<li>
<a href="http://wiki.ktmud.com/tips/vim/ways-to-sync-vimwiki.html">同步 vimwiki 到线上的各种方法</a>
</li>
</ul>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com1tag:blogger.com,1999:blog-6385435377008869350.post-66041100057133982522011-05-05T00:23:00.000+08:002011-05-05T00:23:51.519+08:00Google App Engine 应用程序局域网调试<p>
有的时候需要在局域网内调试 GAE 的程序,比如调试手机应用程序的时候,需要通过 WiFi 访问应用程序。
</p>
<p>
默认的 dev_appserver 使用的地址是 localhost,如果需要其他计算机也能访问,则需要再启动的时候加入参数 <code>--address= ...</code> 设置服务器的主机地址,使用 <code>0.0.0.0</code> 则允许本地主机访问和主机名访问。参见:<a href="http://code.google.com/appengine/docs/python/tools/devserver.html">The Python Development Server: Command-Line Arguments</a>。
</p>
<p>
如果使用的是 GAE Launcher,则是在 Application Settings 中在 Extra Command Line Flags 中加入:
</p>
<blockquote>
<pre>
-a 0.0.0.0
</pre>
</blockquote>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-46251279452659737612011-04-30T11:44:00.000+08:002011-04-30T11:44:38.201+08:00用什么来管理参考文献?<p>
本文的经验建立在理科专业并使用 LaTeX 的基础上。文献管理的软件和服务很多,我没有用过此类的收费软件,免费的也没有全部仔细试用。因为这类软件或服务的个性化太强,很难找到一个能完全符合我的喜好。本文可以当做一个对最知名的免费的文献管理软件和服务的简要介绍和主观评价。
</p>
<p>
首先是我个人的偏好:
</p>
<ul>
<li>不能处理中文虽然不好,但是无所谓。
</li>
<li>如果带有自动获取题录的功能,最好能指定来源,获取准确和全面。
</li>
<li>理想中的情况是在有多个数据来源的情况下,可以供用户选择较优的。
</li>
<li>只要支持 BibTeX 就行。
</li>
<li>社会化功能无所谓。
</li>
<li>注释功能无所谓。
</li>
<li>能否自动获取全文无所谓。
</li>
</ul>
<p>
在线的文献管理服务:
</p>
<ul>
<li>
<a href="http://www.citeulike.org/">CiteULike</a>:Richard Cameron 编写的文献管理服务。个人感觉比较好,支持网站众多,支持 tag,导入和导出都比较方便,分享功能也很完善。可以从 CrossRef
更新数据,并且提示哪些条目更改了。只不过操作不是很方便,批量处理比较麻烦。 或许研究下 API 比较好。
</li>
<li>
<a href="http://www.connotea.org/" target="_blank">Connotea</a>: 后台是 Nature 出版集团,当然这个也说明不了什么,因为 Elsevier 旗下的 <a href=
"http://www.2collab.com/" target="_blank">2collab</a> 就停止服务了。Connotea 要求文献来源必须提供 <span style=
"FONT-FAMILY: 'WenQuanYi Micro Hei Mono', 'WenQuanYi Micro Hei', 'Microsoft Yahei Mono', 'Microsoft Yahei', sans-serif">
URI、DOI、PMID、ASIN</span> 这类索引性信息,但是比如早期的期刊文献并没有 DOI 数据。这对其所能管理的文献有很大的限制。
</li>
<li>
<a href="http://xinkexue.net/" target="_blank">新科学</a>:国内的服务,用的人不多,但是功能还不错,对于国内的数据库的文献导入支持得比较好。
</li>
</ul>
<p>
注:<a href="http://www.crossref.org/" target="_blank">CrossRef</a> 的信息也不全是正确的,作者名称通常只是简称。此外使用 CrossRef 搜索题录应该是收费的,虽然可以利用 CiteULike
的数据吧...
</p>
<p>
完全本地的文献管理软件:
</p>
<ul>
<li>
<a href="http://jabref.sourceforge.net/" target="_blank">JabRef</a>:开源。只能管理 BibTeX 格式,需要 Java 运行环境,界面不好看。但这是我最终一直在使用的软件,它的自动生成 BibTeX
key 的功能非常好用,另外自动查找相关文件(需要靠文件名)的功能也很有用。论功能,JabRef 完全可以满足我的所有需求。
</li>
<li>
<a href="http://bibus-biblio.sourceforge.net/" target="_blank">Bibus</a>:开源,还是 Python 开发的。但是经历了一次安装失败,就没用...
</li>
</ul>
<p>
下面介绍的是在线服务和本地客户端整合的软件,主要功能集中在客户端,网络服务上可以备份数据并提供社会化功能:
</p>
<ul>
<li>
<a href="http://www.zotero.org/" target="_blank">Zotero</a>:是 Firefox 的一个扩展,现在也有独立运行版本(感觉是基于 Firefox 剪裁的)。对惯用 Firefox
的人来说,这是非常好的一个选择。它通过 DOI 等信息获取题录应该也是来自 CrossRef。我非常喜欢的是它能标出获取的数据来源,虽然并没有提供多个来源的选择。
</li>
<li>
<a href="http://www.mendeley.com/" target="_blank">Mendeley</a>: 非常适合在积攒了大量的 PDF 文件时处理,因为这个软件可以识别 PDF 中包含的 citation
信息(虽然准确率一般般)。也可以通过 DOI 数据从 CrossRef (我猜测)获取信息。可惜不方便的地方在于,它从 DOI 更新数据的时候,没有提示就直接覆盖了之前的数据。往往获取的数据并不太好,这点使我的体验不是太好,期待之后的改进。此外,Mendeley
可以导入 CiteULike 的数据。
</li>
</ul>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-71370470015028677662011-04-28T21:16:00.001+08:002011-04-30T00:48:12.067+08:00锂电池的保养和使用<p>
买了新手机、新笔记本的同学往往特别在乎电池,尤其是笔记本,喜欢用各种软件去查看电池损耗。本文希望能简要介绍一些我能所知的锂电池使用和保养的方法。物理也不怎么好,以下所有论断都是查阅资料后的判断。
</p>
<p>
首先说一下常见的误区:
</p>
<ol>
<li>满充满放三次,充电12小时,刻意满充满放,都是对锂电池有损害的方式,这些是对镍氢电池的。
</li>
<li>充满了继续插着对锂电池没什么用,充电电路会停止充电的。
</li>
<li>边充电边工作对锂电池影响不大,之所以不建议边充边工作的原因是高温环境对电池损害大。除非笔记本天天不关温度较高,去掉电池可能有点好处。一般情况下,边用边用没有问题。
</li>
</ol>
<p>
正确的使用方法是随时充电,想用就用,避免过放。当然,如果有可能,遵循下面的使用方式会有些好处:
</p>
<ol>
<li>浅充浅放。也就是说放电和充电的程度都不要太大,所以在条件允许的情况下随手充电就是很好的习惯。
</li>
<li>避免高温。
</li>
<li>避免过充和过放。因为锂电池都有保护电路,所以一般情况下,这种情况也不会发生。除非长时间不用,可能就过放了。
</li>
</ol>
<p>
长时间不用怎么办?
</p>
<ol>
<li>电量在 40%~60% 的程度保存。
</li>
<li>尽量在低温环境下保存。
</li>
</ol>
<p>
此外涉及到充电器的问题:
</p>
<ol>
<li>现在很少有把电源管理 IC 放在充电器上,一般都在锂电池上或者设备上。所以充电器只要电压符合,就可以充电。
</li>
<li>至于充电器的标称电流,代表充电器的输出功率,使用多少是由电源管理 IC 控制的,所以功率大小只会影响充电快慢,使用超过设备所需的大功率充电器充电,也只会依据设备的电源管理 IC 的设置进行充电,通常也不会充得快。特别指出,用 iPad 的 10W 充电器给
iPhone 充电完全没有问题。Apple 网站和下面提供的参考资料中都有回答和验证。
</li>
<li>充电器电压一般都高于 5V,浮动 0.2V 没有关系,由电源管理 IC 控制提供给电池的电压。
</li>
<li>尽量不用座充,这是因为市面上的万能充不怎么好。详细介绍见下面的参考资料。
</li>
</ol>
<p>
iPad 充电要求比较高,一方面是需要 10W 功率的充电器才能合理的时间充电(否则就太慢了),另一方面,Apple 的充电器的 USB 接口额外有一个识别电阻。没有这个识别电阻,可能会让 iPad 显示"不在充电"。
</p>
<p>
参考资料如下:
</p>
<ul>
<li>
<a href="http://www.buchmann.ca/default.asp" target="_blank">Battery in a Portable World</a> by Mr. Isidor Buchmann
</li>
<li>
<a href="http://zh.wikipedia.org/wiki/%E9%94%82%E7%A6%BB%E5%AD%90%E7%94%B5%E6%B1%A0" target="_blank">Wiki: 锂离子电池</a> 储存电量和温度对损耗的影响
</li>
<li>
<a href="http://blog.sina.com.cn/gumphe" target="_blank">阿苷的博客</a> 专业的介绍和评测
</li>
<li style="LIST-STYLE-TYPE: none">
<ul>
<li>
<a href="http://blog.sina.com.cn/s/blog_53a811100100grof.html" target="_blank">存储方法对锂离子电池寿命影响的研究</a>
</li>
<li>
<a href="http://blog.sina.com.cn/s/blog_53a811100100grod.html" target="_blank">充放电方法对锂离子电池寿命影响的研究</a>
</li>
<li>
<a href="http://blog.sina.com.cn/s/blog_53a811100100p3z7.html" target="_blank">你在充电的时候玩手机吗?</a>
</li>
<li>
<a href="http://blog.sina.com.cn/s/blog_53a811100100gsiq.html" target="_blank">论部分手机电池座充的危害性</a>
</li>
</ul>
</li>
<li>
<a href="http://www.mk2leo.com/?p=2355" target="_blank">究竟IPAD的10W充电器能否给IPHONE4充电 大测试</a>
</li>
<li>
<a href="http://bbs.weiphone.com/read-htm-tid-1476458.html" target="_blank">揭露ipad只能用原装充电器的秘密</a>
</li>
</ul>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-58477155670170819582011-04-28T21:15:00.001+08:002011-04-29T00:43:38.814+08:00插线板选购经验<p>
这个东西到底怎么叫呢?插线板,接线板,插排,电源转换器好多名字,英文怎么说?不管了。
</p>
<p>
为什么要选择一个好的插线板,两点考虑:用电安全和保护电器。
</p>
<p>
先说结论:
</p>
<ul>
<li>不在乎的用什么都行。
</li>
<li>想用便宜没有过多要求的,用航嘉、公牛、可来博等等你听说过的牌子。
</li>
<li>需要防浪涌等功能,就选择:APC、贝尔金、突破(保镖系列),不建议用航嘉、秋叶原、飞利浦等带防浪涌的型号,既然都在乎了,就买个好点的。比如飞利浦的低端电源做工不错,带防雷击的型号就比较差。
</li>
<li>特有钱没地方花的,选择电源净化器、UPS等。
</li>
</ul>
<p>
国内大部分插线板(包括品牌的),假冒伪劣(比如不接地线)的就不说了,即使能用的,在做工和用料上往往也不令人满意。设计和用材不好的插线板,自然有安全隐患。
</p>
<ol>
<li>线缆铜丝截面积至少应为 3×0.75 平方毫米。如果截面积太小,插线板所接电器功率过大时,线就会发热。有的插线板线很粗,但是里面铜丝确很细。
</li>
<li>内部走线美观,做工精致。用铜排的当然最好,如果都用焊接方式的,走线美观也不错。一体式内芯有利于减少内阻,避免虚焊,从而降低损耗。
</li>
<li>插口使用磷青铜接触弹片。使用其他材质的,多次插拔后夹持力就下降了。
</li>
<li>使用银触点开关。普通铜触点开关容易引起电弧,也就是开关过程中看见的火花。煤气泄漏不要按开关就是说这个。
</li>
</ol>
<p>
插线板除了基本功能以外,还有些个性化要求,比如我喜欢:
</p>
<ol>
<li>每个插孔独立开关的。
</li>
<li>插孔间距大。
</li>
<li>插孔有插入保护,可以防止儿童误插或者异物落入。
</li>
<li>高阻燃、耐冲击外壳。
</li>
</ol>
<p>
插线板骗我们钱,自然是从更高级的功能上来的:
</p>
<ol>
<li>过电压保护,过载保护,漏电保护:这些从功能上有了应该不会骗人,算是比较好检测的保护,区别就在于敏感度和承载量,不过一般有这些功能的区别不会太大。
</li>
<li>浪涌保护,防雷击保护:别想着能防直击雷,对于感应雷和普通浪涌,目前的插线板都是使用压敏电阻 MOV 和放电管来保护的。区别在于用的 MOV 好不好。其实不用太在意浪涌,家用大型电器设计的时候一般都考虑了保护功能(如果没有说明电器不好...)。
</li>
<li>滤波功能:防浪涌可以削弱尖峰,但是对于电源中的噪声应该无能为力。如果有一个 EMI 滤波器自然更好。如果对音响的性能比较敏感,就多花些钱买电源净化器吧。当然了,<a href=
"http://www.douban.com/group/topic/15959089/" target="_blank">真正的HIFI烧友只用雅鲁藏布江的水电</a>,我作为外行就不讨论了。
</li>
</ol>
<p>
泡泡网有一个系列文章:<a href="http://www.pcpop.com/doc/0/497/497376.shtml" target="_blank">帮助你了解电源</a>,可以看看。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-23431054464537292242011-04-28T11:13:00.003+08:002011-04-28T11:13:38.711+08:00伪造 Referer 与外链<p>
总不能在标题上就写如何盗链吧...
</p>
<p>
Referer 是 HTTP Header 的一个字段(<a href="http://en.wikipedia.org/wiki/HTTP_referrer" target="_blank">wiki</a>),包含在向服务器发送的请求中,记录访客的来源URI。
</p>
<p>
很多网站用辨识 Referer 来防止盗链,比如百度、网易相册。以猫扑上的图片为例,如果我们直接访问,或者外链到其他网站,就会显示不出。因为猫扑的服务器判断 Referer 信息,发现不是来自自身网站,就对该请求予以拒绝。
</p>
<p>
如果网站的防盗链措施只是基于 Referer 判断,可以通过伪造 Referer 来实现外链。比如 Firefox 的 RefControl 扩展。但是依据安全性(<a href=
"http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method" target="_blank">The setRequestHeader() method</a>),不能要求用户浏览器发送伪造的
Referer。
</p>
<p>
所以早期使用 JavaScript 利用 XMLHttpRequest 设置 Referer,早期的 Flash 通过 ActionScript 构造请求的时候,自定义 Referer 的方法现在都被禁止了。
</p>
<p>
既然不能强制客户端设置 Referer,那只能通过服务器中转的方式,因为在服务器端就可以构造自定义请求了。
</p>
<p>
对于网站管理者来说,防止盗链的方式就很多了,比如利用 Session,判断 IP,生成随机码等等方式...
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-39060967022243640172011-04-28T03:10:00.000+08:002011-04-28T03:10:19.083+08:00Python 中的 exec 和 eval<p>
Python 允许通过 exec 和 eval 执行以字符串形式表示的代码片段,这体现了动态语言的特性。利用这种特性,可以让代码变得更灵活。不过一直以来,我对这种"动态"的用法不太"适应",因为:
</p>
<ol>
<li>让代码引入了某些不安定因素,这些代码片段执行后可能对全局造成影响。尤其是当使用全局名称空间时,它的作用范围难以控制。
</li>
<li>对执行的效率也有影响。Python 在执行代码之前也是要预编译的,比如 pyc 文件。因此这些字符串形式的代码片段在执行的时候,需要编译的过程,哪怕是使用 compile 编译后重复使用,第一次的编译是难以避免的。
</li>
</ol>
<p>
很多人也倾向于避免这种用法,比如:<a href="http://stackoverflow.com/questions/1087255/use-of-eval-in-python" target="_blank">Use of eval in
Python?</a>。
</p>
<p>
不过最近在写网站解析程序的时候,发现为了实现目的,最好的解决方案还是引入这种字符串形式的代码片段。这个问题具体描述是:我需要对一系列类似的网站进行解析。整体的解析过程是相似的,所以我建立了一个框架,使用 XML 保存每个站点各自的解析属性,通常是 XPath
和正则表达式。但是某些内容各个网站的表现方式有很大差别,这些内容想要解析出来只使用 XPath 和正则表达式是不够的。因此对这些例外情形,最好的方式是直接利用代码片段来计算。
</p>
<p>
此外,现有的项目,比如 Genshi 之类模板引擎也采用了类似的处理手段。
</p>
<p>
用户使用程序如果能执行自己的代码片段,这往往是有潜在危险的,尤其是在网络服务中,因此我们在使用的字符串代码片段的时候,要严格限制名称空间。对这个问题的讨论,可以参考 <a href=
"http://lybniz2.sourceforge.net/safeeval.html" target="_blank">Using eval() safely in python</a>,这里做一个简要的总结。
</p>
<p>
默认的,eval 和 exec 所运行的代码都位于当前的名称空间中,它们也可以接受一个或两个可选字典参数作为代码执行的全局名称空间和局部名称空间。
</p>
<p>
eval 的用法最严格的限制(注意对 builtins 的处理)是:
</p>
<blockquote>
<pre xml:space="preserve">
eval(user_func,{"__builtins__":None},{"x":x,"sin":sin})
</pre>
</blockquote>
<p>
如果希望允许使用某些变量和函数,可以采用下面的方法:
</p>
<blockquote>
<pre xml:space="preserve">
eval(user_func,{"__builtins__":None},{"x":x,"sin":sin})
</pre>
</blockquote>
<p>
有关使用 exec 和 eval 的注意事项,文章 <a href="http://lucumr.pocoo.org/2011/2/1/exec-in-python/" target="_blank">Be careful with exec and eval in
Python</a> 进行了细致的讨论。首次编译是不可避免的,使用预编译后重复使用可以提高效率。另外使用局部空间因此可以加快变量的查询速度,所以执行会快。
</p>
<p>
下面还有几个需要注意的地方:
</p>
<p>
能避免使用的时候,还是应该采用其他方式,比如转换字符串的时候,使用 int() 而不是 eval(),因为如果转换的这个字符串是用户输入的,危险的情况是 eval() 会执行恶意输入的条命令。详细的解释参考:<a href=
"http://blog.donews.com/soarnil/archive/2007/02/28/1134203.aspx" target="_blank">Python之eval()函数的危险</a>。
</p>
<p>
尽量避免使用 eval 来获取变量名,想要实现动态变量名,使用 globals(),locals() 以及 vars()。
</p>
<blockquote>
<pre xml:space="preserve">
a = 123
s1 = locals()['a']
s2 = vars()['a']
print s1, s2
</pre>
</blockquote>
<p>
类似的情况也出现在 JSON 格式的解析上,参见 <a href="http://stackoverflow.com/questions/1083250/running-json-through-pythons-eval" target=
"_blank">Running JSON through Python's eval()?</a> 。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-15187197702936035352011-03-14T21:24:00.002+08:002011-05-06T00:23:56.288+08:00ReadTxT 开源到 Google Code<p>
ReadTxT 是基于 Google App Engine
编写的阅读网络小说的工具,初衷是为了使阅读网络小说更方便而设计的。它支持常见的网络文学站点,比如:起点中文网、纵横中文网、飞库电子书等。用户可以在登录后统一管理各个站点自己喜欢的书目,并保存阅读书签,实现一站式阅读。主要的特点有:
</p>
<ul>
<li>支持多个主流小说网站。
</li>
<li>自动抓取最新的章节。
</li>
<li>无广告。
</li>
<li>支持手机阅读,并针对 iPhone 优化。
</li>
<li>提供下载和订阅功能。
</li>
</ul>
<p>
项目主页:<a href="http://code.google.com/p/bookreader/">http://code.google.com/p/bookreader/</a>
</p>
<p>
部署需要对 Google App Engine 有一点点了解,如果只是希望使用,可以直接进入:
</p>
<ul>
<li>ReadTxT:<a href="http://readtxt.appspot.com/">http://readtxt.appspot.com/</a>
</li>
<li>更多的介绍可以参见 <a href="http://readtxt.appspot.com/help" target="_blank">ReadTxT 的帮助</a>
</li>
</ul>
<p>
可以保证上述部署的应用是最新版本,除非调整数据库结构,书签信息不会清空(有的时候清空了数据...请不要怪我)。 需要补充说明的是,本人不负责使用代码或者应用本身所带来的网络小说版权问题。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-74508209475073086402011-02-21T23:03:00.000+08:002011-02-21T23:03:05.613+08:00有关联通186的3G号码发彩信的问题<p>
我用 iPhone4,号码是联通的186号段。出问题时候的症状是只能收不能发,无法调出设置中的"蜂窝数据网络"。彩信在手机上未显示发送异常,那些未成功送达的彩信也没出现在账单上。
</p>
<p>
一句话解决:应该是联通自身的问题,过一天就好了。
</p>
<p>
下面是折腾记录,谨献给我浪费的时间。
</p>
<ol>
<li>能不能发彩信和是否越狱无关。
</li>
<li>联通网络已经设置好了 APN 信息,所以苹果觉得没必要显示出来。如果是移动用户,可能需要设置 APN,这个是由手机系统里面的 /System/Library/Carrier Bundles/ 决定的。
</li>
<li>针对2,如果没有"蜂窝数据网络"的设置,就别折腾了,折腾出来你会发现内置的数据也是对的。
</li>
<li>我觉得没用的所谓技巧:拔卡再插卡;电话号码去掉+86。
</li>
<li>可能有影响,我不确认的设置:"短信"设置是否带主题,彩信是否写文字。(能发我就没管了,懒得试,一条0.9元)
</li>
</ol>
<p>
可能有用的链接,不同系统、不同运营商不一样,仅供参考:
</p>
<ul>
<li>
<a href="http://bbs.imobile.com.cn/thread-tid-9461448-userId-781218.html" target="_blank">越狱解锁后让丢失的"蜂窝数据网络"重新回来之五种方法</a>
</li>
<li>
<a href="http://bbs.weiphone.com/read-htm-tid-541225.html" target="_blank">解除在iTunes里更新了联通运营商配置信息后对于Apn修改的锁定100%成功办法</a>
</li>
</ul>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-79611724867327095182011-01-29T07:58:00.000+08:002011-01-29T07:58:56.561+08:00iPad 维修记录<p>
家里一个 iPad 开机花屏,出现一条条的彩道,无法操作,于是拿去维修了。
</p>
<ol>
<li>在官方网站预约 Genius Bar,恰好有人取消预约,选择了一个中午的时间。
</li>
<li>到了苹果店确认了预约,然后等待。只带了机器,没带括发票、充电器、数据线。
</li>
<li>准时开始,负责接待的是一个漂亮姑娘,记得名字是 Endless。
</li>
<li>先问我是不是破解了,我说没有。问我是否摔了,我说没有。问我是否进水了,我说没有。我说就是放着就坏了。
</li>
<li>问我是否有重要资料,我说没有,然后连电脑重置,过程正常,但是问题依旧。
</li>
<li>判断是内部硬件问题。(虽然我早知道...我觉得是屏线问题)
</li>
<li>给我换了一台,我打开后是4.2.1版本,外观有一点点无关紧要的瑕疵。
</li>
<li>再次更换了一台,系统是3.2.2。
</li>
<li>签字,说保修3个月,但是我本身质保也是3个月后过期。
</li>
</ol>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-37018844106699730772010-11-22T19:04:00.000+08:002010-11-22T19:04:56.058+08:00买了一个手写板(文明笔-春秋篇-精致快捷型)<p>
这个,买了京东上最便宜的一个手写板...
</p>
<p style="TEXT-ALIGN: center">
<a href="http://picasaweb.google.com/lh/photo/oKn2BOKOx18Q6q82sWMnVmMD9lhdX6BWWSFyJlFIkso?feat=embedwebsite"><img src=
"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjswN4P-Xg67kMCYqLeq31PFjKwBoMO_8w4x89bq7tBDMrTkiL3F9hYhqYbVXqtTQ7qLis-kRmVdn2RPyBZbu69nlu0yU9NJHW6HjCuN4BzT5eN7JtaMkTD7NGlvGYymJUt2ZhIyJW2asoC/s800/wenmingbi.jpg" height="345" width="423" /></a>
</p>
<p>
对于这样一个价位的压力板,能用就行了,反正不是我用...本文用它书写,累死我了!
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-46493436489097193332010-10-07T01:12:00.000+08:002010-10-07T01:12:31.399+08:00要规律生活 -- 我的 Google Reader 记录<p>
关心我的人总会提醒我要生活规律,嗯,是的。
</p>
<p>
Google Reader 提供近30天的阅读统计,黄色的柱形表示那个时间点阅读的条目数。
</p>
<p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPsbfWRrr22HKOfwXRPHRv5BXwKtP1_OW8rkuV_We0GoYrVOEegFWhYnVum9BF0P9pVWxxS-y5VDFjpuhjT65vRfNqFF8PFD7FqXXoR5rYaRqfj060n03tK_SQzjCElYvfOjas4bDH5a0V/s800/Reader_20101006.png" style=
"TEXT-ALIGN: center; DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" />
</p>
<p>
凌晨1点到2点是阅读最多的时刻,我倒是奇怪早上7点怎么也会那么多。下午时间基本都在老实干活,所以没有阅读数目。晚上五点有个小高峰,是因为要吃饭了吗...?晚上8点到12点通常在电脑前,但是一般都会有别的事情,直到凌晨。
</p>
<p>
数据统计如下:
</p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>
From your 129 subscriptions, over the last 30 days you read 6,297 items, clicked 267 items, starred 0 items, shared 8 items, and
emailed 0 items. Since December 23, 2006 you have read a total of 248,289 items.
</p>
</blockquote>
<p>
我记得2007年初的时候,利用 Google 搜索记录<a href="http://arccos.blogspot.com/2007/02/google.html" target="_blank">统计了我各个时刻搜索的次数</a>,也有按小时统计的结果:
</p>
<p>
<img src=
"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi169TbbI0RXhXL2fq6HFm0q3rRCgGtMvI1Pn1sNwwXD6DNybH38NN9Y-plYVydbVi8O_EWqUCuVhns3lk1ASuLC1ER-Q8phc10z45L1v3OU8TJ1Jmw7W-ln3TrzZgqUi4Qll1miceeSnbr/s800/googlehis_2.png" style=
"TEXT-ALIGN: center; DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" width="500"/>
</p>
<p>
这个…似乎说明我这几年没什么长进。凌晨三点是我的黄金时间啊。早上九点到十二点估计不是睡觉就是吃饭。下午六点也是吃饭吧。嗯…规律生活规律生活。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-33308396801584283952010-08-06T03:27:00.002+08:002010-08-06T03:27:41.422+08:00飞利浦 GoGear Spark 4GB MP3<p>
入手了一个纯音的 MP3,飞利浦 GoGear Spark 4GB,型号 SA2SPK04K/93,370 元。
</p>
<p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8doQr3tQbw1PztTafy7DUxeuCs9y0I7NhWYQrN8Qy8a96kV21Ad6ASA8EiOvPhklso_SwHmaHCW50VG35rXik3MQR-Al3ajXwXOMWqZILMD9h9GoMLKQmvc43KQfdZ_oSjXEfkmxeuDB8/s800/GoGearSpark_1.jpg" height="450" width="600" />
</p>
<p>
国内似乎只有黑色的(型号末尾为 K,银色的应该为 S),到手后是这个样子:
</p>
<p>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCI4JUGqTlthor9aEDJWDeMSo8NottF8laz-rSosj0TLf0UyK3tgxY8nVjd__fTyRRfGoINaPRvFjB4y8cHUzt-RFhZK85M2eXdFUyGezmZ8JZz2hQBtC7bCTvvVqlm8DwVfneTjy05Dj/s800/GoGearSpark_2.jpg" height="480" width="600" />
</p>
<p>
特点和网上说的差不多:
</p>
<ul>
<li>背夹太容易坏。
</li>
<li>我的这个返回按键(屏幕左键)似乎不太灵敏,不过不影响使用。
</li>
<li>屏幕相比同品牌类似型号要好很多。
</li>
<li>可以按照文件夹播放。
</li>
<li>播放列表需要用软件 SongBird 编辑。
</li>
</ul>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com1tag:blogger.com,1999:blog-6385435377008869350.post-70165972411630001482010-07-20T00:27:00.001+08:002010-07-22T10:05:12.432+08:00TortoiseSVN 的图标覆盖问题<p>
安装 TortoiseSVN 后会在文件和文件夹上覆盖一个表示文件状态的小图标。但是在使用过程中经常出现某些种类的图标覆盖显示不出的现象。具体情况可能出现在安装了 Office Groove, Dropbox 等同样有图标覆盖功能的软件以后。
</p>
<p>
这是因为 Windows 只允许最多15个图标被覆盖。Windows 使用了其中4个,剩下的11则被其他的应用程序所使用(参见 TSVN 官方 FAQ:<a href="http://tortoisesvn.tigris.org/faq.html#ovlnotall"
target="_blank">不是所有图标都被覆盖</a>)。
</p>
<p>
修改注册表可以一定程度解决这个问题:
</p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<pre xml:space="preserve">
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
</pre>
</blockquote>
<p>
其实就是调整图标覆盖的顺序,只有前11个才有效果。
</p>
<p>
注意有三个是微软自带的:EnhancedStorageShell, Offline Files, SharingPrivate(Windows 7 x64)。
</p>
<p>
如果安装了32位的 TortoiseSVN 则可以在32位程序中显示图标覆盖和菜单,比如 Total Commander 是32位程序,如果安装了64位则不能在其中显示图标覆盖(但是 X64 菜单项可以显示)。但是如果只安装32位的 TortoiseSVN
则在64位的 Windows 7 的资源管理器中看不到图标覆盖。因此,32位和64位的都装能在一定程度上解决这个问题。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-75004426522784784172010-06-12T04:48:00.000+08:002010-06-12T04:48:47.368+08:00Google Contacts 同步的相关感想<p>
我使用 Google Contacts 来管理所有的通讯录,同时使用 Google Sync 来和手机(黑莓)的通讯录同步。
</p>
<p>
我之前写过一篇:<a href="http://arccos.blogspot.com/2009/04/google-sync-for-blackberry.html">Google Sync for BlackBerry 试用</a>,里面讨论了一些和 Google
Contacts 同步的问题。但是可能是系统升级或者版本更新的缘故,以前解决中文姓名不太符合中文习惯的方法有些失效。
</p>
<p>
首先,数据是以网络为主,手机为辅的,原因如下:
</p>
<ol>
<li>数据云端存储很流行,也是合理的保存方式。本地可以定时备份到硬盘。
</li>
<li>手机通讯录的条目不多,所以同步是不对称的,如果依赖手机可能造成信息的部分丢失。
</li>
</ol>
<p>
黑莓手机通讯录姓名是分 First 和 Last 两个字段的,如果按照这个方式填写,不是出现姓和名倒置,就是需要分隔符隔开,不符合中文习惯。多数人采用的是如下的做法:
</p>
<ol>
<li>把姓名全部写在 First 字段。
</li>
<li>Last 字段留空或者写拼音首字母(或者拼音全称)。
</li>
</ol>
<p>
之前我也是这样做的,将 Last 字段留空,但是我发现,如果在网页上使用 Google Contacts 新建或者更改某个联系人的姓名,同步到手机这个姓名会自动划分到 First 和 Last 两个字段,而不是自动让 Last 字段留空。经过研究,是 Google
Contacts 的智能处理,可惜在这里对我造成了麻烦。具体情形如下:
</p>
<ol>
<li>Google Contacts 虽然只显示一个名字(在内部使用 Name 字段),但是当你输入一个新名字或者修改某个名字的时候,会智能地填充 Given Name, Additional Name, Family Name 等字段。
</li>
<li>
如果姓名中含有空格,则自动成为划分依据,否则对于中文姓名会智能划分。比如:"王小二"会划分成"王+小二";"王小二家"会划分成"王小+二家";而"王小二放羊"则不会划分,还是"王小二放羊",但如果手动用空格分开成"王
小二 放羊",则被划分成"王+小二+放羊"。
</li>
<li>当同步的时候 Google Sync 不会同步 Name 字段到手机上,而是同步 Additional Name + Given Name 到 First 字段,Family Name 到 Last 字段。
</li>
</ol>
<p>
我希望实现的是:
</p>
<ol>
<li>中文姓名同步到手机上后,全部集中在 First 字段,Last 字段可以留空最好,不行的话可以写成拼音或者其他信息。
</li>
<li>因为 Gmail 从 Google Contacts 选取联系人发信(尤其是群发)的时候,你对联系人的命名对方是可以看到的,所以希望 Google Contacts 的联系人名称不能太奇怪。所以最好是保证 Name
字段只有中文姓名(但是后面的解决方案无法满足这个愿望)。
</li>
</ol>
<p>
导出 Google Contacts 到文件,然后编辑,强制修改划分后的字段,我并不喜欢这种方法。所以我的解决方案是:
</p>
<ol>
<li>给所有人的中文姓名后添加空格和拼音名,而且拼音名中间没有空格,只对姓和名首字母大写区分。这样做是因为,我想让汉字在前面,而且如果划分了三个字段,同步到黑莓上就不对了,除非让中文作为最后一个字段。
</li>
<li>我加的是拼音的全称,因为只有首字母不好看,而且发信的时候对方收到也不好看。
</li>
</ol>
<p>
这样做需要承担的不便是:
</p>
<ol>
<li>每个联系人要在 Google Contacts 上重新输入一遍姓名,保证字段划分正确、一致。
</li>
<li>要忍受名字后面还跟着一个拼音的不爽。
</li>
<li>要忍受不能在拼音(或者英文名)中间加空格的不爽。
</li>
</ol>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-40420905052258175752010-03-24T21:19:00.002+08:002010-03-24T21:19:35.764+08:00罗技 M215 + 日立 1T<p>
买了东西后,例行地到处得瑟显摆...
</p>
<p>
首先是 Logitech M215 无线鼠标(<a href="http://product.pconline.com.cn/mouse/logitech/394173.html" target=
"_blank">详细信息</a>),非常便宜,性价比高,在我看来有如下几个优点:
</p>
<p style="TEXT-ALIGN: center">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIhDgDVUxRXWAnNtdvhl-MczopMLBzmCwGSV5YR6AoXBqhilbwUp_ibzUs5gmUzMBtGEkmR8dlGvdJFMmcNjpsCMrkPGCDmMGqHy39VNQXhfOHByimUKUwHnWzcXpmVRkclh1rR9fbfmYy/s400/Logitech_M215.jpg" height="300" width="400" />
</p>
<ul>
<li>"即插即忘"Nano接收器,非常小巧,插到笔记本上后可以不必拔下来。
</li>
<li>自带接收器的收纳,在携带时防止丢失。
</li>
<li>有电源开关,可以省电。
</li>
</ul>
<p>
缺点也有:
</p>
<ul>
<li>摇晃鼠标可以听到某些部件活动的声音。
</li>
<li>滚轮上下的声音和手感有些涩。
</li>
<li>开启电池盖的标记有些含糊,应该更明确的指示出。
</li>
<li>包装上有个大大的 "25m",不过前面有个小小的 "≤" 符号,有点骗人的感觉。
</li>
</ul>
<p>
同时还有 Hitachi 1TB HCS721010CLA332 7200转 32M SATAII 盒装硬盘,日立的家用级硬盘有 CinemaStar 和 Deskstar 两个系列。区别是:
</p>
<ul>
<li>Deskstar: 高效,面向 PC 机。
</li>
<li>CinemaStar: 静音,低功耗,面向音视频存储、播放、监控设计,适合 7x24 使用。
</li>
</ul>
<p>
所以我的理解,如果是做系统盘就选 DS,如果是做数据仓库就选 CS。当然,也有人说本质上没有区别,只是 DS 默认 AAM 是 254,而 CS 默认 AAM 是 128。的确通过 HD Tune 软件可以将 CS 的 AAM 改成 254 从而将寻道时间从 18ms
提升到 14ms,不过我想应该不至于就这点区别,内部设计应该还有区别。
</p>
<p>
官方没有提供这款硬盘是否双碟,不过按照测试结果应该是。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com1tag:blogger.com,1999:blog-6385435377008869350.post-18964360672379175642010-03-24T00:06:00.000+08:002010-03-24T00:06:09.963+08:00看不懂的新闻<p>
沙尘暴那天,手机报上新闻是这样写的:
</p>
<blockquote>
<p>
"大风起兮尘飞扬","满城尽带黄金甲",沙尘暴"如约而至"。
</p>
</blockquote>
<p>
当时我抬头看看天,突然对这条新闻感到一阵恶心。
</p>
<p>
次日,因为大旱,贵州黄果树瀑布水量大幅减少,手机报上这样写:
</p>
<blockquote>
<p>
黄果树大瀑布严重"瘦身",过去气势磅礴的大瀑布,如今宛如纤弱细腰的少女。
</p>
</blockquote>
<p>
别卖弄你们这些"文学素养"了,正经报道新闻就是了。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0tag:blogger.com,1999:blog-6385435377008869350.post-75572407916493779882010-03-13T00:43:00.002+08:002010-03-13T00:43:28.707+08:00Google Reader 不能删除 tag 或 folder 的 bug<p>
最近整理 Google Reader 的时候,发现有些标签无法删除,显示:
</p>
<blockquote>
<p>
Oops...an error occurred. Please try again in a few seconds.
</p>
</blockquote>
<p>
搜索了下论坛,发现是一个很长时间没解决的 bug,如下:
</p>
<ul>
<li>
<a href="http://www.google.com/support/forum/p/reader/thread?tid=42022526def45ebb&hl=en">I can't delete a tag in Google
Reader</a>
</li>
<li>
<a href="http://www.google.com/support/forum/p/reader/thread?tid=78e7cf9ab6b26e90&hl=en">Some of my tags cannot be removed</a>
</li>
</ul>
<p>
据说问题出现在对标签进行大量操作的时候,我感觉频繁对标签进行操作就有可能出现这个问题。解决方法暂无。
</p>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com1tag:blogger.com,1999:blog-6385435377008869350.post-36582760556969609322010-03-01T22:04:00.000+08:002010-03-01T22:04:18.346+08:00网站提供大量 Feed 时的解决方案<p>
最近写了一个 GAE 应用,需要向外提供大量 Feed,很多以前不是问题的问题就出来了:
</p>
<ol>
<li>各个在线阅读器的抓取器对网站造成负担,尤其是当 Feed 很多的时候;
</li>
<li>因为我提供的 Feed 有时效性,但是很多在线阅读器的抓取器不能正确识别 301 重定向和 410 永久删除,这就造成还会始终访问无效的地址;
</li>
<li>现有的 Feed 托管服务基本都不支持批量托管,比如 Feedburner 和 Feedsky,只有一个 FeedCat 支持,但是就是它的 FeedCatBot 现在还在对我无效的网址进行抓取。
</li>
</ol>
<p>
不同的在线阅读器的抓取器也不同:
</p>
<ol>
<li>Google Reader:一小时一次,User Agent 为 Feedfetcher-Google,我看以前人说它不支持 301,不过据我观察,它会接受 301 重定向,只是用户界面查看 Feed 地址还是原来的。但是 Feedfetcher-Google
不会再去抓取原地址。
</li>
<li>抓虾:User Agent 为 Zhuaxia.com,支持 301 重定向,不过需要响应 Head 方法。它先用 Head 然后 Get。
</li>
<li>豆瓣九点:完美支持 301 重定向。
</li>
</ol>
<p>
我最后的解决方案是:
</p>
<ol>
<li>自己编写了一个批量托管的 GAE 应用,使得原始服务不会受到太大压力,一部分转接到 Feed 托管服务上。
</li>
<li>Feed 托管服务针对实际 Feed 的不同状态返回相应的状态码和转向。
</li>
</ol>Anonymoushttp://www.blogger.com/profile/17712796735540517974noreply@blogger.com0