Search my blog
Custom Search

2021/02/08

ZSH V5.6/oh-my-zsh compinit/compdef function definition not found

 Issue:

when run zsh, you got errors something like below:

compinit: function definition not found

compdef: function definition not found


Cause: 

Some Intel compiler will rewrite FPATH environment, FPATH doesn't include the correct function definition paths. 


Solution:

Newest version zsh's functions folder structure is changed from old versions. There are sub folders under /usr/share/zsh/functions folder and you have to add each sub folders in the FPATH as well. 

In your .zshrc, add the line below:

export FPATH="/usr/local/share/zsh/site-functions:/usr/share/zsh/vendor-functions:/usr/share/zsh/vendor-completions:/usr/share/zsh/functions/Calendar:/usr/share/zsh/functions/Chpwd:/usr/share/zsh/functions/Completion:/usr/share/zsh/functions/Completion/AIX:/usr/share/zsh/functions/Completion/BSD:/usr/share/zsh/functions/Completion/Base:/usr/share/zsh/functions/Completion/Cygwin:/usr/share/zsh/functions/Completion/Darwin:/usr/share/zsh/functions/Completion/Debian:/usr/share/zsh/functions/Completion/Linux:/usr/share/zsh/functions/Completion/Mandriva:/usr/share/zsh/functions/Completion/Redhat:/usr/share/zsh/functions/Completion/Solaris:/usr/share/zsh/functions/Completion/Unix:/usr/share/zsh/functions/Completion/X:/usr/share/zsh/functions/Completion/Zsh:/usr/share/zsh/functions/Completion/openSUSE:/usr/share/zsh/functions/Exceptions:/usr/share/zsh/functions/MIME:/usr/share/zsh/functions/Math:/usr/share/zsh/functions/Misc:/usr/share/zsh/functions/Newuser:/usr/share/zsh/functions/Prompts:/usr/share/zsh/functions/TCP:/usr/share/zsh/functions/VCS_Info:/usr/share/zsh/functions/VCS_Info/Backends:/usr/share/zsh/functions/Zftp:/usr/share/zsh/functions/Zle

:$FPATH"


NOTE:

If you /etc/zshrc is loading compinit, then you will need add this line at beginning of /etc/zshrc. 

If you don't have root access to /etc/zshrc, you may ignore errors and reload the items you need from .zshrc by yourself later (copy the /etc/zshrc configuration into your .zshrc file).





2015/03/16

Fire TV Stick设置时区 (Change Timezone)

系统自带的设置没有东八区,看电视家的时候节目表总是不对。

解决办法:
Sideload安装TimeZoneChanger应用。具体方法放狗。


已经测试过,完美修改时区到Asia/Chongqing (东八区)。奇怪的是竟然没有北京。

2015/02/05

Autorun.inf with UTF-8 BOM is not recognized by windows autoplay/autorun

Issue:
 
When I create a Autorun.inf for a CD-ROM, Win 7 won't automatically "run" the setup.exe.
 
My sample autorun.inf:
[autorun]
action=Autorun
open=Setup.exe
icon=Setup.exe,0
label=XXX Install CD
 
 
Troubleshooting:
 
First I have confirmed that nothing is wrong with my Win 7. The autorun is not disabled. For all related registry settings, please refer to this WIKIPEDIA article:
 
 
After the registration are confirmed that AUTORUN is enabled, I still cannot make the "setup.exe" run. Win 7 only prompts to "Open Files" as below.

 
Cause:
 
I noticed that the ICON and the label are not shown as expected as well. Then I doubt if something is wrong with the autorun.inf file.
 
I checked the encoding of autorun.inf and found it's encoded in UTF-8 with BOM (default by my vim settings).
 
After I change the encoding to ACSII, the autoplay/autorun finally starts working.
 
 
Conclusion:
 
Windown 7 autoplay/autorun cannot handle autorun.inf file in UTF-8 with BOM.

2013/12/22

桃花姑娘算卦


小时候正月里算过,挺灵的。好像网上没有看到有人这么算过。写这篇文章把过程记录下来,以免失传了。

1.道具

非常简单。
6根红筷子
贵重戒指一枚
童男童女各一名 (必须没有结婚的男孩和女孩,不然桃花姑娘不会下来)
小凳子两张

2. 时间

这个需要在正月里进行,农历新年过后,不要出正月。做好正月十五前后。

3. 过程

男孩和女孩坐在凳子上,面对面,各持3根红筷子。

刚开始需要请桃花姑娘,把戒指戴到中间任何一根横着的红筷子上。
让后念口诀:
正月里,正月正,桃花姑娘算卦灵。下面给xxx算一卦, 性别(男或者女),年龄xx岁,有福往里合,木福往外撑。

刚上来可能需要做几次,如果桃花姑娘请到了,红筷子就会自己往里或者往外移动。
非常准的,我小时候亲身算过。

4. 变化

本来只问有没有福气的,但是你也可以问题他的。答案应该只有两种选项,往里合或者往外撑。
比如你可以说:
正月里,正月正,桃花姑娘算卦灵。下面给xxx算一卦, 性别(男或者女),年龄xx岁,今年出嫁往里合,不会出嫁往外撑。

注:

有人会问桃花姑娘何许人也? 从前前段时间网上搜索了一下。还真有其人,桃花姑娘比周公还厉害呢!周公只能算命,不能破解,桃花姑娘既能测命,还能破解厄运。 详情请搜索关键字:《桃花女阴阳斗传》,这是一本古典小说,详细记载了桃花女和周公斗法的故事。

2013/05/12

RAMDISK导致Windows 7重启

1. 前言
由于内存白菜价格, 现在电脑大多有4G或者以上的内存。
网上很多文章介绍如何创建RAMDISK,然后把系统的临时目录和浏览器的缓存目录设置到RAMDISK来提高性能。 具体做法网上灰常多。


2. 症状
我使用的是DATARAM的RAMidnowsDISK软件,可以免费4G以下的RAMDISK。并且安装和更改大小不需要重启电脑。
http://memory.dataram.com/products-and-services/software/ramdisk

安装过程没有任何问题, 之后我的系统和用户的临时目录更改到了RAMDISK。
假设RAMDISK盘符为H:, 更改后临时目录为"H:\temp"。

关机重启的时候Windows提示有重要更新,所以就安装了Windows更新。 然后问题就来了,当机器重启的时候,显示提示系统配置更新,然后”Ctrl+Del+Alt“画面一闪, Windows就开始关机了。

然后我又重启电脑,这次显示回滚Windows更新,看来不错。 没想到几分钟之后,同样”Ctrl+Del+Alt“画面一闪, Windows又重启啦。


3. 解决方案
首先是需要让机器能够正常启动吧。启动时按F8进入安全模式,还好安全模式没有任何问题。然后把系统临时目录等都改了回来到”C:\temp“目录。再次重启系统就好了, 没有反复的重启。

网上搜索了一下,这个问题好像还很常见。大部分人解释说Windows安装新软件的时候,可能会用到临时目录,如果系统重启,RAMDISK里面的东西会被清空(在内存里嘛),这样就导致问题了。所以说推荐的做说是让RAMDISK软件保存RAMDISK到硬盘镜像文件在关机时, 然后在启动时候从硬盘镜像恢复到RAMDISK就行了。 这个也不麻烦,大部分的RAMDISK软件都提供这个功能。

这个方法我没有试, 我记得以前用过Buffalo的RAMDISK就没有任何问题。 这次的问题也许和设置有关。 依稀记得在安全模式下,我察看了了一下RAMDISK,好像H:盘下面什么也没有,没有Temp目录。会不会是Windows找不到Temp目录导致了这个问题呢。

再次把所有系统和用户临时目录改为“H:” (注意:没有temp目录,RAMDISK的跟目录)。然后系统重启, 没有任何问题。 到现在为止, 系统反反复复启动n次了,一直都没有问题。


4. 总结
RAMDISK默认不会创建任何目录,所以一定要注意不要指定目录如果你你保存/恢复RAMDISK到硬盘镜像文件的话。 否则,系统可能不稳定出问题,或者安装软件出问题。

当然,你如果保存/恢复镜像的话,估计应该没有什么问题。只是系统关机和启动的时候可能有一些戏能的损失。

















2013/03/16

Kindle Fire(I代)双重引导Jelly Bean和Modaco (基于6.3.1Amazon原厂ROM)

捡了个Deal, 70刀整了个8成新的Kindle Fire。
用了一周时间看帖子实践,现在弄成了双系统。
闲话休提,下面是大概的步骤和一些注意事项。

本帖大部分内容来自XDA论坛,对制作工具和ROM的贡献者表示感谢。

0. 前言
本帖适用于Kindle Fire I代。 Kindle Fire I代的ROM版本为6.*.*。
你的原厂ROM如果不是这个,你的设备可能不是I代。

建议首先了解基础知识,知道root, bootloader, recovery, ADB等基本概念。

需要电脑才能完成大部分的操作,推荐操作系统Win7. 据说XP不work。

必看(E文):
http://forum.xda-developers.com/showthread.php?t=1552547
http://forum.xda-developers.com/showthread.php?t=1638452


