自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

每天一小步

  • 博客(277)
  • 资源 (5)
  • 收藏
  • 关注

转载 用Makefile管理Java项目

用Makefile管理Java项目目录用Makefile管理Java项目为什么用makefile我在Java项目中通用的makefile用法TODO:参考为什么用makefilemake是我最喜欢的Unix工具之一,通过makefile,它可以做许多自动化的事 情。我用make管理我的Linux配置文件,管理我的笔记,当然,也用它管理 我的编程项目。最近需要...

2018-10-30 10:49:51 5732

转载 【C++模版之旅】神奇的Traits

介绍traits的文章很多,但感觉大部分文章的说明都很晦涩难懂,把一个并不很复杂的C++模板的应用描述的过于复杂。忍不住想把自己的理解跟大家分享一下,或许我也只是掌握了一点traits的皮毛而已,但也希望这些皮毛能略微抓住你的眼球,带给你一些启发。首先,介绍traits前,回味一下C++的模板及应用,如果你脑海里浮现出的只是为实现一些函数或类的重用的简单模板应用,那我要告诉你,你out了。最近...

2018-10-22 14:06:13 1268

转载 从4行代码看右值引用 [转载]

从4行代码看右值引用概述  右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的:int i = 0;int& j = i;  这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,对右值进行绑定的引用就是右值引用,他的语法是这样的A&&,通过双引号...

2018-10-18 09:29:37 846

转载 Linux命令行下”!”的十个神奇用法

Linux 系统中,“!” 符号或者操作符通常被用做逻辑否定的操作符,同时也通过一些调整和改动命令来从历史记录中找出你需要的命令行。下面演示的命令行在bash Shell中都已经明确检查过可用了。不过我没有在其他的 Shell 解释器下测试过,不过我相信这些命令也不会在其他的解释器下运行。那么现在就让我们学习一下 “!” 这神奇而独特的用法吧!1.从历史记录中使用命令号来运行命令你也许从没...

2018-08-15 17:42:30 1829 1

原创 c++ array模板类使用

目录1、array模板类的定义(1)array模板类的声明(2)容器属性(3)array模板类的说明(4)array模板类头文件2、array模板类的使用(1)Iterators(2)Capacity(3)Element access(4)Modifiers(5)Compare(6)Other本章是对c++ array模板类的知识归纳,讲述了c+...

2018-08-10 17:47:13 65368 1

转载 C++ string的用法和例子 [转载]

 c++ string使用场合string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。同时C++的算法库对string也有着很好的支持,而且string还和c语言的字符串之间有着良好的接口。虽然也有一些弊端,但是瑕不掩瑜。 其中使用的代码多数都是来自cpp官网,因为例子非常全。1、声明和初始化方法想使用st...

2018-08-10 15:22:35 498

转载 高并发下线程安全的单例模式 [转载]

在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后任然是单例的呢?这些问题在看了本文之后都会一一的告诉你答案,赶快来阅读吧!什么是单例模式?在文章开始之前我们还是有必要介绍一下什么是单例模式。单例模式是为确保一个类只有一个实例,并为整个系统提供一个全...

2018-08-10 13:46:37 262

转载 repo使用

repo使用repo使用1、repo介绍1.1 清单库文件介绍1.2 下载repo代码2、repo常用指令2.1 repo init (下载repo并克隆manifest)2.2 repo sync(下载代码)2.3 repo start(创建并切换分支)2.4 repo checkout(切换分支)2.5 repo branches(查看分支)2.6 repo...

2018-08-03 11:18:17 4710 1

转载 Gitlab的使用 [转载]

最近成功的在公司部署了gitlab,鉴于同学们还不会使用,这里写篇博客说明下。如果想安装gitlab的话,需要一些linux的基础知识,我在这里记录了我安装的参考《http://www.cnbluebox.com/?p=378》1.什么是git鉴于有同学还没用过git,就先介绍一下git吧。git就是一种版本控制工具。说到版本控制,大家可能就想到了svn。但是两者有着本质的区别。svn...

2018-08-03 10:32:42 246

转载 Python实现设置终端显示颜色、粗体、下划线等效果 [转载]

也许你希望在终端上输出一些带有颜色或者粗体、下划线等样式的信息,就像man中的那样,那么这篇文章将会起到些许作用。事件起因在Python开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。但是很杂乱的信息显示在一起,往往没有重点,一个一个找我们需要的信息往往特别复杂.Linux下的终端设置linux终端颜色设置格式L...

2018-08-02 14:43:34 2975

转载 fatal error: sys/cdefs.h解决方案

fatal error: sys/cdefs.h解决方案fatal error: sys/cdefs.h解决方案问题描述解决方法问题描述fatal error: sys/cdefs.h: No such file or directory解决方法Try these:sudo apt-get purge libc6-devsudo apt-...

2018-08-01 17:13:10 12708 1

原创 关于C++模板函数声明与定义的问题

