2020年11月

Jupyter 不仅仅是一个数据分析工具,让我们看看如何以最有创意的方式使用这个基于 Python 的软件。

Jupyter 项目提供了用 JupyterLab 和 Jupyter Notebook 等交互式编写软件的技术方式。这个软件通常用于数据分析,但你可能不知道(Jupyter 社区也没有想到),你可以用它做多少事情。

以下是我使用 Jupyter 的五大意想不到的创造性方法。

1、处理图像

图像编辑和处理方面,有很多很好的开源工具 —— 从那些可以与 Photoshop 媲美的工具到实验性的 Glimpse。但即使有这么多选择,有时我还是不想离开 Python 的世界。

幸运的是,Jupyter 是一个做轻量级图像处理的好选择。利用 Jupyter 直接将 Pillow 对象显示为图像的优势,让你可以尽情地对图片进行实验。我甚至还用它给孩子做了一个涂色画

2、做一个 SSH 跳板遥控器

由于 JupyterLab 可以让你上传和下载文件、编辑文件,甚至运行终端,所以它拥有制作 SSH 跳板环境所需的所有部件。

通过一些 SSH 转发魔法,你可以让 Jupyter 成为防火墙另一边的远程控制台

3、开发 Web 应用程序

我最喜欢的使用 Jupyter 的方式之一是用于一种意想不到的软件开发。我做了一次演讲,在演讲中,我使用 Jupyter Notebook 实时开发了一个 Web 应用。讲演的最后是一个简单的表单,它是 XSS 和 CSS 安全的,并包括一些轻量级的服务器端计算。

一个日常的 Jupyter 用户可能不会期望它是一个最棒的 Web 开发环境,但它是一个非常强大的环境。

4、从你喜欢的服务中提取报告

JupyterLab 中的数据分析是一种常见的用法,但 自我提升分析 self-improvement analysis 呢?

你可以使用 Jupyter 来分析你的日历。如果你最喜欢的服务允许 API 导出,甚至可以让你导出一个 CSV,你可以将这些与你的日历进行关联。如果你发现你在社交媒体上发帖的时候,你的日历上写着你应该和你的经理开会,那 Jupyter 也救不了你!

5、开发游戏

对于扩大对 Jupyter Notebook 的期望值,我最喜欢的方式是和孩子一起建立一个游戏。我之前写过这方面的文章,有一个使用 PursuedPyBear 和 Jupyter 编写游戏的分步教程。

在试图弄清游戏机制时,这种迭代式的游戏开发方法特别有用。能够在游戏中途改变规则(对不起,我必须得这样做)是一个改变游戏规则的方法。

你甚至可以使用 IPywidgets 来修改数字参数,就像这个视频所示。

下载电子书

JupyterLab 和 Jupyter Notebooks 提供了一个不可思议的实验环境。下载这本指南,其中包含了以令人吃惊的方式使用 Jupyter 的教程。

你是如何以创造性的方式使用它的?在下面的评论中分享你的最爱。


via: https://opensource.com/article/20/11/surprising-jupyter

作者:Moshe Zadka 选题:lujun9972 译者:wxy 校对:wxy

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

可以使用相同的机器用于工作和个人的 Git 提交,而无需手动重置你的配置。

Git 的 git config 命令可以让你为 Git 设置仓库或全局选项。它有很多选项,其中的一个选项 includeIf 在你使用在 Git 时有双重角色时非常方便,比如说,你既是全职的开发者,又在业余时间为开源项目做贡献。在这种情况下,大多数人都不想为两个角色使用一个共同的配置,或者,至少,他们肯定希望保持配置的某些部分是不同的,尤其是当他们在两个角色中使用同一台计算机时。

我的情况就是这样,所以我在 Git 配置中保留了两组不同的邮件 ID。这样一来,在我工作场所的项目仓库中提交的内容就会使用我办公室的邮件 ID,而在我个人 GitHub 帐户中提交的内容则使用我个人的邮件 ID。

