技術(shù)文章
C++11中的Move語(yǔ)義和右值引用
摘要:
C++一直致力于生成快速的程序。不幸的是,直到C++11之前,這里一直有一個(gè)降低C++程序速度的頑癥:臨時(shí)變量的創(chuàng)建。有時(shí)這些臨時(shí)變量可以被編譯器優(yōu)化(例如返回值優(yōu)化),但是這并不總是可行的,通常這會(huì)導(dǎo)致高昂的對(duì)象復(fù)制成本。我說(shuō)的是怎么回事呢?
閱讀全文
藝術(shù)簽名制作工具v1.0
摘要: 可在線制作藝術(shù)簽名。目前托管在新浪云上,地址:http://godsignature.sinaapp.com
閱讀全文
使用memc-nginx和srcache-nginx模塊構(gòu)建高效透明的緩存機(jī)制
摘要: 為了提高性能,幾乎所有互聯(lián)網(wǎng)應(yīng)用都有緩存機(jī)制,其中Memcache是使用非常廣泛的一個(gè)分布式緩存系統(tǒng)。眾所周知,LAMP是非常經(jīng)典的Web架構(gòu)方式,但是隨著Nginx的成熟,越來(lái)越多的系統(tǒng)開始轉(zhuǎn)型為L(zhǎng)NMP(Linux+Nginx+MySQL+PHP with fpm),這是因?yàn)镹ginx采用基于事件機(jī)制的I/O多路復(fù)用思想設(shè)計(jì),在高并發(fā)情況下其性能遠(yuǎn)遠(yuǎn)優(yōu)于默認(rèn)采用prefork模式的Apache,另外,相對(duì)于Apache,Nginx更輕量,同時(shí)擁有大量?jī)?yōu)秀的擴(kuò)展模塊,使得在Nginx上可以實(shí)現(xiàn)一些美妙的功能。
閱讀全文
VNC遠(yuǎn)程管理Linux服務(wù)器安全指導(dǎo)
摘要: 在開源領(lǐng)域,遠(yuǎn)程遙控技術(shù)的代表就是VNC了。VNC(Virtual Network Computer,虛擬網(wǎng)絡(luò)計(jì)算機(jī))是一套由AT&T實(shí)驗(yàn)室開發(fā)的可操控遠(yuǎn)程計(jì)算機(jī)的軟件。根據(jù)主控端與被控端的不同,VNC軟件可以分為兩個(gè)部分,分別為VNC Server與VNC viewer。前者是安裝在被控制端上,而后者被安裝在主控端上。VNC軟件不僅是開源的,而且是跨平臺(tái)的。有不少系統(tǒng)管理員喜歡在Windows平臺(tái)上使用這個(gè)VNC來(lái)作為遠(yuǎn)程管理Linux服務(wù)器或者客戶端的工具。
閱讀全文
我們的網(wǎng)站壓力究竟在哪里
摘要: 目前網(wǎng)站架構(gòu)一般分成負(fù)載均衡層、WEB層和數(shù)據(jù)庫(kù)層,我其實(shí)一般還會(huì)多加一層,即文件服務(wù)器層,這樣我們?cè)诤竺娴挠懻撨^(guò)程中,我們可以依次對(duì)這四層進(jìn)行討論;這里為了更具有說(shuō)服力,我將用三個(gè)并發(fā)較大的生產(chǎn)環(huán)境來(lái)說(shuō)明下,一個(gè)是我現(xiàn)在維護(hù)的電子商務(wù)網(wǎng)站(并發(fā)最大值2000,日PV500萬(wàn)左右,此并發(fā)并不是總這么高的,只是最高峰是有2900,下面的網(wǎng)站類似)、我的一拍網(wǎng)網(wǎng)站(并發(fā)最大值500,日PV50萬(wàn)左右)、以前維護(hù)的大型CDN廣告網(wǎng)站(并發(fā)最大值5000,日PV5000萬(wàn)左右)。
閱讀全文
使用iptables實(shí)現(xiàn)NAT轉(zhuǎn)發(fā)功能
摘要: 本文案例中,我們假設(shè)有一家ISP提供園區(qū)Internet接入服務(wù),為了方便管理,該ISP分配給園區(qū)用戶的IP地址都是私網(wǎng)IP,通過(guò)該私網(wǎng)IP用戶無(wú)法向外發(fā)布信息。但是,部分用戶要求建立自己的WWW服務(wù)器對(duì)外發(fā)布信息。
我們可以在防火墻的外部網(wǎng)卡上綁定多個(gè)合法IP地址,然后通過(guò)ip映射使發(fā)給其中某一個(gè)IP地址的包轉(zhuǎn)發(fā)至內(nèi)部某一用戶的WWW服務(wù)器上,然后再將該內(nèi)部WWW服務(wù)器響應(yīng)包偽裝成該合法IP發(fā)出的包。
閱讀全文
細(xì)數(shù)那些運(yùn)行在微軟平臺(tái)上的NoSQL數(shù)據(jù)庫(kù)
摘要: 從可查詢的分布式解決方案,如MongoDB,到簡(jiǎn)單的分布式Key/Value存儲(chǔ)解決方案,如Cassandra。此外,還有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。但目前僅有少量的NoSQL項(xiàng)目支持在Windows平臺(tái)上運(yùn)行,如果要說(shuō)到生產(chǎn)應(yīng)用那就更少了。
閱讀全文
談?wù)剬?duì)于企業(yè)級(jí)系統(tǒng)架構(gòu)的理解
摘要: 在我們剛開始學(xué)習(xí)架構(gòu)的時(shí)候,首先會(huì)想到分層的概念,分層架構(gòu)比較經(jīng)典的是三層架構(gòu),那么,什么是三層架構(gòu)呢?它包括表現(xiàn)層,業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層;而對(duì)于一個(gè)新手來(lái)說(shuō),從抽象意義上的三層架構(gòu),邏輯上就劃分為三個(gè)層。
閱讀全文
C# HttpWebRequest 通用類(二)
摘要: using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace HttpWeb
{
///
/// Http操作類
/// 閱讀全文
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.
閱讀全文
C#三種模擬自動(dòng)登錄和提交POST信息的實(shí)現(xiàn)方法
摘要: 網(wǎng)頁(yè)自動(dòng)登錄(提交Post內(nèi)容)的用途很多,如驗(yàn)證身份、程序升級(jí)、網(wǎng)絡(luò)投票等,以下是用C#實(shí)現(xiàn)的方法。
網(wǎng)頁(yè)自動(dòng)登錄和提交POST信息的核心就是分析網(wǎng)頁(yè)的源代碼(HTML),在C#中,可以用來(lái)提取網(wǎng)頁(yè)HTML的組件比較多,常用的用WebBrowser、WebClient、HttpWebRequest這三個(gè)。以下就分別用這三種方法來(lái)實(shí)現(xiàn):
閱讀全文
ASP.NET 也可以做得很好 2.XSLT初識(shí) 在ASP.NET中使用XSLT
摘要: 大家說(shuō)我說(shuō)的跟.net一點(diǎn)關(guān)系都沒(méi)有,可是第一篇我也說(shuō)了啊,僅僅是一個(gè)HELLO的例子啊。現(xiàn)在哪個(gè)人不忙啊。只能一點(diǎn)一點(diǎn)的寫了。。
好了,廢話少說(shuō),我們先看看實(shí)際的情況,然后根據(jù)情況來(lái)寫一個(gè)小小的例子吧,這次有Demo下載嘍。。。
現(xiàn)實(shí)項(xiàng)目中的情況:
閱讀全文
SLT 入門--實(shí)際應(yīng)用
摘要:
把上面的代碼加入web.config文件的appSettings節(jié)點(diǎn)中,別問(wèn)為什么...
為Request寫個(gè)擴(kuò)展:
閱讀全文
ASP.NET 也可以做得很好 1.XSLT初識(shí) 一個(gè)HELLO例子
摘要: XSL 指擴(kuò)展樣式表語(yǔ)言(EXtensible Stylesheet Language)
萬(wàn)維網(wǎng)聯(lián)盟開始發(fā)展 XSL 的起因是由于對(duì)基于 XML 的樣式表語(yǔ)言的需求。
XSLT 指 XSL 轉(zhuǎn)換。XSLT 將 XML 文檔轉(zhuǎn)換為其他文檔,比如 XHTML
概念不多講,這里附上W3C的網(wǎng)址 ,希望您一定要去看看!
老規(guī)矩,先寫出個(gè)能運(yùn)行的程序再說(shuō)。
既然XSLT是將XML文檔轉(zhuǎn)換為其它文檔,那么我們就先建立一個(gè)XML文檔吧。(名為:HelloHtml.xml)
閱讀全文
ASP.NET性能優(yōu)化之構(gòu)建自定義文件緩存
摘要: ASP.NET的輸出緩存(即靜態(tài)HTML)在.NET4.0前一直是基于內(nèi)存的。這意味著如果我們的站點(diǎn)含有大量的緩存,則很容易消耗掉本機(jī)內(nèi)存。現(xiàn)在,借助于.NET4.0中的OutputCacheProvider,我們可以有多種選擇創(chuàng)建自己的緩存。如,我們可以把HTML輸出緩存存儲(chǔ)到memcached分布式集群服務(wù)器,或者M(jìn)ongoDB中(一種常用的面向文檔數(shù)據(jù)庫(kù),不妨閱讀本篇http://msdn.microsoft.com/zh-cn/magazine/gg650661.aspx)。當(dāng)然,我們也可以把緩存作為文件存儲(chǔ)到硬盤上,考慮到可擴(kuò)展性,這是一種最廉價(jià)的做法,本文就是介紹如果構(gòu)建自定義文件緩存。
閱讀全文
單點(diǎn)登錄在項(xiàng)目中的實(shí)現(xiàn)
摘要: 最近在做一個(gè)登錄功能,糾結(jié)了好幾天,一直在找一個(gè)能優(yōu)雅的實(shí)現(xiàn)單點(diǎn)登錄的功能。博客園有看到某人寫了又臭又長(zhǎng)的八股文式的文章,沒(méi)看到有價(jià)值的東西。
其實(shí)單點(diǎn)登錄最終要解決的是多個(gè)不同域名間共享cookie的問(wèn)題。但是要在不同域名間共享cookie是一件很困難的事情,要在某個(gè)域名下面種cookie就必須訪問(wèn)該
域名。網(wǎng)上有很多方法,看到的有動(dòng)態(tài)創(chuàng)建iframe實(shí)現(xiàn),在iframe里面訪問(wèn)某個(gè)域名的頁(yè)面種下cookie,該方法需要寫一些js代碼,寫起來(lái)有點(diǎn)累,所以我最終
選擇了用頁(yè)面跳轉(zhuǎn)來(lái)實(shí)現(xiàn),想不到效果比我預(yù)期的好很多,瀏覽器幾乎看不出來(lái)有跳轉(zhuǎn)的痕跡。
閱讀全文
教你如何在博客里加入分享功能——分享插件(HRshare)
摘要: 下面我要用到的插件是我自己寫的,關(guān)于插件地址是:jquery.HooRay——自己做的一個(gè)jquery常用工具插件。關(guān)于分享插件的制作流程我也寫了篇文章,有興趣的可以看下:自己寫的一個(gè)分享按鈕的插件(可擴(kuò)展,內(nèi)附開發(fā)制作流程)
閑話不多說(shuō),進(jìn)入正題吧,大家可以看下文章最后是不是有一排分享的按鈕,那個(gè)就是最終的效果了,當(dāng)然不止那一種效果,一共有以下幾種效果,分別是:
閱讀全文
.NET中的加密算法總結(jié)(自定義加密Helper類)
摘要: 相信許多人都使用過(guò).NET提供的加密算法,而且在使用的過(guò)程我們必須了解每種加密算法的特點(diǎn)(對(duì)稱或非對(duì)稱,密鑰長(zhǎng)度和初始化向量等等)。我也看到過(guò)很多人寫過(guò).NET中加密算法總結(jié),但我發(fā)現(xiàn)個(gè)別存在一些問(wèn)題,很多人喜歡羅列每種加密算法的具體實(shí)現(xiàn),假設(shè)我們要求實(shí)現(xiàn)AES和Triple DES加密算法,的確可以很多地分別給出它們的具體實(shí)現(xiàn)。
那我們真的有必要給出每個(gè)加密算法的具體實(shí)現(xiàn)嗎?而且這樣的設(shè)計(jì)不符合OOP設(shè)計(jì)思想,最重要的是我們要維護(hù)多個(gè)加密算法啊!OK接下來(lái)讓我們實(shí)行一個(gè)可擴(kuò)展和好維護(hù)的加密算法Helper。
閱讀全文
CentOS 6下搭建Apache+MySQL+PHP+SSL
摘要: 網(wǎng)上的一些文章都已經(jīng)比較老了,現(xiàn)在版本高了之后,其實(shí)配置是很省力的(不考慮什么負(fù)載的話)
分享全過(guò)程,出了文中提到的安裝epel rpmfushion 源指令不同外,其他的過(guò)程也適用與Centos 5
1.安裝CentOS 6 ,可以選擇最小安裝,也可以安裝桌面
2.升級(jí)系統(tǒng)
yum update
閱讀全文
破解郵箱密碼實(shí)例
摘要: 本文介紹了如何破解E-mail郵箱以及利用獲取的一個(gè)配置文件來(lái)實(shí)施滲透。在無(wú)法直接進(jìn)行攻擊時(shí),郵件木馬攻擊以及郵箱賬號(hào)破解攻擊無(wú)疑是一種最佳選擇。郵件木馬攻擊成功有兩個(gè)必要條件:一是木馬不被查殺,二是用戶打開郵件并執(zhí)行了隱藏在郵件中的木馬程序。郵件木馬攻擊隨著網(wǎng)民對(duì)網(wǎng)絡(luò)安全意識(shí)的提高,其攻擊成功率將會(huì)大大降低,而郵箱賬號(hào)破解在破解成功后,可以很方便地了解用戶的行為、獲取郵件中的資料以及獲取郵箱主人的個(gè)人信息等。郵箱賬號(hào)破解一般有三種情況:一是用戶自己忘記了郵箱密碼,通過(guò)郵件服務(wù)器的“忘記密碼”模塊無(wú)法重新設(shè)置或者獲取原密碼;二是出于商業(yè)競(jìng)爭(zhēng)或者好奇,想知道對(duì)方郵件中內(nèi)容,因此對(duì)郵箱賬號(hào)進(jìn)行破解;三是專業(yè)性攻擊,攻擊郵箱獲取資料、掌握個(gè)人動(dòng)態(tài)以及獲取個(gè)人信息等。
閱讀全文
Fedora 15上做主從、雙主模型的集群
摘要: Fedora 15上做雙主模型的集群
拓?fù)淙缦滤荆?
----------- ----------
| HA1 |____| HA2 |
|__________| |________|
HA1:
IP:192.168.1.78/24
HA2:
IP:192.168.1.151/24
VIP:192.168.1.110
閱讀全文
八種主流NoSQL數(shù)據(jù)庫(kù)系統(tǒng)對(duì)比
摘要: 雖然SQL數(shù)據(jù)庫(kù)是非常有用的工具,但經(jīng)歷了15年的一支獨(dú)秀之后壟斷即將被打破。這只是時(shí)間問(wèn)題:被迫使用關(guān)系數(shù)據(jù)庫(kù),但最終發(fā)現(xiàn)不能適應(yīng)需求的情況不勝枚舉。
但是NoSQL數(shù)據(jù)庫(kù)之間的不同,遠(yuǎn)超過(guò)兩 SQL數(shù)據(jù)庫(kù)之間的差別。這意味著軟件架構(gòu)師更應(yīng)該在項(xiàng)目開始時(shí)就選擇好一個(gè)適合的 NoSQL數(shù)據(jù)庫(kù)。針對(duì)這種情況,這里對(duì) Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase進(jìn)行了比較:
(編注1:NoSQL:是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ)。現(xiàn)今的計(jì)算機(jī)體系結(jié)構(gòu)在數(shù)據(jù)存儲(chǔ)方面要求具 備龐大的水平擴(kuò) 展性,而NoSQL致力于改變這一現(xiàn)狀。目前Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型數(shù)據(jù)庫(kù)。 參見(jiàn)NoSQL詞條。)
閱讀全文
SQLite3 C/C++ 開發(fā)接口簡(jiǎn)介
摘要: 1.0 總覽
SQLite3是SQLite一個(gè)全新的版本,它雖然是在SQLite 2.8.13的代碼基礎(chǔ)之上開發(fā)的,但是使用了和之前的版本不兼容的數(shù)據(jù)庫(kù)格式和API. SQLite3是為了滿足以下的需求而開發(fā)的:
l 支持UTF-16編碼.
l 用戶自定義的文本排序方法.
l 可以對(duì)BLOBs字段建立索引.
因此為了支持這些特性我改變了數(shù)據(jù)庫(kù)的格式,建立了一個(gè)與之前版本不兼容的3.0版. 至于其他的兼容性的改變,例如全新的API等等,都將在理論介紹之后向你說(shuō)明,這樣可以使你最快的一次性擺脫兼容性問(wèn)題.
閱讀全文
用SELinux保護(hù)你的Apache
摘要: 你的Web服務(wù)器確實(shí)有可能遭受攻擊,但是SELinux可以用來(lái)確保你的網(wǎng)站不用承受真正的傷害。
你可以運(yùn)用SELinux類型來(lái)創(chuàng)建一個(gè)確切定義:一個(gè)服務(wù)可以做什么和它在哪里完成要做的事情。默認(rèn)情況下,httpd_sys_content類型被設(shè)為/var/www,它規(guī)定httpd進(jìn)程可以在該目錄中工作。如果攻擊者破壞了Apache Web服務(wù)器并嘗試在別處寫入,就像紅帽和Fedora以及CentOS等相似Linux版本的默認(rèn)/tmp,你需要知道你正在處理什么。如果你配置Apache來(lái)為/data目錄中的內(nèi)容服務(wù),SELinux也會(huì)默認(rèn)地防止這種情況。
由于這些默認(rèn)設(shè)置可能造成復(fù)雜的情況,很多Linux管理員關(guān)閉SELinux。雖然關(guān)閉SELinux的確讓你的服務(wù)器提供服務(wù)時(shí)更容易,但是它還是增加了安全風(fēng)險(xiǎn)。
閱讀全文
如何用iptables實(shí)現(xiàn)Linux下強(qiáng)大的NAT功能
摘要: 本文主要介紹如何使用iptbales實(shí)現(xiàn)linux2.4下的強(qiáng)大的NAT功能。關(guān)于iptables的詳細(xì)語(yǔ)法請(qǐng)參考“用iptales實(shí)現(xiàn)包過(guò)慮型防火墻”一文。需要申明的是,本文絕對(duì)不是 NAT-HOWTO的簡(jiǎn)單重復(fù)或是中文版,在整個(gè)的敘述過(guò)程中,作者都在試圖用自己的語(yǔ)言來(lái)表達(dá)自己的理解,自己的思想。
閱讀全文
完美安裝CentOS + Nginx + PHP-FPM + MySQL
摘要: PHP 5.3.1
MySQL 5.0.89
Nginx 0.8.33 或 0.7.65 (可選)
現(xiàn)在,我們可以快速全自動(dòng)搞定 CentOS + Nginx + PHP-FPM + MySQL 的安裝了
這個(gè)可比網(wǎng)上流傳的什么一鍵安裝包要好得多,強(qiáng)烈推薦此法安裝,適合所有菜鳥和高手
我服務(wù)器上全用的源代碼編譯安裝,也好不到哪去,還很費(fèi)勁
閱讀全文
C#.net連接Mysql的類庫(kù)
摘要: 微軟的visual studio沒(méi)有自帶連接Mysql的驅(qū)動(dòng),要去網(wǎng)上下載一個(gè)mysql-connector-net-6.4.3驅(qū)動(dòng),然后安裝就可以使用。
下面是我封裝好的連接數(shù)據(jù)庫(kù)的類,直接調(diào)用即可。
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;
閱讀全文
GDI+ for VC6 MFC
摘要: 五年前,筆者曾在C#中使用GDI+開發(fā)程序,對(duì)其頗有好感。這一段時(shí)間,在使用VC6作圖時(shí),深切感會(huì)到使用GDI的種種不便,不比GDI+好用。沉迷于VC6的高效與輕便,不想只為了一個(gè)GDI+而被迫安裝沉甸甸的.Net,便產(chǎn)生了一個(gè)疑問(wèn),難道GDI+只能用于.Net中嗎?
訪問(wèn)微軟的MSDN網(wǎng)站后,隨即解開了此謎。于是便有了此文 – 如何在VC6 MFC中使用GDI+。
閱讀全文
用C#制作印章
摘要: 制作印章來(lái)說(shuō),主要是如何讓字均勻的顯示在弧線段上,那么一般的印章要么以圓或者橢圓為底圖,不過(guò)這兩者的算法大致相同,為了方便說(shuō)明,如下就用相對(duì)簡(jiǎn)單的圓來(lái)舉例說(shuō)明,如果需要做橢圓的話,可以在我的基礎(chǔ)上進(jìn)行擴(kuò)展,因?yàn)楹诵乃惴ㄊ且粯拥模鄬?duì)于圓來(lái)說(shuō),橢圓求弧長(zhǎng)以及各個(gè)字符的位置,這兩點(diǎn)相對(duì)麻煩些,但是這兩者都可找到相應(yīng)的數(shù)學(xué)公式。
閱讀全文
ARP欺騙 C++實(shí)現(xiàn)
摘要: 前段時(shí)間我們學(xué)校的的網(wǎng)絡(luò)總是出現(xiàn)掉線的問(wèn)題,后來(lái)說(shuō)是ARP欺騙,要我們用ANTIARPSNIFFER。小弟不才,
也想搞清楚這個(gè)ARP欺騙到底是個(gè)什么東西。于是在網(wǎng)上查了點(diǎn)資料,看了點(diǎn)文檔。也算是DIY了一個(gè)出來(lái),而
且可以不被ANTIARPSNIFFER發(fā)現(xiàn)的讓對(duì)方主機(jī)在網(wǎng)絡(luò)中死掉。于是把這個(gè)小東西貼出來(lái)讓大家一起把玩一下。
在下菜鳥一只,還請(qǐng)高手指教
參考資料:《TCP/IP詳解II:實(shí)現(xiàn)》,《WINPCAP 3.0 DOC》,《交換網(wǎng)絡(luò)中的嗅探和ARP欺騙》(一位叫RefDom
的大哥很久前寫的帖子)
閱讀全文
Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open處理
摘要: 之前已經(jīng)在freebsd主機(jī)登陸到dreamhost.com的ssh密鑰實(shí)驗(yàn)是成功的,參考網(wǎng)址
http://wiki.dreamhost.com/SSH#Passwordless_Login
但今天嘗試把密鑰放到debian系統(tǒng)的/root/.ssh/id_rsa中,然后在debian的終端界面輸入
ssh xxxx@xxxx.dreamhost.com
這樣就出現(xiàn) Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open. 等錯(cuò)誤顯示了,經(jīng)google查詢下,原來(lái)只要把權(quán)限降到0600就ok了
輸入命令
chmod 0600 /root/.ssh/id_rsa
然后再
ssh xxxx@xxxx.dreamhost.com
這樣就可以密鑰登陸了.
閱讀全文
C#中使用XSLT文件將XML文檔轉(zhuǎn)換為HTML
摘要: 1.創(chuàng)建XSLT文件,定義格式;
2.在C#中使用XslCompiledTransform對(duì)象的load()方法加載XSLT文件;
3.使用Transform()方法轉(zhuǎn)換XML文檔。
閱讀全文
Windows平臺(tái)下的內(nèi)存管理
摘要: 1. Windows平臺(tái)下主要的內(nèi)存管理途徑
申請(qǐng)
釋放
new
delete
malloc
free
CoTaskMemAlloc
CoTaskMemFree
IMalloc::alloc
IMalloc/free
GlobalAlloc
GlobalFree
LocalAlloc
LocalFree
HeapAlloc
HeapFree
VirtualAlloc
VirtualFree
閱讀全文
malloc,new,VirtualAlloc,HeapAlloc性能(速度)比較
摘要: 這里比較的VC++編譯的C++代碼中的性能
我用的是VC6.0測(cè)試的
就不介紹這幾個(gè)的用法了
我寫了一段簡(jiǎn)單的測(cè)試代碼
測(cè)試結(jié)果是:
malloc:390
new:391
VirtualAlloc:454
HeapAlloc:47
閱讀全文
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."
閱讀全文
IIS Express 的配置、使用和注意點(diǎn)
摘要: VS2010的SP1引入了IIS Express支持,這是值得高興的事情……因?yàn)樽詭У腁SP.net Development Server只能單站點(diǎn)運(yùn)行、不能設(shè)置虛擬目錄、多少個(gè)項(xiàng)目就會(huì)出現(xiàn)多少個(gè)等等等等巴拉巴拉,我對(duì)它恨之入骨,總之,很長(zhǎng)一段時(shí)間內(nèi)我進(jìn)行開發(fā)實(shí)際上都是用IIS的。但是用IIS有不方便的地方,就是必須開啟IIS Admin服務(wù),而且VS必須以管理員模式運(yùn)行才能正常打開項(xiàng)目和調(diào)試。每次都以管理員模式啟動(dòng)已經(jīng)比較麻煩了,比較郁悶的是,以管理員模式啟動(dòng)的vs處于特權(quán)狀態(tài),所以程序間的文件拖放就失效了……換句話說(shuō),如果我想從資源管理器中直接拖一個(gè)文件到vs中打開,就辦不到了。
閱讀全文
LNMP安裝配置-linux Nginx/Mysql/Php/Phpmyadmin(CentOS vps)
摘要: 只在vps服務(wù)器搭建vpn線路,顯然有些浪費(fèi)。比如還可以在Linux的vps服務(wù)器上安裝lnmp網(wǎng)站服務(wù)器。
LNMP是指在linux系統(tǒng)下安裝Nginx服務(wù)器、Mysql數(shù)據(jù)庫(kù)、Php (Phpmyadmin)。安裝LNMP過(guò)程很簡(jiǎn)單,另外也有LNMP一鍵安裝包,因此甚至不需要進(jìn)行一些LNMP配置,網(wǎng)站服務(wù)器就可以工作了。但是lnmp一鍵安裝的缺點(diǎn)是如果安裝過(guò)程出現(xiàn)了問(wèn)題,配置起來(lái)就困難很多了。
為什么不用lamp,即沒(méi)有采用Apache服務(wù)器的原因是該VPS配置性能不高,跑apache服務(wù)器將會(huì)非常吃力。而Nginx是一個(gè)高性能的http、反向代理服務(wù)器,Nginx的特點(diǎn)就是輕便和高性能,非常適合低配置的VPS搭建網(wǎng)站服務(wù)器。下面是遠(yuǎn)方博客在CentOS系統(tǒng)下安裝和配置LNMP、安裝FTP服務(wù)器vsftpd、并搭建wordpress博客網(wǎng)站的過(guò)程,記錄供備忘并交流。
閱讀全文
VPS構(gòu)建web服務(wù)器介紹
摘要: 廉價(jià)的VPS都不約而同的會(huì)提供Linux的系統(tǒng),并在控制面板上也會(huì)提供各種Linux系統(tǒng)的Reinstall,比說(shuō)說(shuō)經(jīng)典的Redhat、Debian、Centos、Fedora 還有Ubuntu。選擇什么系統(tǒng)的話,還是因人而異,很多玩Linux服務(wù)器的老手都會(huì)推薦Centos,因?yàn)橄鄬?duì)比入手簡(jiǎn)單特別是國(guó)內(nèi)有關(guān)的中文教材比較多,個(gè)人比較喜歡Debian,Debian占用資源很少,穩(wěn)定性也不錯(cuò),可惜國(guó)內(nèi)有關(guān)的教程不多。。而至于源于Debian 的 Ubuntu,雖然在使用上比Debian方便多,但是也存在很多問(wèn)題,桌面版本的系統(tǒng)使用起來(lái)相當(dāng)?shù)氖娣褪欠?wù)器系統(tǒng)的使用,個(gè)人不傾向Ubuntu。理論上64位的系統(tǒng)要比32位的要快,但是在廉價(jià)VPS母機(jī)的有限硬件條件下,其實(shí)差別甚微。
閱讀全文
git命令快速參考
摘要: 1. 創(chuàng)建一個(gè)新的版本庫(kù)
從一個(gè)壓縮包中創(chuàng)建:
$ tar xzf project.tar.gz
$ cd project
$ git init #Initialized empty Git repository in .git/
$ git add .
$ git commit
閱讀全文
免費(fèi)申請(qǐng)ssl證書,web服務(wù)器適用
摘要: 越來(lái)越多的企業(yè)需要使用SSL進(jìn)行加密的web訪問(wèn)服務(wù),如:webmail。
對(duì)于中小企業(yè)來(lái)說(shuō),如何能夠擁有由正式的授權(quán)機(jī)構(gòu)簽發(fā)的證書,避免手動(dòng)確認(rèn)自簽署證書的尷尬,而又能省去每年購(gòu)買SSL證書服務(wù)的費(fèi)用呢?
閱讀全文
VC++下使用ADO編寫數(shù)據(jù)庫(kù)程序
摘要: 準(zhǔn)備:
(1)、引入ADO類
#import "c:\program files\common files\system\ado\msado15.dll"
no_namespace
rename ("EOF", "adoEOF")
(2)、初始化COM
在MFC中可以用AfxOleInit();非MFC環(huán)境中用:
CoInitialize(NULL);
CoUnInitialize();
閱讀全文
GUI程序也能使用控制臺(tái)窗口
摘要: 很多時(shí)候,調(diào)試GUI程序是很不方便的,通常的做法是使用MessageBox,但是作為一個(gè)模態(tài)窗口,它經(jīng)常產(chǎn)生不必要的消息,比如killfocus, setfocus或者paint,從而影響調(diào)試的執(zhí)行過(guò)程。當(dāng)然,使用vc的調(diào)試器也不錯(cuò),但是這樣也很容易造成窗口切換從而產(chǎn)生干擾消息。
因此,如果能像在控制臺(tái)程序里那樣使用cin/cout對(duì)象或printf族函數(shù),會(huì)使得調(diào)試過(guò)程方便得多。而通常,windows是不會(huì)為GUI程序產(chǎn)生單獨(dú)的命令行窗口的。所以我們是看不到使用標(biāo)準(zhǔn)輸入輸出流輸出的東西的。既然系統(tǒng)不提供,那就自己動(dòng)手“造”出一個(gè)來(lái)吧!
下面是一個(gè)簡(jiǎn)單的控制臺(tái)窗口對(duì)象,它可以為你的程序創(chuàng)建一個(gè)命令行窗口,并將stdout,stdin和stderr重定向到這個(gè)命令行窗口。在程序中建立一個(gè)這樣的對(duì)象之后,就可以直接使用cin/cout/*printf來(lái)操縱這個(gè)新的命令行窗口了!5 f8 I$ l4 o- b3 L, m% h
閱讀全文
位運(yùn)算的用處搜集
摘要: 位運(yùn)算應(yīng)用口訣
清零取反要用與,某位置一可用或
若要取反和交換,輕輕松松用異或
移位運(yùn)算
要點(diǎn) 1 它們都是雙目運(yùn)算符,兩個(gè)運(yùn)算分量都是整形,結(jié)果也是整形。
2 " < <" 左移:右邊空出的位上補(bǔ)0,左邊的位將從字頭擠掉,其值相當(dāng)于乘2。
3 ">>"右移:右邊的位被擠掉。對(duì)于左邊移出的空位,如果是正數(shù)則空位補(bǔ)0,若為負(fù)數(shù),可能補(bǔ)0或補(bǔ)1,這取決于所用的計(jì)算機(jī)系統(tǒng)。
4 ">>>"運(yùn)算符,右邊的位被擠掉,對(duì)于左邊移出的空位一概補(bǔ)上0。
閱讀全文
整合 Google 開源 C++ 代碼
摘要: Google 開源了很多優(yōu)秀的 C++ 程序庫(kù),本文介紹如何將其中幾個(gè)整合到一起。
本文涉及的 Google 庫(kù)有:
gflags - 命令行參數(shù)解析。可以完全用命令行來(lái)配置應(yīng)用程序,省去配置文件。
gtest - C++ 單元測(cè)試框架
gmock - C++ 單元測(cè)試中用到的 mock
glog - 日志庫(kù)
protobuf - 高效的網(wǎng)絡(luò)協(xié)議格式
還有第三方的 libunwind 和 zlib。
閱讀全文
linux下automake用法
摘要: 作為L(zhǎng)inux下的程序開發(fā)人員,大家一定都遇到過(guò)Makefile,用make命令來(lái)編譯自己寫的程序確實(shí)是很方便。一般情況下,大家都是手工寫一個(gè)簡(jiǎn)單Makefile,如果要想寫出一個(gè)符合自由軟件慣例的Makefile就不那么容易了。
在本文中,將給大家介紹如何使用 autoconf和automake兩個(gè)工具來(lái)幫助我們自動(dòng)地生成符合自由軟件慣例的Makefile,這樣就可以象常見(jiàn)的GNU程序一樣,只要使用“./configure”,“make”,“make install”就可以把程序安裝到Linux系統(tǒng)中去了。這將特別適合想做開放源代碼軟件的程序開發(fā)人員,又或如果你只是自己寫些小的Toy程序,那么這個(gè)文章對(duì)你也會(huì)有很大的幫助。
閱讀全文
介紹LuaPlus: 好用的Lua For C++擴(kuò)展
摘要: LuaPlus是Lua的C++增強(qiáng),也就是說(shuō),LuaPlus本身就是在Lua的源碼上進(jìn)行增強(qiáng)得來(lái)的。用它與C++進(jìn)行合作,是比較好的一個(gè)選擇。
LuaPlus目前版本為:LuaPlus for Lua 5.01 Distribution Build 1080 (February 28, 2004)。大家可以到http://luaplus.org/ 站點(diǎn)下載:
源碼 (http://wwhiz.com/LuaPlus/LuaPlus50_Build1081.zip)
目標(biāo)碼 (http://wwhiz.com/LuaPlus/LuaPlus50_Build1081_Win32Binaries.zip)
介紹LuaPlus: 好用的Lua For C++擴(kuò)展 沐楓網(wǎng)志
閱讀全文
json格式入門和總結(jié)
摘要: 數(shù)據(jù)交換的格式,從結(jié)構(gòu)上看,所有的數(shù)據(jù)(data)最終都可以分解成三種類型:
第一種類型是標(biāo)量(scalar),也就是一個(gè)單獨(dú)的字符串(string)或數(shù)字(numbers),比如"北京"這個(gè)單獨(dú)的詞。
第二種類型是序列(sequence),也就是若干個(gè)相關(guān)的數(shù)據(jù)按照一定順序并列在一起,又叫做數(shù)組(array)或列表(List),比如"北京,上海"。
第三種類型是映射(mapping),也就是一個(gè)名/值對(duì)(Name/value),即數(shù)據(jù)有一個(gè)名稱,還有一個(gè)與之相對(duì)應(yīng)的值,這又稱作散列(hash)或字典(dictionary),比如"首都:北京"。
閱讀全文
修改IAT實(shí)現(xiàn)本進(jìn)程API HOOK
摘要: //修改IAT實(shí)現(xiàn)本進(jìn)程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 閱讀全文
經(jīng)典編程書籍(C++, 網(wǎng)絡(luò), Windows, Linux)
摘要: 兩年前就給自己列出了一個(gè)讀書清單,但進(jìn)展緩慢,看的經(jīng)典書籍仍然寥寥可數(shù),慚愧中......
現(xiàn)在將這個(gè)書單重新修改,一方面鞭策自己學(xué)習(xí),另一方面也表達(dá)對(duì)大牛們有如滔滔江水般的敬仰之意。
書單中列舉的都是相關(guān)領(lǐng)域的經(jīng)典書籍,必讀之作。此書單的編輯參考了很多網(wǎng)站,包括一些名家的推薦,例如侯捷,孟巖,榮耀,潘愛(ài)民等等,在此也向這些前輩表示感謝。^_^
閱讀全文
LPTSTR、LPCSTR、LPCTSTR、LPSTR的來(lái)源及意義
摘要: UNICODE:它是用兩個(gè)字節(jié)表示一個(gè)字符的方法。比如字符'A'在ASCII下面是一個(gè)字符,可'A'在UNICODE下面是兩個(gè)字符,高字符用0填充,而且漢字'程'在ASCII下面是兩個(gè)字節(jié),而在UNICODE下仍舊是兩個(gè)字節(jié)。UNICODE的用處就是定長(zhǎng)表示世界文字,據(jù)統(tǒng)計(jì),用兩個(gè)字節(jié)可以編碼現(xiàn)存的所有文字而沒(méi)有二義。
MBCS,它是多字節(jié)字符集,它是不定長(zhǎng)表示世界文字的編碼。MBCS表示英文字母時(shí)就和ASCII一樣(這也是我們?nèi)菀装袽BCS和ASCII搞混的原因),但表示其他文字時(shí)就需要用多字節(jié)。
WINDOWS下面的程序設(shè)計(jì)可以支持MBCS和UNICODE兩種編碼的字符串,具體用那種就看你定義了MBCS宏還是UNICODE宏。MBCS宏對(duì)應(yīng)的字符串指針是char*也就是LPSTR,UNICODE對(duì)應(yīng)的指針是unsigned short*也就是LPWSTR,為了寫程序方便微軟定義了類型LPTSTR,在MBCS下他就是char*, 在UNICODE下它是unsigned char*,這樣你就可以重定義一個(gè)宏進(jìn)行不同字符集的轉(zhuǎn)換了。
閱讀全文
使用KeepAlive檢測(cè)網(wǎng)絡(luò)異常
摘要: #include "netinet/tcp.h"
int keepAlive = 1; //設(shè)定KeepAlive
int keepIdle = 30; //開始首次KeepAlive探測(cè)前的TCP空閉時(shí)間
int keepInterval = 30; //兩次KeepAlive探測(cè)間的時(shí)間間隔
int keepCount = 3; //判定斷開前的KeepAlive探測(cè)次數(shù)
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
閱讀全文
Crypto++入門學(xué)習(xí)筆記(DES、AES、RSA、SHA-256)
摘要: 背景(只是個(gè)人感想,技術(shù)上不對(duì)后面的內(nèi)容構(gòu)成知識(shí)性障礙,可以skip):
最近,基于某些原因和需要,筆者需要去了解一下Crypto++庫(kù),然后對(duì)一些數(shù)據(jù)進(jìn)行一些加密解密的操作。
筆者之前沒(méi)接觸過(guò)任何加密解密方面的知識(shí)(當(dāng)然,把每個(gè)字符的ASCII值加1之流對(duì)明文進(jìn)行加密的“趣事”還是干過(guò)的,當(dāng)時(shí)還很樂(lè)在其中。),甚至一開始連Crypto++的名字都沒(méi)有聽過(guò),被BS了之后,就開始了Crypto++的入門探索過(guò)程。
最初,大概知道了要了解兩大類算法中的幾個(gè)算法——對(duì)稱加密算法:DES、AES(后來(lái)因?yàn)槿似泛玫木壒室擦私饬讼路菍?duì)稱加密算法RSA,后文會(huì)詳述何謂“人品好”);散列算法(需要通過(guò)Hash運(yùn)算):SHA-256。
起初,筆者以為這樣的知名算法在網(wǎng)上應(yīng)該有很多現(xiàn)成的例子。筆者比較懶,對(duì)于自己不熟悉的東西,總希望找捷徑,直接找別人現(xiàn)(在已經(jīng)寫)成可(編譯運(yùn))行的代碼然后施展ctrl + C,ctrl + V算法(咳,什么算法,是大法!!!)。
However,發(fā)覺(jué)網(wǎng)上的例子不是稀缺,就是只有代碼沒(méi)有解釋。筆者覺(jué)得很難忍受這樣的“莫名其妙”(奇怪的
閱讀全文
Crypto++ 的使用方法
摘要: 從官方網(wǎng)下載的Crypto++庫(kù)是開源的,只有源文件和幾個(gè)可以生成lib、dll的工程,以及一個(gè)使用的例子工程,因此希望生成自己建的工程能使用的SDK。
1.編譯鏈接生成cryptlib.lib
打開cryptest.sln,分別在Debug模式和Release模式下編譯鏈接cryptlib工程,成功后會(huì)在cryptopp54\\Win32\\output\\debug和cryptopp54\\Win32\\output\\release下生成cryptlib.lib文件。作者當(dāng)時(shí)用的是Crypto++ 5.4版本。
Build時(shí)方法是,右擊Solution Explorer中的cryptlib工程,單擊build。第一次時(shí)它會(huì)報(bào)錯(cuò)說(shuō)“d:\\cryptopp54\\adler32.cpp(3) : fatal error C1033: cannot open program database ’d:\\cryptopp54\\win32\\cryptlib\\debug\\vc80.idb’”,沒(méi)關(guān)系,按這樣再build一次,就
閱讀全文
人生第一篇博客文章,寫寫VAssistX的VA Snippet Editor
摘要: 首先,先上效果代碼
1//********************************************************************
2// TESTCLASS.H 文件注釋
3// 文件名 : TESTCLASS.H
4// 文件路徑: J:\CODING\TEST\C++解疑\CYUYAN\
5// 作者 : RIPPLE
6// 創(chuàng)建時(shí)間: 2009/10/3 11:02
7// 文件描述:
8//*********************************************************************
9#ifndef _H_TESTCLASS_H_
10#define _H_TESTCLASS_H_
11
12#include
13using namespace std; 閱讀全文
Windows完成端口與Linux epoll技術(shù)簡(jiǎn)介
摘要: WINDOWS完成端口編程
1、基本概念
2、WINDOWS完成端口的特點(diǎn)
3、完成端口(Completion Ports )相關(guān)數(shù)據(jù)結(jié)構(gòu)和創(chuàng)建
4、完成端口線程的工作原理
5、Windows完成端口的實(shí)例代碼
Linux的EPoll模型
1、為什么select落后
2、內(nèi)核中提高I/O性能的新方法epoll
3、epoll的優(yōu)點(diǎn)
4、epoll的工作模式
5、epoll的使用方法
6、Linux下EPOll編程實(shí)例
總結(jié)
閱讀全文
C++類型轉(zhuǎn)換總結(jié)
摘要: C風(fēng)格的強(qiáng)制類型轉(zhuǎn)換(Type Cast)很簡(jiǎn)單,不管什么類型的轉(zhuǎn)換統(tǒng)統(tǒng)是:
TYPE b = (TYPE)a。
C++風(fēng)格的類型轉(zhuǎn)換提供了4種類型轉(zhuǎn)換操作符來(lái)應(yīng)對(duì)不同場(chǎng)合的應(yīng)用。
const_cast,字面上理解就是去const屬性。
static_cast,命名上理解是靜態(tài)類型轉(zhuǎn)換。如int轉(zhuǎn)換成char。
dynamic_cast,命名上理解是動(dòng)態(tài)類型轉(zhuǎn)換。如子類和父類之間的多態(tài)類型轉(zhuǎn)換。
reinterpreter_cast,僅僅重新解釋類型,但沒(méi)有進(jìn)行二進(jìn)制的轉(zhuǎn)換。
4種類型轉(zhuǎn)換的格式,如:TYPE B = static_cast(TYPE)(a)。
閱讀全文
Gina.dll登錄功能的注冊(cè)表實(shí)現(xiàn)
摘要: 本文主要介紹Gina.dll登錄功能的注冊(cè)表實(shí)現(xiàn),在前文中,我們知道WlxLoggedOutSAS與WlxActivateUserShell函數(shù)分為登錄之前的處理函數(shù)與登錄之后的處理函數(shù)。于是,我們就可以結(jié)合注冊(cè)表的一些功能來(lái)實(shí)現(xiàn)Gina.dll的登錄。
閱讀全文
Windows開機(jī)登錄認(rèn)證與Gina DLL
摘要: Windows的開機(jī)密碼認(rèn)證模塊一般是由Gina DLL完成的。在NT/2000中交互式的登陸支持是由WinLogon調(diào)用GINA DLL實(shí)現(xiàn)的,GINA DLL提供了一個(gè)交互式的界面為用戶登陸提供認(rèn)證請(qǐng)求。
閱讀全文
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
閱讀全文
利用Google API快速生成QR二維碼
摘要: 昨天發(fā)現(xiàn)很多網(wǎng)站都貼上了自己網(wǎng)址的二維碼,我覺(jué)得這樣挺有意思的,就研究了一下怎樣生成二維碼。結(jié)果發(fā)現(xiàn),現(xiàn)在來(lái)說(shuō)生成二維碼最簡(jiǎn)單的方法是使用Google Chart API來(lái)實(shí)現(xiàn),再次膜拜Google大神~
Google Chart API是一套可以讓你在線生成報(bào)表圖的系統(tǒng),通過(guò)URL你可以得到各種圖表。
舉個(gè)例子:你在瀏覽器中輸入
https://chart.googleapis.com/chart?cht=qr&chs=200×200&choe=UTF-8&chld=L|4&chl=http://Codeup.org
你將得到一個(gè)內(nèi)容為本站網(wǎng)址的QR二維圖。
回過(guò)頭來(lái)我們?cè)俳榻B一下二維碼……好像這話放的位置不對(duì),你們湊活著看吧……
閱讀全文