关于C++模板函数声明与定义的问题关于C++模板函数声明与定义的问题模板函数出现的问题模板函数问题解决模板函数出现的问题今天在写代码的时候,发现了一个关于模板函数的问题。如下所示, demo.h代码#ifndef DEMO_H#define DEMO_Hclass Demo {public: Demo(); virtual ~D...

2018-07-22 21:59:37 27575 4

转载 老生常谈,正确使用memset [转载]

老生常谈,正确使用memset老生常谈,正确使用memset1、memset是以字节为单位,初始化内存块。2、当结构体类型中包含指针时,在使用memset初始化时需要小心。3、当结构体或类的本身或其基类中存在虚函数时,也需要谨慎使用memset。前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在me...

2018-07-18 20:02:06 1098

转载 跟我一起学习VIM - The Life Changing Editor [转载]

 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程。虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧。所以分享结束之后,将这篇简短教程整理一下作为我2014年的第一篇Blog。目录写在前面:Life Changing Editor什么是VIM为什么选VIM为什么选其它为什么犹豫选择它们VIM >= ...

2018-07-13 16:00:21 402

转载 vim中使用正则表达式 [转载]

一、使用正则表达式的命令使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:/正则表达式另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。:s/正则表达式/替换字符串/选项在学习正则表达式时可以利用 / 命令来练习。二、元字符元字符是具有特殊意义的字符。使用元字符可以表达任意字符、行首、行 尾、某几个字符等意义。元字符一览元字符说明.匹...

2018-07-12 11:30:30 1793

转载 Linux 字符设备驱动结构(四)—— file_operations 结构体知识解析[转载]

        前面在 Linux 字符设备驱动开发基础 (三)—— 字符设备驱动结构(中) ,我们已经介绍了两种重要的数据结构 struct inode{...}与 struct file{...} ,下面来介绍另一个比较重要数据结构struct _file_operationsstruct _file_operations在Fs.h这个文件里面被定义的,如下所示:struct file_ope...

2018-07-09 00:14:04 329

转载 Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析[转载]

       前面我们学习了字符设备结构体cdev Linux 字符设备驱动开发 (一)—— 字符设备驱动结构(上)  下面继续学习字符设备另外几个重要的数据结构。       先看下面这张图,这是Linux 中虚拟文件系统、一般的设备文件与设备驱动程序值间的函数调用关系;        上面这张图展现了一个应用程序调用字符设备驱动的过程, 在设备驱动程序的设计中,一般而言,会关心 file 和 ...

2018-07-09 00:12:11 410

转载 Linux 字符设备驱动结构(二)—— 自动创建设备节点[转载]

      上一篇我们介绍到创建设备文件的方法,利用cat /proc/devices查看申请到的设备名,设备号。第一种是使用mknod手工创建:mknod filename type major minor第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev(mdev),由busybox配置。      具体udev相关知识这里不详细阐述,可以移步L...

2018-07-09 00:09:26 221

转载 Linux 字符设备驱动结构(一)—— cdev 结构体、设备号相关知识解析[转载]

一、字符设备基础知识1、设备驱动分类      linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。...

2018-07-09 00:05:06 376

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架 [转载]

一、前言上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂。本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest。二、整体设计使用最精简的设计,我们就用两个类,够简单吧:1. TestCase类包含单个测试案例的信息。 2. UnitTest类负责所有测试案例的执行,管理。三、TestCase类TestC...

2018-07-03 12:10:58 251

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest [转载]

一、前言“深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内部实现介绍给大家。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释非常的详细!好了,下面就开始了解gtest吧。二、从TEST宏开始前面的文章已经介绍过TEST宏的用法了,通过TEST宏,我们可以非法简单、方便的...

2018-07-03 12:09:23 243

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数 [转载]

一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,对于运行参数,gtest提供了三种设置的途径:1. 系统环境变量2. 命令行参数3. 代码中指定FLAG因为提供了三种途径,就会有优先级的问题, 有一个原则是,最后...

2018-07-03 12:08:01 625

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试 [转载]

一、前言“死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃。通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要检查程序是否按照预期的方式挂掉,这也就是所谓的“死亡测试”。gtest的死亡测试能做到在一个安全的环境下执行崩溃的测试案例,同时又对崩溃结果进行验证。二、使用的宏Fatal assertion Nonfatal assert...

2018-07-03 12:06:45 235

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化 [转载]

