2019年9月

Go 编程语言于 2009 年首次公开发布,此后被广泛使用。特别是,Go 已经成为云基础设施领域的一种代表性语言,例如 KubernetesOpenShiftTerraform 等大型项目都使用了 Go。

Go 越来越受欢迎的原因是性能好、易于编写高并发的程序、语法简单和编译快。

让我们来看看如何在 Fedora 上开始 Go 语言编程吧。

在 Fedora 上安装 Go

Fedora 可以通过官方库简单快速地安装 Go 语言。

$ sudo dnf install -y golang
$ go version
go version go1.12.7 linux/amd64

既然装好了 Go ,让我们来写个简单的程序,编译并运行。

第一个 Go 程序

让我们来用 Go 语言写一波 “Hello, World!”。首先创建 main.go 文件,然后输入或者拷贝以下内容。

package main

import "fmt"

func main() {
     fmt.Println("Hello, World!")
}

运行这个程序很简单。

$ go run main.go
Hello, World!

Go 会在临时目录将 main.go 编译成二进制文件并执行,然后删除临时目录。这个命令非常适合在开发过程中快速运行程序,它还凸显了 Go 的编译速度。

编译一个可执行程序就像运行它一样简单。

$ go build main.go
$ ./main
Hello, World!

使用 Go 的模块

Go 1.11 和 1.12 引入了对模块的初步支持。模块可用于管理应用程序的各种依赖包。Go 通过 go.modgo.sum 这两个文件,显式地定义依赖包的版本。

为了演示如何使用模块,让我们为 hello world 程序添加一个依赖。

在更改代码之前,需要初始化模块。

$ go mod init helloworld
go: creating new go.mod: module helloworld
$ ls
go.mod main  main.go

然后按照以下内容修改 main.go 文件。

package main

import "github.com/fatih/color"

func main () {
     color.Blue("Hello, World!")
}

在修改后的 main.go 中,不再使用标准库 fmt 来打印 “Hello, World!” ,而是使用第三方库打印出有色字体。

让我们来跑一下新版的程序吧。

$ go run main.go
Hello, World!

因为程序依赖于 github.com/fatih/color 库,它需要在编译前下载所有依赖包。 然后把依赖包都添加到 go.mod 中,并将它们的版本号和哈希值记录在 go.sum 中。


via: https://fedoramagazine.org/getting-started-with-go-on-fedora/

作者:Clément Verna 选题:lujun9972 译者:hello-wn 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

不要错过两周以来最大的开源头条新闻。

 title=

在本期的开源新闻综述中,我们来看看谷歌发布的两个开源软件、Twitter 的最新可观测性工具、动漫工作室对 Blender 的采用在增多等等新闻!

谷歌的开源双响炮

搜索引擎巨头谷歌的开发人员最近一直忙于开源。在过去的两周里,他们以开源的方式发布了两个截然不同的软件。

第一个是 Android 的语音识别和转录工具 Live Transcribe 的语音引擎,它可以“在移动设备上使用机器学习算法将音频变成实时字幕”。谷歌的声明称,它正在开源 Live Transcribe 以“让所有开发人员可以为长篇对话提供字幕”。你可以在 GitHub 上浏览或下载 Live Transcribe 的源代码。

谷歌还为 Android 和 iOS 开源了手势跟踪软件,它建立在其 MediaPipe 机器学习框架之上。该软件结合了三种人工智能组件:手掌探测器、“返回 3D 手点”的模型和手势识别器。据谷歌研究人员称,其目标是改善“跨各种技术领域和平台的用户体验”。该软件的源代码和文档可在 GitHub 上获得

Twitter 开源 Rezolus 遥测工具

当想到网络中断时,我们想到的是影响站点或服务性能的大崩溃或减速。让我们感到惊讶的是性能慢慢被吃掉的小尖峰的重要性。为了更容易地检测这些尖峰,Twitter 开发了一个名为 Rezolus 的工具,该公司已将其开源

我们现有的按分钟采样的遥测技术未能反映出这些异常现象。这是因为相对于该异常发生的长度,较低的采样率掩盖了这些持续时间大约为 10 秒的异常。这使得很难理解正在发生的事情并调整系统以获得更高的性能。

Rezolus 旨在检测“非常短暂但有时显著的性能异常”——仅持续几秒钟。Twitter 已经运行了 Rezolus 大约一年,并且一直在使用它收集的内容“与后端服务日志来确定峰值的来源”。

