by admin

美国总统电台演讲:华盛顿白宫

七月 5, 2010 in orzero.net by admin

美国总统奥巴马简介

贝拉克·侯赛因·奥巴马二世,美国第44任总统。奥巴马是首位拥有黑人血统,并且童年在亚洲成长的美国总统,与不同地方与不同文化背景的人共同生活过。

贝拉克·奥巴马(Barack Hussein Obama II),1961年8月4日生于美国夏威夷州火奴鲁鲁(檀香山),父亲是一位祖籍肯尼亚的黑人穆斯林,母亲是堪萨斯州的美国人。1983年毕业于哥伦比亚大学,1985年到芝加哥工作。1991年毕业于哈佛大学的法学院,是第一个担任哈佛法学评论主编的非洲裔美国人。1992年和米歇尔·拉沃恩·奥巴马结婚。   1996年,奥巴马从芝加哥当选为伊利诺伊州国会参议员并在之后的3年中连任;2000年,在竞选美国众议院议员席位失败后,奥巴马将主要精力投入到伊利诺伊州的参议工作中。 2007年2月10日,奥巴马在伊利诺伊州斯普林菲尔德市正式宣布参加2008年美国总统大选,并提出了重点在“完结伊拉克战争以及实施全民医疗保险制度”的竞选纲领。 2008年6月3日,奥巴马被定为民主党总统候选人;同年8月23日,在民主党全国代表大会上奥巴马被正式提名,从而成为了美国历史上首个非洲裔总统大选候选人。2008年1月1日,奥巴马开通了自己的微博网,通过网络渠道对竞选进行宣传,后来被人们称为Web2.0总统,可见奥巴马对网络的重视。 2008年11月5日,奥巴马击败共和党候选人约翰·麦凯恩,正式当选为美国第四十四任总统(届数:第56届,任数:第44任,位数:第43位, 政党:民主党)。于2009年1月20日,在美国首都华盛顿特区参加就职典礼,发表就职演说,并参加了游行。任期4年。根据美国法律,他还可以在2013年,再次竞选总统。   2009年10月9日,据英国广播公司报道,诺贝尔奖评审会称,美国总统奥巴马因“为增强国际外交及各国人民间的合作做出非同寻常的努力”而被授予2009年度诺贝尔和平奖。

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.0_1079]
Rating: 0 (from 0 votes)

by admin

win7硬盘安装,win7下硬盘安装Ubuntu10.04,win7 ubuntu双系统

六月 26, 2010 in soft by admin

收集于网上,应该是比较全面的资料了。硬盘安装win7和ubuntu并做双系统,用到工具EasyBCD-1.7.2以及nt6 hdd installer v2.8.3

首先硬盘安装windows7:

1、用winrar打开win7的镜像文件,全部解压到任意盘的根目录(除系统盘)

2、解压运行工具 nt6 hdd installer v2.8.3  选择:【 安 装 nt6 hdd Installer 模 式 2】,自动安装执行完后,选择【 重 启 】

 3、重启后开始正常的安装win7。

win7安装好后,再硬盘安装ubuntu并做双系统:

1、在Windows7中下载并安装EasyBCD-1.7.2

2、将 Ubuntu-10.04-desktop-i386.iso文件复制到C盘根目录,用压缩软件打开,再打开casper目录,把initrd.lz、 vmlinuz二个文件解压到C盘根目录下。

3、运行EasyBCD_1.7.2进入操作窗口后,
点Add/Remove Entries
再点右下边的NeoGrub
再点Install NeoGrub
再点Save
选中NeoGrub Bootloader,再点Configure

4、在出现menu.lst记事本窗口中添加以下内容并保存:
root
kernel /vmlinuz iso-scan/filename=/Ubuntu-10.04-desktop-i386.iso boot=casper splash
initrd /initrd.lz
boot

5、电脑重启后,就会发现启动菜单会多了一项NeoGrub Bootloader,选择后会进入Ubuntu 10.04光盘系统。按快捷键运行(Alt+F2),在运行框内输入:
sudo umount -l /isodevice

最后点桌面上的Ubuntu安装图标及可开始正常安装
安装成功后,重启电脑会直接进入Ubuntu 10.04,打开终端输入以下命令:
sudo update-grub
再次重启及可出现Windows7引导菜单

