标签 Go 下的文章

TB一周萃选[第6期]

本文是首发于个人微信公众号的文章“TB一周萃选[第6期]”的归档。

img{512x368}
图:第6期封面

凡事欲其成功,必须付出代价——奋斗。
— 美国作家 爱默生

每期挑选“封面图”都是一件颇为“费工夫”的事情,本期的封面图来自于一个投资界大V发送的微博内容,因为当我第一眼看到这幅图片时,感觉它颇为契合我当时的心境

“未来的一年里,连睡觉都是浪费时间”这句话的最原始的出处在哪里我还没有查到,但最近与这句话“勾搭”上关系的是小米公司,因为坊间传闻小米公司要开启上市计划了。但小米公司绝对不是这句话的“始作俑者”,因为我查到著名的投资人孙正义先生在2017中旬举行的SoftBank World大会中的一次演讲中也提到过:”未来让我激动,感觉睡觉都是在浪费时间”这一同义的说法。

先不管人们对这句话是否感同身受,实际情况是当今人们用于睡觉的时间真的是越来越少了。已经成功的人为了追求更大的成功或让企业长期利于不败之地而殚精竭虑,他们不能睡;正走在通往成功道路上的奋斗者们,加班加点,兢兢业业,亲力亲为,他们不愿睡;大多安于现状、不愿折腾的打工族们则贪恋红尘,吃喝唱K、刷剧吃鸡、答题聊天的时间还不够呢,哪忍心放下手机或电脑去呼呼大睡呢,他们不舍得睡

由此看来,似乎这个“网红句子”在不同人内心中的含义是可以不同的。但无论怎样,我敢肯定的是这幅图会让那些新的一年中心中目标满满并欲为之奋斗的人振奋不已。大家都说刚刚新年伊始,其实已经过去了半个多月了,时间真的不等人:学习要速度,发展要速度,增长要速度,那么多工作和目标等待着你去完成,抓紧这本应该是睡眠的时间,努力奋斗吧。

img{512x368}
图:2018.1.18雾凇景观(沈阳)

一、一周文章精粹

1. AWS Lambda正式宣布对Go的支持

在2017年末举办的AWS re:Invent大会上,AWS的技术人员就剧透了Lambda将对Go提供正式支持。本月15号,AWS官方正式宣布了Lambda对Go的支持,并在github上发布了aws-lambda-go1.0.0版本。现在全世界的gopher们就可以使用自己心仪的语言来编写自己的第一个Function as a Service例子了。

img{512x368}

文章链接:“Announcing Go Support for AWS Lambda”

2. Cloudflare公司的TCP协议栈深入理解系列

Cloudflare是世界知名的CDN服务商,这些年Cloudflare公司的主要技术栈也转移到了Go语言,包括其DNS系统等。Cloudflare在TCP/IP网络方面有了较为深入的理解,其研发人员经常在其官方blog发表有关互联网协议方面的技术文章,这里将其中几篇抽取汇总出来,形成“TCP协议栈深入理解系列”,包括:

3. 高性能Go语言编程

印象中,高性能Go编程这个topic,大胡子Dave Cheney在几个技术大会上都讲过,Dave自己关于这方面的认知也在演化,这次在QCon大会上的演讲应该他对Go高性能编程的最新理解。

文章链接:“High performance Go by Dave Cheney”

4. 为什么Go中会有nil channel?

Francesc Campoy是Go core team前成员,他的“just for fun”系列播客在广大Gopher圈里十分受欢迎,其最新一期“为什么Go中会有nil channel?”讲解了nil channel在实际编码中的妙用。

img{512x368}

文章链接:为什么Go中会有nil channel?

5. 将Kubernetes集群扩展到2500个节点

容器与Kubernetes等容器管理基础设施的出现改变的不仅仅企业的业务应用架构和开发模式,对近两年火热的人工智能、机器学习也是一种赋能。当前Kubernetes支撑的人工智能/机器学习环境是目前一个流行的趋势,比如发布不久的Kubeflow。不过2015年末的成立的openai组织则早就将Kubernetes运用于人工智能领域的研究,截止目前该组织运行管理的Kubernetes集群已经达到2500个节点。本周openai发表文章讲述了他们是如何将Kubernetes集群管理的节点数量扩展到2500个的,他们的下一个目标是5000个节点。

文章链接:“Scaling Kubernetes to 2,500 Nodes”

