Time of Update: 2018-12-06
最近的任務基本上都與網路有關,於是就需要經常與抓包工具打交道。這裡簡單介紹一下,備查。網路抓包工具還是比較多的,Windows下比如Ethereal,Wireshark,Linux下大名鼎鼎的tcpdump。不過這些工具都依賴於pcap庫。pcap庫封裝了網路抓包的許多API,對上層應用提供了一致的介面。有關pcap的資料請猛擊這裡。pcap庫有linux版本libpcap和windows版本winpcap。這些工具使用起來方便簡單,易於上手,且對於抓取到的資料包有固定的檔案儲存體格式(.pca
Time of Update: 2018-12-06
最近有興趣想多瞭解一些程式設計語言或平台方面的內容,主要關注了時下比較流程的語言,.net,java,python,Ruby on Rails,Perl等。下面先分別簡介下。.Net
Time of Update: 2018-12-06
一、態度決定一切1、最高優先順序應該是解決問題,而不是尋找罪魁禍首。指責不能修複Bug。2、欲速則不達:要投入時間和精力保持代碼的整潔、敞亮。在不深入瞭解真正的問題以及可能的後果,就快速修改代碼,這樣只是解決表面問題,最終會引發大問題。3、對事不對人:不帶個人情緒並不是盲目地接受所有的觀點,用合適的詞和理由去解釋為什麼不贊同。不要譴責,沒有評判,只要簡單表達自己的觀點。因為負面的評論會扼殺創新。4、排除萬難,奮勇前進:重構低品質代碼或許需要很大勇氣,但是如果你對此妥協,那麼問題就會進一步惡化下去
Time of Update: 2018-12-06
最近的工作任務要用到openwrt,之前沒怎麼接觸過,準備學習學習。首先要搭建環境,而我又不想去買開發板,所以建個虛擬環境是最佳選擇。【軟體環境】虛擬機器:VirtualBoxOpenWrt鏡像:http://backfire.openwrt.org/10.03/x86/openwrt-x86-ext2.image.gz【操作步驟】1.轉換鏡像檔案格式:VBoxManage convertfromraw --format VMDK openwrt-x86-ext2.image
Time of Update: 2018-12-06
“foo” 和“foobar”等單詞經常會作為樣本名稱,出現在各種程式和技術文檔中。據統計,在各種電腦和通訊技術文檔中,大約有百分之七的文檔出現了這些詞 語。可是這些檔案都沒有為它們給出合適的解釋。雖然這不是個大問題,但對於初學者,尤其是母語非英語的人來說,這些單詞往往會帶來不小的迷惑。本文就介紹 一下這些單詞的含義和來曆。 雖然正式檔案中對於“foo”的語源沒有詳細的記載,但我們仍可以從它的發展曆史中,捋清一些脈絡。 “foo”
Time of Update: 2018-12-06
ebtables和iptables類似,都是Linux系統下網路資料包過濾的組態工具。既然稱之為組態工具,就是說過濾功能是由核心底層提供支援的,這兩個工具只是負責制定過濾的rules.這裡主要介紹ebtables,iptables類似。一、過濾時機要瞭解過濾時機,首先得瞭解網路資料包進入網卡後,在系統中的轉換流程,見圖:從可以看到資料包從進入到離開系統,要經過PreRoute,Input,Forward,Output,PostRoute這五個階段。每個階段中包括了一些節點,每個節點就是一個過濾時
Time of Update: 2018-12-06
這兩天看了一些局部搜尋的內容,筆記如下。1.梯度下降法 最簡單的一種方法,對給定的解,搜尋其鄰域解,若鄰域中有更優的解(根據給定的評估函數評定),則移動至該鄰域解,繼續尋找,直至找不到為止。此時,就找到了局部最優解。 方法非常簡單,但是缺陷也很明顯,即陷入到局部最優解之後無法跳出。2.類比退火演算法 演算法架構與第一種沒有差別。 簡單描述一下,該方法增加了根據機率跳出局部最優的特性,即當陷入局部最優之後,以一定機率使其可以往比當前最優解更差的解轉移,從而跳出局部最優。
Time of Update: 2018-12-06
在VS2008下封裝WinForm自訂Loading控制項。 AutoCircle.cs封裝了旋轉的圓形,直接在裡面添加Label的話,計算圓形扇面的方法有點小複雜,所以在LoadingPanel.cs將AutoCircle和Label封裝在一起。該控制項中提供了當LoadingPanel狀態變化時的事件public event RotateStateChangedHandler
Time of Update: 2018-12-06
上次我已經設計出了基本的介面,而且也確定了使用ini檔案做為參數的儲存方式,調用Windows API函數進行INI檔案的讀寫操作,但有一個重要的問題,這個小程式涉及到了二個方面的密碼:一是資料庫的串連密碼,二是郵件伺服器的發送密碼,如果我們直接把密碼以明文的方式儲存到INI檔案中,如果一不小心INI檔案泄露的話,其他人很容易就可以得到這些參數,可能會對資料庫或郵件伺服器進行攻擊或者偽造郵件,造成不必要的麻煩。因此,我下一步考慮的是如何對敏感資訊進行加密。
Time of Update: 2018-12-06
花了近2個月的時間,看完了這本《代碼大全》第二版。真是一本好書哇,看完之後覺得還有很多值得回味的地方,而且每部分之後作者還推薦了不少經典書籍。所以,作個讀書心得,備查。全書的主題是軟體構建,關於軟體構建問題的方方面面均有涉及,共分7個部分,從軟體構建前期準備,到語言層的一些問題,再到代碼完善,系統考慮以及軟體工藝等等。以下分別進行簡單說明。 第一部分是打好基礎,本部分主要是軟體構建前期的工作,以及對一些基本概念的介紹,具體包括如何選擇程式設計語言和構建實踐方法,如何理解軟體開發的過程。軟體開發本
Time of Update: 2018-12-06
OpenWRT下遠端偵錯一、建立調試環境1. 配置編譯OpenWRTa) make menuconfig啟動以下兩項Advanced configuration options (for developers) –> Toolchain options –> Build gdbUtilities –> gdbserverb) 編譯make V=99,如果已經編譯過,則make toolchain/install 編譯下gdb即可2. 編譯待偵錯工具a) make
Time of Update: 2018-12-06
Download Source -
Time of Update: 2018-12-06
前兩天調代碼的時候出了個運行時錯,什麼after block之類的,依據經驗判斷基本是new申請的空間發生錯誤,一般是越界造成的。這個問題本身沒什麼,倒讓我對new的內部實現產生小小的好奇。好,實驗一把!我這裡只有VC的平台,就看看VC的實現吧!#define TYPE intvoid main(){TYPE *xp=new TYPE[10];xp[0] = 1;xp[1] = 2;xp[9] = 10;xp[12] = 12;xp[-3] = 11;delete
Time of Update: 2018-12-06
一不小心,國慶長假就結束了,上班第一天抓緊時間把其餘的部分放上來吧。 首先進行資料庫的結構設計,在我的設想中,最少應該有三個資料表,一個是寄件匣(mail_outbox),用來存放準備發送的郵件,一個是已發送(mail_sent),發送正確的郵件都被寫入這個表中,還有一個是發送錯誤(mail_error),發送時出現問題的郵件就存放在這裡,就這個小程式而言,它最主要的功能是將mail_outbox中的郵件發送出去,具體資料是怎麼被寫入這個資料表的,我們就先不討論了。
Time of Update: 2018-12-06
工作幾個月,覺得有必要把遇到的BUG記錄一下,並且總結一些基本的思路方法以避免以後再重蹈覆轍。 現象:軟體中使用到了FTP功能,軟體本身作為FTP服務端,可支援用戶端從服務端傳輸檔案。這本是個極其簡單的功能,FTP使用Apache的開原始碼,已知無問題。但是軟體運行在Win7和WinXP上表現卻不相同,Win7上一切順利,WinXP上則不行,顯示錯誤是下載檔案失敗。分析及解決過程:從表面上看,問題應該出在設定檔上。起先認為WinXP下或許未能正確解析檔案格式。於是實驗一,將軟體中FTP功能剝離出
Time of Update: 2018-12-06
Web技術整理 Web技術或許是將來最為熱門的技術之一。這裡略作一些總結,以及對各種Web技術作一些概要性介紹。(以下內容建立在我的粗略理解之上,歡迎指正) 推薦個學習Web技術比較好的網站,介紹的比較全面。W3School標記語言 頁面的展示使用超文字標記語言 (HTML)(HTML)來表示。這是一種標籤語言,本身不具有執行能力,只是結構化頁面內容。早期的HTML版本並不嚴格,許多瀏覽器廠商支援混亂。因而存在許多相容性問題。XHTML是擴充超文字標記語言
Time of Update: 2018-12-06
Download Source - 117KB
Time of Update: 2018-12-06
首先聲明:本文的內容及所涉及的技術,僅做學習和技術研究,並不涉及任何對相關公司軟體著作權的有意侵犯。 放長假以來,天天在琢磨郵件的事,不過通過這幾天也還是認真的學習和瞭解了一下SMTP協議和指令,對郵件發送的各個方面也有了一些瞭解,特別是自己編寫的那個郵件發送平台小軟體為了做的更好,不得不一次次深入的學習,自己的能力也得到了提高。
Time of Update: 2018-12-06
這幾天搭一個C/S的項目架構,發現一個以前沒有注意過的問題,即:在同一個解決方案(.sln)下的A工程(.csproj)引用B工程的.dll後,在代碼中使用using是無法找到對應命名空間。1所示,MCC.Client引用了MCC.Business工程產生的.dll,但在圖2中,報了“Error 2 The type or namespace name 'UserProfile' could not be found (are you missing a using directive or
Time of Update: 2018-12-06
經常看到Linux下的開源軟體中包含挺多檔案,雖然知道是autoconf和automake產生的,不過一直沒怎麼仔細研究過。今天有空來研究一下看看。1. 工具簡介autoconf用於組建組態檔案的工具,輸入檔案是configure.ac(早期版本尾碼是.in),輸出檔案是configure指令碼aclocal用於產生aclocal.m4autoheader用於產生config.h.in,automake需要automake用於產生Makefile,輸入檔案是Makefile.am2. 基本步驟1