自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++的标准输入

从一个简单的问题谈起昨天做题的时候,遇到一个输入是这样的3 4aaaa aaaa aaaabbbbbbb bbbbccc cccccccc^D第一行输入一个整数n,表示接下来句子的数量,和另外一个整数(这里没有作用,只是用来说明下面的一个情况),接下来就是n个句子,每个句子以回车结束。 我的想法是int i, j;cin >> i >> j;while(i--){ string s;

2017-03-31 09:30:47 807

原创 虚表指针的初始化时期

虚表指针是由构造函数初始化的。我这里只分析单一继承的情况,多重继承的情况我还没有弄明白。比如说我现在有两个类A,B, B继承A。如果我创建一个B对象,那么会先调用A的构造函数,再调用B的构造函数。在调用A的构造函数的时候,会将vptr指向A的虚表地址,调用B的构造函数的时候,再重新将vptr指向B的虚表地址。下面我用代码来证明。因为vptr的赋值会在我写的代码之前赋值好,所以我在A, B的构造函数里

2017-03-26 18:28:54 4625 4

原创 Memcache的分布式

memcached是不支持分布式的,要实现分布式的memcached是需要在客户端那边实现的。就是我运行多个memcached实例,在客户端那边注册多个memcached实例,key->value对具体保存在哪个memcached实例由客户端的哈希算法决定。对于固定的memcached实例,任何hash函数都可以比较好的定位到固定的memcached实例,但是现实中,memcached实例有可能由于

2016-12-26 16:41:52 723 2

原创 Memcache源码阅读(8)---多线程

我看的源码版本是1.2.4前面已经将memcached的主要内容讨论完了。这里来说说memcached怎么使用多线程的吧。memcached的线程分为两种,一个主线程,另外的是工作线程。一个主线程负责接收用户的请求,接收到请求后将这个请求递交给多个工作线程的其中一个。每个工作线程都有一个连接队列管理着主线程递交的连接。线程初始化还是从线程的初始化开始。初始化一些锁,然后初始化工作线程,在主线程和工作

2016-12-25 21:06:49 509

原创 Memcache源码阅读(7)---用户输入的处理

我看的源码版本是1.2.4前面我已经说了数据存储,哈希表的管理,内存的管理。还有第二章说到用户的请求时如何到达memcached的,从用户的输入到memcached如何接受到这些输入。那现在我们来分析一下接收到这些输入后,memcached是怎么操作的。要看这部分代码就需要知道memcached有多少个命令。 我从process_command()这个函数里看到的命令有:get,bget,add,

2016-12-25 20:22:26 564

原创 Memcache源码阅读(6)---数据存储

我看的源码版本是1.2.4前面第4篇讲到了memcached怎么去管理内存的,memcached将内存分为不同大小的chunk,不同大小的数据就放到能装下那个数据的最小chunk中。现在我来讲讲数据是以怎样的形式存储在内存中的。item的结构体#define ITEM_key(item) ((char*)&((item)->end[0])) //获得这个item的key#define ITEM_s

2016-12-21 20:02:08 905

原创 Memcache源码阅读(5)---哈希表管理

我看的源码版本是1.2.4memcached使用的哈希函数是用Dr Dobbs的Hash方法,哈希函数的原理我就不说了,它可以将一个k个字节的数据通过转换,变为一个32位的二进制数。它有那样的特性,这k个字节的二进制稍微有一点变动,得到的32为二进制数就会有很大区别。这也就是哈希函数的作用。虽然说他哈希之后是32位,也就是可以分为2^32这么多个哈希桶,如果我们不需要这么大的哈希桶,可以对得到这32

2016-12-18 22:09:18 536

原创 Memcache源码阅读(4)---内存管理

我看的源码版本是1.2.4memcached的存储memcached拥有一个内存池,内存池中的内存分成多种大小的chunk,chunk的大小有一个基础大小(最小的chunk大小,base chunk size),然后后面大小的是以settings.factor为因子不断的增大。比如说base chunk size为64byte, setting.factor = 1.5,那么memcached拥有的

2016-12-18 15:06:35 862

原创 Memcache源码阅读(3)---处理用户输入

我看的源码版本是1.2.4从main函数开始,看看作者怎么初始化,然后再看作者怎么监听连接,怎么接受用户的输入,怎么处理用户的输入。主程序main函数里的一些操作自定义中断处理函数从命令行中获取用户打开memcached的指令值设置core文件初始化资源,统计资源,分配内存屏蔽SIGPIPE信号,因为SIGPIPE的默认处理是中断程序,客户端断开连接后,memcached再往客户端写数据就

2016-12-17 15:45:10 518

原创 Memcache源码阅读(2)---命令行使用

我看的源码版本是1.2.4使用方法编译安装,运行memcached➜ memcached-1.2.4 ./memcachedtelnet 到memcached监听的端口,通过命令行访问memcache➜ ~ telnet 127.0.0.1 11211Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.1

2016-12-17 15:44:21 607

原创 Memcache源码阅读(1)---看源码的心得

心得我这是第一次看源码。说不上什么心得,不过也总结一下~我觉得阅读一个项目的源码,应该是先知道这个项目具体怎么用之后,先估计一下作者的实现,然后再看源码来验证自己的想法。我这次阅读源码是在没有用过这个项目的前提下阅读的,一开始的时候不知道从何读起,于是就去网上找别人的博客,跟着别人的博文一篇一篇的看,然后自己对着源码看。慢慢的自己就开始知道要看什么了,就不再跟着别人的博文的步骤来,自己想知道那个功能

2016-12-17 15:43:18 1226

原创 动态链接与静态链接

静态链接静态链接是将程序需要调用到的符号(函数,变量)都拷贝到可执行文件。 链接器解析符号的时候是这么解释的:扫描一次传入链接器的文件(文件可以是目标文件,可以是归档文件,通过命令行的方式传入,从左到右扫描一遍)。扫描的时候修改三个集合(可重定位目标文件集合E,未解析的符号集合U,已定义的符号集合D)。扫描目标文件的时候,修改集合U和集合D,扫描归档文件就会尝试匹配U中的未定义符号,匹配成功修改U

2016-11-09 10:24:51 655

原创 通过SlimerJS触发键盘事件使优酷视频快进(问题未解决)

需求我想下载视频网站的视频,但是现在的视频网站不提供视频下载的链接。如果我们分析网页的源码,也许也不会发现视频的地址(网页源码太长,我没有分析过,我只是猜测网页中没有视频的链接)。 通过FireFox的FireBug工具,我能获得浏览器向视频服务器下载视频文件的请求,那么我们能不能用程序来获得这些视频文件的地址,然后自动化地下载它呢?答案是肯定的。解决方案我想通过SlimerJS打开一个视频网站,

2016-10-29 17:14:25 1520

原创 为slimerjs添加flash plugins

slimerjs是支持flash插件的。slimerjs的Feature文档。但是slimerjs默认是没有安装flash插件的,需要为火狐浏览器安装flash插件,可是新版的火狐浏览器(49.0)的插件可以安装地址在/usr/lib/firefox-addons/plugins,我是安装到这个位置, 用slimerjs打开优酷视频的时候显示如下: 网上找到的安装方法 slimerjs的f

2016-10-27 11:05:12 1492

原创 获取网页中的视频下载地址(用headless browser)

介绍前面通过两篇文章讲了怎么去抓取HTTP的请求包,包括用代理服务器和抓包的方法。正因为现在的视频网站的视频地址都不是直接在html页面上获取的,视频的获取是通过浏览器动态解释js脚本,再向视频服务器发去视频请求。所以我们通过获取浏览器产生的HTTP请求来获得视频的下载地址。思路直接用firefox我们想到了可以用动态渲染js脚本的程序,最常见的是浏览器。我们通过命令运行firefox http:/

2016-08-02 23:10:20 12368

原创 获取网页中的视频下载地址(利用抓包)

根据上篇文章的思路,我用了监听网卡流量的方式来改进了我的程序。速度得到了大大的提升。思路下图是我用wireshark做的实验。把请求路径中带.mp4, .flv的请求留下来,得到的就是请求的视频资源了。 在wireshark的试验下,我确定了抓包这个方法是可以行得通了,我开始用python编写抓包代码。我用python的pcap和dpkt这两个包来对网卡流量进行了分析。首先就是用pcap来对我的网

2016-07-17 18:43:01 28621 8

原创 获取网页中的视频下载地址(利用proxy_server)

昨天想着在网上下载一个稍微小一点的MP4的视频文件,但是在网上找了半天没找着,现在很多视频网站上的视频都是仅支持在线播放,不提供下载链接的。网上也有一些工具来实现这样的功能,不过我现在没有找到一个好用的。思路我在打开一个MV的时候,我想着去找视频的地址,于是打开了FireFox的Firebug,然后看了一下,发现有一个请求耗时特别长,大小特别大,仔细一看,就是一个mp4文件,当然这个并不是我们所需要

2016-07-13 21:16:06 4078

原创 多线程-生产者消费者模式(2)

多线程,生产者者消费者模式

2016-05-17 18:14:28 477

原创 多线程-生产者消费者模式(1)

多线程,生产消费者模式

2016-05-17 18:12:13 544

原创 cmake链接MySQL分析

下面这份代码,是我从网上找到的添加MySQL头文件和链接文件的CMake代码。# - Find mysqlclient# Find the native MySQL includes and library## MYSQL_INCLUDE_DIR - where to find mysql.h, etc.# MYSQL_LIBRARIES - List of libraries wh

2016-04-03 22:08:09 3425

原创 CMake学习笔记

由于在Linux下写程序的话,需要用到很多库,如果工程较大的话,编译命令可能会很长,将编译的工作交给CMake是一个比较好的选择。我在Linux下用CLion这个IDE,它用到的是CMake管理项目的编译工作。这些笔记是我看网上别人的笔记的时候记下来的。网上那篇笔记《CMake Practice》写得不错。cmake语法变量名大小写相关,文件名大小写也相关,指令大小写无关。指令和变量推荐使用大写。例

2016-04-03 22:05:46 649

原创 [caffe代码] LOG(xxx)日志记录的窥探

看caffe源代码可以知道很多C++方便的日志输出,在C++的语言设计中可能没有将这项功能设计到C++语言中,但是应该有好多第三方的库实现了这些功能,方便开发者的开发,调试。caffe是用了google提供的glog日志信息管理框架。 caffe的使用:covert_mist_data.cpp line84LOG(INFO) << "Opening leveldb " << db_path;这行日

2016-01-26 12:05:59 4672

原创 [caffe代码] convert_imageset.cpp

caffe利用了gtest单元测试框架,虽然对新手来说很难看懂,我也没有仔细去研究gtest的代码,就是大概知道它干什么罢了。主要功能convert_imageset的主要功能就是根据一个图片的(路径,类标)文件创建一个供caffe使用的数据库。使用方法convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME代码分析[FLAGS]那部分应该是一些参数

2016-01-23 21:58:29 1990

原创 Visualizing and Understanding ConvNet论文心得

摘要这篇文章介绍了一种方法去探究卷积神经网络是如何用中间层的特征用作分类,通过特征层的可视化,有利于我们去修正我们的模型的参数。这篇文章的主要内容是:通过特征可视化的方法,修改了网络的结构,提高了Krizhevsky的ImageNet的分类准确率。将ImageNet训练得到的网络应用到Caltech-101和Caltech-256数据集上分类,得到了最好的效果。但是这篇文章没有谈到怎么具体的去

2016-01-23 21:51:48 1128

原创 VS插件-GetSet生成器

Java,C#都有GetSet生成器的方法,而C++却没有这样的工具,即使是现在是有插件做到相应的功能,但是 这个要查一下!!!!!! 现有的插件做得不够方便,所以我们就做了这个插件。 现在来讲讲这个插件的具体思路。从选择文本中选择变量生成其GetSet方法文本分割先将选中的文本分行,我们可以以‘\r\n’来分割。然后对每行进行分割。 我们一般定义变量都是每一行定义一个变量,以分号结束,所以

2015-11-08 20:21:38 2363

原创 参加微软黑客马拉松经历

这次参加黑客马拉松,队伍一共三人,一个是微软俱乐部部长,另一个是一个女生。 我来总结下我的工作吧。我们的作品是一个VS的插件,主要功能是为C++生成Get,Set方法。 VS插件有两种,一个是AddIn,另一个是VSPackage。我使用的是前者,前者是一种旧的技术,微软推荐VS2008以后开发VS插件都使用VS SDK开发VSPackage,由于我看过C++做AddIn的,对AddIn有了一定

2015-11-08 20:20:14 1685

原创 Ubuntu14.04 + opencv2.4.11 + python环境配置

先到opencv的官网下载你需要的opencv版本,下载linux版本的。然后在本机编译,编译对gcc cmake 的版本都是有需求的。根据上面的教程,编译出来并没有cv2.so,那是因为编译的时候cmake的选项没有弄对。cd opencvmkdir releasecd releasecmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE

2015-05-27 20:44:18 6161 1

原创 AR faceDB 由MAT格式转换为图片格式

最近在写人脸识别的毕业论文,需要一些人脸的数据库,知名的人脸数据库有好多!我看的那篇论文它用到3个数据库,分别是ORL,AR,和Yale。下这些数据库都比较难,ORL这个数据库是我以前下过的,我也忘了我是怎么下载的,AR这个数据库我在数据堂这个网站上下的,但是下的是matlab的MAT文件。我想用普通的图片浏览器打开这些图片看看它们都是怎样的,于是就用matlab编了个小程序让这个mat的人脸

2015-03-23 17:10:39 2898 2

原创 修改grub默认启动顺序

修改grub默认启动顺序

2014-10-09 17:10:38 23717 2

原创 重装windows后覆盖掉ubuntu的引导的恢复

重装windows后覆盖掉ubuntu的引导的恢复

2014-10-09 16:39:57 2088

原创 贪心的人类

人就是这样,一旦有好的机会,总是想尽办法得到它。我现在大四,本来打算要

2014-09-03 22:52:06 946

原创 《Hadoop实战》(陆嘉恒著) 读书笔记

大概读了《Hadoop实战》一次。

2014-08-31 22:17:39 2394

原创 《并行程序设计导论》Peter S.Pacheco 读书笔记

最近读了《并行程序设计导论》这本书。感觉这本书讲的东西

2014-08-29 10:13:28 5168

原创 华为机试题-最小公倍数

今天去华为机试,这是我第一次到华为机试,以前yi一共三道题。

2014-07-06 21:17:42 1279

原创 大学迷茫,感兴趣的太多,不知道怎么选择

眨眼间,现在已经是大三下学期了。

2014-07-05 13:03:18 1231

原创 面试题:字符串的空格计数和单词计数

给定一个字符串,统计字符串中的空格数,和单词数

2014-07-01 23:40:07 1460

原创 机器学习-Logistic回归

源代码:

2014-07-01 12:54:03 1078

原创 机器学习-线性回归

%function liner_regression() clc; clear; load('shuju.mat'); %datashuju = shuju; data_x = shuju(:,1); data_y = shuju(:,2); syms theta0 theta1; %h = theta0 + theta1 * da

2014-07-01 12:47:46 1135

原创 网络编程,一个ACSII文件的传输

为了简单,这个程序没有错误处理的逻辑,

2014-06-25 08:26:14 919

原创 二叉树的中序遍历,递归实现与循环实现

继二叉树的先序遍历与后序遍历的递归与循环实现

2014-06-23 23:06:49 1295

AR face database 图片+mat文件

AR人脸数据库的JPG和MAT格式,可以用作人脸识别。

2015-03-23

机器学习-Logistic回归数据

机器学习-Logistic回归数据,只是为了我的博客提供链接下载。

2014-07-01

机器学习-线性回归数据

机器学习-线性回归的测试数据,只是为了我那个博客提供数据而已。

2014-07-01

空空如也

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

TA关注的人

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