YOYO的最新BLOG文章

Mar
30

关于文章转载的声明

Comments Off | 373 views

博客从建立到现在已经有3年左右的时间了,在2007-2008年这段时间一直坚持每天写一篇博客并持续了一年多,后来由于时间有限,慢慢的改为几天一篇博客,虽然是量少了,但是我尽量提高了文章的质量,所以虽然说Page Rank和Alexa一直在涨涨跌跌的不断起伏,但是博客的流量一直都很稳定,并稳中有升。

一直以来,博客上面的一些比较好的文章经常被一些网站转载,很多网站都能在转载的文章里面留一个原文的地址,而一些个别网站却不注明文章的来源和原文作者。

本人在此特别声明:

1、本站遵循CC协议,博客里面的所有文章可以复制、发行、展览、表演、放映、广播或通过信息网络向公众传播,但在这些过程中对方必须保留对原作品的署名。

2、本站所有文章未经本人许可,不得用于商业用途。

每个人的劳动成果都希望能得到别人的尊重,而不希望看到自己的文章在网站上被人写上“作者:佚名 来源:网络”这样的字样,所以请您在转载本站文章的时候,也能为原文留一个链接。

Tags: ,
Posted in 想说就说
Mar
27

激活Fedora 10的root账号

Comments Off | 754 views

以前只记得ubuntu好像有激活账号的情况,而这次安装了Fedora 10之后,发现root账号登陆不了,只能先登录一个预先设置的普通用户,才能切换到root账户。今天在网上查了一下相关资料,找到了具体的原因,是Fedora 10 也设置了root账号激活才能直接登陆,谢谢乱雪的文章

执行命令:

vi /etc/pam.d/gdm

注释掉第三行,在前面加上#注释。

#auth required pam_succeed_if.so user != root quiet

保存后就可以用root账号登录了。

说句题外话,前几天安装了一个Ubuntu Server版,发现桌面版和服务器版本分开还是有好处的,毕竟Server版又不用什么图形界面,那些乱七八糟的软件也可以省掉了,这一点Ubuntu做得就很好,怪不得国内这么多Ubuntu的粉丝呢。

Tags: ,
Posted in Server
Mar
23

Yahoo在Alexa排名上把第一的位置让给Google,宣告了Yahoo神话的结束,一个以Google为代表的时代的到来。

似乎从互联网诞生的那天起,Yahoo就一直稳坐着互联网流量老大的这把交椅,到现在已经足足十年之久。而随着Web2.0的到来,随着互联网风暴不断的袭来,Yahoo真正的感受到了那份高处不胜寒,这个时代,不再属于Yahoo。

两年前,我曾经些过一篇博文《Web2.0颠覆传统网站格局(一)》,说到Web 2.0在两年前的发展势头,而今天这篇文章也可以算是Web 2.0颠覆传统网站格局续篇。两年前正好是Web 2.0发展一夜春风的时候,关于Web 2.0的争论也不时见诸各大网站及媒体版面,而两年后的现在,很多2.0网站都已经成型,并已经被网民所接受,对Web2.0的争论也很少能见到了,似乎人们已经不再关心网站到底是2.0还是1.0了,更关注网站是不是提供了我们需要的功能和内容,回归到了网站需求的本质上来。

Yahoo让位Google这件事情是否真的说明了Web 2.0把1.0打败了呢?从现在的排名来看,似乎是这样的,但是我觉得并不完全对,因为1.0的很多站点都还是存在着,并且将会长期存在着,两者的模式是不一样的,他们并不冲突,也不会出现被替代的可能,两者只能会相互促进,共同发展。

Web 2.0和Web1.0都已经走过了那个唾沫星纷飞的时代,现在的网站不管是2.0还是1.0,只要是能为网民提供所需要的功能和内容,就会有一个好的发展,否则,即使是出来个10.0的网站,它也发展不下去。网络时代,不需要有x.0

Posted in 想说就说
Mar
21

Windows2003的防火墙被很多人当做鸡肋,甚至是不去启用它,而我觉得只要是堵墙,窟窿再多也还是会管用的,所以在服务器上我都会把这堵墙建起来。

