[返回] [最新] [最热门] [最高评价]

如何在Go的函数中得到调用者函数名?

有时候在Go的函数调用的过程中,我们需要知道函数被谁调用,比如打印日志信息等。例如下面的函数,我们希望在日志中打印出调用者的名字。

1
2
3
4
5
6
7
8

func Foo() {
fmt.Println("谁在调用我?")
bar()
}

func Bar() {
fmt.Println("谁又在调用我?")
}

首先打印函数本身的名称

最简单的方式就是硬编码。 因为在编
...

鸟窝 2018-11-03 17:11 | 查看: 278

Java: 未来已来

在10月22的 Oracle Codeone大会上,Java平台的首席架构师 Mark Reinhold 做了The Future of Java is Today的演讲, 回顾了最近Java的几个版本的新的功能,Java的每年两次的发布周期, 澄清了关于发布流程和Java版本的几个误区,最后花了很大的篇幅介绍了未来Java几个令人非常期待的几个孵化中项目,可以为Java带来更好的生产力、性能和可
...

鸟窝 2018-10-29 11:12 | 查看: 714

Docker日志太多导致磁盘占满

我有一台服务器上面部署了多个docker容器, 并且每个docker容器都往stderr中源源不断的输出日志,导致今天磁盘被占满了。搜索了一下,docker官方网站上提供了一篇解决方案的文章。

Docker容器在启动/重启的时候会往/var/lib/docker中写东西,如果你在启动docker容器遇到No space left on device的问题,可以按照下面的步骤进行清理相关的日志操作
...

鸟窝 2018-10-23 12:07 | 查看: 382

Go web 开发中的cookie和session

Cookie是指网站为了辨别用户身份而储存于客户端的数据,由网景公司的前雇员卢·蒙特利在1993年3月发明。最初定义于RFC 2109, 以及后续的规范 RFC 2965、RFC 6265。

服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态,并且可以基于Cookie实现Session,用来在服务器端存储用户的数据。

现在,几乎所有的商业网站都会使用Cookie技术
...

鸟窝 2018-09-28 19:56 | 查看: 811

给 iTerm 设置代理

如果你用SS FQ的话, Shadow-Socks设置的系统代理是socks5代理,在iTerm中访问一些https还是不能用, 比如用go get下载一些依赖的库。一个办法就是使用Privoxy将socks5代理转换成http代理。

Privoxy

MacOS安装Privoxy比较简单。

1
2
3
4
5
6
7
8
9
10
11
12
13

-> brew install p
...

鸟窝 2018-09-28 11:44 | 查看: 1121

图像相似性比较实践

2008年TinEye上线了图片搜索,开始是注册制,后来逐步放开。2011年, Google也上线了相似图片搜索,通过用户上传的图片,可以搜索相似的图片。
参考文档中提供了一些介绍图像搜索的一些文章, 尤其是阮一峰2011年和2013年两篇普及性的文章,可以帮助你了解图像相似搜索的原理。

图像相似性搜索应用广泛、除了使用搜索引擎搜索类似图片外,像淘宝可以让顾客直接拍照搜索类似的商品信息、应用在商
...

鸟窝 2018-09-07 19:48 | 查看: 747

Go http2 和 h2c

了解一下http2和h2c (HTTP/2 over TCP,HTTP/2 without TLS)。

http/1.1 的服务器

我们经常会在代码中启动一个http服务器,最简单的http/1.1服务器如下所示:

1
2
3
4
5
6
7

http.Handle("/foo", fooHandler)

http.HandleFunc("/bar", func(w http.Respo
...

鸟窝 2018-09-06 19:21 | 查看: 763

区块链中的共识算法

先占个坑, 慢慢整理。

本文是正在整理,当你看不到这句话的时候,意味着整理完成了。

最近101blockchains 列举了常用的区块链的公式算法,并且详细介绍了这些算法的思想、好处和坏处,当然其它文章中还介绍了一些公式算法。正如文章中所说,没有一个共识算法是完美的,采用哪种算法是一个tradeoff的过程。

本文整理了区块链的公式算法,包括算法思想介绍、好处和不好的地方。

POW

Pr
...

鸟窝 2018-09-05 11:01 | 查看: 454

快速产生一个随机字符串

如何高效的产生一个随机字符串?这看似是一个简单的问题,但是icza却通过例子,逐步优化,实现了一个更高效的随机字符串的算法。这是来自的来自stackoverflow上的一个问题:How to generate a random string of a fixed length in Go?, 大家群策群力,提出了很好的方案和反馈,尤其是icza的回答。 本文翻译和整理自这条问答。

问题是这样的:
...

鸟窝 2018-09-02 16:47 | 查看: 814

跳出Go module的泥潭

Go 1.11 前天已经正式发布了,这个版本包含了两个最重要的feature就是 module和web assembly。虽然也有一些简单的教程介绍了go module的特性,但是基本上都是hello world的例子,在实践的过程中, 很多人都在“拼命的挣扎”,包括我自己, 从一些qq群、github的issue, twitter上都可以看到大家茫然或者抱怨的语句。

虽然有三个帮助文件go h
...

鸟窝 2018-08-31 19:28 | 查看: 1174

C和Go相互调用

C可以调用Go,并且Go可以调用C, 如果更进一步呢, C-->Go-->C 或者 Go-->C-->Go的调用如何实现?

本文通过两个简单的例子帮助你了解这两种复杂的调用关系。本文不涉及两者之间的复杂的数据转换,官方文章C? Go? Cgo!、wiki/cgo和cmd/cgo有一些介绍。

Go-->C-->Go

Go程序调用C实现的函数,然后C实现的函数
...

鸟窝 2018-08-30 11:37 | 查看: 852

Go Channel 应用模式

Channel是Go中的一种类型,和goroutine一起为Go提供了并发技术, 它在开发中得到了广泛的应用。Go鼓励人们通过Channel在goroutine之间传递数据的引用(就像把数据的owner从一个goroutine传递给另外一个goroutine), Effective Go总结了这么一句话:

Do not communicate by sharing memory; instead
...

鸟窝 2018-08-30 11:11 | 查看: 468

...更多...