1.安装Bootloader和Recovery
1) 下载Kindle Fire Utility (KFU) 0.9.6 版本。
    http://forum.xda-developers.com/showthread.php?t=1399889

2) 安装Kindle Fire驱动
    执行install_drivers.bat。
  
    注意:需要英文操作系统,否者安装不能进行。网上已有如何绕过检查的帖子, 请放狗。
    我用的Win8操作系统,我安装English语言包并设置English为系统默认语言。网上有更简单的办法,需要盖驱动ini文件.

3) USB连接Kindle Fire,确认驱动安装成功。
   设备显示器应该认出Kindle Fire为Android设备。驱动不成功,千万不要试下面的步骤。

4)打开命令窗口,切换到KFU目录,执行run.bat.
   确认ADB Status为online, Boot Status为4000. 如果不对,可能驱动问题,不要继续下面步骤。

5)断开Kindle File, 选择“Install Permenent Root with Supperuser”
   这步会下载FireFireFire bootloader和Recover工具,确认下载没有问题。
   因为Kindle没有连线,所以实际执行会失败。

6)确认第五步没有问题下载文件之后, 连接Kindle。 退出KFU,重新确认ADB staus和boot Status之后,执行“Install Permenent Root with Supperuser”。
   执行成功之后,Kindle Fire停留在TWRP界面。

2. 安装Jelly Bean ROM For Kindle Fire
1) 下载SGT7基于JB 4.2.2的ROM 和Google Store App.
    http://forum.xda-developers.com/showthread.php?t=2051331

    Google Store APP也最好一下下载并拷贝到SDCARD。
    http://goo.im/gapps/gapps-jb-20130301-signed.zip
    Google Store的APP一定也和对应的ROM的版本。

    注:你也可以下载其他的ROM。 这里有XDA所有Kindle Fire的ROM列表。
    http://forum.xda-developers.com/showthread.php?t=1859851

2) 拷贝SGT7 ROM的ZIP文件到SDCARD (也叫external storage, 内嵌在Kindle里面的,非可拔插shebei)。
    最简单的办法就是reboot,然后进入原创系统。 连接上USB,Kindle被电脑认为一个USB盘。
 
3) 长按电源键,选择shutdown。

4) 按电源键,等屏幕亮了之后,长按电源键知道显示“system, recovery, reset...”菜单,然后按电源键选择进入recovery。
    稍等片刻, Kindle会开始boot到Recovery。

5) 按照楼主的步骤安装ROM。
    http://forum.xda-developers.com/showthread.php?t=2051331
  
    注:Wipe data实际应该是Wipe FactoryReset在TWRP菜单里面。   

6) 安装Google Store Apps.
    Install -> 选择Google Store Apps的ZIP。

6) 重启确认Jelly Bean装好了。


3. 安装FireFireFire-extended Bootloader
1) 下载新的bootloader (ProfEngr版本)
   http://forum.xda-developers.com/showthread.php?t=1615093&page=16
   说明:ProfEngr版本基于FFF1.4a. u-boot-dual.7z故意被打包为7z格式, 为了防止误解。这个文件不能用于TWRP来安装。

2)安装步骤在这里。
   http://forum.xda-developers.com/showthread.php?t=1615093
 
   注:由于FFF已经有安装,所以只需要执行“fastboot flash bootloader u-boot.bin”。
       这个命令需要Kindle在Fastboot模式,这个命令要从电脑上执行。下面具体步骤。

   注:有4种方式可以进入fastboot模式。 我用的是第三种。
        http://forum.xda-developers.com/showthread.php?t=1668159

3)USB连接Kindle,进入KFU的Tools目录, 拷贝解压之后的u-boot-dual.bin文件到该目录。


4)打开命令行,CD到KFU的TOOLS目录,执行“fastboot getvar product”。会显示等待设备,并且不会结束命令行。

5) 重启Kindle, 等上面命令行返回,说明你已经在fastboot模式了。

6)执行“fastboot flash bootloader u-boot.bin”,确认命令成功。

7)关闭Kindle, 重复步骤4和5,再次进入fastboot模式。

8)执行“fastboot oem dualformat”并确认命令成功。

4. 准备和安装Modaco ROM。
1) 启动到Recovery。如果前面都成功的话,
在boot画面长按电源键之后,你应该会看到多了一个菜单“Alternate boot”, 这个菜单就是用来boot到你将来的Modaco ROM用的。

2) Wipe你的SDCARD (External storage)。这步不知道是不是必要,我是按照做了。

3) 下载altrom-format-all.zip到你的电脑的KFU的TOOLS目录。
    http://forum.xda-developers.com/showthread.php?t=1615093

4) 下载Modaco ALT ROM电脑的KFU的TOOLS目录。
     http://forum.xda-developers.com/showthread.php?t=1439916
   
    注[重要]:一定要下载ALT ROM,这是专门为双启动准备的。千万不要下错了。
    最新的是9.2,基于6.3.1原长ROM。 
     

5) 打开电脑命令行,进入KFU的TOOLS目录。
    执行:
    adb push altrom-format-all.zip /sdcard
    adb push [Modaco ROM file name] /sdcard (这步时间稍长,因为文件很大)。

6) 准备第二分区为Modaco。
    回到TWRP,install altrom-format-all.zip。

7)安装Modaco ROM
   回到TWRP,install下载下来的ALT ROM。 结束!!
 
之后系统默认boot到jelly bean。
如果你想进入Modaco, 在启动画面长按电源,选择“Alternative boot”,稍等片刻就可。


2011/12/06

Web开发中需要了解的东西

Web开发中需要了解的东西:

在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需要知道的?)里面给出的答案非常不错,所以,我翻译转载过来。 顺便说一下,StackExchange真是非常好,大家可以对同一个答案做贡献和修订,看看这个问题的修订过程你就知道了——专业的问答网站应该怎么去做。这就是我在这篇文章中也说过真正的用户体验是什么样的。


好了,下面是正文(我对原文做了一些批注,也许不对或有误导,请大家指正)


下面的这些东西可能对于大多数人并不陌生,但是可能会有些东西你以前并没有看过,或是没有完全搞懂,甚至都没有听说过。(陈皓注:我相信当你看完这个列表后,你会觉得对于我国的Web开发有点弱了,还是那句话,表面上的东西永远是肤浅的)


接口和用户体验



  • 小心浏览器的实现标准上的不一致,确信让你的网站能够适当地跨浏览器。至少,你的网站需要测试一下下面的浏览器:



最后,你可以使用一下这个工具 来看看你的网页在不同的浏览器下是怎么被显示出来的(陈皓注:这个工具就是以前本站介绍过的在不同浏览器和平台上检查你的网站的兼容性)



  • 多考虑一下人们是怎么来访问你的网站而不是那些主流的浏览器:手机,读屏软件和搜索引擎,例如:一些Accessibility的东西: WAI 和 Section508, 移动设备开发:MobiForge.



  • 部署Staging:怎么部署网站的更新而不会影响用户的访问。 Ed Lucas的答案 可以让你了解一些(陈皓注:Ed说了一些如版本控制,自动化build,备份,回滚等机制)。



  • 千万不要直接给用户显示不友好的错误信息。




  • 千万不要把用户的邮件地址以明文显示出来,这样会被爬虫爬走并被让用户的邮箱被垃圾邮件搞死。



  • 为用户的链接加上 rel="nofollow" 的属性以 避免垃圾网站的干扰。(陈皓注:nofollow是HTML的一个属性,用于通知搜索引擎“这个链接所指向的网页非我所能控制,对其内容不予置评”,或者简单地说,该链接不是对目标网站或网页的“投票”,这样搜索引擎不会再访问这个链接。这个是用来减少一些特定垃圾页面对原网站的影响,从而可以改善搜索结果的质量,并且防止垃圾链接的蔓延。)



  • 为网站建立一些的限制 - 这个属于安全性的范畴。(陈皓注:比如你在Google注册邮箱时,你一口气注册超过两个以上的邮箱,gmail要求给你发短信或是给你打电话认证,比如Discuz论坛的会限制你发贴或是搜索的间隔时间等等,更多的网站会用CAPTCHA来确认是人为的操作。 这些限制都是为了防止垃圾和恶意攻击)



  • 学习如何做 Progressive Enhancement. (陈皓注:Progressive Enhancement是一个Web Design的理念,如:1)基础的内容和功能应该可以被所有的浏览器存取,2)页面布局的应该使用外部的CSS链接,3)Javascript也应该是外部链接还应该是 unobtrusive 的,4)应该让用户可以设置他们的偏好)




  • 严重关注Accessibility。因为这是法律上的需求(陈皓注:Section 508是美国的508法案,其是美国劳工复健法的改进,它是一部联邦法律,这个法律要求所有技术要考虑到残障人士的应用,如果某个大众信息传播网站,如果某些用户群体(如残疾人)浏览该网站获取信息时,如果他们无法正常获得所期望的信息(如无法正常浏览),那可以依据相关法规,可以对该网站依法起诉)。 WAI-ARIA 为这方面的事提供很不错的资源.


