2008-11-25 14:41
c r o n t a b文件每个条目中各个域的意义和格式:
第1列分钟1~5 9
第2列小时1~2 3(0表示子夜)
第3列日1~3 1
第4列月1~1 2
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是c r o n t a b的格式:
分<>时<>日<>月<>星期<>要运行的命令
其中<>表示空格
这里有c r o n t a b文件条目的一些例子:
30 21 * * * /apps/bin/cleanup.sh
上面的例子表示每晚的21:3 0运行/a p p s/b i n目录下的cleanup.sh。
45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh
上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。
0 23 * * 6 /apps/bin/qtrend.sh
上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d . s h。
note that, after you finish your configure, saying, put the job on the file named "mycron", commit it using the command 'crontab mycron' to make it work. |
2008-11-16 13:03
我不是专职flash,甚至能说对flash一窍不通。不过为了解决项目中的问题,有时就翻翻手册写那么几行。
自从万恶的flash9被忽然升级到flash10后,问题出现了,先是上传不能用,这个好解决,把按钮变成flash的就好了。但接着就是用js控制播放声音也不能用,这个必须用js控制,后来发现dict.cn很好的解决了这个问题,查看到了它的js文件中有个gotoFrame(1)类似这样的js函数,于是受到启发,通过用js控制flash播放到第几帧,不就可以巧妙的解决吗?
于是把之前用文档类写的声音flash改成了在帧中写action.
1.新建一文档,在第一帧写:
import flash.display.Sprite;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.external.*;
import flash.system.Security;
flash.system.Security.allowDomain("xxx.com"); //你的域
var url="http://www.xxx.com/test.mp3"; //声音文件
ExternalInterface.addCallback("playSong",function(){gotoAndPlay(1);}); //让js通过playSong()来调用
var request:URLRequest = new URLRequest(url);
var soundFactory:Sound = new Sound();
soundFactory.load(request);
soundFactory.play();
gotoAndPlay(2);
stop();
2.在第二帧写
stop();
3.编译后
function getFlash(movieName)
{
if (window.document[movieName])
{
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1)
{
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else
{
return document.getElementById(movieName);
}
}
通过以下js代码,即可实现在flash9,flash10中播放声音
try{
getFlash("swfid").playSong();
}catch(e){
}
谁有更好的方案请告知。
|
2008-11-13 17:33
之前用JS+flash做了一个批量上传工具,一直用的很爽,最近突然发现有的电脑可以正常使用,有的电脑突然就不能使用了,百思不得其解,后仔细回忆,怀疑是升级到了flash 10插件的缘故,于是卸载掉flash 10装上flash 9后,一切正常。
于是google一些资料,发现flash 10进行了更为严格的安全措施,即不允许通过JS来调用flash里有交互操作的功能,比如浏览文件(需要弹出对话框),既然是这样,那么我把浏览文件按钮改用flash来做就行了。
于是把的先隐藏的flash文件设置显示出来了,并且做成了flash按钮,通过自身来调用,于是解决。
再看看flicker,也把原先的文字add more 改成了flash按钮了,这应该是针对flash 10的唯一解决方案了
|
2008-10-07 16:22
http://ued.taobao.com/blog/2008/09/17/grid_systems/
栅格系统的形成
1692年,新登基的法国国王路易十四感到法国的印刷水平强差人意,因此命令成立一个管理印刷的皇家特别委员会。他们的首要任务是设计出科学的、合理的, 重视功能性的新字体。委员会由数学家尼古拉斯加宗(Nicolas Jaugeon)担任领导,他们以罗马体为基础,采用方格为设计依据,每个字体方格分为64个基本方各单位,每个方各单位再分成36个小格,这样,一个印 刷版面就有 2304个小格组成,在这个严谨的几何网格网络中设计字体的形状,版面的编排,试验传达功能的效能,这是是世界上最早对字体和版面进行科学实验的活动,也 是栅格系统最早的雏形。
栅格系统英文为“grid systems”,也有人翻译为“网格系统”,其实是一回事。不过从定义上说,栅格更为准确些,从维基百科查到栅格的定义为:栅格设计系统(又称网格设计系统、标准尺寸系统、程序版面设计、瑞士平面设计风格、国际主义平面设计风格),是一种平面设计的方法与风格。运用固定的格子设计版面布局,其风格工整简洁,在二战后大受欢迎,已成为今日出版物设计的主流风格之一。
网页设计中的栅格系统
我给网页栅格系统下的定义为:以规则的网格阵列来指导和规范网页中的版面布局以及信息分布。
网页栅格系统是从平面栅格系统中发展而来。对于网页设计来说,栅格系统的使用,不仅可以让网页的信息呈现更加美观易读,更具可用性。而且,对于前端开发来说,网页将更加的灵活与规范。


栅格系统在现在的网页设计中应用越来越多,从网络上搜罗了一篇关于栅格系统应用的文章:30个最顶尖的基于栅格系统的博客网站设计。
栅格系统的设计原理及应用
那么如何设计一个栅格系统?接下来我们将通过实例,详细的介绍一下网页栅格系统的原理与应用:

在网页设计中,我们把宽度为“W”的页面分割成n个网格单元“a”,每个单元与单元之间的间隙设为“i”,此时我们把“a+i”定义“A”。他们之间的关系如下:
W =(a×n)+(n-1)i
由于a+i=A,
可得:(A×n) - i = W
这个公式表述了网页的布局与网页“背后”的栅格系统之间的某种关系。我们拿yahoo作例,来看一下栅格系统的应用:

yahoo的网站页面宽度为W=950px,每个区块与区块的间隔为i=10px;如果应用上面的公式,可以推出A=40px,既yahoo首页横向版式设计采用的栅格系统为:
(40×n)- 10 = W
下面我们列出当n等于不同数值时W变化的数值表格 :

从表格可以看出:yahoo首页的布局完全是按照栅格系统进行设计的,每个区块的宽度对应的n值分别为:4,11,9。在这里我们看到一个很有意思 的事情:只要保证一个横向维度的各个区块的n值相加等于24,则即可保证页面的宽度一定是950px。然而,950px的宽度也恰好就是当n=24的时 候,W的宽度值。由此我们得出以下的应用模式:

在栅格系统中,设计师根据需要制定不同的版式或者划分区块,他们的依据将是上面的那张对应表进行设计。这样,一个栅格系统的应用就从此开始了。我们 看到,使用栅格系统的网页设计,非常的有条理性;看上去也很舒服。最重要的是,它给整个网站的页面结构定义了一个标准。对于视觉设计师来说,他们不用再为 设计一个网站每个页面都要想一个宽度或高度而烦恼了。对于前端开发工程师来说,页面的布局设计将完全是规范的和可重用的,这将大大节约了开发成本。对于内 容编辑或广告销售来说,所有的广告都是规则的,通用的,他们再也不用做出一套N张不同尺寸的广告图了……
当然只要你愿意,我们可以衍生出任何一种栅格系统,只要改变A和i的值,这个根据网站的实际情况来制定。那么如何选择合适栅格系统,主要通过“构成 要素与程序、限制与选择、构成要素的比例、组合、虚空间与组合、四边联系与轴的联系、三的法则、圆与构成、水平构成这些设计元素规划,来实现比例和谐的平 面设计”。比较深奥,我们在这里就不详细阐述了。
呵呵,说了一堆栅格系统的优点。大家可能会问:难道栅格系统真的是完美的么?答案是否定的:对于内容信息不确定导致高度不确定的页面,在高度层面上就无法做到栅格了。当然,具体的情况还需具体的分析与解决,这就需要设计师们在实际的应用中不断的总结经验,不断实践了。
转自:http://www.gracecode.com/Archive/Display/2363
其实有很种 CSS 写法实现栅格系统,很多 CSS 库也都会提供类似的栅格系统实现(譬如:YUI,BluePrint)。
引用 One True Layout 文中所言,良好的布局应该具有的几个特性:
- 具有一定的灵活性
- 等高
- 基于栅格
请允许我“重复造了轮子”,我的栅格系统实现是基于“伪绝对定位布局”,这样可以更好的实现上述所言的几个特征(很难解释,还是直接看 DEMO )。
http://lab.gracecode.com/demo/grid.html
如何使用上面定义的 CSS 栅格?很简单,只需要定义一行内列的数量以后,再定义列占据的相应栅格宽度以及开始位置即可。譬如定义某列占据 17 个栅格、并从第 3 个栅格开始排版,那么使用下面的 class
column-17 start-03
类似的,如果是通栏,那么就是占据 24 个栅格,并从第一个栅格开始(以 Taobao UED 定义的 950px 宽度为公式 W )
column-24 start-01
因为是上述“伪绝对定位”的布局,所以相应列之间不会相互影响。而理解上述布局可能需要些时间,同时感谢师兄那么详细的讲解,我相信也会给你带来收获。
css: http://lab.gracecode.com/css/grid.source.css |
2008-10-07 11:49
从6月13日搬家到百度空间以来,在不到4个月的时间里今天访问量已经突破10000了,特此纪念! |
2008-10-06 22:27
相信很多初学者很需这个方法,帖出来,呵呵
//{{{ utf-8截取前n个字
function Ctruncate($str = '', $len = 0, $etc = ' ...')
{
if(0 == $len) return "";
$str_len = preg_match_all('/[\x00-\x7F\xC0-\xFD]/', $str, $dummy);
if($len >= $str_len)
{
return $str;
}
else
{
$newstr = mb_substr($str,0,$len,'utf-8');
return $newstr.$etc;
}
}
//}}} |
2008-09-26 21:23
What is the difference between echo and print?
Which is faster, echo or print?
1. Speed. There is a difference between the two, but speed-wise it
should be irrelevant which one you use. echo is marginally faster
since
it doesn't set a return value if you really want to get down to the
nitty gritty.
2. Expression. print() behaves like a function in that you can do:
$ret = print "Hello World"; And $ret will be 1. That means that print
can be used as part of a more complex expression where echo cannot. An
example from the PHP Manual:
$b ? print "true" : print "false";
print is also part of the precedence table which it needs to be if it
is
to be used within a complex expression. It is just about at the bottom
of the precedence list though. Only "," AND, OR and XOR are lower.
3. Parameter(s). The grammar is: echo expression [, expression[,
expression] ... ] But echo ( expression, expression ) is not valid.
This would be valid: echo ("howdy"),("partner"); the same as: echo
"howdy","partner"; (Putting the brackets in that simple example
serves
no purpose since there is no operator precedence issue with a single
term like that.)
So, echo without parentheses can take multiple parameters, which get
concatenated:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print() can only take one parameter:
print ("and a 123");
print "and a 123";
source: http://www.forumnettr.com
http://www.forumnettr.com/forum
转自 http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 |
2008-09-08 15:28
<?php
class a{
function a(){
if(version_compare(phpversion(),'5')<0)
{
register_shutdown_function(array(&$this,'__destruct'));
}
}
function __destruct(){
echo "执行了";
}
}
$a = new a();
sleep(5);
echo "test";
?> |
2008-08-01 16:23
做了这么多年MySQL的相关开发,居然还从来没用过float字段类型,今天做一个奥运相关项目有机会用到了,但结果发现了一个比较奇特的问题!
表结构如下:
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned NOT NULL default '0',
`result` float NOT NULL default '0',
`times` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`))
记录如下
1,123,2.01,...
2,888,2.52,...
.......
执行select * from test where result=2.52
结果为空集;
再执行select * from test where result="2.52"
还是空集;
于是百度一下,找到了如下原文:
假设table中有一个price=28.8的记录(price为float型),那么你用
Sql代码 复制代码
1. select * from table where price=28.8
是有可能select不到这条记录的,因为10进制和2进制之间的误差,这个28.8有可能是28.7999999
到目前为止我想到是有两个方案:
一个是这样select(其实在对精准要求比较高的情况下,这样可能是有问题)
select * from table where price>28.7 and price<28.9
2.还有一个是在设计的时候比较fancy的解决方案(号称google是这样搞的):
根本不设计float型的字段,而是用一个int型+标识这个int型的小数位来代替float型,也就是price=28.8在数据库中存的是price=288,precision=1
但是
以上方法有缺陷,第一个方法大多用户估计行不通,精度不一样。不太好控制
第二个方法设计确实比较有技巧,但是无法在MySQL中简单的进行排序。
而我的需求即是又要能排序,又要可以使用where result=2.52
我想了第三种方法,就是再增加一个字段
执行alter table test add cresult varchar(32) not null;即可
这样当我要执行排序操作时
select * from test order by result desc;
执行开头那个例子时
select * from test where cresult="2.52"
二个字段分工不同。
当然我也想到了第四种方法,但适用范围小,是有前提的。
即result里面的值必须固定长度
比如22.98,即小数点前和小数点后都必须为n位数,也就是说范围从00.00-99.99
或者000.000-999.999
第一类00.00-99.99以小数点为分隔,看此小数看成100进制,假设数为12.23,那么12*(100的1次方)+23*(100的0次方),结果为一整型
第二类同理,看成1000进制。
当需要知道真实值时把100或1000进制转换一下即可得到原始值。
这样把转换后的值存入result里(此时result为int型),即可排序又可where result=计算后的值
我个人认为第三种是目前最好的方法了,各位还有什么更好的处理方法呢?欢迎探讨!
|
2008-07-21 16:49
方法1: 用SET PASSWORD命令
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2:用mysqladmin
mysqladmin -u root password "newpass"
如果root已经设置过密码,采用如下方法
mysqladmin -u root password oldpass "newpass"
方法3: 用UPDATE直接编辑user表
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES; |
2008-07-02 10:50
很多最新开源的东西不能从官方下载了,发个牢骚
某些人或组织还让不让人活? |
2008-06-27 15:45
此方法使用方法为
AC_FL_RunContent(
"src", "itree,
"width", "100%",
"height", "100%",
"align", "middle",
"id", "treeid",
"quality", "high",
"bgcolor", "#869ca7",
"name", "test",
"flashvars","id=123",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
本以为给flash传参数,比如user_id=888,也是这样,直接加参数user_id,888,最后想起来有个flashvars,加上
flashvars,"user_id=888"即可。
AC_FL_RunContent(
"src", "itree,
"width", "100%",
"height", "100%",
"align", "middle",
"id", "treeid",
"quality", "high",
"bgcolor", "#869ca7",
"name", "test",
"flashvars","id=123",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
"flashvars","user_id=888"
);
另外media.js这个文件中存在bug,在firefox中生成的embed嵌入的flash没有id,
在方法AC_GetArgs(args, ext, srcParamName, classid, mimeType中有一堆case,
去掉case "id":这一行,然后在default前增加
增加
case "id":
ret.objAttrs[args[i]] = args[i+1];
ret.embedAttrs[args[i]] = args[i+1];
break;
即可解决
|
2008-06-27 14:06
最近发现服务器每次重启时间都会有很大 的误 差
baidu一下,发现ntpdate这个命令可以校正时间,很简单
就是用ntpdate通过ntp(network time protocol)协议,连接一个ntp服务器来校正时间
/etc/ntp.conf文件中有几个默认的时间服务器
把以下命令加入到cron中,每天执行一次
/usr/sbin/ntpdate 0.rhel.pool.ntp.org >> /tmp/time_up.log
同时加入到/etc/rc.local文件中,保证服务器每次重启后都校正
通过查看/tmp/time_up.log文件就可以看出什么时候校正过时间,且每次时间误差为多大。 |
2008-06-25 13:01
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。关于启用二进制日志的信息,参见5.11.3节,“二进制日志”。对于 mysqlbinlog的详细信息,参见mysql手册8.6节,“mysqlbinlog:用于处理二进制日志文件的实用工具”。 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为-- log-bin。要想确定当前的二进制日志文件的文件名,
输入下面的MySQL语句:
SHOW BINLOG EVENTS G
你还可以从命令行输入下面的内容:
mysql --user=root -pmy_pwd -e 'SHOW BINLOG EVENTS G'
将密码my_pwd替换为服务器的root密码。
1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,
并输入:
mysqlbinlog --stop-date="2005-04-20 9:59:59" /var/log/mysql/bin.123456 | mysql -u root -pmypwd该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog: mysqlbinlog --start-date="2005-04-20 10:01:00" /var/log/mysql/bin.123456 | mysql -u root -pmypwd 在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。
2. 指定恢复位置 也可以不指定日期和时间,
使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。
操作方法为:
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql该命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面内容:
mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 | mysql -u root -pmypwd mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 | mysql -u root -pmypwd
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。 |
2008-06-19 15:24
表结构及数据如下,id为自增,表名为test
+----+-------+
| id | times |
+----+-------+
| 5 | 483 |
| 6 | 483 |
| 7 | 483 |
| 8 | 483 |
| 9 | 483 |
| 10 | 483 |
| 11 | 483 |
| 12 | 483 |
+----+-------+
执行update test set id=id+1,会出现Duplicate entry '6' for key 1,原因表执行update时是一条条执行,当id=5被加1后就会与id=6出现duplicate entry,由于update 语句也支持order by,那么我们可以从最大的id开始依次加1就不会出现此问题了,
语句:update test set id=id+1 order by id desc;
同样当我们想要减id的值时用order by id 即可。 |
|
|
arcow
男, 24岁
北京 朝阳区
加为好友
|