以下是我的全局配置(维护在 $HOME/.gitconfig)中的一个片段,我将在下文中介绍。

[includeIf "gitdir:~/priv_scm/"]
        path = ~/priv_scm/.gitconfig
[includeIf "gitdir:~/work_scm/"]
        path = ~/work_scm/.gitconfig

什么是 includeIf?

includeIf.condition.path 变量,是 include 配置指令的一部分,允许你有条件地设置自定义配置。同时,自定义配置的路径也可以作为指令的一部分来设置。

这个指令支持三个关键字:gitdirgitdir/Ionbranch。我将简单解释一下 gitdir,我在上面的代码片段中使用了它。你可以在文档中了解其他两个关键词。

includeIf 指令中使用 gitdir 关键字会对模式进行条件检查。根据规则,如果当前工作目录与 gitdir 中指定的目录模式相匹配,那么它就会从给定的路径中选取配置。我将在配置片段上应用这个规则来展示它是如何被应用的。

在配置片段中,你可以看到一个简单的模式,~/,它与 gitdir 关键字一起使用。这个模式会被存储在 $HOME 环境变量中的值所替代。

如何使用它

如果你使用同一个系统在 GitHub 或 GitLab 上的开源项目上工作,并在工作中提交到 Git 仓库,你可以有两个顶级目录,比如 $HOME/priv_scm$HOME/work_scm。在这两个目录中,你可以有两个单独的 .gitconfig 文件,其中包含与你的 user.nameuser.email 相关的设置。然而,它们也可以包含存储在 $HOME 的全局 .gitconfig 中,它可以保存两个环境通用的所有自定义项。

这里是一个例子 $HOME/priv_scm/.gitconfig 的片段:

$ cat $HOME/priv_scm/.gitconfig
[user]
    name  = Ramanathan Muthiah
    email = <personal-mailid-goes-here>

有了这个配置,你就可以切换目录,并开始在开源项目上工作,而无需手动重置一些与 Git 相关的配置。这些更改会在主 .gitconfig 中借助 includeIf 条件指令自动处理。

Git 小贴士

希望这个小贴士能帮助你组织 Git 项目。你最喜欢的 Git 小贴士是什么?请在评论中分享吧!


via: https://opensource.com/article/20/10/git-config

作者:Ramanathan M 选题:lujun9972 译者:geekpi 校对:wxy

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

从最开始作为一种使网站变得漂亮的方式,JavaScript 已转变为一种严肃的编程语言。

JavaScript 的卑微起步始于 1995 年,是由当时在 Netscape 通信公司工作的 Brendan Eich 在短短 10 天内创建的。从那时起,JavaScript 已经走过了漫长的道路,从一个让网站变得漂亮的工具变成了一种严肃的编程语言。

在其早期,JavaScript 被认为是一种视觉工具,它使网站变得更有趣和更有吸引力。像 Jakarta Server Pages(即 JSP,以前称作 JavaServer Pages)这样的语言曾经用来完成渲染网页的繁重工作,而 JavaScript 则被用来创建基本的交互、视觉增强和动画。

长期以来,HTML、CSS 和 JavaScript 之间的分界并不明确。前端开发主要由 HTML、CSS 和 JavaScript 组成,形成了标准 Web 技术的“多层蛋糕”。

 title=

