技術文章
C++11中的Move語義和右值引用
摘要:
C++一直致力于生成快速的程序。不幸的是,直到C++11之前,這里一直有一個降低C++程序速度的頑癥:臨時變量的創建。有時這些臨時變量可以被編譯器優化(例如返回值優化),但是這并不總是可行的,通常這會導致高昂的對象復制成本。我說的是怎么回事呢?
閱讀全文
posted @
2016-03-15 15:49 日需博客 閱讀(605) |
評論 (0) 編輯
藝術簽名制作工具v1.0
摘要: 可在線制作藝術簽名。目前托管在新浪云上,地址:http://godsignature.sinaapp.com
閱讀全文
posted @
2015-02-12 11:57 日需博客 閱讀(1528) |
評論 (3) 編輯
使用memc-nginx和srcache-nginx模塊構建高效透明的緩存機制
摘要: 為了提高性能,幾乎所有互聯網應用都有緩存機制,其中Memcache是使用非常廣泛的一個分布式緩存系統。眾所周知,LAMP是非常經典的Web架構方式,但是隨著Nginx的成熟,越來越多的系統開始轉型為LNMP(Linux+Nginx+MySQL+PHP with fpm),這是因為Nginx采用基于事件機制的I/O多路復用思想設計,在高并發情況下其性能遠遠優于默認采用prefork模式的Apache,另外,相對于Apache,Nginx更輕量,同時擁有大量優秀的擴展模塊,使得在Nginx上可以實現一些美妙的功能。
閱讀全文
posted @
2011-10-09 09:42 日需博客 閱讀(1529) |
評論 (1) 編輯
VNC遠程管理Linux服務器安全指導
摘要: 在開源領域,遠程遙控技術的代表就是VNC了。VNC(Virtual Network Computer,虛擬網絡計算機)是一套由AT&T實驗室開發的可操控遠程計算機的軟件。根據主控端與被控端的不同,VNC軟件可以分為兩個部分,分別為VNC Server與VNC viewer。前者是安裝在被控制端上,而后者被安裝在主控端上。VNC軟件不僅是開源的,而且是跨平臺的。有不少系統管理員喜歡在Windows平臺上使用這個VNC來作為遠程管理Linux服務器或者客戶端的工具。
閱讀全文
posted @
2011-10-08 09:11 日需博客 閱讀(1916) |
評論 (1) 編輯
我們的網站壓力究竟在哪里
摘要: 目前網站架構一般分成負載均衡層、WEB層和數據庫層,我其實一般還會多加一層,即文件服務器層,這樣我們在后面的討論過程中,我們可以依次對這四層進行討論;這里為了更具有說服力,我將用三個并發較大的生產環境來說明下,一個是我現在維護的電子商務網站(并發最大值2000,日PV500萬左右,此并發并不是總這么高的,只是最高峰是有2900,下面的網站類似)、我的一拍網網站(并發最大值500,日PV50萬左右)、以前維護的大型CDN廣告網站(并發最大值5000,日PV5000萬左右)。
閱讀全文
posted @
2011-10-08 09:08 日需博客 閱讀(389) |
評論 (0) 編輯
使用iptables實現NAT轉發功能
摘要: 本文案例中,我們假設有一家ISP提供園區Internet接入服務,為了方便管理,該ISP分配給園區用戶的IP地址都是私網IP,通過該私網IP用戶無法向外發布信息。但是,部分用戶要求建立自己的WWW服務器對外發布信息。
我們可以在防火墻的外部網卡上綁定多個合法IP地址,然后通過ip映射使發給其中某一個IP地址的包轉發至內部某一用戶的WWW服務器上,然后再將該內部WWW服務器響應包偽裝成該合法IP發出的包。
閱讀全文
posted @
2011-10-08 09:02 日需博客 閱讀(769) |
評論 (0) 編輯
細數那些運行在微軟平臺上的NoSQL數據庫
摘要: 從可查詢的分布式解決方案,如MongoDB,到簡單的分布式Key/Value存儲解決方案,如Cassandra。此外,還有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。但目前僅有少量的NoSQL項目支持在Windows平臺上運行,如果要說到生產應用那就更少了。
閱讀全文
posted @
2011-09-30 09:42 日需博客 閱讀(1848) |
評論 (0) 編輯
談談對于企業級系統架構的理解
摘要: 在我們剛開始學習架構的時候,首先會想到分層的概念,分層架構比較經典的是三層架構,那么,什么是三層架構呢?它包括表現層,業務層,數據訪問層;而對于一個新手來說,從抽象意義上的三層架構,邏輯上就劃分為三個層。
閱讀全文
posted @
2011-09-30 09:26 日需博客 閱讀(256) |
評論 (0) 編輯
C# HttpWebRequest 通用類(二)
摘要: using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace HttpWeb
{
///
/// Http操作類
/// 閱讀全文
posted @
2011-09-28 13:52 日需博客 閱讀(4392) |
評論 (0) 編輯
C# HttpWebRequest 通用類(一)
摘要: /*
使用方法:
MyHttp loHttp = new MyHttp();
string lcHtml = "";
loHttp.HandleCookies = true;//操作Cookies
loHttp.Method = "GET";
lcHtml = loHttp.GetUrl("http://signin.ebay.com.cn/ws2/eBayISAPI.dll?SignIn&ssPageName=h:h:sout:CN");
loHttp.AddPostKey("Key", "Value");
loHttp.Referer = "http://signin.ebay.com.cn/ws2/eBayISAPI.dll?SignIn&ssPageName=h:h:sout:CN";
loHttp.Method = "POST";
lcHtml = loHttp.GetUrl("http://signin.ebay.com.cn/ws2/eBayISAPI.
閱讀全文
posted @
2011-09-28 13:51 日需博客 閱讀(2673) |
評論 (1) 編輯
C#三種模擬自動登錄和提交POST信息的實現方法
摘要: 網頁自動登錄(提交Post內容)的用途很多,如驗證身份、程序升級、網絡投票等,以下是用C#實現的方法。
網頁自動登錄和提交POST信息的核心就是分析網頁的源代碼(HTML),在C#中,可以用來提取網頁HTML的組件比較多,常用的用WebBrowser、WebClient、HttpWebRequest這三個。以下就分別用這三種方法來實現:
閱讀全文
posted @
2011-09-28 13:40 日需博客 閱讀(936) |
評論 (0) 編輯
ASP.NET 也可以做得很好 2.XSLT初識 在ASP.NET中使用XSLT
摘要: 大家說我說的跟.net一點關系都沒有,可是第一篇我也說了啊,僅僅是一個HELLO的例子啊。現在哪個人不忙啊。只能一點一點的寫了。。
好了,廢話少說,我們先看看實際的情況,然后根據情況來寫一個小小的例子吧,這次有Demo下載嘍。。。
現實項目中的情況:
閱讀全文
posted @
2011-09-28 10:33 日需博客 閱讀(435) |
評論 (0) 編輯
SLT 入門--實際應用
摘要:
把上面的代碼加入web.config文件的appSettings節點中,別問為什么...
為Request寫個擴展:
閱讀全文
posted @
2011-09-28 10:27 日需博客 閱讀(412) |
評論 (0) 編輯
ASP.NET 也可以做得很好 1.XSLT初識 一個HELLO例子
摘要: XSL 指擴展樣式表語言(EXtensible Stylesheet Language)
萬維網聯盟開始發展 XSL 的起因是由于對基于 XML 的樣式表語言的需求。
XSLT 指 XSL 轉換。XSLT 將 XML 文檔轉換為其他文檔,比如 XHTML
概念不多講,這里附上W3C的網址 ,希望您一定要去看看!
老規矩,先寫出個能運行的程序再說。
既然XSLT是將XML文檔轉換為其它文檔,那么我們就先建立一個XML文檔吧。(名為:HelloHtml.xml)
閱讀全文
posted @
2011-09-28 10:24 日需博客 閱讀(264) |
評論 (0) 編輯
ASP.NET性能優化之構建自定義文件緩存
摘要: ASP.NET的輸出緩存(即靜態HTML)在.NET4.0前一直是基于內存的。這意味著如果我們的站點含有大量的緩存,則很容易消耗掉本機內存。現在,借助于.NET4.0中的OutputCacheProvider,我們可以有多種選擇創建自己的緩存。如,我們可以把HTML輸出緩存存儲到memcached分布式集群服務器,或者MongoDB中(一種常用的面向文檔數據庫,不妨閱讀本篇http://msdn.microsoft.com/zh-cn/magazine/gg650661.aspx)。當然,我們也可以把緩存作為文件存儲到硬盤上,考慮到可擴展性,這是一種最廉價的做法,本文就是介紹如果構建自定義文件緩存。
閱讀全文
posted @
2011-09-28 09:43 日需博客 閱讀(326) |
評論 (0) 編輯
單點登錄在項目中的實現
摘要: 最近在做一個登錄功能,糾結了好幾天,一直在找一個能優雅的實現單點登錄的功能。博客園有看到某人寫了又臭又長的八股文式的文章,沒看到有價值的東西。
其實單點登錄最終要解決的是多個不同域名間共享cookie的問題。但是要在不同域名間共享cookie是一件很困難的事情,要在某個域名下面種cookie就必須訪問該
域名。網上有很多方法,看到的有動態創建iframe實現,在iframe里面訪問某個域名的頁面種下cookie,該方法需要寫一些js代碼,寫起來有點累,所以我最終
選擇了用頁面跳轉來實現,想不到效果比我預期的好很多,瀏覽器幾乎看不出來有跳轉的痕跡。
閱讀全文
posted @
2011-09-27 10:54 日需博客 閱讀(817) |
評論 (0) 編輯
教你如何在博客里加入分享功能——分享插件(HRshare)
摘要: 下面我要用到的插件是我自己寫的,關于插件地址是:jquery.HooRay——自己做的一個jquery常用工具插件。關于分享插件的制作流程我也寫了篇文章,有興趣的可以看下:自己寫的一個分享按鈕的插件(可擴展,內附開發制作流程)
閑話不多說,進入正題吧,大家可以看下文章最后是不是有一排分享的按鈕,那個就是最終的效果了,當然不止那一種效果,一共有以下幾種效果,分別是:
閱讀全文
posted @
2011-09-26 10:14 日需博客 閱讀(1628) |
評論 (2) 編輯
.NET中的加密算法總結(自定義加密Helper類)
摘要: 相信許多人都使用過.NET提供的加密算法,而且在使用的過程我們必須了解每種加密算法的特點(對稱或非對稱,密鑰長度和初始化向量等等)。我也看到過很多人寫過.NET中加密算法總結,但我發現個別存在一些問題,很多人喜歡羅列每種加密算法的具體實現,假設我們要求實現AES和Triple DES加密算法,的確可以很多地分別給出它們的具體實現。
那我們真的有必要給出每個加密算法的具體實現嗎?而且這樣的設計不符合OOP設計思想,最重要的是我們要維護多個加密算法啊!OK接下來讓我們實行一個可擴展和好維護的加密算法Helper。
閱讀全文
posted @
2011-09-26 09:48 日需博客 閱讀(1069) |
評論 (0) 編輯
CentOS 6下搭建Apache+MySQL+PHP+SSL
摘要: 網上的一些文章都已經比較老了,現在版本高了之后,其實配置是很省力的(不考慮什么負載的話)
分享全過程,出了文中提到的安裝epel rpmfushion 源指令不同外,其他的過程也適用與Centos 5
1.安裝CentOS 6 ,可以選擇最小安裝,也可以安裝桌面
2.升級系統
yum update
閱讀全文
posted @
2011-09-26 09:39 日需博客 閱讀(346) |
評論 (0) 編輯
破解郵箱密碼實例
摘要: 本文介紹了如何破解E-mail郵箱以及利用獲取的一個配置文件來實施滲透。在無法直接進行攻擊時,郵件木馬攻擊以及郵箱賬號破解攻擊無疑是一種最佳選擇。郵件木馬攻擊成功有兩個必要條件:一是木馬不被查殺,二是用戶打開郵件并執行了隱藏在郵件中的木馬程序。郵件木馬攻擊隨著網民對網絡安全意識的提高,其攻擊成功率將會大大降低,而郵箱賬號破解在破解成功后,可以很方便地了解用戶的行為、獲取郵件中的資料以及獲取郵箱主人的個人信息等。郵箱賬號破解一般有三種情況:一是用戶自己忘記了郵箱密碼,通過郵件服務器的“忘記密碼”模塊無法重新設置或者獲取原密碼;二是出于商業競爭或者好奇,想知道對方郵件中內容,因此對郵箱賬號進行破解;三是專業性攻擊,攻擊郵箱獲取資料、掌握個人動態以及獲取個人信息等。
閱讀全文
posted @
2011-09-26 09:20 日需博客 閱讀(858) |
評論 (0) 編輯
Fedora 15上做主從、雙主模型的集群
摘要: Fedora 15上做雙主模型的集群
拓撲如下所示:
----------- ----------
| HA1 |____| HA2 |
|__________| |________|
HA1:
IP:192.168.1.78/24
HA2:
IP:192.168.1.151/24
VIP:192.168.1.110
閱讀全文
posted @
2011-09-23 09:59 日需博客 閱讀(2327) |
評論 (1) 編輯
八種主流NoSQL數據庫系統對比
摘要: 雖然SQL數據庫是非常有用的工具,但經歷了15年的一支獨秀之后壟斷即將被打破。這只是時間問題:被迫使用關系數據庫,但最終發現不能適應需求的情況不勝枚舉。
但是NoSQL數據庫之間的不同,遠超過兩 SQL數據庫之間的差別。這意味著軟件架構師更應該在項目開始時就選擇好一個適合的 NoSQL數據庫。針對這種情況,這里對 Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase進行了比較:
(編注1:NoSQL:是一項全新的數據庫革命性運動,NoSQL的擁護者們提倡運用非關系型的數據存儲。現今的計算機體系結構在數據存儲方面要求具 備龐大的水平擴 展性,而NoSQL致力于改變這一現狀。目前Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型數據庫。 參見NoSQL詞條。)
閱讀全文
posted @
2011-09-22 14:02 日需博客 閱讀(303) |
評論 (0) 編輯
SQLite3 C/C++ 開發接口簡介
摘要: 1.0 總覽
SQLite3是SQLite一個全新的版本,它雖然是在SQLite 2.8.13的代碼基礎之上開發的,但是使用了和之前的版本不兼容的數據庫格式和API. SQLite3是為了滿足以下的需求而開發的:
l 支持UTF-16編碼.
l 用戶自定義的文本排序方法.
l 可以對BLOBs字段建立索引.
因此為了支持這些特性我改變了數據庫的格式,建立了一個與之前版本不兼容的3.0版. 至于其他的兼容性的改變,例如全新的API等等,都將在理論介紹之后向你說明,這樣可以使你最快的一次性擺脫兼容性問題.
閱讀全文
posted @
2011-09-21 15:12 日需博客 閱讀(1078) |
評論 (0) 編輯
用SELinux保護你的Apache
摘要: 你的Web服務器確實有可能遭受攻擊,但是SELinux可以用來確保你的網站不用承受真正的傷害。
你可以運用SELinux類型來創建一個確切定義:一個服務可以做什么和它在哪里完成要做的事情。默認情況下,httpd_sys_content類型被設為/var/www,它規定httpd進程可以在該目錄中工作。如果攻擊者破壞了Apache Web服務器并嘗試在別處寫入,就像紅帽和Fedora以及CentOS等相似Linux版本的默認/tmp,你需要知道你正在處理什么。如果你配置Apache來為/data目錄中的內容服務,SELinux也會默認地防止這種情況。
由于這些默認設置可能造成復雜的情況,很多Linux管理員關閉SELinux。雖然關閉SELinux的確讓你的服務器提供服務時更容易,但是它還是增加了安全風險。
閱讀全文
posted @
2011-09-20 14:18 日需博客 閱讀(296) |
評論 (1) 編輯
如何用iptables實現Linux下強大的NAT功能
摘要: 本文主要介紹如何使用iptbales實現linux2.4下的強大的NAT功能。關于iptables的詳細語法請參考“用iptales實現包過慮型防火墻”一文。需要申明的是,本文絕對不是 NAT-HOWTO的簡單重復或是中文版,在整個的敘述過程中,作者都在試圖用自己的語言來表達自己的理解,自己的思想。
閱讀全文
posted @
2011-09-20 14:11 日需博客 閱讀(280) |
評論 (0) 編輯
完美安裝CentOS + Nginx + PHP-FPM + MySQL
摘要: PHP 5.3.1
MySQL 5.0.89
Nginx 0.8.33 或 0.7.65 (可選)
現在,我們可以快速全自動搞定 CentOS + Nginx + PHP-FPM + MySQL 的安裝了
這個可比網上流傳的什么一鍵安裝包要好得多,強烈推薦此法安裝,適合所有菜鳥和高手
我服務器上全用的源代碼編譯安裝,也好不到哪去,還很費勁
閱讀全文
posted @
2011-09-20 13:49 日需博客 閱讀(399) |
評論 (0) 編輯
C#.net連接Mysql的類庫
摘要: 微軟的visual studio沒有自帶連接Mysql的驅動,要去網上下載一個mysql-connector-net-6.4.3驅動,然后安裝就可以使用。
下面是我封裝好的連接數據庫的類,直接調用即可。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using MySql.Data.MySqlClient;
閱讀全文
posted @
2011-08-24 00:09 日需博客 閱讀(3164) |
評論 (0) 編輯
GDI+ for VC6 MFC
摘要: 五年前,筆者曾在C#中使用GDI+開發程序,對其頗有好感。這一段時間,在使用VC6作圖時,深切感會到使用GDI的種種不便,不比GDI+好用。沉迷于VC6的高效與輕便,不想只為了一個GDI+而被迫安裝沉甸甸的.Net,便產生了一個疑問,難道GDI+只能用于.Net中嗎?
訪問微軟的MSDN網站后,隨即解開了此謎。于是便有了此文 – 如何在VC6 MFC中使用GDI+。
閱讀全文
posted @
2011-08-23 09:10 日需博客 閱讀(2868) |
評論 (6) 編輯
用C#制作印章
摘要: 制作印章來說,主要是如何讓字均勻的顯示在弧線段上,那么一般的印章要么以圓或者橢圓為底圖,不過這兩者的算法大致相同,為了方便說明,如下就用相對簡單的圓來舉例說明,如果需要做橢圓的話,可以在我的基礎上進行擴展,因為核心算法是一樣的,相對于圓來說,橢圓求弧長以及各個字符的位置,這兩點相對麻煩些,但是這兩者都可找到相應的數學公式。
閱讀全文
posted @
2011-08-19 17:45 日需博客 閱讀(1643) |
評論 (1) 編輯
ARP欺騙 C++實現
摘要: 前段時間我們學校的的網絡總是出現掉線的問題,后來說是ARP欺騙,要我們用ANTIARPSNIFFER。小弟不才,
也想搞清楚這個ARP欺騙到底是個什么東西。于是在網上查了點資料,看了點文檔。也算是DIY了一個出來,而
且可以不被ANTIARPSNIFFER發現的讓對方主機在網絡中死掉。于是把這個小東西貼出來讓大家一起把玩一下。
在下菜鳥一只,還請高手指教
參考資料:《TCP/IP詳解II:實現》,《WINPCAP 3.0 DOC》,《交換網絡中的嗅探和ARP欺騙》(一位叫RefDom
的大哥很久前寫的帖子)
閱讀全文
posted @
2011-08-19 11:55 日需博客 閱讀(4923) |
評論 (0) 編輯
Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open處理
摘要: 之前已經在freebsd主機登陸到dreamhost.com的ssh密鑰實驗是成功的,參考網址
http://wiki.dreamhost.com/SSH#Passwordless_Login
但今天嘗試把密鑰放到debian系統的/root/.ssh/id_rsa中,然后在debian的終端界面輸入
ssh xxxx@xxxx.dreamhost.com
這樣就出現 Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open. 等錯誤顯示了,經google查詢下,原來只要把權限降到0600就ok了
輸入命令
chmod 0600 /root/.ssh/id_rsa
然后再
ssh xxxx@xxxx.dreamhost.com
這樣就可以密鑰登陸了.
閱讀全文
posted @
2011-08-19 01:42 日需博客 閱讀(12734) |
評論 (0) 編輯
C#中使用XSLT文件將XML文檔轉換為HTML
摘要: 1.創建XSLT文件,定義格式;
2.在C#中使用XslCompiledTransform對象的load()方法加載XSLT文件;
3.使用Transform()方法轉換XML文檔。
閱讀全文
posted @
2011-08-15 09:53 日需博客 閱讀(859) |
評論 (0) 編輯
Windows平臺下的內存管理
摘要: 1. Windows平臺下主要的內存管理途徑
申請
釋放
new
delete
malloc
free
CoTaskMemAlloc
CoTaskMemFree
IMalloc::alloc
IMalloc/free
GlobalAlloc
GlobalFree
LocalAlloc
LocalFree
HeapAlloc
HeapFree
VirtualAlloc
VirtualFree
閱讀全文
posted @
2011-08-15 09:21 日需博客 閱讀(478) |
評論 (0) 編輯
malloc,new,VirtualAlloc,HeapAlloc性能(速度)比較
摘要: 這里比較的VC++編譯的C++代碼中的性能
我用的是VC6.0測試的
就不介紹這幾個的用法了
我寫了一段簡單的測試代碼
測試結果是:
malloc:390
new:391
VirtualAlloc:454
HeapAlloc:47
閱讀全文
posted @
2011-08-15 09:19 日需博客 閱讀(1356) |
評論 (2) 編輯
IIS Express refuses to start
摘要: "Starting IIS Express...
Report ListenerChannel stopped due to failure; ProtocolId:http,ListenerChannelId:0
HostableWebCore activation failed.
Unable to start iisexpress.
The interface is unknown.
For more information about the error, run iisexpress.exe with the tracing switch enabled."
閱讀全文
posted @
2011-08-12 22:05 日需博客 閱讀(1606) |
評論 (0) 編輯
IIS Express 的配置、使用和注意點
摘要: VS2010的SP1引入了IIS Express支持,這是值得高興的事情……因為自帶的ASP.net Development Server只能單站點運行、不能設置虛擬目錄、多少個項目就會出現多少個等等等等巴拉巴拉,我對它恨之入骨,總之,很長一段時間內我進行開發實際上都是用IIS的。但是用IIS有不方便的地方,就是必須開啟IIS Admin服務,而且VS必須以管理員模式運行才能正常打開項目和調試。每次都以管理員模式啟動已經比較麻煩了,比較郁悶的是,以管理員模式啟動的vs處于特權狀態,所以程序間的文件拖放就失效了……換句話說,如果我想從資源管理器中直接拖一個文件到vs中打開,就辦不到了。
閱讀全文
posted @
2011-08-12 21:38 日需博客 閱讀(878) |
評論 (0) 編輯
LNMP安裝配置-linux Nginx/Mysql/Php/Phpmyadmin(CentOS vps)
摘要: 只在vps服務器搭建vpn線路,顯然有些浪費。比如還可以在Linux的vps服務器上安裝lnmp網站服務器。
LNMP是指在linux系統下安裝Nginx服務器、Mysql數據庫、Php (Phpmyadmin)。安裝LNMP過程很簡單,另外也有LNMP一鍵安裝包,因此甚至不需要進行一些LNMP配置,網站服務器就可以工作了。但是lnmp一鍵安裝的缺點是如果安裝過程出現了問題,配置起來就困難很多了。
為什么不用lamp,即沒有采用Apache服務器的原因是該VPS配置性能不高,跑apache服務器將會非常吃力。而Nginx是一個高性能的http、反向代理服務器,Nginx的特點就是輕便和高性能,非常適合低配置的VPS搭建網站服務器。下面是遠方博客在CentOS系統下安裝和配置LNMP、安裝FTP服務器vsftpd、并搭建wordpress博客網站的過程,記錄供備忘并交流。
閱讀全文
posted @
2011-08-12 00:27 日需博客 閱讀(2212) |
評論 (0) 編輯
VPS構建web服務器介紹
摘要: 廉價的VPS都不約而同的會提供Linux的系統,并在控制面板上也會提供各種Linux系統的Reinstall,比說說經典的Redhat、Debian、Centos、Fedora 還有Ubuntu。選擇什么系統的話,還是因人而異,很多玩Linux服務器的老手都會推薦Centos,因為相對比入手簡單特別是國內有關的中文教材比較多,個人比較喜歡Debian,Debian占用資源很少,穩定性也不錯,可惜國內有關的教程不多。。而至于源于Debian 的 Ubuntu,雖然在使用上比Debian方便多,但是也存在很多問題,桌面版本的系統使用起來相當的舒服,就是服務器系統的使用,個人不傾向Ubuntu。理論上64位的系統要比32位的要快,但是在廉價VPS母機的有限硬件條件下,其實差別甚微。
閱讀全文
posted @
2011-08-12 00:11 日需博客 閱讀(284) |
評論 (0) 編輯
git命令快速參考
摘要: 1. 創建一個新的版本庫
從一個壓縮包中創建:
$ tar xzf project.tar.gz
$ cd project
$ git init #Initialized empty Git repository in .git/
$ git add .
$ git commit
閱讀全文
posted @
2011-08-11 11:50 日需博客 閱讀(432) |
評論 (0) 編輯
免費申請ssl證書,web服務器適用
摘要: 越來越多的企業需要使用SSL進行加密的web訪問服務,如:webmail。
對于中小企業來說,如何能夠擁有由正式的授權機構簽發的證書,避免手動確認自簽署證書的尷尬,而又能省去每年購買SSL證書服務的費用呢?
閱讀全文
posted @
2011-08-10 00:14 日需博客 閱讀(1996) |
評論 (0) 編輯
VC++下使用ADO編寫數據庫程序
摘要: 準備:
(1)、引入ADO類
#import "c:\program files\common files\system\ado\msado15.dll"
no_namespace
rename ("EOF", "adoEOF")
(2)、初始化COM
在MFC中可以用AfxOleInit();非MFC環境中用:
CoInitialize(NULL);
CoUnInitialize();
閱讀全文
posted @
2011-08-09 14:21 日需博客 閱讀(339) |
評論 (0) 編輯
GUI程序也能使用控制臺窗口
摘要: 很多時候,調試GUI程序是很不方便的,通常的做法是使用MessageBox,但是作為一個模態窗口,它經常產生不必要的消息,比如killfocus, setfocus或者paint,從而影響調試的執行過程。當然,使用vc的調試器也不錯,但是這樣也很容易造成窗口切換從而產生干擾消息。
因此,如果能像在控制臺程序里那樣使用cin/cout對象或printf族函數,會使得調試過程方便得多。而通常,windows是不會為GUI程序產生單獨的命令行窗口的。所以我們是看不到使用標準輸入輸出流輸出的東西的。既然系統不提供,那就自己動手“造”出一個來吧!
下面是一個簡單的控制臺窗口對象,它可以為你的程序創建一個命令行窗口,并將stdout,stdin和stderr重定向到這個命令行窗口。在程序中建立一個這樣的對象之后,就可以直接使用cin/cout/*printf來操縱這個新的命令行窗口了!5 f8 I$ l4 o- b3 L, m% h
閱讀全文
posted @
2011-08-09 13:57 日需博客 閱讀(607) |
評論 (0) 編輯
位運算的用處搜集
摘要: 位運算應用口訣
清零取反要用與,某位置一可用或
若要取反和交換,輕輕松松用異或
移位運算
要點 1 它們都是雙目運算符,兩個運算分量都是整形,結果也是整形。
2 " < <" 左移:右邊空出的位上補0,左邊的位將從字頭擠掉,其值相當于乘2。
3 ">>"右移:右邊的位被擠掉。對于左邊移出的空位,如果是正數則空位補0,若為負數,可能補0或補1,這取決于所用的計算機系統。
4 ">>>"運算符,右邊的位被擠掉,對于左邊移出的空位一概補上0。
閱讀全文
posted @
2011-08-08 13:29 日需博客 閱讀(273) |
評論 (0) 編輯
整合 Google 開源 C++ 代碼
摘要: Google 開源了很多優秀的 C++ 程序庫,本文介紹如何將其中幾個整合到一起。
本文涉及的 Google 庫有:
gflags - 命令行參數解析。可以完全用命令行來配置應用程序,省去配置文件。
gtest - C++ 單元測試框架
gmock - C++ 單元測試中用到的 mock
glog - 日志庫
protobuf - 高效的網絡協議格式
還有第三方的 libunwind 和 zlib。
閱讀全文
posted @
2011-08-08 13:11 日需博客 閱讀(568) |
評論 (0) 編輯
linux下automake用法
摘要: 作為Linux下的程序開發人員,大家一定都遇到過Makefile,用make命令來編譯自己寫的程序確實是很方便。一般情況下,大家都是手工寫一個簡單Makefile,如果要想寫出一個符合自由軟件慣例的Makefile就不那么容易了。
在本文中,將給大家介紹如何使用 autoconf和automake兩個工具來幫助我們自動地生成符合自由軟件慣例的Makefile,這樣就可以象常見的GNU程序一樣,只要使用“./configure”,“make”,“make install”就可以把程序安裝到Linux系統中去了。這將特別適合想做開放源代碼軟件的程序開發人員,又或如果你只是自己寫些小的Toy程序,那么這個文章對你也會有很大的幫助。
閱讀全文
posted @
2011-08-08 11:58 日需博客 閱讀(2514) |
評論 (0) 編輯
介紹LuaPlus: 好用的Lua For C++擴展
摘要: LuaPlus是Lua的C++增強,也就是說,LuaPlus本身就是在Lua的源碼上進行增強得來的。用它與C++進行合作,是比較好的一個選擇。
LuaPlus目前版本為:LuaPlus for Lua 5.01 Distribution Build 1080 (February 28, 2004)。大家可以到http://luaplus.org/ 站點下載:
源碼 (http://wwhiz.com/LuaPlus/LuaPlus50_Build1081.zip)
目標碼 (http://wwhiz.com/LuaPlus/LuaPlus50_Build1081_Win32Binaries.zip)
介紹LuaPlus: 好用的Lua For C++擴展 沐楓網志
閱讀全文
posted @
2011-08-08 11:36 日需博客 閱讀(562) |
評論 (1) 編輯
json格式入門和總結
摘要: 數據交換的格式,從結構上看,所有的數據(data)最終都可以分解成三種類型:
第一種類型是標量(scalar),也就是一個單獨的字符串(string)或數字(numbers),比如"北京"這個單獨的詞。
第二種類型是序列(sequence),也就是若干個相關的數據按照一定順序并列在一起,又叫做數組(array)或列表(List),比如"北京,上海"。
第三種類型是映射(mapping),也就是一個名/值對(Name/value),即數據有一個名稱,還有一個與之相對應的值,這又稱作散列(hash)或字典(dictionary),比如"首都:北京"。
閱讀全文
posted @
2011-08-08 11:07 日需博客 閱讀(413) |
評論 (0) 編輯
修改IAT實現本進程API HOOK
摘要: //修改IAT實現本進程API HOOK
//coded by xicao
//QQ:327062448
//E-MAIL:xicao54007@sina.com
#include
#include //ImageDirectoryEntryToData
#pragma comment(lib,"imagehlp.lib")
/************************************************************/
char *szModName = NULL ;
char *szHacked = "不好意思hook到了!" ;
DWORD dwHookFun ;
DWORD dwHookApiAddr;
PIMAGE_IMPORT_DESCRIPTOR pImportDesc ;
PIMAGE_THUNK_DATA32 pThunk;
U 閱讀全文
posted @
2011-08-08 11:03 日需博客 閱讀(1467) |
評論 (0) 編輯
經典編程書籍(C++, 網絡, Windows, Linux)
摘要: 兩年前就給自己列出了一個讀書清單,但進展緩慢,看的經典書籍仍然寥寥可數,慚愧中......
現在將這個書單重新修改,一方面鞭策自己學習,另一方面也表達對大牛們有如滔滔江水般的敬仰之意。
書單中列舉的都是相關領域的經典書籍,必讀之作。此書單的編輯參考了很多網站,包括一些名家的推薦,例如侯捷,孟巖,榮耀,潘愛民等等,在此也向這些前輩表示感謝。^_^
閱讀全文
posted @
2011-08-08 10:59 日需博客 閱讀(593) |
評論 (0) 編輯
LPTSTR、LPCSTR、LPCTSTR、LPSTR的來源及意義
摘要: UNICODE:它是用兩個字節表示一個字符的方法。比如字符'A'在ASCII下面是一個字符,可'A'在UNICODE下面是兩個字符,高字符用0填充,而且漢字'程'在ASCII下面是兩個字節,而在UNICODE下仍舊是兩個字節。UNICODE的用處就是定長表示世界文字,據統計,用兩個字節可以編碼現存的所有文字而沒有二義。
MBCS,它是多字節字符集,它是不定長表示世界文字的編碼。MBCS表示英文字母時就和ASCII一樣(這也是我們容易把MBCS和ASCII搞混的原因),但表示其他文字時就需要用多字節。
WINDOWS下面的程序設計可以支持MBCS和UNICODE兩種編碼的字符串,具體用那種就看你定義了MBCS宏還是UNICODE宏。MBCS宏對應的字符串指針是char*也就是LPSTR,UNICODE對應的指針是unsigned short*也就是LPWSTR,為了寫程序方便微軟定義了類型LPTSTR,在MBCS下他就是char*, 在UNICODE下它是unsigned char*,這樣你就可以重定義一個宏進行不同字符集的轉換了。
閱讀全文
posted @
2011-08-08 10:58 日需博客 閱讀(617) |
評論 (0) 編輯
使用KeepAlive檢測網絡異常
摘要: #include "netinet/tcp.h"
int keepAlive = 1; //設定KeepAlive
int keepIdle = 30; //開始首次KeepAlive探測前的TCP空閉時間
int keepInterval = 30; //兩次KeepAlive探測間的時間間隔
int keepCount = 3; //判定斷開前的KeepAlive探測次數
if(setsockopt(sockfd,SOL_SOCKET,SO_KEEPALIVE,(void*)&keepAlive,sizeof(keepAlive)) == -1)
{
printf("Socket Option setting(SO_KEEPALIVE) fail !\n");
return FALSE;
}
if(setsockopt(sockfd,SOL_TCP,TCP_KEEPIDLE,(void *)&ke
閱讀全文
posted @
2011-08-08 10:53 日需博客 閱讀(546) |
評論 (0) 編輯
Crypto++入門學習筆記(DES、AES、RSA、SHA-256)
摘要: 背景(只是個人感想,技術上不對后面的內容構成知識性障礙,可以skip):
最近,基于某些原因和需要,筆者需要去了解一下Crypto++庫,然后對一些數據進行一些加密解密的操作。
筆者之前沒接觸過任何加密解密方面的知識(當然,把每個字符的ASCII值加1之流對明文進行加密的“趣事”還是干過的,當時還很樂在其中。),甚至一開始連Crypto++的名字都沒有聽過,被BS了之后,就開始了Crypto++的入門探索過程。
最初,大概知道了要了解兩大類算法中的幾個算法——對稱加密算法:DES、AES(后來因為人品好的緣故也了解了下非對稱加密算法RSA,后文會詳述何謂“人品好”);散列算法(需要通過Hash運算):SHA-256。
起初,筆者以為這樣的知名算法在網上應該有很多現成的例子。筆者比較懶,對于自己不熟悉的東西,總希望找捷徑,直接找別人現(在已經寫)成可(編譯運)行的代碼然后施展ctrl + C,ctrl + V算法(咳,什么算法,是大法!!!)。
However,發覺網上的例子不是稀缺,就是只有代碼沒有解釋。筆者覺得很難忍受這樣的“莫名其妙”(奇怪的
閱讀全文
posted @
2011-08-05 16:37 日需博客 閱讀(1796) |
評論 (0) 編輯
Crypto++ 的使用方法
摘要: 從官方網下載的Crypto++庫是開源的,只有源文件和幾個可以生成lib、dll的工程,以及一個使用的例子工程,因此希望生成自己建的工程能使用的SDK。
1.編譯鏈接生成cryptlib.lib
打開cryptest.sln,分別在Debug模式和Release模式下編譯鏈接cryptlib工程,成功后會在cryptopp54\\Win32\\output\\debug和cryptopp54\\Win32\\output\\release下生成cryptlib.lib文件。作者當時用的是Crypto++ 5.4版本。
Build時方法是,右擊Solution Explorer中的cryptlib工程,單擊build。第一次時它會報錯說“d:\\cryptopp54\\adler32.cpp(3) : fatal error C1033: cannot open program database ’d:\\cryptopp54\\win32\\cryptlib\\debug\\vc80.idb’”,沒關系,按這樣再build一次,就
閱讀全文
posted @
2011-08-05 16:24 日需博客 閱讀(5277) |
評論 (0) 編輯
人生第一篇博客文章,寫寫VAssistX的VA Snippet Editor
摘要: 首先,先上效果代碼
1//********************************************************************
2// TESTCLASS.H 文件注釋
3// 文件名 : TESTCLASS.H
4// 文件路徑: J:\CODING\TEST\C++解疑\CYUYAN\
5// 作者 : RIPPLE
6// 創建時間: 2009/10/3 11:02
7// 文件描述:
8//*********************************************************************
9#ifndef _H_TESTCLASS_H_
10#define _H_TESTCLASS_H_
11
12#include
13using namespace std; 閱讀全文
posted @
2011-08-05 09:12 日需博客 閱讀(1738) |
評論 (0) 編輯
Windows完成端口與Linux epoll技術簡介
摘要: WINDOWS完成端口編程
1、基本概念
2、WINDOWS完成端口的特點
3、完成端口(Completion Ports )相關數據結構和創建
4、完成端口線程的工作原理
5、Windows完成端口的實例代碼
Linux的EPoll模型
1、為什么select落后
2、內核中提高I/O性能的新方法epoll
3、epoll的優點
4、epoll的工作模式
5、epoll的使用方法
6、Linux下EPOll編程實例
總結
閱讀全文
posted @
2011-08-04 13:49 日需博客 閱讀(370) |
評論 (0) 編輯
C++類型轉換總結
摘要: C風格的強制類型轉換(Type Cast)很簡單,不管什么類型的轉換統統是:
TYPE b = (TYPE)a。
C++風格的類型轉換提供了4種類型轉換操作符來應對不同場合的應用。
const_cast,字面上理解就是去const屬性。
static_cast,命名上理解是靜態類型轉換。如int轉換成char。
dynamic_cast,命名上理解是動態類型轉換。如子類和父類之間的多態類型轉換。
reinterpreter_cast,僅僅重新解釋類型,但沒有進行二進制的轉換。
4種類型轉換的格式,如:TYPE B = static_cast(TYPE)(a)。
閱讀全文
posted @
2011-08-03 13:57 日需博客 閱讀(249) |
評論 (0) 編輯
Gina.dll登錄功能的注冊表實現
摘要: 本文主要介紹Gina.dll登錄功能的注冊表實現,在前文中,我們知道WlxLoggedOutSAS與WlxActivateUserShell函數分為登錄之前的處理函數與登錄之后的處理函數。于是,我們就可以結合注冊表的一些功能來實現Gina.dll的登錄。
閱讀全文
posted @
2011-08-03 13:42 日需博客 閱讀(1048) |
評論 (0) 編輯
Windows開機登錄認證與Gina DLL
摘要: Windows的開機密碼認證模塊一般是由Gina DLL完成的。在NT/2000中交互式的登陸支持是由WinLogon調用GINA DLL實現的,GINA DLL提供了一個交互式的界面為用戶登陸提供認證請求。
閱讀全文
posted @
2011-08-03 13:41 日需博客 閱讀(1323) |
評論 (0) 編輯
Kompex SQLite Wrapper for C++ - Examples
摘要: Here you can see some examples.
It shows a part of the functionality of the wrapper and how you can use it.
You can find more examples in the example application (contained in download package).
1. open a database and create a statement instance for sql queries/statements
// open database
Kompex::SQLiteDatabase *pDatabase = new Kompex::SQLiteDatabase("test.db", SQLITE_OPEN_READWRITE, 0);
// create statement instance for sql queries/statements
Kompex::SQLite
閱讀全文
posted @
2011-08-02 14:12 日需博客 閱讀(1737) |
評論 (1) 編輯
利用Google API快速生成QR二維碼
摘要: 昨天發現很多網站都貼上了自己網址的二維碼,我覺得這樣挺有意思的,就研究了一下怎樣生成二維碼。結果發現,現在來說生成二維碼最簡單的方法是使用Google Chart API來實現,再次膜拜Google大神~
Google Chart API是一套可以讓你在線生成報表圖的系統,通過URL你可以得到各種圖表。
舉個例子:你在瀏覽器中輸入
https://chart.googleapis.com/chart?cht=qr&chs=200×200&choe=UTF-8&chld=L|4&chl=http://Codeup.org
你將得到一個內容為本站網址的QR二維圖。
回過頭來我們再介紹一下二維碼……好像這話放的位置不對,你們湊活著看吧……
閱讀全文
posted @
2011-07-27 00:16 日需博客 閱讀(5371) |
評論 (3) 編輯