收工,结束,祝成功安装!

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.0_1079]
Rating: 0 (from 0 votes)

by admin

mysql my.cnf 配置建议

六月 14, 2010 in orzero.net by admin

mysql的配置文件是/etc/my.cnf,通过修改它来配置mysql。
/etc/my.cnf来自以下文件:

如果你的内存≤64M,则复制/usr/local/share/mysql/my-small.cnf为/etc/my.cnf
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it’s important that the mysqld daemon
# doesn’t use much resources.

如果内存是128M,则复制/usr/local/share/mysql/my-medium.cnf为/etc/my.cnf
# This is for a system with little memory (32M – 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)

如果内存是512M,则复制/usr/local/share/mysql/my-large.cnf为/etc/my.cnf
# This is for a large system with memory = 512M where the system runs mainly
# MySQL.

如果内存是1-2G,则复制/usr/local/share/mysql/my-huge.cnf为/etc/my.cnf
# This is for a large system with memory of 1G-2G where the system runs mainly
# MySQL.

如果内存是4G,则复制/usr/local/share/mysql/my-innodb-heavy-4G.cnf为/etc/my.cnf
# This is a MySQL example config file for systems with 4GB of memory
# running mostly MySQL using InnoDB only tables and performing complex
# queries with few connections.

不过MySQL参数那么多,很多时候我们还是要知道他们具体的含义才能根据实际问题做出具体的调整。
———————————–
我们可以通过SHOW VARIABLES;来查看系统参数,通过SHOW STATUS;来判断系统状态。
———————————–
先来看看table_cache参数对性能的影响。摘录my-innodb-heavy-4G.cnf中对它的描述:
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable “open-files-limit” in
# section [mysqld_safe]
table_cache = 2048
比如:当系统比较繁忙的时候,我们show variables;查到table_cache的值,再show status;发现open_tables的值和table_cache差不多,而且opened_tables还一直再增加,就说明我们的 table_cache设置的太小了。

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.0_1079]
Rating: 0 (from 0 votes)

by admin

yii Srbac 1.1.0.2 使用手册

六月 2, 2010 in PHP, web by admin

什么 是srbac?

Srbac 是一个为 Yii 框架设计的模块。

它设计用来简化 Yii authManager 组件的使用,authManager 组件实现基于角色的访问控制(R.B.A.C)。

srbac 支持的 authManager 是 CdbAuthManger , CdbAuthManger 使用一个数据库来存储认证信息。 Srbac 为大多数 RBAC 动作(创建/编辑/删除 认证项目,为用户分配认证项目等)提供了一个图形界面。

Srbac 1.1.x 需要 Yii 版本 1.1.0 或更新的版本。

下载 srbac

Srbac 可以在如下地址下载:
Yii 扩展页面: http://www.yiiframework.com/extension/srbac/
Google 项目页面: http://code.google.com/p/srbac/downloads/list

也可以使用如下命令签出最新的开发代码:

svn checkout http://srbac.googlecode.com/svn/trunk/ srbac-read-only

安装 srbac

要安装 srbac 模块,首先解压压缩文件到Yii应用的模块目录,然后编辑配置文件如下:

配置数据库组件:
SQLite:

'db'=>array(
   'class'=>'CDbConnection',
   'connectionString'=>'sqlite:path/to/database/yourDatabase.db',
),

MySQL:

'db'=>array(
   'class'=>'CDbConnection',
   'connectionString'=>'mysql:host=localhost;dbname=yourDatabase',
   'username'=>'yourUsername',
   'password'=>'yourPassword',
),

配置authManager组件:

'authManager'=>array(
		    'class'=>'CDbAuthManager',// Manager 的类型
		    'connectionID'=>'db',//使用的数据库组件
		    'itemTable'=>'items',// 授权项目表 (默认:authitem)
		    'assignmentTable'=>'assignments',// 授权分配表 (默认:authassignment)
		    'itemChildTable'=>'itemchildren',// 授权子项目表 (默认:authitemchild)
		),

配置srbac 模块:

by admin

yii 性能调整

六月 2, 2010 in PHP, web by admin

