分类 新闻 下的文章

今日关注

以界面优美而著称的 elementary OS 0.4 “Loki” 在经过了两个 Beta 版本之后发布了正式版,原本我们以为还会放出 RC 版的。“Loki” 基于 Ubuntu 16.04 LTS,由于是 LTS 版本,会支持到 2021年。

Cody Garver 在发布公告中说,“Loki 是 elementary OS 的最新版本,它是个以设计为导向的开源 Linux 操作系统,用于桌面计算机和笔记本电脑。它接替了发布于 2015 年 4 月的 Freya,它已经下载多达 120 万次 。”

elementary OS 0.4 “Loki” 最引人注目的地方是其重新打造的系统指示器,包括音乐、电源、蓝牙、日期与时间、网络等等,以及新的提示中心、多个应用菜单改进、重新设计的系统设置面板、更好的隐私保护、更加安全可靠。

图文摘要

Linux Mint 18 "Sarah" KDE 版正式发布。它是基于 Ubuntu 16.04 LTS 的,同样会支持 5 年。

每年都在一个欧洲城市举办的 GUADEC 2017 会议定于英国的 曼彻斯特 Manchester 召开。因此,按照去年召开的 GUADEC 2015 的规定,GNOME 3.26 的开发代号也将叫做“Manchester”。GNOME 3.24 将于明年 3 月正式发布,而 3.26 则计划在 9 月发布,再过几天 GNOME 3.22 就要发布了。

Greg Kroah-Hartman 宣布 Linux LTS 内核 3.14 结束了其支持周期,强烈建议使用该系列内核的用户马上升级到 4.4 LTS 或最新稳定版 4.7.3。

VirtualBox 5.1.6 发布,首次支持最新的 Linux 4.8 内核。

LFS 和 BLFS 发布 7.10,不再支持 Qt4 和 KDE4 。

十年以后,Vim 终于发布了一个新的大版本 8.0,结束了从 2006 年 5 月 7 日开始的 7.0 世代。虽然这十年间,Vim 也一直在不断更新,从 7.0 到三年前的 7.4,每隔一两年或两三年就会有个小版本更新,但是这次跨越大版本更新,带来了不少新的特性,据说有一些是从其它的 Vi 流派吸收来的特性。

什么是 Vim?

虽然说我认为能看到这篇文章的人应该都知道 Vim 是什么,不过作为一篇正式宣告 Vim 8.0 发布的新闻,我还是郑重其事的来给 Vim 做个说明吧。

Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本。它增加了许多功能,包括:多级撤销、格式高亮、命令行历史、在线帮助、拼写检查、文件名补完、块操作、脚本支持,等等。除了字符界面版本之外,它也有图形界面版本(比如 gVim)。虽然 Vi 还在继续维护当中,但是大部分人都只在使用 Vim 了,你所见到和听到的大多是指 Vim——虽然你的命令名可能是 Vi。

这个编辑器常用于程序员、系统管理员、黑客们进行编程和文本编辑。不像某些编辑器,它所有的命令都采用普通的键盘字符,因此在你的如飞般的十指之下,它的输入和操作速度非常快。当然,你也可以将功能键映射到某些命令上,甚至还可以支持鼠标。

除了 Linux 之外,Vim 还可以运行在 MS-Windows (NT、2000、XP、Vista、7、8、10)、苹果、VMS 和几乎所有的 UNIX 分支上。 Vim 的旧版本还可以运行在 MS-DOS、MS-Windows 95/98/Me、Amiga DOS、Atari MiNT、BeOS、RISC OS 和 OS/2 上,不过新版本不再支持了。

主要更新

8.0 版本中除了大量的细节改进和错误修复以外,主要支持以下的新功能:

支持异步 I/O 和 通道 channel

Vim 现在可以和后台的其它进程进行消息交互。这样就可以开发一个运行在后台的服务器,并将结果发回给 Vim,这种交互方式称之为 通道 channel 。在通道中使用 JSON 传递消息,因此你可以用任何一种语言来开发后台服务器,只需要它支持 JSON 即可。通过支持这种技术可以实现一些功能非常复杂的插件。

任务

Vim 现在也能启动一个任务,并与之通讯或停止它。比如说,可以启动一个用于自动补完、格式检查等功能的进程。在任务和 Vim 之间的通讯是通过通道完成的。

定时器

