How to persist goRBAC instance


goRBAC provides a lightweight role-based access control (RBAC) implementation in Golang. Normally, the privilege information (roles, parents, and permissions) are saved in the persistent storage, e.g. Database, Files, or Cloud Storage. This post will briefly discuss the technical details of how to load the goRBAC instance from persistent storage and how to save the instance back. In order to make things simple, I will use the JSON file as the persistent storage.
Continue reading How to persist goRBAC instance

Open book collections

All the websites below have a plenty of books and papers for free reading & downloading.

The National Academies Press, free reading and downloading in PDF, account needed for downloading.

Australian National University Open Research Library, all materials come from ANU, fill a form to request the PDF copy.

The University of Adelaide > Library > eBooks, free reading and downloading in HTML, epub, and Kindle.

Curtin University Library, free reading and downloading in PDF.

University of Queensland, part free.

Project Gutenberg, the greatest one, no more explianation.

The New Zealand Digital Library, free reading online.

Cornell University Library, free downloading in PDF.




Thoughs on goRBAC

Code refactoring is not an easy job, but it has to be done in most of the times. I just completed the lightweight role based access control library: goRBAC’s refactoring. There are some feedbacks and questions about the design and usage. I think it would be better writing something to share some design ideas and practice principles which will make things easier.


The master branch of current goRBAC’s source code is intended to be Version 2. While the previous version has been tagged as Version 1 with the branch on Github. And this article will only discuss Version 2 (the master branch).

Continue reading Thoughs on goRBAC

Walking around Mt Albert – Part 2

Followed the previous post: Walking around Mt Albert – Part 1

Alberton, a farmhouse, was built as the residence of Allan Kerr Taylor, who was a notable New Zealand landowner and businessman. Taylor’s family contributed to Mt Albert region a lot. It’s said that the family gave the land to build St. Luck’s Church and donated the church bell. I was planning to visit the Church today as well, but …

Turn back to the house. The gate in the photo is not the original front gate actually. I’m even not sure that if it existed originally. The tour guide said the gate opened at this side just for the reception. The original gate which should be in front of the fountain does not exist anymore. I will show you the fountain latter.



Continue reading Walking around Mt Albert – Part 2

Walking around Mt Albert – Part 1

Being Auckland about 2 weeks I didn’t write any journals about my trip. One part is about my laziness, the other side is that I don’t have a good idea about my hiking map. I’ve walked back from the city to Mt Albert where I live currently(Yes, it’s 7 km and took me 2 hours). And I took some particular pictures with a lot of fun, something like “Mystery Tunnel”, “Cement Warrior”, etc. You won’t image that! But it didn’t have a clear timeline as a good guide. With some pre-investigations in place and digging on the Internet, I made a great plan. But … Yes! Any decent plan still has an embarrassing BUT … I didn’t complete it. Too far to walk! (Look at the map “Walking around Mt Albert“. BTW, some of the pictures below were shot before this day.)

Original Plan:


Continue reading Walking around Mt Albert – Part 1

如何从源代码构建 Go 1.5 开发环境


近期,Go Team 连续放出了几个大招来介绍即将在八月问世的 Go 1.5 这个划时代的版本。Rob 和 Andrew 分别在《Go in Go》和《The State of Go》中详细说明了出现在 Go 1.5 中的重要特性和细节变化。在这个版本中最主要的变化是移除了所有 C 代码,不论是 runtime 还是编译器都使用 Go 语言和一小部分的汇编来实现——也就是人们常说的自举。但是这样做也就意味着,Go 在 1.5 和以后的版本中,使用源代码构建 Go
Continue reading 如何从源代码构建 Go 1.5 开发环境


个人来说,一直希望能将《Go指南》这个项目的版本管理从 bitbucket 迁移到 github。但是由于上游英文源项目仍然在用 hg 作为版本管理工具所以一直也没有这么做。前几天 OlingCat 找我,希望将这个翻译项目放在 github 上的 go-zh 项目中。我当然欣然同意,虽然翻译工作还得用 hg 维护,但是 git 上能够有个镜像也是不错的事情。

(中间略过若干 hg –> git 的鸡零狗碎不说)

在等待同步的时候,我简单阅读了一下“Go 项目翻译规范”,发现一个让我觉得很不舒服的设定。

Continue reading 如何用版本工具维护翻译项目


就我个人来说,离开学校进入工作之后,就离“入侵”啊、“破解”啊、“黑客”啊越来越远了。年龄越来越大,明白的事情理应越来越多。理应明白那些在 sunnet 百无聊赖瞎扯蛋的日子是回不来啦!

这两年业内的发展还真有点另人惊讶,不停的有新的数据泄漏,有新的重大安全漏洞,有新的安全事故发生,只是似乎从手法上来说并无新意。依然老三篇:0day + 社工 + 易入目标。但是想想也对,自古打劫的就是威胁、恐吓、讲道理。手中的武器怎么更替,这根基是不会动摇的。不过有这么多数据样本,不玩玩实在是对不起人民群众啊!

一不留神,扯了很多的蛋出来。那么回到主题,这两天疑似 12306 又泄漏了数据了。我拿到的是一个有 131653 条记录的文本文件。原始编码是 GB18030。至于这个数据到底是 12306 还是其他抢票平台泄漏的这个无从追究(或者不必要追究了)。在这次事件中,我遇到的对于这份数据最常见的反应(不论是技术人员还是非技术人员)都颇为一致:我搜了,里面没我……。确实,相对 12306 那庞大的用户信息库来说(数据总量估计是这个样本数据的一万倍以上,但是即便就是这个总量距离我们概念上的大数据还是很小的),要在这个小样本数据中找到自己其实不并不容易。那么换句话说,我们是不是就可以认为,这个广为流传的样本的价值(危害)很小了呢?

Continue reading “小”数据的危害

As Golang beyond PHP