Archive for 十月, 2007

临时

Posted by 机器人 on 10th 十月 2007 in 未分类
public function testAction(){
            $this->noRender();
            include "jpgraph.php";
            include "jpgraph_line.php";
            include "jpgraph_scatter.php";
            include "jpgraph_regstat.php";

            // Original data points
            $xdata = array(1,2,3,4,5,6);
            $ydata = array(5,1,9,6,4,1);

            //$xdata1 = array(1,2,4,6,7,9);
            $ydata1 = array(5,1,6,1,5,9);
            $x_tick_label = array('2007-1','2007-2','2007-3','2007-4','2007-5','2007-6');
            $spline = new Spline($xdata,$ydata);
            $spline1 = new Spline($xdata,$ydata1);

            // For the new data set we want 40 points to
            // get a smooth curve.
            list($newx,$newy) = $spline->Get(50);//曲线的光滑度,50流畅
            list($newx1,$newy1) = $spline1->Get(50);
            // Create the graph
            $g = new Graph(555,310);
            $g->SetMargin(30,30,40,30);
            $g->legend->Hide(false);
            $g->title->Set("2007年2月2日净值情况");
            $g->title->SetFont(FF_SIMSUN,FS_NORMAL,12);
            $g->subtitle->Set('(华夏成长 (000001)基金净值)');
            $g->subtitle->SetFont(FF_SIMSUN,FS_NORMAL,9);
            $g->subtitle->SetColor('darkred');
            $g->SetMarginColor('white');
            $g->SetScale('linlin');
            $g->xaxis->SetTextLabelInterval(2);//LABLE会重复出现一次,这里使用2为间隔,使多余的LABEL不显示
            $g->xaxis->SetTickLabels($x_tick_label);
            $g->xgrid->Show(true);
            $g->xaxis->SetTextTickInterval(0,0);
            //$g->xaxis->SetPos('min'); //轴位置
            $g->xaxis->SetColor('#94BDE2','black');
            //$g->xaxis->Setlabelmargin(10); 标签和轴间距
            // We use a scatterplot to illustrate the original
            // contro points.
            $splot = new ScatterPlot($ydata,$xdata); //原点
            $splot->mark->SetFillColor('red@0.3');
            $splot->mark->SetColor('red@0.5');

            $splot1 = new ScatterPlot($ydata1,$xdata); //原点
            $splot1->mark->SetFillColor('blue@0.3');
            $splot1->mark->SetColor('blue@0.5');

            // And a line plot to stroke the smooth curve we got
            // from the original control points
            $lplot = new LinePlot($newy,$newx); //创建曲线
            $lplot1 = new LinePlot($newy1,$newx1);
            $lplot->SetColor('#94BDE2');
            $lplot1->SetColor('red');

            // Add the plots to the graph and stroke
            $g->Add($lplot);
            $g->Add($lplot1);
            $g->Add($splot);
            $g->Add($splot1);
            $g->Stroke();
        }

为什么许多大型网站不使用JAVA

Posted by 机器人 on 8th 十月 2007 in php/javascript

原文:http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-scalab.html

原作者: GigaSpaces的CTO兼首席架构师

在前几个礼拜里,我和我的同事Geva Perry讨论过这个问题 “为什么许多大型网站不使用JAVA”。在blogosphere上描述了很多比较受欢迎的网站的架构情况。如.Google,Amazon,eBay,LinkedIn,TypePad,WikiPedia等。

它们的架构大致如下:

通过这些网站的架构,大致有一些看法:这些网站基本上是以LAMP作为核心运行栈,有的将制定自己的文件系统(GOOGLE,GFS)。一些正在

使用缓存来解决数据库的瓶颈问题。(memcached).其中许多人被迫开发适合自身的解决方案,因为当然没有任何现成的替代方案

能够解决他们的需求。

在金融世界兴起的今天,一些关键任务的应用和这些WEB应用有大的不同。在金融世界里,JAVA,以及在较小程序上的J2EE被广泛采用。近几天,性能的需求变化在资本市场的领导下,向中级软件进行转移,引用网络运行解决方案,虚拟CPU资源,以及批量并行的应用。DATA GRIDS同样被引进,可用的虚拟内存资源,spring在这个行业中,作为统一的开发框架。在GigaSpaces中,我看到了越来越多的情况,使J2EE被spring替代。

如果你仔细研究这两个世界(即金融世界和非金融世界),我们能看出他们具有相似的挑战和性能。毫不奇怪,最后都得使用相同的方案来解决挑战和性能。

对于数据层,我们看到:

1. 加入缓冲层,以充分利用内存资源可用性,来减少I/O开销。

2. 将数据分离成很小很小的部分。

在业务逻辑层:

3. 加入并行语义的应用层。(e.g.,MapReduce)

4. 从不连续的应用层到线性连续的扩展。

5. 为事务牏逐渐远离精典的两阶提交和XA。

虽然有许多相似的挑战,并在一定程序上,具有类似的架构,似乎(WEB和金融)采取不同的路线,因为它涉及到不同的领域。

对于高性能的网站,有人发帖问:为什么不使用J2EE。

答案可归纳如下:

1. LAMP提交一高效便宜的解决方案(其中大部分是依靠免费的开源代码)。

2. JAVA仍然在被使用,只是不作为主要的语言,而是作为一个组件,在前端或者后端被使用(如:servlets)

在这个问题上,我有自己的想法,但是我也很高兴有人能就此事发表意见,我会非常高兴。。

机器人 2007-10-8 11:06 翻译完成。

使用test命令的测试功能

Posted by 机器人 on 6th 十月 2007 in php/javascript

