自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Huntinux

你会感谢曾经努力的自己 新博客地址:huntinux.github.com

  • 博客(510)
  • 资源 (13)
  • 收藏
  • 关注

原创 brpc : example-echo-c++

https://github.com/brpc/brpc/tree/master/example/echo_c%2B%2B这里学习下brpc的example:echo-c++。先学会使用brpc,载了解了brpc的基本特性之后,再去深入研究。client https://github.com/brpc/brpc/blob/master/docs/cn/client.md...

2018-07-19 22:42:02 2201

原创 SNMP

参考 http://www.net-snmp.org/wiki/index.php https://www.cnblogs.com/sddai/p/5911031.html https://www.cnblogs.com/oloroso/p/4599501.html https://blog.csdn.net/hepeng597/article/details/87828...

2018-05-31 17:06:27 1714

原创 enable_shared_from_this 分析

http://monkeycn.iteye.com/blog/1135901 http://vyloy.iteye.com/blog/1808547

2018-05-29 16:55:33 460

原创 C++ string类的简单实现 (2)

参考 https://coolshell.cn/articles/10478.html#jtss-tsina分析如果一个class带有指针类型的数据成员,那么请思考默认的copy ctor和copy assign是否合适。如果你需要深拷贝那么默认的行为就不合适了(默认为浅拷贝)。并且如果你的编译器支持c++11,可以考虑是否可以利用右值引用来提高效率,这时需要实现move cto...

2018-05-25 14:50:40 552

原创 Linux kernel 3.10 sg 驱动分析

源码地址 https://elixir.bootlin.com/linux/v3.10/source/drivers/scsi/sg.c主设备号 https://elixir.bootlin.com/linux/v3.10/source/include/uapi/linux/major.h#L40#define SCSI_GENERIC_MAJOR 21fil...

2018-05-14 14:33:17 1344

原创 The Linux generic SCSI driver

前言 https://elixir.bootlin.com/linux/v3.10/source/drivers/scsi/sg.c本文的分析的内核版本为Linux kernel 3.10, 上面为驱动的源码The Linux generic SCSI driver http://www.tldp.org/HOWTO/SCSI-Generic-HOWTO/index....

2018-05-14 10:41:42 4339

原创 动态规划

相关题目最大连续子序列和 dp[i] 表示以a[i]结尾的子序列最大和,那么状态转移方程为:dp[i] = max(a[i], dp[i-1] + a[i])上台阶问题 有一段楼梯有N级台阶,规定每一步只能跨一级或两级,要登上第N级台阶有几种不同的走法?dp[i] 表示i级台阶的走法数量,那么 dp[i] = dp[i-1] + dp[i-2];正则匹配 htt...

2018-04-29 11:46:05 211

原创 assert() : 如何正确的使用

请先阅读一下man page,不要急躁。ASSERT(3) Linux Programmer's Manual ASSERT(3)NAME assert - abort the program if assertion is falseSYNOPSIS ...

2018-04-24 09:59:07 6812

原创 Perf: Performance analysis tools for Linux

参考 https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/gperftools 是Google开发的profile工具,这里介绍的perf是Linux上的性能分析工具。// 以后需要用到时再补充心得...

2018-03-30 11:22:55 280

原创 gperftools

安装$ git clone https://github.com/gperftools/gperftools.git$ cd gperftools$ ./autogen.sh$ ./configure$ make$ sudo make install使用CPU Profile https://gperftools.github.io/gperftools/...

2018-03-29 16:06:27 729

原创 Go: Gin

0. 简介Gin是一个使用golang编写的HTTP web框架,主页在此: https://github.com/gin-gonic/gin1. 使用记录1.1 POSTbinding tag 加入太多tab会有问题,目前只加一个空格没有什么问题,就是格式上有点丑,尚不清楚原因。1.2 Database http://www.01happy.co...

2018-03-29 16:00:55 453

原创 listen : backlog

listenNAME listen - listen for connections on a socketSYNOPSIS #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int listen(int soc...

2018-03-22 16:58:31 184

原创 Go : OAuth2.0