网络应用程序的性能受很多因素的影响。数据库存取,文件系统操作,网络带宽是所有潜在的影响因素。 Yii 已在各个方面减少框架带来的性能影响。但是在用户的应用中仍有很多地方可以被改善来提高性能。

开启 APC 扩展

启用 PHP APC extension 可能是改善一个应用整体性能的最简单方式。此扩展缓存和优化 PHP 中间代码并避免时间花费在为每个新来的请求解析PHP脚本。

禁用调试模式

禁用调试模式是另一个改善性能的容易方式。若常量 YII_DEBUG被定以为 true,这个 Yii 应用将以调试模式运行。 调试模式在开发阶段是有用的,但是它影响性能因为一些组件引起额外的系统开销。例如,信息记录器(the message logger)将为被条被记录的信息记录额外的调试信息。

使用 yiilite.php

当启用 PHP APC extension 时, 我们可以将 yii.php 替换为一个名为 yiilite.php 的另一个引导文件来进一步提高 Yii-powered 应用的性能。

文件 yiilite.php 包含在每个 Yii 发布中。它是一些常用到的 Yii 类文件的合并文件。在文件中,注释和跟踪语句都被去除。因此,使用 yiilite.php 将减少被引用的文件数量并避免执行跟踪语句。

注意,使用 yiilite.php 而不开启 APC 实际上将降低性能,因为 yiilite.php 包含了一些不是每个请求都必须的类,这将花费额外的解析时间。 同时也要注意,在一些服务器配置下使用 yiilite.php 将更慢,即使 APC 被打开。 最好使用演示中的 hello world 运行一个基准程序来决定是否使用 yiilite.php

使用缓存技术

如在 Caching 章节所述,Yii 提供了几个可以有效提高性能的缓存方案。若一些数据的生成需要长时间,我们可以使用 data caching 方法来 减少数据产生的频率;若页面的一部分保持相对的固定,我们可以使用 fragment caching 方法 减少它的渲染频率;若一整个页面保持相对的固定,我们可以使用 page caching 方法来节省页面渲染所需的花销。

若应用在使用Active Record,我们应当打开 the schema caching 以节省解析数据库模式(database schema)的时间。可以通过设置CDbConnection::schemaCachingDuration 属性为一个大于 0 的值来完成。

by admin

yii 安全措施 (Security)

六月 2, 2010 in PHP, web by admin

跨站脚本攻击的防范

跨站脚本攻击(也称为 XSS)出现在当一个网络应用收集来自用户的恶意数据时。 攻击者常常向易受攻击的web应用注入JavaScript,VBScript,ActiveX,HTML或 Flash来愚弄其他用户并收集他们的信息。 举个例子,一个未经良好设计的论坛系统可能不经检查就显示用户所输入的内容。 攻击者可以在帖子内容中注入一段恶意的JavaScript代码。 这样,当其他访客在阅读这个帖子的时候,这些JavaScript代码就可以在访客的电脑上运行了。

一个防范XSS攻击的最重要的措施之一就是:在显示用户输入的内容之前进行内容检查。 比如,你可以对用户的输入进行HTML编码处理。但是在某些情况下这种方法就不可取了,因为这种方法禁用了所有的HTML标签。

Yii集成了HTMLPurifier并且为开发者提供了一个很有用的组件CHtmlPurifier, 这个组件封装了HTMLPurifier。它可以将通过彻底的检查、安全和白名单功能来 把所审核的内容中的所有的恶意代码清除掉,并且确保过滤之后的内容过滤符合标准。

CHtmlPurifier组 件可以作为一个widget或 者filter来 使用。 当作为一个widget来使用的时候,CHtmlPurifier可 以对在视图中显示的内容进行安全过滤。 以下是代码示例:

<?php $this->beginWidget('CHtmlPurifier'); ?>
//...这里显示用户输入的内容...
<?php $this->endWidget(); ?>

跨站请求伪造攻击的防范

跨站请求伪造(简称CSRF)攻击,即攻击者在用户浏览器在访问恶意网站的时候,让用户的浏览器向一个受信任的网站发起攻击者指定的请求。 举个例子,一个恶意网站有一个图片,这个图片的src地址指向一个银行网站: http://bank.example/withdraw?transfer=10000&to=someone。 如果用户在登陆银行的网站之后访问了这个恶意网页,那么用户的浏览器会向银行网站发送一个指令,这个指令的内容可能是“向攻击者的帐号转账10000 元”。 跨站攻击方式利用用户信任的某个特定网站,而CSRF攻击正相反,它利用用户在某个网站中的特定用户身份。

