易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
php|architect: Stop Telling People to Optimize, and Start Teaching Them to Program

php|architect: Stop Telling People to Optimize, and Start Teaching Them to Program

Following some of the "backlash" of Google posting their "performance tips" for PHP developers, Marco Tabini has written up a post with a suggestion of his own - stop teaching developers how to optimize their code and teach them how to code it better from the start.

In principle, I have nothing against micro-optimizations; I just think they're a waste of time - perhaps even more so because they take the focus away from the simple fact that it's a rare performance problem that is cause by the language: the problem, almost inevitably, resides either with the developer, or with an external system.

He explains that it's no so much about dropping them all together as it is starting from the beginning and teaching best practices and good use of standards and proper development practices. That's what we should be promoting, not things that might shave milliseconds off the total execution time.

written by , url is :http://www.phpdeveloper.org/news/12840

纯记录:微软亚洲研究院:空中手书的舞动奇迹

纯记录:微软亚洲研究院:空中手书的舞动奇迹

新闻来自于Cnbeta.com,我这里是纯记录
感慨一下科技的发展,就象新闻里说的,我也很向往少数派报告中在虚空中操作电脑。

原文如下:http://www.cnbeta.com/articles/88286.htm

如果不是学计算机科学的话,你可能不知道什么叫计算机视觉,也可能不知 道什么叫模式识别。但是看过电影《少数派报告》的人或许都希望自己能和汤姆·克鲁斯一样,在空中用手比划一下就能完成未来电脑的操作;甚至想过如果有像哈 利·波特那样的魔棒,挥一挥就无所不能。微软亚洲研究院语音组最近发明的空中手书项目就部分地实现了这些科幻迷、童话迷的梦想。

24867f64b18da7a8509e9ca22fa3371a

就如上图所展示的那样,用户手中抓一支笔、一个苹果或者其他容易辨认的 物体,在空中写下文字、做出手势,通过摄像头的“眼睛”观察,计算机就能知道用户写的是哪个汉字,想表达的是哪种手势,从而完成计算机和人的自然交流。这 也正是我们项目命名为“空中手书”的由来。之所以说是部分实现了用户的梦想,那是因为我们只是成功实现了空中手书,而真正科幻式的未来生活需要各个行业、 各个学科的共同发展进步。

孝心引发的创新

空中手书项目诞生的直接导火索是迎接2009年的微软技术节 (TechFest),为此语音组在内部广征TechFest的参展议案,结论莫衷一是。当时,我还在家休假。我的经理霍强说,“等马磊回来再讨论吧,这 家伙鬼点子多。”回公司上班那周,正好和霍强1:1交流,当谈到组里还为TechFest参展项目悬而未定时,我就提出了要做“空中手书”的建议。其实, 这个念头由来已久,但是那次回老家度假更坚定了我的这个想法。2009年初在家过年的时候,就经常听到父母抱怨不会用键盘输入,手写板也不好用(需要不断 的抬头看屏幕和低头看板子),我当时便吹牛说,明年回来给家里的电脑装个摄像头,然后你们对着摄像头就可以写字了。其实有这个想法也是因为之前全院的某次 Offsite,在一段非常酷的视频短片里,四位院长用手指在空中轻而易举地写下了MSRA (微软亚洲研究院的英文缩写) 四个字母,这当然是电影特效,但是却让我浮想联翩。

虽然“空中手书”的想法听上去很炫,但是霍强还是对需要投入的时间和人 力成本有所顾虑。为此,我主动请缨用两周时间先做个原型出来,然后再评定能不能继续做下去。实际上最后做出这个原型只用了2天时间,也还是一个比较简陋的 演示:首先把手的运动轨迹跟踪下来,接着保存成数据文件,然后再调用我们的识别引擎,得到识别结果文件,最后经过读取把它显示在屏幕上。

令人惊讶的是,这个原型的效果已经令人相当满意了。因此,便有了更多的人加入到这个项目的开发完善的过程中,比如我的实习生朱晓恩、霍强的实习生孙雷,以及现在继续把这个演示中加入手势识别的禹果。

技术里面隐藏的奥妙

那是不是因为这个问题太简单了,所以用两天就能做出这个演示?当然不是了。我们设计的空中书写系统里面有两个主要的组成部分,一个是运动轨迹的追踪算法,一个是手写体汉字的识别算法。而这两个领域本身都有了几十年的发展,至今还是有很多的未解问题。

