Time of Update: 2018-12-07
可變參數列表標頭檔<stdarg.h>提供了遍曆未知數目和類型的函數參數表的功能。該標頭檔的實現因不同的機器而不同,但提供的介面是一致的。假定函數 f 帶有可變數目的實際參數,lastarg 是它的最後一個命名的形式參數(參數列表必須至少包括一個具名引數)。那麼,在函數 f 內聲明一個類型為 va_list 的變數 ap (argument pointer),它將依次指向每個實際參數。 va_list ap;在訪問任何未命名的參數前,必須用 va_start 宏初始化 ap 一次。(
Time of Update: 2018-12-07
Memcached概念: Memcached是一個免費開源的,高效能的,具有分布式對象的緩衝系統,它可以用來儲存一些經常存取的對象或資料,儲存的資料像一張巨大的HASH表,該表以Key-value對的方式存在記憶體中。官網: http://www.memcached.org/運行環境: linux,BSD,windows都可跑協議理論:http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt (英文)操作流程:
Time of Update: 2018-12-07
這兩天在總結一些以往project中遇到的問題,正好別組有同事問我關於Qt中各個widget視窗的前後位置是如何定義的,這裡就總結一下: 在Qt中,所有問題都要一分為二,討論兩種不同的情況:一個是最常用的QWidget體系,而另外一個則是QGraphicsWidget體系。 ①:在常用的QWidget體系中,設定前後位置是主要是用raise(),underStack(),hide()函數。
Time of Update: 2018-12-07
設定一個widget的背景圖片/顏色,我們可以使用調色盤QPalette,而設定最重要的就是setBrush()畫刷。剛google搜尋了一下,發現用setBrush基本都只用了它的一種方法,但實際上其有兩種用法。 QPalette palette; 用法一:palette.setBrush(QPalette::Base,
Time of Update: 2018-12-07
網頁的緩衝是由HTTP訊息頭中的“Cache-control”來控制的,常見的取值有private、no-cache、max-age、must-revalidate等,預設為private。其作用根據不同的重新瀏覽方式分為以下幾種情況:(1) 開啟新視窗值為private、no-cache、must-revalidate,那麼開啟新視窗訪問時都會重新訪問伺服器。而如果指定了max-age值,那麼在此值內的時間裡就不會重新訪問伺服器,例如:Cache-control:
Time of Update: 2018-12-07
之前寫過一個篇 【HTTP協議詳解】 ,這次繼續介紹HTTP協議中的緩衝機制。HTTP協議提供了非常強大的緩衝機制, 瞭解這些緩衝機制,對提高網站的效能非常有協助。 本文介紹瀏覽器和Web伺服器之間如何處理"瀏覽器緩衝",以及控制緩衝的http header.本文會使用Fiddler來查看HTTP request和Response, 如果不熟悉這工具,可以先參考[Fiddler教程] 。在看本文的時候,
Time of Update: 2018-12-07
前邊的文章http://blog.csdn.net/NRC_DouNingBo/archive/2010/04/28/5540427.aspx介紹了如何給QTextEdit加背景圖片,但是由於圖片也會跟著翻屏,所以用了一種折中的辦法就是:將QTextEdit設定為透明,而後在其後邊的視窗的該位置處刷片即可。 那這裡就說一下如何讓QTextEdit控制項背景變為透明。
Time of Update: 2018-12-07
剛做完的一個項目,在測試時出現了一個問題:由於多線程的存在,當進行語音辨識時:如果使用者點擊程式介面上的button或者其他接受點擊事件後會發出訊號的widget時,程式會crash ! 後來嘗試著從多線程上去解決,但是比較困難;後來只能從另外一條路來解決,那就是:當語音辨識進行時:禁掉一切使用者操作! 所謂的禁掉一切UI操作,在手機等手持功能上,尤其是純觸控螢幕的裝置上,主要就是指的禁止mouse操作!當然了:也可能是禁止鍵盤操作等。那如何去做這一點呢?
Time of Update: 2018-12-07
以前我一直以為:在父widget上擺一個子widget後,當click子widget時:只會進入到子widget的相關事件處理函數中,比如進入到mousePressEvent()中, 而不會進入到父widget的對應事件處理函數中。畢竟:click的是子widget,其遮擋住了父widget,從而父widget接收不到這個事件。然而事實真的是這個樣子嗎? 我做了一個測試: 在一個QWidget上建了一個QLabel。而後實現父QWidget的mousePressEvent(),
Time of Update: 2018-12-07
void ShapedClock::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { dragPosition = event->globalPos() - frameGeometry().topLeft(); event->accept();
Time of Update: 2018-12-07
http協議是無狀態的, 瀏覽器和web伺服器之間可以通過cookie來身份識別。 傳統型應用程式(比如新浪案頭用戶端, skydrive用戶端)跟Web伺服器之間是如何身份識別呢? 閱讀目錄什麼是HTTP基本認證HTTP基本認證的過程HTTP基本認證的優點每次都要進行認證HTTP基本認證和HTTPS一起使用就很安全HTTP OAuth認證其他認證用戶端的使用 什麼是HTTP基本認證傳統型應用程式也通過HTTP協議跟Web伺服器互動, 傳統型應用程式一般不會使用cookie, 而是把
Time of Update: 2018-12-07
之前寫過一個篇 【HTTP協議詳解】 ,這次繼續介紹HTTP協議中的壓縮。本文會使用Fiddler來查看HTTP request和Response, 如果不熟悉這個工具,可以先參考[Fiddler教程]HTTP壓縮是指: Web伺服器和瀏覽器之間壓縮傳輸的”常值內容“的方法。 HTTP採用通用的壓縮演算法,比如gzip來壓縮HTML,Javascript, CSS檔案。 能大大減少網路傳輸的資料量,提高了使用者顯示網頁的速度。當然,同時會增加一點點伺服器的開銷。
Time of Update: 2018-12-07
Qt的元對象系統基於如下三件事情: 1.類:QObject,為所有需要利用原對象系統的對象提供了一個基類。2.宏:Q_OBJECT,通常可以聲明在類的私人段中,讓該類可以使用元對象的特性,比如動態屬性,訊號和槽。3.編譯器:元對象編譯器(moc)為每個QObject子物件自動產生必要的代碼來實現元對象特性。moc工具會讀入C++的源檔案,如果它發現了一個或者多個聲明了Q_OBJECT宏的類,它就建立另一個C++源檔案,為每個類產生包含元對象實現的代碼。這些編譯產生的源檔案通常都已經被包含到類的源
Time of Update: 2018-12-07
之前寫過一個篇 【HTTP協議詳解】 ,這次介紹Proxy 伺服器, Proxy 伺服器是HTTP協議中一個重要的組件, 發揮著重要的作用。 本文介紹一些HTTPProxy 伺服器的概念和工作原理 閱讀目錄什麼是Proxy 伺服器Fiddler就是個典型的代理代理作用一:翻牆代理作用二:匿名訪問代理作用三:通過代理上網代理作用四:通過代理緩衝,加快上網速度代理作用五:兒童過濾器IE代理設定:手動設定代理IE代理設定:使用自動設定指令碼(PAC)IE代理設定:自動探測設定(WPAD)代理認證,40
Time of Update: 2018-12-07
1
Time of Update: 2018-12-07
源製作:1、建立共用cdrom目錄mkdir /media/cdrom2、編輯fstab檔案(開機自動mount)vim /etc/fstab將以下文本加入檔案尾/backup/CentOS-5.8-x86_64.iso /media/cdrom/ iso9660 loop,ro 0 0 3、查看mount -als /media/cdrom4、編輯export檔案vim /etc/export將以下文本加入檔案尾/media/cdrom
Time of Update: 2018-12-07
前段時間趁空把《大規模web服務開發技術》這本書看完了,今天用一下午時間重新翻了一遍,把其中的要點記了下來,權當複習和備忘。由於自己對資料壓縮、全文檢索索引等還算比較熟,所以筆記內容主要涉及前5章內容,後面的零星記了一些。本文可能對如下人士比較有協助:1、對這本書有興趣,但對內容存疑的;2、對大規模Web服務有一定經驗的,可對照著查漏補缺。Hatena的規模(2010年4月)註冊使用者150w,UU1900w/月請求數:幾十億/月繁忙時流量:850Mbps(不含映像)硬體(伺服器)600台,通過
Time of Update: 2018-12-07
// 1.正常 btnNormal_ = new QPushButton("Normal Button", this); // 2.可停駐 btnCheck_ = new QPushButton("Toggle Button", this); btnCheck_->setCheckable(TRUE); btnCheck_->setChecked(TRUE); // 3.帶彈出式菜單 btnMenu_ = new QPushButton( "Popup Button",
Time of Update: 2018-12-07
Memcached是一個高效的分布式記憶體cache,瞭解memcached的記憶體管理機制,便於我們理解memcached,讓我們可以針對我們資料特點進行調優,讓其更好的為我所用。這裡簡單談一下我對memcached的記憶體管理的一些認識,在沒有特別註明的情況下,這裡談到的memcached是1.2版本,1.1和1.2版本有一些差異。 基本概念:Slab和chunk 在Memcached記憶體結構中有兩個非常重要的概念:slab 和 chunk,我們先從中對這兩個概念有一個感性的認識:圖
Time of Update: 2018-12-07
1、啟動Memcache 常用參數-p <num> 監聽的TCP連接埠(預設: 11211)-U <num> UDP監聽連接埠 (預設: 11211, 0 時關閉)-d 以守護進程方式運行-u <username> 運行運行 Memcached的賬戶 非root使用者-m <num> 最大的記憶體使用量單位是MB 預設是64MB-c <num> 軟串連數量預設是1024-v 輸出警告和錯誤資訊-vv 列印用戶端的請求和返回資訊-h