2016年6月

生活充满了bug。

无论怎样小心计划,无论花多少时间去设计,在执行阶段实际执行时,任何工程都会有未知的问题。也无妨。也许对于任何一个组织的最佳弹性衡量不是他们如何一切都按计划运行地处理事情,而是,当出现磕磕碰碰时他们如何驾驭。

对任何一个项目管理流程来说,特别是在软件开发领域,都需要一个关键工具——问题跟踪管理系统。其基本功能很简单:可以对bug进行查看、追踪,并以协作的方式解决bug,有了它,我们更容易跟随整个过程的进展。除了基本功能,还有很多专注于满足特定需求的选项及功能,使用场景不仅限于软件开发。你可能已经熟悉某些托管版本的工具,像 GitHub Issues或者Launchpad,其中一些工具已经有了自己的开源社区。

接下来,这四个bug问题跟踪管理软件的极佳备选,全部开源、易于下载,自己就可以部署。先说好,我们可能没有办法在这里列出每一个问题跟踪工具;相反,我们列出这四个,原因基于是其丰富的功能和项目背后的社区规模。当然,肯定还有其他类似软件,如果你喜欢的没有列在这里,如果你有一个好的理由,一定要让我们知道,在下面的评论中使它脱颖而出吧。

Redmine

Redmine 是一个很流行的追踪管理工具,基于Ruby on Rails构建,可以追溯到2006年。很多方面类似于Trac(另一个我们的最爱),Redmine可以管理多个项目,整合了多种版本控制系统。除了基本问题追踪,Redmine也提供论坛,wiki,时间跟踪工具,同时,它还具有生成 甘特图表 Gantt charts 和日历的能力,用来跟踪项目的进展。

Redmine的设置相当灵活,支持多种数据库后端和几十种语言,还是可定制的,可以向 问题 issue 、用户、工程等添加自定义字段。通过社区创建的插件和主题它可以进一步定制。

如果你想试一试,一个在线演示可提供使用。Redmine采用GPL版本2许可证;开源代码可以在工程的svn仓库或在GitHub镜像上找到。

Bugzilla

Bugzilla是另一个流行的具备问题跟踪能力的开发工具。从名字您可能已经猜到了,Bugzilla最初是Mozilla基金会创建的,用来跟踪当时称为网景通信套件中的bug。为了更好的可读性,它从原来的Tcl移植到Perl,Bugzilla是一个比较老,但却广泛采用的问题跟踪系统,它被用在许多著名的开源项目如GNOME、KDE,以及Linux内核本身。

从通知到重复bug检测再到搜索共享,Bugzilla拥有许多高级工具,是一个功能更丰富的选项。Bugzilla拥有一套高级搜索系统以及全面的报表工具,具有生成图表和自动化按计划生成报告的能力。像Redmine一样,Bugzilla是可扩展和可定制的,除了字段本身,还能针对bug创建自定义工作流。它也支持多种后端数据库,和自带的多语言支持。

Bugzilla采用Mozilla公共许可证,你可以读取他们的未来路线图还有在官网尝试一个示例服务

Trac

Trac自称是基于web的极简主义软件工程管理软件,这里请不要混淆极简主义与缺乏功能。

由python编写的Trac,将其漏洞跟踪能力与它的wiki系统和版本控制系统轻度整合。项目管理能力突出,如生成里程碑和路线图,一个可定制的报表系统,大事记,支持多资源库,内置的垃圾邮件过滤,还可以使用很多通用语言。如其他我们已经看到的漏洞追踪软件,有很多插件可进一步扩展其基本特性。

Trac以改进的BSD许可协议开源,虽然更老的版本发布在GPL下。你可以在一个自托管仓库预览Trac的源码或者查看他们的路线图对未来的规划。

Mantis