如果你对将 Rezolus 添加到可观测性堆栈中的结果感到好奇,请查看 Twitter 的 GitHub 存储库中的源代码。

日本的 Khara 动画工作室采用 Blender

Blender 被认为是开源的动画和视觉效果软件的黄金标准。它被几家制作公司采用,其中最新的是日本动漫工作室 Khara

Khara 正在使用 Blender 开发 Evangelion: 3.0+1.0,这是基于流行动漫系列《Neon Genesis Evangelion》的电影系列的最新版本。虽然该电影的工作不能在 Blender 中全部完成,但 Khara 的员工“将从 2020 年 6 月开始使用 Blender 进行大部分工作”。为了强调其对 Blender 和开源的承诺,“Khara 宣布它将作为企业会员加入 Blender 基金会的发展基金。“

NSA 分享其固件安全工具

继澳大利亚同行共享他们的一个工具之后,美国国家安全局(NSA)正在提供的一个项目的成果“可以更好地保护机器免受固件攻击“。这个最新的软件以及其他保护固件的开源工作可以在 Coreboot Gerrit 存储库下找到。

这个名为“具有受保护执行的 SMI 传输监视器”(STM-PE)的软件“将与运行 Coreboot 的 x86 处理器配合使用”以防止固件攻击。根据 NSA 高级网络安全实验室的 Eugene Meyers 的说法,STM-PE 采用低级操作系统代码“并将其置于一个盒子中,以便它只能访问它需要访问的设备系统”。这有助于防止篡改,Meyers 说,“这将提高系统的安全性。”

其它新闻

一如既往地感谢 Opensource.com 的工作人员和主持人本周的帮助。


via: https://opensource.com/19/8/news-august-31

作者:Scott Nesbitt 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2019 年 8 月 17 - 18 日,我参加了心念已久的在台湾连续举办了 14 届的 COSCUP 2019,并在会后,进行了一系列的开源访谈,以期促进两岸的开源软件、开源社群、开源人的交流。

这次的台湾之行,也让我看到了两岸在开源之间的差异,因此,希望能够通过这一篇文章,让更多的大陆开源人,看到不同的世界,了解多元的开源世界。

源自长荣航空广告

Just For Fun 的开源事业

Linux 之父 Linus Torvalds 有一本书 《Just For Fun》,在中国大陆的书名是 《只是为了好玩》(也有译作《一生只为寻欢笑》),这一句话,在我看来,很好的表现出台湾开源人的精神风貌。

在台湾参会期间,令我印象最为深刻的,莫过于所有议程结束后的 Lighting Talk。

Lighting Talk,闪电演讲,每个人都只有 5 分钟完成自己的演讲,如果没有完成,就会被主持人拔掉电源,强制停止演讲。在这五分钟里,每一个演讲者都竭尽所能,将自己的演讲内容完成。

现在听起来似乎还很正常?但是当你看到演讲者的题目,就会觉得不那么正常了。

今年的 COSCUP 的 Lighting Talk 的主题是这样的

  • 聖家堂與軟體開發 by hlb
  • 開源與 COSCUP 起源圖文 by 唐唐
  • 不務正業工程師成長之路 by 聽風
  • How to get beer using Pinpoint by HyunGil Jeong
  • HackMD feat. XXX by 黃鈺凱
  • 如何(物理上的)延長你的工程師生涯 by LSChyi
  • 機房監控酷炫上手 by Haraguroicha Hsu
  • 我在Taipei Ethereum Meetup的跳坑滅頂全記錄 by Jerry Ho
  • 基於數據科學的房地產價格預測,做成Chat bot應用,最後如何被政府一句話終止開發 - 柯克
  • 如何才能做好自己的工作Side Project by 白宦成
  • 4分鐘看Free list的演進 by Julian
  • 報到 App - OPass 專案回顧及展望 by Denny Huang

你会看到,大家提供的议题并不像我们在大陆所提交的议题那样,高端大气上档次,反而是十分的接地气,大家在起标题时,选择的也是尽可能有意思的话题,并以此来吸引参会者来听。

或许你会想,只是一个 Lighting Talk,随意一点也正常,正式的议题肯定就很正经了,然而,并不是。

正式的议题是这样的:

  • 懶惰鬼的函數式爬蟲 ー 以 Tezos 應用需求為例
  • 當 Rails 遇上 Docker,環境部署原來是這樣!?
  • 開拓者們建立鐵道的辛酸血淚史
  • 前端開發的再次典範轉移 - 如何走出混亂並讓複雜變的可掌控
  • 你媽知道你在用 PostgreSQL 看 PTT 嗎?