标准网络技术的“多层蛋糕”(Mozilla 开发者网络,CC BY-SA 4.0

HTML 和 CSS 为内容提供结构、格式和样式。一旦网页要做一些超越了显示静态内容的事情,就是 JavaScript 的用武之地。Ecma 国际部开发了 JavaScript 规范, 万维网联盟 World Wide Web Consortium (W3C)开发了 HTML 和 CSS 规范。

JavaScript 是如何获得突出地位的

JavaScript 是如何成为最受欢迎的编程语言的,背后有一段漫长的历史。早在 20 世纪 90 年代,Java 是王者,不可避免的人们会与它进行比较。许多工程师认为 JavaScript 不是一门好的编程语言,因为它缺乏对面向对象编程的支持。尽管当时并不明显,但其实 JavaScript 的对象模型和功能特性在其第一个版本中就已经出现了。

1995 年 JavaScript 匆匆发布后,网景公司将其提交给了 欧洲计算机制造商协会 European Computer Manufacturers Association (ECMA)国际部进行标准化。由此产生了 ECMAScript,这是一个 JavaScript 标准,旨在确保不同 Web 浏览器之间网页的互操作性。ECMAScript 1 于 1997 年 6 月问世,帮助推进了 JavaScript 的标准化。

在此期间,PHP 和 JSP 成为了服务器端编程语言的流行选择。JSP 作为 通用网关接口 Common Gateway Interface CGI)的首选替代方案获得了突出的地位,因为它可以在 HTML 中嵌入 Java 代码。虽然它很受欢迎,但开发人员发现将 Java 嵌入 HTML 中是不自然的。此外,即使是 HTML 上最简单的文本变化,JSP 也必须经历一个耗时的生命周期。在今天的微服务世界里,面向 JSP 的页面被认为是技术债务。

PHP 的工作原理与 JSP 类似,但 PHP 代码以一个通用网关接口(CGI)的可执行文件来处理。基于 PHP 的 Web 应用比基于 JSP 的应用更容易部署。总的来说,使用 PHP 更容易上手和运行。今天,PHP 和 JavaScript 是创建动态网站最流行的组合之一:PHP 作为服务器端脚本,JavaScript 作为客户端脚本。

伴随着 2006 年 jQuery 的发布,JavaScript 的应用越来越多。jQuery 是一个多用途的 JavaScript 库,简化了繁琐的 文档对象模型 Document Object Model (DOM)管理、事件处理和 Ajax)。

2009 年 Node.js 的发布是 JavaScript 发展的转折点。开发者现在可以用 JavaScript 编写服务器端脚本了。紧随其后的是 2010 年发布的 Backbone.jsAngularJS 等框架。这导致了出现了使用单一语言进行全栈开发的概念。

2015 年,Ecma 国际部发布了 ECMAScript 6(ES6),它为编写复杂的应用程序增加了包括类声明在内的重要新语法。其他新特性还包括迭代器、箭头函数表达式、letconst 关键字、类型化数组、新的集合(映射、集合和 WeakMap)、Promise、字符串的模板字元以及许多其它很酷的特性。后来的版本又继续增加了更多的功能,使 JavaScript 更加强大、精简和可靠。

总结

在过去的 20 年里,JavaScript 有了长足的进步。现在大多数浏览器都在争相满足合规性,因此最新的规范推出得更快。

根据你的项目需求,有大量稳定的 JavaScript 框架可供选择,包括最流行的 ReactAngularVue.js 等等。在本系列的下一篇文章中,我将深入探讨为什么 JavaScript 如此受欢迎。


via: https://opensource.com/article/20/10/history-javascript

作者:Nimisha Mukherjee 选题:lujun9972 译者:wxy 校对:wxy

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

十多年来,我一直使用 Net Applications 的 NetMarketShare 工具来跟踪桌面计算机的浏览器和操作系统市场。这些月度报告对于衡量哪些浏览器新版本的操作系统正在获得或失去市场份额至关重要。最近,Net Applications 发布了最后一份 NetMarketShare 报告。简直不能再糟糕了。