另外一个异步工作的是 定时器 timer ,可以启动一个定时器并不断重复调用某个函数。比如:let tempTimer = timer_start(4000, 'CheckTemp')

Partial

Vim 已经有了一个 Funcref 功能,这是一个函数引用。partial 也是一个函数引用,但是它可以绑定参数或字典。这对于频道或定时器的回调很有用。 比如:let tempTimer = timer_start(4000, function('CheckTemp', ['out']))

Lambda 和闭包

lambda 是创建函数最快的方式,比如:{args -> expr}。它对于 filter() 和 map() 很有用,而且还支持函数参数。如:call filter(mylist, {idx, val -> val > 20})

lambda 可以使用定义 lambda 表达式范围内的变量,这常被称之为 闭包 closure

插件包

插件越来越多了,为了更好的管理插件,因此支持了插件包的支持。

窗口 ID

以前 Vim 中的窗口只能通过数字编号来访问,当打开、关闭或移动窗口时,这个数字也随之而变。现在每个窗口都有了一个唯一的 ID,可以更方便的找到它们。

折行缩进

新增的 'breakindent' 选项可以保证在折行时维持缩进不变。

Windows:支持 DirectX

新增的 'renderoptions' 选项可以在 Windows 上切换到 DirectX (DirectWrite)引擎上。

支持 GTK+ 3

一般用户很难注意到 GTK+ 3 和 GTK+ 2 的区别。对这两者的配置仍然都支持。

更多的变化细节,可以参考这里

下载

得到最新版本的 Vim 的最好方式是使用 Git :

git clone https://github.com/vim/vim.git 

更多信息可参考: http://www.vim.org/git.php

UNIX/Linux

源代码及运行时文件: <ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2> 。

在 Linux 下,你总可以使用你的软件包管理器来安装最新的 Vim 8.0,不过如果你的发行版仓库还没有提供的新的 8.0 的话,你可以享受一下自己编译的乐趣。

如果你希望按照你自己的想法定制一个 Vim,那你可以下载源代码,并在 src 目录里面进行编译,可以参考 src/INSTALL 了解如何编译和安装。

Windows

安装程序:<ftp://ftp.vim.org/pub/vim/pc/gvim80.exe>

运行时文件: <ftp://ftp.vim.org/pub/vim/pc/vim80rt.zip>

Windows 95/98/NT/2000/XP/7 图形界面版: ftp://ftp.vim.org/pub/vim/pc/gvim80.zip

带有 OLE 支持的版本: <ftp://ftp.vim.org/pub/vim/pc/gvim80ole.zip>

Windows NT/2000/XP/7 字符界面版:<ftp://ftp.vim.org/pub/vim/pc/vim80w32.zip>

8.0 不再支持的版本

  • 16 位的 DOS、OS/2 和 Amiga 版本
  • 32 位的 MS-DOS/Windows 95/98 的字符界面版
  • 16 位的 MS-Windows 版本

文档与帮助

对于初学者来说,有一个叫 vimtutor 的一小时教程可以看看(当然是英文的),请通过 :help tutor 了解更多信息。

学习 Vim 的最好方式之一是在 Vim 中使用:help,如果你还没有 Vim 二进制程序,你也可以看看 runtime/doc/help.txt,它包含了对其它文档的指引。这个用户手册就像一本书一样,推荐使用它来学习 Vim。详见 :help user-manual

不知不觉,LCTT 已经成立三年了,对于我这样已经迈过四张的人来说,愈发的感觉时间过得真快。

这三年来,我们 LCTT 经历了很多事情,有些事情想起来仍恍如昨日。

三年前的这一天,我的一个偶发的想法促使我在 Linux 中国的 QQ 群里面发了一则消息,具体的消息内容已经不可考了,大意是鉴于英文 man 手册的中文翻译太差,想组织一些人来重新翻译。不料发出去之后很快赢得一些有热情、有理想的小伙伴们的响应。于是我匆匆建了一个群,拉了一些人进来,甚至当时连翻译组的名称都没有确定。LCTT (Linux.Cn Translation Team)这个名称都是后来逐步定下来的。

关于 LCTT 的早期发展情况,可以参考 LCTT 2014 年周年总结

虽然说“翻译 man 手册”这个最初建群的目标因为种种原因搁浅而一直未能重启,但是,这三年来,我们组织了 213 位志愿者翻译了 2155 篇文章,接受了 4263 个 PR,得到了 476 个星。