比如说这个跟踪算法,跟踪什么东西、提取什么样的特征来跟踪、跟踪的效率,是不是白天晚上各种不同的光照条件下都能跟踪等等,每一个问题都可以展开来细细的做研究。而这些问题如果不解决或一定程度上解决,就不会是一个用户体验良好且稳定的方案。

再比如说这个手写体汉字识别也同样是有很多值得研究的问题。写字的风格 (楷书、行书、隶书、草书) 不同会影响识别率,不同人的写法更是差异很大。另外,汉字的笔顺也是个大问题。除去这些问题不谈,在空中写字的方式和纸面上写出来的字样式上也差别很大, 至少现在空中的汉字是要一笔写成的。这都要求我们的汉字识别器可以稳定地处理和识别出来。

两天做出来的原型只是描述了一个概念,后面还有大量的工作等着我们去做。

我们连同实习生一起做了认真的特征研究,去考虑哪些特征在光线不足的情 况下稳定,哪些在亮光甚至点光源(一般会场和室内的条件)下能够稳定等等问题。另外,现在的摄像头有自动聚焦、白平衡和自动滤波的功能,而这些功能是不是 对我们的应用有帮助?其实,有些功能不但没有帮助反而有害。我们就需要把这些问题一个个研究清楚。除了特征外,什么样的追踪算法稳定高效,适合我们的应用 场景?为此,霍强和我查阅了大量研究资料,咨询了我们微软内部的许多在这方面资深专家寻求更好的方案。

在手写识别方面,我们研究院语音组有很多年研究的积累,平面上的手写体 识别算法的性能和识别率上是全世界领先的。相关算法已经transfer (转化)到了产品部门。但是这个空中字体的轨迹有自身的特点,如一笔连画,三维空间的轨迹映射到二维上,比划之间的转折相对圆滑等。我们的算法在特征上的 处理可以对付这些问题,信号的预处理部分也可以过滤掉由于光线条件不是很好情况下跟踪算法带来的信号抖动。

除了这些在核心技术上的研究之外,在用户界面上我们也考虑了很多。这部 分我的实习生朱晓恩动了很多脑子,比如如何设计更美观的界面,捕捉到的轨迹如何呈现会更舒适。另一个重要的改进就是把识别结果中最可靠的结果放置在候选区 域的中心,把不太确定的候选结果放置在边缘。这也是为了能让用户平均选取正确汉字的手移动距离最短。

最终,完成了我们现在看到的这个对公众演示的算法设计和实现。

空中书写的应用前景

如我所言,空中手书这个项目一开始就是从用户的需求中来(有相当一批人不会用键盘输入或者不知道怎么用包括拼音输入法在内的方式)。我们的项目就给了这些人一个与机器设备交互的可能性。

我们这个空中手书关注的应用场景可以分为以下几类:

1. 交互式游戏场景。比如在Xbox中,在很多时候需要玩家的输入才能导致游戏的继续进行。这时候我们的空中手书就提供给用户一种截然不同的使用体验,用于输入名字,谜题答案;用于交互式控制完成游戏的部分场景等等。

2. 搜索是海量信息时代重要的信息组织方式。 输入搜索的查询关键词有时候并非是一件非常容易的事情。比如在IPTV上,用户的计算机连接到互联网上,用户有需要从互联网上找到有趣的视频或者电影电视 然后从自己家的电视屏幕上进行播放。这时候,我们的空中手书就提供给用户一个输入方式选择。尤其是那些不会用T9输入法的中年以上用户。毕竟,手写输入还 是自然的输入方法之一。

3. 我们的空中手书还允许用户输入手势。通过一组直观易用的手势,用户可以方便地和各种智能设备交互。控制音视频的播放,提升用户体验,快速访问某些设定功能,等等。

总之,空中手书给了用户新的选择。它的应用场景就仅仅受限于我们和用户的想象力。

空中手书的演示成功恰恰是一个研究问题的开始,恰恰说明用户对更自然的 人机交互方式提出了诉求。就在写本文的时候,我们还在研究是否有更自然的方式可以捕捉人的运动,从而和计算机交互;是否能让我们的跟踪算法和人眼的跟踪一 样稳定。同时,我们还在研究使用手势识别来理解用户意图,让每个人都可以体验到空中舞动之美,体验到人机交互带来的便利。