在 Chrome 浏览器巩固了它作为世界上事实上的浏览器的地位之后,一直没有太多的动作。但这种情况可能要改变了。Chrome 浏览器的创造者谷歌,正面临着一代人以来最大的美国反垄断案件。几乎所有收入都依赖谷歌的 Mozilla,理所当然地会担心“殃及池鱼”。而与此同时,火狐似乎也无法阻止市场份额的流失。相反,凭借其新的 Chromium Edge 浏览器,微软正在稳步获得市场份额,而这还是在没有将其纳入 Windows 10 的情况下。像 Brave 这样的新浏览器比以往任何时候都更受欢迎。哦,对苹果搜索引擎的猜测再次浮出水面,引发了人们对谷歌向苹果支付数十亿美元以使其成为 Safari 中的默认搜索选项的疑问。

默认设置很重要。无论是你的祖母,还是在家工作的同事,这样的普通用户几乎从不改变他们的默认浏览器或搜索引擎。这反过来又影响了谷歌、微软和苹果等科技巨头的底线,更不用说威胁到 Mozilla 等小公司的生存。此外,浏览器的改变经常会导致依靠网站提供服务和销售产品的数百万企业争夺市场。

永久损失

浏览器市场份额数据在商业决策中起着至关重要的作用。如果没有确保 Web 服务能够在 Chrome 浏览器中完美运行,那么没人能成功发布 Web 服务。直到在大量浏览器中都能正常工作之前,企业也不会推出新功能。

那么,为什么 Net Applications 要干掉 NetMarketShare 呢?当我告诉你这与这个无可争议的市场领导者有关时,不要表现得很惊讶。

1 月份,谷歌提议废除用于识别正在使用的浏览器和操作系统的 User-Agent 字符串,以应对访客指纹战争。Net Applications 表示,这一变化将破坏 NetMarketShare 的设备检测技术,并会“造成长期不准确”。再加上一直以来需要过滤掉爬虫机器人以防止结果歪曲,Net Applications 决定在 14 年后放弃了。

Net Applications 提供的报告是基于每个月从数千个网站的 1 亿次会话中获取的数据。因为它的数据是全球性的,而且该公司不依赖调查或跟踪组件,所以它被普遍认为是一个准确的来源。Net Applications 报告了我所说的 用户市场份额 user market share :它追踪了每个用户的浏览器和操作系统。还有另外一个 使用市场份额 usage market share 的报告 StatCounter,它每个月都会查看 200 亿次页面浏览量,以确定什么浏览器和操作系统被使用得最多。访问了多个页面的用户被 Net Applications 算作单个用户,而 StatCounter 则在其总数中给予该用户更多的权重。

比起使用市场份额数据,我更喜欢追踪用户市场份额的数据,但从两种资源变成一种资源,无论如何都是一个很大的打击。

最终数字

以下是 Net Applications 的最终数据(10 月 1 日报道,覆盖 2020 年 9 月)。

排名前五的桌面浏览器:

  • Chrome 浏览器:69.25%
  • Edge:10.22%
  • 火狐浏览器:7.22%
  • IE:5.57%
  • Safari - 3.40%

五大桌面操作系统:

  • Windows:87.67%
  • Mac OS:9.42%
  • Linux:2.34%
  • Chrome OS:0.42%
  • 未知:0.14%

为方便,以下是 Net Applications 公司的公告全文:

重要通知

经过 14 年的服务,并被数以万计的文章和出版物作为主要来源,我们将以当前形式淘汰 NetMarketShare。2020 年 10 月是最后一个月的数据。现有账户的所有计费都已停止。所有未付余额将被退还。