安全



  • 在网上有很多关于安全的文章,但是 OWASP 开发指导 涵盖了几乎所有关于Web站点安全的东西。(陈皓注:OWASP(开放Web应用安全项目- Open Web Application Security Project)是一个开放的非营利性组织,目前全球有130个分会近万名会员,其主要目标是研议协助解决Web软体安全之标准、工具与技术文件,长期 致力于协助政府或企业了解并改善网页应用程式与网页服务的安全性。OWASP被视为Web应用安全领域的权威参考。2009年下列发布的美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则)




  • 永远不要相信用户的输入(包括Cookies,因为那也是用户的输入)



  • 对用户的口令进行Hash,并使用salt,以防止Rainbow 攻击(陈皓注:Hash算法可用MD5或SHA1等,对口令使用salt的意思是,user 在设定密码时,system 产生另外一个random string(salt)。在datbase 存的​​是与salt + passwd 产的md5sum 及salt。 当要验证密码时就把user 输入的string 加上使用者的salt,产生md5s​​um 来比对。 理论上用salt 可以大幅度让密码更难破解,相同的密码除非刚好salt 相同,最后​​存在database 上的内容是不一样的。google一下md5+salt你可以看到很多文章。关于Rainbow 攻击,其意思是很像密码字典表,但不同的是,Rainbow Table存的是已经被Hash过的密码了,而且其查找密码的速度更快,这样可以让攻击非常快)。使用慢一点的Hash算法来保存口令,如 bcrypt (被时间检证过了) 或是 scrypt (更强,但是也更新一些) (1, 2)。你可以阅读一下 How To Safely Store A Password(陈皓注:酷壳以前曾介绍过bcrypt这个算法,这里,我更建议我们应该让用户输入比较强的口令,比如Apple ID注册的过程需要用户输入超过8位,需要有大小写和数字的口令,或是做出类似于这样的用户体验的东西)。





  • 使用 SSL/HTTPS 来加密传输登录页面或是任可有敏感信息的页面,比如信用卡号等。



  • 知道如何对付session 劫持。(陈皓注:请参看wikipedia的这Session Hijacking,)





  • 保持你的系统里的所有软件更新到最新的patch。



  • 确保你的数据库连接是安全的。



  • 确保你能了解最新的攻击技术,以及你系统的脆弱处。





性能




  • 优化页面 —— 不要使用20KB图片来平铺网页背景。(陈皓注:还有很多网页页面优化性的文章,你可以STFG – Search The Fucking Google一下。如果你要调试的话,你可以使用firebug或是chrome内置的开发人员的工具来查看网页装载的性能)

  • 学习如何 gzip/deflate 网页 (deflate 更好).



  • 把多个CSS文件和Javascript文件合并成一个,这样可以减少浏览器的网络连数,并且使用gzip压缩被反复用到的文件。




  • 为那些小的图片使用 CSS Image Sprites,就像工具条一样。 (参看 “最小化 HTTP 请求” ) (陈皓注:把所有的小图片合并成一个图片,然后用CSS把显示其中的一块,这样,这些小图片只用传输一次,酷壳的Wordpress样式的那个RSS订阅列表中的小图标就是这样做的)



  • 繁忙的网络应该考虑把网页的内容分开存放在不同的域名下。(陈皓注:比如有专门的图片服务器——图片相当耗带宽,或是专门的Ajax服务器)



  • 静态网页 (如,图片,CSS,JavaScript,以及一些不需要访问cookies的网页) 应该放在一个不使用cookies的独立的域名下,因为所有在同一个域名或子域名下的cookie会被这个域名下的请求一同发送。另一个好的选择是使用 Content Delivery Network (CDN).



  • 使用单个页面的HTTP请求数最小化。



  • 为Javascript使用 Google Closure Compiler 或是 其它压缩工具(陈皓注:压缩Javascript代码可以让你的页面减少网络传输从而可以得到很快的喧染。注意,并不是所有的工具都可以正确压缩Javascript的,Google的这个工具甚至还可以帮你优化你的代码)



  • 确认你的网站有一个 favicon.ico 文件放在网站的根下,如 /favicon.ico. 浏览器会自动请求这个文件,就算这个图标文件没有在你的网页中明显说明,浏览器也会请求。如果你没有这个文件,就会出大量的404错误,这会消耗你的服务器带宽。(陈皓注:服务器返回404页面会比这个ico文件可能还大)


SEO (搜索引擎优化)



  • 使用 “搜索引擎喜欢的” URL,如:使用 example.com/pages/45-article-title 而不是 example.com/index.php?page=45 (陈皓注:这里的URL是说Wordpress的,后者是默认的)



  • 如果你的动态页面要使用 # ,那么请把其改成 #! ,而在服务端,你需要处理$_REQUEST["_escaped_fragment_"] 这是Google搜索引擎需要的。换句话说,./#!page=1 会被Google搜索引擎转成 ./?_escaped_fragments_=page=1。 (陈皓注:通常来说URL中的#后的东西都不会被传到服务器上,所以,为了要让Google可以抓取AJAX的东西,你需要使用#!,而Google会把“#!”转成“_escaped_fragment_”来向服务器发请求,Twitter的大量的链接者是#!的,比如:https://twitter.com/#!/your_activity)。另外,用户也许会使用Firefox 或 Chromium, history.pushState({"foo":"bar"}, "About", "./?page=1"); 是一个很不错的命令。所以,就算是我们的地址栏上的地址改变了,页面也不会重新装载。这可以让你使用 ? 而不是 #! 也能无刷地保住当前的动态的页面,这可以让AJAX的请求被浏览器记住。



  • 别使用 “click here” 这样的链接。这样一来,无法SEO,而且对于一些需要使用读屏人来说很不友好(陈皓注:关于读屏软件,可参看本站的“如果看不见你还能编程吗”)






  • 了解 robots.txt 和搜索引擎爬虫是如何工作的。



  • 重定向请求 (使用 301 重定向网站) ,如果你要把 www.example.com 定向到 example.com(或是其它的变更) 这样可以防止Google的rank因为域名的变化发生改变。(陈皓注:301重定向一般用作域名变更)



  • 知道并不是所有的爬虫都是好的,有些爬虫的行为并不好。(陈皓注:比如向你的网站发大量的请求导致服务器性能低下)



  • 如果你有一些非文本的内容需要在 Google’s sitemap 中,比如视频什么的。Tim Farley的答案,可以让你看到很多有价值的东西。


技术



  • 理解什么是 HTTP 比如 GET, POST, sessions, cookies等,了解什么是 “stateless” 无状态。



  • 让你的 XHTML/HTML 和 CSS 符合 W3C 规范,并确认他们都是 合格的。我们的目标是避免浏览器的 “quirks mode”,并且可以让其更容易地能和非标准的浏览器工作,比如读屏器或移动设备。



  • 理解浏览器是怎么处理 JavaScript 的。(陈皓:你会看到有些Javascript代码在页面上前面,有些则是在后面,所以你需要对其了解清楚为什么是这样)



  • 了解浏览器是怎么装载 JavaScript,CSS和其它资源的,了解其对视觉上的影响。(陈皓注:10年前我做网页的时候因为HTML还很弱,所以只能使用table来布局,使用table布局的问题就是整个table读完后页面才会显示,用户的视觉体验并不好)。在某些情况下,你可能需要把你的脚本放在页面的后面。



  • 理解 JavaScript 的 sandbox 是怎么怎么工作的,尤其是你想使用iframes。



  • 请注意 JavaScript 可能会被禁止,这样会让你的AJAX失效。就算是大多数用户都开启了Javascript功能,但是也可能在一些情况下脚本是不被运行的,比如移动终端上,搜索引擎抓网页的时候也并不会执行你的脚本。




  • 尽可能多地学习你的部署平台。(比如:操作系统,Web Server:Apache/Nginx,防火墙,数据库,等等)





  • 把视觉效果和JS框架合在一起讨论,考虑使用一个Service,如:Google Libraries API 来装载框架,这样可以让浏览器可能早就把这个JS框架已经cache了而不需要再从你的网站上下载了。


Bug fixing



  • 明白你会花20%的时间写代码,而80%的时候在维护,所以你要小心编码。(陈皓注:参看本站的“多些时间可以少些代码”一文)



  • 设计一个好的错误报告机制。



  • 设计一个入口可以让人们联系到你并给你建议和批评。



  • 为你开发的东西形成文档,这样可以让后来的人容易维护你的软件和系统。



  • 频繁备份(也可确保你的这些备份功能正常) Ed Lucas 的回答 有一些忠告。你还需要有一个恢复策略,而不只是一个备份策略。



  • 使用一个版本控制系统来保存你的代码,如: Subversion 或 Git.



  • 别忘了做Acceptance Testing,使用 Selenium 能帮到你。



  • 确保你有足够的日志,你可以使用 log4j, log4n 或 log4r。如果出了问题,这是可以让你快速找到问题的方式。



  • 当你写日志的时候,确保你记录了你捕获了处理和未处理异常。报告和分析日志可以让你知道你网站的问题。


