go的markdown解析库和session库

最近学习go,就决定做一个博客来练练手,一下是用到的一些不错的库 markdown解析库 使用markdown来写博客文章,我用的是"github.com/russross/blackfriday"库,用法非常简单 首先安装 直接使用go get github.com/russross/blackfriday安装 使用 首先当然要引入: import github.com/russross/blackfriday 然后 output := blackfriday.MarkdownBasic(in...阅读全文

2016-07-02 16:34 itogo
阅读:4581 评论:1

用golang写socks5代理服务器1-本地代理

用go语言来实现socks5代理服务器,后面会加入ssh远程代理,用户验证,均衡负载一些吧 首先监听8080端口,循环接收tcp连接 server, err := net.Listen("tcp", ":8080") if err != nil { log.Panic(err) } defer server.Close() log.Println("开始接受连接") for { client, err := server.Accept() if err != nil { log.Println(...阅读全文

阅读:5628 评论:0

从小案例学习Go语言-将Excel各部分内容分发到不同的电子邮箱

关键点: Go语言读取Excel Go语言正则表达式 Go语言发送电子邮件 案例场景 今天公司行政部小妹妹跑来问,有什么办法可以把工资条自动发送到每个员工的企业邮箱里?公司每个员工的工资条以Excel的形式放在同一个文档里,之前用OA发送,复制粘贴,操作相当简单,但是公司要求改用电子邮件发送工资条后,给行政部的同事增加了较大的工作量,而且每个月都需要做一次,这很浪费时间,于是爽快的答应帮忙解决。 情况梳理 公司工资条大概这个样子的 为了方便,行政部门会把所有人的工资条按顺序排列在同一个Excel...阅读全文

阅读:10122 评论:8

Shadowsocks-go一键安装脚本

Shadowsocks-go一键安装脚本 本脚本适用环境: 系统支持:CentOS,Debian,Ubuntu 内存要求:≥128M 关于本脚本: 一键安装 Go 版的 shadowsocks 最新版本 1.1.5。据说 go 版本有 buff 。与 Python 版不同的是,其客户端程序能使用多个服务端配置,本脚本安装的是服务端程序。作者默认推荐 aes-128-cfb 加密,基于一致性,脚本使用了 aes-256-cfb 加密方式。 默认配置: 服务器端口:自己设定(如不设定,默认为 898...阅读全文

2016-12-24 13:00:02 PengTdy
阅读:6918 评论:0

Golang 通过 Consul 实现分布式锁

Consul 是什么 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对. 命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品. 一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广...阅读全文

阅读:1620 评论:0

Gopher面试中的Coding

从四月份下半月开始,陆陆续续面试了几家公司,都是golang的岗位。每一次面试,侧重点都会有不同,有的会直接给过来一道试题, 然后边解题,边讲述自己的思路,然后面试官根据你的思路和你交流沟通;有的呢,让讲述自己最近做过的项目,遇到的难点, 自己怎么解决的问题思路,而无独有偶的呢,这样的面试中,都要需要展示编码能力。这篇文章就把自己最近面试中遇到的每一个编程问题, 分三步阐述出来:问题描述,解题思路,实际编程。 交替打印数字和字母 问题描述 使用两个 goroutine 交替打印序列,一个 gor...阅读全文

阅读:4604 评论:3

仅需简单 5 步,给你的 Golang 程序添加 GUI (使用 Electron )

创建一个 Golang app 是一件简单又轻松的事情,但是有时候你想给你的应用锦上添花:创建一个 GUI! 在本篇文章中,我将通过使用 astilectron 工具中的 bootstrap 以及 bundler 给一个简单的 Golang 程序添加 GUI。 我们的带有 GUI 的 Golang app 能够打开一个文件夹并且展示其中的内容。 你可以在这里找到完成后的 [代码](https://github.com/asticode/go-astilectron-demo) ...阅读全文

2017-12-27 21:44:33 polaris
阅读:38346 评论:3

64行代码实现零拷贝go的TCP拆包粘包

# 64行代码实现零拷贝go的TCP拆包粘包 ### 前言 这段时间想用go写一个简单IM系统,就思考了一下go语言TCP的拆包粘包。TCP的拆包粘包有一般有三种解决方案。 #### 使用定长字节 实际使用中,少于固定字长的,要用字符去填充,空间使用率不够高。 #### 使用分隔符 一般用文本传输的,使用分隔符,IM系统一般对性能要求高,不推荐使用文本传输。 #### 用消息的头字节标识消息内容的长度 可以使用二进制传输,效率高,推荐。下面看看怎么...阅读全文

2018-01-01 15:21:05 alberliu
阅读:6456 评论:2

Golang并发模型:轻松入门流水线FAN模式

前一篇文章《Golang并发模型:轻松入门流水线模型》,介绍了流水线模型的概念,这篇文章是流水线模型进阶,介绍FAN-IN和FAN-OUT,FAN模式可以让我们的流水线模型更好的利用Golang并发,提高软件性能。但FAN模式不一定是万能,不见得能提高程序的性能,甚至还不如普通的流水线。我们先介绍下FAN模式,再看看它怎么提升性能的,它是不是万能的。 这篇文章内容略多,本来打算分几次写的,但不如一次读完爽,所以干脆还是放一篇文章了,要是时间不充足,利用好碎片时间,可以每次看1个标题的内容。 FA...阅读全文

2018-11-28 22:34:43 大彬
阅读:1090 评论:0

Golang-长连接-状态推送

状态推送 前言:扫码登录功能自微信提出后,越来越多的被应用于各个web与app。这两天公司要做一个扫码登录功能,在leader的技术支持帮助下(基本都靠leader排坑),终于将服务搭建起来,并且支持上万并发。 长连接选择 决定做扫码登录功能之后,在网上查看了很多的相关资料。对于扫码登录的实现方式有很多,淘宝用的是轮询,微信用长连接,QQ用轮询……。方式虽多,但目前看来大体分为两种,1:轮询,2:长连接。(两种方式各有利弊吧,我研究不深,优缺点就不赘述了)在和leader讨论之后选择了用长连接的...阅读全文

2019-01-12 15:34:39 HammerMax
阅读:1958 评论:1

golang面试题整理

golang面试题整理 1、go的调度 2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 func b() { for i := 0; i < 4; i++ { defer fmt.Print(i) } } 4、select可以用于什么,常用语gorotine的完美退出 golang 的 select 就是监听 IO 操作,当 IO 操...阅读全文

2019.01.18 23:06 yongfutian
阅读:48502 评论:5

蚂蚁金服面试题及答案之一面(持续更新)

一面1、自我介绍、自己做的项目和技术领域开放题2、项目中的监控:那个监控指标常见的有哪些?答:CPU、内存、IO 等等。建议下载个nmon工具,里面有各个指标。数据库:Mysql(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数)中间件:1.消息2、负载均衡3、缓存(包括线程数、连接数、日志)。网络: 吞吐量、吞吐率应用: jvm内存、日志、Full GC频率3、微服务涉及到的技术以及需要注意的问题有哪些?4、注册中心你了解了哪些?答:Consul 、Eureka、ZooKeeper5...阅读全文

2019-03-14 15:33:50 a1127889067
阅读:943 评论:0

Gopher 2019 Go并发编程的分享

目录 [−] 内容划分基本同步原语MutexRWMutexCondWaitgroupOnceA XXX must not be copied after first use.PoolMap扩展同步原语ReentrantLockSemaphoreSingleFlightErrGroupSpinLockfslockconcurrent-map原子操作操作的数据操作方法SubtractValueChannelGo内存模型单个goroutine内包级别的init函数go语句channelMutex/RW...阅读全文

2019年04月28日 smallnest
阅读:1443 评论:0

再记录一下vscode配置golang开发的一些注意事项

M$推出vscode之后,感觉世界真美好。于是从liteide转到vscode了。但是golang组织代码的目录管理这尿性比较奇葩。常常把自己搞得五迷三道的。有时候正常,有时候又掉链子。现在记录一下一些注意事项。 windows下的vscode,首先安装golang到 c:/Go 也就是环境变量GOROOT=c:/Go,然后指定GOPATH=c:/Go/gopath 这个目录自己建立。环境变量里面GOROOT和GOPATH只留下系统变量,用户变量中的GOROOT,GOPATH删除。不然鬼知道会搞...阅读全文

阅读:1952 评论:0

树莓派温湿度传感器dht11使用

最近无聊研究了下树莓派,发现可玩性不小,就是大学时代的单片机,満満的回忆感啊,树莓派的gpio口就是扩展接口,能做很多的事情,本文主要介绍怎么读取当前环境的温湿度 想读取温湿度就要用到温湿度传感器,作者使用的是dht11,主要是便宜,淘宝几块钱 首先就要将树莓派和dht11连接起来,树莓派的接口比较多,如下图: pinout.png 将dht11的VCC接1pin口(图中3v3),DATA接11pin口(图中gpio17),GND接9pin口(图中GND),这三个口并不一定要这样接,只是作者程序...阅读全文

2019.08.06 20:07* 小风吹的我乱了
阅读:1155 评论:0

计算机原理+操作系统+网络学习札记

计算机原理 一,冯诺依曼机,现代的计算机都属于冯诺依曼机。创造了通用电路与程序指令构成的可塑性极强的计算机。 包括输入设备,输出设备,控制器,运算器,储存器 二,计算机层次与编程语言 程序翻译:编译器将高级程序,翻译为计算机底层编码,生成新的,由低级语言组成的程序的过程。 例:C/C++、golang 程序解析:由一个低级语言编写的解释器,将高级程序语言的每个语句作为输入,转换为计算机底层码并执行,不生成新的程序 例:python、php、JS JAVA,C#属于两种混合 20190806181...阅读全文

阅读:613 评论:0