自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 myworld-深入理解C++11-2

nullptr不能对nullptr去地址。int test2() { int * p = nullptr; cout << &nullptr; //此处会编译报错,因为nullptr是一个右值常量,不能被取地址。}

2022-03-13 21:44:40 1062

原创 myworld-深入理解C++11-1

深入理解c++11:1. 右尖括号编译2. auto类型推导3. long long

2022-02-27 20:50:12 511

原创 [区块链从原理到实现] - 区块链中的各种共识算法

[区块链从原理到实现] - 区块链中的各种共识算法本文将介绍区块链中常用的各种分布式共识算法,对其原理及典型实现做分析。主要共识算法有:POWBFTPBFTIBFTPOSPOSDPOSRAFTPAXOSDPOSDPOS准白皮书原文地址:https://steemit.com/dpos/@dantheman/dpos-consensus-algorith...

2018-09-23 19:18:30 9534 1

原创 [区块链从原理到实现]-索引

区块链从原理到实现说明: 区块链从原理到实现系列文章是自己近几年在区块链领域的工作经验及教训的总结.为什么叫”区块链从原理到实现”? 在工作过程中也经常查阅网上的各种讲述区块链原理及技术实现的文章,得益于这些文章的帮助,使得自己工作中遇到的困难能够快速定位和解决.但是在查询资料的过程中总觉得有小小的遗憾.这些文章中很少有能够针对区块链的某一方面,首先从用户角度介绍用途及原理,让读者从感...

2018-09-10 10:50:21 1202

原创 本地搭建godoc服务器

本地搭建godoc服务器在实际工作中,经常需要查go相关的语法及go的标准库。在本地搭建一个godoc环境往往更为方便,也避免了有时不能访问网络的问题。搭建方法很简单: 1. 在windows上安装go语言开发环境并正确配置。 2. 在控制台执行 godoc -http=:8080 3. 在浏览器中访问 http://127.0.0.1:8080 (注意不是http...

2018-07-28 21:21:55 2118

原创 区块链 - 有用的链接

[区块链从入门到放弃博客] http://blog.csdn.net/qq_35624642/article/details/78175907

2018-03-18 15:19:20 596

原创 消息推送架构介绍

移动设备获得通知的两种方式随着移动互联网的发展,越来越多的移动端应用得到普及,此处的移动端不仅仅限于手机,还有很多设备也参与到移动互联中来。比较典型如微软的xbox等,这些设备上运行的应用都需要具有一定的消息通知功能。那么消息是如何从应用的服务端到达应用终端,也就是各种移动设备上呢?目前,移动端获得消息通知主要有两种方式:pull(拉)方式和push(推)方式,下面分别对这两种方式做简要介绍...

2018-03-06 18:24:03 6162 1

原创 linux socket编程与tcp/ip协议

使用tcp进行通信使用udp进行通信使用unix域描述符进行通信linux服务端编程模型select/poll/epolllinux tcp性能调优

2018-03-04 12:29:39 500

原创 kubernetes相关

一, kubernetes搭建云消息服务使用kubernetes+docker+kafka搭建云消息服务。1.1 创建docker本地仓库(此步骤是为了创建一个docker本地仓库,这个仓库可以存储后面步骤制作好的zookeeper镜像及kafka镜像,方便其他host节点从此本地仓库下载自制的镜像。) 1. centos7上安装docker。 以roo...

2018-02-23 14:22:07 270

原创 使用redis做为MySQL的缓存

介绍在实际项目中,MySQL数据库服务器有时会位于另外一台主机,需要通过网络来访问数据库;即使应用程序与MySQL数据库在同一个主机中,访问MySQL也涉及到磁盘IO操作(MySQL也有一些数据预读技术,能够减少磁盘IO读写,此部分后续继续研究),总之,直接从MySQL中读取数据不如直接从内存中读取数据来的效率高。为了提高数据库访问效率,人们采用了各种各样的方法,其中方法之一就是使用一个给予

2018-01-11 15:02:27 17679

转载 linux下中文现实乱码问题解决方案

linux下中文现实乱码

2017-12-06 09:54:50 275

原创 机器学习之距离计算

常用距离概念介绍本文介绍了在机器学习中经常使用到的集中距离的概念。在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。   本文的目的就是对常用的相似性度量作一个总结。欧式距离曼哈顿距离待补充

2017-11-20 18:47:49 294

原创 机器学习之KNN分类器

原理解释KNN K-nearest-neighbors:K最近邻算法。 knn通过在特征空间中查找待预测节点的K个邻居,然后根据查找到的K个邻居的标签来决定待分类样本的标签,这样的方法叫做KNN方法,即K-最近邻方法。 以下图为例: ![KNN示意图](http://img.blog.csdn.net/20171120182249778?watermark/2/

2017-11-20 18:23:37 787

原创 python语法

1. with用法要使用with语句,首先要弄明白上下文管理器的概念,有了上下文管理器,with语句才能正确工作。上下文管理器实现了上下文管理协议,而上下文管理协议规定了所有支持上下文管理器的对象都要实现enter()和exit()借口。with语法如下: with context_expression [ as target(s) ]: with-body这里的con

2017-11-16 17:09:13 230

转载 vmware虚拟机安装ubuntu 16.04时vmware tools按钮变灰问题解决方法

http://www.binghai.site/archives/641#0-qzone-1-4144-d020d2d2a4e8d1a374a433f596ad1440

2017-11-07 18:34:18 4315

原创 linux/unix多线程/多进程编程总结(二)

linuxUnix多线程多进程编程总结(一)进程间通信共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。共享内存并没有提供同步机制,所以在使用的过程中需要与其他互斥机制配合使用,比如说互斥锁或者读写锁或者信号量进程间通信及同步通常使用信号量,因为比较方便。也可以使用互斥锁或者读写锁,如...

2017-10-30 17:47:03 773

原创 指定运行时动态库位置的三种方式

指定运行时动态库位置的三种方式在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可通过三种方法来指定:方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径;方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径;方法三:在编译目标代码时指定该程序的动态库搜索路径。 众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都

2017-10-26 12:52:22 15690

原创 linux/unix多线程/多进程编程总结(一)

linux/unix多线程多进程编程总结(二)linux/unix多线程,多进程编程是在实际工作中经常使用到的技能,在C语言或者C++语言面试的时候也经常会被问到此部分内容。 本文对linux/unix系统中的pthread相关的多进程和多线程编程的各个方面进行了总结,包括线程、进程、进程间通信及线程互斥等内容。一方面,给感兴趣的同事浏览斧正;另一方面,也是自己的一个技术笔记,方便以后回顾。...

2017-10-02 18:24:56 4537

原创 scikit-learn机器学习库

scikit-learn机器学习库官网链接 官网链接用于数据挖掘和数据分析的简单高效的工具。能够被所有人使用,能够在各种场景中重用。构建在NumPy,sciPy和matplotlib库之上。开源的,基于BSD证书的,可用于商业产品的开源机器学习库。sklearn库内容分类分类 Classification回归 Regression聚类 Clustering维度规约 Dimensi

2017-09-30 16:44:53 650

原创 一篇文章比较static_cast和dynamic_cast的区别

static_cast和dynamic_cast的区别如下:基本类型 1.1 基本类型间转换: static_cast可以在基本类型间做转换,与隐式转换规则相同,不符合隐式转换规则的static_cast同样不能转换。dynamic_cast不能再基本类型之间做转换。1.2 基本类型指针或引用间转换 static_cast不能在基本类型指针或者引用间做转换dynamic_cast不能在

2017-09-30 12:00:49 1908

原创 c++之四种类型转换

const_cast const_cast的主要用途是去掉对象引用或指针的const属性。但是即使转换后,对原始的const对象也不能真正的改变其值,只能是改变其引用或者*指针的值(具体如何实现没有深入研究,参考下面的代码)。const_cast的使用场景不在于要修改const对象的值,而是主要用在参数传递等场景。参考代码中的注释。#include <iostream>using namesp

2017-09-27 16:50:48 292 1

原创 boost之pool

头文件 #include ”boost/pool.hpp“笔记 对于频繁分配及释放大量固定大小的小内存的操作可以用pool来实现,pool接口保证没有内存泄露。pool有两个分配器: pool_allocator : 用于任意数量的连续块。fast_pool_allocator: 用于一次只分配一块的场景。也可以用于一次分配任意数量的连续块,但是效率没有pool_allocator好。

2017-09-18 18:05:20 534

原创 boost编译的一个bug:undefined reference to `boost::system::generic_category()'

报错大致如下: main.cpp:(.text+0x49): undefined reference to boost::system::generic_category()' main.cpp:(.text+0x53): undefined reference toboost::system::generic_category()’ main.cpp:(.text+0x5d): undefi

2017-09-13 10:38:51 3326 7

原创 boost之foreach

头文件 #include “boost/foreach.hpp”foreach可以用在array, string还有其他stl的容器如vector,list,deque上,形式为 BOOST_FOREACH( 元素, 可迭代对象),还有BOOST_REVERSE_FOREACH(元素类型, 可迭代对象)可以用于反向迭代。foreach还可以作用于能够返回可迭代对象的函数上。元素字段可以返回引用

2017-09-11 11:34:11 1394

原创 LMS权值更新法则(Least mean squares,最小均方)

训练样例

2017-09-05 11:17:21 1832

原创 linux进程/线程协作 之 epoll

epoll简介相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内核来扩大这个数目,但这似乎并不治本。epoll的接口非常简单,一共就三个函数:1. int epoll_create(int size);创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大。这个参数不

2017-04-20 18:31:37 297

原创 zmq源代码分析 - mailbox_t

1. mailbox介绍mailbox是zmq中线程之间及socket和线程之间的通信机制。本文将基于源代码对mailbox的实现原理简要分析。2. mailbox的模块结构如图所示: - mailbox模块中内部由两个模块组成: - cpipe模块,此模块mailbox需要发送及接收的命令。 - signaler模块,mailbox在把命令放置到了c

2017-04-20 10:06:30 8198

原创 Linux进程/线程协作 之 创建指定数量的进程

#include <stdio.h>#include <stdlib.h>#include <memory.h>//创建5个子进程。int main(int argc, char ** argv) { pid_t root_pid; int i = 0; root_pid = getpid(); printf("Root pid is %d\n", root_pi

2017-04-19 18:13:23 565

原创 Linux进程/线程协作之eventfd

eventfd是linux的一个系统调用,为事件通知创建文件描述符。 eventfd()创建一个“eventfd对象”,这个对象能被用户空间应用用作一个事件等待/响应机制,靠内核去响应用户空间应用事件。这个对象包含一个由内核保持的无符号64位整型计数器。这个计数器由参数initval说明的值来初始化。 以下例子展示了在线程之间及fork()产生的进程之间的通信。/* 创建线程之后主线程和子线程谁

2017-04-17 18:25:02 2529

原创 zmq源代码分析 - ypipe_t(2)

ypipe_t源代码续 //回滚已经写入的元素(对于单一元素是不能回滚的,对于多片段元素,在最后一片写入之前前n-1片是可以回滚的)。 //参数: // value_,被回滚的元素。 //返回值: // true,回滚成功返回true;false,回滚失败返回false。 inline boo

2017-04-14 00:56:03 580

原创 zmq源代码分析 - ypipe_t(1)

atomic_ptr.hpp是zmq中的一个原子指针的实现,主要用在ypipe_t及yqueue_t结构中实现无锁队列。template <typename T> class atomic_ptr_t{public: atomic_ptr_t () //默认构造函数,会把内部指针ptr设置为null。 ~atomic_ptr_t () //析构函数,什么操作都没有。

2017-04-07 11:44:32 1000

原创 javadoc相关

eclipse中配置javadoc 通过eclipse的project->Generate Javadoc来生成java的帮助文档。文档默认存放路径为/doc文件夹下,从index.html开始浏览。javadoc工具位置 jdk的javadoc工具一般存放在Program Files/Java/jdk1.8.0_111/bin/javadoc.exe配置javadoc

2016-12-19 23:25:16 237

原创 zeromq分析-1-yqueue实现

yqueue是zeromq中实现的一个队列。 // Create the queue. // yqueue初始化函数。 inline yqueue_t () { begin_chunk = (chunk_t*) malloc (sizeof (chunk_t)); alloc_ass

2016-10-17 22:52:17 610

原创 hadoop 27在ubuntu上单机搭建与测试

1. 安装Hadoop1.1. 解压:sudo tar xzf hadoop-2.7.1.tar.gz(非源代码包,不需要编译)1.2. copy到/usr/local/中,并命名为hadoopsudo mv hadoop-2.7.1 /usr/local/cd /usr/localsudo mv hadoop-2.7.1 Hadoop1.3. 配置打开配置文件:

2016-07-17 23:07:33 287

原创 有用的ZeroMQ文章链接

ZeroMQ研究与应用分析

2016-05-15 22:53:13 489

原创 libuv中文API手册(1)

官方文档URL官方文档链接点我点我点我1. 概述 libuv是一个支持多平台的异步IO库。它主要是为了node.js而开发的,但是也可以用于Luvit, Julia, pyuv及其他软件。 注意:如果您发现了此软件中的错误,那么请提交pull requests来帮助我们修改这个错误以提升软件质量。 2. 特性 1. 基于epoll, kqueue, IOCP及事件端口(e

2016-04-02 21:38:29 6832

原创 C语言va_list,va_start,va_arg,va_end

C语言va_list,va_start,va_arg,va_end需要注意: 在C语言中使用可变参数不利于编译器的语法检查,在使用时要慎重。#include <stdlib.h>#include <stdio.h>#include <stdarg.h> /*define va_list,va_start,va_arg and va_end.*/void test_va(int

2016-03-26 19:16:43 363

原创 C语言中#,##和#@

#include #include #define STR(a) #a //把a替换成一个“a”形式的字符串。 #define PRINTF pri##ntf //link the two token together. //合并两个token。#define MYPRINTF(a,b,c) printf(#a"-"#b"-"#c"\n")/* #define CHAR(a) #

2015-11-07 21:42:27 5795 1

原创 openssl中PKCS12_free函数的位置及实现方式

在openssl源代码中搜索不到PKCS12_free函数的定义,那么这个函数在哪里定义的?通过GDB运行调试程序发现PKCS12_free定义在p12_asn.c中。    167  if (!PKCS12_parse(p12, passwd, pkey, cert, &ca)) {    (gdb)     170  PKCS12_free(p12);     (gdb)

2015-11-07 19:52:41 1301

转载 ssl change ciper spec

http://www.h3c.com.cn/Products___Technology/Technology/Security_Encrypt/Other_technology/Technology_book/200812/622834_30003_0.htm

2015-09-06 13:28:31 984

空空如也

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

TA关注的人

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