在才开始配置Windows防火墙的时候,很容易出现一个问题,就是配置好的防火墙之后FTP连接不上了,或者是无法列表文件,这个问题也曾一直困扰着我,当时也查过一些资料,但是都没有很好的解决办法。

Windows防火墙开启之后,可以通过防火墙的主要设置有两个地方:一个是例外设置,这里是基本防火墙的设置,规则稍微宽松一些;另一个是高级里面的具体端口设置,限制到具体端口,规则要严格一些。在这两个设置中,高级里面的具体端口设置的优先级要高于例外中的基本设置,所以很多人在例外里面加入了相关的程序之后(此处主要指ftp服务器软件),再在高级里面做相应的端口设置就会出现问题。具体的做法是什么呢?那就是在例外里面添加相应程序,高级里面不用设置

由于网络上很多人都是用的Serv-U架设的FTP服务器,这样的话,在例外里面添加Serv-U程序,高级里面的FTP服务器不做设置就行了。而对于直接用Windows自带的FTP的程序的人来说怎么解决这个问题呢?不知道FTP服务器的具体程序名啊,通过互联网的查找,在炸弹熊那里我发现了inetinfo.exe这个文件,具体地址是:C:\WINDOWS\system32\inetsrv\inetinfo.exe,把这个文件加入到例外就可以了。设置好后把你的防火墙打开,然后再用ftp连接一下,看看是不是一切都好了?

Windows防火墙虽然是个轻量级的防火墙,但是设置好了之后照样可以阻挡很多的危害攻击,有效的保护系统的安全。

Posted in Server
Mar
20

baidu

看看上面这张图是不是很过瘾,其实这并不是百度真的被黑了,而是一段js代码带给我们的特效。这是今天PPOPCN给的一段特效代码,如下:

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

我另外又收集了一些相关的特效代码:

罗列出页面中的所有图片:

javascript:Ai7Mg6P='';for%20(i7M1bQz=0;i7M1bQz<document.images.length;i7M1bQz++){Ai7Mg6P+='<img%20src='+document.images[i7M1bQz].src+'><br>'};if(Ai7Mg6P!=''){document.write('<center>'+Ai7Mg6P+'</center>');void(document.close())}else{alert('No%20images!')}

不显示网页中图片的代码:

javascript:for(jK6bvW=0;jK6bvW<document.images.length;jK6bvW++){void(document.images[jK6bvW].style.visibility='hidden')}

让网页中的图片飞舞的代码:

JAVASCRIPT:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[i].style; DIS.position="absolute"; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval("A()",5); void(0);

这些代码怎么用?呵呵,不用专门做什么网页,只要把它放在你打开的任何一个网站上面的地址栏里面运行就可以了。

Posted in Javascript | Ajax
Mar
14

今天发现Google的Logo又换了,点开看了看,这个人不怎么熟悉,再一点,发现google火星地图出来了,难道Google是借此来推自己的火星地图(Google Mars)?

Google真的是异常强大,在继推出Google MapGoogle EarthGoogle OceanGoogle Sky之后,又推出一个让我们如此陌生且神秘的火星的地图,真的是让人惊叹。

现在的Google已经远不仅是一个搜索引擎了,他已经成为了一个强大的研究机构,且涉及范围广泛,很多珍贵的资料连一般的研究所都没有,仅这一点也将会极大的推动着Google的前进。

Mar
13

如果你已经使用了一段时间PHP的话,那么,你应该已经对它的数组比较熟悉了——这种数据结构允许你在单个变量中存储多个值,并且可以把它们作为一个集合进行操作。

经常,开发人员发现在PHP中使用这种数据结构对值或者数组元素进行排序非常有用。PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序。在这篇文章中我们将讨论该排序中最重要的几个函数。

简单排序

首先,让我们来看看最简单的情况:将一个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。PHP的sort()函数实现了这个功能,如Listing A所示:

Listing A

<?php

 $data = array(5,8,1,7,2);

 sort($data);

 print_r($data);

 ?>

输出结果如下所示:

Array ([0] => 1

[1] => 2

[2] => 5

[3] => 7

[4] => 8

)

也能使用rsort()函数进行排序,它的结果与前面所使用的sort()简单排序结果相反。Rsort()函数对数组元素进行从高到低的倒排,同样可以按数字大小排列也可以按字母顺序排列。Listing B给我们展示了它的一个例子:

Listing B

<?php $data = array(5,8,1,7,2);rsort($data); print_r($data);

?>

它的输出结果如下:

Array ([0] => 8

[1] => 7

[2] => 5

[3] => 2

[4] => 1

)

根据关键字排序

当我们使用数组的时候,经常根据关键字对数组重新排序,从高到低。Ksort()函数就是根据关键字进行排序的函数,同时,它在排序的过程中会保持关键字的相关性。Listing C就是一个例子:

Listing C

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);ksort($data); print_r($data);

?>

它的输出结果如下:

Array ([DE] => Germany

[ES] => Spain

[IN] => India

[US] => United States

)

Krsort()函数是根据关键字对数组进行倒排,Listing D就是这样的例子:

Listing D

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);krsort($data); print_r($data);

?>

它的输出结果如下:

Array ([US] => United States

[IN] => India

[ES] => Spain

[DE] => Germany

)

根据值排序

如果你想使用值排序来取代关键字排序的话,PHP也能满足你的要求。你只要使用asort()函数来代替先前提到的ksort()函数就可以了。如Listing E所示:

Listing E

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);asort($data); print_r($data);

?>

下面就是它的输出结果。请注意这个结果与上面使用ksort()函数所得到的结果的不同——在这两种情况中,都是按字母顺序进行排序的,但是它们是根据数组的不同字段进行排序的。

同时,请注意关键字-值之间的联系会始终保持;它只是关键字-值对排序后的一种方式,排序并不会改变它们的对应关系。

Array ([DE] => Germany

[IN] => India

[ES] => Spain

[US] => United States

)

现在,你肯定能猜到这种排序也可以进行倒排,它使用arsort()函数完成这个功能。Listing F就是一个例子:

Listing F

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);arsort($data); print_r($data);

?>

下面是它的输出结果,根据值按字母表顺序进行倒排。将下面的结果与用krsort()函数进行倒排后生成的结果进行比较,就能很容易明白两者的不同了。

Array ([US] => United States

[ES] => Spain

[IN] => India

[DE] => Germany

)

自然语言排序

PHP有一个非常独特的排序方式,这种方式使用认知而不是使用计算规则。这种特性称为自然语言排序,当创建模糊逻辑应用软件的时候这种排序方式非常有用。下面大家可以来看看它的一个简单例子,如Listing G所示:

Listing G

<?php $data = array(“book-1″, “book-10″, “book-100″, “book-5″); sort($data);print_r($data);

natsort($data); print_r($data);?>

它的输出结果如下:

Array ([0] => book-1

[1] => book-10

[2] => book-100

[3] => book-5

)

Array

(

[0] => book-1

[3] => book-5

[1] => book-10

[2] => book-100

)

它们的不同已经很清楚了:第二个排序结果更直观,更“人性化”,然而第一个则更符合算法规则,更具“计算机”特点。

自然语言能进行倒排吗?答案是肯定的!只要对natsort()的结果使用array_reverse()函数就可以了,Listing H就是一个简单例子:

Listing H

<?php $data = array(“book-1″, “book-10″, “book-100″, “book-5″);natsort($data); print_r(array_reverse($data));

?>

下面是它的输出结果:

Array ([0] => book-100

[1] => book-10

[2] => book-5

[3] => book-1

)

根据用户自定义的规则排序

PHP也能让你定义自己的排序算法,你可以通过创建你自己的比较函数,并把它传递给usort()函数。如果第一个参数比第二个参数“小”的话,比较函数必须返回一个比0小的数,如果第一参数比第二个参数“大”的话,比较函数应该返回一个比0大的数。

Listing I就是这样的一个例子,在这个例子中根据它们的长度对数组元素进行排序,最短的项放在最前面:

Listing I

