socketref,再见!高德

https://github.com/adoggie

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用链接

留言簿(54)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

#

一日我接到陌生电话,一女孩笑嘻嘻的问我关于lah的情况,我觉得很不对劲,后来便一个劲的问我lah到底是不是结婚了,家在哪里,我想完了,又一个无知少女被骗去了感情和正操,现在骗子很多尤其是jx的。
  我已经跟lah分家了许久,这个女子是在网络上找到我的信息,由于lah这个骗子每个周末都要回杭州,关闭一切通信工具,令此女子发狂的找寻他的下落。
  我很不理解现在的少女为何这么的无知,连开房费都舍不得花的人如何泡上20来岁的大学女生的。我想lah是利用了人的怜悯的弱点,装可怜,装出生如何的凄惨,经历坎坷的求学之路,遭受前女友的抛弃,立志发奋努力,创就自己的事业,不要1000w不结婚,要结婚娶她为妻,虽然此女子一直是倒贴,但也乐不思蜀。
  可是lah不地道的地方在于玩弄女性就非常不道德了,一方面要每个礼拜回去交公粮,一方面又在外面装君子,垃圾货色遭人唾弃。
  后来那女孩找lah的老婆去了,闹腾了一番居然没事,原来lah跟他老婆交代我跟他有矛盾,是我找了这个女孩故意去闹腾的,lah老婆居然还信了,真是让我哭笑不得
  
  
  少女哭诉录音1 : http://118.126.7.153/download/cry1.amr
  少女哭诉录音1 :http://118.126.7.153/download/cry2.amr
posted @ 2010-02-07 11:14 放屁阿狗 阅读(382) | 评论 (0)编辑 收藏

手头一份08年的mapinfo格式中国全图,容量10G
去年3个月时间启动swMap开发计划,就是使用这份地图,目的是重新设计地图引擎,考虑支持嵌入式环境,桌面和web地图的需求,
开发语言c++,地图处理采用python+postgis
python现在成了手头开发、管理、协作的第一号助手,几乎没有特定要求的需求全部采用python

在家干了半年的工作成果和流程:
1. tab2tab : 将 mif转换成tab文件
2. ogr2gr 将tab转换成shp
3. arcgis9.1对shp进行验证和修复,这一步非常重要,在之后采用geos进行集合计算时,如果错误的图元导致很多操作的失败
4. shp2pgsql,psql 将shp导入postgis数据库
5. python对数据进行过滤,修正,裁剪
6. python加工地图数据存储到自己设计的地图存储文件中(网格存储)
7. wxwidgets开发地图渲染服务器,提供web、ice、socket访问接口,并实现wms,wfs一些基本协议功能
8. 开发前端flex地图显示组件,类似google map flex一样提供cache buffered功能,使地图显示来得更平滑
9. openlayers开发展示前端,通过wms访问swMapserver
10.最终叠加不同的应用,jquery/django/pgsql开发webservice应用

至今未加入消锯齿、Halo等绘制效果,绘制道路还有不太美观,实在是没时间
计划增加远程视频

posted @ 2010-02-07 10:52 放屁阿狗 阅读(1367) | 评论 (0)编辑 收藏

自己采用wxwidgets开发过3个项目,1个是50w级别还有2个是10w一下的项目,深深的被wx给刺痛了。
wx的确不如QT开发效率要来的高,包括质量、稳定性、扩展性、功能丰富程度都远远不及QT。
由于商业公司的支持,QT这多花绽放出了美丽的色彩,而wx呢,3.0等待到了现在还没有拉出来。
很多人经常比较wx和qt,我认为如果做应用软件,可以用用wx,但是如果是个系统的项目,用wx倒后来将是个非常痛苦的事情,
往往开发周期延长,开发难度越陷越深,想深层次的挖掘一些功能却是束手无策,很多次都想推到重来,以至于想用mfc重新来过。
wx到2.8.9版本,许多类库还是非常的不稳定,必须thread,stack等等,在调试系统的时候往往会出现摸不着头脑的问题。
当初选择开发方案时着实的没有考虑清楚,导致后来开发随着需求的变动把程序员搞得心力憔悴。
wx看上去比mfc封装了很多东西,但是模式还是mfc的哪一套,wx没有官方的ui的设计工具,DialogBox算是比交有点响头的ui辅助
软件,但在用过之后才觉得非常的无助。
随着项目需求的修改和扩展,系统有近百个Form要维护,几百个组件维护需要很大的体力劳动,同mfc一般一个ID绑定一个对象,代码量极具膨胀;
QT就表现得非常优雅,将资源ID等业务不相关得东西通过对象的connect都屏蔽掉了,qt也提供了比骄强的IDE,所有操作如同在BCB一般的干净利落。



posted @ 2010-02-02 19:19 放屁阿狗 阅读(11229) | 评论 (11)编辑 收藏

监控读取AWS,6466磁带设备的事件通知邮件,进行过滤压制之后传送给ovou系统