6、Kubernetes的引力

2017年,Kubernetes战胜了swarm和mesos,成为容器管理和服务编排方面的事实标准。

img{512x368}

“Kubernetes引力”这篇文章从标准、容器管理编排、适配多云平台、适用于分布式系统部署等多方面论述Kubernetes对IT世界的改变。

文章链接:“The Gravity of Kubernetes”

二、一周资料分享

1. 人工智能标准化白皮书(2018版)

2018年1月18日,在国家人工智能标准化总体组、专家咨询组成立大会上,大会发布了“人工智能标准化白皮书2018版”,对人工智能技术的历史、发展现状及趋势、人工智能的标准体系以及国内外标准化的现状做了系统的阐述。

人工智能标准化白皮书2018: 链接: https://pan.baidu.com/s/1qZTPyCc 密码: x3qn

三、一周项目推荐

1. tview

tview是用纯Go语言编写的一款终端UI组件库,用于实现基于terminal的文本式交互界面。类似于传统的C语言ncurses库。tview提供了许多widget,并且有对应的demo代码对应,使用起来十分方便:

  • 输入框(包括密码字段输入、下拉选择、选择框、按钮)
  • 可导航的多色文字视图
  • 导航表视图
  • 可选列表
  • Flexbox和页面布局
  • 模态消息窗口

img{512x368}

项目地址:tview

2. colly

数据在移动互联网时代以及即将到来的AI时代都是具有核心价值的。数据的获取途径之一就是通过爬虫工具获取公共数据,并作为数据价值挖掘的输入。colly就是一款用于编写爬虫工具的框架,它使用Go语言实现,提供优雅、简洁的API接口、高效的性能、并发爬取管理、缓存、robots.txt支持等功能,同时colly还提供了详尽的使用文档以及丰富的examples

img{512x368}

项目地址:colly

四、一周图书推荐

1.《迁移到云原生应用架构》

img{512x368}
图:Migrating to Cloud-Native Application Architectures封面

就好比00后被称为是互联网时代“原住民”一样,近几年的一些应用架构演化模式被称为“云原生”应用(cloud-native application),换句好理解的话来说,就是这些应用天生就是应该跑在云上的,而且具有诸多契合云计算平台的特征,而不仅仅是简单地将传统单体应用从单机挪到虚拟机或容器中部署。

云原生(Cloud Native)这个概念最初是由Pivotal公司Matt Stine在 2013年提出的,是他对多年架构和咨询经验进行总结后的一个成果。2015年,他操刀编写了“Migrating to Cloud-Native Application Architectures”,也就是这里推荐的这本短小的开源书。

这本书的脉络十分清晰,首先Matt告诉我们什么是云原生架构以及为什么要用云原生架构。不过Matt并没有给出精确的云原生的定义,而是告诉我们云原生应用架构具有哪些特征,包括:”twelve factor app“、微服务、自服务敏捷架构、基于API写作等;接下来Matt告诉我们如果企业要接纳云原生架构,应该如何从文化、组织和技术等三个方面进行变革;最后的一个小章节则是迁移到云原生应用的实操mini手册。

随着kubernetes、容器进一步发展以及对应用的进一步赋能,人们对云原生应用的认识还在进一步深刻中,pivotal在官网上对cloud-native的概念做了进一步总结归纳,建议结合这本书一并学习一下。

img{512x368}
图:Pivotal对云原生概念进一步阐述

图书链接:
《迁移到云原生应用架构》中译版
《Migrating to Cloud-Native Application Architectures》


著名云主机服务厂商DigitalOcean于1月17日发布了其新的主机计划(New Droplet Plan),此次发布是对其原有主机计划的优化,其中入门级Droplet的内存容量从512M升级为1G,SSD磁盘空间从20G升级到25G,但价格不变,依旧是5$/月。如果你已经使用了DigitalOcean服务,可以到后台手动进行Resize以享受增容后的主机性能。如果您还没有使用DigitalOcean,可以去看看DO的vps plan是否满足你的需求。 链接地址:https://m.do.co/c/bff6eed92687

img{512x368}
图:New Plan的价格表


我的联系方式:

微博:http://weibo.com/bigwhite20xx
微信公众号:iamtonybai
博客:tonybai.com
github: https://github.com/bigwhite

微信赞赏:
img{512x368}

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

TB一周萃选[第5期]

