This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please upgrade to a browser that supports web standards. It's free and painless.

Raymond的狗屋

首页 | 资源中心 | 管理控制台

界面

gangyi | 24 十二月, 2005 21:59

看到一篇文章批评google reader,说界面用了客户端的脚本变得有趣,但功能太简单。

也许是实话,但界面实在太重要了,有时甚至比功能重要。好的界面,起码第一眼吸引人,有多留一会的欲望。


相册的自动播放效果SlideShow (ZT)

gangyi | 23 十二月, 2005 09:52

写了个SlideShow的原型,利用image的complete,判断图片是否调用完全,调用完全以后才显示,否则是LOADING的图片,还考虑的是
1.每调用一张图片之前先出现loading的过程,
2.调用图片中不会因为网速和图片过大而未显示全,直接跳到下一张,要按顺序一张一张播放.
3.第一次 播放的时候,因为调用图片会慢一点,重新播放是调用CACHE里的,速度就快了

代码如下:
<html>
<head>
<title>SlideShow</title>
<script language="JavaScript1.1">
<!--
var yourImages = new Array("http://blog.donews.com/images/blog_donews_com/dodo/79382/o_5540320040330075952.jpg","http://www.iqoo.com/tupian/%D0%C7%D7%F9%B1%DA%D6%BD/iqoo_1113__aries.jpg","http://blog.donews.com/images/blog_donews_com/dodo/79382/o_5540320040330081327.jpg","http://blog.donews.com/images/blog_donews_com/dodo/79382/o_5540320040330081426.jpg")
var currCount=0
var stop=false
function getimg(n){
preImages= new Image()
preImages.src = yourImages[n]
}

function autoPlay(){
if(currCount!=yourImages.length){
document.getElementById("img").style.display="none"
getimg(currCount)
document.getElementById("loadingbar").style.display="block"
setTimeout("loadingImg()",1000)
}
else{
currCount=0;
if (confirm("播放完毕,是否重新播放?")){
return autoPlay()
}
}
}
function loadingImg(){
if (preImages.complete) {
document.getElementById("img").src="http://blog.donews.com/images/blog_donews_com/dodo/49134/o_pix.gif"
document.getElementById("loadingbar").style.display="none"

document.getElementById("img").style.display="block"

document.getElementById("img").src=yourImages[currCount]
currCount=currCount+1
}
setTimeout("autoPlay()",4000)
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF">
<div style="width:700px">
<center>
<a href="javascript:autoPlay()">自动播放</a><br><br>
<div id="loadingbar" style="display:none;"><img src=http://blog.donews.com/images/blog_donews_com/dodo/49134/o_loading.gif></div>
<img id="img" src=http://blog.donews.com/images/blog_donews_com/dodo/49134/o_pix.gif >
<center>
</div>
</body>
</html>

cron 使用说明

gangyi | 22 十二月, 2005 09:45

cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。

cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。要调度一次性的任务,请参阅第 37.2 节

要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。

37.1.1. 配置 cron 任务

cron 的主配置文件是 /etc/crontab,它包括下面几行:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

/etc/crontab 文件中的每一行都代表一项任务,它的格式是:

minute   hour   day   month   dayofweek   command

  • minute — 分钟,从 0 到 59 之间的任何整数

  • hour — 小时,从 0 到 23 之间的任何整数

  • day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

  • month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

  • dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

  • command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理。

如你在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。

如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。范例请参见例 37-1

# record the memory usage of the system every monday 
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1 * * /root/scripts/backup.sh

例 37-1. crontab 的例子

根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUALEDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。

cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。

37.1.2. 控制对 cron 的使用

/etc/cron.allow/etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。

无论使用控制文件中的规定如何,根用户都总是可以使用 cron。

如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。

如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。

37.1.3. 启动和停止服务

要启动 cron 服务,使用 /sbin/service crond start 命令。要停止该服务,使用 /sbin/service crond stop 命令。推荐你在引导时启动该服务。


Fedora 4不支持旧CD-ROM

gangyi | 21 十二月, 2005 09:36

一台旧机装了好多次都不成功,google一下原来因为RedHat对旧款CD-ROM的驱动支持很差。只好从硬盘装了。

用了Grub for Dos也是不成,后来用第一张碟上的一个iso映象烧了张启动盘,启动之后再选择从硬盘安装。OK!搞定了。


转贴: 从硬盘安装Fedora Core 4

gangyi | 20 十二月, 2005 16:53

从硬盘安装Fedora Core 4

由于我的IBM240没有光驱,所以安装Fedora Core 4我选择硬盘安装,但Fedora Core 4跟redhat 9.0的硬盘安装方法有所不同,redhat不需要要安装其他软件,只要把光盘的某个目录拷贝出,然后dos下启动就可以安装,但到了Fedora Core 已经没了类似的目录,所以硬盘安装模式有点变化。

1:首先当然是下载Fedora Core 4的光盘镜像了,很多地方可以下载,这里提供一个

ftp://mirror.switch.ch/mirror/fedor...-i386-disc1.iso
ftp://mirror.switch.ch/mirror/fedor...-i386-disc2.iso
ftp://mirror.switch.ch/mirror/fedor...-i386-disc3.iso
ftp://mirror.switch.ch/mirror/fedor...-i386-disc4.iso

2:把CD1的isolinux目录解压到c:下

3:下载Grub For Dos
ftp://ftp2.linuxeden.com/tools/grub_for_dos-0.2.0pre13.tar.gz
解压把里面的文件和文件夹剪切出,放在解压后目录的外边.此时的路径为:C:boot

4:修改boot.ini
最后面添加这么一行
C:grldr="GRUB For Dos

保存退出

5:修改C:bootgrubmenu.lst

添加这么几行

title Install-Fedora Core 4
kernel (hd0,0)/isolinux/vmlinuz
initrd (hd0,0)/isolinux/initrd.img

注意:我的C盘这里是hd0,0表示第一个ide硬盘第一个分区,大家可根据自己的需要修改硬盘参数

ok,重新启动系统,会看到GRUB For Dos 菜单,选择后,在安装媒介选择硬盘安装就行。


DOM 中 StyleSheet的处理

gangyi | 20 十二月, 2005 14:53

想在HTML里面通过DOM用JavaScript操作,弄了半天无法将弄好的style节点插入document里面去。后来用排除法,惊奇地发现把style改个别的名字就部出错了。

查了一下手册,原来样式表的处理是用专门的方法做的,它并不是一个通用的普通Element,Document提供了方法createStyleSheet()来生成一个StyleSheet对象,这个对象再有addRule等其它方法来操作。


网页模块拖放

gangyi | 20 十二月, 2005 09:00

花了三天时间研究http://www.netvibes.com,之前已经稍微研究过http://script.aculo.us

很想把netvibes的模块拖放功能抽取出来作为己用,但是看了好久它的js代码,因为和他们整个设计交织在一起了,抽出来非常困难。

不过也不是完全没有收获,我“盗取”了几个封装ajax调用的方法,还有一堆判断浏览器之类的实用工具函数。对于那个拖动模块时出现的定位用的虚线框,我也基本知道它的设计思想了。就是用一个ghostModule,根据被拖动模块的坐标,动态调整它出现的位置。

等有时间,我用scriptaculous的拖放函数库做一套通用的模块拖用js脚本。


Valid XHTML 1.0 Strict and CSS.
Powered by pLog
Design by Book of Styles