这三年来,我们经历了 man 项目的流产、 LFS 手册的翻译发布、选题 DeadFire 的离去。得益于 Linux 中国的网站和微博,乃至微信的兴起后的传播,志愿者们的译文传播很广,切实的为国内的开源社区做出了贡献(当然,与此同时,Linux 中国社区也随之更加壮大)。

这些年间,LCTT 来了很多人,也有人慢慢淡出,这里面涌现了不少做出了卓越贡献的人,比如:

  • geekpi,作为整个 LCTT 项目中翻译量最大贡献者,却鲜少在群内说话,偶尔露面,被戏称为“鸡排兄”。
  • GOLinux,紧追“鸡排兄”的第二位强人,嗯,群内大部分人的昵称都是他起的,包括楼上。
  • tinyeyeser,“小眼儿”以翻译风趣幽默著称,是 LCTT 早期初创成员之一。
  • Vito-L,早期成员,LCTT 的多数 Wiki 出自于其手。
  • DeadFire,创始成员,从最开始到其离世,一直负责 LCTT 的所有选题工作。
  • oska874,在接过选题工作的重任后,全面主持 LCTT 的工作。
  • carolinewuyan,承担了相当多的校对工作。
  • alim0x,独立完成了 Android 编年史系列的翻译(多达 26 篇,现在还没发布完)等等。

其它还有 ictlyh、strugglingyouth、FSSlc、zpl1025、runningwater、bazz2、Vic020、dongfengweixiao、jasminepeng、willqian、vizv、ZTinoZ、martin2011qi、felixonmars、su-kaiyao、GHLandy、flsf、H-mudcup、StdioA、crowner、vim-kakali 等等,以及还有很多这里没有提到名字的人,都对 LCTT 做出不可磨灭的贡献。

具体的贡献排行榜,可以看这里

每年写总结时,我都需要和 gource 以及 ffmpeg 搏斗半天,今年,我又用 gource 重新制作了一份 LCTT 的 GitHub 版本仓库的变迁视频,以飨众人。

本来想写很多,或许 LCTT 和 Linux 中国已经成了我的生活的一部分,竟然不知道该写点什么了,那就此搁笔罢。

另外,为 LCTT 的诸位兄弟姐妹们献上我及管理团队的祝福,也欢迎更多的志愿者加入 LCTT ,传送门在此:

  • 项目网站:https://lctt.github.io/ ,请先访问此处了解情况。
  • “Linux中国”开源社区:https://linux.cn/ ,所有翻译的文章都在这里以及它的同名微博、微信发布。

LCTT 组长 wxy

2016/9/10

今日关注

四年后,Adobe 为 Linux 再次发布了新版的 Flash 插件。然而,并没有人在意。

可能很多资深 Linuxer 都记得,四年前,Adobe 决定停止支持 Linux 下的 Flash 插件,当时,Linux 世界对此表示相当的不满——虽然 Flash 插件有各种问题,但是, Adobe 的态度居然是不玩了?!不过,世界并不会因此而停止转动,这些年来,没有了 Adobe Flash,H5 已经大行其道了,现在,谁还在意有没有 Flash 插件呢?

这次的更新看起来主要是修复一些问题和安全缺陷,同时 Windows 和 Mac OS 平台也得到了更新。

此外, Adobe 不久前宣布 2017 年的时候会放弃 NPAPI 版本的 Flash 插件,不过这次他们还是为 Linux 发布了 NPAPI 和 PPAPI 两个版本的插件,希望得到社区的反馈——毕竟还是有一些主流站点在使用 Flash 提供部分功能。

图文摘要

前 Kubuntu 项目维护者 Jonathan Riddell 发布了新的在线服务: KDE 商店,用于替代久不更新的 openDesktop.org,并包含了许多来自 openDesktop.org 的软件。它可以让应用开发者们在上面发布项目分享给全世界。据称它将会支持 Snap、Flatpak 和 AppImage 等格式。

《上古卷轴 3》的开源重制版 openMW 发布了 0.40.0 版本。

Git 2.10 发布,带来了多达 150 处的更新。

著名的开源的 托管管理器 hosted hypervisor QEMU 发布了 2.7.0 版本,支持 Xen 半虚拟化的 USB 、virtio-blk 设备的多队列支持等。

我们很高兴地宣布你现在可以在 Azure SQL 中查询及存储关系型数据或者 JSON 了、Azure SQL 数据库提供了读取 JSON 文本数据的简单的内置函数,将 JSON 文本转化成表,以及将表的数据转化成 JSON。

