自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编码无悔

主站:www.codelast.com 人生就像最优化算法中的求解过程,努力寻找全局最优解,绘出最漂亮准确的曲线

  • 博客(115)
  • 收藏
  • 关注

原创 Google Protocol Buffers中文教程

注:这些是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的CSDN博客:http://blog.csdn.net/learnhard/)请参看如下几个链接:Style Guide中文翻译(Google Protocol Buffers中文教程)Language Guide中文翻译(Google Protocol Buffers中文教程)Style Guide中文翻译(Google Protocol Buffers中文教程)

2010-09-04 22:24:00 10738

原创 [原创]LM算法的实现

完整文章请查看这里。转载请注明出处:本文来自learnhard的博客:http://www.codelast.com/ & http://blog.csdn.net/learnhard/,并保持文章的完整性。 LM算法可用于解决非线性最小二乘问题。多用于曲线拟合等场合。LM算法的实现并不难,这里不讨论使用MATLAB等工具直接得到结果的过程,使用那些工具对于算法编程能力的提高无任何益处。 LM算法

2007-08-09 15:57:00 20509 6

原创 在WordPress中添加GA统计

GA(Google Analytics)是网站统计的好工具,如果你要对wordpress站点进行GA监测,那么如果你先上GA网站取监测代码、再贴到你的wordpress页面中,并不是一个聪明的办法(我差点就这样做了)。更好的办法是使用Google Analytics for WordPress插件。关于该插件,有下面一段话的介绍:Google Analytics for WordPress is the most complete Google Analytics plugin for WordPress.

2010-09-14 15:07:00 4788

原创 Techniques 中文翻译(Google Protocol Buffers中文教程)

Techniques 技巧注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的CSDN博客:http://blog.csdn.net/learnhard/)·         Streaming Multiple Messages·         Large Data Sets·         Union Types·         Self-describing MessagesThis page describes s

2010-09-09 17:28:00 2664

原创 使shell 命令脱离终端在后台运行