这里有多的东西被省略了,并不是因为那些可能不是有帮助的答案,而是因为那些东西都太细节了,超出了这个问题的范围,因为这本来就是一个Web开发需要了解东西的Overview。我想你可以去看一下其它人的答案,我有时间,我也会补充别人的答案进来。请随意编辑这个答案,因为可能有些东西忘了,也有可能有些东西不对。


(全文完)



















您可能也喜欢:




Web开发人员速查卡





开源中最好的Web开发的资源





30+ Web下拉菜单





如何在低速率网络中测试 Web 应用





Web中的省略号



无觅

相关文章

2011/12/05

关于PM2.5的十个问答【转载】

关于PM2.5的十个问答:

作者:谭知还


1. PM2.5是什么?


如果是初次接触,“PM2.5”这一串字符也许会让你看得云里雾里,不知所云。其实它有一个容易理解的中文名——细颗粒物,是对空气中直径小于或等于2.5微米的固体颗粒或液滴的总称。这些颗粒如此细小,肉眼是看不到的,它们可以在空气中漂浮数天。人类纤细的头发直径大约是70微米,这就比最大的PM2.5还大了近三十倍。


PM是英文particulate matter(颗粒物)的首字母缩写。准确的PM2.5定义要在“直径”之前加一个修饰语“空气动力学”,这可不是故作高深。空气中的颗粒物并非是规则的球形,那怎么定义又怎么测量其直径呢?在实际操作中,如果颗粒物在通过检测仪器时所表现出的空气动力学特征与直径小于或等于2.5微米且密度为1克/立方厘米的球形颗粒一致,那就称其为PM2.5。这样的定义也就决定了在测定PM2.5时,需要利用空气动力学原理把PM2.5与更大的颗粒物分开,而不是用孔径为2.5微米的滤膜来分离。


知道了PM2.5的定义,就很容易得出PM10的定义了——将定义中的2.5换成10即可,PM10也被称为可吸入颗粒物。在PM10中,直径在2.5至10微米之间的颗粒物被称为粗颗粒物,与细颗粒物相对。



2. PM2.5来自哪里,都有些什么成分?


虽然自然过程也会产生PM2.5,但其主要来源还是人为排放。人类既直接排放PM2.5,也排放某些气体污染物,在空气中转变成PM2.5。直接排放主要来自燃烧过程,比如化石燃料(煤、汽油、柴油)的燃烧、生物质(秸秆、木柴)的燃烧、垃圾焚烧。在空气中转化成PM2.5的气体污染物主要有二氧化硫、氮氧化物、氨气、挥发性有机物。其它的人为来源包括:道路扬尘、建筑施工扬尘、工业粉尘、厨房烟气。自然来源则包括:风扬尘土、火山灰、森林火灾、漂浮的海盐、花粉、真菌孢子、细菌。


PM2.5的来源复杂,成分自然也很复杂。主要成分是元素碳、有机碳化合物、硫酸盐、硝酸盐、铵盐。其它的常见的成分包括各种金属元素,既有钠、镁、钙、铝、铁等地壳中含量丰富的元素,也有铅、锌、砷、镉、铜等主要源自人类污染的重金属元素。


2000年有研究人员测定了北京的PM2.5来源:尘土占20%;由气态污染物转化而来的硫酸盐、硝酸盐、氨盐各占17%、10%、6%;烧煤产生7%;使用柴油、汽油而排放的废气贡献7%;农作物等生物质贡献6%;植物碎屑贡献1%。有趣的是,吸烟也贡献了1%,不过这只是个粗略的科学估算,并不一定准确[1]。该研究中也测定了北京PM2.5的成分:含碳的颗粒物,硫酸根,硝酸根,铵根加在一起占了重量了69% 。类似地,1999年测定的上海PM2.5中有41.6%是硫酸铵、硝酸铵,41.4%是含碳的物质[2]。


3. PM2.5对健康有什么危害?


PM2.5主要对呼吸系统和心血管系统造成伤害,包括呼吸道受刺激、咳嗽、呼吸困难、降低肺功能、加重哮喘、导致慢性支气管炎、心律失常、非致命性的心脏病、心肺病患者的过早死[3]。老人、小孩以及心肺疾病患者是PM2.5污染的敏感人群。



如果空气中PM2.5的浓度长期高于10微克/立方米,死亡风险就开始上升。浓度每增加10微克/立方米,总的死亡风险就上升4%,得心肺疾病的死亡风险上升6%,得肺癌的死亡风险上升8%[4-5]。这意味着多大的风险呢?我们可以拿吸烟做个比较。吸烟可使男性得肺癌死亡的风险上升21倍(也就是上升2100%),女性的风险上升11倍(1100%);使中年人得心脏病死亡的风险上升2倍(200%)[6]。和吸烟一比,PM2.5的危害就显得非常小了。如果吸烟都没有让你感到恐惧,那你就不用担心眼下PM2.5超标对健康的影响了。


但是,从全社会的角度出发,降低这些看似不大的风险,收益却是很大的。美国环保局在2003年做了一个估算:“如果PM2.5达标,全美国每年可以避免数万人早死、数万人上医院就诊、上百万次的误工、上百万儿童得呼吸系统疾病”[7]。相比当前的中国,美国当时的空气质量已经相当不错,只有很少的地区存在略微的超标[8]。如果中国的PM2.5能够达标,社会收益无疑将会是巨大的。


上述关于PM2.5死亡风险的数据源自2002年发表于《美国医学会杂志》的一篇论文[4]。这篇论文分析了一项长期研究中参与者的死亡率和空气污染之间的关系,发现死亡率升高与PM2.5和二氧化硫的污染有关联,而与粗颗粒物污染没有可靠的关联。该项在美国进行的前瞻性研究始于1982年,当时招募了120万的参与者。论文的结论是基于长达16年的随访数据,是目前关于PM2.5污染增加死亡风险最可靠的证据。


4. 如果没有污染,PM的浓度有多高,现在实际有多高?


即使没有人为污染,空气中也有一定浓度的PM2.5,这个浓度被称为背景浓度。在美国和西欧,背景浓度大约为3-5微克/立方米[5],澳大利亚的背景浓度也在5微克/立方米左右[9]。中国的背景浓度有多高?目前尚无公开的数据,但应该不会和其他国家相差太大。


中国尚未开展大范围的PM2.5监测,公开的PM2.5数据非常有限。位于广州的环保部华南环境科学研究所从2011年从6月13日开始每日发布PM2.5监测值[10],截至11月20日,浓度范围在0.6至99 微克/立方米之间(注:0.6这个数据应该是仪器故障所致,正常值不会这么低),平均值为38微克/立方米,这个值超过了拟发布的年均标准(35微克/立方米)[11]。在这121天中,已经有6天超过了拟发布的日均标准(75微克/立方米)。从近十几年来发表的科学论文中,可以查到中国一些大城市某一区域某一阶段的PM2.5的测定值。例如,2000年在北京的5个监测点测得的PM2.5年均值为101微克/立方米[2];2008北京奥运会的17天中,在北大测得的PM2.5最低28.2,最高147.4微克/立方米, 平均64.7微克/立方米[12]。1999年,在上海两个监测点测定的PM2.5年均值为57.9和61.4 微克/立方米[2]。这些年均值都远高于拟发布的年均标准(35微克/立方米)。


除了查阅以上这些零星的数据,我们还可以根据PM10的数据估算一下PM2.5的浓度。按照中国现行的空气质量标准,PM10是常规监测指标,全国性监测已开展了十几年。从2001年至2009年,全国主要城市PM10的平均值从125降到了90微克/立方米[13]。PM2.5和PM10之间的比例通常在0.5-0.8之间,我们取0.8做一个极端估算可得:2009年全国主要城市的PM2.5平均值为72微克/立方米,是即将发布的新标准的2.1倍(35微克/立方米)。和美国的空气质量相比,这差多少呢?2009年,全美国年均PM2.5为9.9微克/立方米,在724个监测点中有90%以上的监测点年均值低于12.6微克/立方米[8]。


全国的年均值只是用来反映我国颗粒物污染的总体现状,对于评价我们所在城市的空气质量意义并不大。我们更需要关注的是离我们生活、工作最近的监测点的数据。这个数据哪里有呢?如果你生活在北京而且恰好在美国大使馆附近,那你可以参考该馆发布的实时PM2.5数据。


不过值得一提的是,虽然美国大使馆的监测仪器是专业的(见问答9),但是大使馆毕竟不是环境监测部门,没有证据表明他们的工作人员具备相应的专业知识,而且他们测出的PM2.5数值经常比环保部门以及第三方测定的PM10还高,这是不正常的。所以,美国大使馆的数据也只能“仅供参考”。


然而,我们更多的人并不生活在北京,即使在北京也不在美国大使馆附近,那我们该看哪里的数据呢?全国主要城市的实时PM10数据可以在环境监测总站的网站上查到,每个城市都有数个监测点,我们可以选离得最近的那个点作参考。如果你很乐观,那么可以估算PM2.5=PM10 × 0.5,如果你很悲观,那么就估算PM2.5=PM10 × 0.8。


5. 其他国家实施PM2.5的标准了吗,标准值是多少?