是的,正式议题也并不那么正式,也带有一丝戏谑和玩笑。回过头来看我们的大会的议题,支撑亿级 XX 的 XX 平台架构实践XXX 面对亿级并发场景的组件体系设计,此类型的议题数不胜数。一场大会,从头到尾都是亿级流量,如今的架构师,如果没有扛过亿级流量,都没有资格上大会。

这种差异,使得两岸的开源会议的参与者完全不同。大陆的会议主题大多高端大气上档次,其门票也一样的高端大气上档次,使得大家根本提不起兴趣来自费参会,加上会议总是会在工作日举办,导致如果你想要自费参会,所要付出的成本是极高的。而台湾的会议主题则相对更加的接地气,门票一样接地气,针对开源贡献者,更是提供的免费的门票,让你可以开开心心参会。

台湾开源推崇的便是 “Just For Fun”,首先先要让开发者 Happy ,然后才是考虑产品的商业利益,让爱好,变为财富。首先学会快乐,再学会成功。

而大陆开源推崇的更多是“利益至上”,我如何让我的产品击败别人的产品?开发者先要考虑商业的利益,再去考虑自己的爱好。从一开始,便与利益挂钩,后续,便再也难于利益脱钩。

当然,我不能只是一味的说,台湾的开源更活泼、更有生机,我们也需要看到其后的原因,并提出相应的解决方案。

台湾之所以更活跃,首先应当是开源项目主要由个人及小企业主导。对于个人主导的开源项目来说,因为没有重重的 KPI,所以拥有更多的活力,开发者会大量投入自己的精力去完成、完善、推广一个项目。对于小企业主导的项目,则是希望帮助小企业在残酷的商业竞争中获取一定的竞争优势,有一个社区所认可的开源项目显然比没有要好。此外,这些小企业的团队领导人大多是从工程师起来的,所以对于开源社区、开源贡献是有认同感的,他们会思考,我的项目能够活下来,是得益于开源社区的贡献,因此,我需要也为社区做一些贡献。

而大陆的开源项目则更多是以企业主导,背负着特定的 KPI,大家做开源的动力难免不足。一方面,工作的压力使得不少人在工作之余,根本没有时间去做开源项目。另一方面,企业主导的开源项目因为也会背负一些从开源到业务引流的 KPI,也使得整个过程失去了快乐与活力。同时,大陆的企业领导者大多不是工程师,而是产品、商务等岗位,这会使得他们对于开源社区、开源软件没有认同感,他们也不会觉得,自己使用了开源软件,就需要为开源社区做出贡献。此外,大陆的开源教育也做的并不好,我们太过于看重成败,使得原本一些不错的项目,可能因为惧怕失败而放弃开源,如果我们不去看重成败,而是将更多的心思放在开源本身的价值,或许我们可以做的更好。

就像前面的长荣航空的广告中所言,在学会赢之前,先学会享受了玩的乐趣,也因此,才有了“乐在其中,才会无限精彩”。对于大陆的我们,或许需要找回自己最初的初心,享受生活、享受工作,让自己的工作不再是抑制成长的压力,而是推动我们前进的动力。

当然, Just For Fun 并非全然没有问题的,就如 Skywalking 的创始人吴晟老师所言,开源不能仅仅是 Just For Fun ,如果没有一个好的商业目标,一个好的开源项目可能随时因为创始人的离去而失去维护者。相比之下,一个好的商业目标虽然看起来与起初的目标相冲突,但是终归确保了开源项目的长期运转,也不失是一种贡献。

(题图来自:2019!開源久酒!

什么技术运行在 Linux 上?你可能会惊讶于日常生活中使用 Linux 的频率。

现在 Linux 几乎可以运行每样东西,但很多人都没有意识到这一点。有些人可能知道 Linux,可能听说过超级计算机运行着这个操作系统。根据 Top500,Linux 现在驱动着世界上最快的 500 台计算机。你可以转到他们的网站并搜索“Linux”自己查看一下结果。

NASA 运行在 Linux 之上

你可能不知道 Linux 为 NASA(美国国家航空航天局)提供支持。NASA 的 Pleiades 超级计算机运行着 Linux。由于操作系统的可靠性,国际空间站六年前从 Windows 切换到了 Linux。NASA 甚至最近给国际空间站部署了三台运行着 Linux 的“Astrobee”机器人。

电子书运行在 Linux 之上

我读了很多书,我的首选设备是亚马逊 Kindle Paperwhite,它运行 Linux(虽然大多数人完全没有意识到这一点)。如果你使用亚马逊的任何服务,从亚马逊弹性计算云(Amazon EC2) 到 Fire TV,你就是在 Linux 上运行。当你问 Alexa 现在是什么时候,或者你最喜欢的运动队得分时,你也在使用 Linux,因为 Alexa 由 Fire OS(基于 Android 的操作系统)提供支持。实际上,Android) 是由谷歌开发的用于移动手持设备的 Linux,而且占据了当今移动电话的76% 的市场

