﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-socketref,呆在autonavi.com-随笔分类-Django</title><link>http://www.cppblog.com/socketref/category/12993.html</link><description>gis,mouse,luolasi</description><language>zh-cn</language><lastBuildDate>Wed, 28 Mar 2012 07:14:57 GMT</lastBuildDate><pubDate>Wed, 28 Mar 2012 07:14:57 GMT</pubDate><ttl>60</ttl><item><title>影像管理系统开发告一段落，舒口气</title><link>http://www.cppblog.com/socketref/archive/2012/03/27/169198.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Tue, 27 Mar 2012 11:23:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2012/03/27/169198.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/169198.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2012/03/27/169198.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/169198.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/169198.html</trackback:ping><description><![CDATA[花了近3周时间去完成DVR项目的视频影像管理系统。目标容量200T，利用廉价PC实现集群存储，由于存储的是单个的视频段文件且对于文件容灾方面没有特殊的要求，允许单点存储损坏。<br />系统部署一个stoMaster服务器做控制服务，提供影像系统的读写调度分配、系统模块监控管理、系统影像查询服务；若干个stoNodeServer作为单点存储服务器，每个节点服务器下挂载10个2T普通硬盘，单节点支持20T容量，由于采用PC架构，大大节省成本且还能保证一定IO并发能力，保证200T容量需要10台PC做支撑。<br />开发涉及技术: python + ffmpeg + flex + openscales + swMapServer + Vs2008 + Qt + postgis + psycopg2 + comtypes<br />Links: <a title="http://sw2us.com/sites/default/files/dvr.demo.v0.1.0_2012.3.27.zip" href="http://sw2us.com/sites/default/files/dvr.demo.v0.1.0_2012.3.27.zip">http://sw2us.com/sites/default/files/dvr.demo.v0.1.0_2012.3.27.zip</a><br />幸好有了python这个好帮手,不然要干死了，python对我来讲不是简单的当胶水辅助了，通信框架、UI、数据库都采用python，只有那些个点上用了高效点的c++，例如：ffmpeg解码、文件存储等等<br />演示视频:&nbsp; <div><a style="color: #ff0000;" title="http://sw2us.com/sites/default/files/flvshow/dvr.demo.html" href="http://sw2us.com/sites/default/files/flvshow/dvr.demo.html">http://sw2us.com/sites/default/files/flvshow/dvr.demo.html</a></div><br /><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/dvr.1.png" height="446" width="630" /><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr.4.png" height="296" width="625" /><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/dvr.2.png" height="302" width="633" /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/dvr.3.png" height="302" width="625" /><br /><br />系统运行demo: <br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/demo.1.png" height="903" width="1150" /><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/demo.2.png" height="543" width="774" /><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/demo.3.png" height="523" width="649" /><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/dvr/demo.4.png" height="673" width="978" /><img src ="http://www.cppblog.com/socketref/aggbug/169198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2012-03-27 19:23 <a href="http://www.cppblog.com/socketref/archive/2012/03/27/169198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开票系统</title><link>http://www.cppblog.com/socketref/archive/2011/07/22/151596.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Thu, 21 Jul 2011 19:33:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2011/07/22/151596.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/151596.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2011/07/22/151596.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/151596.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/151596.html</trackback:ping><description><![CDATA[有点来不及了，今天开始写tax金税开票服务系统的代码，团购的事情与小风交流之后有点清楚<br /><img src="http://www.cppblog.com/images/cppblog_com/socketref/tax_ui.png" width="1161" height="759" alt="" /><img src ="http://www.cppblog.com/socketref/aggbug/151596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2011-07-22 03:33 <a href="http://www.cppblog.com/socketref/archive/2011/07/22/151596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cx_Oracle访问oracle 10g ，弄了半天才搞定</title><link>http://www.cppblog.com/socketref/archive/2011/07/19/151341.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Mon, 18 Jul 2011 16:54:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2011/07/19/151341.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/151341.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2011/07/19/151341.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/151341.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/151341.html</trackback:ping><description><![CDATA[真的自己没有恒心恐怕要半途而废了<br />cxoracle版本与oracle instantclient版本 必须严格匹配（花了很多时间）<br /><div><br />http://cx-oracle.sourceforge.net/&nbsp;&nbsp; &nbsp; <br /><br />oracle 10g<br />cx_Oracle-5.1-10g.win32-py2.6.msi<br />instantclient-basic-win32-10.2.0.4.zip<br />解压instantclient-basic-win32-10.2.0.4.zip ，并将此目录设置为ORACLE_HOME<br />将instantclient-basic-win32-10.2.0.4目录内的dll拷贝到c:\python26\lib\site_packages<br />运行oracle_test.py测试是否能连接到远程oracle服务 <br /><br />import cx_Oracle<br />dsn_tns = cx_Oracle.makedsn('192.168.14.203', 1521,'ORCL')&nbsp;&nbsp; -- ORCL为远端oracle配置的listener的名称<br />print cx_Oracle.connect('tax','tax',dsn_tns)</div><img src ="http://www.cppblog.com/socketref/aggbug/151341.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2011-07-19 00:54 <a href="http://www.cppblog.com/socketref/archive/2011/07/19/151341.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>django操作数据库</title><link>http://www.cppblog.com/socketref/archive/2011/06/21/149070.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Mon, 20 Jun 2011 16:14:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2011/06/21/149070.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/149070.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2011/06/21/149070.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/149070.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/149070.html</trackback:ping><description><![CDATA[<div>class AO_AppGroup(models.Model):<br />&nbsp;&nbsp; &nbsp;name = models.CharField(max_length=40,db_index=True)&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#组名称 <br />&nbsp;&nbsp; &nbsp;iconurl = models.CharField(max_length=40)&nbsp;&nbsp; &nbsp;#图标资源<br />&nbsp;&nbsp; &nbsp;client = models.ForeignKey('AppClient',db_index=True) #组隶属于某一个具体的用户<br />&nbsp;&nbsp; &nbsp;aos = models.ManyToManyField('ActiveObject') #组内包含的ActiveObject<br /></div>&nbsp;aos = AO_AppGroup.objects.get(client__id=1).aos.filter(id=1).count()<img src ="http://www.cppblog.com/socketref/aggbug/149070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2011-06-21 00:14 <a href="http://www.cppblog.com/socketref/archive/2011/06/21/149070.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>整理之前的webgis demo，提供下载</title><link>http://www.cppblog.com/socketref/archive/2011/05/26/147171.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Thu, 26 May 2011 02:56:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2011/05/26/147171.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/147171.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2011/05/26/147171.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/147171.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/147171.html</trackback:ping><description><![CDATA[webgis地图访问地址 ：　<a href="http://sw2us.com:8520/medias/flex/newgis.html">http://sw2us.com:8520/medias/flex/newgis.html</a><a title="http://sw2us.com:8080/" href="http://sw2us.com:8080/"></a><div>下载地址：　<a title="http://sw2us.com:9090/sw2us.webgis.demo.2011.5.26.7z" href="http://sw2us.com:9090/sw2us.webgis.demo.2011.5.26.7z">http://sw2us.com:9090/sw2us.webgis.demo.2011.5.26.7z</a><br /><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/socketref/sw2us.webgis.demo.png" height="420" width="892" /><br /><div>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</div>sw2us.webgis 在99年就开始有个做地图引擎的想法，由于忙于公司其他开发项目的事情，一直断断续续进行<br />在5173的时候开始用geoserver来架构wms服务器，发现配置部署性能都差强人意，所以想着自己做个wms服务<br />10年的时候也写了个版本，后来用tilecache进行tile 绘制，中国地图1000的比例两台机器绘制了1个月<br />下半年生病了，到11月份回unistrong上班，工作内容就是写驱动，空闲之余继续写地图渲染代码，以前用wx做的<br />代码全部用qt写了一遍，优化了一些速度。地图换了两版本，08年的全国图和11年的上海图，用python脚本进行预处理<br />切割地图进行网格存储。以前的同事多年前就告诉我他们改进4叉树的存储方式来提高访问数据减少数据加载，我也<br />没好好琢磨过，主要是没有时间和精力，只好做这种傻瓜式的简单网格切分和加载。<br /><br />demo只是简单实现了地图加载和现实，然后用openlayers,extjs,geoext,django做了个框架页面，里面放了个不跑的汽车图标<br /><br />这个东西是10年12月完成的，已经准备放弃这个架构的设想,准备采用flex+openscale+django来重做webgis应用，<br />当然那还是需要花费很多时间和精力<br /><br />zhangbin <br />2011.1.20<br /><br />msn: socketref@hotmail.com<br />qq: 24509826<br /><br />==========================================================================================<br />注意：　sw2us.webgis.demo目录必须存放在c:\根目录下,不能更改目录名<br /><br />安装<br />=============<br />1.配置数据库<br />&nbsp;&nbsp; &nbsp;安装pgsql, postgresql-8.3.5-2-windows.exe，数据库端口保持为5432 ，设置postgres用户，密码为111111<br />&nbsp;&nbsp; &nbsp;安装空间数据库扩展 postgis-pg83-setup-1.5.2-1.exe<br />&nbsp;&nbsp; &nbsp;创建 数据库名 newgis,导入数据库文件 newgis.db.backup <br /><br />2. webserver配置 <br />&nbsp;&nbsp; &nbsp;运行C:\sw2us.webgis.demo\apache2.2.pack\http-install.bat&nbsp; 安装apache服务，侦听 9090端口 <br />&nbsp;&nbsp; &nbsp;C:\sw2us.webgis.demo\apache2.2.pack\http-install.bat &nbsp;&nbsp; &nbsp;启动apache服务<br />&nbsp;&nbsp; &nbsp;<br />3.安装微软雅黑字体<br />&nbsp;&nbsp; &nbsp;bin/vistaFont_chs.exe ,安装之后修改系统默认字体为微软雅黑字体<br /><br />4. 安装vc运行环境 bin\vcredist_x86.exe<br /><br />运行: <br />===============<br />&nbsp;&nbsp; &nbsp;start-gis.bat &nbsp;&nbsp; &nbsp;运行django后台服务<br />&nbsp;&nbsp; &nbsp;wms_start.bat &nbsp;&nbsp; &nbsp;运行wms服务器<br />&nbsp;&nbsp; &nbsp;tileserver-rpcservice-1.bat/tileserver-rpcservice-2.bat 为后台地图渲染服务，目前配置5001,5002端口<br />&nbsp;&nbsp; &nbsp;浏览器录入 http://192.168.14.3:8080/ 即可看到地图界面 <br />&nbsp;&nbsp; &nbsp;<br />系统端口说明: <br />===============<br />&nbsp;&nbsp; &nbsp;9090 &nbsp;&nbsp;&nbsp; &nbsp;apache 服务端口 <br />&nbsp;&nbsp; &nbsp;8080&nbsp;&nbsp; &nbsp;django 服务端口<br />&nbsp;&nbsp; &nbsp;8000&nbsp;&nbsp; &nbsp;wms 服务端口<br />&nbsp;&nbsp; &nbsp;5001,5002 地图渲染服务端口<br /><br />&nbsp;&nbsp; &nbsp;<br />以上端口都被写入了相关服务的配置文件，请确保这些端口没有被占用 <br /><br />--&nbsp;&nbsp; &nbsp;修改apache端口 C:\sw2us.webgis.demo\apache2.2.pack\Apache2.2\conf\httpd.conf ;<br />&nbsp;&nbsp; &nbsp;修改之后必须重新启动apache服务(http-shutdown.bat,http-start.bat)<br />&nbsp;&nbsp; &nbsp;修改apache端口之后必须修改对应django的配置 C:\sw2us.webgis.demo\newgis\gis.py(第14行 JSLIB_PATH的webserver指向)<br />--&nbsp;&nbsp; &nbsp;django服务端口可以任意修改 start-gis.bat<br />--&nbsp;&nbsp; &nbsp;wms服务端口修改 wms_start.bat ,修改之后必须同步C:\sw2us.webgis.demo\newgis\medias\js\gis\gismap.js(第19行)的wms服务器指向<br />--&nbsp;&nbsp; &nbsp;地图渲染服务可以根据负荷的情况启动多个服务进程(复制tileserver-rpcservice-1.bat，修改其端口号，比如 5003),在修改或增加渲染<br />&nbsp;&nbsp; &nbsp;进程之后必须修改wms服务的配置C:\sw2us.webgis.demo\swmap.demo\GisServer\tileservers.txt<br />&nbsp;&nbsp; &nbsp;<br />demo系统默认都是采用localhost做服务接口，如果要提供网络支持或者分布这些服务进程来提高性能，则需要修改这些不同的端口和ip地址<br /><br />&nbsp;&nbsp; &nbsp;<br />系统描述：<br />=============<br />&nbsp;浏览器firefox 直接访问django端口，django的url.py分派请求到gis.py,gis.py加载pages/mainwindow.html<br />&nbsp;mainwindow.html已经是个openlayers+ext的框架界面了，其陆需加载 openlayers,ext等的js脚本，注意：这些js<br />&nbsp;脚本并不存在django的目录下，而是存放在apache的web-root目录下，所以必须要修改gis.py和mapgis.js里面的<br />&nbsp;主机指向信息。<br />&nbsp;当mainwindow.html加载之后，工作就交给了openlayers，openlayers将访问wms服务器(gismap.js 19行),此刻wms服务器<br />&nbsp;提供tile数据给浏览器。<br />&nbsp;地图渲染服务必须在wms服务之前启动，wms通过tileserver.txt的配置 采用ice 与渲染服务进程通讯并获得图块并返回给<br />&nbsp;浏览器。<br />&nbsp;渲染服务器、wms服务器、apache和django服务都可以被分隔存储在不同的主机上<br />&nbsp;<br />&nbsp;好了，demo可以在本机跑起来了，但必须是以 http://locahost:8080方式，如果想以网络方式访问则修改wms服务端口,gis.py,gismap.js及相关.bat配置<br />&nbsp;<br />相关问题 <br />=============<br />&nbsp;如果将这些服务主机都配置成localhost，访问速度大大降低 ， 应配置成独立的ip地址<br />&nbsp;apache已经配置了js压缩输出&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;</div><img src ="http://www.cppblog.com/socketref/aggbug/147171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2011-05-26 10:56 <a href="http://www.cppblog.com/socketref/archive/2011/05/26/147171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>django 与外部应用服务器通信</title><link>http://www.cppblog.com/socketref/archive/2011/01/24/139194.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Sun, 23 Jan 2011 16:06:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2011/01/24/139194.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/139194.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2011/01/24/139194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/139194.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/139194.html</trackback:ping><description><![CDATA[想到这个问题已经是有一段时间了，目前要启动项目，所以又仔细想了一下。<br>django框架不同于j2EE，weblogic就是个很好的基于j2ee的应用服务器，里面有很多设施，都是常驻在内存的，这样的服务器还有Tomcat之类的。<br>但我了解的django同php一样采用平面数据库来记录用户会话，状态等信息，效率上没有直接从内存中读取的要快。而我的项目需求涉及的数据组织方式是树形的嵌套结构的业务数据结构，虽然存放在平面的数据表中，但是在查询的时候每一次都要多次的操作表记录，效果很低。<br>例如： 会员表字段( 会员编号，介绍人编号，节点人编号），一个成员即可以是会员，也可以是介绍人或者是节点人，所以在一条记录关联到多条记录或者被多次关联，那在查询的时候要列出 （会员名，介绍人名，节点人名），编写的sql将比较繁琐，如果写成一条的话，可以用inner jion或者 select in的方式实现，但是由于数据库内部要创建多个记录缓冲来搜寻，导致效率极低。<br>不得不考虑在django外部开发独立的应用服务程序，运行时加载会员表中的所有成员信息，并以指针的形式将这个会员拓扑树表现出来，那在查询检索的时候根据id和会员名称做个hash表，根据id直接定位到拓扑树的节点上，这个节点的子几点可以是指向介绍人、节点人节点的地址，那检索的速度可以提高100倍。<br>就这么决定了，所以想着 django要与外部应用程序交互的问题，当然是想到了ice通信框架。<br>在mod_python配置参数中有一项： <br>
<pre class="cn literal-block" id="cn74">PythonHandler django.core.handlers.modpython<br>modpython.py这个代码只要修改了之后mod_python将重新加载，且这个模块将常驻内存，好了，可以把他当做一个入口服务实例了，<br>ice的初始化就放在modpython.handler()函数内，通过request参数传递到调用的每个模块内，<br>开心了！<br></pre>
<br><img src ="http://www.cppblog.com/socketref/aggbug/139194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2011-01-24 00:06 <a href="http://www.cppblog.com/socketref/archive/2011/01/24/139194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebGis::数据处理</title><link>http://www.cppblog.com/socketref/archive/2010/02/07/107423.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Sun, 07 Feb 2010 02:52:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2010/02/07/107423.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/107423.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2010/02/07/107423.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/107423.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/107423.html</trackback:ping><description><![CDATA[手头一份08年的mapinfo格式中国全图，容量10G<br>去年3个月时间启动swMap开发计划，就是使用这份地图，目的是重新设计地图引擎，考虑支持嵌入式环境，桌面和web地图的需求，<br>开发语言c++，地图处理采用python+postgis<br>python现在成了手头开发、管理、协作的第一号助手，几乎没有特定要求的需求全部采用python<br><br>在家干了半年的工作成果和流程:<br>1. tab2tab : 将 mif转换成tab文件<br>2. ogr2gr 将tab转换成shp<br>3. arcgis9.1对shp进行验证和修复，这一步非常重要，在之后采用geos进行集合计算时，如果错误的图元导致很多操作的失败<br>4. shp2pgsql,psql 将shp导入postgis数据库<br>5. python对数据进行过滤，修正，裁剪<br>6. python加工地图数据存储到自己设计的地图存储文件中（网格存储）<br>7. wxwidgets开发地图渲染服务器，提供web、ice、socket访问接口，并实现wms，wfs一些基本协议功能<br>8. 开发前端flex地图显示组件，类似google map flex一样提供cache buffered功能，使地图显示来得更平滑<br>9. openlayers开发展示前端，通过wms访问swMapserver<br>10.最终叠加不同的应用，jquery/django/pgsql开发webservice应用<br><br>至今未加入消锯齿、Halo等绘制效果，绘制道路还有不太美观，实在是没时间<br>计划增加远程视频<br><br> <img src ="http://www.cppblog.com/socketref/aggbug/107423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2010-02-07 10:52 <a href="http://www.cppblog.com/socketref/archive/2010/02/07/107423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>