Web Analytics

使用Hugo搭建静态站点

虽然前一篇Blog宣称自己要用Markdown开始写Post,但实际操作起来还是发现了诸多不兼容问题(插件与主题间、插件与插件间的),让编写和修改文章变得十分繁琐,于是我研究了一下静态Web站点生成工具Hugo。Hugo是由前Docker的重量级员工(2015年8月末从Docker离职):Steve Francia实现的一个开源静态站点生成工具框架,类似于Jekyll、Octopress或Hexo,都是将特定格式(最常见的是Markdown格式)的文本文件转换为静态html文件而生成一个静态站点,多用于个人Blog站点、项目文档(Docker的官方manual Site就是用Hugo生成的)、初创公司站点等。这类工具越来越多的受到程序员等颇具“极客”精神的群体的欢迎,结合github.com等版本控制服务,采用具有简单语法格式但强大表达力的Markdown标记语言,人们可以在很短时间内就构建出一个符合自己需求的静态Web站点。在这些工具中,Hugo算是后起之秀了,它最大的优点就是Fast! 一个中等规模的站点在几分之一秒内就可以生成出来。其次是良好的跨平台特性、配置简单、使用方便等。这一切均源于其良好的基因:采用Go语言实现。Steve Francia除了Hugo平台自身外,还维护了一个Hugo Theme的Repo,这个Hugo主题库可以帮助Hugo使用者快速找到自己心仪的主题并快速搭建起静态站点。目前国内使用Hugo的人还不多,但感觉其趋势是在逐渐增多。这里写下这篇Post,也算是为大家入个门,引个路吧。 ...

September 23, 2015 · 12 min · Tony Bai

开始使用Markdown写Blog

近期发了一些带有大量代码的Go技术文章,结果文章中的代码样式被大家鄙视了,比如评论中的“不忍直视”、“这代码看得让人难受”等。于是我决定花些时间尝试做些改变。 博客系统 目前使用的这个博客系统是放在DigitalOcean VPS的Wordpress 3.2.1。在迁移到VPS之前,我的博客是一直托管在同事的一个托管主机上的,当初从blogbus迁移到他的托管WordPress主机时使用的就是WordPress 3.2.1版本,这两年一直未动,目前WordPress版本都4.3.1了。WordPress 3.2.1有很多bug,尤其是其安全漏洞,今年就被黑过几次,为此在后台将blog纳入git version管理,这样被黑后就可以很容易恢复。但将版本升级到WordPress新版我还是担心的,主要是担心升级失败,尤其是>数据库表变化较大,担心无法恢复。 ...

September 19, 2015 · 5 min · Tony Bai

Golang技术幻灯片的查看方法

随着go 1.5的发布,golang在世界各地日益受到欢迎,golang技术鼓吹者在世界各地举办各种级别的技术会议(从GopherCon大会到小小的meetup),并在会议上分享自己的技术心得和技术想法。 Golang相关的技术幻灯片有多种格式,以.ppt, .pdf和.slide为主。ppt、pdf自然不必多说,需要直接下载查看。 ...

August 22, 2015 · 3 min · Tony Bai

weed-fs使用简介

weed-fs,全名Seaweed-fs,是一种用golang实现的简单且高可用的分布式文件系统。该系统的目标有二: - 存储billions of files - serve the files fast weed-fs起初是为了搞一个基于Fackbook的Haystack论文的实现,Haystack旨在优化Fackbook内部图片存储和获取。后在这个基 础上,weed-fs作者又增加了若干feature,形成了目前的weed-fs。 ...

August 22, 2015 · 24 min · Tony Bai

制作go-talks.appspot.com应用镜像

Go语言号称面向工程:对工程目录组织、代码风格(gofmt)、文档(生成)都制定的相应的“标准”,并提供了相应的工具帮助开发者满足这些工程specs。 gofmt用于格式化代码,形成统一代码风格。 godoc.org用于查看标准库或repo的doc。 go-talks.appspot.com则是用来查看go slide。 ...

July 27, 2015 · 7 min · Tony Bai

Appdash,用Go实现的分布式系统跟踪神器

在“云”盛行的今天,分布式系统已不是什么新鲜的玩意儿。用脚也能想得出来:Google、baidu、淘宝、亚马逊、twitter等IT巨头 背后的巨型计算平台都是分布式系统了,甚至就连一个简单的微信公众号应用的后端也都分布式了,即便仅有几台机器而已。分布式让系统富有弹性,面 对纷繁变化的需求,可以伸缩自如。但分布式系统也给开发以及运维人员带来了难题:如何监控和优化分布式系统的行为。 ...

June 17, 2015 · 9 min · Tony Bai

Caddy,一个用Go实现的Web Server

这是一个Web Server的时代,apache2与nginx共舞,在追求极致性能的路上,没有最高,只有更高。但这又是一个追求个性化的时代,有些Web Server并没有去挤“Performance提升”这一独木桥,而是有着自己的定位,Caddy就是这样一个开源Web Server。 Caddy的作者Matt Holt在caddy官网以及FAQ中对caddy的目标阐释如下: 其他Web Server为Web而设计,Caddy为human设计。功能定位上,与经常充当最前端反向代理的nginx不同,caddy致力于成为一个易用的静态 文件Web Server。可以看出Caddy主打易用性,使用配置简单。并且得益于Go的跨平台特性,caddy很容易的支持了三大主流平台:Windows、 Linux、Mac。在Caddy开发者文档中,我们可以看到caddy还可以在Android(linux arm)上运行。caddy目前版本为0.7.1,还不稳定,且后续版本可能变化较大,甚至与前期版本不兼容,因此作者目前不推荐caddy在生产环境被 重度使用。 ...

June 4, 2015 · 8 min · Tony Bai

ngrok原理浅析

之前在进行微信Demo开发时曾用到过ngrok这个强大的tunnel(隧道)工具,ngrok在其github官方页面上的自我诠释是 “introspected tunnels to localhost",这个诠释有两层含义: 1、可以用来建立public到localhost的tunnel,让居于内网主机上的服务可以暴露给public,俗称内网穿透。 2、支持对隧道中数据的introspection(内省),支持可视化的观察隧道内数据,并replay(重放)相关请求(诸如http请 求)。 ...

May 14, 2015 · 15 min · Tony Bai

搭建自己的ngrok服务

在国内开发微信公众号、企业号以及做前端开发的朋友想必对ngrok都不陌生吧,就目前来看,ngrok可是最佳的在内网调试微信服务的tunnel工 具。记得今年春节前,ngrok.com提供的服务还一切正常呢,但春节后似乎就一切不正常了。ngrok.com无法访问,ngrok虽然能连上 ngrok.com提供的服务,但微信端因为无法访问ngrok.com,导致消息一直无法发送到我们的服务地址上,比如xxxx.ngrok.com。 这一切都表明,ngork被墙了。没有了ngrok tunnel,一切开始变得困难且没有效率起来。内网到外部主机部署和调试是一件慢的让人想骂街的事情。 ...

March 14, 2015 · 8 min · Tony Bai

Go,5周年

2014年11月10日(美国当地时间),Golang的官方博客 放出了Andrew Gerrand的一篇博文《Half a decade with Go》来纪念Go语言发布五周年。文章按时间顺序简要描述了Golang这五年来发展的 点点滴滴,并让全世界Gopher看到了Go可期的光明未来。考虑到这篇文章在墙外,不便于国内Gopher阅读,这里给出中文翻译版,希望能给中国大陆 的Gophers带来些帮助! ...

November 12, 2014 · 4 min · Tony Bai