自从美国于1997年率先制定PM2.5的空气质量标准以来,许多国家都陆续跟进将PM2.5纳入监测指标。如果单纯从保护人类健康的目的出发,各国的标准理应一样,因为制定标准所依据的是相同的科学研究结果。然而,标准的制定还需考虑各国的污染现状和经济发展水平,在一个空气污染严重的发展中国家制定极为严格的空气质量标准只能成为一个华丽的摆设,没有实际意义。根据美国癌症协会和哈佛大学的研究结果,世界卫生组织(WHO)于2005年制定了PM2.5的准则值。高于这个值,死亡风险就会显著上升。WHO同时还设立了三个过渡期目标值,为目前还无法一步到位的地区提供了阶段性目标,其中目标-1的标准最为宽松,目标-3最严格[5]。


下表列举了WHO以及几个有代表性的国家的标准。中国拟实施的标准与WHO过渡期目标-1相同。美国和日本的标准一样,与目标-3基本一致。欧盟的标准略微宽松,与目标-2一致,澳大利亚的标准最为严格,年均标准比WHO的准则值还低。标准的宽严程度基本反映了各国的空气质量情况,空气质量越好的国家就越有能力制定和实施更为严格的标准。




【世界卫生组织(WHO)和一些国家的PM2.5标准(单位:微克/立方米)】


6. 中国的PM2.5标准和其他国家比,很落后吗?


中国的PM2.5标准拟于2016年生效,虽然比美国落后了一二十年,但和欧盟的2015年生效相比,也不算太晚。如果仅从标准的数值来看,中国即将发布的新标准已经与WHO过渡期目标-3一致,虽然落后于发达国家,但也算是开始了三步走的第一步。然而,即使标准值相同,而评判是否达标的方式不同,约束力是有极大差异的。举个例子,中国现行的空气质量标准制定于1996年,其中PM10的日均标准为150微克/立方米,表面上已和美国现行标准一样严格。但是,按照美国的标准,平均每年最多只能有1天超标,否则就算不达标,超标地区需要提交改进方案并加以实施。而在中国的标准文件中,没有类似的规定。各地区在执行标准时,只是计算每年的“达标天数”和“达标率”。PM10的标准至今已经执行了15年,一个86.2%的达标率还可以作为正面消息报道[14]。


在即将发布的PM2.5新标准中,依然没有规定多高的达标率才是可接受的。WHO和其他国家是怎么规定的呢?WHO要求每年最多有3天超标(99%的达标率),澳大利亚最多5天,而美国和日本要求的达标率为98%。中国PM2.5标准的落后不仅是在标准值,更重要的是在约束力上。


7. 新标准即将发布,为什么要到2016年才实施??


对于这个问题,标准制定者是这样回答的:“考虑到环境空气质量标准实施是一项复杂的系统工程,以及目前全国的环境监测能力现状,结合现行标准实施过程中的经验,为保障数据准确性和可比性,将全国统一实施本标准的时间定为2016 年1 月1 日,以便为各地区预留足够的准备时间,加强标准实施的有关配套工作[15]。”


这么说有道理吗?我们不妨参考一下其他国家是怎么做的。在美国和澳大利亚环保部门的网站上,对于PM2.5标准的制定过程有非常详细的备忘录,我们就以这两个国家为例。


美国早在1994年就宣布要增加PM2.5的指标。1994-1996年间,开了多次研讨会,在1996年底发布了征求意见稿。征求意见期间共接了14000个电话,收到4000封电子邮件、50000份书面或口头意见,而且多次通过听证会、会议、电视节目征求意见。经过这番诚意十足的意见征求,终于在1997年9月16日发布了PM2.5的标准。但在那时,尚未展开全国的PM2.5监测,直到1999年各州才陆续开始,2000年PM2.5监测常规化[16]。


澳大利亚在2001年开始考虑,并在2003年制定了PM2.5的非强制标准。制定该标准的目的是收集数据,以便检讨这一标准是否合理,并准备于2005年开始考虑制定强制标准。在征求意见的过程中,有反对者认为应该直接设立强制标准,否则缺乏约束力,意义也就不大。澳大利亚环保委员会(NEPC)认为当时缺乏足够的PM2.5监测数据,没法很好地评估不达标会带来怎样的影响,坚持了原先的做法[9]。直到今年(2011年),澳大利亚的PM2.5仍然不是强制指标[17],不过这期间一直在做大量的监测和基础研究工作[18]。


中国的PM2.5强制标准正在征求意见中,并拟于2016年实施,“实施”的含义应该是指开展常规检测并公布结果。美国从1997年发布标准到2000年全国监测常规化花了两三年的时间。澳大利亚2003年发布非强制标准,随后即开展全国监测。考虑到中国的国情,延后几年“实施”有其合理性,但是四五年的时间是否太长了呢?


8. 怎么测定PM2.5?


空气中漂浮着各种大小的颗粒物,PM2.5是其中较细小的那部分(定义见问答1)。不难想到,测定PM2.5的浓度需要分两步走:(1)把PM2.5与较大的颗粒物分离;(2)测定分离出来的PM2.5的重量。目前,各国环保部门广泛采用的PM2.5测定方法有三种:重量法、β射线吸收法和微量振荡天平法。这三种方法的第一步是一样的,区别在于第二步。


将PM2.5直接截留到滤膜上,然后用天平称重,这就是重量法。值得一提的是,滤膜并不能把所有的PM2.5都收集到,一些极细小的颗粒还是能穿过滤膜。只要滤膜对于0.3微米以上的颗粒有大于99%的截留效率,就算是合格的[19]。损失部分极细小的颗粒物对结果影响并不大,因为那部分颗粒对PM2.5的重量贡献很小。



重量法是最直接、最可靠的方法,是验证其它方法是否准确的标杆。然而重量法需人工称重,程序繁琐费时。如果要实现自动监测,就需要用到另外两种方法。


β射线吸收法:将PM2.5收集到滤纸上,然后照射一束beta射线,射线穿过滤纸和颗粒物时由于被散射而衰减,衰减的程度和PM2.5的重量成正比。根据射线的衰减就可以计算出PM2.5的重量[20]。美国大使馆那台知名度很高的仪器依据的就是此原理。


微量振荡天平法:一头粗一头细的空心玻璃管,粗头固定,细头装有滤芯。空气从粗头进,细头出,PM2.5就被截留在滤芯上。在电场的作用下,细头以一定频率振荡,该频率和细头重量的平方根成反比。于是,根据振荡频率的变化,就可以算出收集到的PM2.5的重量[20]。


将PM2.5分离出来的切割器又是怎么工作的呢?在抽气泵的作用下,空气以一定的流速流过切割器时,那些较大的颗粒因为惯性大,一头撞在涂了油的部件上而被截留,惯性较小的PM2.5则能绝大部分随着空气顺利通过。也许你已经觉察到,这和发生在我们呼吸道里的情形是非常相似的:大颗粒易被鼻腔、咽喉、气管截留,而细颗粒则更容易到达肺的深处,从而产生更大的健康风险。


对于PM2.5的切割器来说,2.5微米是一个踩在边线上的尺寸。直径恰好为2.5微米的颗粒有50%的概率能通过切割器。大于2.5微米的颗粒并非全被截留,而小于2.5微米的颗粒也不是全都能通过。例如,按照《环境空气PM10和PM2.5的测定 重量法》的要求,3.0微米以上颗粒的通过率需小于16%,而2.1微米以下颗粒的通过率要大于84%[21]。


特殊的结构加上特定的空气流速共同决定了切割器对颗粒物的分离效果,这两者稍有变化,就会对测定产生很大影响,而使结果失去可比性。因此,美国环保局在1997年制定世界上第一个PM2.5标准的时候,一并规定了切割器的具体结构[16]。于是,虽然 PM2.5的测定仪器有不少品牌,它们外观却极为相似。


9. 市面上有些手机大小的仪器号称可以测PM2.5,靠谱吗?


和环保部门采用的标准方法相比,用非专业仪器测PM2.5显然是不可靠的,但很难说到底有多不准,只有拿来和标准方法对比一下才知道。测出来的数据也许能说明一点问题,比如能分辩出房间里有没有人吸烟,是不是刚扫过地,可是这些你的鼻子也能做到吧。


市面上的非专业仪器利用光散射的原理测定颗粒物浓度,这种方法并没有被各国环保部门采纳为标准方法,但是有依据此原理制成的专业仪器,在科研中也有运用。空气中的颗粒物浓度越高,对光的散射就越强。光的散射相对容易测,把它测出来,理论上就可以算出颗粒物浓度了。但在实际运用中,事情并没有这么简单。光的散射与颗粒物浓度之间的关系是很不确定的,受到诸多因素的影响,例如颗粒物的化学组成、形状、比重、粒径分布,而这些都取决于污染源的组成。这意味着光散射和颗粒物浓度之间的换算公式随时随地都可能在变,需要仪器使用者不断地用标准方法进行校正,没有经过科学训练的业余人士不大可能办得到。有研究者做过理论计算:利用光散射仪测定PM2.5,至少有30-40%的不确定性[22]。这种不确定性是这类仪器固有的,质量可靠的专业仪器尚且如此,更何况市面上仪器的质量并不都是理想的呢。