Mantis是这次合集中我们将看到的最后一个工具,基于PHP,且有16年历史。作为另一个支持多种不同版本控制系统和事件驱动通知系统的bug跟踪管理软件,Mantis有一个与其他工具类似的功能设置。虽然它不本身包含wiki,但它整合了很多流行的wiki平台且本地化到多种语言。

Mantis使用GPL版本2开源许可证书;你可以在GitHub浏览他的源代码或查看自托管路线图对未来的规划。一个示例,你可以查看他们的内部漏洞跟踪

正如我们指出的,这四个不是唯一的选项。想要探索更多?Apache BloodhoundFossilThe Bug Genie,还有很多可替换品都有自己的忠实追随者,每个都有不同的优点和缺点。另外,一些工具在我们项目管理摘要有问题跟踪功能。所以,哪个是你首选的跟踪和碾压bug的工具?


via: https://opensource.com/business/16/2/top-issue-support-and-bug-tracking-tools

作者:Jason Baker 译者:wyangsun 校对:Mr小眼儿

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

linux.conf.au里的人们都有一种想到什么就动手去实现的想法。随着硬件开源运动不断地发展壮大,这种想法越来越多,也与现实世界联系的越来越紧密,而不仅仅存在于数字世界中。David Tulloh用他制作的[Linux驱动的微波炉 [WebM]](http://mirror.linux.org.au/linux.conf.au/2016/04_Thursday/D4.303_Costa_Theatre/Linux_driven_microwave.webm)来展示一个差劲的微波炉会多么难用,以及说明他的项目可以改造这些微波炉使得它们不那么讨人厌。

Tulloh的故事要从他买到了一个公认很便宜的微波炉开始说起,它的用户界面比其它微波炉默认的还要糟糕。设定时间时必须使劲按按钮以至于把微波炉都向后推了一段距离——而事实上必须要用力拉仓门把手才能把微波炉拖回原来的位置,这形成了一个“优雅”的平衡。当然这只是极端情况。Tulloh郁闷的是因为这个微波炉近十年来都没有一丁点明显的改善。他可能买到了一个又小又便宜的微波炉,而且特点是大部分人不研究使用手册就不会使用它——和智能手机的对比更加明显:智能手机只需知道一点点的操作指南并且被广泛使用。

改造这个微波炉不一定没有前途,“让微波炉重获新生”——这个想法成为了一个原型,如果Tulloh可以再平衡一下想做的功能和需求之间的关系的话他希望这变成一个众筹项目:一个Linux驱动的微波炉。

加一点新奇的小玩意

如果把“Linux”和“微波炉”联系在一起的话,你可能会想到给微波炉加上一个智能手机式的触摸屏和网络链接,然后再通过社区做一款微波炉的“革命性”的手机应用,想到这些就像做菜想到分享食谱一样显而易见。但Tulloh的目标和他的原型远远超过这些,他做了两个新奇的功能——热感相机和称量物体质量的称重装置。

这个热感相机提供一个可以精确到两度的八乘八像素的图像,这足够发现一杯牛奶是否加热到沸腾或者牛排是否解冻到快不能用来烹饪。不论发生哪种情况,都可以减小功率或者关掉它。而且在必要的时候会发出警报。这可能不是第一个可以检测温度的微波炉——GE在十年前就开始卖带温度探针的微波炉了——但是一个一直工作的内置传感器比一个手工探针有用多了,尤其是有一个可用的API支持的时候。

第二个新发明是一个嵌入的称重装置,它可以在加热之前称量食物(和容器)。很多食谱根据质量大小给出指导的烹饪时间,很多微波炉支持你手动输入质量以便它帮你计算。利用内置的称重装置,这一过程可以变成自动化的。在许多微波炉的转盘下面稳固地放置一个称重装置是一个机械方面的挑战,不过Tulloh觉得这个问题不难处理。相反,他对微波炉的设计是基于“平板”或者“平板挂车”的风格——在四角各放置一个传感器,这不仅在机械实现上很简单而且很好的达到了要求。

一旦你有了这些额外添加的并与逻辑引擎相连的质量温度传感器,你可以去尝试更多好玩的可能。一杯刚从冰箱里拿出来的冰牛奶的质量温度分布可能会有适度误差。Tulloh发现可以监检测到这种情况,而且提供一些有关的像“煮沸”或者“加热”的选项也是容易做到的(下面有一个模拟的界面,可点击操作的版本请点击右边链接 here

改造陈旧的东西

除了才开发出来的新功能,Tulloh还想要提升那些原本就提供的功能。可能不是所有微波炉的门把手都像Tulloh那个廉价的一样僵硬,但是很少有微波炉将把手设计的让残疾人也能轻松使用。这些缺陷都是可调整的,尤其是在美国,微波炉应该在仓门关闭的时候给出一个确定关闭的提示。这种确认必须是可靠的以预防那些伪劣产品,所以在仓门闭合时固定的槽位里添加一个短杆以确认仓门开闭状态,不至于误使微波炉在仓门开着的时候工作。事实上,必须要有两个相互联系的机关,如果他们提供的结果不一致,保险丝必须断开以便启动一个呼叫服务。Tulloh认为提供一个磁力门闩有更大的灵活性(包含简单的软件控制)并且像磁控也同样用于磁性钥匙锁,它可以让磁力门闩确认微波炉门是否关闭。

微波炉的另一个痛点是它会发出令人厌烦的声音。Tulloh去掉了蜂鸣器并且使用香蕉派(类似于树莓派的单片机开发板)控制他的微波炉。这可以通过一个把文本转换成语音的系统来用令人愉悦而且可配置的警报来提示和引导使用者。显然,下一步就是装上一个用来控制声音的扩音器。

许多微波炉除了定时和设置功率档位之外还可以做更多的事情——它们为烹饪,加热,化冻等提供一系列的功率档位。加上一个精确的温度测量装置感觉会为这个图表大大扩展这个列表。Andrew Tridgell对一个问题很好奇,加热巧克力——一个需要非常精确的温度控制的过程——是否是可能的。Tulloh没有过这方面的经验,他不敢保证这个一定可以,但是这个实验结果的确值得期待。即使没做成这件事,它也显出了潜在价值——社区接下来可以更进一步去做这件事。

实用性怎么样?

Tulloh十分乐意向全世界分享这个linux驱动的微波炉,他希望看到(因为这件事)形成一个社区并且想看到它接下来的走势。买一个现成的微波炉并且替换掉里面的电子元件看起来不是一个可行的点子。最后的结果可能会很糟,而买一个小巧智能的微波炉必然要花掉(比自己改造)更多的钱,但是潜在的顾客不想在他们的厨房里看到乱七八糟又不协调的东西。

许多零件都是现成的可以买到的(磁电管,处理器板,热传感器等等),像USB接口的热传感器,而且都很容易安装。软件原型当然也开源在GitHub。微波炉的舱室和门有不小的挑战性并且很可能要定制。Tulloh想要通过提供左侧开仓门的微波炉和颜色多样化的选项来转逆境为机遇。

一个对读者的快速调查:很少有人会贸然承诺他会为了一个全新的升级过的烤箱付出1000澳大利亚元。当然,很难知道是否会有充足的时间和足够多的读者来完成这个调查。这整个项目看起来很有趣。所以Tulloh的博客 (点击这里)也很值得一看。


via: https://lwn.net/Articles/674877/

作者:Neil Brown 译者:yuba0604

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

jQuery 基金会前天宣布 jQuery 3.0 发布!这是第一个根本不支持老版本 IE 的 jQuery 版本。

jQuery 3.0 开发于2014年10月。为了从老的 1.0 代码分离,摒弃那些由于要兼容 IE 而增加的庞杂的代码,其最初创建了 2.0 系列版本。3.0 版本是从 2.0 版本分支出来的,但是同 2.0 不兼容,因此更换了新的主版本号。

jQuery 3.0 是 jQuery 的未来所在,以后除了重大安全问题,jQuery 1.0 (最新版本 1.12)和 jQuery 2.0(最新版本 2.2)都不会再进行更新。

你可以通过如下地址直接调用 CDN 上的 jQuery:

也可以将其下载到本地,比如通过 npm:

npm install [email protected]

jQuery 2.0 完全不兼容 1.0,而 3.0 则继承了这个传统,继续不兼容 2.0。jQuery 基金会说 3.0 中有一些中断性的改变,但是用户可以不用太多工作就能将代码迁移到 3.0。

如果你要升级到 3.0,可以参考 3.0 升级指南,以及可以通过安装 jQuery Migrate 3.0 来找到你的代码中同 3.0 所不兼容的地方:

或者使用 npm 下载安装:

npm install [email protected]

jQuery 2.0 和 3.0 都不再支持老的 IE6、IE7 和 IE8 浏览器,如果用户必须支持这些旧式浏览器,那就只能使用 jQuery 1.12 了。

除了标准版本之外,如果你不使用 AJAX、效果等功能,你还可以使用一个 廋版 Slim 的 jQuery,它的压缩大小是 23.6kb,而标准版本的大小是 30kb。

今日关注

这已经是传统了,Fedora 24 的发布再次延迟。嗯,让我们数数,这是正式版本的第四次延迟发布了。在这个版本的开发周期中其实已经延迟了不下二十次了,围观群众对此表示情绪稳定,我们能说计划就是用来改变的嘛?由于临时发现该版本在安装了 Windows 10 的 Dell Precision M6800 机器上因为 GRUB2 的一个问题而无法启动,进而导致发布延期。这次预计要到 6.21 号进行发布。

Fedora 24 发行计划,目前还没更新最新的延期信息

jQuery 3.0 发布,继承了 jQuery 一贯的传统,3.0 和 2.0 也不兼容,并且放弃了对 IE6、 IE7 和 IE8 的支持!

新闻摘要

  • Enlightenment 0.20.9 桌面环境发布,带来了超过20个的问题修复和改进,而目前还在 RC 测试的 0.21 也即将推出。
  • Linux 内核 3.18.35 LTS 发布、Linux Kernel 4.1.26 LTS 也进行了发布。
  • 致力于将最新的 KDE 软件带给用户的 KDE Neon 发布了用户版 5.6。它基于最新的稳定版 KDE Plasma 5 桌面环境。该版本自带的应用比较少,这样有经验的 Linux 用户可以根据自己的情况安装自己所需要的软件。
  • 最近新发布的 Mozilla Firefox 47.0 已经出现在了 Ubuntu 的软件库中,此外也支持 Arch Linux 和 Solus Linux 。
  • 继 PCLinuxOS 64 2016.06 MATE 发布之后, PCLinuxOS 64 2016.06 的 Xfce 社区版和 LXDE 社区版也发布了。
  • Git 2.8.4 发布。

昨天,微软针对 Insiders 测试人群发布了 Windows 10 build 14361 更新版本,在这个版本中,微软带来了几个重要的改进,其中我们最关注的是对 Bash on Ubuntu on Windows 的“巨大改进”。

在这个版本中,极大地增强了 TTY/PTY 支持,换言之,现在 Tmux 这样的需要 伪终端 Pseudo Terminals (PTY)支持的应用可以工作了!此外,可以对 TTY 设备进行 chmod 和 chown 操作了。

Bash on Windows 中的 DrvFs 支持大小写敏感。在 /mnt/c 中你可以存储仅是大小写不同的多个文件,比如说 case.txt 和 CASE.TXT 就是两个不同的文件。不过,离开 Bash on Windows 环境,这两个文件虽然依旧存在,但是对它们的操作“也许会发生不可预料的错误”。这是因为 NTFS 虽然可以存储大小写不同的同名文件,但是大部分 Windows 下的应用并不能正确识别,它们会从中选择一个进行处理,具体可以参阅这篇文章

此外,对于 DrvFs 还有一些改进,比如用户可以从 DrvFs 中删除和 chmod 只读文件,DrvFs 下会隐藏 %LOCALAPPDATA%\lxss 目录。

此外还有一些改变:

  • 为了保持和 Linux 的习惯一致, 0.0.0.0 和 :: 可以用来指代 localhost 了。
  • 修复了某些情况下断开终端连接时挂起的问题
  • sendmsg/recvmsg 现在可以处理 IO 向量长度大于1的情况
  • 关闭时 socket 会得到 epoll 可读的提示
  • 用户可以脱离自动生成的 hosts 文件。
  • 安装 Ubuntu on Windows 时,自动根据 NT locale 来设置 Linux 下的 locale 。
  • lxrun /uninstall 在删除文件和文件夹时工作的更好
  • 修复了当用户已经存在时的安装问题
  • 为 df 命令实现了 /proc/mountinfo
  • 增加了 /proc/sys/vm/swappiness
  • 允许通过 /proc/self/fd 重新打开管道
  • strace 可以正确工作了
  • 更好的支持了“~”,比如现在支持 bash ~ -c ls
  • 改进支持 X11 应用,比如 xEmacs
  • 优化了命令参数结构,运行超长参数列表
  • ps -f 工作正常
  • 更新了初始线程堆栈大小以匹配 Ubuntu 的默认设置,并正确地报告该大小给 get\_rlimit 系统调用
  • 改进了 pico 进程镜像名称的输出
  • 修复了子目录名 . 和 .. 的符号链接错误代码
  • 等等……

如果你还不知道如何使用 Bash on Ubuntu on Windows,可以参阅我们之前的文章

今日关注

Greg Kroah-Hartman 发布了 Linux 内核 4.5.7,这是 4.5 系列的最后一个维护版本,请使用该系列内核的用户尽快升级到 4.6!此外,还发布了 4.4.13 LTS 、Linux Kernel 4.6.2 、Linux Kernel 3.14.72 LTS。

新闻摘要

  • NetOS 8.0 的三个版本同时发布,NetOS, NetOS 企业版, 和 NetOS 教育版。NetOS 8.0 使用了 Black Lab Linux 的大部分最新的技术。包含了许多基于web的app,当然还有一些传统的本地安装的应用程序。NetOS 基于 Ubuntu Linux, 因此用户也可以从从 Debian/Ubuntu 仓库下载软件。NetOS 8.0 目前可以免费下载。不过 NetOS 的企业版和教育版是收费的,需要的可以从官网进行购买。更多详情
  • Red Hat Software Collection 2.2 和 Red Hat Developer Toolset 4.1 正式发布。Red Hat Software Collections 2.2 提供了对一些开源数据库的支持,如 MariaDB 10.1, PostgreSQL 9.5, 还有 MongoDB 3.2,以及对开源的编程语言的支持,如 Python 3.5, Ruby 2.3, Rails 4.2, Maven 3.3, and Node.js v4.4,此外还有对一些核心组件的更新。Red Hat Developer Toolset 4.1 提供了对 GCC 5.3 和 GDB 7.11 的支持,还支持最新的 Eclipse IDE 4.5.2 。
  • Firefox 48 Beta 版本发布,推出了对 e10s (Electrolysis)的支持,e10s 是多进程模式,即将不同的任务分给不同的进程处理,在目前刚刚推出的阶段,只是将浏览器的 GUI 和内容渲染分为两个进程,这样如果内容导致崩溃的话,不会导致整个浏览器崩溃。此外,前两天刚刚发布的 Firefox 47 修复了许多安全问题,其中包括三个致命的安全问题,请尽快进行更新。
  • Opera 38 发布,这一版本增加了一个新的节电模块,可以增加 40% 的电池使用时间。此外,广告阻拦功能支持定制的广告阻拦列表,以及提供了自定义主题支持。