<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>New life in Adelaide &#187; Macacus</title>
	<atom:link href="http://www.hatoyu.com/tag/macacus/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hatoyu.com</link>
	<description>Live in Adelaide</description>
	<lastBuildDate>Sat, 26 Jun 2010 12:37:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>三汇语音卡Synway shdpci程序员开发手册</title>
		<link>http://www.hatoyu.com/2009/01/09/%e4%b8%89%e6%b1%87%e8%af%ad%e9%9f%b3%e5%8d%a1synway-shdpci%e7%a8%8b%e5%ba%8f%e5%91%98%e5%bc%80%e5%8f%91%e6%89%8b%e5%86%8c/</link>
		<comments>http://www.hatoyu.com/2009/01/09/%e4%b8%89%e6%b1%87%e8%af%ad%e9%9f%b3%e5%8d%a1synway-shdpci%e7%a8%8b%e5%ba%8f%e5%91%98%e5%bc%80%e5%8f%91%e6%89%8b%e5%86%8c/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 15:47:23 +0000</pubDate>
		<dc:creator>hatoyu</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[CTI]]></category>
		<category><![CDATA[Macacus]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.hatoyu.com/?p=940</guid>
		<description><![CDATA[虽然说用到API的时候再查，但是对于语音板卡没有多少概念的我，还是打算把第一章语音卡编程介绍那里看完：
REC录音卡，我们应该也有用吧？
不过SHDPCI这个东西里面好像有REC功能，周一和XZ再确认一下。
SHD-120A-CT/PCI/ 这个是目前我们走30B+D线路的
SHD-16B-CT/PCI是测试环境用的
]]></description>
			<content:encoded><![CDATA[<p>虽然说用到API的时候再查，但是对于语音板卡没有多少概念的我，还是打算把第一章语音卡编程介绍那里看完：<br />
REC录音卡，我们应该也有用吧？</p>
<p>不过SHDPCI这个东西里面好像有REC功能，周一和XZ再确认一下。</p>
<p>SHD-120A-CT/PCI/ 这个是目前我们走30B+D线路的</p>
<p>SHD-16B-CT/PCI是测试环境用的</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hatoyu.com/2009/01/09/%e4%b8%89%e6%b1%87%e8%af%ad%e9%9f%b3%e5%8d%a1synway-shdpci%e7%a8%8b%e5%ba%8f%e5%91%98%e5%bc%80%e5%8f%91%e6%89%8b%e5%86%8c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Macacus CRM MSSQLSERVER数据导入MySQL PHP程序开发思路</title>
		<link>http://www.hatoyu.com/2008/12/17/macacus-crm-mssqlserver%e6%95%b0%e6%8d%ae%e5%af%bc%e5%85%a5mysql-php%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e6%80%9d%e8%b7%af/</link>
		<comments>http://www.hatoyu.com/2008/12/17/macacus-crm-mssqlserver%e6%95%b0%e6%8d%ae%e5%af%bc%e5%85%a5mysql-php%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e6%80%9d%e8%b7%af/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 06:37:05 +0000</pubDate>
		<dc:creator>hatoyu</dc:creator>
				<category><![CDATA[php_mysql_js_css]]></category>
		<category><![CDATA[Macacus]]></category>

		<guid isPermaLink="false">http://www.hatoyu.com/?p=762</guid>
		<description><![CDATA[将近30万的数据要从MSSQL 转到MySQL，其中车险订单表要分拆为车辆表，订单表，订单险种表，礼品表。
所以估计最后分拆后的导好数据库大小会在2G左右，不知道这样倒需要多少时间。
因为有表的分拆，并且SQL导MySQL的时候出了点错，所以准备用PHP一条一条记录从MSSQL读出，然后在MySQL写入。
这样做的好处：逻辑清晰，保证不会出错。
坏处：处理速度，之前帮PIS 升PIS2 10多万的数据用了10几分钟，而且基本没有这么复杂的分拆。
PDO支持MSSQL：修改php.ini 文件重启APACHE，PHP数据库连接代码 ， 分页代码。
建立车险订单和客户资料的View ,把字段的中文名字都改成英文，这样避免了还要iconv转码的麻烦。

view ac 的SQL语句：

SELECT     dbo.车险订单.id AS aid, dbo.车险订单.保单号 AS oCommerceCode, dbo.车险订单.客户ID AS oCZid, dbo.车险订单.custid AS aCid,
                      dbo.车险订单.行驶证车主 AS aOwner, dbo.车险订单.[座位/吨位] AS aSeat, dbo.车险订单.使用性质 AS [...]]]></description>
			<content:encoded><![CDATA[<p>将近30万的数据要从MSSQL 转到MySQL，其中车险订单表要分拆为车辆表，订单表，订单险种表，礼品表。</p>
<p>所以估计最后分拆后的导好数据库大小会在2G左右，不知道这样倒需要多少时间。</p>
<p>因为有表的分拆，并且<a href="http://www.hatoyu.com/2008/12/16/sql-server%e5%af%bc%e5%85%a5%e6%95%b0%e6%8d%ae%e5%88%b0mysql-%e5%87%ba%e7%8e%b0%e5%b8%b8%e8%a7%84%e9%94%99%e8%af%af2147217891/">SQL导MySQL的时候出了点错</a>，所以准备用PHP一条一条记录从MSSQL读出，然后在MySQL写入。<br />
这样做的好处：逻辑清晰，保证不会出错。<br />
坏处：处理速度，之前帮PIS 升PIS2 10多万的数据用了10几分钟，而且基本没有这么复杂的分拆。</p>
<p>PDO支持MSSQL：修改php.ini 文件重启APACHE，<a href="http://www.hatoyu.com/2008/12/17/pdo-mssql-%E4%B8%8D%E6%94%AF%E6%8C%81%E4%B8%AD%E6%96%87%E8%A1%A8%E5%90%8D/#more-750">PHP数据库连接代码</a> ，<a href="http://www.hatoyu.com/2008/12/17/ms-sqlserver-%E5%88%86%E9%A1%B5%E8%AF%AD%E5%8F%A5/"> 分页代码</a>。</p>
<p>建立车险订单和客户资料的View ,把字段的中文名字都改成英文，这样避免了还要iconv转码的麻烦。<br />
<span id="more-762"></span><br />
view ac 的SQL语句：</p>
<pre lang="sql" line="1">
SELECT     dbo.车险订单.id AS aid, dbo.车险订单.保单号 AS oCommerceCode, dbo.车险订单.客户ID AS oCZid, dbo.车险订单.custid AS aCid,
                      dbo.车险订单.行驶证车主 AS aOwner, dbo.车险订单.[座位/吨位] AS aSeat, dbo.车险订单.使用性质 AS aUseType, dbo.车险订单.发动机号 AS aEngine,
                      dbo.车险订单.车牌号码 AS aLicense, dbo.车险订单.车架号码 AS aFrame, dbo.车险订单.厂牌型号 AS aModel,
                      dbo.车险订单.登记年月 AS aRegisterDate, dbo.车险订单.投保险种1 AS iName1, dbo.车险订单.保险金额1 AS iAmount1,
                      dbo.车险订单.保险费1 AS iCosts1, dbo.车险订单.投保险种2 AS iName2, dbo.车险订单.保险金额2 AS iAmount2, dbo.车险订单.保险费2 AS iCosts2,
                      dbo.车险订单.投保险种3 AS iName3, dbo.车险订单.保险金额3 AS iAmount3, dbo.车险订单.保险费3 AS iCosts3, dbo.车险订单.投保险种4 AS iName4,
                      dbo.车险订单.保险金额4 AS iAmount4, dbo.车险订单.保险费4 AS iCosts4, dbo.车险订单.投保险种5 AS iName5, dbo.车险订单.保险金额5 AS iAmount5,
                      dbo.车险订单.保险费5 AS iCosts5, dbo.车险订单.投保险种6 AS iName6, dbo.车险订单.保险金额6 AS iAmount6, dbo.车险订单.保险费6 AS iCosts6,
                      dbo.车险订单.投保险种7 AS iName7, dbo.车险订单.保险金额7 AS iAmount7, dbo.车险订单.保险费7 AS iCosts7, dbo.车险订单.投保险种8 AS iName8,
                      dbo.车险订单.保险金额8 AS iAmount8, dbo.车险订单.保险费8 AS iCosts8, dbo.车险订单.投保险种9 AS iName9, dbo.车险订单.保险金额9 AS iAmount9,
                      dbo.车险订单.保险费9 AS iCosts9, dbo.车险订单.保险费合计 AS oCosts, dbo.车险订单.投保险种10 AS iName0, dbo.车险订单.保险金额10 AS iAmount0,
                      dbo.车险订单.保险费10 AS iCosts0, dbo.车险订单.承保公司 AS oInsurer, dbo.车险订单.起保日期 AS oStartTime, dbo.车险订单.承保日期 AS oEndTime,
                      dbo.车险订单.datatype AS oType, dbo.车险订单.车船税 AS oTax, dbo.车险订单.费用总计 AS oTotal, dbo.车险订单.userid AS oUid,
                      dbo.车险订单.userdate AS oTime, dbo.车险订单.状态 AS oStatus, dbo.客户资料.id AS cid, dbo.客户资料.被保险人 AS cName,
                      dbo.客户资料.所属性质 AS cType, dbo.客户资料.[身份证/企业代码] AS cIdCode, dbo.客户资料.传真 AS cFax, dbo.客户资料.Email AS cEmail,
                      dbo.客户资料.送单地址 AS cAddress, dbo.客户资料.备注 AS cComment, dbo.客户资料.userid AS cStaffcode, dbo.客户资料.userdate AS cUtime,
                      dbo.客户资料.渠道 AS cChannel, dbo.客户资料.客户意愿 AS cDesire, dbo.客户资料.生日 AS cBirthday
FROM         dbo.车险订单 INNER JOIN
                      dbo.客户资料 ON dbo.车险订单.custid = dbo.客户资料.id
</pre>
<p>归零清空MySQL内的记录：</p>
<pre lang="sql">truncate tmcauto;
truncate tmtclient;
truncate tmctel;
truncate tmcorder;</pre>
<p>取所有记录数的SQL语句：</p>
<pre lang="sql">
SELECT COUNT(aid) AS intNum FROM ac;
</pre>
<p>添加用户函数，注意对strQuery的3次处理</p>
<pre lang="php" line="1">
function addClient ($arrOrder)
{
    $strQuery = "INSERT INTO tmtClient (cName,cType,cDataType,cIdCode,cAddress,cLinkName,cComment,cStaffcode,cUtime,cChannel,cDesire)
		Value('" . ($arrOrder['cName2']) . "','" . $arrOrder['cType'] . "','" . $arrOrder['cDataType'] . "','" . $arrOrder['cIdCode'] . "','" . ($arrOrder['cAddress']) . "'
		,'" . ($arrOrder['cLinkName']) . "','" . $arrOrder['cComment'] . "','" . $arrOrder['cStaffcode'] . "','" . ($arrOrder['cUtime']) . "'
		,'" . $arrOrder['cChannel'] . "','" . $arrOrder['cDesire'] . "');";
    $strQuery = stripslashes(i(addslashes($strQuery)));
    $db = &#038; make_db_conn();
    $db->exec('SET NAMES UTF8');
    $result = $db->query($strQuery);
    if ($result) {
        return $db->lastInsertId();
    } else {
        return "No";
    }
}
</pre>
<p>过滤SQLSERVER tel表 感觉数据被污染了，传真号码居然有400多万，空tel有100多万，去掉这些数据还剩下30多万条比较合理的电话号码：</p>
<pre lang="sql">
DELETE FROM tel WHERE tel = '' OR type = '传真' </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hatoyu.com/2008/12/17/macacus-crm-mssqlserver%e6%95%b0%e6%8d%ae%e5%af%bc%e5%85%a5mysql-php%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e6%80%9d%e8%b7%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDO mssql 不支持中文表名</title>
		<link>http://www.hatoyu.com/2008/12/17/pdo-mssql-%e4%b8%8d%e6%94%af%e6%8c%81%e4%b8%ad%e6%96%87%e8%a1%a8%e5%90%8d/</link>
		<comments>http://www.hatoyu.com/2008/12/17/pdo-mssql-%e4%b8%8d%e6%94%af%e6%8c%81%e4%b8%ad%e6%96%87%e8%a1%a8%e5%90%8d/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 03:31:36 +0000</pubDate>
		<dc:creator>hatoyu</dc:creator>
				<category><![CDATA[php_mysql_js_css]]></category>
		<category><![CDATA[Macacus]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pdo]]></category>

		<guid isPermaLink="false">http://www.hatoyu.com/?p=750</guid>
		<description><![CDATA[要把数据从MSSQL SERVER  导入到MySQL，要写PHP代码来一条条记录来转。
XZ当年太偷懒，居然表名字段名都是中文，PDO mssql不支持中文，所以要先改表名为英文，看来真的要转数据的时候，我必须给他们写一个详细的操作手册，否则是估计肯定要出问题的。

function &#038;make_sqldb_conn ()
{
    $login = "sa";
    $passwd = "";
    return new PDO('mssql:host=127.0.0.1;dbname=transform', $login, $passwd);
}
$strQuery = "SELECT top 10 * FROM tmcorder ";
$db->exec('SET NAMES UTF8');
$db = &#038; make_sqldb_conn();
$result = $db->query($strQuery)->fetchAll(PDO::FETCH_ASSOC);
print_r($result);

现在看来中文字段名也不行,：

echo  $result['联系电话'];

就没有东西。
不过这样是有东西出来的，我怀疑和编码有关，MSSQL默认是GB2312.
最后证明这个和PDO是否支持中文无关，而和编码有关。
这样写代码就出东西了。

function i($a) {
	return iconv("UTF-8","gb2312" , $a);
}
$strQuery = "SELECT top 1 * FROM [...]]]></description>
			<content:encoded><![CDATA[<p>要把数据从MSSQL SERVER  导入到MySQL，要写PHP代码来一条条记录来转。</p>
<p>XZ当年太偷懒，居然表名字段名都是中文，PDO mssql不支持中文，所以要先改表名为英文，看来真的要转数据的时候，我必须给他们写一个详细的操作手册，否则是估计肯定要出问题的。<span id="more-750"></span></p>
<pre lang="php" line="1">
function &#038;make_sqldb_conn ()
{
    $login = "sa";
    $passwd = "";
    return new PDO('mssql:host=127.0.0.1;dbname=transform', $login, $passwd);
}
$strQuery = "SELECT top 10 * FROM tmcorder ";
$db->exec('SET NAMES UTF8');
$db = &#038; make_sqldb_conn();
$result = $db->query($strQuery)->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
</pre>
<p>现在看来中文字段名也不行,：</p>
<pre lang="php">
echo  $result['联系电话'];
</pre>
<p>就没有东西。</p>
<p>不过这样是有东西出来的，我怀疑和编码有关，MSSQL默认是GB2312.<br />
最后证明这个和PDO是否支持中文无关，而和编码有关。<br />
这样写代码就出东西了。</p>
<pre lang="php">
function i($a) {
	return iconv("UTF-8","gb2312" , $a);
}
$strQuery = "SELECT top 1 * FROM ".i('客户资料')."; ";
$db->exec('SET NAMES UTF8');
$db = &#038; make_sqldb_conn();
$result = $db->query($strQuery)->fetchAll(PDO::FETCH_ASSOC);
print_r($result);</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hatoyu.com/2008/12/17/pdo-mssql-%e4%b8%8d%e6%94%af%e6%8c%81%e4%b8%ad%e6%96%87%e8%a1%a8%e5%90%8d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MacacusCRM软件开发日记之二开发平台的选择</title>
		<link>http://www.hatoyu.com/2008/11/09/macacuscrm%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%ba%8c%ef%bc%9a%e5%bc%80%e5%8f%91%e5%b9%b3%e5%8f%b0%e7%9a%84%e9%80%89%e6%8b%a9/</link>
		<comments>http://www.hatoyu.com/2008/11/09/macacuscrm%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%ba%8c%ef%bc%9a%e5%bc%80%e5%8f%91%e5%b9%b3%e5%8f%b0%e7%9a%84%e9%80%89%e6%8b%a9/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 06:32:33 +0000</pubDate>
		<dc:creator>hatoyu</dc:creator>
				<category><![CDATA[php_mysql_js_css]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[Macacus]]></category>

		<guid isPermaLink="false">http://www.hatoyu.com/?p=518</guid>
		<description><![CDATA[我记得半年前我写过一个这个内容的帖子，不知道丢哪里去了，所以那天和开发团队统计我们这次开发用的知识点或者开发平台的时候自己也吓了几大跳了，我们居然用了那么多的东西。
先来看看开发的目标：
CTI服务器端和Web服务器端能运行于Windows Server 和 Ubuntu Server 平台，实现跨平台。
座席客户端能通过任意一个浏览器工作，目前以Firefox 3为主力客户端开发，完美兼容IE 7以上版本，Opera和苹果的浏览器可能有界面的微小差异。
为了实现这个目标，我们不得不采用了下面那么多的技术：
CTI服务器端采用了国内比较少见的QT加MySQL数据库，国人用QT主要集中于手机上的开发，QT已经被NOKIA收购了，但是我们用QT主要是因为QT可以很好的跨平台类库，并且比Java运行速度快很多，在Ubuntu下通过Kdevelop做开发还是很方便的，代码只要在Windows用GCC重新编译就可以在Windows下良好的运行了，不过现在还是有点后悔当时没有狠心用Java来做开发的，因为Java的开发工具Eclipse我们在编辑PHP，Flex和JS都在用，已经非常熟悉了，一个IDE完成所有的开发工作不是我们所梦想的吗？
Web服务器端采用了PHP加MySQL数据库，运行平台是Ubuntu Server 加上Apache服务器。CTI服务器通过Socket和客户端的FLASH中间件进行数据交互，FLASH中间件通过Javascript 接口函数和客户端进行数据通信。客户端的Javasript程序通过jQuery AJAX和WEB后台PHP进行通信，PHP和QT通过数据库进行通信，一个比较复杂但是确实可行的方案就这么出来了。
客户端采用浏览器作为工作界面，这样能最大程度简化呼叫中心IT维护的工作量，并且可以实现客户端机器的操作系统全部采用Ubuntu Desktop，好处是不言而喻的：

第一：彻底解决版权问题，Ubuntu优良的可操作性某种程度上已经超过了Windows，永久免费对于一个可能有几百台桌面的企业控制成本是有很大帮助的。
第二：没有病毒。
第三：强大的域控管理能力让整个IT管理变得更方便。
第四：一个Ubuntu裸机对于一般的职员来说除了工作就不能玩什么了，有效提供工作效率。

所以总结一下需要用到的技术有下面那么多：


Ubuntu下三汇板卡API接口和QT C++类库开发
Ubuntu下Apache PHP 和 MySQL服务器的运行和管理
MS SQL Server导入数据到MySQL数据库
FLEX ActionScript 3.0编写的SWF中间件和Socket服务器以及Javascript的通信，这个里面的安全沙盒问题困扰了我们将近一个月，差点没有让我下决心放弃转投Java阵营
全站AJAX，只有一个入口，所有操作感觉和使用感觉和CS接近，同样提供大量的快捷键操作保证座席造作速度
良好的DOM2文档接口，保证通过CSS文件就可以彻底更换客户端的样式
Javascript和jQuery的代码量已经要超过PHP的代码量了
Smarty模板技术实现MVC，TPL是结构良好的HTML
数据库接口采用PDO，保证随时可以改变数据到SQL Server 乃至 Oracle，这个如果数据到TB级别的时候还是很有价值的


采用到的开发工具：
Kdevelop，QT，GCC，VIM，Zendstudio for Eclipse，Apatana Plugnis for Eclipse，Flex 3，phpMyadmin，NaviCat ，Photo Shop , Firebox下强劲的调试工具 Web developer 和 无法不爱的Firebug，以及一大堆的手册已经超过30本的相关书籍。
]]></description>
			<content:encoded><![CDATA[<p>我记得半年前我写过一个这个内容的帖子，不知道丢哪里去了，所以那天和开发团队统计我们这次开发用的知识点或者开发平台的时候自己也吓了几大跳了，我们居然用了那么多的东西。</p>
<p>先来看看开发的目标：</p>
<blockquote><p>CTI服务器端和Web服务器端能运行于Windows Server 和 Ubuntu Server 平台，实现跨平台。<br />
座席客户端能通过任意一个浏览器工作，目前以Firefox 3为主力客户端开发，完美兼容IE 7以上版本，Opera和苹果的浏览器可能有界面的微小差异。</p></blockquote>
<p>为了实现这个目标，我们不得不采用了下面那么多的技术：<br />
CTI服务器端采用了国内比较少见的<a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=2&amp;url=http%3A%2F%2Ftrolltech.com%2F&amp;ei=5nwWSYrjAZbueYrBwbEH&amp;usg=AFQjCNFXD8oDmYB-RN5y8l5-as0YOQ3JbA&amp;sig2=_ibAZwhqDgnbnwJtX8EmRQ">QT</a>加MySQL数据库，国人用QT主要集中于手机上的开发，QT已经被NOKIA收购了，但是我们用QT主要是因为QT可以很好的跨平台类库，并且比Java运行速度快很多，在Ubuntu下通过Kdevelop做开发还是很方便的，代码只要在Windows用GCC重新编译就可以在Windows下良好的运行了，不过现在还是有点后悔当时没有狠心用Java来做开发的，因为Java的开发工具Eclipse我们在编辑PHP，Flex和JS都在用，已经非常熟悉了，一个IDE完成所有的开发工作不是我们所梦想的吗？</p>
<p>Web服务器端采用了PHP加MySQL数据库，运行平台是Ubuntu Server 加上Apache服务器。CTI服务器通过Socket和客户端的FLASH中间件进行数据交互，FLASH中间件通过Javascript 接口函数和客户端进行数据通信。客户端的Javasript程序通过jQuery AJAX和WEB后台PHP进行通信，PHP和QT通过数据库进行通信，一个比较复杂但是确实可行的方案就这么出来了。</p>
<p>客户端采用浏览器作为工作界面，这样能最大程度简化呼叫中心IT维护的工作量，并且可以实现客户端机器的操作系统全部采用Ubuntu Desktop，好处是不言而喻的：</p>
<blockquote><p>
第一：彻底解决版权问题，Ubuntu优良的可操作性某种程度上已经超过了Windows，永久免费对于一个可能有几百台桌面的企业控制成本是有很大帮助的。<br />
第二：没有病毒。<br />
第三：强大的域控管理能力让整个IT管理变得更方便。<br />
第四：一个Ubuntu裸机对于一般的职员来说除了工作就不能玩什么了，有效提供工作效率。
</p></blockquote>
<p>所以总结一下需要用到的技术有下面那么多：</p>
<blockquote>
<ol>
<li>Ubuntu下三汇板卡API接口和QT C++类库开发</li>
<li>Ubuntu下Apache PHP 和 MySQL服务器的运行和管理</li>
<li>MS SQL Server导入数据到MySQL数据库</li>
<li>FLEX ActionScript 3.0编写的SWF中间件和Socket服务器以及Javascript的通信，这个里面的安全沙盒问题困扰了我们将近一个月，差点没有让我下决心放弃转投Java阵营</li>
<li>全站AJAX，只有一个入口，所有操作感觉和使用感觉和CS接近，同样提供大量的快捷键操作保证座席造作速度</li>
<li>良好的DOM2文档接口，保证通过CSS文件就可以彻底更换客户端的样式</li>
<li>Javascript和jQuery的代码量已经要超过PHP的代码量了</li>
<li>Smarty模板技术实现MVC，TPL是结构良好的HTML</li>
<li>数据库接口采用PDO，保证随时可以改变数据到SQL Server 乃至 Oracle，这个如果数据到TB级别的时候还是很有价值的</li>
</ol>
</blockquote>
<p>采用到的开发工具：<br />
Kdevelop，QT，GCC，VIM，Zendstudio for Eclipse，Apatana Plugnis for Eclipse，Flex 3，phpMyadmin，NaviCat ，Photo Shop , Firebox下强劲的调试工具 Web developer 和 无法不爱的Firebug，以及一大堆的手册已经超过30本的相关书籍。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hatoyu.com/2008/11/09/macacuscrm%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e6%97%a5%e8%ae%b0%e4%b9%8b%e4%ba%8c%ef%bc%9a%e5%bc%80%e5%8f%91%e5%b9%b3%e5%8f%b0%e7%9a%84%e9%80%89%e6%8b%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
