« Posts under Tech

GitBatch – Windows下的Git批处理命令工具

正式应用Git不到一个星期,感觉add\commit和push\pull的时候敲命令有点小麻烦,而TortoiseGit用着不太须手,索性花了些时间写了个Windows下的批处理。目前实现了add\commit\push\pull等简单操作(复杂的我还没学会)。如对此工具有兴趣可至GitHub查看。
使用方法:
  1. 将g.bat放在git项目根目录中(建议在.gitignore中添加/*.bat忽略条目)
  2. 运行cmd, 至git项目根目录,命令行下敲”g”。
  3. Done.
Snap:

个人知识管理工具推荐 – Evernote

evernote_1

Evernote是一款管理人个笔记的云服务,可以有效的帮助我们管理笔记、资料、文献,并能将零散而杂乱的知识点有结构,有层次的组识起来。

丰富的客户端支持:Evernote提供各种主流终端的Client支持,Win,Linux,Mac OS X,iOS(iPhone,iPad),Android,WEB等等。基于这些客户端,我们可以随时随地管理我们的知识。
云端同步:利用Evernote提供的同步功能,我们不必担心资料的丢失,只要客户端处于在线状态,本地数据库存就会与云进行同步。如果还觉得不够保险,可以利用Dropbox等的工具为本地数据库再加一道保险。
搜索:Evernote提供了即时搜索,我们可以通过关键字、标签快速检索到我们需要的内容。
富媒体支持:除文本内容外,我们还可以在Evernote中保存图片,声音等形式的资料,利用Evernote客户端可以直接进行音频的录制。
Evernote的服务有免费和收费之分,区别如下: »Read More

一动则皆动 – 浅谈VMware ESX的弊端

vmwareesx Vmware ESX(以下简称ESX)作为一个企业级的虚拟化解决方案,相对于业界同类产品来说有着不可比拟的优势。

ESX强调其对资源管理的灵活性和高效性,强调“漂”的概念。“漂”即当宿主集中的某一个节点(硬件宿主,如刀片机)出现问题时,运行在该节点上的OS会自动迁移至空闲的节点中去,这样一来就实现了与硬件冗余类似的效果,同时不需要为每个服务器准备一个Standby。

看似是一个很优的解决方案,但在实际的生产环境中总会发生这样或那样的问题,迫使整个宿主集关机重启或者断网。比如为环境增加存储空间,划分wave,比如增加宿主机内存,比如更换光交等等。虽说这些事情不常发生,但在生产环境下这种一动则皆动的效应是让人无法忍受的,效率是低下的,并且会占用大量的时间和人力的成本。

 

为了将宕机影响控制到最小,操作必然要在8小时工作时间以外进行。通常,考虑到特殊业务应用的特殊情况,操作的真正开始时间往往选择在午夜开始。

同时人力成本是巨大的,因为一旦发生这种状况除了IT部门的infrastructure负责人要全程跟进之外,各服务\应用系统的负责人也需要跟踪系统运维情况,以便在发生意外时及时进行处理。对于一个有一定规模的企业来说,这绝对是一件兴师动众的大事。 »Read More

我用到过的 Yii Framework 解决方案索引

以下是我在应用到过的一些Yii中的解决方案,计划不断更新。

如何在Yii中使用PHPExcel 扩展
How to use PHPExcel external library with Yii

 

使用activeCheckBoxList()方法时如何设置已选项目(checked)

 

启用Gzip
Enabling Gzip

 

如何用ActiveRecords记录数据变更日志
How to log changes of ActiveRecords

在Yii中使用活动目录验证用户身份

借助第三方类库adLDAP,将adLDAP.php复制到项目的vendors目录中。修改UserIdentity.php

PHP
<?php
 
/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity
{
	public function authenticate()
	{   
        $ldapConfig = Yii::app()->params['ldap'];
        Yii::import('application.vendors.*');
        require_once('adLDAP.php');
        try
        {
            $adldap = new adLDAP($ldapConfig);
        }
        catch (adLDAPException $e)
        {
            echo $e; exit();   
        }
        if(!$adldap->authenticate($this->username, $this->password))
            $this->errorCode=self::ERROR_PASSWORD_INVALID;
        else
        {
            $adInfo = $adldap->user_info($this->username);
            $this->setState('ad_info',$adInfo);
            $this->setState('login_time',time());
            $this->errorCode=self::ERROR_NONE;
        }
        return !$this->errorCode;
	}
}

TomcatStats_0.1_PHP – Apache/Tomcat Monitor [Cacti Script and Template]

tomcatstats

基于 Timothy Denike  的 TomcatStats v0.1 修改,去掉了perl的采集脚本,改为PHP实现(SimpleXML)。

Step 1.
配置Tomcat Manager

Step 2.
将采集脚本tomcatstats.php得到到 <cacti_root>/scripts/ 目录下。导入模板cacti_host_template_tomcat_server.xml

Step 3.
调试,在命令行下输入,测试是否可以获取数据。

php tomcatstats.php app1:8444 admin passwords

Step 4.
根据实现设定的账号密码设定Cacti Data Input Methods 中Tomcat Status Input String项

Step 5.
创建图像。

详见附件 »Read More