要防范CSRF攻击,必须遵守规则:GET请求只允许检索数据而不能修改服务器上的任何数据。 而POST请求应当含有一些可以被服务器识别的随机数值,用来保证表单数据的来源和运行结果发送的去向是相同的。

Yii实现了一个CSRF防范机制,用来帮助防范基于POST的攻击。 这个机制的核心就是在cookie中设定一个随机数据,然后把它同表单提交的POST数据中的相应值进行比较。

默认情况下,CSRF防范是禁用的。 如果你要启用它,在应 用配置中设置组件 CHttpRequest 如下

代码示例:

return array(
    'components'=>array(
        'request'=>array(
            'enableCsrfValidation'=>true,
        ),
    ),
);

要显示一个表单,请使用CHtml::form而 不要自己写HTML代码。因为CHtml::form可 以自动地在表单中嵌入一个隐藏项,这个隐藏项储存着验证所需的随机数据,这些数据可在表单提交的时候发送到服务器进行验证。

保护cookie免受攻击是非常重要的。因为session ID通常存储在Cookie中。 如果攻击者窃取到了一个有效的session ID,他就可以使用这个session ID对应的session信息。

这里有几条防范对策:

  • 您可以使用SSL来产生一个安全通道,并且只通过HTTPS连接来传送验证cookie。这样攻击者是无法解密所传送的cookie的。
  • 设置cookie的过期时间,对所有的cookie和seesion令牌也这样做。这样可以减少被攻击的机会。
  • 防范跨站代码攻击,因为它可以在用户的浏览器触发任意代码,这些代码可能会泄露用户的cookie。
  • 验证 cookie 数据,探测它们是否被更改。

Yii实现了一个cookie验证机制,可以防止cookie被修改。启用之后可以对cookie的值进行HMAC检查。

Cookie验证在默认情况下是禁用的。如果你要启用它,可以编辑应 用配置 中的组件中的CHttpRequest部 分。

代码示例:

by admin

yii 控制台应用(Console Applications)

六月 2, 2010 in PHP, web by admin

Console applications are mainly used by a Web application to perform offline work, such as code generation, search index compiling, email sending, etc. Yii provides a framework for writing console applications in an object-oriented and systematic way.

Yii represents each console task in terms of a command, and a console application instance is used to dispatch a command line request to an appropriate command. The application instance is created in an entry script. To execute a console task, we simply run the corresponding command on the command line as follows,

by admin

yii 使用可选的模板句法

六月 2, 2010 in PHP, web by admin

Yii 允许开发者使用他们喜爱的模板句法 (例如Prado,Smarty) 来编写控制器或 widget 的视图。 这通过编写和安装一个 viewRenderer 应用组件来实现。The view renderer intercepts the invocations of CBaseController::renderFile, compiles the view file with customized template syntax, and renders the compiling results.

信息: 推荐只有当编写很少被重用的视图时才使用自定义的模板句法。 否则,若他人重用此视图,将不得不在他们的应用中也使用相同的模板句法。

下面,我们介绍如何使用 CPradoViewRenderer, 它是一个视图渲染器,允许你使用使用类似于 Prado 框架framework 中的模板句法。 对于那些要开发自己视图渲染器的开发者,CPradoViewRenderer 是个好的参考。

使用 CPradoViewRenderer

要使用CPradoViewRenderer, 我们只需要如下配置应用:

return array(
    'components'=>array(
        ......,
        'viewRenderer'=>array(
            'class'=>'CPradoViewRenderer',
        ),
    ),
);

默认情况下,CPradoViewRenderer 将编译视图文件源码并保存结果PHP文件到runtime 目录中。 只有当视图文件源码被改变时,PHP 文件才被重新生成。 因此,使用 CPradoViewRenderer 只遭受很小的性能损失。

提示: CPradoViewRenderer 主要引入了一些新模板标签 以使得更容易更快地编写视图,在视图源码中你仍然可以使用 PHP 代码。