Telmail.sh,telmail.pl为两个邮件发送例程


  1 # -*- coding: gb2312 -*-
  2 
  3 '''
  4 summary:    
  5     1.6466磁带库报警处理
  6     2.AWS报警处理
  7     传输接口:    smtp
  8     过滤邮件内容,生成事件到ovo
  9 author :    zhangbin
 10 date:        2006.03.04
 11 company:    ultrapower.com.cn
 12 '''
 13 
 14 
 15 import os
 16 import sys
 17 import socket
 18 import time
 19 import poplib
 20 import base64
 21 import string
 22 import re
 23 from conf import *
 24 
 25 
 26 
 27 aws_field_map={'Information':'normal',
 28             'Warning':'warning',
 29             'Degraded':'major',
 30             'Critical':'critical',
 31             'Fatal':'critical'
 32             }
 33 ME='szmail'
 34 this = modlist[ME]
 35 
 36 host=this['host']
 37 user=this['user']
 38 passwd =this['passwd']
 39 
 40 
 41 def Print(msg):
 42     lp(ME,msg)
 43 
 44 
 45 def process_AWS(title,msg):
 46     try:
 47         app='AWS'
 48         node=''
 49         obj=''
 50         severity=''
 51         msg_text=''
 52         
 53         print '>>>',msg
 54         title.index('CSF Fault Detected')
 55         lines = msg.split('\n')
 56         
 57         for l in lines:
 58             r = re.match('.*Fault id.*?:\s*(.*)/(.*)',l)
 59             if r:
 60                 node = r.group(1)
 61                 obj = r.group(2)
 62                 continue
 63             r = re.match('.*Severity.*?:\s*(\w+)',l)
 64             if r:
 65                 f= r.group(1).strip()
 66                 if aws_field_map.has_key(f):
 67                     severity = aws_field_map[f]
 68                 continue
 69             r =  re.match('.*Synopsis.*?:\s*([\w|\s]+)',l)
 70             if r :
 71                 msg_text=r.group(1)
 72         cmd = "opcmsg app=AWS "
 73         if node:
 74             cmd = cmd+ " node=%s "%node
 75         if obj:
 76             cmd = cmd+ " obj=%s "%obj
 77         if severity:
 78             cmd= cmd + " severity=%s "%severity
 79         if msg_text:
 80             cmd = cmd + ' msg_text="%s" '%msg_text
 81         print "execute command:%s"%cmd
 82     except:
 83         return False
 84     return True
 85     
 86     
 87     
 88 def process_TAPE(title,msg):
 89     ''' for 6466 tape monitor '''
 90     
 91 
 92 def mail_sender(body):
 93     pass
 94     
 95 def mail_hdr_section(section,body):    
 96     title=''
 97     try:
 98         n = body.index('')
 99         for i in range(n):