本文是首发于个人微信公众号的文章“TB一周萃选[第5期]”的归档。

img{512x368}

人生十鉴

大喜易失言
大怒易失礼
大惊易失态
大哀易失颜
大乐易失察
大惧易失节
大思易失爱
大醉易失德
大话易失信
大欲易失命

下雪,是北方城市冬天的“常规操作”,是最不需要被单独关注的的事情。但今年冬天的“雪”却成为了这边的热门话题,原因:自从入冬以来一直就没下一场像样儿的雪!

雪的姗姗来迟让病毒细菌异常活跃,医院发热门诊尤其是儿科人满为患,笔者入冬后也是连续感冒了两次。好在2018年元旦后没几天,在三九天到来之前,大家期盼已久的“像样儿的雪”终于落了下来。

img{512x368}
图:小区里的初雪

2018年的这第一场雪注定是一场“瑞雪”,它不仅降低了空气的病毒浓度,提升了空气湿度,帮助人们有效抵御病毒入侵人体,而且让缺雪的北方城市瞬间焕发出那冬天独有的“魅力”。

很多事情看起来很难,但一旦捅破了那层窗户纸之后,也就感觉没那么难了。下雪这事儿似乎也是如此,在被第一场雪打了个“样儿”之后,一场场雪便接踵而至了。在笔者撰写本文的时候,窗外还飞舞着洁白的雪花。

一、一周文章精粹

1. Go“不足够好”文章大集合

就像世界上其他事物一样,编程语言也没有完美的,每一门编程语言都有优点,也有“不够好”的地方。Go诞生以来,虽然赞美之声此起彼伏,但对Go的“批评”之声也从未中断过。因此有人就整理了Go“不足够好”文章大集合,供Go设计者反思,供Gopher学习,以更好地、更深刻地理解Go这门语言。

文章链接:“Go is not good enough”

2. 好的Go代码库应该具备的“特征”

Go是一门简洁的编程语言,入门容易,上手快。但写出好的Go代码还是需要一番功夫的。国外的一名gopher总结了“一个好的Go代码库应该具备的特征”,文章中按照依赖、API、错误处理、并发、调试等几个方面列举了诸如:给库打语义版本标签(semantic versioning tag)、除了标准库之外没有第三方依赖、一旦有非标准库的第三方依赖如何应对、不用使用vendor、使用包依赖管理工具、最小化public functions、接收iterface返回struct、避免创建goroutine、避免在公共API中使用channel等特征,强烈推荐每一个gopher阅读学习。

文章链接:好的Go代码库应该具备的“特征”

3. Apollo 2.0发布

在2018 美国消费电子展CES上,百度发布了其无人车平台Apollo的2.0版本,该版本将平台之前宣布的四大模块全部开放,并支持了简单城市道路的自动驾驶。

文章链接:Apollo 2.0

这是我之前写过的一篇文章Apollo 1.0的入门,可以帮助你了解Apollo。

img{512x368}

4. 2018,微服务将结束疯狂

微服务近两年在容器和k8s的赋能下迅速发展,成为架构师口中的“时尚词汇”,每每涉及系统设计,就会首先问是否要做成微服务。一个新事物的出现和发展,有人唱好,自然就会有人看衰。这不,“2018,微服务将结束疯狂”这篇文章就是给“微服务”泼冷水降温的!文章从微服务架构对开发者、运维人员、devops的影响、需要专家级技能、真实世界系统边界模糊、状态复杂性、通信复杂性、版本管理、分布式事务等方面探讨了微服务的劣势,并给出了一个问题列表,建议大家在决定采用微服务之前,用这些问题问问自己,以避免陷入“微服务”泥潭中去。

文章链接:《The Death of microservice madness in 2018》

5. 2017 Google Brain Team的总结 by Jeff Dean

在人工智能的工程领域,Google大神Jeff Dean领导的Brain Team具有举足轻重的地位,也可以说是世界上最好的人工智能实践和研究团队之一了。在2018年伊始,Jeff Dean代表Google Brain Team撰文对团队在2017年的工作及成果进行了总结:包括AutoML、语言理解、机器学习算法、机器学习系统等核心研究工作,以及开源软件Tensorflow、数据集和新的机器学习硬件TPU等方面的最新进展。 对非人工智能领域而言,文章中满满的都是“黑科技”啊,能真正看懂文章中这些内容的朋友你一定也是人工智能领域的大牛了。

