SHUHARI 的博客

流光飞舞

标签 开源

Visual Studio Code 远程扩展不是开源的

2020-04-04

Visual Studio Code 这个新锐编辑器最近的发展势头很猛,而目前的主要卖点则是远程开发(Remote Development)以及在线版本(Visual Studio Online)。过去我在看代码的时候就发现,Remote Development 扩展的源码并未开源出来,但当时并未在意,只是猜想可能是对 VSCode 的核心改动比较大、或者网络部分的设计尚未稳定,因此暂时封闭,以后应该会逐步释放出来。直到最近看到一些资料,才发现这是一个有意的决定,而 Remote Development 部分可能永远都不会开源了。

Streamlit 入门介绍

Streamlit 入门介绍

前言

Streamlit 是一个 Python Web 应用框架。但和常规 Web 框架,如 Flask/Django 的不同之处在于,它不需要你去编写任何客户端代码(HTML/CSS/JS),只需要编写普通的 Python 模块,就可以在很短的时间内创建美观并具备高度交互性的界面,从而快速生成数据分析或者机器学习的结果;另一方面,和那些只能通过拖拽生成的工具也不同的是,你仍然具有对代码的完整控制权。

也许最令人惊讶的是,我们可以完全抛弃复杂的回调/异步代码,以及服务器/客户端之间繁琐的通信细节,而创建的程序仍然是实时和动态的,这令人耳目一新。尽管 Streamlit 也有它自己的限制,但是在了解它以后,相信你会感叹“原来还有这种操作”(哪怕你并不关心数据分析或机器学习)。

通过本文,我们会了解到 Streamlit 的使用方法,包括各种构建块(Building Block)和编写方法,并初步了解它的运行机制,以及缓存、配置和部署等相关话题。

Qt LTS 将只对商业用户开放

2020-01-29
Qt
Qt

在公布新版(5.14.1)的同时,Qt 官方同时也释出了这样的信息:Qt LTS 及安装包将只对商业用户开放。具体内容可参考 Qt offering changes 2020,主要声明如下:

  • Installation of Qt binaries will require a Qt Account
  • Long-term-supported (LTS) releases and the offline installer will become available to commercial licensees only
  • New Qt offering for start-ups and small businesses for $499/year

Visual Studio Code 远程开发探秘

Visual Studio Code 远程开发探秘

在以前的文章 有趣的项目 - 在浏览器中运行 Visual Studio Code, 我介绍过 Coder 开发团队将 Visual Studio Code 搬到浏览器里的尝试。这是一个有趣的项目,不过没有想到的是,这之后不久微软官方就推出了 VSCode 的远程开发扩展,这简直是官方逼死同人的节奏。从 Coder 官网 的信息来看,他们似乎已将精力主要放到企业版本,这应该算一个生不逢时的产品吧。今天我们来介绍一下微软自己基于 VSCode 的远程开发平台。

Windows Forms Invoke() 泄露句柄原因之调查

2018-12-07
C#

有朋友问我关于 微软开源 WinForms, WPF 和 WinUI 的看法。说实话,我没什么看法。开源这个事,从来都是有兴趣的人才会 Awesome,对吃瓜群众只能是 So what。不过这则消息让我想起大概半年前维护产品客户端时遇到的一个问题,当时没有机会深入分析,现在既然 WinForm 已经开源,倒是值得深入分析一下了。

Solid Project:重新定义 Web?

2018-10-01
Web

介绍

Solid Logo

Tim Berners-Lee, Web 的奠基人,由于不满互联网日益被少数大公司所垄断的现实,目前致力于开发一个名为 Solid 的新项目,希望能把管理数据和应用的权力重新归还到用户手中。这个消息估计不少人已经听说过了。基于 Web 的开放思想,Solid 项目也一直是在公开与开源的指导原则下进行的,但直到最近,该项目才逐渐从构想转到实现,我们也终于有具体的细节信息可以一探该项目的究竟。

Linux Mint 19 (Tara) Beta 发布了

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 版本将不再提供。这里是 下载地址。如果你对新功能感兴趣的话,可以看 官方资料

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

Qt 5.11 生成文档需要 LLVM

2018-06-05
Qt
Qt

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

Python 项目可以有多大

Python 项目可以有多大

总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 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 和类似环境上。

Qt5.9.1 修正了编译问题

2017-07-14
Qt
Qt

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 指令中简单调整一下就好。

Beyond What?——十年之后,谈谈 Ruby, Rails,过去和未来 (二)

Beyond Java

上一篇文章 中,我们讲到了 Ruby / Rails 为何没有如先前人们预期的那样成为业界开发的主流——主要是在技术的层面上。但我觉得似乎还缺点什么。

有意思的是,Rails 当初之所以被当作 Java 的继承者,主要原因是在开发效率上有10倍的差距(撇开其中的宣传成分不论)。而之后被众多网站弃用,则是因为在性能上比后继者有10倍以上差距——这个变化当然有点讽刺意味,却也道出了一个事实:开发的风向已经变了。

Beyond What?——十年之后,谈谈 Ruby, Rails,过去和未来

Beyond Java

2005年,Java 开发者和专栏作家 Bruce Tate 写下了 《Beyond Java》 一书(中译本《超越 Java》,2007年出版)。该书的主要目标是探讨 Java 企业开发的发展方向。尽管作者尽力避免对未来做出明确的预言,但通读全书后,含义仍然是非常明显的:以 Ruby 编程语言和 Rails 框架为代表的新一代编程技术将会超越 Java,引导下一个时代的开发潮流。

需要说明的是,该书提出的观点并不只是作者的个人意见,而是在很大程度上代表了当时很多具有前瞻思想的开发者、包括一些著名业界领袖的共识。要理解这一点,首先需要了解 Ruby / Rails 兴起的历史背景。

Nuget 批量删除工具

2017-06-15
C#

Nuget Unlist app

由于代码调整原因,我需要将以前发布在 nuget 上的一些包进行清理。Nuget 并不支持对包进行物理删除,这可以理解,万一有人还在继续引用呢。但是 Unlist 这个操作就有点不人道了,那么多历史版本,要逐个在控制面板里操作,还要经过好几个页面跳转,那么多版本要点击到什么时候啊?

用面向对象方法组织 Flask 应用程序 (一)

Flask

Flask 是著名的 Python Web 微框架,而 《Flask Web 开发——基于 Python 的 Web 应用开发实战》(OReilly出版社出品,以一只大狗作为封面,所以也有人戏称“狗书”)则是这一框架的经典书籍。特别是该书的第七章,描述如何将网站划分为多个模块,很多 Flask 网站都是参照该例子的形式进行规划的。

我的 个人主页 也用了 Flask 框架来开发,网站结构在很大程度上参考了该书的示例。但在开发过程中,我也感觉到该方式也有一些不够合理的地方,主要表现在:

Qt 直接定位下载地址

2017-06-12
Qt
Qt

Qt 5.9 发布了,这是一个LTS(长期支持)版本,应该值得好好研究。

然而不得不说,最近几年从 Qt 官网明显感觉到商业化味道越来越重了,下载 SDK 要你先填一堆个人资料,让人感觉很不舒服,而在不同页面跳来跳去的体验也让人抓狂(速度问题我就不说了,这个锅大概应该让墙来背,不怪你)。

好在 Qt 的归档库现在还是可以直接访问的。如果有不想跟官网捉迷藏、或者和我一样,不希望为了下载一个开发包就把个人资料交出去的同学,请温柔地点击如下地址:

Qt Archive Repository

这个归档库类似于 FTP,有空不妨多浏览一下,你也许或发现其他有意思的东西。