作为普通老百姓,与其把精力和金钱花在自己监测空气质量上,还不如呼吁环保部门早日监测PM2.5并公开数据。现在新的《环境空气质量标准》正在向公众征求意见,并拟于2016年实施[11],公众的声音也许能使这一时间大大提前。至于有人宣称自己动手监测,可以监督环保部门,防止他们伪造数据。这其实是没有道理的。非专业人士操作非专业的或质量不高的专业仪器测得的结果是不可靠的,没有能力去挑战环保部门的结果,这种监督可以说是无效的。


10. 灰霾天是PM2.5引起的吗?


虽然肉眼看不见空气中的颗粒物,但是颗粒物却能降低空气的能见度,使蓝天消失,天空变成灰蒙蒙的一片,这种天气就是灰霾天。根据《2010年灰霾试点监测报告》,在灰霾天,PM2.5的浓度明显比平时高,PM2.5的浓度越高,能见度就越低[23]。


虽然空气中不同大小的颗粒物均能降低能见度,不过相比于粗颗粒物,更为细小的PM2.5降低能见度的能力更强。能见度的降低其本质上是可见光的传播受到阻碍。当颗粒物的直径和可见光的波长接近的时候,颗粒对光的散射消光能力最强。可见光的波长在0.4-0.7微米之间,而粒径在这个尺寸附近的颗粒物正是PM2.5的主要组成部分。理论计算的数据也清楚地表明这一点:粗颗粒的消光系数约为0.6平方米/克,而PM2.5的消光系数则要大得多,在1.25-10平方米/克之间,其中PM2.5的主要成分硫酸铵、硝酸铵和有机颗粒物的消光系数都在3左右,是粗颗粒的5倍[24]。所以,PM2.5是灰霾天能见度降低的主要原因。


值得一提的是,灰霾天是颗粒物污染导致的,而雾天则是自然的天气现象,和人为污染没有必然联系。两者的主要区别在于空气湿度,通常在湿度大于90%时称之为雾,而湿度小于80%时称之为霾,湿度在80-90%之间则为雾霾的混合体[25]。






参考文献:

1. Zheng, M., et al., Seasonal trends in PM2.5 source contributions in Beijing, China. Atmospheric Environment, 2005. 39(22): p. 3967-3976.

2. Ye, B.M., et al., Concentration and chemical composition of PM2.5 in Shanghai for a 1-year period. Atmospheric Environment, 2003. 37(4): p. 499-510.

3. 美国环保局网站, http://www.epa.gov/air/particlepollution/health.html

4. Pope, C.A., et al., Lung cancer, cardiopulmonary mortality, and long-term exposure to fine particulate air pollution. Jama-Journal of the American Medical Association, 2002. 287(9): p. 1132-1141.

5. 世界卫生组织, WHO Air quality guidelines for particulate matter, ozone, nitrogen dioxide and sulfur dioxide (Global update 2005, Summary of risk assessment).http://whqlibdoc.who.int/hq/2006/WHO_SDE_PHE_OEH_06.02_eng.pdf , 2005.

6. 美国疾病控制与预防中心网站,http://www.cdc.gov/tobacco/data_statistics/fact_sheets/health_effects/tobacco_related_mortality/

7. 美国环保局, Guidance for determining boundaries of fine particle attainment and nonattainment areas (fact sheet). 2003.

8. 美国环保局网站, http://www.epa.gov/airtrends/pm.html#pmloc

9. 澳大利亚环保委员会, Summary of Submissions received in relation to the Draft Variation to the National Environment Protection (Ambient Air Quality) Measure for Particles as PM2.5 and National Environment Protection Council's Responses to those Submissions.

10. 环保部华南环境科学研究所网站, http://www.scies.org/Data.asp

11. 环保部网站, 《环境空气质量标准》(二次征求意见稿).http://www.mep.gov.cn/gkml/hbb/bgth/201111/W020111121388004546031.pdf

12. Wang, W.T., et al., Atmospheric Particulate Matter Pollution during the 2008 Beijing Olympics. Environmental Science & Technology, 2009. 43(14): p. 5314-5320.

13. 环保部网站, 《环境空气质量标准》(征求意见稿)编制说明.http://www.zhb.gov.cn/gkml/hbb/bgth/201011/W020101130374443039627.pdf

14. 环保部网站新闻, 陕西渭南城区前半年环境空气质量再创新高.http://www.mep.gov.cn/zhxx/gzdt/201107/t20110725_215367.htm.

15. 环保部网站, 《环境空气质量标准》(二次征求意见稿)编制说明.http://www.mep.gov.cn/pv_obj_cache/pv_obj_id_85F8326F38B939A7339DDA6AC9FA3A6D87680400/filename/W020111116602406614804.pdf

16. 美国环保局网站, National Ambient Air Quality Standards for Particulate Matter; Final Rule.http://epa.gov/ttncaaa1/t1/fr_notices/pmnaaqs.pdf

17. 澳大利亚环保委员会网站, http://www.environment.gov.au/atmosphere/airquality/publications/standards.html

18. 澳大利亚环保委员会, Review of the National Environment Protection (Ambient Air Quality) Measure: Discussion Paper, Air Quality Standards.http://ephc.gov.au/sites/default/files/AAQ_DiscPpr__Review_of_the_AAQ_NEPM_Discussion_Paper_AQ_Standards_Final_201007.pdf

19. 国家环境保护标准, 环境空气PM10和PM2.5的测定 重量法. (HJ 618-2011).

20. 美国环保局, Guidance for using continuous monitors in PM2.5 monitoring networks.http://www.epa.gov/ttnamti1/files/ambient/pm25/r-98-012.pdf

21. 国家环境保护标准, 环境空气PM10和PM2.5的测定 重量法 (HJ 618-2011)

22. Molenar, J.V., Theoretical analysis of PM2.5 mass measurements by nephelometry.http://vista.cira.colostate.edu/improve/publications/graylit/014_AerosolByNeph/AerosolbyNeph.pdf

23. 环境监测总站网站, 2010年灰霾试点监测报告完成. http://www.cnemc.cn/publish/106/news/news_18191.html

24. 美国环保局网站, Introduction to visibility. http://www.epa.gov/visibility/pdfs/introvis.pdf

25. 白志鹏,董海燕,蔡斌彬,朱坦,姚学祥, 灰霾与能见度研究进展. 过程工程学报, 2006. 6(增刊2).


原文出自科学松鼠会:

http://songshuhui.net/archives/62570

咖啡因是个什么东西[ 转载]

咖啡因是个什么东西:
城市生活可不像乡村生活那么简单,一个人如果手机和msn联系人超过了500这个数量,就一定要经常更新和补充一些信息来维持自己在社交圈中体面的地位。二十年前做到这点很容易,随便说几个五星级酒店的招牌菜品,身上有几件名牌衣服就已经能获得大部分人的艳羡了。到了Google时代,不花费大量的精力,想在饭局或者酒会里得到一些人赞许的眼神?想都别想。

就拿咖啡来说,端出烫金的红色雀巢咖啡杯,用金色长把勺漫不经心搅一搅速溶咖啡就能让客人满足的时代早已一去不复返;卡普奇诺、意大利浓缩、蓝山咖啡的区别也已经成了常识;100多块钱就能买到的咖啡机,让强调每天早上都要“煮”杯咖啡的人们也失去了乐趣。

那么知道一点咖啡发祥于埃塞俄比亚高原,在17世纪后叶风行欧洲,全世界的咖啡因消耗量大约是每人每天70毫克这样的小常识是必要的,但如果在咖啡馆里开策划会的休息时间,轻描淡写的聊聊有关咖啡的科学,显然是最合时宜和最酷的一件事。

咖啡能风靡全球的原因自然是因为咖啡因,但试图说清咖啡因在脑内如何作用是件不明智的事儿,没有科学家敢微笑着说自己解决了脑部对各种精神刺激品反应机制的问题。所以用不着重复那些咖啡因会影响脑部中间边缘多巴胺系统,产生快感的模糊的话,聊聊无咖啡因咖啡吧!这可是一个非常酷的话题。

咖啡因属于植物化学物中的生物碱团伙,跟尼古丁,古柯碱,吗啡和蕃木龟碱之类的物质都算一伙儿的,它们的共同特点就是都是苦的。咖啡因也是咖啡成瘾的头号罪犯。如果想每天享受滴滴香浓的咖啡,又不受上瘾之扰,就得把咖啡因从咖啡里去除。通常消除掉97%以上的咖啡因,才能算是真正的无咖啡因咖啡。不要担心去掉了咖啡因咖啡失去了苦味儿,咖啡因只占咖啡苦味的10%而已。

这个过程一般在绿咖啡豆还没烘烤之前就要进行了。通过蒸咖啡豆,让大部分的咖啡因转移到豆子表面,再用溶剂洗涤,就可以消除大部分的咖啡因。