为什么要这样做?浏览器(https://github.com/WICG/ua-client-hints)即将发生的变化将破坏我们的设备检测技术,并将在很长一段时间内导致不准确。

此外,我们将检测和删除爬虫机器人作为质量控制流程的关键部分。这是我们代码库中最复杂的部分。随着时间的推移,管理这个过程变得越来越困难。因此,与其接受越来越多的不准确程度,我们认为这是一个很好的时间来结束它。

未来

NetMarketShare 将在某个时间点重新出现,专注于电子商务趋势和可验证的用户数据。

我们要感谢多年来使用 NetMarketShare 的所有人。这段旅程始于报道浏览器大战,是每个人都希望从事开发的最迷人和最有趣的产品之一。

祝大家一切顺利。

NetMarketshare 团队

我很高兴地看到,NetMarketshare 有一天会回归。但如果没有浏览器和操作系统的数据,就不一样了。


via: https://venturebeat.com/2020/11/06/probeat-net-applications-will-no-longer-track-the-browser-wars/

作者:Emil Protalinski 译者:wxy 校对:wxy

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

COPR 是个人软件仓库集合,它不在 Fedora 中。这是因为某些软件不符合轻松打包的标准;或者它可能不符合其他 Fedora 标准,尽管它是自由而开源的。COPR 可以在 Fedora 套件之外提供这些项目。COPR 中的软件不受 Fedora 基础设施的支持,或者是由项目自己背书的。但是,这是一种尝试新的或实验性的软件的一种巧妙的方式。

本文介绍了 COPR 中一些有趣的新项目。如果你第一次使用 COPR,请参阅 COPR 用户文档

Dialect

Dialect 使用谷歌翻译将文本翻译成外语。它可以记住你的翻译历史,并支持自动语言检测和文本到语音等功能。用户界面简约,模仿谷歌翻译工具本身,所以它真的很容易使用。

安装说明

目前仓库在 Fedora 33 和 Fedora Rawhide 中提供了 Dialect。要安装它,请使用下面的命令:

sudo dnf copr enable lyessaadi/dialect
sudo dnf install dialect

GitHub CLI

gh 是一个官方的 GitHub 命令行客户端。它在终端提供了快速的访问,并完全控制你的项目问题、拉取请求和发布。议题(和其他东西)也可以在浏览器中轻松查看,以获得更标准的用户界面,或与他人分享。

安装说明

目前仓库在 Fedora 33 和 Fedora Rawhide 中提供了 gh 。要安装它,请使用下面的命令:

sudo dnf copr enable jdoss/github-cli
sudo dnf install github-cli

Glide

Glide 是一个基于 GStreamer 的极简主义媒体播放器。它可以播放任何 GStreamer 支持的多媒体格式的本地和远程文件。如果你需要一个多平台的具有简单用户界面的媒体播放器,你可能会想试试 Glide。

安装说明

目前仓库在 Fedora 32、33 和 Rawhide 中提供了 Glide。要安装它,请使用下面的命令:

sudo dnf copr enable atim/glide-rs
sudo dnf install glide-rs

Vim ALE

ALE 是 Vim 文本编辑器的一个插件,它提供了语法和语义错误检查。它还带来了诸如代码修复和许多其他类似于 IDE 的功能,如 TAB 补全、跳转到定义、查找引用、查看文档等。

安装说明

目前仓库在 Fedora 31、32、33 和 Rawhide 还有 EPEL8 中提供了 vim-ale 。要安装它,请使用下面的命令:

sudo dnf copr enable praiskup/vim-ale
sudo dnf install vim-ale

编者注:可在此处查阅以前的 COPR 文章。


via: https://fedoramagazine.org/4-cool-new-projects-to-try-in-copr-from-october-2020/

作者:frostyx 选题:lujun9972 译者:geekpi 校对:wxy

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

当你开始使用 Linux 并关注关于 Linux 的网站和论坛时,你会经常遇到诸如 GUI、CLI 等术语,有时还会遇到 TUI。

这一章的 Linux 黑话解释简要解释了这些术语,以便你作为一个(新的)Linux 用户在使用这些缩写词时能够更好地理解上下文。

说实话,像 GUI、CLI 或 TUI 这样的术语并不是 Linux 的专属术语。这些都是通用的计算术语,你会发现在非 Linux 的讨论中也会用到它们。

GUI - 图形用户界面 Graphical User Interface

这可能是你在这里最常遇到的词汇。这是因为我们专注于桌面 Linux 用户,并试图涵盖易于使用的图形化方法和应用程序。

GUI 应用程序(或图形应用程序)基本上是指任何可以与你的鼠标、触摸板或触摸屏交互的东西。有了图标和其他视觉概念,你可以使用鼠标指针来访问功能。

GIMP:一个用于照片编辑的GUI应用程序

在 Linux 上,桌面环境为你提供了与系统交互的图形界面,然后,你可以使用 GUI 应用程序,如 GIMP,VLC、Firefox、LibreOffice、文件管理器等来完成各种任务。

GUI 使普通用户的计算机使用变得更加容易,否则它将仍然是一个极客专用区。

CLI - 命令行界面 Command Line Interface

CLI 基本上是一个接受输入来执行某种功能的命令行程序。基本上,任何可以在终端中通过命令使用的应用程序都属于这一类。

apt-cache 是一个 CLI 工具,用于在基于 Debian 的系统上与 APT 缓存交互

早期的电脑与操作系统交互没有鼠标,你必须使用命令与机器互动。

如果你认为这都算困难,那你应该知道,早期的计算机甚至没有一个屏幕可以看到正在输入的东西,他们用实体的纸质打印机看到他们的输入命令。我从来没有用过这样的电脑,也没有在现实生活中看到过。我用过的最接近的东西是学习期间的单片机套件。

现在的 CLI 还有用吗?当然有。命令总是有它的好处,特别是当你处理操作系统的核心功能和配置时,比如设置防火墙、管理网络甚至包管理

你可能会有一个基于 GUI 的应用程序来完成同样的任务,但命令可以让你更精细地访问这些功能。在一些情况下,你会发现 GUI 应用程序也会用命令(在它们的代码中使用)与操作系统交互。

Handbrake GUI 应用程序在底层使用 FFMPEG CLI 工具

许多流行的 GUI 应用程序往往是基于 CLI 工具的。以Handbrake 为例。这是一个流行的开源媒体转换器,它底层使用的是 FFMPEG 命令行工具。

很明显,使用命令行工具没有图形工具那么简单。不要担心。除非你有特殊需要,否则你应该可以用图形化的方式使用 Linux 系统。然而,了解基本的 Linux 命令会有很大的帮助。

TUI - 终端用户界面 Terminal User Interface (也称为 基于文本的用户界面 Text-based User Interface

这是三者中最不常见的名词。TUI 基本上部分是 GUI,部分是 CLI。糊涂了吗?让我为你解释一下。

你已经知道,早期的计算机使用 CLI。在实际的 GUI 出现之前,基于文本的用户界面在终端中提供了一种非常基本的图形交互。你会有更多的视觉效果,也可以使用鼠标和键盘与应用程序进行交互。

终端中的 nnn 文件浏览器

TUI 是基于文本的用户界面或终端用户界面的缩写。“基于文本”这个说法主要是因为你在屏幕上有一堆文本,而“终端用户界面”的说法是因为它们只在终端中使用。

TUI 的应用虽然不是那么常见,但你还是有一些的。基于终端的 Web 浏览器是 TUI 程序的好例子。基于终端的游戏也属于这一类。

CMUS 是基于终端的音乐播放器

当你在 Ubuntu 中安装多媒体编解码器时,你可能会遇到 TUI,你必须接受 EULA 或做出选择。

TUI 应用程序不像 GUI 应用程序那样用户友好,它们经常会有学习曲线,但它们比命令行工具更容易使用一些。

最后……

TUI 应用程序通常也被认为是 CLI 应用程序,因为它们被限制在终端上。在我看来,你是否认为它们与 CLI 不同,这取决于你。

我希望你喜欢这篇 Linux 黑话解释。如果你对这个系列的主题有什么建议,请在评论中告诉我,我将在以后尽量涵盖它们。


via: https://itsfoss.com/gui-cli-tui/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

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