100             try:
101                 occ = body[i].index(section+':')
102                 title= body[i][ (occ+len(section+':')):]
103             except:
104                 continue
105     except:
106         pass
107     return title
108     
109 def mail_context(encode,body):
110     ''' extract mail body text from string-list
111         multiple charset will be encoded to base64,but plain text will not
112     '''
113     context =''
114     try:
115         n = body.index('')
116         lines = body[n:]
117         if encode.find('base64'>= 0 :
118             context = base64.decodestring(context)
119         else :
120             context = string.join(lines,'\n'#maybe 7bit
121     except:
122         pass
123     return context
124 
125 def process(c,m):
126     ''' c    -- mail number,
127         m    -- mail object
128         提取邮件标题和邮件内容
129     '''
130     for i in range(1):
131         print ">>>>Process %d"%(i+1)
132         list = m.retr(i+1)
133         title = mail_hdr_section('Subject',list[1])
134         encode = mail_hdr_section('Content-Transfer-Encoding',list[1])
135         print list[1]
136         context = mail_context(encode.strip(),list[1])
137         if not process_AWS(title,context):
138             process_TAPE(title,context)
139         #m.dele(i+1)
140 
141 def main_entry():
142     Print('OK+,%s start up!'%ME)
143     while True:
144         try:
145             m = poplib.POP3(host)
146             m.user(user)
147             m.pass_(passwd)
148             c = m.stat()[0]
149             if  c :
150                 print ">> Detected %s Letters!"%(c)
151                 process(c,m)
152             m.quit()
153         except:
154             pass
155         time.sleep(this['wait'])    
156     
157 if __name__=='__main__':
158     main_entry()
159 
160 

posted @ 2009-11-15 18:07 放屁阿狗 阅读(2802) | 评论 (16)编辑 收藏

tomail()
{
sleep 3
echo  "helo zhangbin"
sleep 2
echo  "mail from:zhangbin@ultrapower.com.cn"
sleep 2
echo  "rcpt to:zhangbin@ultrapower.com.cn"
sleep 2
echo  "data"
sleep 2
echo  "this is test context!\n"
echo ".\n"
sleep 5
echo  "quit\n"
echo  ""
}
        
tomail | telnet 219.238.168.131 25

posted @ 2009-11-15 18:04 放屁阿狗 阅读(1403) | 评论 (0)编辑 收藏

已经能去的地方很少了,自己的msn空间这段时间也无法登录了
facebook,yutobe之类的更别想了,中国人就是这样,作践自己,政府也够下贱的,井底之蛙,那么多的贪官巨吏不去抓,证券股票市场那么黑暗都不去整治,只会整日填塞老百姓的耳目,又有何用呢。
可悲之极,失望之极
马路上跑的audi A6越来越多,暴发户、二奶、公务员都趾高气扬的凌驾于众多百姓阶层之上,一个村长年收入可以达到50w,土地成为敛财的工具,一次换届选举可以以百元换票,如果我有把AK便可狂扫天下之淫邪之徒。
东航每年上百亿的亏损国家补贴,可退休的客机干部可以拿着6k的退休金很爽的生活。很多现象我都想不明白,所谓的干部领导在职期间到底做了些什么,智力付出上不如科研人员那么,体力更不如工人阶级,凭什么高官厚禄无忧虑的过活,入党就如封建科举制度一样,便可步入仕途,退休了还可以活的以1,20倍与我等父辈的津贴

posted @ 2009-09-30 04:53 放屁阿狗 阅读(195) | 评论 (1)编辑 收藏


地图比例表:
G_SCALE_UNITS=[ 0.200000,
                                0.600000,
                                1.000000,
                                2.000000,
                                4.000000,
                                8.000000,
                                15.000000,
                                30.000000,
                                60.000000,
                                120.000000,
                                300.000000,
                                600.000000,
                                1200.000000,
                                2000.000000,
                                3000.000000,
                                5000.000000]
表示 1个像素代表0.2米
屏幕通常的DPI 是每英寸 96像素
每英寸 2.54厘米
这样就能换算出显示比例了:  0.2*100/2.54*96 = 755.9 = 756
也就是显示比例是 1:756


posted @ 2009-09-26 05:45 放屁阿狗 阅读(1319) | 评论 (0)编辑 收藏

打开google,照抄他的绘制风格,没有启用小锯齿功能,所以画出来也是比较难看
基本完成了道路的曲线绘制

google的Skia看了看,似乎比cario更轻量级,不过文档也是只能通过doxygen来看了,资料还是太少,还是用cairo来小锯齿吧

选择一个好的字体也许效果会好很多

等着下一版本的优化结果


posted @ 2009-09-25 03:09 放屁阿狗 阅读(1353) | 评论 (0)编辑 收藏

google的Flex SDK相当的容易,摆弄几下就oK了,不过操作地图数据的自由度没有那么好了,就得找google了。
现在通过验证,google也是预先绘制好图片,然后再请求拼接返回的,只有这种非实时渲染的方式才能保证服务器的高实时性和操作的流畅性能。
现在自己也实现flex客户端缓冲和地图预处理网格,通过http请求,后端php就可以轻巧的拼接请求的地理区域图块返回到flex客户端,操作异常的流畅,感觉非常好。
最大的问题就是预处理的数据存储容量和处理时间。每一个显示比例都将进行全部预绘制地理图,一个上海在最小比例尺下将生成几十万张jpg图片,对地图的存储空间要求非常的高,机器也是一场的繁忙,16级别显示花费1天时间产生,生成是痛苦的,但使用效果是非常的爽!

posted @ 2009-09-24 23:43 放屁阿狗 阅读(197) | 评论 (0)编辑 收藏

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:maps="com.google.maps.*">
    <mx:Canvas x="44" y="73" width="200" height="200" backgroundColor="0xf7eeef">
    </mx:Canvas>

<mx:Script>
    <![CDATA[
        import com.google.maps.*;
        import com.google.maps.controls.*;
       
        private function onMapReady(event:MapEvent):void {      
    //设置地图显示的坐标,以及地图显示的类型.
    //MapType有4种类型分别是
    //HYBRID_MAP_TYPE 混合模式,
    //NORMAL_MAP_TYPE 标准模式,
    //PHYSICAL_MAP_TYPE自然地图模式,
    //SATELLITE_MAP_TYPE卫星模式
        this.map.setCenter(
        new LatLng(31.0729,121.49)/*经纬度*/,
        16,  MapType.NORMAL_MAP_TYPE);  
        var zoomctrl:ZoomControl = new ZoomControl();
       
        map.addControl( zoomctrl);
        map.addControl(new PositionControl());
        map.addControl(new MapTypeControl());
        //zoomctrl.setControlPosition(
}

    ]]>
</mx:Script>

<maps:Map xmlns:maps="com.google.maps.*"
    id="map" mapevent_mapready="onMapReady(event)"
    width="600" height="600"  
    key="ABQIAAAAEUQL_IqwWX4ZOcEtw0r7whRi_j0U6kJrkFvY4-OX2XYmEAa76BQc0gZPMJROw3owe9BMoRHM0FER_A"
/>
   

</mx:Application>


posted @ 2009-09-23 06:48 放屁阿狗 阅读(257) | 评论 (1)编辑 收藏

仅列出标题
共25页: First 10 11 12 13 14 15 16 17 18 Last