一、前言在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法,然后编写在测试案例调用它。即使使用了通用方法,这样的工作也是有很多重复性的,程序员都懒,都希望能够少写代码,多复用代码。Google的程序员也一样,他们考虑到了这个问题,并且提供了一个灵活的参数化测试的方案。二、旧的方案为了对比,我还是把旧的方案提一下。首先我先把被测函数IsPrime帖过来(在...

2018-07-03 12:05:29 230

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制 [转载]

一、前言gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种:1. 全局的,所有案例执行前后。2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。3. TestCase级别的,每个TestCase前后。二、全局事件要实现全局事件,必须写一个类,继承testing::Environment类,实现里面的SetUp和Tea...

2018-07-03 12:04:08 351

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言 [转载]

一、前言这篇文章主要总结gtest中的所有断言相关的宏。 gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。二、示例// int型比较,预期值:3,实际值:Add(1, 2)EXP...

2018-07-03 12:02:54 201

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest [转载]

1.The first sample: sample1 你把github上的项目导来之后,github地址:https://github.com/google/googletest,在目录:..(你的目录)\googletest-master\googletest\samples是你的samples文件夹。 在VS中创建项目:GtestSamples 把对应的代码加入到这里边:sample1.h、...

2018-07-03 10:40:31 189

转载 Google C++单元测试框架---Gtest框架简介(译文)[转载]

一、设置一个新的测试项目  在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接。我们为一些流行的构建系统提供了构建文件: msvc/ for Visual Studio, xcode/ for Mac Xcode, make/ for GNU make, codegear/ for Borland C++ Builder.如果你的构建系统不在这个名单上...

2018-07-03 10:35:48 249

转载 [Data Structure & Algorithm] 七大查找算法

阅读目录1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找  查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。...

2018-05-16 14:23:07 323

转载 [Data Structure & Algorithm] 八大排序算法

阅读目录1. 直接插入排序(Straight Insertion Sort)2. 希尔排序(Shells Sort)3. 直接选择排序(Straight Selection Sort)4. 堆排序(Heap Sort)5. 冒泡排序(Bubble Sort)6. 快速排序(Quick Sort)7. 归并排序(Merge Sort)8. 桶排序(Bucket Sort)/基数排序(Radix So...

2018-05-16 14:19:15 443

原创 Selenium + PhantomJS使用报错

Selenium + PhantomJS使用报错目录Selenium + PhantomJS使用报错目录PhantomJS使用报错PhantomJS报错分析PhantomJS报错解决方案1、Selenuim版本降级2、使用 headless versions of Chrome or FirefoxChrome + ChromeDrivers配置1、安装Chro...

2018-05-08 10:30:09 1742 1

转载 理解Android编译命令

工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令.一、引言关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。source /opt/android1204_17.conf source setenv.shlunchmake -j12记得最初...

2018-05-07 16:46:19 1608

转载 流行的浏览器User-Agent大全

一、基础知识篇:Http Header之User-Agent    User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标 识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访...

2018-05-05 17:10:29 2046

转载 Python正则表达式指南

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。注意:本文基于Python2.4完成;如果看到不明白的词汇请记得百度谷歌或维基,whatever。尊重作者的劳动,转载请注明作者及原文地址 >.<html1. 正则表达式基础1.1. 简...

2018-05-01 17:35:09 157

转载 Ubuntu16.04手动安装MongoDB

注意事项:仔细按步骤阅读操作注意别写错字一、用自带的火狐浏览器下载Ubuntu 16.04 Linux 64-bit x641、地址:http://www.mongodb.org/downloads 2、选择linux选项卡,再在下拉框中选中Ubuntu 16.04 Linux 64-bit x64 3、点击Download按钮(浏览器弹出的下载单选框选保存,确认),等待下载结束(默认保存在用户的...

2018-04-29 15:09:26 567

转载 Python PEP8 编码规范

原文链接:http://legacy.python.org/dev/peps/pep-0008/itemdetailPEP8TitleStyle Guide for Python CodeVersionc451868df657Last-Modified2016-06-08 10:43:53 -0400 (Wed, 08 Jun 2016)AuthorGuido van Rossum <gui...

2018-04-21 17:49:33 567

转载 ubuntu16.04下sublime text3安装和配置

1.安装方法1)使用ppa安装sudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get install sublime-text-installer卸载 sublime text 命令:sudo apt-get remove sublime-text-installer2)使用deb包...

2018-04-20 10:31:08 11505

转载 Learn UML with JUDE

我希望你能够使用JUDE去学习和体验UML,JUDE是一个建模工具,你可以用它去画UML。下面我会指导你通过一些实例去学习使用JUDE来画UML。一、Overview      l    UML and UML toolsl    Description of JUDEl    Installation of JUDEl    Fundamental Components and Basic Op...

2018-03-13 10:34:30 386

转载 Android Binder设计与实现 - 设计篇

摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Binde...

2018-03-12 09:58:27 233

原创 Python实现TFTP

一、TFTP协议简单介绍1、定义TFTP(Trivial File Transfer Protocol):简单文件传输协议)。TFTP是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,传输不复杂、开销不大的文件。端口号固定为69。TFTP是一个传输文件的简单协议,它基于UDP协议而实现。2、特点简单、占用资源少、基于UDP实现、端口号为69

2017-12-12 14:23:44 10524 6

mkyaffs2image制作工具

2017-05-04

Linux Shell脚本攻略(第2版)

Linux Shell脚本攻略(第2版)

2017-04-19

mjpg-streamer-mini2440-bin-r6

mjpg-streamer-mini2440-bin-r6在mini2440开发板成功运行

2017-04-03

mini2440 supervivi-128M

这是针对于mini2440的supervivi-128M文件,亲测可用!已用JLink下载到Nor Flash中运行成功。

2017-04-03

蓝牙AT指令集

蓝牙AT指令集

2016-11-15

空空如也

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

TA关注的人

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