【技术大乱炖】
仙道菜
北京航空航天大学研究生;
关注:计算机视觉、机器学习等;
邮箱:cyh@buaa.edu.cn
展开
-
开源搜索引擎Lucene---学习笔记(1) 信息检索技术(Information retrieval)中的基本理论
Lucene是一种非常优秀的开源搜索引擎。因为最近在看《Lucene 3.0 原理与代码分析完整版》,所以决定写下学习笔记。大家可以去看看其作者的博客: http://forfuture1978.javaeye.com1、什么是全文检索(Full-text Search): 先建立索引,再对索引进行搜索的过程就叫全文检索(原创 2012-09-01 15:10:41 · 3147 阅读 · 1 评论 -
C#--- 之"委托、事件" 面面观
委托与事件,它们的应用非常广泛,为了便于复习,我特地将它们总结了一下。 一、委托委托,通俗的讲,就是‘方法’的容器。是用来存放和调用方法用的。 下面这个例子,简单的介绍一下委托的用法: public delegate void SayHi_Delegate(string name);这就是一个委托,任何形如 void **(string **);的原创 2012-09-15 00:16:56 · 1459 阅读 · 0 评论 -
将vim打造成IDE编程环境
昨天晚上,看了吴垠的这篇文章--手把手教你把Vim改装成一个IDE编程环境(图文),看的时候,各种激动啊!!!以前听过有牛人将vim打造成了IDE环境,总算是找到了具体的实现步骤----想大牛吴垠致敬~~ 这里贴出几张图片,让大家眼馋眼馋: 1、下面这张图:左上:工程文件左下:变量名右 :文本文件 2、可以直接显示出结构体或类的成员!!!原创 2012-11-10 16:23:24 · 2850 阅读 · 0 评论 -
开源搜索引擎Lucene.Net---学习笔记(2) 使用Lucene.Net源码搜索
下面先通过Lucene.Net简单的例子,来看看Lucene.Net建立索引、查询的操作过程。 1、索引的建立: 索引的建立,我把其方法直接放到了Program.Main()中:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace原创 2012-09-10 22:40:47 · 2400 阅读 · 0 评论 -
《C++Primer Plus》学习笔记(二)
1、OOP的本质设计并扩展自己的数据类型。2、C++ 命名规则:1、只能使用字母,数字和下划线_ (-、—等均不是)。2、第一个字符不能为数字。3、区分大小写4、以两个下划线 或者 下划线加大些字母打头的名称被保留给(编译器和使用的资源)使用。以下划线开头 被保留用作全局标识符。5、名称长度没有限制。3、符号常量——预处理器方式#defi原创 2012-07-15 02:24:30 · 1204 阅读 · 0 评论 -
lucene.Net--学习笔记(3)---C#'网络爬虫' 源码详解
我们知道,要想对数据进行检索,最基本也是最重要的东西就是数据本身了。本章介绍如何获取大量的网页信息。相信大家都听说过‘网络爬虫’,我们正是通过这种方式搜集网页的。 一、下面首先简单的介绍一下网络爬虫的基本结构: 简单的讲就是:1、从一个url开始搜索,将这个页面上的所有链接保存,放入一个queue中。2、接着从这个queue中取出一个url,重复第1步 这个原创 2012-09-17 23:45:05 · 5963 阅读 · 17 评论 -
【Accelerated C++】重点回顾(续)
看了刘未鹏推荐过的C++入门经典《Accelerated C++》,读此书的过程中一再感叹“大师就是大师,他可以很轻松的把东西的本质呈现在你面前”,这本书采用了现实中与我们很接近的学生成绩信息管理这一例子,层层推进,一步一步引出C++中的知识点,根据任务提出解决方案,让你感受到C++中一些设计的比要性。一下是我读此书时做的笔记,谨用于记忆。ps:这篇是第二篇,之前的笔记原创 2012-12-09 23:21:31 · 8416 阅读 · 0 评论 -
使用automake来写makefile
将设现在的文件目录project是这样的: main.c src inc 在src中放入所有的.c文件:add.c 、hello.c。在inc中放入所有的.h文件:add.h 、hello.h。使用automake来写makefile的流程如下: 1、写makefile.am 有原创 2012-09-29 01:10:58 · 2417 阅读 · 0 评论 -
《C++Primer Plus》学习笔记(五)
1、逻辑表达式1、||操作符是一个顺序点(sequence point)。先修改左侧的值,再对右侧的值进行判断。如:i++ 先将i++ 再判断i == j;2、&&操作符的优先级低于关系操作符。2、简单的文件输入、输出假设有如下范例输入行: 38.5 19.21、char ch; cin >> ch这里存储的不是3,而是字符3的编码。2、原创 2012-07-15 02:27:41 · 1281 阅读 · 0 评论 -
《C++Primer Plus》学习笔记(三)
1、字符串char dog [4] = {'A','B','C','D'}; //not a string char cat[5] = {'A','B','C','D','\0'}; //is a stringchar shirt = "S"; //illegal type mismatch因为”s“ 表示的是地址。Strlen():不把空字符计算在内。2、每次原创 2012-07-15 02:26:12 · 1708 阅读 · 0 评论 -
关于C# this 指针
This关键字的另一种用法是使用一项名为构造函数链的技术来设计类。当定义了多个构造函数时,这个设计模式就会很有用。由于构造函数通常会验证传入的参数来强制各种业务规则,所以在类的构造函数集合中经常会找到冗余的验证逻辑。考虑如下更新后的Motocycle:Class Motorcycle{Public int driverIntensity;Public string driverNa转载 2012-07-15 02:39:51 · 1472 阅读 · 0 评论 -
《C++Primer Plus》学习笔记(四)
1、递增和递减操作符同一条语句对同一个值不要使用多次的递增递减操作。如:x = 2*x++ *(3 - ++x); 在不同的操作系统中将产生不同的结果(规则“修改后使用”和“使用后修改”可能变得模糊不清)。2、副作用点跟顺序点副作用点(side effect):指的是就算表达式时对某些东西(如存储在变量中的值)进行了修改顺序点(sequence point):是原创 2012-07-15 02:27:00 · 1450 阅读 · 0 评论 -
C#备份数据库时,出现,无法打开设备'**.bak'。出现操作系统错误5
C#备份数据库的时候,出现:无法打开设备'**.bak'。出现操作系统错误5这是因为NTFS格式设置了权限,限制了或者没有开放SQL的写入权限。解决方法:1、检查要备份到的地址。 (注意)路径包括了**.bak,而不只是文件夹的路径。2、更改需要备份到的文件夹的权限。到你要备份的文件夹 属性-->安全-->看下"组或用户"是否包涵Authenti原创 2012-08-28 19:40:39 · 2873 阅读 · 0 评论 -
《C++Primer Plus》学习笔记(七)
1、C++内联函数1、C++内联函数的编译代码与其他程序代码“内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联函数,程序无需跳到另一个位置处执行代码,然后再跳回来。因此,函数的运行速度比常规函数稍快,但代价是需要更多的内存。如果函数在10个不同的地方调用同一个内联函数,则该程序将包含该函数10个代码拷贝。2、操作如下:1、函数声明前加上inline;原创 2012-07-15 02:28:49 · 1297 阅读 · 0 评论 -
Cocos2d-x 的3D游戏制作官方教程(中文翻译)
Cocos2d-X 从版本3开始,已经将3D一些特性添加到了Cocos2d-x里面。因为3D游戏是一个巨大的市场,所以,为了方便您进行3D游戏的开发,Cocos2d-x向您提供了所有你开发3D游戏时所需要的特性。或许对你而言,3D开发是一个新的领域,这里有一些软件、工具是你所需要了解了。原创 2015-05-13 23:02:46 · 9087 阅读 · 2 评论 -
【Accelerated C++】重点回顾
看了刘未鹏推荐过的C++入门经典《Accelerated C++》,读此书的过程中一再感叹“大师就是大师,他可以很轻松的把东西的本质呈现在你面前”,这本书采用了现实中与我们很接近的学生成绩信息管理这一例子,层层推进,一步一步引出C++中的知识点,根据任务提出解决方案,让你感受到C++中一些设计的比要性。一下是我读此书时做的笔记,谨用于记忆。第一章、使用字符串1、为什么需要缓原创 2012-11-29 15:56:52 · 3243 阅读 · 2 评论 -
《C++Primer Plus》学习笔记(六)
1、定义函数1、C++对于返回值有一定的限制:不能是数组,但可以是其他任何类型——整数、浮点数、指针,甚至可以是结构和对象(虽然不能直接返回数组,但是将数组作为结构或对象部分来返回)。2、函数如何返回值的?函数通过返回值到指定的CPU寄存器或内存单元中来将其返回。随后,调用程序将查看该内存单元。调用函数是通过函数原型的定义得知该内存单元存储的数据类型。2、函数原原创 2012-07-15 02:28:14 · 1815 阅读 · 0 评论 -
《C++Primer Plus》学习笔记(一)
1、函数头(作为接口)函数头描述函数与调用它的函数头之间的接口。如main():该函数头描述的是main()和操作系统之间的接口。int main()的返回值(退出值)给谁?答:返回给操作系统。2、C++ 预处理器C++和C一样,也使用了一种预处理器,该程序在进行编译之前对源文件进行处理。如:#include该编译原创 2012-07-15 02:23:01 · 1175 阅读 · 0 评论 -
C#恢复数据库之后,出现错误transport-level error has occurred when sending the request to the server
当操作了数据库的恢复时,继续其他操作的时候,系统跑出一个错误:transport-level error has occurred when sending the request to the server这个情况是通常是因为SQL Server遇到了一些Issues而不得不去刷新所有的连接,但是ADO.net仍然认为这些连接是有效的,而其实,可能在使用的过程中,某些连接早已失效原创 2012-08-28 19:42:00 · 2734 阅读 · 0 评论 -
并行编程中的“锁”难题
在并行程序中,锁的使用会主要会引发两类难题:一类是诸如死锁、活锁等引起的多线程Bug;另一类是由锁竞争引起的性能瓶颈。本文将介绍并行编程中因为锁引发的这两类难题及其解决方案。1. 用锁来防止数据竞跑在进行并行编程时,我们常常需要使用锁来保护共享变量,以防止多个线程同时对该变量进行更新时产生数据竞跑(Data Race)。所谓数据竞跑,是指当两个(或多个)线程同时对某个共享变量进行操作,且这转载 2012-08-30 13:16:17 · 1200 阅读 · 0 评论 -
从编译ffmpeg/examples,进而了解pkg-config
在编译ffmpeg/doc/example的时候,发现该目录下只有一些.C文件和makefile,于是,很自然的输入:make。期待成功编译的结果,然而却报出了很多错误,主要错误如下:Package lib* was not found in the pkg-config search path.Perhaps you should add the directory cont原创 2012-10-03 22:01:47 · 11626 阅读 · 0 评论 -
C#--属性三两事
在介绍属性之前,我想问问各位有经验的大牛,属性的作用这么多,被外部访问的字段是不是都需要将它设为属性?C#中的属性,体现了C#作为面向对象语言的封装性。它避免了外部类字段的直接访问、使得代码的安全性得到了加强。属性与字段的区别: 属性是逻辑字段;属性是字段的扩展,源于字段; 属性并不占用实际的内存,字段占内存位置及空间。 属性可以原创 2012-09-13 21:49:14 · 2178 阅读 · 1 评论 -
【Python多进程库】一个函数让你设置CPU数和线程数
使用multicpu之后,你需要一个函数,就可以定义你程序运行时所需的CPU数量和每个CPU占用的线程数量。重点是,代码只有60行不到,你可以很轻松的阅读源码。原创 2015-10-21 23:59:20 · 12295 阅读 · 1 评论