2007年8月6日星期一

Ubuntu on USB-HDD: 移动硬盘上的ubuntu操作系统

实际上在USB移动硬盘上安装Ubuntu还是挺简单的,只是我起点太低,折腾了好几天,才算终于启动起来。

我是从硬盘来安装的,从网上下载了安装镜像和引导文件,放在一个FAT32分区上,然后用GRUB4DOS来引导安装。这一步是我以前装Fedora Core时就弄过了的,所以比较顺利就进入了安装界面。一开始我用的是Ubuntu7.04的desktop镜像,安装时总是报错,大概是无法安装光盘文件系统,找不到安装文件。到网上查了一下,很多人都有这个问题,需要改用alternate来安装。

设置磁盘分区时,把我的IDE硬盘认成了sda,而移动硬盘则成了sdb。如果你需要使用USB-HDD模式来启动,最好将移动硬盘的第一个分区mount成boot,并且容量不要设置得太大(网上有人设置为512MB,我设置为256MB,还没来得及验证到底可不可以,因为我的机子不支持USB-HDD。这个可能是因为有些BIOS的磁盘寻址范围有限。)

安装过程没有什么可说的,软件包没有选择,自动安装。然后就是引导的问题。我的机子支持USB-ZIP的模式启动,将一个U盘用GRUB4DOS作成启动盘,然后将boot目录下的initrd和vmlinuz拷到U盘根目录下,在menu.lst中设置

title Ubuntu
root (fd0)
kernel (fd0)/vmlinuz-2.6.20-15-generic rw root=/dev/sdb2 rootdelay=10
initrd (fd0)/initrd.img-2.6.20-15-generic

sdb2是根文件目录。实际上根本不需要对initrd作出任何修改,它已经默认支持USB磁盘了。如果是从USB-HDD模式引导,应该也没有什么大的差别。

我花了不少时间在怎么制作支持USB的启动盘initrd这一步上,虽然最后没有成功,但对linux的文件系统有一些了解,还是有些收获的。

在别的机子上也可以运行,不过图形界面要重新配置:

sudo dpkg-reconfigure -phigh xserver-xorg

还是会把IDE硬盘认成sd*,别的机子上也一样,又在网上查了一下,说是新内核把PATA和SATA统一识别为SATA。

参考文献:

2007年7月26日星期四

Excel中的时间统计

做动物行为实验,要统计动物在两个行为箱中停留的时间。
0:00 左 ->4:10中->5:32右......
共有五十多个小时的观察数据,一个一个算吗?还是用Excel试试吧!
从网上参考了一些资料,Excel可以直接对时间求和、求差(通过转换为小数的方法)。中午摸索了半天,实际上处理思路还是很简单的。

首先为了方便快速输入,省略时分秒之间的‘:’,也就是说4:10,输入为410(如果不经过下面的变换,需要输入0:4:10),而1:03:6输入为10306。然后将这些数据通过函数转为标准的h:mm:ss的格式。如下

A D