你可以使用 JSON 函数来从 JSON 文本中提取值(JSON\_VALUE)、提取对象(JSON\_QUERY), 更新JSON 中的值(JSON\_MODIFY),并且验证 JSON 文本的正确性(ISJSON)。OPENJSON 函数让你可以将 JSON 文本转化成表结构。最后,JSON 功能函数可以让你很简单地从 SQL 查询中使用 FOR JSON 从句来获得 JSON 文本结果。

你可以用 JSON 做什么?

Azure SQL 数据库中的 JSON 可以让您构建并与现代 web、移动设备和 HTML5/单页应用、诸如 Azure DocumentDB 等包含 JSON 格式化数据的 NoSQL 存储等交换数据,分析来自不同系统和服务的日志和消息。现在你可以轻易地将 Azure SQL 数据库与任何使用使用 JSON 的服务集成。

轻易地开放数据给现代框架和服务

你有没有在使用诸如 REST 或者 Azure App 使用 JSON 来交换数据的服务?你有使用诸如 AngularJS、ReactJS、D3 或者 JQuery 等使用 JSON 的组件或框架么?使用新的 JSON 功能函数,你可以轻易地格式化存储在 Azure SQL 数据库中的数据,并将它用在任何现代服务或者应用中。

轻松采集 JSON 数据

你有在使用移动设备、传感器、如 Azure Stream Analytics 或者 Insight 这样产生 JSON 的服务、如 Azure DocumentDB 或者 MongoDB 这样存储 JSON 的系统么?你需要在 Azure SQL 数据中使用熟悉的 SQL 语句来查询并分析 JSON 数据么?现在你可以轻松采集 JSON 数据并存储到 Azure SQL 数据库中,并且可以使用任何 Azure SQL 数据库支持的语言或者工具来查询和分析加载的数据。

简化你的数据模型

你需要同时存储及查询数据库中关系型及半结构化的数据么?你需简化像 NoSQL 平台下的数据模型么?现在你可以在一张表中同时存储结构化数据及非结构化数据了。在 Azure SQL 数据库中,你可以同时从关系型及 NoSQL 的世界中使用最好的方法来调整你的数据模型。Azure SQL 数据库让你可以使用 Transact-SQL 语言来查询关系及 JSON 数据。程序和工具将不会在从表中取出的值及 JSON 文本中提取的值看出差别。

下一步

要学习如何在你的应用中集成 JSON,查看我们的开始学习页面或者 Channel 9的视频。要了解不同的情景下如何集成 JSON,观看 Channel 9 的视频或者在这些 JSON 分类文章中查找你感兴趣的使用情景。

我们将持续增加新的 JSON 特性并让 JSON 支持的更好。请敬请关注。


via: https://azure.microsoft.com/en-us/blog/json-support-is-generally-available-in-azure-sql-database/

作者:Jovan Popovic 译者:geekpi 校对:wxy

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

微软终于发布了 TypeScript 2.0 的第一个 RC 版本。TypeScript 是一个简化版的 JavaScript 语言,被大量用于各种 Web 项目,包括下面提到的著名的 AngularJS 框架。

TypeScript 2.0 中主要的特性是“ 标签结合 tagged unions ”,这个特性可以将两个不同的数据结构联合到一起。你可以把它想象成将一个圆圈和一个方块放一起,这个隐喻来自微软解释标签结合的博文中。

支持标签结合的语言包括 C++、 Scala、 F#、Rust 和 Swift 等等。支持这种特性的原因是,标签结合可以改进类型安全,并减少经常困扰开发者的类型错误。

而另外一方面,Google 也有一些动作……

Google 已经谈论 AngularJS 2.0 很久了。很多人都期望 Google 能在去年底发布 2.0 的稳定版,不过我们听说,就算是到了今年年底也不会见到稳定版。

不过,也快了!Google 今天宣布发布了 Angular 2.0 RC6,支持国际化(I18N)、更多的表单功能,并由于对 Ahead of Time (AoT) 的兼容和支持 ES6 2015 模块而改进了性能。

同时 Google 也宣布发布了 Angular Material 1.1,这是一个 AngularJS 的 UI 组件包。Angular Material 2.x 当前还处于 alpha 阶段,看起来会在 AngularJS 2.0 发布之后才会面世。当前,Angular Material 2.x 已经从 6 个组件增加到了 18 个组件了。