SHUHARI 的博客

流光飞舞

重要通知: 本站将迁移到域名 https://shuhari.dev/, 原有域名 https://yuhao.space/ 将于一个月后过期。 如果您收藏了本站,请及时更新链接。给您带来不便,深表抱歉!

标签 开源

Visual Studio Code 远程开发探秘

IDE
Visual Studio Code 远程开发探秘

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

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

C#

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

Solid Project:重新定义 Web?

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

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

2

Python 项目可以有多大

Python 项目可以有多大

总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言开发的,经过了这么多年重构,也未听说哪个作者进了火葬场的,不明白这些人是真的不知道还是装作看不见呢?不过他们说动态语言大到一定程度就无法维护,虽然这话也同样不值一驳,不过也提醒了我,我也很好奇用动态语言开发的项目规模能大到什么程度。

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 批量删除工具

C#

Nuget Unlist app

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

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

OOP
Web

Flask

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

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