标签 [开源]

15
Windows Forms Invoke() 泄露句柄原因之调查
有朋友问我关于 微软开源 WinForms, WPF 和 WinUI 的看法。说实话,我没什么看法。开源这个事,从来都是有兴趣的人才会 Awesome,对吃瓜群众只能是 So what。不过这则消息让我想起大概半年前维护产品客户端时遇到的一个问题,当时没有机会深入分析,现在既然 WinForm 已经开源,倒是值得深入分析一下了。
Solid Project:重新定义 Web?
介绍 Tim Berners-Lee, Web 的奠基人,由于不满互联网日益被少数大公司所垄断的现实,目前致力于开发一个名为 Solid 的新项目,希望能把管理数据和应用的权力重新归还到用户手中。这个消息估计不少人已经听说过了。基于 Web 的开放思想,Solid 项目也一直是在公开与开源的指导原则下进行的,但直到最近,该项目才逐渐从构想转到实现,我们也终于有具体的细节信息可以一探该项目的究竟。
Linux Mint 19 (Tara) Beta 发布了
Linux Mint 19 (Tara) Beta 发布了。该版本基于 4 月发布的 Ubuntu 18.04 核心,GUI 方面主要的改进则是 GTK 3.22 和 Cinnamon 3.8。此外,KDE 版本将不再提供。这里是 下载地址。如果你对新功能感兴趣的话,可以看 官方资料。 我在虚拟机里尝试安装了一下。第一眼的感觉是,图标变平了,默认壁纸也更有层次了(见上图)。
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 文件全部生成成功。
Python 项目可以有多大
.text-right { text-align: right; } 总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言开发的,经过了这么多年重构,也未听说哪个作者进了火葬场的,不明白这些人是真的不知道还是装作看不见呢?不过他们说动态语言大到一定程度就无法维护,虽然这话也同样不值一驳,不过也提醒了我,我也很好奇用动态语言开发的项目规模能大到什么程度。
Linux Mint 未来将取消 KDE 版本
看到今早的消息:Linux Mint Oct 2017 Montly News。这个月度新闻提到了几点,最重要的可能是 KDE 版本将被取消了。准确的说,下一个版本(Linux Mint 18.3)还会发布一个 KDE 版本,不过这也是最后一个了。按照官方的说法,KDE 版本使用人数并不多,不过这并不是放弃支持的主要原因。关键在于 Mint 的其他分支包括 Cinnamon、MATE、Xfce,虽然各有不同,不过差别并不大。这样,在 Cinnamon 上进行的修改很容易同步到上述分支。但 KDE 版本的软件环境和生态是截然不同的,维护 KDE 版本需要大量额外的精力。因此他们决定从下个版本之后不再支持 KDE,将主要精力集中在 Cinnamon 和类似环境上。 当然了,真的想用 KDE 的话仍然可以自己手工安装,不过这样的话似乎还不如直接用 Kubuntu 或者 Neon? 对于 KDE 版本的取消,我并没有特别的感觉。前两年也曾安装个这个版本,上手试了试就发现一些问题,不如 Cinnamon 成熟,说明开发团队对这个分支的投入是比较有限的。再加上用起来也不算太顺手,后来就再没有使用过。现在 Linux 社区的发行版也实在是够多了,稍微收缩一下战线,专注于自己的主业,对开发团队对用户来说也是好事。我对 Linux Mint 和开发者表示祝福。 其他信息包括 LMDE 3 、Flatpak 和 Cinnamon 3.6。包管理机制的变更可能会给系统带来深远的影响,不过目前这些工作还处于早期阶段,一段时间内也可能会造成某种程度的混乱吧。不过这些还言之尚早。 P.S 看到最后,才想起自己用了 Linux Mint 这么久,都没有去捐助一下,心里未免有点惭愧。于是去 Paypal 小小的 donate 了一笔——算是提供一点微薄的支持吧。
Nodejs 不适用于大规模服务端开发?
今天看到文章 Node之父Ryan Dahl:我不想被定义。 前面是 Nodejs 之父 Ryan Dahl 的个人经历,耳熟能详,倒也没什么好说的。倒是中间这一段:
Qt5.9.1 修正了编译问题
Qt 5.9.0 今年5月份已经发布了,但我下载以后,用 Visual C++ 2015编译却不成功,出现了一些奇奇怪怪的问题。当时因为时间有限,并且也没有资源可供参考(太新了),因此也就弃坑没有深究。 这两天偶然间发现 Qt 5.9.1 已经放出来了(看目录信息,真正放出来的时间应该是6月底)。下载回来用同样方法再编译,这次非常顺利的通过了。看起来上个版本确实存在问题,这次修正了。CHANGELOG 很简单,只说这是个 bug 修复版本,没有更详细的记录。 不过编译已经通过,并且 5.9 是 LTS 版本,我可以考虑逐渐把以前用 5.6/5.8 编写的程序迁移过来了。和 5.6~5.8 有一点不同的是,mkspec 中现在 msvc 不再像以前那样区分版本号(win32-msvc20XX),现在统一为 win32-msvc。在 configure 指令中简单调整一下就好。
Linux Mint 18.2 (Sonya)发布了
第一时间下载安装试了试——在虚拟机(VMWare)里。很惊喜的发现,安装速度比 18.2 版本快了很多,大概只有几分钟时间;我看个网页回来的时候,发现界面已经提示我 Reboot 了。安装过程中的图像比以前略有调整,更漂亮了一些。 我曾经介绍过 Mint 18.1 安装后菜单字体变形的解决办法。这次配置过 18.2,很高兴看到菜单会遵守系统字体设置,不需要再安装 Font Manager 来更正字体显示了。 其他内容看起来没有大的变化。因为内核还是 Ubuntu 16.04 LTS, 系统兼容性应该是很好的,不用怎么担心升级带来的问题。继续体验中...... 下载地址在这里. What's New
Beyond What?——十年之后,谈谈 Ruby, Rails,过去和未来 (二)
在 上一篇文章 中,我们讲到了 Ruby / Rails 为何没有如先前人们预期的那样成为业界开发的主流——主要是在技术的层面上。但我觉得似乎还缺点什么。 有意思的是,Rails 当初之所以被当作 Java 的继承者,主要原因是在开发效率上有10倍的差距(撇开其中的宣传成分不论)。而之后被众多网站弃用,则是因为在性能上比后继者有10倍以上差距——这个变化当然有点讽刺意味,却也道出了一个事实:开发的风向已经变了。
Beyond What?——十年之后,谈谈 Ruby, Rails,过去和未来
2005年,Java 开发者和专栏作家 Bruce Tate 写下了 《Beyond Java》 一书(中译本《超越 Java》,2007年出版)。该书的主要目标是探讨 Java 企业开发的发展方向。尽管作者尽力避免对未来做出明确的预言,但通读全书后,含义仍然是非常明显的:以 Ruby 编程语言和 Rails 框架为代表的新一代编程技术将会超越 Java,引导下一个时代的开发潮流。 需要说明的是,该书提出的观点并不只是作者的个人意见,而是在很大程度上代表了当时很多具有前瞻思想的开发者、包括一些著名业界领袖的共识。要理解这一点,首先需要了解 Ruby / Rails 兴起的历史背景。
用面向对象方法组织 Flask 应用程序(二)——组织 Blueprint
在 上一篇文章 我说过示例程序中的 Blueprint 存在设计问题,即 Blueprint 和视图函数存在着循环引用。
Nuget 批量删除工具
由于代码调整原因,我需要将以前发布在 nuget 上的一些包进行清理。Nuget 并不支持对包进行物理删除,这可以理解,万一有人还在继续引用呢。但是 Unlist 这个操作就有点不人道了,那么多历史版本,要逐个在控制面板里操作,还要经过好几个页面跳转,那么多版本要点击到什么时候啊?
用面向对象方法组织 Flask 应用程序 (一)
Flask 是著名的 Python Web 微框架,而 《Flask Web 开发——基于 Python 的 Web 应用开发实战》(OReilly出版社出品,以一只大狗作为封面,所以也有人戏称“狗书”)则是这一框架的经典书籍。特别是该书的第七章,描述如何将网站划分为多个模块,很多 Flask 网站都是参照该例子的形式进行规划的。 我的 个人主页 也用了 Flask 框架来开发,网站结构在很大程度上参考了该书的示例。但在开发过程中,我也感觉到该方式也有一些不够合理的地方,主要表现在:
Qt 直接定位下载地址
Qt 5.9 发布了,这是一个LTS(长期支持)版本,应该值得好好研究。 然而不得不说,最近几年从 Qt 官网明显感觉到商业化味道越来越重了,下载 SDK 要你先填一堆个人资料,让人感觉很不舒服,而在不同页面跳来跳去的体验也让人抓狂(速度问题我就不说了,这个锅大概应该让墙来背,不怪你)。 好在 Archive Repository 现在还是可以直接访问的。如果有不想跟官网捉迷藏、或者和我一样,不希望为了下载一个开发包而把个人资料交出去的同学,请温柔地点击如下地址: Qt Archive Repository