2012年2月

Node.js学习笔记-STDIO Module

var count = 1;
console.log('count: %d', count);//向标准输入输出设备打印
console.info('aaaaaaaaa');//与console.log类似

console.warn('error');//打印错误信息
console.error('error');

console.dir(__dirname);//目录名

console.time('mytime');
console.timeEnd('mytime');

console.trace();

console.assert('ok');

result:
0_1329898936RPj3.gif

整合UCenter+MediaWiki+Discuz实现单点登录

经过一段时间的参考和摸索,终于整合了UCenter、MediaWiki和Discuz,用来实现单点登录。
我整合的各个版本都是UTF-8编码的,如下:
UCenter 1.6.0 、mediawiki-1.18.0、Discuz X2
好了,把她们分别安装好,接着就可以整合了,哈哈!
一、修改ucenter
在ucenter中添加群组管理(即可以用作对mediawiki的访问权限管理,也可以用于用户管理)和部门管理(用于用户管理),第一步如果不熟悉uc的框架结构,很难找到修改的入口,具体的源代码我会在本文后面集中放出地址,添加之后如下图:

二、修改mediawiki
Auth_UC.zip 解压到/extensions目录下,
修改LocalSettings.PHP,在文件的末尾加入如下代码:
$wgGroupPermissions['*']['createaccount'] = false;//禁止注册

// UC插件调用
require_once './extensions/Auth_UC/Auth_UCenter.php';
//*
$wgSMF_WikiGroupID = '1,2,3'; //UCenter中群组对应的群组id号
$wgSMF_WikiGroupName = 'user'; // Name of your group
$wgSMF_UseWikiGroup = true;
$wgSMF_UseExtDatabase = true;
$wgSMF_Version = 'X2'; // Discuz版本
$wgSMF_MySQL_Host = 'localhost'; // UCenter MySQL Host Name.
$wgSMF_MySQL_Username = 'root'; // UCenter MySQL Username.
$wgSMF_MySQL_Password = 'root'; // UCenter MySQL Password.
$wgSMF_MySQL_Database = 'ucenter'; // UCenter MySQL Database Name.
$wgSMF_Charset = 'utf8'; // UCenter MySQL Database Name.
$wgSMF_UserTB = 'uc_members'; // UCenter 用户表
$wgSMF_UserextTB = 'uc_ext_members';//UCenter 扩展用户表
$wgSMF_UserFieldTB = 'uc_memberfields'; // Name of your SMF user table.
$wgSMF_GroupsTB = 'uc_ext_group'; // UCenter 群组表
//*/
$wgAuth = new Auth_UCenter();
// UC插件调用结束

配置/extensions/Auth_UC/config.inc.php,代码如下:
/******************************************/
define('UC_CONNECT', 'mysql');
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'root');
define('UC_DBPW', 'root');
define('UC_DBNAME', 'ucenter');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`ucenter`.uc_');
define('UC_DBCONNECT', '0');
define('UC_KEY', '123456789');
define('UC_API', 'http://localhost/ucenter');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '127.0.0.1');
define('UC_APPID', '2');
define('UC_PPP', '20');
/******************************************/

//用到的应用程序数据库连接参数
$dbhost = UC_DBHOST; // 数据库服务器
$dbuser = UC_DBUSER; // 数据库用户名
$dbpw = UC_DBPW; // 数据库密码
$dbname = UC_DBNAME; // 数据库名
$pconnect = UC_DBCONNECT; // 数据库持久连接 0=关闭, 1=打开
$tablepre = UC_DBTABLEPRE; // 表名前缀, 同一数据库安装多个论坛请修改此处
$dbcharset = UC_CHARSET; // MySQL 字符集, 可选 'gbk', 'big5', 'utf8', 'latin1', 留空为按照论坛字符集设定

配置uc与mw的通信
在应用管理中添加一个应用mediawiki,应用的主URL填入“http://localhost/mediawiki-1.18.0/extensions/Auth_UC”,这里的localhost可根据自己的情况酌情改变,通信密匙填入“123456789”,此处和上面的配置文件“define('UC_KEY',
'123456789');”保持一致。如图:
0_1329883251am5T.gif
0_1329883306x4G6.gif

其他的默认,保存后就会看见uc和mw通信成功,若不成功,好好检查配置文件。
三、修改Discuz
禁止DZ注册就OK。

好了,全部搞定。最终整合源代码为: UCenter+MediaWiki+Discuz X2.zip ,敬请享用本套餐,绝对开胃!

Node.js学习笔记-os Module

var os = require('os');//加载os模块

console.log('os.hostname():'+os.hostname()//当前操作系统的主机名。
+'\nos.type():'+os.type()//当前操作系统名称。
+'\nos.release():'+os.release()//当前操作系统的发型版本。
+'\nos.uptime():'+os.uptime()//当前系统的正常运行时间,时间以秒为单位。
+'\nos.totalmem():'+os.totalmem()//返回系统存储空间总值,该值以字节(byte)为单位。
);
/*
*os.cpus()返回一个对象数组,该数组包含了关于系统每个CPU/内核的信息:型号,速度(以MHz为单位),以及CPU时间使用情况(包含CPU时间片在用户态、改变过优先级的用户进程、内核态、空闲、以及IRQ各方面的消耗)。
*/
var osCPUInfo = os.cpus();
/*
*os.loadavg()返回一个数组,该数组存储着系统1分钟,5分钟,以及15分钟的负载均值。
*/
var osLoadavgInfo = os.loadavg();
console.log('\nos.cpus():');
scan_array(osCPUInfo);
console.log('\nos.loadavg():');
scan_array(osLoadavgInfo);

/*
*递归打印数组
*/
function scan_array(arr) {
for(var key in arr) {
if(typeof(arr[key]) == 'array' || typeof(arr[key]) == 'object') {
scan_array(arr[key]);
} else {
console.log(key + ' = ' + arr[key]);
}
}
}


程序运行结果:
0_1329057756CE8N.gif