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.

Bartleby

bibliomania

Elfwood

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.

rbac

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 v1.dev 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.

alberton-gate

alberton-name-plate

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:
original-plan

But:
2016-01-16

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 “小”数据的危害

[翻译]理解 Go 语言的内存使用

许多人在刚开始接触 Go 语言时,经常会有的疑惑就是“为什么一个 Hello world 会占用如此之多的内存?”。Understanding Go Lang Memory Usage 很好的解释了这个问题。不过“简介”就是“简介”,更加深入的内容恐怕要读者自己去探索了。另外,文章写到最后,作者飘了,估计引起了一些公愤,于是又自己给自己补刀,左一刀,右一刀……

————翻译分隔线————

理解 Go 语言的内存使用

2014年12月22日,星期一

温馨提示:这仅是关于 Go 语言内存的简介,俗话说不入虎穴、焉得虎子,读者可以进行更加深入的探索。

大多数 Go 开发者都会尝试像这样简单的 hello world 程序:

package main

import (
"fmt"
"time"
)

func main() {
fmt.Println("hi")

time.Sleep(30 * time.Second)
}

然后他们就完全崩溃了。

Continue reading [翻译]理解 Go 语言的内存使用

As Golang beyond PHP