自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 深入浅出强化学习

强化学习是一种机器学习方法,旨在教会算法如何通过与环境的交互来进行学习和决策。与传统的监督学习和无监督学习不同,强化学习侧重于学习与奖励和惩罚(称为回报)相关的行为,以最大化在某个任务中的累积回报。强化学习的算法通常涉及一个代理(agent),该代理与环境进行交互,并采取行动来实现旨在最大化累积回报的目标。代理可以在某些超时之前执行许多行动,并在每个时间步骤中观察到它所处的状态,并基于该状态选择下一步行动。环境通常是复杂的,动态的和不确定的,代理必须学习如何采取最佳行动以应对环境的变化。

2023-12-01 17:55:35 182

原创 linux 网络工具

测试网络流量:1. nload让用户可以分开来监控入站流量和出站流量。centos安装:yuminstallnload-y2.iftopcentos安装:yuminstalliftop-y可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的...

2019-08-14 17:41:52 239

原创 Merkle Tree

精彩文章: 1. https://www.cnblogs.com/fengzhiwu/p/5524324.html

2017-11-14 20:26:43 382

原创 Raft 一致性算法

论文译文:http://www.infoq.com/cn/articles/raft-paper 演示动画:http://thesecretlivesofdata.com/raft/

2017-09-28 19:11:35 387

原创 基金经理的选择

1.选择过往业绩好的基金经理。 2.选择多面手的基金经理。 3.不要选择过于个性的基金经理。 4.选择具有创业精神的基金经理。 5.避免选择独立负责的基金经理。 6.资历并不是判断基金经理的绝对标准。 7.注意基金经理所起的作用。 8.男女经理都一样。 9.正确对待基金经理的更换。

2017-04-24 14:07:00 435

原创 基金选择

需要考虑的点: 1.基金的投资风格、投资对象和投资规模。 2.了解基金过往业绩和基金经理的过往业绩和职业操守。 3.过于频繁的更换基金经理,应该避免投资。做好准备工作: 1.做好承担风险的心里准备。 2.对收益率有一个合理的心理预期。 3.做好长期持有基金的准备。

2017-04-10 14:54:13 658

原创 c/c++开源项目汇总

http://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419

2017-04-05 14:53:38 590

原创 服务器大并发的思考

1.不要让内核执行所有繁重的任务。将数据包处理,内存管理,处理器调度等任务从内核转移到应用程序高效地完成。让Linux内核只处理控制层,数据层完全交给应用程序来处理。 2.用事件驱动服务器(如Nginx和Node)代替线程服务器(Apache) 3.实现数据包可扩展——编写自己的个性化驱动来绕过堆栈 数据包的问题是它们需经Unix内核的处理。网络堆栈复杂缓慢,数据包最好直接到达应用程序,而非经过

2017-03-08 13:34:43 273

原创 资源管理模式:pooling模式

pooling(池)模式描述了如何通过循环使用不再需要的资源来避免昂贵的获取和释放资源的操作。一旦资源被循环利用并置入池中,它们就失去了自己的标识和状态。 场景:连续的获取和释放资源,并且系统满足高可伸缩性和高效率。

2017-03-08 11:45:42 707

原创 资源管理:caching模式

Caching模式描述了如何通过用完资源后不立即释放资源来避免对资源的昂贵的重新获取。资源会维持他们的标识,并保留在某种可以快速访问的存储器中。它们可以被重用,从而避免了重新获取。时序图:使用caching模式有点: 1.性能提升。 2.可伸缩性。 3.可用性。缓存资源在资源提供者不可用的时候增加了可用性,因为缓存的资源还是可用的。 4.稳定性。减少释放或重新获取的操作,带来稳定性。 缺点

2017-02-13 20:20:03 654

原创 g++ 支持c11、c14的方法

//第一种,直接包含在源程序文件中,如第一行代码所示#pragma GCC diagnostic error "-std=c++14"#include <iostream>using namespace std;int main(int argc,char **argv){ cout<<"hello world!"<<endl; auto i=11; cout<<i<

2017-02-09 14:29:58 3706 2

原创 资源获取模式:Layz/Eager/Partial Acquisition

lazy acquisition 把资源获取推迟到系统执行可能的最后一刻,以便优化资源使用。 针对场景:具有有限资源且必须满足高要求(高吞吐,高可用)的系统。eager acquisition 模式描述了如何通过在实际使用资源前预先获取并初始化资源来使运行时资源获取具有可预测性和快速性。针对场景:系统获取资源时必须具有高可预测性以及高性能。partial acquisition 模式描述了如何把资源

2017-02-08 18:53:11 594

原创 lookup模式

lookup模式描述了如何通过使用查找服务作为中介实例,来发现和访问资源(不管资源是本地还是分布式)时序图:1.资源提供者注册资源到lookup服务。 2.资源使用者借助查询服务,通过一个或多个属性来寻找资源。 3.查找服务响应并返回能提供所需资源的资源提供者引用。 4.资源使用者利用资源提供者的引用来获取并访问资源。lookup模式的优点: 1.可获得性。资源使用者可以根据需要查找那些资源