你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,在还没有完成的时候,你断网了,你登录不上远程Linux主机了,那么就会前功尽弃,你非常气愤……在Linux下,如果你要执行的shell命令耗时特别长,并且:(1)你的网络不稳定,随时可能断网;或者(2)你在执行了shell命令之后必须要关闭终端软件(例如SecureCRT)或计算机,那么你就需要以脱离终端的方式在后台运行这个shell命令。方法如下:(1)输入命令:nohup 你的shell命令 &(2

2010-09-08 19:54:00 3821

原创 安装JDK和Tomcat的步骤(Linux)

本文陈述的是在32位Linux系统下安装JDK和Tomcat的步骤。先确定服务器版本,命令为:getconf WORD_BIT如果返回32则表示是32位机器,如果返回64则表示是64位机器,注意下载JDK和Tomcat的时候千万不要弄错了版本。先安装JDK:(1)下载JDK(例如jdk-6u21-linux-i586.bin):https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFi

2010-09-07 17:56:00 3408

原创 Style Guide中文翻译(Google Protocol Buffers中文教程)

Style Guide 风格指南注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的CSDN博客:http://blog.csdn.net/learnhard/)This document provides a style guide for .proto files. By following these conventions, you'll make your protocol buffer message definit

2010-09-01 14:16:00 1742

原创 Language Guide中文翻译(Google Protocol Buffers中文教程)

Language Guide注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的CSDN博客:http://blog.csdn.net/learnhard/)·         Defining A Message Type·         Scalar Value Types·         Optional And Default Values·         Enumerations·         Using O

2010-08-31 13:56:00 2244

原创 Protocol Buffer Basics: C++中文翻译(Google Protocol Buffers中文教程)

注:这是本人的翻译,可能不准确,可能有错误,但是基本上可以理解,希望能对大家有所帮助!(转载请注明出处:本文来自learnhard的CSDN博客:http://blog.csdn.net/learnhard/)Protocol Buffer Basics: C++(Protocol Buffer基础:C++篇)This tutorial provides a basic C++ programmer's introduction to working with protocol buffers. By wa

2010-08-28 20:50:00 6252 4

原创 Google Protocol Buffers安装、使用二三事

先说一句题外话:与Google Protocol Buffers类似的项目还有:源自Facebook的Thrift。     本文只陈述Linux下的情况。 (1)首先下载得到文件protobuf-2.3.0.tar.gz。 在Linux下,解压,然后请务必仔细看README.txt,文档的一开头就是说明在Unix下安装的注意事项。 安装过程为: $ ./configure $ make $ make check $ make install 注意第3步有个比较奇怪

2010-08-26 21:45:00 2420

原创 看看Google Test项目的SVN目录结构(创建自己的项目时可以参考)

<br />看看Google Test项目的SVN目录结构(创建自己的项目时可以参考):<br /> <br />

2010-08-26 11:37:00 1888

原创 logging libraries / 一些写日志的库

(1)google-glogLogging library for C++项目链接:http://code.google.com/p/google-glog/文档:http://google-glog.googlecode.com/svn/trunk/doc/glog.html(2)loglite(依赖于boost,一个号称轻量级的库竟然依赖于boost,非常雷人吧)A small logging library项目链接:http://code.google.com/p/loglite/

2010-08-20 17:44:00 1391

原创 SecureCRT全屏切换的快捷键

如果你不小心按了什么键使得SecureCRT进入全屏模式的话,可能会发现找不到按钮可以让它切换到非全屏模式,很恼人。请按 Alt + Enter 切换到正常模式。

2010-08-20 14:41:00 5063 1

原创 在Ubuntu下用tar包安装MySQL

<br />在Ubuntu上安装MySQL Server,由于不是RedHat,所以MySQL官网上的rpm包都不能用,有两个包可用:mysql-5.1.49-linux-i686-icc-glibc23.tar.gz 和 mysql-5.1.49-linux-i686-glibc23.tar.gz ,这两个包有什么区别?官网上没有写,我也没查到。我安装的时候用的是mysql-5.1.49-linux-i686-icc-glibc23.tar.gz。<br />下面的安装方法的步骤中,有些可能很奇怪(为什么

2010-08-08 23:39:00 5853 1

转载 mysql_store_result()与mysql_use_result()的区别

函数mysql_store_result()与mysql_use_result()类似,它们都有连接处理程序参数,并返回结果集。但实际上两者间的 区别还是很大的。两个函数之间首要的区别在于从服务器上检索结果集的行。当调用时,mysql_store_result()立即检索所有的行,而 mysql_use_result()启动查询,但实际上并未获取任何行,mysql_store_result()假设随后会调用 mysql_fetch_row()检索记录。这些行检索的不同方法引起两者在其他方面的不同。本节加以比

2010-08-06 00:47:00 2608

转载 [转]C++中的explicit关键字

<br /><br />c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?<br /> <br />如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:<br />class MyClass<br />{<br />public:<br />MyClass( int num );<br />}<br />....<br />MyC

2010-08-04 11:48:00 568

原创 使用 if (对象名) {...} 来判断一个对象是否“有效”

假设我们有一个class A的对象:A a;那么如何可以实现这样的判断:if (a){//......}请看这一篇文章:http://www.artima.com/cppsource/safebool.html最简单的方法就是重载operator bool。

2010-08-04 11:00:00 1507

原创 一些发送Email的C/C++库/软件

spnetkit(无文档,有示例程序): http://code.google.com/p/spnetkit/msmtp:http://msmtp.sourceforge.net/index.htmlLibESMTP:http://www.stafford.uklinux.net/libesmtp/index.htmlPOCO:http://pocoproject.org/index.html

2010-07-31 21:25:00 13819

原创 web服务性能测试工具http_load(Linux平台)

http_load的主页(实在是有点简陋):http://www.acme.com/software/http_load/下载回来一个压缩包,解压出来之后连configure都不用,直接make即可生成可执行程序 http_load(视系统情况不同,可能你需要自己修改Makefile再编译)。注意:make的时候可能会有若干警告,但是可能并不影响使用生成的http_load程序,例如我在自己的机器上make,出现了这些警告:gcc -Wall -O    -c http_load.chttp_load.c:

2010-07-31 20:35:00 1653

转载 [转]十个免费的Web压力测试工具

<br /><br />Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理。根据项目网站的说法,Grinder的 主要目标用户是“理解他们所测代码的人——Grinder不仅仅是带有一组相关响应时间的‘黑盒’测试。由于测试过程可以进行编码——而不是简单地脚本 化,所以程序员能测试应用中内部的各个层次,而不仅仅是通过用户界面测试响应时间。<br /> <br />Py

2010-07-30 17:06:00 733

转载 Linux下shell脚本输出带颜色文字

<br /><br />文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例:<br /> <br />  echo -e "/033[44;37;5m ME /033[0m COOL"<br /> <br />  以上命令设置作用如下:背景色为蓝色,前景色为白色,字体闪烁,输出字符“ME”,然后重新设置屏幕到缺省设置,输出字符 “COOL”。“e”是命令 echo 的一个可选项,它用于激活特殊字符的解析器。“/033”引导非常规字符序列。“m”意味着设置属性然后结束非常规字符序列,这个例子里真正有

2010-07-23 18:56:00 1139

原创 something about Google Test(Google C++ Testing Framework)

先说说cxxtest这个测试框架:用cxxtest来编写测试用例时,我们需要写的只是一个.h文件,在这个文件里include你要测试的类或函数所在的头文件,然后写各种测试函数。与该.h文件对应的.cpp文件是用cxxtest自带的一个脚本cxxtestgen.pl来完成的(脚本调用方法请看cxxtest手册),然后我们就得到了一个.h文件和一个.cpp文件,用gcc/g++编译,得到一个可执行文件,运行此文件,就执行了你所编写的测试用例。使用Google Test作为你的测试框架时,有点不一样:你需要编写一

2010-07-23 15:29:00 1698

原创 something about Google Mock

下载:http://code.google.com/p/googlemock/downloads/list安装:将下载的压缩包解压出来,到解压目录下 ./configure,然后make。注意,这个make不会编译Google Mock自己的测试用例。要编译它们,需要到解压目录下的“make”子目录下,执行 make gmock_test ,然后就会看到该目录下生成了一个可执行文件 gmock_test ,执行这个可执行文件,就可以看到Google Mock测试用例的执行结果(应该是成功的,如果有失败,则应

2010-07-23 11:47:00 3555

转载 一些与C++测试相关的东西

<br />Google C++ Testing Framework:<br />http://code.google.com/p/googletest/<br /> <br />Google C++ Mocking Framework:<br />http://code.google.com/p/googlemock/<br /> <br />Google C++ Mocking Framework使用简介:<br />http://www.cppprog.com/2009/0101/29.html<br

2010-07-22 11:53:00 1046

转载 C++ TR1 和 C++0x

<br />C++ Technical Report 1 (TR1)是ISO/IEC TR 19768, C++ Library Extensions(函式库扩充)的一般名称。TR1是一份文件,内容提出了对C++标准函式库的追加项目。这些追加项目包括了正则表达式、智能指针、哈希表、随机数生成器等。TR1自己并非标准,他是一份草稿文件。然而他所提出的项目很有可能成为下次的官方标准。这份文件的目标在于「为扩充的C++标准函式库建立更为广泛的现成实作品」。<br /> <br />C++ tr1是针对C++标准库

2010-07-22 11:47:00 10495

原创 RHEL 5网络问题:eth0 ... does not seem to be present, delaying initialization

先是设置了静态IP地址,然后在 service network restart 的时候总是提示eth0 “does not seem to be present, delaying initialization”,然后当然也就得不到有效的IP地址。折腾来折腾去,在GUI下用了RHEL自带的网络工具来配置,一进去就看到网卡是inactive的,咦,这是怎么回事?!于是点击“Active”,将该网卡激活,然后再重启系统,又回到了有问题的状态,神奇了!于是再进GUI工具查看,还是inactive的,气死我了。似乎

2010-07-18 14:45:00 1369

原创 在VMware下运行RHEL时,删除共享文件夹里的目录速度慢的问题

在VMware里安装了RHEL,可以设置Windows下的一个文件夹为共享目录(VMware里设置的,而非Linux里设置),然后这个目录就可以很方便地在Linux中的 /mnt/hgfs/ 目录下看到了。发现这样一个现象:有一个程序是运行在这个共享目录下的,并且程序中用system()调用了删除目录(目录下有很多文件)的shell命令 rm -rf,那么这个操作所花的时间就比较长,如果是将同样的目录放置在Linux自己的目录下,这个操作所需的时间就很短。因此,如果你发现你的程序有类似的诡异现象,可以考虑一

2010-07-16 10:37:00 1269

原创 安装emacs 23.2的错误:configure: error: a system implementation of alloca is required

<br />./configure时如果出现此错误,请带上--with-x=no参数,另外,如果还提示跟libXpm之类相关的错误,可以把这些一并禁掉:<br />--with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no<br /> <br />emacs 23.2装好后,对C++自动就有语法高亮,不需要用自己的.emacs配置文件了,挺方便的。但是它的语法高亮不是很全面,也就是不够“多彩”。<br /> 

2010-07-15 19:18:00 979

转载 Ubuntu 10.04下Wine乱码问题(unsolved)

在Ubuntu上安装了Wine后,再安装Windows下的软件,安装向导都是乱码的,找到网上声称的解决办法:彻底解决Ubuntu下wine乱码问题,使用文泉驿字体vi ~ylmf/.wine/system.reg    打开.wine/system.reg(应该在/home/用户名/.wine)     进行编辑    (一定要使用 gedit 或其他支持 gb2312/utf8 编码的编辑器修改这些文件,否则文件中的中文可能变乱码)    搜索: LogPixels     找到的行应该是:[System

2010-07-11 15:15:00 2249

转载 模板类定义时,模板方法定义与声明的分离

<br />C++Primer Plus:<br />“因为模板不是函数,它们不能单独编译,模板必须与特定的模板实例化请求一起使用。为此,最简单的方法是将所有模板信息放在一个头文件中,并在要使用这些模板的文件中包含该头文件。”<br />“如果编译器实现了新的export关键字,则可以将模板方法定义放在一个独立的文件中,条件是每个模板声明都以export开始:<br />……(略)<br />export template <class type><br />Class Stack<br />{<br />

2010-07-10 00:54:00 1382

转载 [转]关于gethostbyname在多线程环境下的阻塞问题

<br /><br />转自:http://read.newbooks.com.cn/info/196629.html<br /> <br />Unix/Linux下的gethostbyname函数常用来向DNS查询一个域名的IP地址。 由于DNS的递归查询,常常会发生gethostbyname函数在查询一个域名时严重超时。而该函数又不能像connect和read等函数那样通过setsockopt或者select函数那样设置超时时间,因此常常成为程序的瓶颈。有人提出一种解决办法是用alarm设置定时信号,如

2010-07-08 09:48:00 1782

原创 LINUX下的线程同步——mutex和读写锁

<br />用mutex保护的代码段,无论读写,一个线程占有时,别的线程都必须等待。<br /> <br />读写锁可以使多个线程同时读取,具体说来如下:<br />当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。<br /><br />当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是如果线程希望以写模式对此锁进行加锁,它必须阻塞直到所有的线程释放锁。<br />通常,当读写锁处于读模式锁住状态时,如果有另外线程试图以写模式加锁,读写锁通常会

2010-07-07 10:51:00 1224

转载 gzip: stdin: decompression OK, trailing garbage ignored

<br />解压一个tar文件时,遇到如下错误:<br />gzip: stdin: decompression OK, trailing garbage ignored<br /> <br />查到CSDN的帖子:<br />http://topic.csdn.net/u/20080103/12/2b006fb3-fb43-41fd-a09f-3530adfe6b8e.html<br /> <br />转过来:<br />“报这样的错通常是因为tar.gz文件的尾部有一串0x00或者0xff,这是由于很多

2010-06-29 17:17:00 17950 2

原创 socket设置超时时间

用socket发送数据前,可以先设置其属性,指定超时时间。超时时间包括接收超时时间和发送超时时间,假设设置接收超时时间为2秒,可以这样:int time_out = 2000; // 2秒setsockopt(sockfd, SOL_SOCKET,SO_RCVTIMEO, (char *)&time_out,sizeof(time_out));但是在程序中,你可能会发现这样设置之后,还是无效,用接收UDP数据时,recvfrom函数仍然阻塞在那里一动不动,为什么?原因是你没有设置socket为非阻塞的。在设

2010-06-28 15:46:00 6264

原创 SIGINT信号导致的usleep无效问题

如果你的程序有多个无限循环的子线程(周期性地完成某一任务),当程序结束的时候,为了能够优雅地退出这些线程,通常都会先在子线程的while()无限循环中,设置一个(全局)运行标志,例如:while (g_flag){/////////////////////////////////////// do something periodically /////////////////////////////////////usleep(1000000);// sleep for 1 second }然后,在主线程

2010-06-28 15:34:00 3471

原创 用shell判断一个字符串是不是全为数字

<br /><br />#!/bin/sh                                                                                                                                                                           <br /> <br /># 该变量就是要判断的变量<br />VAR="1234908"<br /> <br />RET=`e

2010-06-26 20:46:00 5552

原创 浮点数/float/double 是否需要考虑网络字节序的问题

在网络上传输数据时,对整数,我们使用转换为网络字节序的方法,来保证跨平台传输数据时不会出现字节顺序问题导致的解析错误,但是对浮点数,是否也需要这样做?在socket编程中,只有针对整型的字节顺序转换函数,例如htonl(),htons()等,浮点数怎么办?这里先转载一段网上摘取的文章:_______________________________________________________________________________问:为什么在网络编程中,即需要考虑字节序的问题时。对于double、

2010-06-26 17:23:00 15014 2

原创 std::find,std::find_if对类进行查找

STL的find,find_if函数提供了一种对数组、STL容器进行查找的方法。使用该函数,需 #include 我们查找一个list中的数据,通常用find(),例如:using namespace std;int main(){list lst;lst.push_back(10);lst.push_back(20);lst.push_back(30);list::iterator it = find(lst.begin(), lst.end(), 10);// 查找list中是否有元素“10”if (i

2010-06-24 17:17:00 33813 3

原创 UDP报文的覆盖/重叠问题

对一个UDP Server来说,如果同时有几个UDP Client向其发送数据,而UDP Server使用了单线程串行处理的方式来处理收到的UDP报文,那么,会不会在UPD Server还没有处理完一条报文的时候,其他几个Client同时发送了数据,并且这些数据累加在一起(或者重叠在一起),导致UDP Server下一次使用recvfrom函数接收数据的时候,实际上一次接收到的数据是几个Client数据的集合(或者错乱了)呢?答案是:不会。我们可以做下面的实验(这是Linux下的程序)。这是一个UDP Se

2010-06-23 01:04:00 4797

原创 curl的超时时间设置

使用curl时,有两个超时时间:一个是连接超时时间,另一个是最大允许时间。连接超时时间用 --connect-timeout 参数来指定,最大允许时间用 -m 参数来指定。例如:curl --connect-timeout 10 -m 20 "http://XXXXXXX"连接超时的话,出错提示形如:curl: (28) connect() timed out!最大允许时间超时的话,出错提示形如:curl: (28) Operation timed out after 2000 milliseconds w

2010-06-21 14:08:00 26888 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除