电视运行在 Linux 之上

如果你有一台 TiVo,那么你也在运行 Linux。如果你是 Roku 用户,那么你也在使用 Linux。Roku OS 是专为 Roku 设备定制的 Linux 版本。你可以选择使用在 Linux 上运行的 Chromecast 看流媒体。不过,Linux 不只是为机顶盒和流媒体设备提供支持。它也可能运行着你的智能电视。LG 使用 webOS,它是基于 Linux 内核的。Panasonic 使用 Firefox OS,它也是基于 Linux 内核的。三星、菲利普斯以及更多厂商都使用基于 Linux 的操作系统支持其设备。

智能手表和平板电脑运行在 Linux 之上

如果你拥有智能手表,它可能正在运行 Linux。世界各地的学校系统一直在实施一对一系统,让每个孩子都有自己的笔记本电脑。越来越多的机构为学生配备了 Chromebook。这些轻巧的笔记本电脑使用 Chrome OS,它基于 Linux。

汽车运行在 Linux 之上

你驾驶的汽车可能正在运行 Linux。 汽车级 Linux(AGL) 是一个将 Linux 视为汽车标准代码库的项目,它列入了丰田、马自达、梅赛德斯-奔驰和大众等汽车制造商。你的车载信息娱乐(IVI)系统也可能运行 Linux。GENIVI 联盟在其网站称,它开发了“用于集成在集中连接的车辆驾驶舱中的操作系统和中间件的标准方法”。

游戏运行在 Linux 之上

如果你是游戏玩家,那么你可能正在使用 SteamOS,这是一个基于 Linux 的操作系统。此外,如果你使用 Google 的众多服务,那么你也运行在 Linux上。

社交媒体运行在 Linux 之上

当你刷屏和评论时,你可能会意识到这些平台正在做的很多工作。也许 Instagram、Facebook、YouTube 和 Twitter 都在 Linux 上运行并不令人惊讶。

此外,社交媒体的新浪潮,去中心化的联合社区的联盟节点,如 MastodonGNU SocialNextcloud(类似 Twitter 的微博平台)、Pixelfed(分布式照片共享)和Peertube(分布式视频共享)至少默认情况下在 Linux 上运行。由于开源,它们可以在任何平台上运行,这本身就是一个强大的优先级。

商业和政务运行在 Linux 之上

与五角大楼一样,纽约证券交易所也在 Linux 上运行。美国联邦航空管理局每年处理超过 1600 万次航班,他们在 Linux 上运营。美国国会图书馆、众议院、参议院和白宫都使用 Linux。

零售运行在 Linux 之上

最新航班座位上的娱乐系统很可能在 Linux 上运行。你最喜欢的商店的 POS 机可能正运行在 Linux 上。基于 Linux 的 Tizen OS 为智能家居和其他智能设备提供支持。许多公共图书馆现在在 EvergreenKoha 上托管他们的综合图书馆系统。这两个系统都在 Linux 上运行。

Apple 运行在 Linux 之上

如果你是使用 iCloud 的 iOS 用户,那么你也在使用运行在 Linux 上的系统。Apple 公司的网站在 Linux 上运行。如果你想知道在 Linux 上运行的其他网站,请务必使用 Netcraft 并检查“该网站运行在什么之上?”的结果。

路由器运行在 Linux 之上

在你家里将你连接到互联网的路由器可能正运行在 Linux 上。如果你当前的路由器没有运行 Linux 而你想改变它,那么这里有一个优秀的方法

如你所见,Linux 从许多方面为今天的世界提供动力。还有什么运行在 Linux 之上的东西是人们还没有意识到的?请让我们在评论中知道。


via: https://opensource.com/article/19/8/everyday-tech-runs-linux

作者:Don Watkins 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出