Leo 文学化编程

27 Jun 2011

文学化编程,听起来有点扯哈,不过它就是这么个东东,出来乍到诡异得很,但慢慢地接触下,会不会慢慢爱上它呢,让时间来检验吧~~~

比起写帮助文档,这个功能要强大很多

最新的4.9版本需要 Qt GUI Toolkit,还没整明白

于是,还是用的07年老版本4.5版,使用 python-tk 图形化

哥们也文学一把~~~


Python-docs

27 Jun 2011

pydoc -p 8000

然后再浏览器中打开 http://localhost:8000/ 即可使用 python-docs

幸福ING~~~


mysqldb 安装心路 Ubuntu

06 Jun 2011

正在学习 web.py,看到了数据库部分。

引用原文"注意:在你开始使用数据库之前,确保你已经安装了合适的数据库访问库。比如对于 MySQL 数据库,使用 MySQLdb,对于 Postgres 数据库使用 psycopg2。" Postgres 没听说过,故还是选择 MySQL。

根据链接去下载了 MySQL-python-1.2.3,打开 README,好长的安装前提条件,,,

Prerequisites

+ Python 2.3.4 or higher

  • http://www.python.org/
  • Versions lower than 2.3 WON’T WORK.
  • 2.4 is the primary test environment.
  • Red Hat Linux:
- Make sure you have the Python development headers and libraries (python-devel).

+ setuptools

  • http://pypi.python.org/pypi/setuptools

+ MySQL 3.23.32 or higher

  • http://www.mysql.com/downloads/
  • Versions lower than 3.22 definitely WON’T WORK.
  • Versions lower than 3.22.19 might not work.
  • MySQL-3.22 might work but isn’t supported anymore. It’s very old.
  • MySQL-3.23 ought to work, but it’s pretty elderly.
  • MySQL-4.0 is supported, but not tested and slightly discouraged.
  • MySQL-4.1 is supported. The prepared statements API is not
    supported, and won’t be until MySQLdb-1.3 or 2.0, if ever.
  • MySQL-5.0 is supported and tested, including stored procedures.
  • MySQL-5.1 is supported (currently a release candidate) but untested.
    It should work.
  • MySQL-6.0 is sorta-kinda-supported (currently alpha) but untested.
    It should work.
  • Drizzle <https://launchpad.net/drizzle> is a fork of MySQL. So far
    the C API looks really similar except everything is renamed.
    Drizzle support probably won’t happen in 1.2. There may be have to
    be an entirely different module, but still using DB-API.
  • MaxDB, formerly known as SAP DB (and maybe Adabas D?), is a
    completely different animal. Use the sapdb.sql module that comes
    with MaxDB.
  • Red Hat Linux packages:
- mysql-devel to compile - mysql and/or mysql-devel to run
  • MySQL.com RPM packages:
- MySQL-devel to compile - MySQL-shared if you want to use their shared library. Otherwise you’ll get a statically-linked module, which may or may not be what you want. - MySQL-shared to run if you compiled with MySQL-shared installed
  • Transactions (particularly InnoDB tables) are supported for
    MySQL-3.23 and up. You may need a special package from your vendor
    with this support turned on.

+ zlib

  • Required for MySQL-3.23 and newer.
  • Red Hat Linux
- zlib-devel to compile - zlib to run

+ openssl

  • May be needed for MySQL-4.0 or newer, depending on compilation
    options. If you need it, you probably already have it.
- you may need openssl-devel on some platforms

+ C compiler

  • Most free software-based systems already have this, usually gcc.
  • Most commercial UNIX platforms also come with a C compiler, or
    you can also use gcc.
  • If you have some Windows flavor, you usually have to pay extra
    for this, or you can use Cygwin_.

.. _Cygwin: http://www.cygwin.com/

重点在安装 setuptools 和 MySQL

Step1 安装 MySQL

去官网上下载了包包,结果最后还是选择了用新立得安装

1 $ sudo apt-get install mysql-server mysql-client
2 $ sudo start mysql
3 $ sudo stop mysql

当你修改了配置文件後,你需要重启 mysqld 才能使这些修改生效。

要想检查 mysqld 进程是否已经开启,可以使用下面的命令:

1 $ pgrep mysqld

如果进程开启,这个命令将会返回该进程的 id。

>>Ubuntu下安装mysql的方法
>>Ubuntu下安装MySQL

Step2 安装 setuptools

从新立得可以安装

下面进入主题 mysqldb 的安装

1 $ tar xfz MySQL-python-1.2.1.tar.gz
2 $ cd MySQL-python-1.2.1
3 # edit site.cfg if necessary
4 $ python setup.py build
5 $ sudo python setup.py install

最后一步安装会遇到的问题

Problem1 没有 mysql_config 文件

mysql_config 是属于 MySQL 开发用的文件,而使用 apt-get 安装的 MySQL 是没有这个文件的,于是在包安装器里面寻找

libmysqld-dev
libmysqlclient-dev

这两个包安装后问题即可解决

Problem2 EnvironmentError: mysql_config not found

root@vpser:~# cd MySQL-python-1.2.3
root@vpser:~/MySQL-python-1.2.3# python setup.py install
sh: mysql_config: not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/root/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/root/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

首先查找 mysql_config 的位置,使用 find / -name mysql_config,比如我的在 /usr/local/mysql/bin/mysql_config

修改 setup_posix.py 文件,在26行:
mysql_config.path = “mysql_config” 修改为:
mysql_config.path = “/usr/local/mysql/bin/mysql_config”
修改完成后保存,再执行:

1 $ python setup.py build
2 $ sudo python setup.py install

说到这里其实非常的麻烦了,继续看 README 文档,下面其实有说明可以直接用新立得安装,尴尬,,,。。。

1 $ sudo apt-get install python-mysqldb

充电误区那点事儿

09 May 2011

随着便携式设备的普及,我们身边充斥着各种各样的电池,于是关于电池的各种说法让人目不暇接,难以分辨。像“新买的手机必须充满8小时以上并重复几次完全充电放电”这样的说法,到底有什么依据没?

流言:新买的手机必须充满8小时以上并重复几次完全充电放电,这个过程叫做激活,这样可以使手机的电池达到最大容量。手机充满电之后必须马上拔掉电源,因为过度充电会引起电池爆炸。笔记本电脑和手机的电池最好把电用光再充电,这样可以尽量减少充电次数,延长电池寿命。

真相:

新电池需要重复几次完全充电放电来激活吗?

确实有一些充电电池需要类似的"激活"工作。这就是较早的镍镉充电电池和镍氢充电电池。这些电池会产生一种被称为“记忆效应”的现象,在不完全放电的状态下充电,容易使电池过度充电,时间长了会导致电极板上增生晶体,阻塞电解液与电极板的接触,造成电池的电压下降,让使用者产生电池很快就用完了的感觉。1因此对于这两种电池来说,定期(而不是每次)对电池完全放电后再充电可以减轻上述原因引起的电压下降现象。

不过,现在我们手机和笔记本电脑上所使用的电池,大都是锂离子电池 (Li-ion Battery)。锂离子电池虽然身材小却可以储存大能量,因此使用的越来越广泛。锂离子电池在开始使用时不需要通过深度充放电来进行激活,因为电池的初始化及测试过程已经在制造电池的时候完成了。锂离子电池也没有所谓的“记忆效应”的,可以随时充电。2建议定期对锂离子电池进行一次完全充放电的说法,仅仅是为了校准笔记本电脑和一些高端智能手机上的电量检测装置,并不是因为对电池本身有什么好处。3对于普通的手机、数码相机这些分段显示电池大概电量的设备,是完全不需要定期完全充放电的。

神马?有些手机说明书上也有这么写?你要知道,手机的电池一般都不是生产手机的厂商制造出来的,说明书上的这种写法可能是为了提醒使用者测试一下电池有没有问题。另外,由于镍镉和镍氢电池的确需要激活,这种说明书上的写法也可能是由于照搬模板造成的。

过度充电会引起电池爆炸?

