标签 golang 下的文章
GoHack2017黑客马拉松行记
(首发知乎)参加这次黑客马拉松其实是为了圆14年没能成行的黑马,所以在没找到身边朋友的情况下毅然决然的到http://gocn.io上去找了,还真让我找到了。聊下来小伙伴对我的项目想法也很认同,所以为什么不试试呢。最后很意外的拿到了一等奖,感谢评委和主办方(不要忘记感谢祖国感谢党)!
Golang版本的Fastimage
fastimage
Golang版本的fastimage,脱胎于python的 fastimage.
能够在取尽可能少数据的情况下获取图片尺寸。
参考了Ruben Fonseca(@rubenfonseca)的fastimage库 https://github.com/rubenfonseca/fastimage
从golang官方的imagehttps://github.com/golang/image中取到了WEBP及TIFF图片尺寸解析的逻辑
Geohash取临近区块的强化
geohash是常用来做地理位置查询,是LBS项目中常用的技术。详细原理就不细说了,可以参考如下链接:
源码:
一般来说,取当前坐标临近坐标常规做法是取当前坐标所在区块的周边一圈区块,即一个九宫格,能够得到充足的数据量,同时避免边界问题。但是实际项目使用过程当中发现除了边界问题,还有一个精度问题。当geohash位数多的情况下,精度高,区块面积小,那么范围内的坐标点就会比较少,甚至出现没有的情况,如果位数少,那么区块面积大,范围内坐标点过多,那么距离计算量就会比较大。在golang版本的源码中,提供了GetNeighbors
方法,直接取到九宫格,但是在上述场景下就会比较鸡肋。于是扩展了一下,以类似水波扩散的方式取数据,将每一圈的区块全部取出来。
RedisTool——Redis操作辅助工具
最近操作redis比较多,redis-cli还是蛮好用的,然而有一些场景不支持,比较不爽,比如批量删掉一些键,它就不能。刚好最近在学go,就用go写了一些工具,目前放了匹配key和删除的功能,后期看实际使用当中需要什么功能再加进来,redis-cli已有的就不管了。
用Mac OS X进行Golang开发备忘
最近学习go语言,还是比较有意思的,正好在交叉编译上遇到了一些问题,顺便把go从1.4升到了1.5,随手做个备忘。