咖啡里有800到1000种化学物质,想不破坏掉它们的平衡,把1%到2%的咖啡因消除掉可不是一件容易的事儿。这个世界总是会有聪明人的,1903年,德国有个叫Ludwig Roselius的商人首次琢磨出了去除咖啡因的办法——有说是因为他认为自己父亲的健康受到了咖啡因的影响,也有传说他是偶然间的发现——不管怎样,他发现咖啡因容易溶解在苯和氯仿之类的有机溶剂里,还为此申请了专利,弄出了个咖啡品牌叫Sanka,畅销一时。

但苯可是种致癌物质,吸入高浓度的苯蒸气或者误服苯液都能引起急性中毒,毒性很快的抑制中枢神经系统,另外还会对造血、呼吸系统下手。口服10毫升就翘翘了。氯仿也就是三氯甲烷,更是高毒性的东东,不仅能麻醉中枢神经系统,还损害心、肝、肾等内脏。光照下,氯仿和空气中的氧气反应,能产生剧毒的光气……如果想给自己老板的咖啡里下毒,这样可以,否则,你想呢?

再后来,又有人选定了二氯甲烷做试验。除了咖啡因之外,它只会极少量的溶解其它物质,而且很容易挥发,有残留的话,通过加热就可以赶跑了。咖啡因被解决了,

到了1980年,二氯甲烷被认定为致癌物质,虽然咖啡里残留的二氯甲烷通常都不会超过规定的十万分之一,但有毒这两个字很难让人产生安全感。所以二氯甲烷被有机溶液醋酸醚代替了。因为许多水果里都有这种物质,所以我们可以时髦的叫这个做:纯天然消除咖啡因法。

还有一种高科技方法是把咖啡因萃取到二氧化碳里,但不是气态、固态、和液态的二氧化碳,而是高温高压下呈现超临界的独特形式的二氧化碳。

瑞士水溶法显然是最有创意的,从头到尾只用水。先把咖啡豆水洗一遍,然后用一套过滤系统把那些水里的咖啡因单单“滤出来”。最后,那些充满了咖啡因除外的一切咖啡化学物,又回到咖啡豆里。听起来很智慧很安全吧。

不过,无论是醋酸醚,还是瑞士水溶法,还是二氧化碳萃取,这些技术都是成熟和安全的,选择哪一款完全在于个人喜好,这点一定要着重强调。

好了,下次喝咖啡的时候,不管是星巴克还是公司的茶水间,呷一口冰水,喝一口咖啡,不急不徐的讲一段咖啡的萃取工艺,不动声色间,你的别人心里内涵分至少能上升10%个百分点。长期看我的专栏,早晚有一天,会拿满分哒!

原文出自科学松鼠会:
http://songshuhui.net/archives/62548

2011/09/04

How to create a safe pasword


Here are some suggestions:
- Combine the first letters of the words from a phrase or sentence that's easy for you to remember.

- Drop vowels and consonants from familiar words, and combine the result with numbers and special characters—like a vanity license plate.

- Invent a word—one not in the dictionary—and combine it with numbers and special characters.

2010/12/04

Everbox邀请码[5个]

留下你的email地址。前五位发送邀请码,如果邮箱无效,依次往后推。直到送完为止!

详情参考:
http://www.everbox.com/

最多可以拿到10G免费空间。

2010/08/25

Ubuntu 10.04 启动时黑屏问题【解决】

1. 症状

从9.10升级到10.04, 升级之后进入10.04之后,splash出现一会儿之后黑屏。使用Alt+Fx键等也无法切换到控制台。Ctr+Alt+Del也没有任何反应。只能手工关机重启。机器是toshiba笔记本 A50, 5年前的型号,显卡使用intel extreme X 内置显卡。

2. 原因

问题在于login画面显示上。虽然为黑屏,实际上是login画面,如果盲敲密码和回车的话,还是可以进入桌面的。问题出在了从splash切换到login画面时候显卡的mode设置上,可能一些老的显卡不工作。

3. 解决方法

修改启动参数,添加i915.modeset=1。

如果不行i915.modeset=0。

如果还不行xforcevesa。

任何一个如果可以正常启动,修改/etc/default/grub文件,找到GRUB_CMDLINE_LINUX_DEFAULT=“…”行,添加相应参数即可。

其他显卡以及其他解决方法,参考:

https://wiki.ubuntu.com/X/Bugs/Lucidi8xxFreezes

4. 注

好像该问题仅仅与2.6.32内核有关,如果其他方法不行,改换为2.6.31或者升级内核即可解决该问题。

2010/07/11

Linux下安装CNet-906 USB无线网卡

前言

老式东芝笔记本,买的时候(2004年)没有内置无线网卡。现在到处都是无线,图书馆还好,还有有线插口。但是Mcdonald里面要找一个有线插口很难。估计这古董电脑还能使用一段时间,但是今后买新的时候坑定有内置无线卡,所以放狗搜索一把,还真发现了一款廉价+功能强大的USB外置无线网卡,CNet-906。不过此CNet非彼CNet.com,只是一家生产无线设备的台湾小企业,和大名鼎鼎的CNet门户网站没有一点关系。顺便说一句,日本产的东芝笔记本质量真他妈的好!用了6年多,楞是一丁点儿的问题都没有。

CNET-906购买(15$),支持IEEE 802 11n draft标准:

http://www.directron.com/cwu906.html

驱动

Windows下面很简单了,下载下来安装即可。官方没有提有Linux的驱动,但是下载下来或者附带CD里面放了Linux的驱动,说实在的,当时也是看中了这一点。内置芯片用的是Realtek的8192芯片,大厂家的,一般驱动也就好装。

安装步骤

解压Linux驱动,阅读说明。说明还是比较清楚的。需要手工编译驱动模块,所以需要安装Linux的header文件和gcc编译器,具体怎么做,放狗就知道,文章太多了。

第一步make编译基本没有问题,除了几个warning之外,顺利产长了r8192s_usb.ko文件,该文件在./HAL/rt8192su目录里面。

第二步make install,除了一些问题。抱怨:“*** 没有规则可以创建“kernel/bounds.s”需要的目标“kernel/bounds.c””。这个问题需要自己编译kernel解决,需要将kernel配置为可装入module。其实默认安装的预先编译的kernel就配置为支持可装入module,不知道为什么还是出错。没有深究这个问题,决定采取说明里面的第二种方法,手工试试看。

第三步按照说明的第二种方法,打入./wlan0up,执行脚本之后,wlan0网络接口就居然出现了,KDE桌面报告发现wlan0接口。心中窃喜,使用GUI网络管理器,设置介入网络和KEY之后(我使用WEP认证,WPA还需要其他设置),居然链接上了。

第四步看来不用make install也能工作,既然make install不能执行,查看一下Makefile看看它都做了什么。然后按照里面的步骤,手工进行安装。大体步骤如下:

- 复制RadioPower.sh到/etc/acpi/events/下面

- 复制Wireless*.sh到/etc/acpi/下面

- 复制r8192s_usb.ko到/lib/modules/ker-version/kernel/drivers/net/wireless/RTL8192SU/下面

大工搞成!下面是设置启动时候自动载入r8192s_usb模块。

-编辑/etc/modules添加一行“r8192s_usb”即可。

【2010/08 更新】 Ubuntu 10.04版本下编译源代码失败,原因是net_device结构体已经停用,采用新的net_device_ops结构。于此对应,需要Patch与新内核对应的源代码。令人兴奋地是,10.04实际上已经自带了最新的r8192s_usb驱动,直接可以使用。

IceRocket Tags:

2010/06/21

跨州搬家换驾照和汽车登记(从威斯康星到新泽西)

汽车保险

每个州对汽车保险要求不一样。首先联系你的保险公司,询问是否提供新泽西的汽车保险。如果提供,请他们邮寄新的保险卡和资料(保费一般都有变化);如果不提供,购买新的汽车保险,之后取消旧的保险。

注:汽车保险在汽车登记和车检的时候需要出示。如果你的驾照马上就要过期,你可以先要求更换驾照。更换驾照的时候不需要出示保险。

更换驾照

1. 需要出示积分大于6点的资料证明,对于外国人来说:

- 护照(4点)

- 旧驾照(1点)

- SSN(1点)

当然你可以查阅http://www.state.nj.us/mvc/Licenses/6PointID.htm得到更多信息。

2. 需要出示居住地址证明, 租房合同或者水电等的缴费单或者银行的存款声明等。

然后你就可以拿到新泽西的有效期为4年的驾照。需要交费19.95$。

汽车登记和车牌

我的车是二手车,没有分期贷款。至于分期贷款的情况,会有点复杂,请参考文末的链接。首先需要填写title transfer的表单,然后填写新的登记表单。需要的材料如下:

- 原来的title