1816 0:18:16
D2中时间的转换函数为
=IF(A2,TIME(IF(A2<10000,0,left(a2,1)),if(a2<10000,if(a2<1000,if(a2<100,0,left(a2,1)),left(a2,2)), size="3">

其它操作相减、求和在时间数据上的应用与数值是一样的。
Excel时间计算实例剖析:http://www.yesky.com/182/1854182.shtml

2007年7月25日星期三

FlashBoot:好用的USB启动盘制作工具

这两天鼓捣linux下制作USB启动盘的问题,总是不成功,后来执行了一条命令:
#grub-install /dev/sda
我以为这样可以将GRUB安装到U盘,谁知道重启后连IDE硬盘上的系统都进入不了,停在“grub strage 2”。而那个破U盘一如既往地连GRUB的菜单都没有出现。

怎么引导系统呢?光驱太破,读不了以前刻的启动光盘,又没有软驱,只有USB启动这一条了。从网上看到,可以将GRUB4DOS放在启动盘上,用这个工具来恢复。找了半天,试了好几个启动盘制作软件,不是不能启动就是不能正常显示文件夹的内容。

终于找到了FlashBoot这个软件,创建了一个FreeDos的启动盘(不选择格式化似乎也不能正常启动),运行GRUB.exe后,选择查找现有的menu.lst并启动,进入linux后,再运行一遍
#grub-install /dev/hda
硬盘上的GRUB又回来了。

关于Grub-install:http://orgs.man.ac.uk/documentation/grub/grub_3.html
其中讲到用grub-install是不安全的,而在正在运行的系统上安装更是非常危险的。这么说,我连犯了两次错误?忘了这个命令吧。

FlashBoot的网址:http://www.prime-expert.com/flashboot/index.php

2007年7月1日星期日

MATLAB中的GUI程序:选取曲线极大值


这是我正在做的小波模态参数识别程序中的一个模块,由于功能比较独立,所以单独拿出来共享一下。

程序的运行界面如图所示,可以手动或自动地从曲线中选择出极值点,也可以对极值点的列表进行修改。

需要从命令行调用:

peaks = select_freq(xscale,curve);
其中:
xscale:曲线的横坐标;
curve:曲线的幅值;
peaks:极值点在curve中的位置。

手动选择极值点时,对红色光标线两侧的10个点取最大值,不用担心光标对不准的问题。
自动选择可以将阀值以上的极值点一次取出,自动和手动方法可以结合起来使用。

由于是针对我的程序编制的模块,所以调用的自由度不高,如横坐标和纵坐标的名称等。不过这些在程序中也可以很方便地修改。也可以根据需要对该程序进行修改,实现类似的功能。

点击这里下载:下载地址,如果不能下载可以给我发邮件:liuxqsmile@gmail.com.
本文又见:http://lxq0xxx0.blog.163.com/blog/static/25874194200761556858
或:http://groups.google.com/group/liuxq-works/web/matlabgui?hl=zh-CN

2007年6月20日星期三

LabVIEW程序中参数的保存:configuration file

LabVIEW程序中参数的保存:configuration file

LabVIEW程序中经常会有一些参数需要保存到文件,以方便下次读入、或供其它程序读入。一般的方法可能是将这些参数顺序写入一个文本文件,然后再按照相 应的顺序读入,赋给每一个变量。这种方法的缺点是产生的参数文件可读性较差,用户直接打开这个文件只能看到几个值,却不知道其含义。另外一方面, 当参数较多时,逐个保存和赋值也比较繁琐。

Windows系统中有一种后缀名为ini的参数配置文件,其格式一般如下:
[Section1]
Parameter1Name=value1
Parameter2Name=value2
[Section2]
......
这个文件可以分为不同的段(Section),段内包含参数名称(Key)和对应的值。这种配置文件的可读性是很好的。LabVIEW中有一个功能模块Configuration File 支持这种格式的配置文件的读写。可以在help中找到相关的例程。

为了方便多个变量的读写,我们在程序中将参数归类,放到不同的Cluster内,每一个Cluster对应配置文件中的一个段。



而在向配置文件中写入Key时,可以通过一个属性节点获得Cluster内各个元素的名称和值,然后顺序写入文件,如下图:
上图中通过属性节点读出的值的类型是Variant,需要通过Variant To Data转为数值类型。在这里所有的参数都按照同一种类型保存。

参数读入的过程也与此类似。通过属性节点的方法避免了逐个变量的列举,在需要保存的参数较多时比较方便。


2007年6月8日星期五

PDF文件中的一页无法打印

从ScienceDirect下载的一篇论文,共十四页,其中的第十一页无法打印,选择打印后,任务管理器中spoolsv进程的CPU占用率就上升到99%。并且在任务管理器中无法结束任务,只能在服务中停止,但是关闭的速度非常慢,有时需要重新启动进程才能使CPU占用率降下来。

首先怀疑电脑中了病毒,但别的文件又能打印,并且其它时间spoolsv是不占CPU的。又清空了system32\spool\printer中的内容,还是不能解决问题。这个页面下半部分是几个图形,用Acrobat浏览,滚屏时的响应也很慢,可能是这个页面有问题,重新打印这一页到一个新的PDF文件,优化页面等其它的一些设置也不起作用。

最后终于想到可以在linux里面用其它的阅读器试一下。在我的FC6上配置好了打印机(需要启动cups),用Evince打开,浏览到这个页面时仍然非常流畅,打印,问题解决了。我想,Acrobat对PDF的支持非常全面,所以有时候反倒可能会忙中出乱,这时用一些功能简单的阅读器可能效果更好。

2007年6月7日星期四

No Easy Fix for Global Warming 没有简单的方法阻止全球变暖

原文地址:http://sciencenow.sciencemag.org/cgi/content/full/2007/605/2
No Easy Fix for Global Warming
By Phil Berardelli
ScienceNOW Daily News
5 June 2007
翻译:liuxqsmile
(水平所限,漏误难免,请参考原文)

一些科学家认为阻止全球变暖的最好的方法是改变大气层,使其能反射更多的阳光,从而给地球降温。但是一项最新的研究表明,即使这种“地球工程”是可行的,它也会扰乱目前的全球降雨分布格局,并且这项工程中止以后,会带来气温的更快上升。

在过去的一个多世纪里,平均气温一直在升高,很大程度上是由于矿物燃料燃烧产生的二氧化碳构成的保温层。政府间气候变化委员会(Intergovernmental Panel on Climate Change )的一份报告说,现在的气温比一个世纪前升高了0.74摄氏度,并且到本世纪末将会再升高1.7~4.0摄氏度。这将会导致海平面升高、干旱以及其它许多环境问题,所以研究人员和政府都急于找到减缓这种趋势的方法,最主要的是限制二氧化碳的排放。

一些人提出了另一项建议,改变大气层使其反光性更强。方法包括,使用硫酸盐微粒来“播种”云层,甚至在赤道上安装巨型的反光镜。建议者认为,这种方法可能比限制排放更简单,更快速。

斯坦福大学卡内基研究所的生态学家Ken Caldeira和他的研究团体,在他们最新的发表在美国科学院院刊网站上的分析报告中认为,地球工程确实可以降低气温。他们假设在接下来的一个世纪中温室气体排放的趋势不发生变化,然后通过计算机模拟的方法分析了11项可能的措施将会产生的影响。好消息是,即使这些措施在二十年后开始实施也仍然是有效的。坏消息是,在所有的11项措施中,减少太阳辐射都会改变全球降雨的分布,有些地区可能会更涝,而有些以前的农业区则可能会被烤干。更糟的是,如果这些措施突然停止,气温就会急剧升高,很可能是目前变暖速度的20倍,因为二氧化碳仍然一直都在聚集。

阿拉斯加大学的地球物理学家Uma Bhatt说,当我们把气候当成一项工程时,将会面临新的意想不到的困难。西雅图华盛顿大学的大气学家Robert Charlson指出了地球工程的另一个潜在危险:这些措施可以使得全球气温整体降低,但是温室气体造成的局部区域变暖则取决于地表温度的分布,云层、湿度等。所以即使地球工程如预期一样起作用,“结果可能是全球平均气温降低了,但格陵兰的冰川却融化了。”