2007年3月23日

          決定把blog搬到baidu去,baidu的速度和空間容量都不錯(cuò),就是不知道怎么把原來(lái)寫的東西移過(guò)去。

          新地址:http://hi.baidu.com/antzhi

          posted @ 2008-02-18 11:16 小螞蟻 閱讀(178) | 評(píng)論 (0)編輯 收藏

          服務(wù)器換了程序后手機(jī)上的Client出問(wèn)題了,每次連接后只能播放第一個(gè)frame,今天抽了點(diǎn)時(shí)間檢查程序,發(fā)現(xiàn)問(wèn)題出在服務(wù)器在每一frame后加了個(gè)\r\n,手機(jī)上的程序在getHeader時(shí)沒考慮到,加了幾行代碼搞定。

          posted @ 2008-02-13 12:51 小螞蟻 閱讀(181) | 評(píng)論 (0)編輯 收藏

          花生殼的IP地址和實(shí)際公網(wǎng)的地址不一致問(wèn)題一直沒得到解決,詢問(wèn)客服也沒有解決的辦法,通過(guò)觀察,我發(fā)現(xiàn)不是每次撥號(hào)都會(huì)出現(xiàn)IP不一致的情況,說(shuō)明我的ISP只在一定范圍內(nèi)安裝了NAT轉(zhuǎn)發(fā)的設(shè)備,自己寫了個(gè)腳本,比較花生殼和wan ip,如果不一致,就從新?lián)芴?hào)分配一個(gè)新IP,運(yùn)行了半個(gè)月,效果蠻好,可惜了我花100元升級(jí)專業(yè)用戶.

          --------------------------------
          #!/bin
          # wan.sh
          #get wan ip from TP-LINK route

          wanip=`wget --user=admin --password=admin -q -O - http://192.168.2.1/userRpm/StatusRpm.htm |\
          grep "00-50-FC-77-C9-06" |\
          awk -F, '{print $3}' | tr -d ' "'`

          echo "$wanip"


          ----------------------------------------------

          #!/bin/sh
          # fixip.sh
          #fix vicp ip

          export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/phlinux"

          disUrl='http://192.168.2.1/userRpm/StatusRpm.htm?Disconnect=斷%20開&wan=1'
          conUrl='http://192.168.2.1/userRpm/StatusRpm.htm?Connect=連%20接&wan=1'
          wg='wget -q --user=admin --password=admin -O - '

          c=0
          while [ "$c" -lt "5" ]
          do
            wip=`wan.sh`
            vicp=`nslookup myhome.vicp.net | tail -n2 | grep "Address" | awk '{print $2}'`

            if [ "$wip" == "$vicp" ]; then
              echo "Match done."
              exit 0
            fi

            echo "my wan ip : "$wip
            echo "myhome.vicp.net : "$vicp
            echo "Fix ip ..."

            if [ -n wip ]; then
              echo "  disconnect PPPoe ..."
              `$wg $disUrl > /dev/null`
              sleep 3
            fi

            echo "  connect PPPoE ..."
            `$wg $conUrl > /dev/null`
            sleep 37

            c=`expr $c + 1`
          done

          posted @ 2008-02-11 18:36 小螞蟻 閱讀(792) | 評(píng)論 (1)編輯 收藏

          半夜醒來(lái)睡不著,干脆穿上衣服倒騰我的PSP,研究了PSPTube的通訊協(xié)議,發(fā)現(xiàn)其實(shí)是依靠youtube網(wǎng)的xml文件來(lái)實(shí)現(xiàn)節(jié)目列表,數(shù)據(jù)結(jié)構(gòu)很簡(jiǎn)單.正好原來(lái)想用PSP PMPlayer Advance來(lái)當(dāng)Motion的Client計(jì)劃一直沒成功,于是對(duì)PSPTube做了點(diǎn)調(diào)整,在服務(wù)器寫了個(gè)生成xml的腳本,整個(gè)過(guò)程花了四個(gè)小時(shí),完工時(shí)剛好天亮.
           

          posted @ 2008-02-08 23:55 小螞蟻 閱讀(241) | 評(píng)論 (0)編輯 收藏

          kmip解釋的IP老有問(wèn)題,沒辦法換成vicp

          posted @ 2008-01-18 11:49 小螞蟻 閱讀(148) | 評(píng)論 (0)編輯 收藏

          打算把服務(wù)器的timezone由UTC改成CST,但修改了/etc/timezone、/etc/default/rcS和/etc/localtime都沒有用,在/etc/profile里加上export TZ='Asia/Shanghai'后普通用戶登陸沒問(wèn)題,但用su切到root后timezone又變回UTC,實(shí)在沒辦法了在/etc下執(zhí)行g(shù)rep -e "UTC" -f *,結(jié)果在environment里發(fā)現(xiàn)TZ="UTC",原來(lái)是前幾天做實(shí)驗(yàn)改后忘改回來(lái)了,又是一個(gè)因忘事犯的錯(cuò)誤,浪費(fèi)了不少時(shí)間,暈啊。

          posted @ 2007-12-23 12:13 小螞蟻 閱讀(159) | 評(píng)論 (0)編輯 收藏

          直接從deb里安裝只得到btsco,snd_bt_sco要從source里編譯,真是麻煩,服務(wù)器的硬盤太小,不想裝linux-source了,只好等明天從本子編譯好再拷貝過(guò)來(lái).

          posted @ 2007-12-22 01:02 小螞蟻 閱讀(295) | 評(píng)論 (0)編輯 收藏

          今天家里 服務(wù)器連不上了,對(duì)VectorLinux早已看不順眼,但一直懶得換掉,剛好乘這機(jī)會(huì)換成比較順手的Debian,把分區(qū)設(shè)置成ext3格式,apt-get的確好用,用Mini Install CD安裝了基本系統(tǒng)后從網(wǎng)上裝shttpd、gspca、subversion、java,公司的2M帶寬節(jié)約了不少時(shí)間。內(nèi)核就將就用安裝盤上的,重編譯內(nèi)核太麻煩,以后有時(shí)間再說(shuō)了。

          posted @ 2007-12-18 01:03 小螞蟻 閱讀(194) | 評(píng)論 (0)編輯 收藏

          前幾天有個(gè)大學(xué)生找到我要寫個(gè)程序,又不想讓我知道程序用在什么地方,畫了半天xyz 我大概知道他的意思,我問(wèn)他是不是用來(lái)買彩票的,他不好意義的確認(rèn)了.真想和他講講概率論,但看他研究得這么起勁也不好打擊他,何況寫這程序我可以收一筆小錢來(lái)買點(diǎn)書.算法是這樣的:某個(gè)游戲有總數(shù)個(gè)N球,每次將會(huì)出M個(gè)球,如果你買B個(gè)球的話就能掙錢.現(xiàn)在要寫個(gè)程序,隨機(jī)在N個(gè)球里找出A個(gè)球(N>M>A>B),A個(gè)球里找出所有B個(gè)球的組合,并用這些B個(gè)球去匹配出M個(gè)球的歷史記錄,找到最遠(yuǎn)沒出這B個(gè)球的買法A.看起來(lái)復(fù)雜,其實(shí)可以通過(guò)一個(gè)鑲套的遞歸算法來(lái)解決,我用了單獨(dú)一個(gè)線程來(lái)和處理界面的程序分開,把遞歸算法用個(gè)Recusion的C++類封裝起來(lái)(幸虧沒用C的寫法,不然寫到后面就慘了),加上點(diǎn)ADO的數(shù)據(jù)庫(kù)代碼,完工!
          但我不認(rèn)為那小伙子能用這程序掙到錢,因?yàn)楦怕收摰木杈褪?本次發(fā)生的事件和上次無(wú)關(guān).

          posted @ 2007-11-28 00:51 小螞蟻 閱讀(239) | 評(píng)論 (0)編輯 收藏

          VCam SDK正是我要找的東西,除了那個(gè)水印外沒有其他限制,估計(jì)加密機(jī)制在驅(qū)動(dòng)層里,我要學(xué)的東西已經(jīng)夠多了,沒打算為了解這東東專門去學(xué)windows的驅(qū)動(dòng)編程,但還是想碰下運(yùn)氣,跟蹤了設(shè)置授權(quán)碼的函數(shù),找到DeviceIOControl的時(shí)候腦子里有個(gè)念頭閃了一下,找來(lái)IDA反編譯VCam的驅(qū)動(dòng),查找Function Code,接下來(lái)繼續(xù)看...寫這程序的老兄估計(jì)和我一樣懶,為了調(diào)試方便加了句...呃...加了句"芝麻開門"!呵呵,美好的一天.

          posted @ 2007-11-23 23:15 小螞蟻 閱讀(437) | 評(píng)論 (5)編輯 收藏

          收到從當(dāng)當(dāng)發(fā)來(lái)的汪德貝多芬交響樂(lè)全集,自從聽了汪德指揮的舒伯特第八就開始對(duì)他感興趣,這套碟也沒讓我失望,錄音的質(zhì)量很好。三十塊的價(jià)錢算是超值了。

          posted @ 2007-07-20 12:02 小螞蟻 閱讀(183) | 評(píng)論 (3)編輯 收藏

          VIDEO 
          接了兩個(gè)USB攝像頭后,用了延長(zhǎng)線的工作不正常,估計(jì)是USB的供電問(wèn)題,回頭換根好點(diǎn)的試試看。

          posted @ 2007-07-13 08:53 小螞蟻 閱讀(126) | 評(píng)論 (0)編輯 收藏

          posted @ 2007-07-11 08:27 小螞蟻 閱讀(159) | 評(píng)論 (0)編輯 收藏

          看了一大堆書后開始寫vmotiond,基于多線程并發(fā)TCP守護(hù)進(jìn)程還真不好寫,要處理的東西很多,signal、mutex、IO timeout ...,頭有點(diǎn)暈,寫了一下午程序好歹可以運(yùn)行起來(lái)了,代碼很亂,有時(shí)間再整理,看到開幾個(gè)窗口同時(shí)跑live video讓我興奮了好一陣子。目前用spca5xx的庫(kù)用USB Cam做,bt8x8估計(jì)問(wèn)題不大,起碼FreeBSD下有bktr的東西,視頻錄制打算用berkeleyDB做載體,如果直接保存jpeg的話一天下來(lái)一個(gè)點(diǎn)有24*60*60個(gè)文件,太可怕了,對(duì)于我這簡(jiǎn)約主義者來(lái)說(shuō)是不能忍受的。前兩天被一大堆問(wèn)題困擾得差點(diǎn)放棄在FreeBSD做改換Linux,幸虧堅(jiān)持下來(lái)了。

          posted @ 2007-07-10 23:44 小螞蟻 閱讀(147) | 評(píng)論 (0)編輯 收藏

          本打算寫個(gè)HttpConnection的子類HtdigestConnection把MD5的摘要認(rèn)證封裝起來(lái),但發(fā)現(xiàn)因?yàn)镠ttpConnection是用Connector通過(guò)工廠模式生成的,讓Connector.open()生成HtdigestConnection是不可能的,更糟糕的是認(rèn)證操作必須在一次連接里完成,HttpConnection里沒“Keep Alive”的機(jī)制。看來(lái)要用SocketConnection來(lái)自己實(shí)現(xiàn)HTTP層的東西,#$%^&*(

          posted @ 2007-06-16 14:30 小螞蟻 閱讀(173) | 評(píng)論 (0)編輯 收藏

          研究htdigest有一段時(shí)間了,在網(wǎng)上能找到的資料對(duì)具體的算法描述都很模糊,硬著頭皮看RFC 2671對(duì)算法大概有了認(rèn)識(shí),然后參考shttpd的源代碼終于搞清楚了,其實(shí)也很簡(jiǎn)單:
          response=MD5(ha1:nonce:nc:cnone:qop:a2)
          其中:
          ha1=MD5(username:realm:password)
          a2=MD5(method:uri)

          學(xué)習(xí)源碼是硬道理,網(wǎng)上寫這些東西的人不是相互對(duì)抄就是對(duì)RFC 2671簡(jiǎn)單的翻譯,要不然就是我太笨了,郁悶...

          sniffer備注:
          GET / HTTP/1.1
          Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
          Accept-Language: zh-cn
          Accept-Encoding: gzip, deflate
          User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
          Host: obol.kmip.net
          Connection: Keep-Alive

           

           

          HTTP/1.1 401 Unauthorized
          WWW-Authenticate: Digest realm="My Site",
           nonce="3266a84c73f7e0e13f4fa6ba1d52d4ce",
           qop="auth"
           
          Content-Type: text/html
          Content-Length: 351
          Date: Sun, 10 Jun 2007 23:52:57 GMT
          Server: lighttpd/1.4.13

          <?xml version="1.0" encoding="iso-8859-1"?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                   "<html xmlns=" <head>
            <title>401 - Unauthorized</title>
           </head>
           <body>
            <h1>401 - Unauthorized</h1>
           </body>
          </html>

           

           

          GET / HTTP/1.1
          Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
          Accept-Language: zh-cn
          Accept-Encoding: gzip, deflate
          User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
          Host: obol.kmip.net
          Connection: Keep-Alive
          Authorization: Digest username="test",
           realm="My Site",
           qop="auth",
           algorithm="MD5",
           uri="/",
           nonce="3266a84c73f7e0e13f4fa6ba1d52d4ce",
           nc=00000001,
           cnonce="5886b782b452993f7559cbd83b6b611b",
           response="932dd7f51f34d766997923876508e620"

           

           

          HTTP/1.1 200 OK
          Content-Type: text/html
          ETag: "972667827"
          Accept-Ranges: bytes
          Last-Modified: Sun, 22 Apr 2007 05:10:52 GMT
          Content-Length: 2878
          Date: Sun, 10 Jun 2007 23:56:44 GMT
          Server: lighttpd/1.4.13

          posted @ 2007-06-11 10:40 小螞蟻 閱讀(213) | 評(píng)論 (1)編輯 收藏

          寫了個(gè)小MIDlet測(cè)試Image在我的NOKIA 3230上是否能加載jpeg文件格式,為把WebCam的Client移植到手機(jī)上做準(zhǔn)備,寫好的程序在模擬器上可以正常使用,但在手機(jī)上老報(bào)“版本錯(cuò)誤”,倒騰了半天才發(fā)現(xiàn)NOKIA 3230是CLDC1.0的設(shè)備而不是1.1,超低級(jí)的錯(cuò)誤,暈@#$%^&*(

          posted @ 2007-06-10 20:59 小螞蟻 閱讀(182) | 評(píng)論 (0)編輯 收藏

          因?yàn)镸ySQL的授權(quán)問(wèn)題,想把手上的程序換成PostgreSQL,但裝了PostgreSQL發(fā)現(xiàn)它比MySQL復(fù)雜多了,一下移植過(guò)去不太可能,要花些時(shí)間弄清楚后再說(shuō).

          posted @ 2007-04-13 22:59 小螞蟻 閱讀(187) | 評(píng)論 (1)編輯 收藏

          python升級(jí)到2.4.4后發(fā)現(xiàn)所有牽涉到socket的模塊都無(wú)法使用,上網(wǎng)找相關(guān)資料,發(fā)現(xiàn)居然連作者也不知道原因,沒辦法從package-6.1-release里裝回python-2.4.2,但py24-bsddb3無(wú)法使用,只能用py24-bsddb-2.4.2_2,被這奇怪的問(wèn)題折騰到半夜3點(diǎn),原來(lái)想倒騰berkeley db的興趣被弄得一點(diǎn)也沒了。

          posted @ 2007-04-13 12:02 小螞蟻 閱讀(213) | 評(píng)論 (0)編輯 收藏

          用spca5xx做的Livecam通過(guò)CGI在lighttpd下實(shí)現(xiàn)總有個(gè)問(wèn)題:client網(wǎng)速慢的時(shí)候lighttpd的內(nèi)存用量會(huì)不斷增加,一直到把系統(tǒng)榨干,沒辦法硬著頭皮看lighttpd的mod_cgi源碼,通過(guò)分析發(fā)現(xiàn):
           while(1) {
            int n;

            buffer_prepare_copy(hctx->response, 1024);
            if (-1 == (n = read(hctx->fd, hctx->response->ptr, hctx->response->size - 1))) {
             if (errno == EAGAIN || errno == EINTR) {
              /* would block, wait for signal */
              return FDEVENT_HANDLED_NOT_FINISHED;
             }
          ......
            } else {
             http_chunk_append_mem(srv, con, hctx->response->ptr, hctx->response->used);
             joblist_append(srv, con);
            }

          mod_cgi通過(guò)hctx->fd從cgi讀取數(shù)據(jù),然后由http_chunk_append_men()提交到后臺(tái),但chunk_append卻沒有限制內(nèi)存的使用,當(dāng)從cgi讀取的速度快過(guò)提交給client速度時(shí)內(nèi)存用量就會(huì)不斷增加。本來(lái)想通過(guò)signal來(lái)同步cgi的采樣,但這樣太麻煩而且會(huì)破壞mod_cgi的結(jié)構(gòu),試著在read(hctx->fd...前加個(gè)阻塞判斷:
          if (http_chunkqueue_length(server *srv, connection *con) > 102400) {
            return FDEVENT_HANDLED_NOT_FINISHED;
          }
          if (-1==(n=read(hctx->fd...

          然后在spca5shot里每采樣一frame加個(gè)sleep(1),運(yùn)行幾天看效果再說(shuō)

          posted @ 2007-04-04 12:09 小螞蟻 閱讀(804) | 評(píng)論 (0)編輯 收藏

          倒騰了一天webcam,利用spca5xx的MJpeg流通過(guò)管道直接輸出在客戶端異常斷開時(shí)老有問(wèn)題,加上 | dd后正常,想不通,有空看看dd源碼再說(shuō)。

          posted @ 2007-03-23 00:49 小螞蟻 閱讀(147) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 南溪县| 安溪县| 郧西县| 龙陵县| 白玉县| 精河县| 湖北省| 深圳市| 阿鲁科尔沁旗| 巴林右旗| 怀宁县| 砀山县| 宁化县| 祁门县| 石棉县| 宁明县| 无棣县| 建瓯市| 肇州县| 潮安县| 临泉县| 马公市| 兴宁市| 宁河县| 加查县| 垦利县| 都安| 漳浦县| 汉阴县| 武夷山市| 开远市| 桐城市| 崇阳县| 平定县| 嘉禾县| 礼泉县| 察哈| 新河县| 宁波市| 竹溪县| 荥阳市|