引用 http://blog.csdn.net/wangshubo1989/article/details/77980316引文以google为例子,这里使用github为例子(访问google有问题T_T)。获取 oauth2$ go get golang.org/x/oauth2如果出现错误(被墙?),请参直接使用github下载即可。$ mkdir ...

2018-03-08 15:59:27 2128

原创 PNP : Work Cound & Frequence

问题问题很简单,shell的几个命令就可以搞定。但是,如果输入文件很大不能一次载入内存呢? 文件分布在多个机器上呢?文件可以全部载入内存文件太大不能一次载入内存对于此类问题,即大数据问题,可以使用MapReduce两个MapReduce 第一个MapReduce: WordCount把每个单词映射成Key-Value pair (Map)把key相同的value加起来 (Reduce)此

2017-11-27 21:46:19 362

原创 PNP : Distributed mean and median

分布式的平均数和中位数。 求平均数比较简单。怎么求第k大的数字呢?先猜一个数guess,然后统计与这个数相等的数字的个数记为same,小于这个数的个数记为smaller然后调整guess,直到 smaller < k and smaller+same >= k具体点说,先猜一个guess,然后让10台机器告诉我,guess在第i台机器上的same和smaller,然后将same求和,smal

2017-11-23 20:53:11 321

原创 PNP : Remote Procedure Call (RPC)

RPCRPC是构建分布式系统的基础。 RPC不会限制所使用的语言,跨语言。 brpc : https://github.com/brpc/brpcprotobuf提供了message passing的能力,可以在此基础之上实现一个RPC框架。type表示消息类型,是请求还是响应 id用来标识一个请求service是一个string, 表示客户端想要调用哪个class method,表示客

2017-11-23 20:36:34 536

原创 PNP : Paralle N-queens puzzle

多机数据处理单机解决多线程多个机器负载均衡N皇后问题:每一行只能有一个皇后,每一列只能有一个皇后,每一条对角线(反对角线)只能有一个皇后。求解的个数。一种解法:求全排列,然后去掉非法情况代码简洁,但是效率低回溯法回溯法,就是在失败点选择其他值进行试探,直到成功。通过将错误情况,过早的减枝,可以排除掉很多非法情况。所以相对上面的全排列方法要快很多。思路就是使用位数组,columns表示那些列被

2017-11-15 20:41:22 327

原创 PNP : TCP relay & Socks4a

TCP relayTCP中继。 带宽不匹配问题怎么应对?TCP half-closedmuduo的做法是: TcpConnection::shutdown() –> shutdown(sockfd, SHUT_WR) Keep read(sockdf) uitil it return 0, then close(sockfd)有可能数据没有读完,此时如果使用close关闭连接,那么TCP会发送

2017-11-07 22:19:12 1216

原创 PNP : Chat server

将某个连接上的消息发送到其他连接上。BroadcastingIP广播不支持TCP。需要自己实现 Pub/Sub。要考虑单台故障不影响其他机器。pub, hub, sub. 其中hub收到pub的消息,发送到sub上。使用shared_ptr实现copy on write : example/asio/chat/server_thread_efficient.cpp使用thread_local: ex

2017-11-07 20:32:14 391

转载 C++ : Object Model

原文: http://spockwangs.github.io/2011/01/31/cpp-object-model.html参考: http://lifegoo.pluskid.org/upload/doc/object_models/C++%20Object%20Model.pdfThe g++ implementation of C++ Object ModelJa

2017-10-20 09:45:25 470

转载 C++ : Memory model in c++11

https://stackoverflow.com/questions/6319146/c11-introduced-a-standardized-memory-model-what-does-it-mean-and-how-is-it-gFirst, you have to learn to think like a Language Lawyer.The C++ specification d

2017-10-20 09:40:57 475

原创 PNP : Sudoku solver

Line protocolRequest : [id:]<81digits>\r\n Response: [id:]<81digits>\r\n [id:]NoSolution\r\nLibrary or service?Cross process boundary, some overhead of courseCross LanguageIndepend

2017-10-19 22:42:09 365