img{512x368}
图:Tensorflow用户分布

文章链接:
“2017 Google Brain Team的总结- part1″
“2017 Google Brain Team的总结- part2″
Part1 中文版

6. Javascript工作原理

Javascript诞生之后,估计没人想到过js能像今天这么流行:统治了前端,渗透到了后端,并成为后端服务开发的重要技术栈之一。Js语言也十分简单,但外延也很大,你要至少要深入理解浏览器原理才能更好地发挥JS的威力。sessionstack公司官方blog曾发表了几篇有关Javascript工作原理的文章,可以系统地帮助Javascript了解Js的运行机制。

img{512x368}

文章链接:
Javascript工作原理: 引擎、运行时与调用栈
Javascript工作原理: V8引擎和优化技巧
Javascript工作原理: 内存管理与避免内存泄露的技巧
Javascript工作原理: event loop与async编程

二、一周资料分享

1. 斯坦福大学面向Tensorflow深度学习研究课程

欧美一流大学在计算机技术方面的“与时俱进”的能力与速度真的是十分值得我们学习和借鉴的,尤其是斯坦福这样靠近硅谷的大学,其技术课程更新的速度非常快。Tensorflow于2015年末开源,2017年2月正式发布1.0版本。斯坦福大学在2017年就开了一门新课:“CS 20SI: Tensorflow for Deep Learning Research”,教授学生如何使用Tensorflow进行深度学习研究。

这门课程涵盖了用于深入学习研究的Tensorflow基本原理和使用用法。 目标是帮助学生们理解TensorFlow的graphical computational model,探索它提供的各种功能,并学习如何构建最适合深度学习项目的模型。 课程中学生将使用TensorFlow建立不同复杂度的模型,从简单的线性/逻辑回归到卷积神经网络和递归神经网络,解决词嵌入,单词翻译,光学字符识别,强化学习等任务。 学生还将学习到构建模型和研究实验管理的最佳实践。

资料链接:
CS 20SI: Tensorflow for Deep Learning Research 课程主页
CS 20SI: Tensorflow for Deep Learning Research 2017课程归档

三、一周工具推荐

1. stackedit

自从我的博客转到使用Markdown格式进行编辑后,我就一直使用stackedit提供的在线所见即所得的Markdown编辑器进行内容的编辑。最初的stackedit v4表现的还不强大,随着stackedit v5在线版本的推出,stackedit已经可以满足绝大多数Markdown编辑的功能需求了。

img{512x368}

  • 支持在线/离线管理多个markdown文件
  • 支持多种文件格式导出,包括HTML、PDF、WORD、EPUB
  • 支持文件的云同步,支持Google Drive, Dropbox等主流云存储系统
  • 支持将Markdown直接上传到Blogger/Blogspot, WordPress, Zendesk
  • 支持将Markdown直接发布到GitHub, Gist, Google Drive, Dropbox
    … …

更难得的是stackedit还是一个受关注度极高的开源项目(stars over 1w),你可以自己本地部署一个专用的stackedit。

工具链接:stackedit.io
工具开源项目链接:stackedit

四、一周图书推荐

1.《演讲模式:演讲的技巧与禁忌》

img{512x368}

技术人升级到一定level后,可能少不了要做些演讲、做些培训之类的活动。但对多数技术人而言,演讲这事并不是“舒适区”范围内。市面上有关介绍演讲技巧方面的书可谓是“汗牛充栋”,但这Neal Ford领衔编写的这本书《演讲模式》却独具特色。Neal Ford是Thoughtworks的大神,其他两位作者也是IT圈中的牛人。与其他作者相比,他们更熟悉IT技术人的思维方式,他们也以IT人独特的思维方式,创造性地将建筑和软件开发领域“模式”的概念引入演讲领域,围绕演讲的全过程总结了能迅速有效提升演讲技能的88个模式(应该掌握的技巧)和反模式(应该避免的不好的做法)。对于IT人而言,“模式”这词再熟悉不过了,因此这本书更像是IT技术人员间地手把手地传道解惑。

图书链接:
中文版:《演讲模式:演讲的技巧与禁忌》
英文版:《Presentation Patterns: Techniques for Crafting Better Presentations》


我的联系方式:

微博:http://weibo.com/bigwhite20xx
微信公众号:iamtonybai
博客:tonybai.com
github: https://github.com/bigwhite

微信赞赏:
img{512x368}

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats