分类 分享 下的文章

学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情。当然,面临这样困惑的人,并不是只有你一个,所以,这世界上就出现了许多寓教于乐的通过游戏的形式来教你编程的网站。

在这篇文章中,我们对 200 多个编程游戏网站的各个方面进行了评估,包括是否免费、是否自由开源、是面对菜鸟还是有经验的程序员、支持的编程语言等等,然后遴选出这 12 个上佳的免费的编程游戏网站,希望能让你或你的朋友(或者你的孩子)真正喜欢上编程。

CodinGame

这是一个需要编程一个 AI 机器人,然后由它来解决各种面临的问题的有趣游戏。支持各种编程语言。

网站: https://www.codingame.com/

Code Combat

CodeCombat 是一个在真正的游戏中教学生们学习计算机编程的平台。这是一个社区项目,有上百位玩家贡献者们创建了各种关卡。支持 Java、JavaScript、Python、Lua、CoffeeScript 等语言。

网站:https://codecombat.com/play

Screeps

在游戏中学习 JavaScript 编程。该游戏号称它是世界上第一个面向程序员的大型多人在线(MMO)战略沙盒游戏。

网站: https://screeps.com/

Check iO

Check iO 是一个基于浏览器的游戏,你需要使用 Python 或 JavaScript 来解决问题才能将游戏进行下去(需要登录)。

网站:https://checkio.org/

Vim Adventures

通过游戏来学习 Vim。

网站: http://vim-adventures.com/

Cyber DoJo

Cyber-dojo 是一个程序员实战编程的地方。支持 JavaScript、Java、Python、PHP、Ruby 等语言。

网站: http://www.cyber-dojo.org/

源代码:https://github.com/JonJagger/cyber-dojo

Code Monkey

通过尝试捕获香蕉来学习编程。可以用来教孩子们学习编程(付费的)。

网站: https://www.playcodemonkey.com/

Elevator Saga

电梯编程游戏,需要一步步解决问题过关。比如说第一关是在 60 秒内运输 15 个人。

网站: http://play.elevatorsaga.com/

源代码:https://github.com/magwo/elevatorsaga

Codewars

通过挑战来精湛编程技艺。在真实的编程挑战中提升技能。支持 JavaScript、Python、C#、Java、Python 等语言。

网站: http://www.codewars.com/

Ruby Quiz

Ruby Quiz 是一个面向 Ruby 程序员的每周编程挑战,当前已经有 156 个竞赛挑战。

网站: http://rubyquiz.com/

Git Games

git-game 是一个基于终端的游戏,它用来教授 git 中的那些非常酷的功能。游戏的主题内容是搜寻,通过 git 命令来找到线索,解开谜题。

网站: http://www.git-game.com/

Hacker Org

hacker.org 挑战赛是一系列的拼图、敲砖块、测试和智力题,用来测试你的黑客能力。要通过这一系列的考验,你需要破解加密、写出精巧的代码,揭开重重迷雾。

网站: http://www.hacker.org/

好了,以上就是我们挑选出来的 12 个编程游戏,何不试试?

正在为 Linux 桌面端找一个免费的 REST 客户端? 别睡不着觉了!试试 Insomnia

这个应用是跨平台的,可以工作在 Linux、macOS、Windows。开发者 Gregory Schier 告诉我们他创造这个应用是为了“帮助开发者处理和 REST API 的通信”

他还说,Insomnia 已经有大约10000 个活跃用户,9% 使用着 Linux.

“目前来说,Linux用户的反馈是非常积极的,因为类似的应用(反正不怎么样)通常不支持 Linux。”

Insomnia 的目标是“加速你的 API 测试工作流”,通过一个简洁的接口让你组织、运行、调试 HTTP 请求。

这款应用还包含一些其他的高级功能比如 Cookie 管理、全局环境、SSL 验证和代码段生成。

由于我不是一个开发者,没有办法第一时间的评价这款应用,也没办法告诉你的它的特性或指出任何比较重大的不足之处。

但是,我将这款应用告诉你,让你自己决定它,如果你正在寻找一个有着顺滑的用户界面的替代命令行工具,比如HTTPie,它可能是值得一试的。

下载 Linux 版 Insomnia 3.0

Insomnia 3.0 现在可以用在 Windows、macOS、Linux 上(不要和只能在 Chrome 上使用的 Insomnia v2.0 混淆)。

对于 Ubuntu 14.04 LTS 或更高版本,有一个安装包,它是一个跨发行版的安装包:

如果你想跟进这个应用的步伐,你可以在 Twitter 上关注它。


via: http://www.omgubuntu.co.uk/2016/09/insomnia-3-is-free-rest-client-for-linux

作者:JOEY-ELIJAH SNEDDON 译者:Bestony 校对:wxy

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

人工智能 artificial intelligence,AI 是科技研究中最热门的方向之一。像 IBM、谷歌、微软、Facebook 和亚马逊等公司都在研发上投入大量的资金、或者收购那些在机器学习、神经网络、自然语言和图像处理等领域取得了进展的初创公司。考虑到人们对此感兴趣的程度,我们将不会惊讶于斯坦福的专家在人工智能报告中得出的结论:“越来越强大的人工智能应用,可能会对我们的社会和经济产生深远的积极影响,这将出现在从现在到 2030 年的时间段里。”

在最近的一篇文章中,我们概述了 45 个十分有趣或有前途的人工智能项目。在本文中,我们将聚焦于开源的人工智能工具,详细的了解下最著名的 15 个开源人工智能项目。

开源人工智能

以下这些开源人工智能应用都处于人工智能研究的最前沿。

1. Caffe

它是由贾扬清在加州大学伯克利分校的读博时创造的,Caffe 是一个基于表达体系结构和可扩展代码的深度学习框架。使它声名鹊起的是它的速度,这让它受到研究人员和企业用户的欢迎。根据其网站所言,它可以在一天之内只用一个 NVIDIA K40 GPU 处理 6000 万多个图像。它是由伯克利视野和学习中心(BVLC)管理的,并且由 NVIDIA 和亚马逊等公司资助来支持它的发展。

2. CNTK

它是 计算网络工具包 Computational Network Toolkit 的缩写,CNTK 是一个微软的开源人工智能工具。不论是在单个 CPU、单个 GPU、多个 GPU 或是拥有多个 GPU 的多台机器上它都有优异的表现。微软主要用它做语音识别的研究,但是它在机器翻译、图像识别、图像字幕、文本处理、语言理解和语言建模方面都有着良好的应用。

3. Deeplearning4j

Deeplearning4j 是一个 java 虚拟机(JVM)的开源深度学习库。它运行在分布式环境并且集成在 Hadoop 和 Apache Spark 中。这使它可以配置深度神经网络,并且它与 Java、Scala 和 其他 JVM 语言兼容。

这个项目是由一个叫做 Skymind 的商业公司管理的,它为这个项目提供支持、培训和一个企业的发行版。

4. DMTK

DMTK 分布式机器学习工具 Distributed Machine Learning Toolkit 的缩写,和 CNTK 一样,是微软的开源人工智能工具。作为设计用于大数据的应用程序,它的目标是更快的训练人工智能系统。它包括三个主要组件:DMTK 框架、LightLDA 主题模型算法和分布式(多义)字嵌入算法。为了证明它的速度,微软声称在一个八集群的机器上,它能够“用 100 万个主题和 1000 万个单词的词汇表(总共 10 万亿参数)训练一个主题模型,在一个文档中收集 1000 亿个符号,”。这一成绩是别的工具无法比拟的。

5. H20

相比起科研,H2O 更注重将 AI 服务于企业用户,因此 H2O 有着大量的公司客户,比如第一资本金融公司、思科、Nielsen Catalina、PayPal 和泛美都是它的用户。它声称任何人都可以利用机器学习和预测分析的力量来解决业务难题。它可以用于预测建模、风险和欺诈分析、保险分析、广告技术、医疗保健和客户情报。

它有两种开源版本:标准版 H2O 和 Sparking Water 版,它被集成在 Apache Spark 中。也有付费的企业用户支持。

6. Mahout

它是 Apache 基金会项目,Mahout 是一个开源机器学习框架。根据它的网站所言,它有着三个主要的特性:一个构建可扩展算法的编程环境、像 Spark 和 H2O 一样的预制算法工具和一个叫 Samsara 的矢量数学实验环境。使用 Mahout 的公司有 Adobe、埃森哲咨询公司、Foursquare、英特尔、领英、Twitter、雅虎和其他许多公司。其网站列了出第三方的专业支持。

7. MLlib

由于其速度,Apache Spark 成为一个最流行的大数据处理工具。MLlib 是 Spark 的可扩展机器学习库。它集成了 Hadoop 并可以与 NumPy 和 R 进行交互操作。它包括了许多机器学习算法如分类、回归、决策树、推荐、集群、主题建模、功能转换、模型评价、ML 管道架构、ML 持久、生存分析、频繁项集和序列模式挖掘、分布式线性代数和统计。

8. NuPIC

Numenta 公司管理的 NuPIC 是一个基于 分层暂时记忆 Hierarchical Temporal Memory,HTM 理论的开源人工智能项目。从本质上讲,HTM 试图创建一个计算机系统来模仿人类大脑皮层。他们的目标是创造一个 “在许多认知任务上接近或者超越人类认知能力” 的机器。

除了开源许可,Numenta 还提供 NuPic 的商业许可协议,并且它还提供技术专利的许可证。

9. OpenNN

作为一个为开发者和科研人员设计的具有高级理解力的人工智能,OpenNN 是一个实现神经网络算法的 c++ 编程库。它的关键特性包括深度的架构和快速的性能。其网站上可以查到丰富的文档,包括一个解释了神经网络的基本知识的入门教程。OpenNN 的付费支持由一家从事预测分析的西班牙公司 Artelnics 提供。

10. OpenCyc

由 Cycorp 公司开发的 OpenCyc 提供了对 Cyc 知识库的访问和常识推理引擎。它拥有超过 239,000 个条目,大约 2,093,000 个三元组和大约 69,000 owl:这是一种类似于链接到外部语义库的命名空间。它在富领域模型、语义数据集成、文本理解、特殊领域的专家系统和游戏 AI 中有着良好的应用。该公司还提供另外两个版本的 Cyc:一个可免费的用于科研但是不开源,和一个提供给企业的但是需要付费。

11. Oryx 2

构建在 Apache Spark 和 Kafka 之上的 Oryx 2 是一个专门针对大规模机器学习的应用程序开发框架。它采用一个独特的三层 λ 架构。开发者可以使用 Orys 2 创建新的应用程序,另外它还拥有一些预先构建的应用程序可以用于常见的大数据任务比如协同过滤、分类、回归和聚类。大数据工具供应商 Cloudera 创造了最初的 Oryx 1 项目并且一直积极参与持续发展。

12. PredictionIO

今年的二月,Salesforce 收购了 PredictionIO,接着在七月,它将该平台和商标贡献给 Apache 基金会,Apache 基金会将其列为孵育计划。所以当 Salesforce 利用 PredictionIO 技术来提升它的机器学习能力时,成效将会同步出现在开源版本中。它可以帮助用户创建带有机器学习功能的预测引擎,这可用于部署能够实时动态查询的 Web 服务。

13. SystemML

最初由 IBM 开发, SystemML 现在是一个 Apache 大数据项目。它提供了一个高度可伸缩的平台,可以实现高等数学运算,并且它的算法用 R 或一种类似 python 的语法写成。企业已经在使用它来跟踪汽车维修客户服务、规划机场交通和连接社会媒体数据与银行客户。它可以在 Spark 或 Hadoop 上运行。

14. TensorFlow

TensorFlow 是一个谷歌的开源人工智能工具。它提供了一个使用数据流图进行数值计算的库。它可以运行在多种不同的有着单或多 CPU 和 GPU 的系统,甚至可以在移动设备上运行。它拥有深厚的灵活性、真正的可移植性、自动微分功能,并且支持 Python 和 c++。它的网站拥有十分详细的教程列表来帮助开发者和研究人员沉浸于使用或扩展他的功能。

15. Torch

Torch 将自己描述为:“一个优先使用 GPU 的拥有机器学习算法广泛支持的科学计算框架”,它的特点是灵活性和速度。此外,它可以很容易的通过软件包用于机器学习、计算机视觉、信号处理、并行处理、图像、视频、音频和网络等方面。它依赖一个叫做 LuaJIT 的脚本语言,而 LuaJIT 是基于 Lua 的。


via: http://www.datamation.com/open-source/slideshows/15-top-open-source-artificial-intelligence-tools.html

作者:Cynthia Harvey 译者:Chao-zhi 校对:wxy

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

Taskwarrior 是 Ubuntu/Linux 下一个简单而直接的基于命令行的 TODO 工具。这个开源软件是我曾用过的最简单的基于命令行的工具之一。Taskwarrior 可以帮助你更好地组织你自己,而不用安装笨重的新工具——这有时丧失了 TODO 工具的目的。

Taskwarrior:一个基于简单的基于命令行帮助完成任务的TODO工具

Taskwarrior是一个开源、跨平台、基于命令行的 TODO 工具,它帮你在终端中管理你的 to-do 列表。这个工具让你可以轻松地添加任务、展示列表、移除任务。而且,在你的默认仓库中就有,不用安装新的 PPA。在 Ubuntu 16.04 LTS 或者相似的发行版中。在终端中按照如下步骤安装 Taskwarrior。

sudo apt-get install task

简单的用如下:

$ task add Read a book
Created task 1.
$ task add priority:H Pay the bills
Created task 2.

我使用上面截图中的同样一个例子。是的,你可以设置优先级(H、L 或者 M)。并且你可以使用‘task’或者‘task next’命令来查看你最新创建的 to-do 列表。比如:

$ task next

ID Age P Description                      Urg
-- --- - -------------------------------- ----
 2 10s H Pay the bills                     6
 1 20s   Read a book                       0

完成之后,你可以使用 ‘task 1 done’ 或者 ‘task 2 done’ 来清除列表。可以在这里找到更加全面的命令和使用案例。同样,Taskwarrior 是跨平台的,这意味着不管怎样,你都可以找到一个满足你需求的版本。如果你需要的话,这里甚至有一个安卓版。祝您用得开心!


via: http://www.techdrivein.com/2016/09/taskwarrior-command-line-todo-app-linux.html

作者:Manuel Jose 译者:geekpi 校对:wxy

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

Xfce 是一款针对 Linux 系统的现代化轻型开源桌面环境,它在其他的类 Unix 系统上,比如 Mac OS X、 Solaries、 *BSD 以及其它几种上也能工作得很好。它非常快并以简洁而优雅的用户界面展现了用户友好性。

在服务器上安装一个桌面环境有时还是有用的,因为某些应用程序可能需要一个桌面界面,以便高效而可靠的管理。 Xfce 的一个卓越的特性是其内存消耗等系统资源占用率很低,因此,如果服务器需要一个桌面环境的话它会是首选。

Xfce 桌面的功能特性

另外,它的一些值得注意的组件和功能特性列在下面:

  • Xfwm 窗口管理器
  • Thunar 文件管理器
  • 用户会话管理器:用来处理用户登录、电源管理之类
  • 桌面管理器:用来设置背景图片、桌面图标等等
  • 应用管理器
  • 它的高度可连接性以及一些其他次要功能特性

Xfce 的最新稳定发行版是 Xfce 4.12,它所有的功能特性和与旧版本的变化都列在了这儿

在 Ubuntu 16.04 上安装 Xfce 桌面

Linux 发行版,比如 Xubuntu、Manjaro、OpenSUSE、Fedora Xfce Spin、Zenwalk 以及许多其他发行版都提供它们自己的 Xfce 桌面安装包,但你也可以像下面这样安装最新的版本。

$ sudo apt update
$ sudo apt install xfce4 

等待安装过程结束,然后退出当前会话,或者你也可以选择重启系统。在登录界面,选择 Xfce 桌面,然后登录,截图如下:

在 Fedora 22-24 上安装 Xfce 桌面

如果你已经有一个安装好的 Linux 发行版 Fedora,想在上面安装 xfce 桌面,那么你可以使用如下所示的 yum 或 dnf 命令。

-------------------- 在 Fedora 22 上 --------------------
# yum install @xfce
-------------------- 在 Fedora 23-24 上 --------------------
# dnf install @xfce-desktop-environment

安装 Xfce 以后,你可以从会话菜单选择 Xfce 登录或者重启系统。

如果你不再想要 Xfce 桌面留在你的系统上,那么可以使用下面的命令来卸载它:

-------------------- 在 Ubuntu 16.04 上 -------------------- 
$ sudo apt purge xfce4
$ sudo apt autoremove
-------------------- 在 Fedora 22 上 -------------------- 
# yum remove @xfce
-------------------- 在 Fedora 23-24 上 --------------------
# dnf remove @xfce-desktop-environment

在这个简单的入门指南中,我们讲解了如何安装最新版 Xfce 桌面的步骤,我相信这很容易掌握。如果一切进行良好,你可以享受一下使用 Xfce —— 这个 Linux 系统上最佳桌面环境之一。

此外,如果你再次回来,你可以通过下面的反馈表单和我们始终保持联系。


via: http://www.tecmint.com/install-xfce-desktop-in-ubuntu-fedora/

作者:Aaron Kili 译者:ucasFL 校对:wxy

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

(题图来自:deviantart.com

当你打开你的机器,开机自检(POST)成功完成后,BIOS(基本输入输出系统)立即定位所配置的引导介质,并从 MBR(主引导记录)或 GUID(全局唯一标识符)分区表读取一些命令,这是引导介质的最前面 512 个字节内容。主引导记录(MBR)中包含两个重要的信息集合,第一个是引导程序,第二个是分区表。

什么是引导程序?

引导程序 Boot Loader 是存储在 MBR(主引导记录)或 GUID(全局唯一标识符)分区表中的一个小程序,用于帮助把操作系统装载到内存中。如果没有引导程序,那么你的操作系统将不能够装载到内存中。

有一些我们可以随同 Linux 安装到系统上的引导程序,在这篇文章里,我将简要地谈论几个最好的可以与 Linux 一同工作的 Linux 引导程序。

1. GNU GRUB

GNU GRUB 是一个非常受欢迎,也可能是用的最多的具有多重引导能力的 Linux 引导程序,它以原始的 Eirch Stefan Broleyn 发明的 GRUB( 大一统引导程序 GRand Unified Bootlader )为基础。GNU GRUB 增强了原来的 GRUB,带来了一些改进、新的特性和漏洞修复。

重要的是,GRUB 2 现在已经取代了 GRUB。值得注意的是,GRUB 这个名字被重新命名为 GRUB Legacy,但没有活跃开发,不过,它可以用来引导老的系统,因为漏洞修复依然继续。

GRUB 具有下面一些显著的特性:

  • 支持多重引导
  • 支持多种硬件结构和操作系统,比如 Linux 和 Windows
  • 提供一个类似 Bash 的交互式命令行界面,从而用户可以运行 GRUB 命令来和配置文件进行交互
  • 允许访问 GRUB 编辑器
  • 支持设置加密口令以确保安全
  • 支持从网络进行引导,以及一些次要的特性

访问主页: https://www.gnu.org/software/grub/

2. LILO

LILO ( Linux 引导程序 LInux LOader )是一个简单但强大且非常稳定的 Linux 引导程序。由于 GRUB 有很大改善和增加了许多强大的特性,越来越受欢迎,因此 LILO 在 Linux 用户中已经不是很流行了。

当 LILO 引导的时候,单词“LILO”会出现在屏幕上,并且每一个字母会在一个特定的事件发生前后出现。然而,从 2015 年 12 月开始,LILO 的开发停止了,它有许多特性比如下面列举的:

  • 不提供交互式命令行界面
  • 支持一些错误代码
  • 不支持网络引导(LCTT 译注:其变体 ELILO 支持 TFTP/DHCP 引导)
  • 所有的文件存储在驱动的最开始 1024 个柱面上
  • 面临 BTFS、GTP、RAID 等的限制

访问主页: http://lilo.alioth.debian.org/

3. BURG - 新的引导程序

基于 GRUB,BURG 是一个相对来说比较新的引导程序(LCTT 译注:已于 2011 年停止了开发)。由于 BURG 起源于 GRUB, 所以它带有一些 GRUB 主要特性。尽管如此, BURG 也提供了一些出色的特性,比如一种新的对象格式可以支持包括 Linux、Windows、Mac OS、 FreeBSD 等多种平台。

另外,BURG 支持可高度配置的文本和图标模式的引导菜单,计划增加的“流”支持未来可以不同的输入/输出设备一同工作。

访问主页: https://launchpad.net/burg

4. Syslinux

Syslinux 是一种能从光盘驱动器、网络等进行引导的轻型引导程序。Syslinux 支持诸如 MS-DOS 上的 FAT、 Linux 上的 ext2、ext3、ext4 等文件系统。Syslinux 也支持未压缩的单一设备上的 Btrfs。

注意由于 Syslinux 仅能访问自己分区上的文件,因此不具备多重文件系统引导能力。

访问主页: http://www.syslinux.org/wiki/index.php?title=The_Syslinux_Project

结论

一个引导程序允许你在你的机器上管理多个操作系统,并在某个的时间选择其中一个使用。没有引导程序,你的机器就不能够装载内核以及操作系统的剩余部分。

我们是否遗漏了任何一流的 Linux 引导程序?如果有请让我们知道,请在下面的评论表中填入值得推荐的 Linux 系统引导程序。


via: http://www.tecmint.com/best-linux-boot-loaders/

作者:Aaron Kili 译者:ucasFL 校对:wxy

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