《Developer Should Abandon Agile》 解读

前言

最近,敏捷开发的代表人物、也是 Agile manifesto 的作者之一 Ron Jeffries 发表了文章 Developer Should Abandon Agile(中译:开发者应该放弃敏捷)。InfoQ 也有这篇文章的 中文新闻。以作者的身份表达这样的观点,无疑是很有震撼性的,然而(我认为) InfoQ 的新闻并没有完整地表达清楚作者的思想,读起来有一种雾里看花的感觉。

这里,我试图从自己的角度,尽可能全面地传达 Ron 大叔原文中的观点,同时也想表达我自己的一些个人看法。当然,我会明确的将两者区分开,以下除特殊说明外,原文将统一以引用的形式标注出来。

PyInstaller 系列 - Hook 机制

在本系列前面的文章中,我们已经提到过 PyInstaller 的 Hook,不过尚未详细说明它是怎么回事。本文就将介绍关于 Hook 的知识。

注意,本文讲述的内容属于比较高级的部分,一般用户可以如果没有问题的话,可以不用特意去关心它。但是在如果发生下列情况之一,你可能还是需要对 Hook 有点基本的了解:

PyInstaller 系列 - 规格文件

在本系列的 基本用法 篇中我们曾说过,PyInstaller 在生成文件的同时会创建一个相应的 .spec 文件。其实,.spec 文件才是生成过程的真正核心。它本质上是一个特殊的 Python 脚本,其中记录了生成所需的指令,和包管理所使用的 setup.py 在某种程度上有些相似。当熟悉它的格式以后,你也可以按自己的意愿去修改此文件,并且某些特殊场景下修改 .spec 文件是最简便的方法。本文就讲述 spec 文件的格式、原理和一些常用使用案例。

PyInstaller 系列 - 基本用法

这是本系列的第一篇,介绍 PyInstaller 的基础知识。

PyInstaller 是一个跨平台的 Python 应用打包工具,支持 Windows/Linux/MacOS 三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行你的程序。

Linux Mint 19 (Tara) Beta 发布了

Linux Mint 19 Beta Desktop

Linux Mint 19 (Tara) Beta 发布了。该版本基于 4 月发布的 Ubuntu 18.04 核心,GUI 方面主要的改进则是 GTK 3.22 和 Cinnamon 3.8。此外,KDE 版本将不再提供。这里是 下载地址。如果你对新功能感兴趣的话,可以看 官方资料

我在虚拟机里尝试安装了一下。第一眼的感觉是,图标变平了,默认壁纸也更有层次了(见上图)。

Packt 出版社活动: $10 EBooks and Videos

Packt 出版社上个月的活动(请参考 Packt 出版社活动 Python Week 2018 ), 推出 Python 专题书籍的优惠,所有参与活动的书籍一概 $10。看起来这个活动的效果相当好,因为 Packt 现在又进一步扩大了活动范围。你可以从 首页链接: $10 EBooks & Videos 进入活动会场。目前参加活动的总计有 288 本书籍,价格仍然是良心的 一律$10,范围几乎涵盖了各个方面的编程相关内容,内容也相当新,可以说是相当大的力度了,相信你一定能在其中找到感兴趣的内容。有兴趣且有信用卡/Paypal账户的同学不妨前去围观。

Qt 5.11 生成文档需要 LLVM

最近,Qt 版本 5.11 发布了(变更内容可以看这里)。我也花了点时间下载编译了一回。原本以为只是一个小版本的变更,对于已经多次自己编译过 Qt 的我来说应该是轻车熟路(当然编译花费的时间依旧漫长)。没想到的是,主体程序的编译虽然很顺利,但编译文档时却出错了,提示 qdoc 不是合法的命令。到程序目录下面看,确实没有生成 qdoc.exe。

这是怎么回事?到官方网站上查找,发现这样的内容:

Note: From Qt 5.11, QDoc requires clang from LLVM 3.9 for parsing C++ header and source files, and for parsing the function signatures in \fn commands. See Installing clang for QDoc for details.

原来编译文档现在需要 LLVM/CLang 了。按照官方描述的信息,下载 并安装 LLVM 当前版本,并设置 LLVM_INSTALL_DIR 环境变量到安装目录,然后再重新编译。在失败的目录上重新编译似乎是不行的,最好是删除原来的内容,配置好环境后,再整个重新编译。

再次经历漫长的编译时间,这次一切正常,qdoc 和所有 .qch 文件全部生成成功。