原创 Libevent : queue.h evbuffer bufferevent

Libevent源码中queue.h包含了链表的实现。在学习前参考了内核链表的设计,基本理解了queue.h的设计初衷。0 内核链表 内核链表: https://www.ibm.com/developerworks/cn/linux/kernel/l-chain/内核的链表(List, 双向链表)为了“通用性”,避免了为每个数据项类型定义自己的链表的麻烦,将链表节点结构“嵌入”到需要链表的st

2017-08-14 15:53:39 439

原创 PNP : procmon

数据的收发交给网络库,业务逻辑才是网络编程的重点。侵入式 : 做成一个库,使用者连接这个库。能够看到程序的内部状态,但是需要使用同一种语言,需要重新编译。非侵入时:无需重新编译,但是无法看到程序的内部状态,只能看到cpu使用率,内存使用量等信息。如何画图 独立的画图服务器JavaScript: jqPlot flot使用libgdCPU使用率:一段时间内cpu的占空比。 比如让cpu是20

2017-08-07 15:43:46 418

翻译 raw socket in linux

0 前言 http://www.binarytides.com/raw-sockets-c-code-linux/ In normal sockets when any data is send over the network, the kernel of the operating system adds some headers to it like IP header and

2017-06-28 13:52:44 841

原创 PNP: memcached

memcached1.2.8版本可以用作学习版本。内存密集型(CPU密集型, IO密集型,隔离度递增 ) memcached 本质上是一个远程的哈希表。数据结构的选择1. hash_map<string, value>lock()val = theMap.get(key)send(*val)unlock()//考虑并发(同时get set),send需要在临界区里面执行。2. typede

2017-06-22 19:21:51 475

翻译 C++ non type template parameters

模板中的非类型参数 可以在模板中定义非类型参数(non type parameter), 一个非类型参数表示一个值而非一个类型. (C++ Primer 5th P580)那么非类型参数可以是哪些呢? 书中的例子是以int为非类型参数, 那么string呢?用户自定义类型呢?带着这样的疑问找到了下面的回答: https://stackoverflow.com/questions/55478

2017-06-22 09:42:16 1065

翻译 C++ istream_iterator

From: https://stackoverflow.com/questions/16727125/how-does-stdcopy-work-with-stream-iteratorsFirst, note that in this case, there’s no real need to use std::copy at all. You can just initialize the v

2017-06-21 15:05:01 986

原创 名字查找与继承

直到了上面得到名字查找过程,再来理解隐藏(hide)和覆盖(override)就容易多了。此外还要记得:名字查找先于参数检查。来看一个例子。#include <iostream>class Base { public: virtual int fcn() { std::cout << "int Base::fcn()" << std::endl; }};c

2017-06-16 15:43:54 569

原创 PNP: non-blocking IO

Save remaining data in some buffer Never call write() when buffer is not empty, it reorders dataAlternatively, always send from bufferStart watching POLLOUT event Meanwhile, any write() should appe

2017-06-15 19:14:39 466

原创 PNP: NetCat

阻塞式IO是带限速的。比如nc从/dev/zero读取数据,然后写到某个socket,如果接收socket速度慢,那么从/dev/zero读取也会慢

2017-06-05 19:24:39 361

翻译 How To Use gflags (formerly Google Commandline Flags)

From: https://gflags.github.io/gflags/TODO: 翻译

2017-05-22 11:01:23 385

翻译 How To Use Google Logging Library (glog)

From: http://rpg.ifi.uzh.ch/docs/glog.html TODO: 翻译

2017-05-22 10:51:01 478

原创 Openssl : thread safety

https://www.openssl.org/docs/man1.0.2/crypto/threads.html OpenSSL can safely be used in multi-threaded applications provided that at least two callback functions are set, locking_function and thre

2017-05-12 12:53:40 1224

原创 Linux : screen

https://www.ibm.com/developerworks/cn/linux/l-cn-screen/ https://unix.stackexchange.com/questions/7453/how-to-split-the-terminal-into-more-than-one-view

2017-05-08 10:18:03 409