mysql命令行常用命令

mysql命令行常用命令

这是某人整理的东西,发现还是挺有用的。。

它来自于PHP博客,看着挺有用。值得摘抄

mysql命令行常用命令

第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

MySQL 包括一个服务器进程管理数据库,以及一系列访问数据库和创建应用的工具:

mysql : 在 MySQL 中执行 SQL 查询,也可以执行在文件中存储的SQL命令;
mysqlaccess : 管理用户;
mysqladmin : 管理数据库服务器,包括数据库的创建和移除;
mysqld : 实际的 MySQL 服务器进程;
mysqldump : 将数据库或表的定义和内容转储到文件;
mysqlhotcopy : 热备份;
mysqlimport : 将不同文件格式的数据导入到 MySQL 表中;
mysqlshow : 显示服务器或者任何对象(数据库和表)的信息。

mysql_secure_installation : 用于管理 root 密码,远程访问、移除临时(测试)数据库及临时用户的一个脚本。

一般来讲,Root 应只用于数据库本机上登录 MySQL,我们可以增加一个拥有超级管理权限的用户 'admin' 来实现远程的维护。

Tips:

1、用 root 登录;(在命令行键入:mysql -u用户名 -p密码)
2、执行如下语句:
mysql>grant all privilages on *.* to admin@localhost identified by 'password' with grant option;
mysql>grant all privilages on *.* to admin@"%" identified by 'password' with grant option;

"%"是通配符,授予 admin 用户可以从任何主机发起访问,password 是为 admin 用户设置的密码。

===============================================

mysql命令行常用命令

mysql命令行常用命令

第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

第六招、执行外部脚本文件

mysql - u test - p1234 --database BugFree < D:/GreenAMP/BugFree.sql

在手册上看到的spl_autoload

在手册上看到的spl_autoload

在手册上看到的,原文地址为:http://cn.php.net/manual/en/function.spl-autoload.php

很吃惊,原来,在默认情况下,spl_autoload的效率并不高?
我没有测试,原文测试的时间在07年,不知道现在的效率怎么样了。以后有空的时候测试一下。。。
以下是原文:
Note that, the orders of file extensions is important for performance. You should make the priority of your favourite file extension higest or use only one extension for your class files. Check out this example:

Some class files:

ClassA.php

<?php class ClassA { var $val = 'Hello from class "ClassA"'; } ?>

ClassB.php
<?php class ClassB { var $val = 'Hello from class "ClassB"'; } ?>

ClassC.php
<?php class ClassC { var $val = 'Hello from class "ClassC"'; } ?>

ClassD.php
<?php class ClassD { var $val = 'Hello from class "ClassD"'; } ?>

ClassE.php
<?php class ClassE { var $val = 'Hello from class "ClassE"'; } ?>


1. Simple:
<?php
// default priority: .inc .php
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
spl_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';
}
// 4.2 miliseconds
?>


2. Change priority:
<?php
spl_autoload_extensions('.php,.inc');
// new priority: .php .inc
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
spl_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';
}
// 1.4 miliseconds
?>


Or you can use this simple function that runs a bit faster for the extensions with lower priority :)
<?php
function my_autoload($className, $extList='.inc,.php') {
$ext = explode(',',$extList);
foreach($ext as $x) {
$fname = $className.$x;
if(@file_exists($fname)) {
require_once($fname);
return true;
}
}
return false;
}

for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
my_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';
}
// 2.6 miliseconds
?>

---
Safak Ozpinar - Istanbul University, Computer Engineering

纪念那逝去的岁月

纪念那逝去的岁月

纪念那逝去的岁月。
本想摘取一些各大网站的新闻、稿件来做纪念的,结果
一片冷青

怎么办?我也不敢发声音。

只能从百度百科里找找资料了。

地址为:http://baike.baidu.com/view/10754.htm

七七事变也称“卢沟桥事变”(Lugouqiao Incident / Lugou Bridge Incident/Lukouchiao Bridge Incident/Marco Polo Bridge Incident/Roko Bridge Incident)

虽然我不喜欢百度,但这个时候还是很感谢,因为他里面有这么一段:“七七事变”72年

再次怀念一下

再看《非诚勿扰》