2017-01-24 15:29:31 770

原创 mac上抓取ios设备的包

Apple在iOS5.0以上增加了RVI(Remote Virtual Interface),打开它非常简单,只需要把iOS设备通过usb连接到Mac上,然后打开“终端”,输入rvictl -s [Your Device's UDID] 然后在终端上会显示Starting device ********** [SUCCEEDED]字样如果这一

2016-09-20 16:28:47 508

原创 mac root权限

操作步骤:1.打开实用工具-》终端2.键入sudo passwd root 然后提示你输入当前登录用户密码,通过以后,提示你输入两遍root的密码。这样你就设置好root帐号密码了,可以用root来登录MacOS了。

2016-09-20 16:23:06 322

原创 c++模板特化

模板的特化分为两类:函数模板的特化和类模板的特化。 (1) 函数模板的特化:当函数模板需要对某些类型进行特别处理,称为函数模板的特化。例如:#include <iostream>#include <string.h>using namespace std;template<class T>bool isBigger(T t1, T t2){ return t1 > t2;}t

2016-07-01 14:17:59 309

原创 一致性哈希

基本概念:http://blog.csdn.net/sparkliang/article/details/5279393

2016-06-14 13:46:24 237

转载 lua使用

一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图: lua的栈类似于以下的定义, 它是在创建lua_State的

2016-06-08 19:00:07 645

原创 两阶段提交协议

一、事务事务处理的困难源于两个方面:concurrency和failures。为了达到高的性能,并发是必要的。而在现实中,计算机系统会面临各种各样的故障,操作系统可能会出错,硬件也有可能会出错。当这些错误发生时,应用程序可能会在正执行的过程中被打断,而这可能会产生错误的结果。比如用户正在转账,在中间失败可能会导致一个账户上的钱少了,但是另一个账户却没有收到钱的情况。Recovery就是要避

2016-05-30 21:10:11 353

转载 Linux--进程组、会话、守护进程

1:进程组(一个或多个进程的集合)    #include     pid_t getpgrp(void);    getpgrp()用来取得目前进程所属的组识别码。    此函数相当于调用getpgid(0)    #include >    pid_t getpgid(pid_t pid);    getpgid()用来取得参数pid指定进程所属的组识别

2016-05-25 15:03:54 281

原创 lua 调用c模块

c函数声明要符合类型:typedef int (*lua_CFunction) (lua_State *L); 1.在c代码运行环境下执行lua代码。#include <stdio.h>#include <string.h>#include <lua.h>#include <lauxlib.h>#include <lualib.h>static int cadd(lua_State* L)

2016-05-19 18:21:44 383

原创 lua __call metamethod

跟C++中的functor比较像,C++中的functor就是重载了operator()的对象,当把一个C++对象当成函数一样调用obj()时,实际上启动了对于obj的operator()的调用。lua table如果设置了metamethod __call,调用对象luaobj()时,会调用到__call方法,具体调用机制跟其它的metamethod没有什么区别。 示例:function tab

2016-05-19 14:07:45 1506

原创 c语言调用lua

1.首先要下载安装lua环境 安装进入官方站点(http://www.lua.org/download.html )下载最新的安装包。当前是 Lua 5.2.0wget -c http://www.lua.org/ftp/lua-5.2.0.tar.gz 解压:tar zxvf lua-5.2.0.tar.gz 安装readlinewget -c ftp://ftp.gnu.org/gnu/rea

2016-05-19 10:54:10 399

原创 存储引擎-Bitcast

Bitcast是一种日志型的基于hash表结构的健值对的存储系统,最早追溯于Riak分布式数据库。目前,Berkeley DB,Tokyo Cabinet,Innostore都使用了这种存储引擎。使用这种引擎拥有以下优点:比较低的读写时延。比较高的随机写吞吐率。能够控制更大的数据库。容易备份和恢复。相对简单,容易理解。可预计的高访问压力情况。Bitcast只支持追加操作(A

2016-05-17 12:43:04 943

转载 nosql类型

原文:http://blog.monitis.com/index.php/2011/05/22/picking-the-right-nosql-database-tool/nosql学习网站推荐:http://nosql-database.org/http://blog.nosqlfan.com/1.key-value存储Exampl

2016-05-16 17:35:52 252

原创 skiplist跳表

介绍参考:http://www.cnblogs.com/xuqiang/archive/2011/05/22/2053516.html

2016-05-16 15:41:08 301

转载 makefile .d的解释

在学写makefile时候,如果要写的好一点高手建议要用个.d文件.我那时候也是非常迷糊,我写的测试代码不用这个也照样运行的很好啊,为什么要写这个东西呢?下面先看这个情况.我们写的这个Makefile 一般要用隐晦规则.当然了如果就两个文件也没必要写这个东西了.用隐晦规则时候..o 文件会自动找这个 .c文件.然后编译.这个是没问题.如果有两个文件first.c main.c 你可以这样写

2016-05-13 15:41:00 455

原创 组件配置器

组件配置器设计模式允许应用程序在不必修改、重新编译、静态重新链接应用程序的情况下,在运行时链接和解链它的组件实现。组件配置器进一步支持在不必关闭和重启运行的进程的情况下,把组件配置到不同的应用程序进程。一、解决方案 从组件的实现中分离出组件接口,使应用程序独立于组件实现被配置到应用程序进程的时间点。 二、结构 组件配置器模式有四个参与者: 1.组件。定义一个一致的接口,用于配置和控制组件实现

2016-05-12 12:41:43 638

转载 shell变量

转自:http://www.cnblogs.com/barrychiao/archive/2012/10/22/2733210.html1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类:局部变量和环境变

2016-05-10 15:47:23 261

原创 shell if语句

#!/bin/bashTESTCHARS=2head="#!"PATHNAME=$(pwd)if [ "$#" -eq 1 ]; then echo $PATHNAMEfi结果执行时出现“syntax error near unexpected token `then’”,上网查了半天,终于搞明白了原因:if 与‘[‘之间没有加空格导致的。切记!

2016-05-10 14:53:15 226

原创 Pojo和JavaBean的区别

POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象。“POJO”主要用来指代那些没用遵从特定的Java对象模型,约定或框架如EJB的Java对象. 理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。例如一个POJO不应该是 扩展预定的类,如 public class Foo extends

2016-05-05 18:16:44 251

原创 主动器模式

一、定义及问题背景:主动器体系结构模式使事件驱动的应用程序能有效地多路分解和分配由于异步操作的完成而激活的服务请求,这样能获取并发所带来的好处。异步接收和处理多个服务请求的事件驱动的应用程序。通常可以改善分布式系统中的事件驱动应用程序的性能。二、解决方案: 应用服务分成两部分:异步执行的耗时长的操作和在这些操作完成后处理其结果的完成处理程序。三、结构: 包过九个参与者 1.句柄。标识一个操作系

2016-05-05 15:21:28 615

转载 ldconfig命令简介

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig.此执行程序存放在/sbin目录下. ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/

2016-04-22 18:02:53 327

转载 Bigtable:一个分布式的结构化数据存储系统

Bigtable:一个分布式的结构化数据存储系统摘要Bigtable是一个管理结构化数据的分布式存储系统,它被设计用来处理海量数据:分布在数千台通用服务器上的PB级的数据。Google的很多项目将数据存储在Bigtable中,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据规模(从URL到网页到

2016-04-21 10:56:12 1032

转载 NAT穿透的详解及分析(NAT类型举例解释及穿透技术)

一、什么是NAT?为什么要使用NAT?NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址。NAT的出现完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。 二、NAT的分类STUN标准中,根据内部终端的地址(LocalIP:LocalPort)到NAT出口的公

2016-04-20 14:14:22 760

原创 线程特定的存储器

线程特定的存储器设计模式允许多线程使用一个“逻辑上全局的访问点”获取一个局限于某一个线程的对象,而不会导致对象访问中的加锁开销。例如,多线程访问全局errno变量,会导致加锁同步开销。解决方案:为每个具体线程的对象引入一个全局访问点,但是在每个线程的存储器中保存“真实”的对象。应用程序仅通过它们的全局访问点管理这些线程特定对象。 该模式有六个参与者组成。 1.线程特定对象是一个只能有特定线程访问

2016-04-20 13:02:33 504

转载 谷歌三篇论文之二---MapReduce

MapReduce:超大机群上的简单数据处理转载自:http://blog.sina.com.cn/s/blog_4cc6846d0101sstu.html                                          摘要MapReduce是一个编程模型,和处理、产生大数据集的相关实现。用户指定一个map函数处理一个key/value对,从

2016-04-15 17:56:21 566

原创 python 继承

代码示例:class Animal: def __init__(self, name): self.name = name print('init Animal name: '+self.name) def eat(self): print('Animal eat:'+self.name)class Chichen(Animal):

2016-04-15 16:39:34 284

原创 半同步/半异步体系结构模式

半同步/半异步体系结构模式将并发系统中的异步和同步处理分离, 简化了编程,同时又没有降低性能。半同步/半异步的结构遵循分层模式,包过四个参与者: 1.同步服务层完成高层处理服务。在独立的操作时可以阻塞线程或进程的运行。 2.异步服务层进行底层的异步处理。处理时不能阻塞。 3.排队层为同步和异步层服务之间提供通信机制。 4.外部事件源产生被异步层接受和处理的事件。 优点: 1.简化和性能。

2016-03-22 21:23:30 585

转载 B-tree/B+tree/B*tree

B~树               1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么

2016-03-22 10:41:09 206

空空如也

空空如也

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

TA关注的人

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