Time of Update: 2018-12-04
volatile在Andrei Alexandrescu的文章《volatile - Multithreaded Programmer's Best Friend》[2]開頭有如下簡要描述:The volatile keyword was devised to prevent compiler optimizations that might render code incorrect in the presence of certain asynchronous events. For
Time of Update: 2018-12-04
文章目錄 雜項:鏈路層複用帶來的問題 RFC792描述了ICMP協議,其中關於重新導向訊息的部分描述如下:The gateway sends a redirect message to a host in the following situation. A gateway, G1, receives an internet datagram from a host on a network to which the gateway is
Time of Update: 2018-12-04
1:ATOM MyRegisterClass(HINSTANCE hInstance){ WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = HeartBeatWin; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance =
Time of Update: 2018-12-04
Nim遊戲的定義一般如下:有若干堆數量有限的石子,兩個玩家輪流取石子,每次可以選擇一堆石子並拿走任意個石子,最後一個拿石子的人判贏。要解決這個一般問題,首先有兩個基本概念:Winning position:從該狀態開始存在策略可以必勝。Losing position:從該狀態開始不存在策略可以勝利。記目前狀態執行某一動作後進入下一狀態,則有下面的解題基本原則:1. 每一個結束狀態都為Losing position。因為當前玩家不能作合法動作。2. 存在一個後繼狀態為Losing
Time of Update: 2018-12-04
原文地址:http://blog.csdn.net/ariesjzj/article/details/7969307 Trie樹,又稱首碼樹,字典樹,是字串處理,尤其是匹配問題中的一大利器。其特點是結點表示的字元不是直接存在結點中,而是由其位置決定。Trie樹的root節點為空白結點,從root節點到每個結點的路徑上的字元組成的字串為該結點所代表的字串。每個結點的兩個子結點必不相同,因此相同的字串首碼只儲存一次。插入,查詢時間複雜度均為O(n),n為字串長度。 關於實現,網上有許多模板,但一般用
Time of Update: 2018-12-04
假設我們有v1、v2,現在我們要求v1->v2的旋轉角,並由此來構造一個旋轉矩陣。這裡有多種方法可選: (1) 我們可以先求出點積,之後調用acos函數求出角度。這裡有一個問題,由於acos返回的值在[0, pi]之內,這樣當v1->v2的夾角大於pi時我們將得不到所需的結果。假設夾角為theta > pi,v1繞n旋轉theta得到了v2,其實就等價於v1經過-n旋轉2pi - theta得到v2。此時2pi - theta <
Time of Update: 2018-12-04
在上一篇《浮點數能夠精確表示的整數的範圍》中,我們知道了,對於float,實際有效尾數是23位,對於double,實際有效位元是53位。所以這裡我們可以得到float的十進位表示有效數字個數為:這裡最小的n為7,對於double,最小的n為15。有時我們在代碼中可能會看到比較浮點數時,會使用一個epsilon,而這個epsilon = 1e-6,可能就是因為當浮點數絕對值 >= 1時,小數點後有效位元為6位。EDIT:
Time of Update: 2018-12-04
Postgre不支援newid()方法,需要自己建立,方法:在Postgre中執行以下語句,就完成了newid()的建立。CREATE or REPLACE FUNCTION "newid"() RETURNS "pg_catalog"."varchar" AS $BODY$ DECLARE v_seed_value varchar(32); BEGIN select md5( inet_client_addr()::varchar || timeofday() ||
Time of Update: 2018-12-04
文章目錄 STL container BenchmarkData Oriented Design STL container BenchmarkC++ benchmark – std::vector VS std::list VS std::dequeC++ benchmark – std::vector VS
Time of Update: 2018-12-04
總結一下Kindle DXG的一些使用方法及技巧: 一、檔案支援和轉換 1、文檔支援:Kindle支援的檔案格式包括Kindle (.AZW, .AZW1),Text (.TXT),PDF (.PDF),Unprotected Mobipocket (.MOBI, .PRC),Audible (.AA, .AAX),MP3 (.MP3)。 2、文檔轉換: 另外,使用者可以轉換以下類型的檔案,轉換後匯入Kindle即可顯示,這些檔案類型包括:Microsoft Word
Time of Update: 2018-12-04
拿到一個二進位檔案,除了尾碼名以外還有什麼辦法來判斷檔案類型?有,那就是根據檔案內容。Linux 上有 file 命令,Windows 上也有很多強大的工具。 TrID: http://mark0.net/soft-trid-e.html 能分析三千多種檔案類型,還能把一個檔案可能從屬的幾種類型按可能性列出來。開發較活躍,檔案類型資料庫天天都更新。 FileInfo: http://www.pediy.com/tools/unpacker.htm(FileInfo_v4.01)
Time of Update: 2018-12-04
資料庫中索引的優缺點 為什麼要建立索引呢?這是因為,建立索引可以大大提高系統的效能。第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的串連,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。第五,通過使用索引,可以在查詢的過程中,使用最佳化隱藏器,提高系統的效能。
Time of Update: 2018-12-04
五段和一段分別是對動詞分類而加以區分的名稱。之所以叫五段,是因為五段的動詞的詞尾有あいうえお母音的變化,如行く有以下的變化 行か(ない) 行きます 行ける 行こう 這裡的か き け
Time of Update: 2018-12-04
在Android中很多時候我們需要計算出檔案的mimetype,而我們通常的思路就是通過副檔名來擷取對應的mimetype,而如果自行處理,將維護一個比較大的映射表,而實際上大可不必,Android提供了一個比較大的key(副檔名) - value(mimetype)的映射。所以我們不需要重複造輪子,直接使用即可。這個類的位置:android.webkit.MimeTypeMap一個可以直接使用的根據副檔名擷取mimetype的方法 public static String
Time of Update: 2018-12-04
1.先安裝虛擬光碟機Daemon tools lite,不能使用PowerISO,此工具安裝Ubuntu失敗。2.啟動虛擬光碟機Daemon,預設在工作列裡啟動的,載入Ubuntu的iso檔案3.在我的電腦裡,點擊載入了Ubuntu的虛擬光碟機,開啟後選擇在windows
Time of Update: 2018-12-04
使用《深入理解電腦群組成》書裡面的Web編程裡的代碼,瞭解HTTP和HTML和CGI的原理**********************************************TELNET**********************************************vadmin@vadmin:~$ telnet localhost 1000Trying ::1...Trying 127.0.0.1...Connected to localhost.Escape
Time of Update: 2018-12-04
可以把ecc理解為是曲線域上的rsa,當然只能這麼理解,它們即使放到一個域內也是有很大不同的,導致它們分別可以被應用的數學難題就不同。既然可以理解為曲線域上的rsa(或者曲線域上的dh,dsa等),那麼就應該知道rsa,dsa,dh等都是在什麼域上的,其實它們都是在素數域上的,所有的素數域都是一樣的,所以對於rsa,dsa或者dh來講,都是可以直接計算的,比如要產生一個大素數,那麼就直接產生好了,這一類產生數的問題是現代電腦可以解決的雖然一般機器沒有提供現成硬體介面,但是還是可以很容易編程實現的
Time of Update: 2018-12-04
OpenVPN本身可以使用http代理,也就是說,OpenVPN用戶端不是直接和OpenVPN伺服器串連,而是使用http代理進行串連。這個特性是OpenVPN的外圍特性,不是其核心的,然而卻能解決很多實際問題,它相當於隧道外面又套了一個隧道,不過這個外面的隧道並不是真實的隧道,因為它並沒有封裝,而僅僅是偽裝了連接埠資訊而已,然而不管怎麼說,它還是使用httpProxy 伺服器的connect方法的。具體流程就是:1.OpenVPN用戶端串連httpProxy 伺服器(CONNECT方法);2.
Time of Update: 2018-12-04
大哥有了新想法,然而沒有技術,令人欣慰的是大哥想到了我,於是我便答應免費幫個忙,這是一個雲端式的項目,具體細節也就不透露了,然而在實現的過程中,其中一個模組我覺得可以自用,於是我就想把這個模組抽出來,該模組的功能就是將CSDN部落格上的文章下載到本地。 假期只完成了一個模板,雖然很垃圾,但是卻能滿足自用的需求,一直以來,我都很害怕自己喝懵了寫的一些感悟放在網上會在某一天再也打不開,事實上,這種事
Time of Update: 2018-12-04
有人想加密自己的perl指令碼,有人想加密自己的php,有人認為bash編程並不是真正的編程,因為它們的原始碼都是可見的,不像c程式那樣,一旦經過編譯就再也不可讀了...其實這是一種誤區,其一就是c語言編譯而成的平台相關的elf或者pe檔案並不是完全不可讀,只是對於應用者不可讀,對於駭客還是可以進行良好反組譯碼的,其二既然應用者不是專業人士,那麼bash,perl等代碼對於他們也是不可讀的,我老婆就曾經完全看不懂echo