测试标志

含义

 

1.某个文件名的“类型”检测(存在与否),如test –e filename

 

-e

该“文件名”是否存在(常用)

-f

该“文件名”是否为文件(file)(常用)

-d

该“文件名”是否为目录(directory(常用)

-b

该“文件名”是否为一块设备

-c

该“文件名”是否是否为一个字符设备

-S

该“文件名”是否为一个套接字文件

-p

该“文件名”是否为一个FIFO(管道)文件。pipe

-L

该“文件名”是否为一个连接文件

 

2.文件的权限检测,如:test –r filename

 

-r

检测文件名是否具有“可读”属性

-w

检测文件名是否具有“可写”属性

-x

检测文件名是否具有“可执行”属性

-u

检测文件名是否具有“SUID”属性

-g

检测文件名是否具有“SUID”属性

-k

检测文件名是否具有“Sticky bit”属性

-s

检测文件名是否具有”非空白文件”

 

3.比较两个文件,如:test n1 –eq n2

 

-nt

(newer than)判断file1是否比file2

-ot

(older than)判断file1是否比file2

-ef

判断file2file1是否为同一个文件,可用于判断硬连接,主要判断两个文件是否均指向同一个inode

 

4.两个整数之间的判断,例如:test –nl –eq n2

 

-eq

两数值相等(equal)

-ne

两数不相等(not equal)

-gt

n1 大于 n2(greater than)

-lt

n1 小于 n2(less than)

-ge

n1 大于等于 n2(greater than or equal)

-le

n1 小于等于 n2(less than or equal)

5.判断字符串的数据:

 

test –z string

判断字符串是否为0,string为空字符串,则为true

test –n string

判断字符串是否非为0,若string为空字符串,则为false

test str1 = str2

判断str1是否等于str2,若相等,则回传true

test str1 != str2

判断str1是否等于str2,若相等,则回传false

 

6. 多重条件判断,例如:test –r filename –a –x filename

 

-a

(and)两个条件同时成立,例如test –r file –a –x file.file同时具有rx权限时,才回传true

-o

(or)两个条件任何一个成立,例如test –r file –o –x file,file具有rx权限时,就可回传true

!

条件求反,如test ! –x file, file不具有x时,回传true

 

字符转换命令:tr、col、join、paste、expand.

Posted by 机器人 on 6th 十月 2007 in php/javascript

1. tr

tr可以用来删除一段消息中的文字,或者是进行文字消息的替换。

2. col

将空格键换成对等的空格

3. join

看字面上的意义,就可以知道join(加入、参加)是在处理两个文件之间的数据,而且主要是在处理“两个文件中,有“相同数据”的行,将它们加在一起。

4. paste

paste就要比join简单多了,相对于join必须要比较两个文件的数据关联性,paste就直接“将两行贴在玗,且中间以[tab]键隔开”而已。

5. expand

就是将[tab]按键围成空格键。

6. split

如果文件太大,导致无法复制到便携设备中,可以使用split.它可以将一个大文件,根据文件大小或行数来拆分,将大文件拆分成小文件,快速又有效。

7. 参数代换:xargs

机器人 2007年10月6日 于 北京

xargs可以读入stdin的数据,并且以空格符或换行符作为标识,将stdin的数据分隔成为参数。

这次也不例外: hello world

Posted by 机器人 on 5th 十月 2007 in php/javascript

以前写过简单的shell,由于由很长时间没有写了,所以基本上都忘的差不多了,现在终于又回到linux的历程上,所以也只能重抄旧业,继续shell了,这次可是铁了心的要在linux开发,当然就得全新,系统的学习linux了,以前没接触过的东西,现在当然要学,以前了解过的东西,当然还得巩固,所以,无论从哪方面来讲,都得从头开始。。。

当然,hello world 也是必不可少的一步了。。。

如下: 

# !/bin/bash
# Progame:
#       This programe  is used to show 'hello world' in screen.
# created:
#       2007-10-5 23:05
# author:
#       hqlong
# see:
#       http://hqlong.phpoo.cn
echo -e "hello world ! \a \n "
exit 0

输出:

[hqlong@localhost scripts]$ ./sh01.sh
hello world !

机器人 2007-10-5 于 北京

认识和分析登录文件

Posted by 机器人 on 4th 十月 2007 in php/javascript

常见登录文件有:

1. /var/log/secure:记录登录系统访问数据的文件,例如pop3、ssh、telnet、ftp等都会记录在此文件中。

2. /var/log/wtmp : 记录登录者信息数据,由于本文件已编译过,所以必须使用last登录来取出文件内容。

3. /var/log/message:这个文件相当重要,只要是系统错误信息(或者是重要信息)都会记录在这个文件中。

4. /var/log/boot.log :记录开机或一些服务启动时所显示的启动或关闭信息。

5. /var/log/maillog或/var/log/mail/*:记录邮件访问或往来(sendmail与pop3)的用户记录。

6. /var/log/cron:记录crontab例行性服务的内容。

7. /var/log/httpd,/var/log/news,/var/log/mysqld.log,/var/log/samba,/var/log/procmail.log;分别是几个网络服务的记录文件。

常见的记录文件是这些,但不同的LINUX版本,登录文件名不会相同(除了/var/log/message之外).

针对登录文件的服务有:

  • syslogd:记录系统或者是网络服务的登录文件;(所有系统服务的运行状况都是通过它来记录的).
  • logrotate:将旧的数据更名,并且建立新的登录文件,以保持登录文件的“全新”,并且设置将最旧的登录文件删除。(这也是经常看见系统的日志文件都保存的有最新的几个日志的文件的原因).