这一波国潮

有幸见证了国货的崛起!支持国货从我做起。 下表是我日常生活中逐渐用国货替代洋货的清单,会陆续增加! 品类 以前用的外国品牌 现在在用的国货 润唇膏 妮维

evpp与asio吞吐量对比

简介 Boost.Asio是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步编程模型。也是业内公认的优秀的C++网

evpp与muduo吞吐量对比

简介 muduo是最近几年中国开源界里产生的优秀作品。它是由业内大牛陈硕实现的。详细介绍,请参考其博客介绍http://blog.csdn.n

minio源码阅读

简介 minio是Go实现的一个完全兼容S3的服务,和大多Go项目一样,干净小巧,没有依赖,编译运行一键搞定,便利之极。 源码阅读 HTTP事件注

Trafik源代码阅读

Trafik介绍 其官网是这么介绍的: Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) to manage its configuration automatically and dynamically. 翻译过来就是:Træ

将博客从jekyll迁移到hugo

之前的博客内容都是用jekyll来渲染的,这是用ruby写,部署起来比较麻烦。最近看到Golang开发的 hugo 工具,真是眼前一亮啊。 促使我做这种

编译Golang包为C语言库文件

Go 1.5发布后,其包含一个特性:可以编译生成C语言动态链接库或静态库。本文给出了示例代码和用法。 go build和go install命令,可以使

Golang发送邮件

本文介绍一个简单的方法使用Go语言发送邮件。直接调用系统自带的mail命令发送邮件。 在网上找了很多例子,基本上都是基于Golang本身自带的

Golang版本的remove_if函数实现

C++中的std::remove_if函数实现了一个算法,可以将一个容器中的元素按照一定的规则进行删除,但Go语言中却没有类似的函数。代码其

源码阅读-悟空搜索引擎

一个最简单的例子 我们还是从一个最简单的示例代码开始: package main import ( "github.com/huichen/wukong/engine" "github.com/huichen/wukong/types" "log" ) var ( // searcher是协程安全的 searcher = engine.Engine{} ) func main() { // 初始化 searcher.Init(types.EngineInitOptions{ SegmenterDictionaries: "./data/dictionary.txt"}) defer searcher.Close() // 将文

serf介绍

简介 Serf是一个无中心化的服务调度和服务发现工具。它容错性极好、无中心化设计、没有单点故障。Serf是建立在Gossip协议之上的,Gos

godotenv介绍

简介 godotenv是ruby社区的dotenv的Golang移植版本。该库会解析 .env 文件,该文件是一个典型的INI格式的文件,类似于下面: SOME_ENV_VAR=somevalue

nsq介绍及源码阅读

简介 nsq客户端逻辑 nsq消费者 主要请参考nsq_tail代码。nsqd的回应消息处理代码为func (c *Conn) readLoop()。 TCP消息流的

ansible简介

简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、f

Golang开源项目源码阅读

总览 github.com/julienschmidt/httproute httprouter 是一个轻量级的高性能HTTP请求分发器,英文称之为multiplexer,简称mux。 httproute特性 仅支持精确匹配,及只匹配

golang学习之继承和重载

其实golang里是不提倡继承的,也不提倡重载的。但是有些场景下,我们还是想试验一下传统C++或Java语言里的继承和重载能否用在golan

Docker介绍及初次使用教程

介绍 请参考下列文章: 深入浅出Docker(一):Docker核心技术预览 Docker镜像文件(images)的存储结构 初次使用 实验环境 $ uname -a

多进程编程

wait 和 waitpid 当一个进程正常或异常退出时,内核就向其父进程发送SIGCHLD信号。因为子进程退出是一个异步事件,所以该信号也是内核向父进程发送的异步

golang网络编程-udp客户端示例代码

最简单的一个客户端 编程步骤: 创建一个udp socket并连接服务器 发送数据给服务器 从服务器接收数据 关闭udp socket package main import ( "fmt" "net" "os" ) func main() { hostport := "10.16.28.17:1053" if

C++11中std::move示例

std::move作用:如果其类型支持移动的话,会无条件的将其参数(可能是左值)强制转换为右值引用,从而表示其可以移动,它使得编译器随后能够

Golang源码阅读

总览 src/cmd/dist/buf.c 该文件提供两个数据结构:Buf、Vec,分别用来取代char*和char**的相关操作。Buf和Vec这两个数据结构非常简单易懂,其他

Golang1.4资源下载

当前golang官方主页背墙,且有些golang.org/x下面的库也下载不到,因此我将这项资源统一放在这里供大家下载。 golang.org

Ubuntu中国源地址列表及更改方法

首先备份Ubuntu源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表) sudo vim /etc/apt/sources.list 将下面的代码粘贴进去(“#”开头的那一行为注释,可以直接复制进文件中)之后,再

战国策·卫鞅亡魏入秦

卫鞅亡魏入秦,孝公以为相,封之于商,号曰商君。 商君治秦,法令至行,公平无私,罚不讳强大,赏不私亲近,法及太子,黥劓其傅。 期年之后,道不拾遗,

Golang写的HTTP服务与Nginx对比

Golang写网络程序的确很简单,一个HTTP Echo服务,几行源码就可以搞定。Golang源码如下: package main import ( "log" "net/http" "io/ioutil" ) func handler(w http.ResponseWriter, r *http.Request) { buf, err := ioutil.ReadAll(r.Body) //Read

你好,编程哥

哥都不记得上次写博客的具体时间了,中间一直说写点什么,就是没有动手。原因有几: 哥的文笔不太好 总觉得技术水平不够高,文章写起来总没深度,不好意

使用Github Pages建独立博客

本博客框架是直接在 BeiYuu:使用Github Pages建独立博客 上改造而来的。增加了下列特性: 文章Tags Tags聚合 时间显示 作者显示 感

关于我自己

本科期间不算学霸,但学业成绩也不算差,课外参加一些电赛、嵌入式竞赛之类的,也获得一些奖项,然后保送混了个研究生文凭。 大四和研究生期间在某大专