• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

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

            常用鏈接

            留言簿(54)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #

                 摘要: 項目地址: http://github.com/adoggie/TCE 從12年的時候開始想做一個rpc的東東,這些年來陸陸續續往里面增加不同的功能、特點。
            tce是一個 全棧的東西,并不是 protocalbuf,或者接近 thrift。 支持語言: csharp,python,java,objc,javascript,actionscript,c++,我想這些夠了。
              閱讀全文
            posted @ 2016-09-18 16:03 放屁阿狗 閱讀(14861) | 評論 (0)編輯 收藏

            干了17,8年一線技術工作,還不如剛畢業的985學生,真是好笑。 現在覺得也沒啥多想的,現在樂于出去跟不同公司談談技術問題,面試完,基本也給對方上完一通技術課程。 晚上看一17歲小朋友在直播寫帶代碼,滿有意思,自己也想玩玩。 tce工程加入csharp支持中,本地代碼差不多一半,lex分析還沒開動,要抓緊了,早點能在unity上跑起來。 公司這兩個月要搞個證照系統,設計完框架了,要寫代碼了。
            posted @ 2016-08-23 04:09 放屁阿狗 閱讀(443) | 評論 (2)編輯 收藏

                 摘要: 有問題的c++通信代碼的識別,希望寫c++的碼農不要犯同樣的錯  閱讀全文
            posted @ 2016-03-24 15:29 放屁阿狗 閱讀(16286) | 評論 (4)編輯 收藏

            近日獲得一份微信營銷系統的代碼,看其功能比較豐富,便開始窺其代碼的實現。為了將整個業務系統跑起來,還真的花了不少時間琢磨,幸好不負我的幾十年功力,終于將運營環境和開發環境搭建成功,并將系統的授權代碼全部剔除(軟件廠商控制使用授權)。
            準備條件: 
            1. 互聯網服務器(必須開啟80,443端口)
            2. 申請域名,且綁定到服務器
            3. 微信公眾號申請,并通過微信認證(300人民幣)
            先上系統部署圖 : 

            幾個部件需要介紹一下: 
            1. xampp :  開發php的套件,包含了apache,php,mysql,用起來很簡單,不過我是部署在linux和mac 上,要留意的是文件目錄訪問權限的問題,mac下 所有的服務進程跑在root用戶下;
            2. phpstrom: 開發php的ide,出自jetbrains(我個人理解是目前開發工具最牛逼的公司)。 管理數據庫推薦 DataGrip 軟件。 
            3. xdebug : 這個東西是php與phpstrom的調試接口 ,apche接收到http請求,轉給php解釋器,php解釋器再phpStorm進行調試互動(建立xdebug的9000端口的tcp連接),開發者可以在phpStorm里面隨意下斷點。 注意: 在php.ini中需配置 ide-key:scott , 我是在nginx的轉發頭里面添加了 XDEBUG_SESSION=scott,令所有經過 nginx 服務器的http請求都被轉到phpStorm中,否則無法實現代碼斷點。 
            4. wxDebuger: 這是微信提供的本地微信頁面調試工具,開發這可以利用winre來調試手機上的頁面,也可以脫離手機,直接調試微信頁面(要調試微信的wxjssdk必須使用wxDebuger)。 
            5. nginx : 在公網服務器部署nginx作為http服務器,接收各種用戶請求,并將其轉發到xampp。 
            6. vpn :  這個是關鍵,為了實現本地開發調試的目的,我在公網服務器上部署了openvpn,并在mac開發機上部署了xampp,phpstorm等,并安裝vpn客戶端 Tunnelblick,其自動撥號到公網服務器,獲得地址10.8.0.6,nginx將http請求轉發到了我本地的開發機器上,這樣我可以很方便的進行遠程和本地調試了。 


            主要的功能描述: 
            1. 手機、瀏覽器、調試器 發起的http請求到達公網服務器,nginx通過vpn轉發到本地開發機,開發者在phpstorm中斷點調試代碼,并將處理結果按原路返回。 
            2. 微信服務器的主要作用是獲取 粉絲信息、oauth認證回調、服務器鑒權等功能 , HTTP(302)是 oauth的靈魂 。 
            3. 這種配置架構很靈活的可以將開發模式切換到部署模式,只需要將xampp部署到公網服務器,并在 nginx的反向代理指到本地xampp服務即可。 



            附錄  nginx.conf 
             server {
                    listen       80;
                    server_name  wx.xxxx.com www.xxxx.com;
                    proxy_set_header X-real-ip $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                    location / {
                            proxy_pass http://10.8.0.6:8081;
                            proxy_set_header Cookie "$http_cookie;XDEBUG_SESSION=scott";
                            proxy_set_header Host $host;
                            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_set_header X-real-ip $remote_addr;
                   }
                }



            posted @ 2016-03-24 14:55 放屁阿狗 閱讀(16208) | 評論 (1)編輯 收藏

                 摘要: 6.x 版本系統自帶python 2.6,升級2.7的方式網上有很多版本,本人試用下來覺得諸多不便。
            工作項目中越來越多的開發特性必須要求工作在py2.7版本中,例如: django 1.7+已經不支持 py2.6.x了; pyBox2d也不支持。
            這次選擇的最新版本 python 2.7.11   閱讀全文
            posted @ 2016-01-29 14:17 放屁阿狗 閱讀(16688) | 評論 (0)編輯 收藏


            訪問sf,記錄下一下代碼

            (注冊sf的app,登記 callback-url,執行sql查詢)
            #coding:utf-8
            __author__ = 'scott'
            import imp
            imp.load_source('init','../init_script.py')
            import urllib2,urllib,json,sys,os
            import traceback,threading,time,struct,os,os.path,shutil,distutils.dir_util,array,base64,zlib,struct,binascii
            import datetime
            from libs.python.lemon import webapi
            callback = 'http://localhost:8002/oauth'
            client_id = '3MVG9ZL0ppGP5UrC_wQ8U02mOhowPKwjeaaLsWZ3BcYYVqiSsy1rL_D2h6qG.rGPnb_j6IcgLHPdhmvomzDFj'
            client_secret = '9046731979xxxxxxx'

            def accessToken(request,code,state):
                url = 'https://login.salesforce.com/services/oauth2/token'
                data = {
                    'grant_type':'authorization_code',
                    'code':code,
                    'client_id':client_id,
                    'client_secret':client_secret,
                    'redirect_uri':callback
                }
                result = ''
                try:
                    result = urllib2.urlopen(url,urllib.urlencode(data) )
                except:
                    traceback.print_exc()
                result = result.read()
                return json.loads( result )

            def oauth(request):
                cr = webapi.SuccCallReturn()
                code =  webapi.GET(request,'code','')
                state = webapi.GET(request,'state','')
                cr.result=[code,state]
                token = accessToken(request,code,state)
                cr.result.append(token)
                print token
                try:
                    sqlExecute(token['access_token'],token['instance_url'])
                except:
                    traceback.print_exc()
                return cr.httpResponse()

            import cookielib

            # -H "Authorization: OAuth token" -H "X-PrettyPrint:1" "
            def sqlExecute(token,url_host):
                httpHandler = urllib2.HTTPHandler(debuglevel=1)
                httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
                opener = urllib2.build_opener(httpHandler, httpsHandler)
                urllib2.install_opener(opener)
                sf_cmd_query="%s/services/data/v20.0/query/?%s"%(url_host, urllib.urlencode({'q':'select count() from account'}))
                headers = {
                    'Authorization':'OAuth %s'%token,
                    'X-PrettyPrint':1
                }
                httpReq = urllib2.Request( sf_cmd_query,headers=headers )
                r = opener.open(httpReq).read()
                print r
                pass

            url1 = """https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=%s&redirect_uri=%s&state=first"""%(client_id,callback)

            def launchBrowserForOAuth():
                import webbrowser
                webbrowser.open(url1)

            if __name__ == '__main__':
                launchBrowserForOAuth()
            posted @ 2015-06-29 20:21 放屁阿狗 閱讀(918) | 評論 (0)編輯 收藏


            python內部數據容器有dict和list兩種 ,工作中最常用的方式是定義一些數據結構(數據即代碼),例如: 

            1 frog={'name':'scott',
            2           'age':2,
            3           'parts':{
            4                     'eye':'green','leg':85
            5                     },
            6           ''friend":['moee','wee'],
            7           "hometown":'affica'
            8          }

            frog對象定義了小動物的某些屬性,訪問frog對象屬性時,通過 dict,list的取值方法進行訪問,例如:  
            print frog['name']
            print frog['friend'][0]  
            有時覺得這種表達方式太原始了,需要改進,最好是以 '.'方式訪問對象屬性,例如:  
            print frog.name
            代碼來開始和結束吧, class _x 
             1 class _x:
             2     """
             3     從簡單數據類型轉換成python對象
             4 
             5     p = _x({'name':'boob','body':{'color':'black'},'toys':[1,2,3,],'age':100})
             6     print p['toys'][1]
             7     print len(p.toys)
             8     print p.body.colors
             9     """
            10     def __init__(self,primitive):
            11         self.data = primitive
            12 
            13     def __getattr__(self, item):
            14         value = self.data.get(item,None)
            15         if type(value) == dict:
            16             value = _x(value)
            17         return value
            18 
            19     def __len__(self):
            20         return len(self.data)
            21 
            22     def __str__(self):
            23         return str(self.data)
            24 
            25     def __getitem__(self, item):
            26         value = None
            27         if type(self.data) in (list,tuple):
            28             value = self.data[item]
            29             if type(value) in (dict,list,tuple):
            30                 value = _x(value)
            31         elif type(self.data) == dict:
            32             value = self.__getattr__(item)
            33         return value







            posted @ 2015-05-26 14:44 放屁阿狗 閱讀(628) | 評論 (0)編輯 收藏

            相關技術:  haproxy_keepalived_nginx_uwsgi_gevent_django 

            之前部署django一直采用 apache + mod_wsgi,用得倒也沒啥問題,看到越來越多的人采用nginx部署,所以也嘗試了一下,結果很讓人欣喜。

            nginx夠小夠簡潔,編譯、配置相當簡單,但要知道她僅僅是個靜態webserver,動態功能需要搭配相應的cgi來實現; 
            uwsgi是個啥東西,看其官方文檔還真寫的相當詳細,功能很豐富,但我的需求可能只會使用其30%的功能;
            uwsgi可以認為是python代碼運行的loader,或者是容器(container),這有點像java的container(resin,tomcat)。看了其配置文檔,很是驚喜,其不僅可以配置為多進程+多線程模式,也可以配置為單進程+多線程模式,并能保持高并發高銷率,非常感興趣。
            一直以來自己總在尋找一種 高效、靈活的django的應用容器。
            apache默認都是多進程模式,http又是無狀態的,不同的請求被分派到不同的進程處理,request處理都是隔離的。多進程帶來的問題是高昂的系統開銷(apache也支持多線程處理)。
            這種隔離又帶來了諸多不便,request之間不能共享狀態、數據和協作,不能很好的完成與外部系統的協同工作(例如request共享同一個服務器的socket連接或者訪問控制某個rs232端口)
            所以很想有種類似java的應用容器這樣的東東。 
            接觸了gevent,其核心是io異步分派,單線程模擬多協程來對應用層多任務的支持,幾近瘋狂io效率得到了我的認可。ps:八過smp系統就應該啟動多個gevent服務,不然其他核心數都浪費了。
            采用gevent+django的模式搭建了自己得app容器,也跑了幾個項目,總體效果還是可以。
            nginx+uwsgi+django 的配合開始應用到新項目中
            posted @ 2015-01-01 00:41 放屁阿狗 閱讀(742) | 評論 (0)編輯 收藏


            上海交通違章查詢網站: http://www.shjtaq.com/Server1/dzjc_new.asp
            驗證碼圖片獲取地址: http://www.shjtaq.com/Server1/validatecode.asp?m=2304.046

            服務器通過頁面請求的session-id來區分之后提交的驗證碼。 第一次請求查詢頁面時,服務器將訪問session(cookie)傳到客戶端,之后的查詢和驗證碼獲取時客戶端攜帶之前的cookie傳送到服務器,服務器端保存著當前 session-id與驗證碼 的對應關系。 

            查詢返回記錄可通過 xpath或者 beautifulsoup進行解析

            程序使用python完成,也是個簡單的小爬蟲,scrapy 之類的沒必要使用了,gevent完成異步通信。

            交通網的驗證碼生成還是比較簡單,做自動識別可找幾個簡單的圖形識別程序即可。
            如若不行,則人工輸入嘍
            posted @ 2014-10-08 00:45 放屁阿狗 閱讀(1340) | 評論 (0)編輯 收藏

                 摘要:   閱讀全文
            posted @ 2014-05-20 11:33 放屁阿狗 閱讀(17167) | 評論 (0)編輯 收藏

            僅列出標題
            共25頁: 1 2 3 4 5 6 7 8 9 Last 
            99久久国产免费福利| 无码久久精品国产亚洲Av影片| 国产2021久久精品| 久久免费99精品国产自在现线| 精品久久久久久久久免费影院 | 久久久亚洲精品蜜桃臀| 亚洲欧洲中文日韩久久AV乱码| 久久人爽人人爽人人片AV| 国产精品99久久久久久宅男| 日韩精品久久无码人妻中文字幕| 九九久久精品无码专区| 少妇高潮惨叫久久久久久| 国产精品美女久久久久AV福利| 久久人人爽人人人人爽AV| 精品久久久久久无码人妻蜜桃| 天堂久久天堂AV色综合| 国产精品久久婷婷六月丁香| 国产一区二区精品久久岳| 99精品国产在热久久| 亚洲狠狠婷婷综合久久久久| 中文成人久久久久影院免费观看 | 中文字幕精品久久久久人妻| 情人伊人久久综合亚洲| 久久久久女人精品毛片| 亚洲午夜久久久久久噜噜噜| 日韩AV毛片精品久久久| 久久精品国产亚洲Aⅴ香蕉 | 久久妇女高潮几次MBA| 狠狠色伊人久久精品综合网| 亚洲国产精品热久久| AV无码久久久久不卡网站下载| 久久综合精品国产二区无码| 亚洲精品乱码久久久久久按摩 | 亚洲精品国精品久久99热| 久久99精品国产99久久6| 国产香蕉97碰碰久久人人| 国产午夜福利精品久久| 国产高潮国产高潮久久久91| 久久本道久久综合伊人| 欧美午夜A∨大片久久 | 色老头网站久久网|