<?php $data = array(“joe@host.com”, “john.doe@gh.co.uk”, “asmithsonian@us.info”, “jay@zoo.tw”);usort($data, ’sortByLen’);

print_r($data); function sortByLen($a, $b) {

if (strlen($a) == strlen($b)) {

return 0;

} else {

return (strlen($a) > strlen($b)) ? 1 : -1;

}

}

?>

这样,就创建了我们自己的比较函数,这个函数使用strlen()函数比较每一个字符串的个数,然后分别返回1,0或-1.这个返回值是决定元素排列的基础。下面是它的输出结果:

Array ([0] => jay@zoo.tw

[1] => joe@host.com

[2] => john.doe@gh.co.uk

[3] => asmithsonian@us.info

)

自然语言排序

PHP有一个非常独特的排序方式,这种方式使用认知而不是使用计算规则。这种特性称为自然语言排序,当创建模糊逻辑应用软件的时候这种排序方式非常有用。下面大家可以来看看它的一个简单例子,如Listing G所示:

Listing G

<?php $data = array(“book-1″, “book-10″, “book-100″, “book-5″); sort($data);print_r($data);

natsort($data); print_r($data);?>

它的输出结果如下:

Array ([0] => book-1

[1] => book-10

[2] => book-100

[3] => book-5

)

Array

(

[0] => book-1

[3] => book-5

[1] => book-10

[2] => book-100

)

它们的不同已经很清楚了:第二个排序结果更直观,更“人性化”,然而第一个则更符合算法规则,更具“计算机”特点。

自然语言能进行倒排吗?答案是肯定的!只要对natsort()的结果使用array_reverse()函数就可以了,Listing H就是一个简单例子:

Listing H

<?php $data = array(“book-1″, “book-10″, “book-100″, “book-5″);natsort($data); print_r(array_reverse($data));

?>

下面是它的输出结果:

Array ([0] => book-100

[1] => book-10

[2] => book-5

[3] => book-1

)

根据用户自定义的规则排序

PHP也能让你定义自己的排序算法,你可以通过创建你自己的比较函数,并把它传递给usort()函数。如果第一个参数比第二个参数“小”的话,比较函数必须返回一个比0小的数,如果第一参数比第二个参数“大”的话,比较函数应该返回一个比0大的数。

Listing I就是这样的一个例子,在这个例子中根据它们的长度对数组元素进行排序,最短的项放在最前面:

Listing I

<?php $data = array(“joe@host.com”, “john.doe@gh.co.uk”, “asmithsonian@us.info”, “jay@zoo.tw”);usort($data, ’sortByLen’);

print_r($data); function sortByLen($a, $b) {

if (strlen($a) == strlen($b)) {

return 0;

} else {

return (strlen($a) > strlen($b)) ? 1 : -1;

}

}

?>

这样,就创建了我们自己的比较函数,这个函数使用strlen()函数比较每一个字符串的个数,然后分别返回1,0或-1.这个返回值是决定元素排列的基础。下面是它的输出结果:

Array ([0] => jay@zoo.tw

[1] => joe@host.com

[2] => john.doe@gh.co.uk

[3] => asmithsonian@us.info

)

多维排序

最后,PHP也允许在多维数组上执行一些比较复杂的排序——例如,首先对一个嵌套数组使用一个普通的关键字进行排序,然后再根据另一个关键字进行排序。这与使用SQL的ORDER BY语句对多个字段进行排序非常相似。为了能更好的明白它是如何工作的,请仔细看Listing J所举的例子:

Listing J

<?php $data = array(array(“id” => 1, “name” => “Boney M”, “rating” => 3),

array(“id” => 2, “name” => “Take That”, “rating” => 1),

array(“id” => 3, “name” => “The Killers”, “rating” => 4),

array(“id” => 4, “name” => “Lusain”, “rating” => 3),

); foreach ($data as $key => $value) {

$name[$key] = $value['name'];

$rating[$key] = $value['rating'];

}

array_multisort($rating, $name, $data); print_r($data);?>