锂离子电池的能量密度大,电压较高(单独锂离子电池单元产生的电压可达到4.2V,而普通的镍基充电电池为1.2V),和低电压类电池相比,锂离子电池充电时电极的氧化还原反应十分剧烈,因此锂离子电池的使用条件必须受到严格限制,过度充电、过度放电、短路、高温等都会引起电池损坏,甚至发生起火和爆炸。4但是,实际使用中的锂离子电池是把若干个电芯连同一套安全保护电路以及多种安全装置一起封装成一块电池板。5这些安全设计可以保证在过度充电、过度放电和短路时自动切断电池的电路;电池内部压力过高还会触发排气装置减压;电池温度过高则会触发热熔保护装置,阻滞锂离子的运动从而停止电池的电化学反应。6因此,只要你不是用的质量不靠谱的山寨电池,手机充满电没有及时拔掉电源不会引起电池爆炸。

减少充电次数,可以延长电池寿命?

一般锂离子电池的寿命可以达到几百次充放电循环,电池和设备的说明书上也经常见到这样的表述。这里的1个充放电循环是指将电池电量用光然后再充满的过程,而不是插上充电器再拔掉就算1次。连续对锂离子电池进行深度充放电,对锂离子电池的寿命是有影响的,上述几百次的数据也是在这样的条件下测得的,但在日常浅度充放电条件下,锂离子电池的寿命其实相当长。此外,锂电池放着不用,其容量也会自然损失,主要的影响因素是电压和温度。研究表明,锂离子离子在完全充电的状态下长时间存放,其容量会发生明显损失。同样的,温度越高,锂离子电池的容量损失就越快,而这种损失是不可逆的,也就是说,电池的容量会永久变小。在0度环境下,电量剩余40%的锂离子电池存放一年后,其容量会损失2%;而在40度环境下,完全充满电的锂离子电池存放一年后,其容量损失高达35%。7

那么正确的做法是什么呢?首先,频繁的浅度充放电会比深度充放电有助于延长电池的寿命,千万不要以为充电次数多会损坏电池,这个说法对锂离子电池并不适用。所以,好习惯是有机会就插上充勒个电,充到差不多就拔掉——少量多餐,但别吃太饱。8其次,应该尽量减少电池满电状态的时间。充满电后不拔掉电源,会让电池一直保持满电状态,虽然不会爆炸,但是会加快电池容量的损失速度。

结论:谣言破解。 锂离子电池用不着激活。除非有质量问题,否则也不会因为长时间插着充电而发生爆炸。锂离子电池没有记忆效应,可以随时充电,为了减少充电次数而刻意将电池用光后再充满,并不能延长电池寿命,反而对电池的寿命有负面影响。

特别鸣谢:凭栏听潮、橡树村、三思柯南

参考资源:

1 Memory: myth or fact?

2 リチウムイオン二次電池や鉛蓄電池ではメモリー効果は生じない

3 Unlike nickel and lead-based batteries, a new lithium-ion pack does not need cycling through charging and discharging.

4 リチウムイオン二次電池 – 欠点

5 リチウムイオン二次電池 – 市販形態

6 锂电池保护电路原理分析

7 Figure 1: Non-recoverable capacity loss on lithium-ion and nickel-based batteries after storage. High charge levels and elevated temperatures hasten the capacity loss.

8 How to prolong lithium-based batteries

来自:果壳网 充电误区那点事儿


豆沙绿?护眼并非如此简单

22 Apr 2011

你相信"将电脑屏幕设置成豆沙绿能保护视力"的说法吗?这个所谓的保护视力的方法并没有什么效果。相信豆沙绿能够保护视力,还不如在使用电脑的过程中多看看远处来得靠谱。

流言: 为了您的视力,请对电脑作如下设置:桌面→右键→属性→外观→高级->项目选择(窗口)、颜色1(L)选择(其它)将色调改为:85。饱和度:123。亮度:205->添加到自定义颜色->在自定义颜色选定点确定->确定。这个色调是眼科专家配置的,长时间使用会很有效的缓解眼睛疲劳保护眼睛。

真相: 从小,我们就受到这样的教育:写字看书一段时间后,要看看远处的绿色植物来保护视力。这种做法确实有些效果。之后有商人依照这个“常识”推出绿色书写纸制作的作业本,号称可以预防近视。“豆沙绿保护视力”的流言可以看作是绿色作业本的现代版。