下面,我们介绍CPradoViewRenderer 支持的模板标签。

短 PHP 标签

短 PHP 标签是在一个视图中编写 PHP 表达式和语句的快捷方式。 表达式标签 <%= expression %> 被翻译为 <?php echo expression ?>; 语句标签 <% statement %> 被翻译为 <?php statement ?>。例如,

by admin

yii 国际化

六月 2, 2010 in PHP, web by admin

Internationalization (I18N) 指的是设计一个软件应用使它可以适用于各种语言和各种地区而无需修改核心代码。对于 Web 应用,这点特别重要因为潜在的用户可能来自世界各地。

Yii 在几个方面提供了 I18N 支持。

  • 它为每个可能的语言和变量(variant)提供了本地化数据(the locale data)。
  • 它提供了信息和文件翻译服务。
  • 它提供了 locale-dependent 日期和时间格式。
  • 它提供了 locale-dependent 数字格式。

在下面的子章节中,我们将详细解释上面的每个方面。

区域和语言

Locale 是一个参数集合,它定义了用户的语言,国家和首选项。它通常由一个 ID 定义,包含一个语言ID和一个区域ID。例如,ID en_US 代表了 the locale of English and United States。。为了一致性,所有 locale IDs 在 Yii 中被规划为 LanguageID 或 LanguageID_RegionID 以小写格式(例如 en, en_us)。

Locale data 被表示为一个 CLocale 实例。 它提供了 locale-dependent 信息,包括货币符号,数字符号,货币格式,数字格式,日期和时间格式,和日期相关的名字。由于语言信息已经由the locale ID 表示,不由 CLocale 提供。基于相同的原因,我们经常可以互换使用术语 locale 和 language。

给出一个 locale ID,使用 CLocale::getInstance($localeID)CApplication::getLocale($localeID)可 以得到对应的 CLocale 实例。

by admin

yii Web Service

六月 2, 2010 in PHP, web by admin

Web Service

Web service 是一个软件系统,设计来支持计算机之间跨网络相互访问。对于Web应用程序,它通常用一套API,可以被互联网访问和执行在远端系统主机上的被请求服务。 系统主机所要求的服务。例如,以Flex为基础的客户端可能会援引函数实现在服务 器端运行PHP的Web应用程序。 Web service依赖SOAP作为通信协议栈的基础层。

Yii提供CWebService和CWebServiceAction简 化了在Web应用程序实现Web service。这些API以类形式实现,被称为service providers. Yii将为每个类产生一个WSDL,描述什么API是可用的以及它们如何被客户端调用。当一个 API 被客户端调用,Yii将实例化相应的service provider并调用被请求的API来完成请求。

注: CWebService 依靠PHP SOAP extension 。请确保您在试用本节中的例子前开启此扩展。

Defining Service Provider(定义Service Provider)

正如我们上文所述,一个 service provider是一个定义了能被远程调用的方法的类。Yii依靠doc comment 和 class reflection识别 哪些方法可以被远程调用,以及他们的参数和返回值是什么。

让我们以一个简单的股票引用服务开始。这项服务允许客户端请求指定股票的报价引用。我们定义 service provider 如下。请注意, 我们通过扩展CController 定义了这个 provider 类 StockController。这是不是必需的。马上我们将解释为什么这样做。

class StockController extends CController
{
    /**
     * @param string the symbol of the stock
     * @return float the stock price
     * @soap
     */
    public function getPrice($symbol)
    {
        $prices=array('IBM'=>100, 'GOOGLE'=>350);
        return isset($prices[$symbol])?$prices[$symbol]:0;
        //...return stock price for $symbol
    }
}

在上面的,我们通过在文档注释中的@soap标签声明getPrice方法为一个Web service API。 我们依靠文档注释指定输入的参数类型和返回值的类型。其他的API可使用类似方式声明。

Declaring Web Service Action(声明 Web Service Action )

已经定义了service provider,我们使他能够通过客户端访问。特别是,我们要创建一个控制器动作暴露这个服务。做到这一点很容易,在控制器类中定义一个CWebServiceAction动 作。对于我们的例子中,我们把它放在StockController中。

Better Tag Cloud