再看《非诚勿扰》

冯小刚虽然有几部片子拍的挺烂,但不代表他没有好片子
相反,他的好片子很多。
每年一部的贺岁片几乎就是他的标志,一年不开张,开张吃三年,估计完全可以体现冯小刚的作品的号召力
当然,御用的葛优也是如此的张扬,即使在批评很多的夜宴里,葛优仍然出尽了风头

非诚勿扰,初次看此片时,是在同事家中,喝着小二,就着烤羊排。但没有看完,只是片头的分岐终端机印象颇深。

昨天晚上睡觉前,又看了会,不过只是结尾那段。在看到工作人员介绍时,突然发现一句话:感谢分岐终端机的发明人:XXX(不记得了)。这句话让我大吃一斤(HOHO)
原来,还真有这玩意啊。。

估计该发明人向冯小刚推广这玩意后,他就兴致一来,写了这个非诚勿扰的故事吧,因为我看编剧和导演都是冯小刚。

虽然我主要是想表达,我的惊讶。
但不可否认,片中的情节和一些话语的精炼
或许,每次冯小刚的片子一出来,网上就会有人把葛优等腕的名言名句列出来吧。就象当年的:手机、天下无贼一样?

不信,搜索一下:非诚勿扰 经典台词,肯定会有发现

linux 查找目录或文件

linux 查找目录或文件

原文地址:http://hi.baidu.com/corylus/blog/item/911f1a0871817ad962d98686.html

查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print

如果需要更进一步的了解,可以参看Linux的命令详解。

这里摘抄如下:

·find path -option [ -print ] [ -exec -ok command ] {} \;
#-print 将查找到的文件输出到标准输出
#-exec command {} \; -----将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户

====================================================

-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

====================================================
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示
$find . -name "*.txt" -print
$find . -name "[A-Z]*" -pri26nbsp; #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

=====================================================
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示
$find . -name "*.txt" -print
$find . -name "[A-Z]*" -print #查以大写字母开头的文件
$find /etc -name "host*" -print #查以host开头的文件
$find . -name "[a-z][a-z][0--9][0--9].txt" -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print

$find . -size +1000000c -print #查长度大于1Mb的文件
$find . -size 100c -print # 查长度为100c的文件
$find . -size +10 -print #查长度超过期作废10块的文件(1块=512字节)

$cd /
$find etc home apps -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name "passwd*" -exec grep "cnscn" {} \; #看是否存在cnscn用户
$find . -name "yao*" | xargs file
$find . -name "yao*" | xargs echo "" > /tmp/core.log
$find . -name "yao*" | xargs chmod o-w

======================================================

find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;

find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件

查当前目录下的所有普通文件
--------------------------------------------------------------------------------

# find . -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出


=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} \;


=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} \;


=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls ... ./classDB.inc.php > ? y
-rw-r--r-- 1 cnscn cnscn 13709 1月 12 12:22 ./classDB.inc.php
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls ... ./classDB.inc.php > ? n
[root@book class]#

=================================================
查询并交给awk去处理
[root@book class]# who | awk '{print $1"\t"$2}'
cnscn pts/0

=================================================
awk---grep---sed

[root@book class]# df -k | awk '{print $1}' | grep -v 'none' | sed s"/\/dev\///g"
文件系统
sda2
sda1
[root@book class]# df -k | awk '{print $1}' | grep -v 'none'
文件系统
/dev/sda2
/dev/sda1


1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名

A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d':' -f1| uniq > filename
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print


2)find / -name filename -exec rm -rf {} \;
find / -name filename -ok rm -rf {} \;


3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;


4)将find出来的东西拷到另一个地方
find *.c -exec cp '{}' /tmp ';'

如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir


6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name "*php"` | ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"

Instant Demo Pro 7.50.37 汉化版

Instant Demo Pro 7.50.37 汉化版

吕达嵘的博客上有这个软件。仔细看了一下内容,发现确实不错,值得收藏一下。

Instant Demo 这个应用程序帮助你创建你软件的演示和手册,使用 Flash格式,还可以声音注解,实时的声音一起捕获以及记录或者插入声音的文件在编辑期间。编辑特色包括作注解文本和交互的热点。程序自动地计算你的作 注解的文本,和图片的正确的展示时间。生成的文件尺寸比较小,每分需要动画的大概为 0.1MB。
它可用于制作演示和培训材料,主要特点如下:
实时录制 Windows 桌面活动;
提供快速、方便的屏幕录制;
适合制作基于Web的演示;
能够增强你的在线帮助文档功能;
让你的客户支持服务更加专业;
快速制作培训材料。
汉化说明:
1、此为汉化破解版,直接安装后使用。
2、感谢 CCDebuger 朋友的破解,使其具有专业版功能。
3、此汉化无捆绑。
下载:http://www.hanzify.org/?Go=Show::List&ID=9363

Yii Demos 随想

Yii Demos 随想

最近想看看yii,也想看看他的demo,就去了demo网站:http://www.yiiframework.com/demos/,挺有意思。

创意?不知道
下载一个vm虚拟机,直接在vm里面跑起来。挺不错
我试了一下,下载下来19M,解开后,稍有点大70多M,直接放到vm server里就可以运行了。
根据官方所说,它支持:

The following components are installed on this appliance:

  • PHP 5.2.3 (in fast-cgi mode)
  • Lighttpd 1.4.7 (mod_rewrite and fast-cgi enable)
  • Yii 1.0.6 (including demos)
  • PostgreSQL 8.2.4
  • phpPgAdmin 4.1.3
  • Linux kernel 2.6.17.7

居然不是mysql,看来mysql太大了,而且太适合cgi之类的进程?(windows下的精简版用过,好象也不是特别大。还是说yii对postgreSql有特别的优待?)

再试了一下,居然也支持ssh连接。
但是缺点
1、无法切换到root
2、无法关机???halt不行,shutdown说没有这个命令
3、wget??不能下载?本来想装个samba看看的。。看来只能算了。只能当成普通的虚拟机玩玩吧。

最后再说一点,可以考虑象这样的打包方式进行演示。代码加密,环境配置好,windows下面用小型整合包,linux下面用这样的虚拟机,两份同时给客户展示。。

或许会有更多不同的用户体验?
也是猜猜而已。。。

Windwos 下配置多个Apache服务站点

Windwos 下配置多个Apache服务站点

本来我以为是虚拟机,后来一看,原来是建多个目录。我是被人问过类似问题的。。这个到正好解决我当初被人问的问题

原文来自:http://xinsync.xju.edu.cn/index.php/archives/5134

更改第一个站点的根目录:在文件Apache2.2\conf\httpd.conf中查找 DocumentRoot 属性,将后面的路径改为你的主站点的路径,如:D:\www\web1

为第二个Apache服务建立配置文件:复制并重命名httpd.conf为web2.conf(举个例子而已,也可以叫my.conf等等), 修改web2.conf中的Listen 8080(原来为80)、ServerName localhost:8080(原来为80)、DocumentRoot “D:/www/web2″ (原来为web1)
添加第二个Apache服务:Apache安装目录的bin子目录下,使用如下命令将Apache安装为Windows NT服务:httpd.exe -k install -n “服务名” -f “d:\apache2.2\conf\web2.conf”
其他的命令:
将Apache安装为Windows NT服务:
httpd -k install
指定服务的名称,当你在同一机器上安装多个Apache服务时,你必须为它们指定不同的名字。
httpd -k install -n “服务名”
为不同名称的服务使用不同的配置文件,则安装时需要指定配置文件:
httpd -k install -n “服务名” -f “c:\files\my.conf” 如果你使用的是第一个命令,也就是除 -k install 外没有其它命令行参数,那么被安装的服务名称将是:Apache2 ,配置文件将使用conf\httpd.conf 。
移除一个Apache服务:
httpd -k uninstall
使用下述命令移除特定名称的Apache服务:
httpd -k uninstall -n “服务名”
通常,启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具,另外也可以使用控制台命令:NET START Apache2 和 NET STOP Apache2 或者通过Windows服务控制面板。在启动Apache服务之前,你应当使用下面的命令检查一下配置文件的正确性:
httpd -n “服务名” -t
你可以通过命令行开关来控制Apache服务。要启动一个已经安装的Apache服务,可以使用:
httpd -k start
要停止一个已经安装的Apache服务,可以使用:
httpd -k stop
或
httpd -k shutdown
要重启一个运行中的Apache服务,强制它重新读取配置文件,可以使用:
httpd -k restart