原创 PNP: TTCP

TTCP: Test TCP https://en.wikipedia.org/wiki/Ttcp

2017-05-04 22:01:29 1309

原创 TCP/IP Problem Collector

Connect: Cannot assign requested address出现原因:客户端机器没有空闲端口可以使用了,可能是客户端建立的大量的连接占用了所有可用的端口,或者是客户端主动close连接后的TIME_WAIT状态,导致一些端口还没被回收。(TCP/IP中port为16bit,范围是0~65535。)查询、修改文件描述符限制:# ulimit -n1024 /

2017-03-15 10:22:38 617

原创 Lock-Free Programming

参考: http://preshing.com/20120612/an-introduction-to-lock-free-programming/ http://blog.csdn.net/lifesider/article/details/6582338 http://blog.poxiao.me/p/spinlock-implementation-in-cpp11/ h

2017-02-10 15:02:42 639

转载 从tcp原理角度理解Broken pipe和Connection Reset by Peer的区别

原文: http://lovestblog.cn/blog/2014/05/20/tcp-broken-pipe/ 作者:你假笨@JVM  以前我们经常会碰到Broken pipe或者Connection reset by peer之类的异常,但是tcp实现里什么情况下会抛出这些异常呢,以前我给对方的回答都是模棱两可的,自己说实话都没把握,因为自己也没有验证过,对它们的

2017-02-09 11:00:09 2215

原创 非阻塞connect

预备知识套接字默认是阻塞的,那么使用阻塞的套接字进行connect时自然会阻塞当前的程序流。TODO:阻塞的connect最长会阻塞会阻塞多长时间?connect、accept与三次握手的关系图:非阻塞connect该怎么写 非阻塞的套接字通常与IO-multiplexing结合使用。创建non-block的socket使用connnect进行连接 判断connect的返回值r。分为三种情况

2017-01-15 11:14:37 719

drag and drop

用qt实现 拖拽行为。是c++ gui programming with qt 4 第9章的第一个例子。

2013-10-25

meandmyshadow-0.4-bin.tar

Linux下免费的好玩游戏,在source forge上找到的: http://sourceforge.net/projects/meandmyshadow/?source=directory

2013-10-23

scull pipe模块

LDD 第六章 scull pipe模块简化代码。

2013-10-14

tslib1.3.tar.gz

talib1.3 源代码。移植过程见这里:http://blog.csdn.net/huntinux/article/details/12612837

2013-10-11

Slope One Predictors for Online Rating-Based Collaborative Filtering

Daniel Lemire 写的介绍Slope one 算法的lecture。 想深入学习slope one的可以看看

2013-09-06

推荐系统实践

本书通过大量代码和图表全面系统地阐述了和推荐系统有关的理论基础,介绍了评价推荐系统优劣的 各种标准(比如覆盖率、满意度)和方法(比如 AB 测试) 总结了当今互联网领域中各种和推荐有关的产 , 品和服务。另外,本书为有兴趣开发推荐系统的读者给出了设计和实现推荐系统的方法与技巧,并解答了 在真实场景中应用推荐技术时最常遇到的一些问题。 本书适合对推荐技术感兴趣的读者学习参考。

2013-09-06

APUE 2nd 英文原版

APUE 第二版的英文原版。 从google搜来的,所以不要积分了,和大家分享共勉。

2013-03-23

s3c2440 IIC 读写 AT24C08A 实验代码

s3c2440 使用IIC总线读写EEPROM(AT24C08A)

2012-09-28

ZT-180 Adhoc Switcher

通过这个软件可以让安卓系统连接到ad hoc 网络。

2012-09-15

mini2440 定时器中断实验源代码

是能在友善之臂的mini2440板子上运行的定时器中断代码。定时器没0.5秒产生一次中断,控制led1的亮灭。可以结合韦东山的《嵌入式Linux应用开发完全手册》第十章来理解。

2012-08-09

Wildpackets OmniPeek 5.1序列号注册机

Wildpackets OmniPeek 5.1序列号注册机

2011-10-19

空空如也

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

TA关注的人

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