这里,我们在$data数组中模拟了一个行和列数组。然后,我使用array_multisort()函数对数据集合进行重排,首先是根据rating进行排序,然后,如果rating相等的话,再根据name排序。它的输出结果如下:

Array ([0] => Array

(

[id] => 2

[name] => Take That

[rating] => 1

) [1] => Array

(

[id] => 1

[name] => Boney M

[rating] => 3

)

[2] => Array

(

[id] => 4

[name] => Lusain

[rating] => 3

)

[3] => Array

(

[id] => 3

[name] => The Killers

[rating] => 4

)

)

array_multisort()函数是PHP中最有用的函数之一,它有非常广泛的应用范围。另外,就如你在例子中所看到的,它能对多个不相关的数组进行排序,也可以使用其中的一个元素作为下次排序的基础,还可以对数据库结果集进行排序。

这些例子应该让你对PHP中各种数组排序函数的使用有了初步的了解,也向你展示了一些隐藏在PHP数组处理工具包的内部功能。

文章转自互联网,未找到原作者和原地址,如果您是本文的作者,请留下您的原文的地址。

Tags: , ,
Posted in PHP | MySQL
Mar
12

Linux(CentOS)服务器上安装Webmin

Comments Off | 1,078 views

前几天写了一篇关于Linux上DirectAdmin的安装的博客,而今天我又试验了一下Webmin,顺便说一下Webmin的安装。

Webmin的安装相比起DirectAdmin的安装来说,要简单的多,而且时间也少的多,下面就详细说一下安装步骤。

1、用ssh客户端软件登陆服务器
2、切换目录到root下,命令是:cd /root/
3、下载Webmin的安装文件,命令是:wget http://prdownloads.sourceforge.net/webadmin/webmin-1.450.tar.gz
4、解压缩文件,命令是:tar -xzf webmin-1.450.tar.gz
5、进入webmin的解压缩目录,然后运行setup.sh,命令为:./setup.sh

6、一路回车即可安装完成,最后有一个地方需要设置用户名和密码的地方,用户名默认是admin,可以自己修改,下面的密码一定要输入自己容易记忆的密码。

详细操作如下:
Config file directory[/etc/webmin]: 回车    //直接回车表示选择默认安装路径,也可下其它路径,然后接回车键
Log file directory[/var/webmin]:    回车    //同上
Web server port (default 10000):回车       //指定Web访问的端口,默认端口为10000
Login name (default admin)://在这里输入登录用户名,默认是“admin”
Login password: 输入密码
Password again: 再次输入密码
Start Webmin at boot time (y/n):输入”y”
7、等看到安装完成的提示之后,在浏览器中输入http://ip:10000,然后回车,如果看到一个登陆界面,就说明webmin已经安装成功了。
8、刚安装时是英文界面,登录webmin系统后,依次打开Webmin →Webmin Configuration →Language,在 Display in Language处选择Simplified Chinese (ZH_CN),然后再点击”Change Language”重新进入webmin系统时就会显示中文了。

我这次也是第一次安装webmin,一切还算顺利,不过webmin的很多功能并没有我想象的那样方便操作,但这并不是说它不好,而是很多的功能需要我们手动来完成,对于一些初学者可能是有不小的难度,那就慢慢的摸索吧,在摸索中进步,还能学到很多知识,何乐而不为:-)

Webmin简介
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器 访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以为还包 括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。

Webmin 让您能够在远程使用支持 HTTPS (SSL 上的 HTTP)协议的 Web 浏览器通过 Web 界面管理您的主机。这在保证了安全性的前提下提供了简单深入的远程管理。这使得 Webmin 对系统管理员非常理想,因为所有主流平台都有满足甚至超出上述需求的 Web 浏览器。而且,Webmin 有其自己的“Web 服务器”,因此不需要运行第三方软件(比如 Web服务器)。万事具备。Webmin 的模块化架构允许您在需要时编写您自己的配置模块。除了在此介绍的模块之外,Webmin 还包括许多模块。尽管目前我们将主要关注网络服务,但是您会看到,几乎您系统的每一部分都能够通过 Webmin 来配置和管理。

Tags: , ,
Posted in Server