- 保险公司的证明(policy#和保险公司名)

- SSN

- 里程表读数

- 新泽西的驾照

Title transfer的费用是$60, 新的登记费用(车牌)是$46.50。交完费之后就可以当场拿到新的title和车牌。

车检

拿到新的title和车牌之后,就可以立马就行车检。车检一般在DMV的旁边就有。法定车登记之日起,14日之内必须进行车检。

需要材料:

- 有效驾照(不必要时车主的驾照,就是是说进行车检时不一定车主需要到场)。

- 车登记数据(登记的时候DMV人员会给你一张进行车检的收据)

- 保险卡

车检本身免费。为了避免不必要的麻烦,车检之前,自己最好检查一下前后车灯/刹车灯/拍照灯/方向灯/防风玻璃/仪表盘/轮胎压/轮胎磨损等有没有异常。

熟悉新的交通规则

每州的交规可能不一样,如果有时间,可以过一眼新泽西的交通规则。下面链接的是在线版交规:http://www.state.nj.us/mvc/manuals/index.html

2010/06/09

新泽西汽车保险

三种选项
1. Liability

  • Basic提供新州法定最低需求保险。
  • Standand提供更多可选项,绝大多数司机的选择。

2. Self-insurance, 当且仅当你注册了25辆以上车辆的情况。

新州Liability最低要求

Basic

  • $10,000可选多于一人的受伤/死亡险
  • $5,000财产损坏险

Basic不提供身体伤害险,Basic适合没有太多财产的年轻司机。

Standard

  • $15,000一人的受伤/死亡险
  • $30,000多于一人的受伤/死亡险
  • $5,000财产损坏险
  • $15,000个人伤害保护(PIP)
  • $15,000uninsured/underinsured司机意外伤害

保险证明

如果警察要求你出事保险证明,你必须提供以下一种证明材料:

  • self-insurance证书.
  • 保险公司提供的保险卡

惩罚措施

如果没有保险证明会被出以下列惩罚:

  • 初犯罚款$300, 吊销驾照一年, 并且需要community service.
  • 再犯罚款$500, 吊销执照2年,入狱14天,并且需要30天community service.

2010/04/07

搬家攻略【美国篇】

0. 搬家流程
Pack: 东西打包,可以自己打也可以请人大包,出于费用考虑一般自己打包。大件家具一般搬家公司会给打包。
Load:装车,这个一般搬家公司会给装车。
Unload:卸车,这个一般搬家公司做。
Unpack:大件搬家公司做,小件自己做。
上述是请搬家公司的情况,自己租车搬家的话,所有的流程只有自己负责了。

1. 租车搬家或搬家公司
根据是跨州搬家或者州内搬家,可以选择自己租车或者请搬家公司。
首先搬家费用问题,如果公司出资,不论长途或者短途,自然请搬家公司划算, Pack/Load/Unload/Unpack全部委托为搬家公司即可。如果自己出资,那还是精打细算为好。
租车适合距离比较近的搬家,如果距离较远还是搬家公司比较好一些。

2. 预备资料
http://www.movingscam.com/findmover.shtml(英文资料),本文内容有很多参考了这个资料。

3. 如何确定搬家公司
1). 查找本地yellow page, 根据广告的USDOT#/MC#查找搬家公司的信息。
http://www.safer.fmcsa.dot.gov/CompanySnapshot.aspx
2). 到BBB查找公司的Rating。
http://www.bbb.org/
3). 选出rating较好的公司,预约in-home estimate。
* 不要再网上查找,登记的email地址会被很多搬家公司拿到,将来会有很多垃圾邮件。
* 网上的搬家公司良莠不齐,本地的公司一般会有较好的记录。
* 网上的搬家公司一般不会in-home estimate, 电话里面的口头estimate可能有实际情况出入较大,导致最后引起价格争议。

4. 搬家前
1) 打包所有东西
- Boxes可以到Home depot去买,据说最便宜。或者实现到邮局登记地址变更,之后可以收到Lowes的搬家Box打折券。
- 打包时候要保存每次盒子里面的项目明细,便于将来盒子丢失时知道丢了什么东西和索赔。
- 最好将自己的盒子按自己的规则编号,便于将来确认是否有盒子丢失。

2) 各种更新/取消的手续
- 邮局登记搬家后新地址,寄往旧地址的邮件1年之内可以转发到新地址。
- 取消水/电/垃圾/有线电视/电话等
- 更新信用卡/银行账号地址

5. 搬家后
1) 办理各种手续
- DMV中心,登记车辆/驾照更新。
- 更新主页在线购物网站的地址信息,账单地址信息。
- 更新家庭医生
- 通知USCIS(美国移民局)地址更新,法律要求。
- 通知汽车保险公司地址变更。

2) 重新配钥匙
如果房东已经重新更换了锁,那就不需要了。如果没有,至少需要找个锁匠将锁的密码换掉,或者干脆换把新锁。

6. 如何投诉
把你的痛苦经历分享,让那些坏搬家公司曝光。
https://odr.bbb.org/odrweb/public/getstarted.aspx

2010/04/02

如何观看BBC的iPlayer的TV节目

前言

英国BBC的iPlayer有地域限制,英国国内居民 可以免费观看。但是英国国外(无论英国国民与否)均不能收看。

解决方法

原理很简单,地域限制是根据IP来限制的,如果你能够让你的浏览器具有一个英国的IP地址,限制即可被解除。
1. 最简单的方法,使用英国的代理服务器。
网上到处可以找到免费的代理服务器,不过UK的代理服务器比较难找一些。你可以点击这里链接到我找到的有UK代理服务器的站点。 网站规模很小,拿到Proxy列表之后迅速关掉,方便其他人访问。
我使用其中的UK代理,可以观看iPlayer节目,使用的是Chrome浏览器。 Opera也没有问题。Firefox没有做测试,估计问题不大。

2. SOCKS代理
本来也应该属于代理的大类,单列出来的目的在于如果你有认识在UK的朋友或者同学的话,他们可以简单的提供SOCKS代理给你,这种方法更安全,更长久。网上找到的免费代理服务器可能随时关闭。
具体方法很多,一种就是安装专用的SOCKS服务器,另一种openSSH,如果他/她碰巧使用Linux的话,你只需要他/她听过给你一个user account,然后你就可以使用putty工具在本机建立一个SOCKS代理,具体细节参考这里。然后设定Firefox使用本机的SOCKS代理即可。遗憾的是IE和Chrome没有支持SOCKS的功能,如果想让IE和Chrome支持SOCKS代理,你需要另外一个软件Sockscap,具体怎么做,互联网上查找如何使用SocksCap。
这个对对方的要求高一些,需要有一定的电脑知识,需要有一个Global IP,加上电脑不能关机(至少在你需要使用的时候)。

3. VPN
需要安装客户端软件,不过Windows XP以上自带有VPN的功能。另外没有英国的免费的VPN提供商,至少我目前还没有找到。如果你有这样的信息的话,请告诉我。这里是一个收费的VPN提供商的网站,仅作有钱人的参考。他们也提供收费的代理服务器。

2009/10/10

TOM TOM 720升级以及中国地图升级

前言
通过官方的Tom Tom Home软件,刚买回来的Tom可以成功升级到Navicore8.351, 我下载了835.2419的北美地图,带有IQRoutes和ALG(Advanced Lane Guidance)功能。地图和ttsystem破解之后导航美国和加拿大地图已经没有问题。缺憾的是不能安装中国地图(中国地图需要Asia版Navicore)和没有语音控制功能。

软件
SE_Navicore 8.453.1306下载地址(下载1306的Basicpack和tts):
http://www.ipmart-forum.com/showthread.php?t=380290

原厂Navicore8.450one下载地址同上(需要ASR目录)。

大陆地图740.21下载地址:
http://www.ipmart-forum.com/showthread.php?t=392960

备份系统
无需多言,Copy所有Tom Tom内置Drive里的东西到你自己电脑里面。

升级
1. 快速格式话整个内置硬盘
2. 复制Basicpatch到内置硬盘
3.复制TTSpatch到内置硬盘
4. 破解中国大陆地图
5. 复制破解之后地图到内置硬盘
6. Reset TomTOM 20秒, 之后重新开机,基本功能应该都可以使用了。
7. 破解Tom Tom Home软件(复制basicpatch下面Navcore.8.453.1306@tomtom.com目录到你的HOME DLL目录, 复制内置硬盘下面的Data*(共12个文件)到Navcore.8.453.1306@tomtom.com目录)。
8. 连接电脑,使用home软件增加电脑发音软件包,并且设置使用下载的语音文件。
9. 复制原厂的ASR目录到内置硬盘
10.重新启动TT,大功告成!

SD卡的情况应该和内置硬盘一样,上面步骤里面的所有东西到复制到SD卡里面而不是内置硬盘里面。

Enjoy your Tom Tom!

2008/09/18

驾照攻略【美国篇】

1.基本介绍
国际驾照

2.笔试
15个交通信号
45个交通规则
34美金费用,照相,视力,Walkin考试(不需要预约)
准备材料
1)护照
2)美国的合法身份证明
3)住址证明(水电等的缴费单)
4)表格一张(DMV领取并填写)

考过之后给instruction permit.

3.路考
车灯,刹车,雨水刷等的检查
左转
右转
Y-Turn
U-Turn
Parelell Parking
Lane Changing
大约30分钟

到中国国际汇款攻略【美国篇】

1.支票
2.美国银行到中国银行
3.Paypal或者xoom网络汇款
4.西联汇款
5.其他
汇款限额
美国法律