那么这些做法到底有没有用呢?

在讨论这些问题前,我们先给"绿色"下一个定义。绿色是自然中常见的颜色,是三原色之一,绿色的光波长在520–570nm之间。在RGB颜色模型中,纯绿色的RGB值是(0,255,0),任何RGB值中第二个值最大的色彩都属于绿色系。如本文开头流言中那样设置出来的豆沙绿,RGB值为(199,237,204),近似于青瓷绿(Celadon green)。

让我们查查网上有关绿色书写纸的文章,几乎都只是语焉不详的说明:绿色纸张能有效缓解视疲劳。确实,绿色光处于可见光谱的中心位置,处于人眼最敏感的色彩频率范围内1。另外色彩心理学认为,绿色能够让人感到舒适与平静2。但是这些都不足以用来说明绿色能保护视力,也没有相关的研究支持这一点。

从反差识别3的角度来考虑,绿色纸张对视力也没有特别的积极影响。有文献显示,在颜色饱和度低的情况下,绿色纸张与白色纸张对近视力(指近距离人眼分辨力)的影响并没有本质的区别4。但是,如果纸张颜色饱和度过高反而会导致文字与背景反差降低,影响对文字的对比度,使文字的辨识度降低,反而会让双眼更容易疲劳。检索发现,没有可靠的文献或者是实验支持长时间使用绿色纸张制作的书本能够保护视力。

看看远处的绿色植物放松紧张的双眼是有效的预防近视的手段,不过与其说是植物的绿色让双眼放松,倒不如归功于植物与人眼的距离是要远远大于书本与人眼的距离,向远处对焦这一动作使睫状肌处于松弛的状态,紧张的它得到了休息。相信绿色作业本能够很好的保护视力,还不如多看看窗外来得靠谱。

如前所述,绿色光保护视力的能力并不可靠。将电脑设置成豆沙绿唯一可能做到的只是让屏幕亮度变得不那么刺眼。对于由眨眼次数少使泪液蒸发过快造成的干眼5,坐姿、与屏幕距离等问题造成的视疲劳、上身疼痛,“豆沙绿”是没有任何效果的。

长时间使用电脑确实可能造成视觉问题。美国视光学协会(AOA)将其定义为计算机视觉征候群(Computer Vision Syndrome, CVS)6,也称为VDT综合征。其主要症状是视疲劳、视力模糊、干眼、头部、颈部与肩周疼痛。造成这些问题的主要原因有:屏幕过亮或过暗,双眼与屏幕距离不合适,坐姿不恰当,使用电脑时眨眼次数减少,以及电脑使用者本身所有的视力问题。

长期使用电脑的你,如何保护双眼呢?这里给出一些小贴士:

  1. 设置好你的屏幕,使它不刺眼也不太暗。
  2. 调整你的坐姿,保证上身挺直,颈部得到很好的支撑。
  3. 调整电脑屏幕、桌椅,如下图所示。
  4. 使用电脑一段时间后,起身看看远处,放松双眼。
  5. 长时间使用电脑时,要注意休息和眨眼,并适当为工作环境加湿,以便缓解眼干。

结论: "绿色护眼"没有研究支持,并且在国外网站鲜有讨论,这应该是一个本土流言,可能是"看远处的绿色植物来保护视力"这一正确做法的讹传。而将电脑的背景色设置成豆沙绿虽然没有什么坏处,但是靠这个操作保护视力不靠谱。

参考资源:

1 Commission Internationale de l’Éclairage (CIE) Luminosity function

2 Andrew J. Elliot, et al. Color and Psychological Functioning. Journal of Experimental Psychology: Genera. 2007:136(1):154-168

3 Gordon E. Legge, et al. Psychophysics of reading—V. The role of contrast in normal vision . Vision Research.1987;27(7):1165-1177

4 王智勇,等. 纸张底色的色调和饱和度对近视力的影响. 眼科研究.2006;24(5):464

5 Tsubota K, et al. Dry eyes and video display terminals. The New England Journal of Medicine. 1993:328(8):584.

6 Computer Vision Syndrome

来自:果壳网 豆沙绿?护眼并非如此简便


<< Previous Page
Fork me on GitHub